Skip to content

issues: close #120 as not reproducible on current main - #1452

Merged
BigSimmo merged 2 commits into
mainfrom
claude/understand-next-steps-tvxuin
Jul 30, 2026
Merged

issues: close #120 as not reproducible on current main#1452
BigSimmo merged 2 commits into
mainfrom
claude/understand-next-steps-tvxuin

Conversation

@BigSimmo

Copy link
Copy Markdown
Owner

Summary

  • Close ledger #120 (verify:phone-chrome exits 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 current main. This container ships Chromium build 1194 against the repo's required 1234, which reproduces the row's exact failure condition, and the gate exits 1:

 13 failed
[chromium] › tests/ui-phone-scroll.spec.ts:361:5 › phone browser results use document scrolling…
… (12 more, every one at browserType.launch)
OVERALL_EXIT=1

The gate stopped at the focused-browser stage and never reached full-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-73 and scripts/run-playwright.mjs:271-273, and childProcessExitCode returns 1 when status is not an integer, so a launch error cannot read as 0. Neither of those files, nor scripts/child-process-result.mjs, has changed since 7581cfc — 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:

  • The leading hypothesis is that the 0 was read through a pipe, since npm run verify:phone-chrome piped to tail reports tail's status rather than the gate's. The original command line was not recorded, so this cannot be confirmed.
  • The zero-selected-test case (a --grep matching 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 and echo $? with no pipe before re-filing.

Verification

npm run verify:pr-local was not run, and is not the right gate for this diff: the change is one moved row in docs/outstanding-issues.md, with no source, test, script, or config content. The checks that do cover it were run:

  • npm run check:outstanding-issuesOutstanding-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!
  • The reproduction behind the closure: npm run verify:phone-chrome -- --files src/components/clinical-dashboard/mobile-composer-reserve.ts, exit status captured without a pipe — OVERALL_EXIT=1 alongside 13 failed.

UI verification not run: no UI, routing, styling, motion, or forced-colors content in this diff. verify:ui could not produce browser evidence in this container regardless — the same Chromium 1194-vs-1234 mismatch 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-readiness does not apply: no clinical workflow, privacy, environment, Supabase, source-governance, or deployment behaviour is touched.

Risk and rollout

  • Risk: Very low, and confined to repository memory. The only behavioural effect is that a future session will no longer spend time implementing a fix for a defect that does not currently reproduce. The asymmetric risk is the opposite one — closing a real defect by mistake — which is why the row is archived as not reproducible rather than fixed, keeps the full original evidence, and names the one case this reproduction did not cover.
  • Rollback: git revert the single commit; the row returns to Open items unchanged.
  • Provider or production effects: None.

Notes

  • Per 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.mjs classifies this diff clinicalRisk: false, operationalRisk: false, ragRanking: false, so no Clinical Governance Preflight or RAG impact: line is required. Both sections are omitted deliberately rather than left as unchecked boxes.
  • No review ledger row was appended. docs/branch-review-ledger.md records 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

`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
@coderabbitai

coderabbitaiBot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

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 @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f6c02f5b-5d3f-4a72-ab7c-4f862ad3aa63

📥 Commits

Reviewing files that changed from the base of the PR and between 87486e9 and 57affe5.

📒 Files selected for processing (1)
  • docs/outstanding-issues.md

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

@supabase

supabaseBot commented Jul 30, 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 ↗︎.

@BigSimmo
BigSimmo marked this pull request as ready for review July 30, 2026 13:23
@BigSimmo
BigSimmo enabled auto-merge (squash) July 30, 2026 13:23
@BigSimmo
BigSimmo merged commit c5c1a86 into mainJul 30, 2026
23 checks passed
@BigSimmo
BigSimmo deleted the claude/understand-next-steps-tvxuin branch July 30, 2026 13:27
BigSimmo added a commit that referenced this pull request Jul 30, 2026
…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>
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.

2 participants

@BigSimmo@claude