Daniel Roth
3934e2d359
move trigger check to HubspotDealDiffer
2026-07-07 13:15:40 +00:00
Daniel Roth
d9b441962f
Name the Abri trigger builder for its None-or-message contract 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 13:02:25 +00:00
Daniel Roth
c016c8b754
Extract _trigger_abri_lambda for consistency with the other scraper triggers 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:58:48 +00:00
Khalim Conn-Kowlessar
07190fc332
Legacy property columns no longer resolve type or built form 🟩
...
ADR-0056 amended: override and EPC own type/form facts; a property with
neither is Unknown whatever the legacy columns say. Mirror columns removed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:52:11 +00:00
Khalim Conn-Kowlessar
ddd64a9297
Legacy property columns no longer resolve type or built form 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:49:19 +00:00
Daniel Roth
7ad0dc0595
Merge branch 'main' into feature/abri-api-integration
2026-07-07 12:46:17 +00:00
Daniel Roth
a3985389ab
The deal row names the job number client_booking_reference, matching HubSpot and the schema 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:43:40 +00:00
Daniel Roth
5286e2a2a2
The job number is stored in the client_booking_reference column 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:31:07 +00:00
Khalim Conn-Kowlessar
60c448e66d
FastAPI Lambda can send to the modelling_e2e queue
...
Remote state + MODELLING_E2E_SQS_URL env var + send policy ARN, and
fast_api_lambda deploys after modelling_e2e_lambda so the remote state
exists before it applies.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:18:48 +00:00
Khalim Conn-Kowlessar
bf8647c9b5
The 409 guard and batch creation read as methods on ModellingRunTasks 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:16:42 +00:00
Khalim Conn-Kowlessar
b62901a9de
The distributor coexists with both table stacks and mounts at /v1/modelling 🟪
...
DB access via parameterised SQL, not the infrastructure SQLModel mirrors:
importing those alongside the legacy backend.app.db.models mirrors of the
same tables double-registers them in the shared metadata and crashes the
app at import. Contained to the modelling package until the DDD cut-over.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:15:31 +00:00
Khalim Conn-Kowlessar
b22b9cbca0
Scenarios outside the portfolio refuse the run 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:06:42 +00:00
Khalim Conn-Kowlessar
ca799cc5e5
Scenarios outside the portfolio refuse the run 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:06:02 +00:00
Khalim Conn-Kowlessar
e9eb068be9
Filters that match no properties refuse the run 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:05:39 +00:00
Khalim Conn-Kowlessar
e9b39df322
Filters that match no properties refuse the run 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:05:03 +00:00
Khalim Conn-Kowlessar
cfedb8e9cf
A task that already has sub_tasks refuses re-distribution 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:04:34 +00:00
Khalim Conn-Kowlessar
dade7a3a5f
A task that already has sub_tasks refuses re-distribution 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:04:05 +00:00
Khalim Conn-Kowlessar
9031c16ba7
Trigger-run fans out one sub_task and message per scenario batch 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:03:33 +00:00
Khalim Conn-Kowlessar
489e2b5d47
Trigger-run fans out one sub_task and message per scenario batch 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:02:12 +00:00
Khalim Conn-Kowlessar
7606480338
An oversized postcode becomes its own batch 🟩
...
Behavior emerged from the packing rule — pinned straight to green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 12:00:07 +00:00
Khalim Conn-Kowlessar
2dd948259f
Batches never split a postcode 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:59:07 +00:00
Khalim Conn-Kowlessar
80c474b37b
Batches never split a postcode 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:58:41 +00:00
Khalim Conn-Kowlessar
bf0d630a8f
An attach-mode partial failure persists successes then records the failure 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:56:57 +00:00
Khalim Conn-Kowlessar
3cf44d6409
An attach-mode partial failure persists successes then records the failure 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:55:49 +00:00
Khalim Conn-Kowlessar
7709518431
An attach-mode batch models under the supplied sub_task without children 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:53:26 +00:00
Khalim Conn-Kowlessar
b840af11de
An attach-mode batch models under the supplied sub_task without children 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:52:45 +00:00
Khalim Conn-Kowlessar
f317233939
A recorded batch failure does not return the message to SQS 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:51:23 +00:00
Khalim Conn-Kowlessar
52b07e3ea4
A recorded batch failure does not return the message to SQS 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:50:38 +00:00
Daniel Roth
3b9b558628
The job number is stored in the client_booking_reference column 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:50:10 +00:00
Khalim Conn-Kowlessar
c64bd8fd85
A recorded batch failure carries structured details onto the sub_task outputs 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:50:10 +00:00
Khalim Conn-Kowlessar
8a3c0f3e77
A recorded batch failure carries structured details onto the sub_task outputs 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:49:56 +00:00
Khalim Conn-Kowlessar
f01131a064
A batch message with task_id and subtask_id attaches to the app-owned task 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:48:53 +00:00
Khalim Conn-Kowlessar
ca6ca2a220
A batch message with task_id and subtask_id attaches to the app-owned task 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:47:20 +00:00
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
Khalim Conn-Kowlessar
19d9e758ad
Both filterable components resolve through one precedence engine 🟪
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:45:10 +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
Khalim Conn-Kowlessar
513977a6fd
Filters combine with AND 🟩
...
Behavior emerged from filter composition — pinned straight to green.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:43:51 +00:00
Khalim Conn-Kowlessar
fc3f6a6f94
Built-form filter resolves with the same precedence as property type 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:43:03 +00:00
Khalim Conn-Kowlessar
d56079a1d4
Built-form filter resolves with the same precedence as property type 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:42:14 +00:00
Khalim Conn-Kowlessar
92370504da
Unknown is a selectable property-type bucket 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:41:19 +00:00
Khalim Conn-Kowlessar
4d0af87d5a
Unknown is a selectable property-type bucket 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:40:46 +00:00
Khalim Conn-Kowlessar
ec7ba1f0d3
A property without override or EPC falls back to the legacy column 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:40:24 +00:00
Khalim Conn-Kowlessar
faea3209b2
A property without override or EPC falls back to the legacy column 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:39:54 +00:00
Khalim Conn-Kowlessar
bf0e9343b2
An EPC without property_type falls back to its dwelling_type 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:39:32 +00:00
Khalim Conn-Kowlessar
9b146dfaf4
An EPC without property_type falls back to its dwelling_type 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:39:10 +00:00
Khalim Conn-Kowlessar
dfe42a6374
Numeric RdSAP property-type codes map to their labels 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:38:47 +00:00
Khalim Conn-Kowlessar
302861309c
Numeric RdSAP property-type codes map to their labels 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:38:18 +00:00
Khalim Conn-Kowlessar
e1dc0dc2f5
EPC-derived property type prefers lodged over predicted 🟩
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:37:45 +00:00
Khalim Conn-Kowlessar
45dab78f4e
EPC-derived property type prefers lodged over predicted 🟥
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:37:18 +00:00