docs(issues): reconcile the queued inbox batch into the canonical ledger - #2218
Conversation
Applies the 29 immutable inbox requests pending at base af2075a as one audited transaction, so docs/outstanding-issues.md equals a clean application of that batch and check:ledger-write-discipline can verify it. Includes the two closures queued during the PR #2206 review, which could not be reconciled there because they were created on that branch rather than present in its base: - #VZN8G3 closed as a duplicate of the earlier, still-open #BSBE9B (same docling-lab-fixtures.v2 table-hardness corpus, same promotion gate). - #Q5JHBJ archived: its own detail recorded Phase 6.2 complete with proof while the row stayed in Open items, leaving finished deployment and guard work re-dispatchable. Its single residual is tracked separately as #M54C4N. The remaining 27 requests were queued by other sessions for exactly this step and are applied verbatim; the reconciler validates each against the row it targets and rejects stale ones. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Important Review skippedReview was skipped as selected files did not have any reviewable changes. 💤 Files selected but had no reviewable changes (30)
⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (30)
You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:42dc0e0f47
ℹ️ 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".
| | #6K9YGQ <!-- issue-ulid:01M0BE9FVW6K9YGQY9G8CYM421 --> | issue | Three standalone mode homes have no loading.tsx (/medications, /calculators, /dictionary) and the contract test cannot catch it | Resolved 2026-08-21. Verified on main at 1cc0d2987: loading.tsx now exists for all three standalone mode homes (medications, calculators and dictionary under src/app/(search-app)/), and tests/mode-home-loading-contract.test.ts now lists medications, calculators and dictionary in its route array, so the gap is visible to CI. Residual, deliberately not reopened: the contract test's route list is still hand-written rather than derived from standaloneModeHomePaths, which is a hygiene preference, not the reported invisibility. Verification: directory listing plus grep of the contract test. | 2026-08-20 | | ||
| | #0EKBGC <!-- issue-ulid:01M0BE9FPF0EKBGCMBD20EHNDF --> | issue | Three mode homes override the canonical APP_MODE_ICON glyph (services, forms, dictionary) | Resolved 2026-08-21. Verified on main at 1cc0d2987: all three mode homes now derive their glyph from the canonical source - the services home imports appModeIcons and passes icon={appModeIcons.services}, the forms home passes icon={appModeIcons.forms}, and the dictionary home passes icon={appModeIcons.dictionary}. No local Users/FileText/BookOpen override remains on the home tile. Verification: grep for appModeIcons in each mode's home component. | 2026-08-20 | | ||
| | #TAQKCN <!-- issue-ulid:01M0ADWJHYTAQKCNFSXW52CDSG --> | task | One hand-drawn SVG checkmark survived the Therapy Compass lucide sweep | Resolved 2026-08-21. Verified on main at 1cc0d2987: src/components/therapy-compass/screens/recommend-screen.tsx contains no <svg element at all, and line 4 imports Check from lucide-react alongside ArrowRight, Copy, Search, Shield and Sparkles. The hand-drawn tick in the QUICK CONSTRAINTS pills was converted. Verification: grep for '<svg' and 'lucide' in that file. | 2026-08-20 | | ||
| | #D6G8TC <!-- issue-ulid:01M0AF9GB3D6G8TCE6EPRNJAF0 --> | task | Three Therapy Compass h1 elements still sit outside PageHeader, and the patient-sheet builder renders two of them at once | Resolved 2026-08-21. Verified on main at 1cc0d2987: src/components/therapy-compass/ contains zero <h1 elements - the only remaining match is a prose comment in compare-screen.tsx. detail-screen.tsx, sheets-screen.tsx and other-screen.tsx no longer render their own h1, so the patient-sheet builder's double-h1 is gone too. The documented stop rule (do not add a print exception for <header>) was not triggered. Verification: grep for '<h1' across therapy-compass. | 2026-08-20 | |
There was a problem hiding this comment.
Keep the therapy print-title issue open
When a /therapy-compass/[slug] record is printed, this closure is incorrect: at the reviewed target detail-screen.tsx:71-74 renders the only in-page t.name via PageHeader, page-header.tsx:148 makes that component a <header>, and globals.css:4241-4244 hides every header with display: none !important under @media print. The printed clinical record therefore loses its name—the exact stop condition this archived row claims was not triggered—so keep #D6G8TC open (or add a print-visible title) and pin it with a print DOM/CSS test rather than the reported <h1> grep.
AGENTS.md reference: AGENTS.md:L901-L903
Useful? React with 👍 / 👎.
Summary
af2075a5cintodocs/outstanding-issues.mdas one audited transaction, so the canonical ledger equals a clean application of that batch andcheck:ledger-write-disciplinecan verify it. Processed requests move todocs/outstanding-issues-inbox/applied/as the audit trail.#VZN8G3closed as a duplicate of the earlier, still-open#BSBE9B. Both require the samedocling-lab-fixtures.v2corpus — unruled tables, merged/spanning cells, rotated headers — and both gate any docling table-quality promotion argument on that corpus existing.#BSBE9Bremains canonical. Root cause recorded with the request: inbox requesta20fc4cewas queued without first checking the ledger for an existing row, and the collision only became visible once reconciliation allocated an id.#Q5JHBJarchived. Its own detail recorded Phase 6.2 as complete with proof (probe deployed in the owner-authorised window, all fifteen no-statements versions classified, six fail-fast guard migrations landed, chain replay Applied 210/210 withCHAIN == MANIFEST, live-drift run 32251326536 reporting no unexpected drift) while the row stayed in## Open items, leaving finished deployment and guard work re-dispatchable. The row itself states its single residual is out of scope and tracked as#M54C4N.Verification
The decisive gate for this change is
check:ledger-write-discipline, and the pre-push guard ran it against the exact pushed commit42dc0e0f4with no override. The push completed clean:Stated precisely: the guard emitted no verdict line — it is silent on success — so this is the absence of a failure, not a printed pass. That absence is meaningful here rather than vacuous, because the same guard demonstrably blocks on this exact check: two earlier pushes in this session were rejected by it with
Ledger write-discipline check failed: …and requiredSKIP_LEDGER_WRITE_GUARD=1. Those were on the docs(issues): reopen #343 and #318, correct stale RAG coordination state #2206 branch, which both applied base requests and queued new ones. This branch queues nothing new, so the guard has nothing to object to — which is itself the signal that the batch is complete and self-consistent. CI re-runs the same check against the PR's base sha and is the authoritative verdict.Reconciler output on the exact batch:
Placement of the two closures confirmed directly against the committed file (
## Open itemsat line 70,## Resolved / archiveat line 149, both rows now at 499 and 502):Prettier:
All matched files use Prettier code style!on the changed markdown, run before the commit.Verification not run: the standalone
npm run check:ledger-write-disciplineinvocation was started before the push and abandoned after sitting over ten minutes without completing — it appeared to be queuing on the repository's cross-worktree lock rather than failing. The pre-push guard subsequently ran the same check on the pushed commit without rejecting it (see the qualification above), and CI runs it again with the PR's base sha, so the coverage is not lost. Recording it because a skipped gate should be visible rather than implied.npm run verify:ui— UI verification not run: no UI, routing, styling, or browser behaviour changed. The diff is the canonical ledger plus inbox audit records.npm run verify:release,npm run eval:retrieval:quality,npm run eval:rag,npm run check:production-readiness,npm run check:deployment-readiness— Verification not run: no retrieval, ranking, answer-generation, clinical, environment, Supabase, or deployment behaviour changed, and each is provider-backed.Risk and rollout
check:ledger-write-disciplinefails the PR unless the resulting file is byte-identical to recomputing that application from the base. A hand edit, a dropped request, or a partial batch cannot pass.donerequest's outcome text.git revertthe single commit. The applied/ moves and the ledger edit revert together, returning the requests to pending for a later run.Clinical Governance Preflight
Not applicable, and not required by policy:
classifyPullRequestFilesreturnsclinicalRisk: falsefor this diff. It touches onlydocs/outstanding-issues.mdanddocs/outstanding-issues-inbox/**, matching none of the clinical-risk, operational-risk, or RAG-ranking path patterns, and changes no ingestion, answer-generation, search, source-rendering, document-access, privacy, or production behaviour.Notes
mainadvanced roughly six times during this work, and each move invalidated an in-flight reconciliation, since the ledger must byte-match a recomputation from the current base. This branch was cut fresh, merged the newestmain(af2075a5c), reconciled, and pushed promptly for that reason. Ifmainmoves again before this merges, the fix is to merge it and re-run the reconciliation rather than to resolve the ledger by hand.