docs(issues): capture the Services viewport-anchor flake as #146 - #1446
Conversation
Found while driving PR #1427 to green and not recorded anywhere: shard 1 of run 30534158395 failed `ui-phone-scroll.spec.ts:973` at the viewport-resize anchor assertion on :1133, with 120 passed. It is distinct from #127 and is not what #1427 fixed. That head already carried #1427's runway poll and travel assertion, the journey is the Services result canvas rather than the document route, and the assertion is anchor stability across a resize rather than the chrome hide. One narrowing is already in hand: the sibling assertion on `documentScrollTop` at :1137 did not fail in the same run, so the scroll position held while the element moved. That points at layout/anchoring around the resize and rules out the scroll-restoration class of explanations. Filed as an issue rather than a flake-ledger entry: it reproduced once in four runs on a byte-identical spec, and that ledger takes reproduced @quarantine entries only. Branch restarted from origin/main because #1427 has merged (040ce97) — follow-up work does not stack on already-merged history.
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:57 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 (2)
📝 WalkthroughWalkthroughUpdated documentation ledgers to add outstanding issue ChangesDocumentation ledger updates
Estimated code review effort: 1 (Trivial) | ~3 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
BigSimmo
commented
Jul 30, 2026
@cursoragent resolve merge conflict |
Merge conflict on PR #1446 is resolved and pushed. Cause: both sides claimed Resolution: rebuilt Checks: Also: title updated to |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/branch-review-ledger.md`:
- Line 176: Update the ledger entry for PR `#1446` / commit
11e7e8653c4742108feee4e9164ba066a92fc18a to identify the failing assertion
consistently as ui-phone-scroll.spec.ts:1133, replacing the incorrect :973
reference while preserving the rest of the entry.
🪄 Autofix (Beta)
❌ Autofix failed (check again to retry)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: e7a3e2da-27de-463b-8e59-dcb6f6171db0
📒 Files selected for processing (2)
docs/branch-review-ledger.mddocs/outstanding-issues.md
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit:fb580a8e2e
ℹ️ 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.
Codex was right, and the finding is worth stating plainly: the earlier rows argued that because the sibling `documentScrollTop` assertion did not fail, the scroll position held and scroll-restoration causes were ruled out. Playwright aborts a test at the first failing `expect`. Once the `anchorTop` assertion threw, the `documentScrollTop` assertion never executed at all — its absence from the failure output is evidence of nothing. The narrowing is withdrawn and that class of cause is explicitly not ruled out. The capture itself is unaffected: the Services viewport-anchor failure is real, intermittent on byte-identical code (pass / pass / fail / pass-on-rerun), and distinct from #127. A superseding ledger record carries the correction rather than editing the earlier rows, per the append-only rule.
# Conflicts: # docs/outstanding-issues.md
Fourth id collision on this one row. `main` (#1461) claimed `#145` for "A branch sync during in-flight CI cancels a near-complete run, and nothing warns" — which is, as it happens, the same CI-cancellation behaviour this branch hit an hour ago. Resolved by taking main's `docs/outstanding-issues.md` wholesale and re-applying this capture at `#146`, rather than hand-editing the conflict region: hand-editing a 144-row table around a conflict marker is how the duplicate and wrong-width rows got in before. Marker bumped to 147.
Uh oh!
There was an error while loading. Please reload this page.
Note Autofix is a beta feature. Expect some limitations and changes as we gather feedback and continue to improve it. Autofix skipped. No unresolved CodeRabbit review comments with fix instructions found. |


Summary
tests/ui-phone-scroll.spec.ts:973"Services results keep a continuous browser viewport after shared chrome releases" failed the viewport-resize anchor assertion at:1133on shard 1 of run30534158395(120 passed (6.5m), classified "needs investigation"). Filed as#146.Docs-only. One row appended to
docs/outstanding-issues.md, marker at 147.RAG impact: no retrieval behaviour change — documentation only, no file under
src/lib/rag/**, clinical-search, retrieval-selection, ranking-config, answer-ranking, the eval harness, or the golden fixture.Numbering
Renumbered four times, and that is now the more interesting finding.
#141→#142→#145→#146, each time becausemainallocated the id first: #1443's design-token gap took#141, a loose-docs task took#142, and #1461 took#145for "a branch sync during in-flight CI cancels a near-complete run" — which is, as it happens, the same CI-cancellation behaviour this branch hit while landing #1453.Every collision was caught by
check:outstanding-issues, which is exactly what#112built it to do. But four renumbers on a two-row documentation change is strong evidence that ids should be allocated at merge time rather than authoring time;#133covers the adjacent merge-driver half of this.Each resolution took main's
docs/outstanding-issues.mdwholesale and re-applied this row at a fresh id, rather than hand-editing the conflict region — hand-editing a 144-row table around conflict markers is how the duplicate and wrong-width rows got in before.Why it is not covered by an existing row
It is not
#127and not fixed by#1427:#1427's runway poll and travel assertion.#127is the reduced-motion chrome hide on the document route; this is the Services result canvas.Evidence
Intermittent on byte-identical code — the spec is unchanged across heads
79dd28f,76f80f3,17c8cb9; shard 1 passed, passed, failed, then passed again on re-run. One failure in four.Filed as an issue rather than a
tests/flake-ledger.jsonentry: that ledger takes reproduced@quarantineentries only, and this reproduces once in four.A narrowing was claimed here and has been withdrawn
An earlier version of the row argued that because the sibling
documentScrollTopassertion at:1137did not fail, the scroll position held and scroll-restoration causes were ruled out.That inference was invalid, and Codex was right to flag it. Playwright aborts a test at the first failing
expect, so once theanchorTopassertion threw, thedocumentScrollTopassertion never executed. Its absence from the output shows nothing. The row now says so explicitly and that class of cause is not ruled out. A superseding ledger record carries the correction rather than editing the earlier rows.Separately, CodeRabbit flagged
:973vs:1133as inconsistent and then withdrew it::973is the test declaration and:1133the thrown assertion — Playwright reports both, and declaration lines drift (898/973/1041across three tree states), which is why the exact title is the durable identity.Branch note
#1427merged as040ce97, so this branch was restarted fromorigin/mainrather than stacking on already-merged history. Verified by content, not ancestry (squash breaks ancestry): the shard matrix,dragScrollUntilHidden, and the gate-count guard are all present onmain.Verification
At head
5eb736d, after resolving the conflict againstmaina0aceb3:node scripts/check-outstanding-issues.mjs—144 rows (71 open, 73 archived), unique ids, next-id=147 above the highestnpm run check:branch-review-ledger—127 live table records + 1206 archived, no duplicates, no conflict markers, no mojibakenpx prettier --check .—All matched files use Prettier code style!docs/outstanding-issues.md; the diff againstmainis still the same two documentation filesnpm run verify:cheapon the pre-conflict head —Test Files 435 passed (435),Tests 4569 passed | 4 skipped (4573), exit 0. Not re-run after this merge: the resolution touches one documentation table, and the three gates above are the ones that cover it.UI verification not run: documentation-only change;
ui_changedis false and the Chromium shards skip.Not run, deliberately:
verify:release,eval:*, andcheck:supabase-projectare provider-backed and not authorised for a docs change.Risk and rollout
Notes
Two review findings landed on this PR and they resolved in opposite directions — one correct and applied, one incorrect and declined with reasoning. Both are recorded in the ledger, because the useful artefact is the reasoning rather than the verdict.
Generated by Claude Code