docs(issues): retire the stale IN FLIGHT annotations, archive 9 verified rows - #1940
Conversation
…ied rows 11 open rows still carried an "IN FLIGHT — do not start" note naming a PR that was working them. Six of the seven PRs named have since merged, so for 10 of those rows the safeguard had outlived its cause and was telling readers to stay away from work already landed. Each row was verified against the code on main rather than trusted from its annotation: - Archived as delivered (8): #178#209#221#233#234#235#237#238 - Archived as intentional (1): #245 — both rails are still mounted, but cross-mode-links.tsx:220-224 now documents that as a deliberate SSR/first-paint decision; removing one would reintroduce the mismatch - Kept open (2): #150 needs the operator's CodeRabbit dashboard, which no container can read; #162 names PR #1839, the one PR in the cluster still open, so its annotation is accurate and stays #221 is the one worth noting: local EmptyState/LoadingState/Chip names do still exist, but they are now delegating wrappers (therapy-compass/ui.tsx:161-173 forwards to SharedEmptyState), which is the documented convergence outcome rather than the duplication the row filed. Queued as immutable inbox requests; apply with npm run issues:reconcile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:34 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 (15)
Comment |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
This pull request has been ignored for the connected project Preview Branches by Supabase. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:2b44e8085a
ℹ️ 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".
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Second serial transaction. 25 active mutations (13 done, 6 add, 6 update) plus 5 cancellation decisions. Ledger 106 open / 222 archived to 99 open / 235 archived; inbox 0 pending / 129 applied. Three of the closures queued in #1940 were cancelled by review, and the cancellations are right: #235, #237 and #238 each asked for visual or browser proof, and they were closed on executable evidence instead — proof shots, a real 320px browser pass, and product-overlay journeys are not satisfied by a docs table, a jsdom assertion, or generic Sheet unit coverage. Those three rows stay open. The other six closures applied. Verified zero live same-target collisions before applying. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
…s instrument now exists Four corrections, queued as immutable inbox requests. #235, #237 and #238 each had a `done` queued in PR #1940 and cancelled on review. The cancellations were right: all three ask for visual or browser proof and were closed on executable evidence. Each row now records the attempt, the reason it was refused, and a Stop rule naming the evidence class that must not be used again — so the next reader does not repeat it: - #235: section 7.1 opens with "records executable evidence RATHER THAN committing image baselines", so the section that looks like the evidence says in its first line that it is not - #237: jsdom does not lay out text, so a 320px assertion proves the string is present, not that it fits - #238: the risk is ancestor-scoped CSS/contain/transform on five specific host surfaces, which no Sheet component test can see All three also drop their IN FLIGHT do-not-start prefix; PRs #1841 and #1842 have merged, so the warning was blocking rather than protecting. #231's "Next: instrument and reproduce" is stale — commit a3bc4da added scripts/probe-generation-quality.ts and adjudicated PR #1861 as superseded for phase 1. The row now says so, so nobody reviews #1861 as the live fix or rebuilds the probe. Next is running it where credentials exist. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017paT42ZVMf8jaLtkjFxdy5
Summary
docs— a safeguard that outlived its cause. 11 open ledger rows still carry anIN FLIGHT — do not startnote naming the PR working them. Six of the seven PRs named have since merged, so for 10 of those rows the annotation now tells every reader to stay away from work that already landed. That is worse than no annotation: it manufactures blocked work out of finished work.main, not trusted from its own annotation. That distinction is the whole point — reading a row and reading the code it describes are different acts, and this session has already been wrong twice by conflating them.Archived as delivered (8)
main#178scripts/pr-policy.mjs:335flags exactly the asked-for bundling:operationalRisk && (clinicalRisk || ui)#209tests/design-token-contract.test.ts:202-204asserts--warningon--surfaceat ≥ 4.5 (AA body text), per theme#221therapy-compass/ui.tsx:161-173forwards toSharedEmptyState,:158toLoadingPanel,:3imports DSChip#233COMPONENTS.md:16§0 is now the generated maturity matrix, not the pre-adoption world; the optionality-marker contract is documented atCOMPONENTS.md:387-390#234answer-copy-payload.tscarries a header documenting the single-builder contract, its three consuming surfaces, and why it sits outside bothsrc/liband the design system#235ADOPTION.md:318§7 now lists proof targets for all six surfaces; §7.1 records per-surface executable evidence with its focused owner/check#237tests/accessible-table.dom.test.tsx:110asserts the full missing-value phrase stays readable in the dense 320px preview#238tests/sheet.dom.test.tsxexists; portal default isportal = true(:108) with the documentedportal={false}opt-out (:75)Archived as intentional (1).
#245— its premise still holds literally, both rails are mounted, butcross-mode-links.tsx:220-224now documents that as a deliberate decision: both stay mounted so SSR and first paint agree,hidden/md:hiddenusedisplay: noneso the inactive rail leaves the accessibility tree, and distinct test ids stop phone and wide selectors double-counting. Removing a rail would reintroduce the hydration mismatch that comment exists to prevent, so this is resolved-by-design rather than fixed.Kept open (2), deliberately.
#150is not code-verifiable from a container — CodeRabbit's spending cap is account state, so it needs the operator's dashboard; the row is re-scoped to say so.#162names PR #1839, the one PR in this cluster still open (no merge commit onorigin/main;refs/pull/1839/mergestill exists, which GitHub keeps only for open PRs), so its annotation is accurate and stays.#221is the one worth a second look in review: the localEmptyState/LoadingState/Chipnames still exist, and a grep alone would read that as the duplication the row filed. They forward to the design system now, which is the documented convergence outcome — a fact only visible by opening the file.Verification
npm run verify:pr-localUI verification not run: no UI, routing, styling, or browser-behaviour change in this diff — the design-system rows are verified by reading their committed contracts and tests, not by re-running them.
Risk and rollout
docs/outstanding-issues-inbox/. No application source, no dependency, no schema, no workflow, and the canonical ledger is untouched until a separate reconcile applies them.git revertthe single commit, or delete the request files before reconciliation. An archive is also reversible after the fact — rows move to the archive table, they are never deleted.Notes
## Clinical Governance Preflightsection:classifyPullRequestFilesreturnsclinicalRisk: false,operationalRisk: false,ragRanking: false,ui: falsefordocs/outstanding-issues-inbox/**; the diff touches no ingestion, answer-generation, ranking, source-rendering, document-access or privacy surface.AGENTS.md.Generated by Claude Code