Model/applications
Khalim Conn-Kowlessar 9ec7987e97 PR review: best-effort read path, true per-member streaming, race-safe 409, local email 🟩
Addresses PR #1498 review:
- A per-file read failure (missing/deleted object, or a bucket the role can't
  reach) is now a SkippedDocument(reason=unreadable), not a whole-run abort;
  an all-unreadable selection still fails (no empty package). Best-effort on
  the read path (ADR-0060).
- Each ZIP member is streamed to a temp file (S3DocumentDownloader.download,
  boto download_file) and added from disk, so a single multi-GB member never
  hits the heap — the 'never held whole in memory' claim is now true.
- The 409 double-submit guard is DB-arbitrated: the sub_task insert is
  conditional on the task having none, so a race creates only one.
- Local env gets a placeholder recipient email so the route is exercisable.
- PackageEntry carries landlord_property_id so a read failure can be reported.
- TODO noting the UploadedFile.s3_upload_timestamp typing fix.
Two new tests: per-file read failure skips-and-reports; address fallback flows
to the folder name.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 11:08:46 +00:00
..
abri abri_api not abri 2026-07-07 14:40:33 +00:00
ara_first_run Thread the historic-EPC reader through the first-run composition root 🟩 2026-07-06 08:41:56 +00:00
audit_generator add local handler and orchestrator 2026-06-30 13:58:41 +00:00
bulk_document_download PR review: best-effort read path, true per-member streaming, race-safe 409, local email 🟩 2026-07-08 11:08:46 +00:00
bulk_upload_finaliser property override 2026-06-05 12:18:13 +00:00
landlord_description_overrides Merge pull request #1409 from Hestia-Homes/fix/property-type-leading-token-guard 2026-07-02 10:00:03 +01:00
magic_plan use task_handler rather subtask_handler for magicplan 2026-06-09 12:17:57 +00:00
modelling_e2e Review nitpicks: pids_with_default naming, empty-batch guard, truthful fake 🟪 2026-07-07 16:44:23 +00:00
postcode_splitter updated rdsap option; seperated s3 location in infrastrucutre; added open ai api 2026-05-22 14:00:33 +00:00
sharepoint_renamer delete test data file 2026-07-03 13:38:09 +00:00
__init__.py applications/postcode_splitter: PostcodeSplitterOrchestrator + Lambda entrypoint slice 2026-05-19 17:46:12 +00:00