Commit graph

7746 commits

Author SHA1 Message Date
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
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
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
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
Khalim Conn-Kowlessar
4967ddfb3e Property-type override beats the lodged EPC 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:36:47 +00:00
Khalim Conn-Kowlessar
f40abcedeb Property-type override beats the lodged EPC 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:36:13 +00:00
Khalim Conn-Kowlessar
10b9015bce Postcode filter matches the canonical postcode exactly 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:34:07 +00:00
Khalim Conn-Kowlessar
b865e89195 Postcode filter matches the canonical postcode exactly 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:33:29 +00:00
Khalim Conn-Kowlessar
3836729f92 No filters resolves the whole portfolio minus deletions 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:32:53 +00:00
Khalim Conn-Kowlessar
84fb9884d6 No filters resolves the whole portfolio minus deletions 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:32:10 +00:00
Khalim Conn-Kowlessar
b008bcc6ba The tasks mirror declares the FE-owned inputs column
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:32:09 +00:00
Khalim Conn-Kowlessar
561b8b078b Test names state the surviving failure-recovery behaviors 🟪
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:12:12 +00:00
Khalim Conn-Kowlessar
9cbb8a95b5 Completing a re-run failed batch un-fails the task 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:11:52 +00:00
Khalim Conn-Kowlessar
d0439dd11e Completing a re-run failed batch un-fails the task 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:10:43 +00:00
Khalim Conn-Kowlessar
30e3054146 A failed batch sub_task restarts for a re-run 🟩
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:08:47 +00:00
Khalim Conn-Kowlessar
3d643965b5 A failed batch sub_task restarts for a re-run 🟥
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 11:05:34 +00:00