Repository navigation
Fix Playwright teardown hangs and review initialization races - #1
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7c1e55a352
ℹ️ 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".
| // to the other side rather than leave focus where it was. | ||
| if (document.activeElement === element) return; | ||
| } |
There was a problem hiding this comment.
Restore the unsuppressed WebKit focus retry
When keyboard navigation targets a difference that is still below the fold, Linux WebKit can silently ignore focus({ preventScroll: true }); this loop then exhausts its candidates and leaves focus on <body>. focusDiff scrolls smoothly before this call, so the target can still be off-screen at this point, and the existing keyboard-navigation e2e assertion for [data-diff-id].focus-diff:focus will fail on the WebKit projects now selected by CI. Retry focus() without preventScroll after these attempts fail.
Useful? React with 👍 / 👎.
| - name: Run Playwright tests | ||
| run: pnpm test:e2e | ||
| run: pnpm test:e2e --project=webkit --project=mobile-webkit |
There was a problem hiding this comment.
Restore the full browser matrix in CI
This command runs only the two WebKit projects, while playwright.config.ts also defines the desktop Chrome, mobile Chrome, and Firefox projects. Because deployment requires only this e2e job to succeed, regressions in the primary Chromium and Firefox flows can now merge and deploy without any end-to-end coverage; the installed Chrome and Firefox browsers are unused. Restore the unfiltered test command before merging.
Useful? React with 👍 / 👎.
Playwright finished all 165 test cases but Actions stayed in the test step: pnpm 12.6 started Vite in a separate process group, leaving its output pipes open after Playwright's teardown. Launch Vite directly, enforce the expected port, disable server reuse in CI, and bound the suite, test step, and job. Upload both the HTML report and raw traces on failure or cancellation.
Build and label the difference index before paint so keyboard navigation cannot run against an empty index. A deterministic app regression withholds animation frames and verifies actual focus movement. The image zoom test establishes a fitted view before measuring its baseline.
Restore all five browser projects for normal CI. The optional
webkit-diagnosticsworkflow input runs a small server-shutdown check plus the desktop/mobile WebKit focus and scroll regressions, without building or deploying.Validation: