[Backend][UX] Expose archived board capture and decision history (#1973) - #2031
[Backend][UX] Expose archived board capture and decision history (#1973)#2031Chris0Jeky wants to merge 4 commits into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 800a640d96
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Fresh independent final-head review completed against exact base No new HIGH/CRITICAL, MEDIUM, or LOW finding. The two original P1 paths are fixed: archived navigation preserves explicit history mode; both Inbox skins suppress mutations; both Review skins expose selectable settled records without mutation controls; reverse links preserve board/history scope; and same-component transitions cancel stale apply/reject dialogs. The tests exercise six settled Paper records (beyond the former four-row cap) and assert Inbox/Review mutation calls remain untouched. The already-recorded mobile action wrapping and disabled- |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ecf44ea2a3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Parking this PR under the repository's two-round review ceiling. Exact head All seven late threads were triaged, replied to, and resolved. The exact successor scope, green evidence, residuals, and resume procedure are recorded at #1973 (comment). Do not delete or rewrite the branch/worktree lineage and do not infer shipped behavior from this PR's green CI. |
PR #2031 was parked at the review ceiling with two confirmed HIGH paths still open. Both are the same defect seen from two ends: archived history claimed to be a read-only inspection surface, but one end had nothing to inspect and the other let the user carry an archived record back into the live queue. Paper capture history had no detail surface. Stripping the triage controls left an archived row with a truncated `textExcerpt` and an `open` button wired to a no-op, so the retained capture was reachable in name only -- which is the disclosure defect #1973 is about. Opening a row in archived mode now expands a read-only panel with the full retained text, its triage provenance, and a link to the decision record it produced. The load goes through `peekDetail`, not `fetchDetail`, so inspecting history cannot cache into `detailById` or resync a live list summary. A late payload is discarded if the row was collapsed or another row was opened meanwhile, and leaving history mode or re-scoping to another board collapses the panel. Clearing scope carried the proposal deep link out of archived history. The exit preserved `route.hash`, which handed the archived board's proposal to the UNSCOPED queue: the hash watcher refetched it by id, no board filter was left to reject it, and Apply/Reject reappeared against an archived board. Leaving archived history now drops the hash with it. An ordinary board clear is not a trust boundary and keeps its deep link, asserted separately so the fix cannot be over-applied. Both regressions were mutation-checked: inverting the archived guard and restoring the preserved hash each fail the new tests.
Summary
This is a partial slice for #1973:
Verification
Review disposition
Documentation
Canonical status, masterplan, and testing-guide docs are coordinator-owned and intentionally unchanged for this partial slice.
Tracking
Risk Notes