docs(issues): archive #113 and #114, open #117 for the stale spec reference - #1420
Conversation
…erence Both fixes merged today, but the ledger still listed them as open work — which puts finished items back in the recommended queue and is exactly the kind of drift the ledger exists to prevent. - #113 -> archive. PR #1405 (`c2edda18`). Carries forward the thing worth remembering: the ~8% threshold headroom is not padding. A measured-plus- one-pixel attempt passed locally and failed CI by exactly 1px because the variable face rasterises wider on ubuntu-24.04. - #114 -> archive. PR #1407. Records both defects, including the one review found second: `samples=1` reached the grader as a valid integer and reproduced the single-run matrix the work removes, printing the bold within-threshold verdict with 0 breaches and 0 incomplete. - #117 opened for the loose end flagged in #1405's body and deliberately left out of that diff: `ui-therapy-nav-scroll.spec.ts` points at a `mode-nav-bar-anchoring.spec.ts` that PR #1390 left behind and that exists nowhere in the repo. Scripted rather than hand-edited. The open table is seven cells and the archive is five, and hand-editing across that boundary is how #112/#113/ #114 landed in the wrong table on 2026-07-29. Verified: 116 -> 117 rows, no id lost, #113/#114 the only rows that changed table. `check:outstanding-issues` — the gate added for #112 — passes: `117 rows (55 open, 62 archived), unique ids, next-id=118 above the highest`. verify:cheap exit 0, `Tests 4480 passed | 4 skipped`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FvU8z73P6TXUXoYBqN5K1P
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 30 minutes Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d5baf7e5f0
ℹ️ 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".
The #113 archive row cited `c2edda18` as PR #1405's merge commit. That was the branch tip, which the squash merge discarded, so the claim was already unverifiable when it was written: git merge-base --is-ancestor c2edda1 origin/main -> fails git merge-base --is-ancestor 020c126 origin/main -> ok 020c126 fix(mode-nav): size slots to their content ... (#1405) In a ledger whose whole purpose is durable, auditable resolution history, a resolution nobody can check is worse than no resolution note. The trap is that this repo mixes merge strategies: #1407 and #1410 landed as merge commits, so their branch SHAs stay reachable; #1405 was squashed and its did not. Copying the PR head works three times in four, which is exactly the kind of rule that survives review until it doesn't. Verified after the edit: `c2edda18` no longer appears anywhere in the file, the replacement is an ancestor of main, and `check:outstanding-issues` still passes with `117 rows (55 open, 62 archived), unique ids, next-id=118 above the highest`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FvU8z73P6TXUXoYBqN5K1P
Whole-table conflict in docs/outstanding-issues.md — main advanced 44 commits and gained rows while this PR sat open. Resolved by rebuilding from main's current file and re-applying this branch's three changes, not by taking either side: settling a whole-table conflict by picking a side is the row-loss failure ledger #112 exists to make loud. Renumbered the new row #117 -> #125. When this branch opened it, the marker was 117; main's marker is now 125 and #117..#119 were reserved by other sessions in the meantime, so keeping #117 would have collided with a row someone else is about to add under that number. Ids are never reused — renumber the incoming row above the marker and bump it. Audited row-by-row against origin/main rather than eyeballed: main rows: 119 resolved rows: 120 LOST from main: (none) ADDED vs main: #125 MOVED table: #113 open->archive, #114 open->archive duplicates: (none) check:outstanding-issues: 120 rows (58 open, 62 archived), unique ids, next-id=126 above the highest. verify:cheap exit 0, Tests 4493 passed | 4 skipped. format:check clean. `c2edda18` still absent from the file. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FvU8z73P6TXUXoYBqN5K1P
PR #1420 landed its own `#125` while this branch was allocating one — exactly the unprotected read-modify-write race archived as #112. Both rows are kept: theirs holds #125, the phone-scroll CI capture moves to #126, and the marker advances to 127. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XrPbbfU9yWuEjEVypCr4ZQ
Summary
Ledger closeout for the three defect fixes that merged this morning.
#113and#114both landed but were still sitting in the Open items table, which puts finished work back into the recommended queue — the precise driftdocs/outstanding-issues.mdexists to prevent.#113→ archive. PR fix(mode-nav): size slots to their content so labels stop being clipped #1405, landed onmainas020c1260. The outcome record carries forward the one thing worth remembering rather than just "fixed": the ~8% threshold headroom is not padding. A measured-plus-one-pixel attempt (21/31rem) passed locally and failed CI by exactly 1px, because the variable face rasterises wider onubuntu-24.04. A threshold calibrated to one machine's font metrics is calibrated to nothing.#114→ archive. PR fix(web-vitals): sample each route, grade the median, refuse a noisy cell #1407, landed asa73db460. Records both defects, including the one review caught second:samplesis a free-textworkflow_dispatchinput, sosamples=1reached the grader as a valid integer and reproduced the exact single-run matrix the work removes — verified against the pre-fix logic at 0 breaches, 0 incomplete, printing the bold "Every mobile route is within" verdict.#117opened for the loose end I flagged in fix(mode-nav): size slots to their content so labels stop being clipped #1405's own body and deliberately kept out of that diff:ui-therapy-nav-scroll.spec.tscites amode-nav-bar-anchoring.spec.tsthat PR feat(nav): pin a shared ModeNav inside the universal header, wired to Therapy search #1390 left behind and that exists nowhere in the repo. Harmless at runtime; it just sends the next person looking for anchoring coverage to a file that isn't there.#112was already archived by PR #1410 (landedf5a76c5e) and is untouched here.Bundled into one PR rather than three branches, per the
## PR bundlingrule added toAGENTS.mdin #1408 — append-only ledger edits are named there as the best bundling candidates.Verification
Scripted, not hand-edited. The open table is seven cells and the archive is five; hand-editing across that boundary is exactly how
#112/#113/#114landed in the wrong table on 2026-07-29. The script converts the row shape explicitly and refuses to run if it does not find exactly two rows to move.Row-set diff computed against
origin/mainrather than eyeballed:npm run check:outstanding-issues— the gate added for#112, now validating an edit to the file it was written to protect:117 rows (55 open, 62 archived), unique ids, next-id=118 above the highestnpm run verify:cheap— exit 0,Test Files 431 passed (431),Tests 4480 passed | 4 skipped (4484)npm run format:check—All matched files use Prettier code style!git merge-base --is-ancestorafter the review finding above, rather than by reading the branch tip.Risk and rollout
Clinical Governance Preflight
Not applicable — the diff is one markdown ledger file. No ingestion, answer generation, search/ranking, source rendering, document access, privacy, or clinical output path is touched.
Clinical KB Database(sjrfecxgysukkwxsowpy)RAG impact: no retrieval behaviour change — a documentation ledger only; nothing under
src/lib/rag/**, clinical-search, ranking-config, the eval harness or the golden fixture is touched.🤖 Generated with Claude Code
https://claude.ai/code/session_01FvU8z73P6TXUXoYBqN5K1P