Daniel Roth
06354a166e
Phone-number selection policy lives in the domain layer 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:47:37 +00:00
Daniel Roth
859a7ec49a
change fake contact details
2026-07-06 14:34:39 +00:00
Daniel Roth
de2a6d1d79
Add manual smoke script for the Abri tenant-contact HubSpot writes
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:19:05 +00:00
Daniel Roth
76896f9a8e
rename tenant data sync to abri tenant data sync
2026-07-06 14:05:42 +00:00
Daniel Roth
578de8845a
Tenant-data fixtures carry fictional names and Ofcom-reserved phone numbers 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:02:38 +00:00
Daniel Roth
8fd808ffd9
HubSpot deal-contacts transport lives under infrastructure like the other API clients 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 14:01:47 +00:00
Daniel Roth
b96aceaf7b
HubSpot calls share one retry policy behind a single guarded entry point 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:42:58 +00:00
Daniel Roth
8d9fb0ade4
Transient HubSpot failures are retried under the shared rate-limit policy 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:38:20 +00:00
Daniel Roth
8d684c57c7
Transient HubSpot failures are retried under the shared rate-limit policy 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:36:43 +00:00
Daniel Roth
81d25caead
A failed HubSpot write stops the sync and reports the orphaned contacts 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:35:47 +00:00
Daniel Roth
065217f8af
A failed HubSpot write stops the sync and reports the orphaned contacts 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:35:20 +00:00
Daniel Roth
e3894b0309
HubSpot failures surface without the response body that echoes tenant PII 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:34:33 +00:00
Daniel Roth
2e19085875
HubSpot failures surface without the response body that echoes tenant PII 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:33:42 +00:00
Daniel Roth
3dd2dfe92c
Empty tenancies, Abri rejections and ambiguous responses resolve like the other relay operations 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:32:13 +00:00
Daniel Roth
203ffac01f
Empty tenancies, Abri rejections and ambiguous responses resolve like the other relay operations 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:31:55 +00:00
Daniel Roth
64d397e6b4
Tenant vulnerabilities are recorded on the tenant's own contact 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:31:00 +00:00
Daniel Roth
d4bdbf2e2f
Tenant vulnerabilities are recorded on the tenant's own contact 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:30:22 +00:00
Daniel Roth
52f2286ee9
Runner-up number fills the contact's secondary phone number 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:29:38 +00:00
Daniel Roth
10636c1752
Runner-up number fills the contact's secondary phone number 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:28:56 +00:00
Daniel Roth
1752a6cf10
Contact carries the best-priority mobile and landline Abri lists 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:27:59 +00:00
Daniel Roth
1d3219ca60
Contact carries the best-priority mobile and landline Abri lists 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:27:39 +00:00
Daniel Roth
01e61a6275
Each tenancy signatory gets its own deal contact, with blank fields omitted 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:27:04 +00:00
Daniel Roth
0ef1687bd7
Relay receives the spec's recorded getSCSTenantData envelope 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:26:07 +00:00
Daniel Roth
76d0b4bac9
Abri tenancy signatory becomes an associated HubSpot deal contact 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:24:47 +00:00
Daniel Roth
78fcba45e5
Abri tenancy signatory becomes an associated HubSpot deal contact 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 13:22:52 +00:00
Daniel Roth
d1b7e15d64
Merge branch 'main' into feature/abri-api-integration
2026-07-06 08:09:19 +00:00
Daniel Roth
b2754baa04
Merge pull request #1463 from Hestia-Homes/feature/abri-api-integration
...
Abri OpenHousing DomnaRelay — Amend Appointment vertical (amendoptiappt)
2026-07-06 09:08:00 +01:00
KhalimCK
6dfaecc352
Merge pull request #1460 from Hestia-Homes/fix/table-12a-underfloor-rows
...
Electric underfloor codes resolve their Table 12a Grid 1 rows (ADR-0050 deferred follow-up)
2026-07-03 17:53:59 +01:00
KhalimCK
adcdce4271
Merge pull request #1462 from Hestia-Homes/fix/floor-u-value-gate
...
Floor insulation gated on the derived floor U-value (ADR-0051 floor arm)
2026-07-03 17:53:34 +01:00
Daniel Roth
021e7c15bb
Abri job amendment trigger is named after the OpenHousing job it amends 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:26:15 +00:00
Daniel Roth
b5f7cc3548
Abri job logging and appointment amendment serialise bookings through one date rule 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:24:48 +00:00
Daniel Roth
05bd22269d
Abri amend_job raises retriable transport errors when the amendment outcome is unknown 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:23:53 +00:00
Daniel Roth
096e4ae1f7
Abri amend_job treats an unconfirmed amendment response as retriable 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:23:10 +00:00
Daniel Roth
65ec38012b
Abri amend_job treats an unconfirmed amendment response as retriable 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:22:49 +00:00
Daniel Roth
e9cb46a58b
Abri amend_job surfaces OpenHousing rejections with code and message verbatim 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:22:11 +00:00
Daniel Roth
e363a1105a
Abri amend_job omits the surveyor resource so amendments cannot clobber Abri-side reassignments 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:21:06 +00:00
Daniel Roth
b70afc8d9d
Abri amend_job omits the surveyor resource so amendments cannot clobber Abri-side reassignments 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:20:41 +00:00
Daniel Roth
7bdba469fb
Abri amend_job serialises the spec's amendoptiappt envelope with the surveyor resource last 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:19:16 +00:00
Daniel Roth
fbb4345116
Abri amend_job serialises the spec's amendoptiappt envelope with the surveyor resource last 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:18:24 +00:00
Daniel Roth
c542a57ae5
Abri amend_job amends an OpenHousing appointment and returns the echoed booking 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:17:41 +00:00
Daniel Roth
2cfed0c33d
Abri amend_job amends an OpenHousing appointment and returns the echoed booking 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 16:15:44 +00:00
Khalim Conn-Kowlessar
2a0cf05fdd
Amend ADR-0051: the floor U-value gate landed; roof stays evidence-gated 🟪
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 16:08:57 +00:00
Khalim Conn-Kowlessar
fb3516ee95
Floor insulation is withheld when it cannot lower the derived floor U 🟩
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 16:06:45 +00:00
Khalim Conn-Kowlessar
128981289a
Floor insulation is withheld when it cannot lower the derived floor U 🟥
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 16:05:04 +00:00
Khalim Conn-Kowlessar
6c6be1a432
Electric underfloor codes resolve their SAP 10.2 Table 12a Grid 1 rows 🟩
...
421 slab -> Other storage heaters (0.00); 422/423 integrated -> 0.20;
424/425 screed/timber -> 0.90/0.50 — per the Grid 1 row labels that name
the codes (PDF p.184). Closes the None all-low-rate fallback that
over-credited 7-hour-metered underfloor dwellings.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 16:00:40 +00:00
Daniel Roth
6a7cc68c9a
Merge branch 'main' into feature/abri-api-integration
2026-07-03 16:00:18 +00:00
Khalim Conn-Kowlessar
f604672ae0
Electric underfloor codes resolve their SAP 10.2 Table 12a Grid 1 rows 🟥
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:57:37 +00:00
Daniel Roth
c0d36d1e67
Merge pull request #1458 from Hestia-Homes/feature/abri-api-integration
...
Abri DomnaRelay client — foundation + LogJob vertical (strictly typed)
2026-07-03 16:49:46 +01:00
Jun-te Kim
838668bfdb
Merge pull request #1451 from Hestia-Homes/fix/sap-heating-optional-air-conditioning
...
Make nested SapHeating.has_fixed_air_conditioning optional across all RdSAP schemas
2026-07-03 16:34:27 +01:00
Jun-te Kim
6172f5d30d
Merge pull request #1452 from Hestia-Homes/fix/roof-construction-another-premises-above
...
Map API roof_construction code 9 ("another premises above") to None
2026-07-03 16:34:15 +01:00