Follow-up to the 2026-10-18 architecture audit, linked to PAR-449 and the completed architecture rebuild PAR-408. Rules are in docs/architecture.md. Audit baseline: commit 08d99ee; all 18 architecture checks passed, which does not establish full compliance.
Evidence: issues/usecase/UpdateIssue.java:16–18 imports IssueWriteRepository.Column, Kind and Row. Its patch logic builds column/value maps, including nulls to clear SQL fields. issues/persistence/IssueWriteRepository.java:21–33 exposes the row shape and SQL-column enum. Similar imports occur in ReorderIssues, DeleteIssue, RestoreIssue, ArchiveIssue and MoveIssue.
Acceptance:
Implemented in stacked PR #118, based on the preceding architecture layer. Cumulative verification at 46d7c31: 1,334 backend tests, 1,230 web unit tests and 480 Chromium story tests passed; lint, typecheck, API drift and production build/CSS checks passed. The complete story suite passed on the CI-prescribed retry after the known PAR-443 iframe import flake. Diagram uploaded and PR base/head verified. Awaiting review; not merged.
Merged PR #118 into main after all eight stack PRs passed CI. Merge commits preserved dependency ancestry; every layer's retargeted diff and exact head were verified. The full stack head 46d7c31 is now an ancestor of main at b5d5ef5. Marked Done. The separate tenant-index clarification remains tracked in PAR-495.
Implementing layer 3 above PAR-474: replace repository-owned issue Row/Column shapes with editable business state and typed keep/set/clear changes; JDBC alone maps those to columns/nulls. Preserve patch semantics, board ordering, bulk rollback and event tests. Inventory other nested repository types and add a boundary guard.