Skip to content

docs(issues): reconcile the queued inbox batch into the canonical ledger - #2218

Merged
BigSimmo merged 2 commits into
mainfrom
claude/issues-reconcile-post-2206
Aug 21, 2026
Merged

docs(issues): reconcile the queued inbox batch into the canonical ledger#2218
BigSimmo merged 2 commits into
mainfrom
claude/issues-reconcile-post-2206

Conversation

@BigSimmo

@BigSimmoBigSimmo commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Reconciles the 29 immutable inbox requests pending at base af2075a5c into docs/outstanding-issues.md as one audited transaction, so the canonical ledger equals a clean application of that batch and check:ledger-write-discipline can verify it. Processed requests move to docs/outstanding-issues-inbox/applied/ as the audit trail.
  • This is the deliberately serialised ledger step: ordinary branches queue immutable requests and never edit the canonical ledger, and one fresh-base branch applies the batch.
  • Two of the 29 are closures raised by the Codex review of PR docs(issues): reopen #343 and #318, correct stale RAG coordination state #2206 and verified against the ledger before being queued. They could not be reconciled in docs(issues): reopen #343 and #318, correct stale RAG coordination state #2206 itself, because the write-discipline audit compares the ledger against a clean application of the requests present in that PR's base, and both were created on its branch:
    • #VZN8G3 closed as a duplicate of the earlier, still-open #BSBE9B. Both require the same docling-lab-fixtures.v2 corpus — unruled tables, merged/spanning cells, rotated headers — and both gate any docling table-quality promotion argument on that corpus existing. #BSBE9B remains canonical. Root cause recorded with the request: inbox request a20fc4ce was queued without first checking the ledger for an existing row, and the collision only became visible once reconciliation allocated an id.
    • #Q5JHBJ archived. 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 with CHAIN == 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.
  • 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; nothing here is a hand edit.

Verification

  • The decisive gate for this change is check:ledger-write-discipline, and the pre-push guard ran it against the exact pushed commit 42dc0e0f4with no override. The push completed clean:

     * [new branch] claude/issues-reconcile-post-2206 -> claude/issues-reconcile-post-2206
    

    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 required SKIP_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:

    Reconciling 29 request(s) into docs/outstanding-issues.md.
    Applied 29 request(s); their immutable audit records are under docs/outstanding-issues-inbox/applied.
    
  • Placement of the two closures confirmed directly against the committed file (## Open items at line 70, ## Resolved / archive at line 149, both rows now at 499 and 502):

    open@70 resolved@149 Q5JHBJ-row@499 VZN8G3-row@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-discipline invocation 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

  • Risk: Low, but not zero — this rewrites the canonical ledger, which is shared state. The mitigation is structural rather than procedural: the batch is a mechanical application of immutable requests, and check:ledger-write-discipline fails 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.
  • The one judgement call worth a reviewer's eye is the two closures above. Both were verified against the ledger rather than accepted on the reviewing bot's assertion, and the reasoning is recorded in each done request's outcome text.
  • Rollback: git revert the single commit. The applied/ moves and the ledger edit revert together, returning the requests to pending for a later run.
  • Provider or production effects: None. No provider, Railway, or Supabase call was made.
  • RAG impact: none — no retrieval surface is touched.

Clinical Governance Preflight

Not applicable, and not required by policy: classifyPullRequestFiles returns clinicalRisk: false for this diff. It touches only docs/outstanding-issues.md and docs/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

  • main advanced 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 newest main (af2075a5c), reconciled, and pushed promptly for that reason. If main moves again before this merges, the fix is to merge it and re-run the reconciliation rather than to resolve the ledger by hand.
  • The batch grew from 4 pending requests to 29 between when this step was planned and when it ran, purely because other sessions queued their own in the interval. That is the mechanism working as intended, not scope creep by this PR.

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>
@supabase

supabaseBot commented Aug 21, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@coderabbitai

coderabbitaiBot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Review was skipped as selected files did not have any reviewable changes.

💤 Files selected but had no reviewable changes (30)
  • docs/outstanding-issues-inbox/applied/0177f340-3275-472f-8ef3-3a415e335125.json
  • docs/outstanding-issues-inbox/applied/01cacbb4-9d47-4d05-bf34-becd134b9075.json
  • docs/outstanding-issues-inbox/applied/02846e88-de52-42be-8c67-a5335e722fea.json
  • docs/outstanding-issues-inbox/applied/39b3c784-e840-4308-91c2-a146f4ff5c45.json
  • docs/outstanding-issues-inbox/applied/3bb892c3-a2c5-4718-828a-1ccedface10e.json
  • docs/outstanding-issues-inbox/applied/3d23b389-3d2b-4043-b3b1-85633b5962a1.json
  • docs/outstanding-issues-inbox/applied/43f5e351-6a7b-4217-b4a4-897d8be9b905.json
  • docs/outstanding-issues-inbox/applied/4aa68f9f-0961-4681-9859-dd0560a1bbbf.json
  • docs/outstanding-issues-inbox/applied/53491e9a-64f0-4e67-b175-1e69c82a1be4.json
  • docs/outstanding-issues-inbox/applied/5b3c1df6-69e3-4f90-877f-915ee75358de.json
  • docs/outstanding-issues-inbox/applied/5b6fdafd-91f9-4225-a472-52b4a5d16303.json
  • docs/outstanding-issues-inbox/applied/65a686fe-7165-4fc9-9f1b-4b98c1824203.json
  • docs/outstanding-issues-inbox/applied/74e3183a-6e6a-49ef-9e8d-6bb329396ca6.json
  • docs/outstanding-issues-inbox/applied/7c385a4f-f54b-41f8-8841-883cd1995068.json
  • docs/outstanding-issues-inbox/applied/81b9bb52-9f07-496e-b12b-7795c93c8e24.json
  • docs/outstanding-issues-inbox/applied/8da919a5-4e1b-417c-89df-7a1692a61f17.json
  • docs/outstanding-issues-inbox/applied/a56255bc-102a-4483-b7eb-c387e758054e.json
  • docs/outstanding-issues-inbox/applied/a718d880-9295-4019-8a60-d0952293668b.json
  • docs/outstanding-issues-inbox/applied/ae71cb9d-8094-44aa-bb1e-f1022156acc5.json
  • docs/outstanding-issues-inbox/applied/b9a9492c-5cb5-4e13-8428-fbb3f70d979e.json
  • docs/outstanding-issues-inbox/applied/b9aea308-80d5-43e1-b464-902e499e46a4.json
  • docs/outstanding-issues-inbox/applied/bd007515-51b0-49d5-ad9e-4e97ea701ab4.json
  • docs/outstanding-issues-inbox/applied/bd931cc7-71ad-430e-8921-241633e1c5be.json
  • docs/outstanding-issues-inbox/applied/ca09fd31-c3c7-43f1-8277-34afa27c85c6.json
  • docs/outstanding-issues-inbox/applied/d0a9a345-d7da-44e4-b512-e7d413ad2239.json
  • docs/outstanding-issues-inbox/applied/da3fce96-1480-40e9-b2fd-07dcb7d3bae8.json
  • docs/outstanding-issues-inbox/applied/e9386425-20e9-436d-ab13-7e076310c5bb.json
  • docs/outstanding-issues-inbox/applied/f7499c28-d1ac-4230-abbe-517b02001f7e.json
  • docs/outstanding-issues-inbox/applied/fc70be6e-e56f-4377-99b6-54745c5c5ea6.json
  • docs/outstanding-issues.md
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 64327889-a6b4-48b8-8b2e-c6c49d9a7547

📥 Commits

Reviewing files that changed from the base of the PR and between 06dc201 and d866b1c.

📒 Files selected for processing (30)
  • docs/outstanding-issues-inbox/applied/0177f340-3275-472f-8ef3-3a415e335125.json
  • docs/outstanding-issues-inbox/applied/01cacbb4-9d47-4d05-bf34-becd134b9075.json
  • docs/outstanding-issues-inbox/applied/02846e88-de52-42be-8c67-a5335e722fea.json
  • docs/outstanding-issues-inbox/applied/39b3c784-e840-4308-91c2-a146f4ff5c45.json
  • docs/outstanding-issues-inbox/applied/3bb892c3-a2c5-4718-828a-1ccedface10e.json
  • docs/outstanding-issues-inbox/applied/3d23b389-3d2b-4043-b3b1-85633b5962a1.json
  • docs/outstanding-issues-inbox/applied/43f5e351-6a7b-4217-b4a4-897d8be9b905.json
  • docs/outstanding-issues-inbox/applied/4aa68f9f-0961-4681-9859-dd0560a1bbbf.json
  • docs/outstanding-issues-inbox/applied/53491e9a-64f0-4e67-b175-1e69c82a1be4.json
  • docs/outstanding-issues-inbox/applied/5b3c1df6-69e3-4f90-877f-915ee75358de.json
  • docs/outstanding-issues-inbox/applied/5b6fdafd-91f9-4225-a472-52b4a5d16303.json
  • docs/outstanding-issues-inbox/applied/65a686fe-7165-4fc9-9f1b-4b98c1824203.json
  • docs/outstanding-issues-inbox/applied/74e3183a-6e6a-49ef-9e8d-6bb329396ca6.json
  • docs/outstanding-issues-inbox/applied/7c385a4f-f54b-41f8-8841-883cd1995068.json
  • docs/outstanding-issues-inbox/applied/81b9bb52-9f07-496e-b12b-7795c93c8e24.json
  • docs/outstanding-issues-inbox/applied/8da919a5-4e1b-417c-89df-7a1692a61f17.json
  • docs/outstanding-issues-inbox/applied/a56255bc-102a-4483-b7eb-c387e758054e.json
  • docs/outstanding-issues-inbox/applied/a718d880-9295-4019-8a60-d0952293668b.json
  • docs/outstanding-issues-inbox/applied/ae71cb9d-8094-44aa-bb1e-f1022156acc5.json
  • docs/outstanding-issues-inbox/applied/b9a9492c-5cb5-4e13-8428-fbb3f70d979e.json
  • docs/outstanding-issues-inbox/applied/b9aea308-80d5-43e1-b464-902e499e46a4.json
  • docs/outstanding-issues-inbox/applied/bd007515-51b0-49d5-ad9e-4e97ea701ab4.json
  • docs/outstanding-issues-inbox/applied/bd931cc7-71ad-430e-8921-241633e1c5be.json
  • docs/outstanding-issues-inbox/applied/ca09fd31-c3c7-43f1-8277-34afa27c85c6.json
  • docs/outstanding-issues-inbox/applied/d0a9a345-d7da-44e4-b512-e7d413ad2239.json
  • docs/outstanding-issues-inbox/applied/da3fce96-1480-40e9-b2fd-07dcb7d3bae8.json
  • docs/outstanding-issues-inbox/applied/e9386425-20e9-436d-ab13-7e076310c5bb.json
  • docs/outstanding-issues-inbox/applied/f7499c28-d1ac-4230-abbe-517b02001f7e.json
  • docs/outstanding-issues-inbox/applied/fc70be6e-e56f-4377-99b6-54745c5c5ea6.json
  • docs/outstanding-issues.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@BigSimmo
BigSimmo merged commit 02d1bca into mainAug 21, 2026
24 checks passed
@BigSimmo
BigSimmo deleted the claude/issues-reconcile-post-2206 branch August 21, 2026 09:44

@chatgpt-codex-connectorchatgpt-codex-connectorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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 |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@BigSimmo