feat(budget): add source contact fields, household settings, and document attachment typing - #1883
Conversation
…ment attachment typing Adds reference/contactAddress fields to budget sources, a household sender settings endpoint backed by a new app_settings table, and attachment-type tagging (quotation/deposit/invoice) for document links on invoices to support the upcoming Bank Report Wizard. Fixes #1877 Co-Authored-By: Claude dev-team-lead (Sonnet 4.6) <noreply@anthropic.com> Co-Authored-By: Claude backend-developer (Haiku 4.5) <noreply@anthropic.com> Co-Authored-By: Claude frontend-developer (Haiku 4.5) <noreply@anthropic.com> Co-Authored-By: Claude translator (Sonnet 4.5) <noreply@anthropic.com> Co-Authored-By: Claude qa-integration-tester (Sonnet 4.5) <noreply@anthropic.com> Co-Authored-By: Claude e2e-test-engineer (Sonnet 4.5) <noreply@anthropic.com>
|
[security-engineer] Security review of PR #1883 (Story #1877 — budget-source contact fields, document attachment typing, household settings). Scope reviewed
Authorization —
|
|
[ux-designer] Reviewed the implementation against the visual spec posted on #1877. Went through each of the four surfaces plus token/a11y/dark-mode/responsive checks. 1. Budget source Reference / Contact address fields
2. ManagePage Household tabTab is first in Skeleton lines deviation validated: implementation uses 3. Attachment-type badges
4. LinkedDocumentCard select + badgeMatches spec: conditional One finding (medium, non-blocking): the spec said reuse 5. Picker attachment-type field (
|
|
[product-owner] Product Owner review of PR #1883 against Story #1877 acceptance criteria. AC coverageBudget source contact fields
Tests: Household name & address app setting
Tests: I accept the adjudicated placement: household name/address is household-wide reference data, not per-user profile data, so the Manage page is the right home and a dedicated settings page would have been a needless new surface. Noting for the record that the Household tab renders first in the tab list but the page's default landing tab is unchanged ( The AC said "stored via the existing app-settings mechanism". There was no app-scoped mechanism ( Document attachment typing
I also accept the adjudicated split on the two pickers. The invoice-creation Paperless picker ( Scope disciplineNo undocumented functionality. Everything in the diff traces to an AC, to the shared #1876 follow-up checkConfirmed: nothing in this PR touches the invoice amount labels, so the "Effective Amount" vs "Final payment" label alignment I flagged on #1876 is neither fixed nor worsened here. It remains open as future work, as agreed — no action required on this PR. Non-blocking notes (no fix required before merge)
VerdictAll nine acceptance criteria are met, each with unit/integration coverage and E2E coverage at the browser level, including the two adjudicated design decisions. No functional gaps, no display-formatting gaps, no scope creep. APPROVED |
|
[product-architect] Architecture review of PR #1883 (story #1877). Reviewed: migrations 0041/0042/0043, the new VerifiedMigrations
Contract & conventions — error shapes, status codes, Wiki — updated in the same PR with the submodule ref committed on the branch, which is the discipline I most often have to ask for. The diff also repairs two pre-existing staleness bugs (the documented Findings (none blocking)M1 — M2 — Architecture.md has no counterpart entry for the new mechanism. M3 — This warrants an ADR. L1 — L2 — No admin gate on L3 — Informational
Nothing here breaks a contract or introduces architectural debt that needs to be paid before merge. M1 is worth folding in during refinement; M2/M3 are mine. VERDICT: APPROVED |
…ence tests Fixes full-matrix shard failures on PR #1883: exact:true tab locators in settings-manage, a search-scoped invoice row selector, and column-preference cleanup with header-scan retry in InvoicesPage. Co-Authored-By: Claude dev-team-lead (Sonnet 4.6) <noreply@anthropic.com> Co-Authored-By: Claude e2e-test-engineer (Sonnet 4.5) <noreply@anthropic.com>
|
🎉 This PR is included in version 2.13.0-beta.27 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
|
🎉 This PR is included in version 2.13.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Summary
referenceandcontactAddressfields to budget sources for the upcoming Bank Report Wizardapp_settings) so the household's own contact details can be recordedquotation/deposit/invoice) to document links on invoices, including aPATCH /api/document-links/:idendpoint to tag/retag/clear the typeFixes #1877
Test plan
Co-Authored-By: Claude dev-team-lead (Sonnet 4.6) noreply@anthropic.com
Co-Authored-By: Claude backend-developer (Haiku 4.5) noreply@anthropic.com
Co-Authored-By: Claude frontend-developer (Haiku 4.5) noreply@anthropic.com
Co-Authored-By: Claude translator (Sonnet 4.5) noreply@anthropic.com
Co-Authored-By: Claude qa-integration-tester (Sonnet 4.5) noreply@anthropic.com
Co-Authored-By: Claude e2e-test-engineer (Sonnet 4.5) noreply@anthropic.com