issues: close #120 as not reproducible on current main - #1452
Conversation
`verify:phone-chrome` exits 1, not 0, when Playwright cannot launch. Reproduced the row's own failure condition on main at fcd9041 — the container ships Chromium 1194 against the repo's required 1234, giving the same 13 launch failures the row describes — and captured OVERALL_EXIT=1. The gate stopped at the focused-browser stage and never reached full-ui. The exit status propagates at verify-phone-chrome.mjs:72-73 and run-playwright.mjs:271-273, and childProcessExitCode returns 1 on a non-integer status. None of those files has changed since 7581cfc, which predates the row, so a later fix is ruled out and the original exit-0 reading is what is in doubt. The leading hypothesis — the status was read through a pipe — is recorded as explicitly unverified, along with the zero-selected-test case this reproduction did not cover. Closed as not reproducible rather than as fixed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in:45 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 |
This pull request has been ignored for the connected project Preview Branches by Supabase. |
Uh oh!
There was an error while loading. Please reload this page.
…gn (#1455) * issues: close#122, capture the container Playwright pin mismatch Three related ledger items, each independently revertible. Close#122 (`ci/circleci: verify` fails on every branch). Its outcome allowed either "trustworthy signal again, or it stops reporting"; the second happened. `.circleci/config.yml` was deleted by 9779828 (PR #1412), and PR #1452's head reported 21 check runs with none named `ci/circleci: verify`, so the status no longer reports on new PRs. No operator log read is needed and the quota hypothesis is retired unproven. Capture #145: the remote container ships Chromium 1194 while the repo's Playwright pin wants 1234, so every browser test dies at launch and zero assertions run while the output reads like product breakage. This has cost time twice — the 2026-07-30 handoff records 13 launch failures read as a code defect, and #120 was filed on a gate reading taken under the same condition. The row gives the start-of-session check and keeps the existing "never run npx playwright install" stop rule. Fix a stale rule found while verifying #122: AGENTS.md cited `ci/circleci: verify` as a check that fails on unformatted files. It cannot report again, so the rule now names `Static PR checks` and records the CircleCI failures as history. The outstanding-issues diff is 4 insertions / 3 deletions ignoring whitespace; the rest is Prettier re-padding the archive table, because #122's original summary is wider than that column and was kept verbatim. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 * issues: fold the Playwright pin evidence into #121, drop duplicate #145 Codex review was right: #121 ("Container Playwright browser build lags the pinned client") already tracks this exact condition — client 1234 versus container 1194, every browser test failing at launch — so #145 created a second canonical action for one problem. The row was allocated without first searching the open table, which is the dedupe step the issues skill requires. #145 is removed and its distinct content folded into #121: the reproduction on main at c5c1a86, the fact that the condition has now been misread twice (the handoff's 13 launch failures, and #120 filed as a gate defect under it), the detection command to run before trusting a browser gate, and the stop rule against filing a gate defect from a run whose tests never launched. #121's own workaround, PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD note and open Next decision are unchanged. The id marker rolls back 146 -> 145 because #145 was never used by a live row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 * issues: record #98 delivery and #130 pre-paint guard design Sync main, then update two rows against evidence rather than adding new ones. #98: PR #1450 landed the counting proxy and answer-path budgets while this branch was open. Verified rather than assumed — the helper counts on execution not construction, tests/rag-round-trip-budget.test.ts pins two answer-path scenarios plus three counter self-tests, and it is registered in the offline contract fixture so it runs there. Ran it: Test Files 1 passed (1), Tests 5 passed (5). The row stays open with its Next narrowed to the two real gaps: /api/search has no budget, and eval-rag-offline/test-rag-offline were not wired. Also records the helper's own blind spot — it sees only traffic through the wrapped client. #130: already owns the unfiled pre-paint/cold-load guard, so its design goes there instead of a new row. Records what the guard must test (the pre-paint reserve seed, sampled before and after hydration rather than once after), why a zero-inset profile is required for it to be able to fail at all, and that it must be proven against the broken shape first. Also records the environment blocker: browser gates cannot launch here per #121, and the symlink bridge writes under /opt, which the sandbox refuses. No new ids allocated; both are updates to rows that already own the work. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2 --------- Co-authored-by: Claude <noreply@anthropic.com>
Summary
#120(verify:phone-chromeexits 0 while reporting failed browser tests) as not reproducible, not fixed, and move the row from Open items to Resolved / archive with the reproduction evidence. Ledger only — one row moved, no source, script, or gate change.The row said the phone-chrome gate returned exit code 0 while its own output ended
13 failed, with every failure at browser launch. That premise does not hold on currentmain. This container ships Chromium build1194against the repo's required1234, which reproduces the row's exact failure condition, and the gate exits 1:The gate stopped at the
focused-browserstage and never reachedfull-ui, which is correct, and the three stages ahead of it were genuinely green (Test Files 9 passed (9),Tests 105 passed (105)).The code path agrees: the status propagates at
scripts/verify-phone-chrome.mjs:72-73andscripts/run-playwright.mjs:271-273, andchildProcessExitCodereturns1whenstatusis not an integer, so a launch error cannot read as 0. Neither of those files, norscripts/child-process-result.mjs, has changed since7581cfc— which predates the row — so "fixed in the meantime" is ruled out and the original exit-0 reading is what is in doubt.Two things the archived row records as explicitly unverified, rather than concluding them:
npm run verify:phone-chromepiped totailreportstail's status rather than the gate's. The original command line was not recorded, so this cannot be confirmed.--grepmatching nothing) was never exercised — only the launch-failure case the row describes. If the gate can return 0 anywhere, that is the remaining candidate, so the row tells a future session to capture the exact command andecho $?with no pipe before re-filing.Verification
npm run verify:pr-localwas not run, and is not the right gate for this diff: the change is one moved row indocs/outstanding-issues.md, with no source, test, script, or config content. The checks that do cover it were run:npm run check:outstanding-issues—Outstanding-issues guard passed: 132 rows (60 open, 72 archived), unique ids, next-id=135 above the highest, union merge active.Open count went 61 → 60 and archived 71 → 72, so the row moved rather than being dropped.npm run format:check(whole tree, not per-file) —All matched files use Prettier code style!npm run verify:phone-chrome -- --files src/components/clinical-dashboard/mobile-composer-reserve.ts, exit status captured without a pipe —OVERALL_EXIT=1alongside13 failed.UI verification not run: no UI, routing, styling, motion, or forced-colors content in this diff.
verify:uicould not produce browser evidence in this container regardless — the same Chromium1194-vs-1234mismatch that made the reproduction possible blocks every browser launch, and installing browsers was deliberately avoided.Verification not run: every provider-backed gate (
eval:*,verify:release,check:supabase-project,test:live) is unimplicated and unauthorized — no OpenAI, Supabase, or hosted-CI call was made in producing or verifying this change.check:production-readinessdoes not apply: no clinical workflow, privacy, environment, Supabase, source-governance, or deployment behaviour is touched.Risk and rollout
git revertthe single commit; the row returns to Open items unchanged.Notes
AGENTS.md"PR bundling", a one-row ledger diff is exactly the case that should ride an existing PR rather than mint its own. It is standalone here because it was opened at explicit request;#122(CircleCI, verified moot locally — no.circleci/directory remains) is the natural bundle-mate if another ledger closure follows.scripts/pr-policy.mjsclassifies this diffclinicalRisk: false,operationalRisk: false,ragRanking: false, so no Clinical Governance Preflight orRAG impact:line is required. Both sections are omitted deliberately rather than left as unchecked boxes.docs/branch-review-ledger.mdrecords reviews, and no branch or PR review was performed here; a ledger-only follow-up push would also re-trigger CI for no added signal.🤖 Generated with Claude Code
https://claude.ai/code/session_018K7sEKH35KZkWxvCnQcNN2
Generated by Claude Code