Run the browser suite on one worker - #13
Merged
Merged
Conversation
CI on main went red on a flaky e2e test that passed on the identical commit in the pull request run. `fullyParallel: false` only serializes tests within a file. Playwright still runs files concurrently, and the worker count varies with the host: one worker locally on Windows, three on Linux, two on a GitHub runner. The suite measures real layout geometry and drives timing-sensitive launcher transitions, some with waits as short as 1500 ms, so concurrent load makes it racy in a way that depends on the machine it happens to run on. Three different tests failed across three runs of the same code, each passing on repeat: - Linux, three workers: universal search traps focus, scrolls, activates, and restores its opener - CI Windows, two workers: launcher Search activates the offline Obstacle package and recovers at 720p - CI Windows rerun, two workers: triggered motion shell actions navigate and safely leave unassigned progress Every failure was an element that never appeared, which is the signature of contention rather than a product defect. With `retries: 0` any one of them fails the whole run. Pinning one worker makes the suite deterministic across platforms and matches the intent already declared by `fullyParallel: false` and `retries: 0`. It costs wall clock: 5.0m on Linux against 2.3m, and 2.5m on Windows. Verified 80/80 on both platforms serially. This does not prove the application is free of the underlying race. It removes the load that exposes it; a race-free suite would be needed before raising the worker count again. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📜 Recent review details⏰ Context from checks skipped due to timeout. (7)
🔇 Additional comments (1)
📝 WalkthroughWalkthroughThe Playwright configuration sets ChangesConsole-lab test execution
Estimated code review effort: 1 (Trivial) | ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
✨ Simplify code
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI on
mainwent red immediately after #12 merged, on a flaky e2e test that had passed on the identical commit in the PR run.Diagnosis
fullyParallel: falseonly serializes tests within a file. Playwright still runs files concurrently, and the worker count varies with the host — one worker locally on Windows, three on Linux, two on a GitHub runner. The suite measures real layout geometry and drives timing-sensitive launcher transitions, some with waits as short as 1500 ms.Three different tests failed across three runs of the same code, each passing on repeat:
Every failure was an element that never appeared — the signature of contention, not a product defect. A different test each time rules out a deterministic Windows bug. With
retries: 0, any one of them fails the whole run.Fix
Pin
workers: 1. This matches the intent already declared byfullyParallel: falseandretries: 0, and makes the suite deterministic across platforms.It costs wall clock: 5.0m on Linux against 2.3m, and 2.5m on Windows. For a suite whose job is recording exact geometry evidence, determinism is worth that.
Verification
80/80 serially on both platforms.
Limit
This does not prove the application is free of the underlying race. It removes the load that exposes it. A race-free suite would be needed before raising the worker count again, and the comment in the config says so.
🤖 Generated with Claude Code