Commit graph

7736 commits

Author SHA1 Message Date
Daniel Roth
55baddfd9e A local smoke drives HubSpot-to-write-back LogJob with only the Abri edge stubbed 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:47:03 +00:00
Daniel Roth
481c01098d Real Abri portal deals fire the job-logging trigger 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:46:33 +00:00
Daniel Roth
eaedd9a63d Real Abri portal deals fire the job-logging trigger 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:44:51 +00:00
Daniel Roth
45bb3a7e61 A manual smoke script proves log then amend end-to-end against Abri UAT 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:30:08 +00:00
Daniel Roth
7b2fe80688 The abri lambda ships with its queue, DLQ and UAT-pointed staging config 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:29:01 +00:00
Daniel Roth
58199a1c03 The abri lambda dispatches queue messages through the Abri orchestrator 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:21:39 +00:00
Daniel Roth
8847d06d68 A first confirmed survey date on an Abri deal reaches the abri queue 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:19:01 +00:00
Daniel Roth
d70853bfd2 The scraper sends fired Abri flows to the abri queue on each deal change 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:16:13 +00:00
Daniel Roth
28b4a8927f A scrape that fires Abri triggers builds one message naming the fired flows 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:13:48 +00:00
Daniel Roth
2e72f32d52 A scrape that fires Abri triggers builds one message naming the fired flows 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:12:41 +00:00
Daniel Roth
a33dd43271 One message dispatches the fired Abri flows in a fixed, retry-safe order 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:10:30 +00:00
Daniel Roth
1c5a43df56 One message dispatches the fired Abri flows in a fixed, retry-safe order 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:09:20 +00:00
Daniel Roth
8d70679ab0 Amending an appointment needs only the deal's changed date and time 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:07:23 +00:00
Daniel Roth
8daaa0974d A trigger message validates the fields each fired Abri flow needs 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:05:25 +00:00
Daniel Roth
c281456164 A trigger message validates the fields each fired Abri flow needs 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:04:55 +00:00
Daniel Roth
6a580d7691 A non-retriable failure marks the task failed without requeueing the message 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:03:36 +00:00
Daniel Roth
fac9dde77e A non-retriable failure marks the task failed without requeueing the message 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:02:45 +00:00
Daniel Roth
9bae8df6ea A changed booking amends the deal's OpenHousing appointment 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 10:01:01 +00:00
Daniel Roth
a93346ec7f A changed booking amends the deal's OpenHousing appointment 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:56:54 +00:00
Daniel Roth
3e11dc54e5 The deal database gateway reads back a deal's recorded job_no 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:55:24 +00:00
Daniel Roth
2b29a2412b The deal database gateway reads back a deal's recorded job_no 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:54:56 +00:00
Daniel Roth
28c7e44c95 The deal database gateway records a deal's OpenHousing job_no 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:54:16 +00:00
Daniel Roth
d33c171494 The deal database gateway records a deal's OpenHousing job_no 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 09:53:42 +00:00
Daniel Roth
903ef62ef7 Merge branch 'main' into feature/abri-api-integration 2026-07-07 08:33:02 +00:00
Daniel Roth
3963ea54e9
Merge pull request #1479 from Hestia-Homes/feature/abri-logjob-orchestration
Abri LogJob orchestration: persist OpenHousing job_no to HubSpot and the deal database
2026-07-07 09:30:31 +01:00
Daniel Roth
a5868cc2e0 One AbriOrchestrator runs every Abri flow for a deal 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:26:48 +00:00
Daniel Roth
01f0392ce2 remove overly-specific comment 2026-07-06 16:14:25 +00:00
Daniel Roth
359516fa5f The deal upsert lands client_booking_reference in the job_no column 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:10:29 +00:00
Daniel Roth
62d9bbf147 The deal upsert lands client_booking_reference in the job_no column 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:08:17 +00:00
Daniel Roth
0cd4efbf83 A client_booking_reference change triggers a deal database update 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:05:20 +00:00
Daniel Roth
faac50eca4 A client_booking_reference change triggers a deal database update 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:04:54 +00:00
Daniel Roth
ed08a6adfe HubSpot clients share one scrubbed-retry call policy 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:02:22 +00:00
Daniel Roth
2ea9257036 A rate-limited HubSpot write is retried before succeeding 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:59:53 +00:00
Daniel Roth
7e5dc1722e A rate-limited HubSpot write is retried before succeeding 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:59:27 +00:00
Daniel Roth
049475ec96 A failed HubSpot write raises a scrubbed error carrying the orphaned job_no 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:58:36 +00:00
Daniel Roth
350a76f942 A failed HubSpot write raises a scrubbed error carrying the orphaned job_no 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:57:16 +00:00
Daniel Roth
b847fa2f4c Transport and parse failures propagate with nothing recorded 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:55:38 +00:00
Daniel Roth
ddfbbd0052 An OpenHousing rejection is surfaced verbatim with nothing recorded 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:54:58 +00:00
Daniel Roth
96f86aacac A logged job's job_no is written to HubSpot and then the deal database 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:54:05 +00:00
Daniel Roth
6912dabf22 A logged job's job_no is written to HubSpot and then the deal database 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:52:35 +00:00
Daniel Roth
ce7b302c17 Log an OpenHousing job from a confirmed survey booking's deal fields 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:51:21 +00:00
Daniel Roth
98674ae895 Log an OpenHousing job from a confirmed survey booking's deal fields 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 15:50:07 +00:00
Jun-te Kim
9d4d764f48
Merge pull request #1476 from Hestia-Homes/fix/fastapi-landlord-overrides-sqs-wiring
fix(terraform): wire landlord-overrides SQS queue into FastAPI Lambda
2026-07-06 16:38:53 +01:00
Jun-te Kim
e0380123b6 fix(terraform): wire landlord-overrides SQS queue into FastAPI Lambda
The /v1/bulk-uploads/trigger-landlord-overrides endpoint reads
settings.LANDLORD_OVERRIDES_SQS_URL, but the fast-api Lambda's terraform
never set it, so it fell back to the config default "changeme" and
SendMessage failed with AWS.SimpleQueueService.NonExistentQueue.

The landlord-overrides queue (and its finaliser sibling) were added to the
router/config but only the finaliser was wired here. This adds the missing:
  - terraform_remote_state data source for the queue's state
  - LANDLORD_OVERRIDES_SQS_URL env var on the FastAPI Lambda
  - queue ARN in the fastapi-sqs-send IAM policy (else AccessDenied)

Mirrors the existing postcode-splitter / combiner / finaliser wiring.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 15:36:58 +00:00
Daniel Roth
329e896ba5 Merge branch 'main' into feature/abri-api-integration 2026-07-06 15:15:54 +00:00
Daniel Roth
6335796d6e
Merge pull request #1471 from Hestia-Homes/feature/abri-api-integration
Abri OpenHousing DomnaRelay — GetTenantData vertical (tenancy signatories to HubSpot)
2026-07-06 16:15:36 +01:00
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