Commit graph

1614 commits

Author SHA1 Message Date
Daniel Roth
73a0b23f06
Merge pull request #319 from Hestia-Homes/main
Some checks are pending
Test Suite / unit-tests (push) Waiting to run
Don't include PAR photopack in MIssing Documents list
2026-06-15 14:45:07 +01:00
Daniel Roth
7feec70c98
Merge pull request #320 from Hestia-Homes/feature/document-viewing-settings
Fix expected file types unit tests
2026-06-15 14:43:31 +01:00
Daniel Roth
e3ee1480aa dont hardcode expected file count in tests 2026-06-15 13:42:03 +00:00
Daniel Roth
8e9e093def fix brokn unit tests 2026-06-15 13:38:01 +00:00
Daniel Roth
273932eb30
Merge pull request #318 from Hestia-Homes/feature/document-viewing-settings
Don't include PAR photopack in MIssing Documents list
2026-06-15 14:32:08 +01:00
Daniel Roth
86642de2a2 Don't include PAR photopack in MIssing Documents list 2026-06-15 13:06:28 +00:00
Daniel Roth
4d62adc18b
Merge pull request #317 from Hestia-Homes/main
Additional columns in property export
2026-06-15 13:09:13 +01:00
Daniel Roth
f0bb2b237a
Merge pull request #316 from Hestia-Homes/feature/new-cols-in-property-export
Additional columns in property export
2026-06-15 13:08:15 +01:00
Daniel Roth
2a9da6765b Switch EPC SAP (Potential) data source from epcSapScorePotential to potentialPostSapScoreDropdown 2026-06-15 11:57:39 +00:00
Daniel Roth
5ad99df044 correct typo 2026-06-15 09:54:15 +00:00
Daniel Roth
32bb2e39ef Merge branch 'main' into feature/new-cols-in-property-export 2026-06-15 09:50:16 +00:00
Daniel Roth
c72b7c1625 Add coordination comments, damp/mould, and Domna survey columns to property table and CSV export
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-15 09:48:41 +00:00
Daniel Roth
2b380d83d8
Merge pull request #315 from Hestia-Homes/remove-duplicate-hs-col
Remove "osmosis_survey_required" column as it is already in the db as "domna_survey_required"
2026-06-15 10:21:10 +01:00
Daniel Roth
10f7d4c188 migration 2026-06-15 08:59:46 +00:00
Daniel Roth
db0b3670f4 delete col 2026-06-15 08:59:24 +00:00
Daniel Roth
462cd36c3f
Merge pull request #314 from Hestia-Homes/feature/new-hs-deal-cols
Add "osmosis_survey_required" to hs deal table
2026-06-15 09:57:10 +01:00
Daniel Roth
954fb5b16e migration 2026-06-15 08:52:41 +00:00
Daniel Roth
a3ee12a418 osmosis_survey_required column 2026-06-15 08:50:41 +00:00
Daniel Roth
4ea1fa48d4
Merge pull request #313 from Hestia-Homes/feature/hs-last_submission_date
last_submission_date column on hubspot deals table
2026-06-11 10:59:06 +01:00
Daniel Roth
3425dae3cc migration files 2026-06-10 14:25:37 +00:00
Daniel Roth
a5e07ffa1c add last_submission_date to hs deal table 2026-06-10 14:23:55 +00:00
Jun-te Kim
23a275ae85
Merge pull request #312 from Hestia-Homes/feature/new-file-type-and-source-for-audits
New file type and source for audits
2026-06-09 15:21:39 +01:00
Daniel Roth
2e9ec32c48 migration files 2026-06-09 13:57:31 +00:00
Daniel Roth
de963bbc39 add file type and file source 2026-06-09 13:56:52 +00:00
Jun-te Kim
d0d5ec0366
Merge pull request #310 from Hestia-Homes/feature/frontend_landlord_overrides
Feature/frontend landlord overrides
2026-06-08 16:23:21 +01:00
Jun-te Kim
c6091af34c
Merge pull request #311 from Hestia-Homes/feature/additional_hubspot_proeprties
Feature/additional hubspot proeprties
2026-06-08 16:12:18 +01:00
Jun-te Kim
c2b7e00075 new table for new deal proeprties we want 2026-06-08 14:42:50 +00:00
Jun-te Kim
e974aef858 dynamic file tree 2026-06-08 14:08:48 +00:00
Jun-te Kim
cc134f8ce9
Merge branch 'main' into feature/frontend_landlord_overrides 2026-06-08 14:00:20 +01:00
Daniel Roth
974a5e5ef5
Merge pull request #309 from Hestia-Homes/feature/magicplan-ventilation-tables
New tables for magicplan ventilation and move opening type to window ventilation table
2026-06-08 13:23:41 +01:00
Daniel Roth
7e2be3efbd Merge branch 'main' into feature/magicplan-ventilation-tables 2026-06-08 12:21:22 +00:00
Daniel Roth
f1f48cf851
Merge pull request #308 from Hestia-Homes/feature/efficient-recommendation-backfill
Make recommendation denormalisation backfill safe and online
2026-06-08 13:20:53 +01:00
Jun-te Kim
567c3f59c5 settings .local.json updated 2026-06-08 12:01:13 +00:00
Jun-te Kim
b5d0de4069 Merge remote-tracking branch 'refs/remotes/origin/feature/frontend_landlord_overrides' into feature/frontend_landlord_overrides 2026-06-08 09:45:42 +00:00
Jun-te Kim
30d3e727d1 route of the address2uprn problem of float value 2026-06-08 09:38:48 +00:00
Jun-te Kim
f6545c2fa0 property override 2026-06-08 09:38:48 +00:00
Jun-te Kim
744bfa2287 Add v2 handover doc for property_overrides population
Self-contained brief to start a fresh context implementing the per-Property fact
layer in the bulk_upload_finaliser: locked decisions, the four-input assembly,
the two open hazards (classifier-CSV↔combiner-output join key; property_id for
no-UPRN rows), candidate architectures, and a first-steps list. v1 (async
finalise writing `property`) is shipped and working.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 09:38:48 +00:00
Jun-te Kim
b9bbd916b5 Render finalising status on the bulk-upload page and auto-advance to complete
The async finaliser (ADR-0005) introduced the `finalising` status, but the
server page's STATUS_CONFIG had no entry for it, so it fell through to the
`ready_for_processing` fallback ("Awaiting column mapping") and never mounted the
live poller — the page looked stuck even though the Lambda had inserted the
properties and written `complete`.

- Add the `finalising` card ("Uploading to ARA") to STATUS_CONFIG.
- Render OnboardingProgress during `finalising` so it polls live.
- Refresh the server page once when the poll first sees a terminal status
  (guarded by a new `serverStatus` prop to avoid a loop; uses react-query v4
  onSuccess, no useEffect) so it advances to the "Processing complete" card.
- Add a `finalising` → "Uploading to ARA" badge on the uploads list.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 09:38:48 +00:00
Jun-te Kim
87aca96dfa bulk upload finaliser 2026-06-08 09:38:48 +00:00
Jun-te Kim
dff86b1ec2 save current progress 2026-06-08 09:38:48 +00:00
Jun-te Kim
22375e1746 Add Step 1 "Verify classification" to bulk-upload review (ADR-0004)
For uploads with classifier columns, surface the classifier's
description→enum assumptions on the awaiting_review screen so the user can
correct any (written source='user') and acknowledge before Finalise.
Previously only the multi-entry order step existed, so non-multi-entry
uploads got no classification review at all and the assumptions were
applied silently.

- detectMultiEntry: capture a sample whenever classifier columns are
  mapped (largest-count row if multi-entry, else first classified row);
  the sample now carries all classifier columns. "sample != null" means
  "there is something to verify"; largestCount >= 2 stays the multi-entry
  signal.
- setVerifyAck + verify-classification PATCH route + useConfirmVerification.
- VerifyClassificationPanel (Step 1); MultiEntryOrderingPanel slimmed to
  order-only with read-only classification annotation; canFinalize gated
  on both steps where each applies.
- Unit tests for detectMultiEntry + ordering helpers.

The verify_ack column + 0219 migration landed separately via #303.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-08 09:38:48 +00:00
Jun-te Kim
c9b7d71843 Show + edit sample classifications on awaiting_review (#298, #299)
#298: read the classifier's resolved enums for the multi-entry sample's
entries (joined from landlord_*_overrides by normalized description) and show
each beside the raw text, or "not classified" when absent.

#299: make each classification editable — a dropdown of the category's valid
enum values whose selection upserts the override by (portfolio, description)
with source='user', so the classifier never re-clobbers it. UI notes the
portfolio-wide blast radius. Verification ack is folded into the existing
order-confirm (no separate flag/migration); editing is optional review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 09:38:48 +00:00
Jun-te Kim
65a5f57321 Confirm building-part ordering on awaiting_review (#297)
Adds the multiEntryOrdering jsonb column + interactive order picker: the
largest-count multi-entry sample is shown with a building-part dropdown per
file position (one Main building + Extensions), validated as a permutation.
A PATCH route persists { count: permutation } + confirmed, and Finalise is
disabled until the ordering is confirmed when the upload is multi-entry.

Migration for the new column is intentionally not included here — generated
after origin/main is merged (its multi_entry_summary migration lands first).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 09:38:48 +00:00
Jun-te Kim
9cb0cb19f3 lanlord exetension application 2026-06-08 09:38:21 +00:00
Jun-te Kim
2e6108a324 dev container change so its more dynamic 2026-06-08 09:37:10 +00:00
Jun-te Kim
052ab446e0 merged from main 2026-06-08 09:36:26 +00:00
Jun-te Kim
4981b0ee12 save plans for landlord overrid 2026-06-08 09:35:29 +00:00
Daniel Roth
b16e0f7d3d new tables for magicplan ventilation. move opening type from window table to window ventilation table 2026-06-08 09:25:16 +00:00
Khalim Conn-Kowlessar
6f38677da3 Make recommendation denormalisation backfill safe and online
The 0222-0225 batch backfilled plan_id/material_* onto recommendation
inside drizzle's single migration transaction. On the production table
(~26M rows) that held an AccessExclusiveLock for hours, blocked unrelated
migrations, exhausted EBS throughput credits, and could not report
progress or resume.

Split schema DDL from data backfill:
- 0222/0224: keep only instant metadata-only DDL (ADD COLUMN + FK
  NOT VALID); drop the inline CREATE INDEX.
- 0223/0225: backfills removed (now no-ops pointing to the script).
- New src/app/db/backfill-recommendation-denormalization.ts: idempotent,
  resumable, batched (committed per batch) backfill that then builds the
  indexes CONCURRENTLY and validates the FKs online.
- CONTEXT.md: document recommendation->plan (1:1) and recommendation->
  material (now at most 1; legacy multi-material rows reconciled).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 08:36:39 +00:00
Jun-te Kim
3f277f13c2 route of the address2uprn problem of float value
Some checks failed
Test Suite / unit-tests (push) Has been cancelled
2026-06-05 19:02:35 +00:00