test(root): recover the clock-bound commit stranded by #867 - #871
Conversation
|
@codex please review this PR |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 1 review per rolling hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe canvas animation test now checks that a rewound animation remains below ChangesCanvas animation tests
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to The change makes the canvas test resilient to the animation clock advancing between writes and reads without changing product behavior; no actionable merge-blocking risk remains after normal checks and review. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
@nextlyhq/adapter-drizzle
@nextlyhq/adapter-mysql
@nextlyhq/adapter-postgres
@nextlyhq/adapter-sqlite
@nextlyhq/admin
@nextlyhq/admin-css
@nextlyhq/blocks-engine
@nextlyhq/blocks-react
@nextlyhq/builder
create-nextly-app
nextly
@nextlyhq/plugin-form-builder
@nextlyhq/plugin-page-builder
@nextlyhq/plugin-sdk
@nextlyhq/plugin-seo
@nextlyhq/storage-s3
@nextlyhq/storage-uploadthing
@nextlyhq/storage-vercel-blob
@nextlyhq/ui
commit: |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
@nextly-bot review |
|
Claude finished @mobeenabdullah's task in 18m 13s —— View job Review complete — round 1, no new findingsRan the full review protocol on
Verdict: clean. The recovery claim checks out content-wise — The substantive question I attacked was whether the new bound weakens the fixture, since the test exists to prove the live-span comparison catches an API-moved schedule. It doesn't: at any Process sweep is also clean: title/scope valid, no changeset (correct for a test-only PR), comment passes the repo's comment-convention gate, no AI attribution, all CI green including |
There was a problem hiding this comment.
Nextly Review Bot: round 1 - clean
Verdict: The PR does exactly what it claims — it restores, byte-for-byte, the commit that #867's merge stranded — and in doing so replaces the only exact-equality clock assertion in the file, one main's own Browser tests job had already failed on a single frame of drift. Safe to merge.
New findings: 0 P0/P1, 0 P2, 0 P3
Prior rounds: none — this is round 1. Zero review threads exist on the PR and no earlier pr-review-agent marker was posted, so there is nothing to re-verify or duplicate.
Not inline-anchorable: none
Pre-existing (not this PR): none noted. The defect this PR fixes (main carrying toBe(-30000) at 88b44fce8) is the thing being repaired, not a bystander.
Checked:
- Content-verified the recovery claim.
git diff be8a0a0ba..03b0639ae -- e2e/tests/canvas/geometry-settle-matches-the-canvas.test.tsis empty (identical blobs,833ebe273), andgit merge-base --is-ancestor be8a0a0ba origin/mainfails — the stranded commit is genuinely absent from main and this PR restores it exactly. The PR's+6/-1matches the diff stat, and its "32 passed" matches the 32 top-level tests in the file. - Attacked the fixture's purpose (the bound must not weaken the test). Traced
geometrySpanMsto its live-span formula at lines 406-421:min(delay + activeDuration, endTime) - currentTime. At anycurrentTime < -29000the live span is ≥49000ms against a declared 20000ms, still far past the 1msTIMING_TOLERANCE_MSat line 611, so the/running effect claims/refusal at line 1566 still fires. The bound cannot mask the mechanism it exists to exercise. - Checked the false-failure direction. The one-sided bound buys ~1000ms of clock slack against a ~17ms assignment-to-read round trip (a 60x margin), a strict widening from the previous 0ms slack.
animation.readywould have to stall for a full second to fail — and the assertion still fails if the rewind never applied at all, sinceNumber(animation.currentTime ?? 0)coerces an unapplied rewind to 0, which is not< -29000. - Process sweep. Title
test(root): ...is a valid type and a scope on thepr-title.ymlallowlist, lowercase, no trailing period. A test-only PR correctly carries no changeset (git diff origin/main HEAD -- .changesetis empty). The new comment describes the code's timing behavior rather than a conversation and passes the repo'scheck:commentsgate (CI job green). No AI attribution in the commit or PR body. All 7 workflow runs on this head are green, includingBrowser tests.
An empty round here is the merge signal for this PR: the change is one assertion and its rationale, both of which hold up.
#867 merged without its final commit, and
maincarries an assertion that already failed CI.What happened
git log <headRefOid>..<ls-remote tip>names one commit absent from the merge:Confirmed by CONTENT, with a control proving the search works:
toBeLessThan(-29000)is present on the branch head and absent from merge commit88b44fce8.mainstill reads:Why that matters rather than being cosmetic
That exact-equality assertion is the one that failed
Browser testson #867's own CI:The animation's clock advances between the assignment and the read — one frame, 16.7ms. It held locally and lost that frame on the runner. So
maincurrently carries a canvas test that fails whenever the round trip costs a frame, which is most of the time on a loaded machine.The recovered commit replaces it with a bound. What makes the fixture the case it claims to be is that the effect is rewound far into the past — stable. The exact value is not, and asserting it measures how long the round trip took rather than the rewind.
Verification
main, one file, +6/-1.This is the second tail this lane has stranded — #825 did it too, recovered as #854 — and both times the cause was the same: pushing a fix while a merge was being computed. Worth noting on the merge procedure rather than only in a PR body.
Summary by CodeRabbit