Repository navigation
test(webkit): wait for the settled copy after a streamed reload - #3501
Conversation
Main's Safari matrix after #3497 cleared the DSM compare, On Call anchor and hidden-tabs checks. Two new reads failed on the same cause: the test looked while a streamed page was still swapping its content in. - Phone assessments: after the reload the hero existed twice for a moment, which a strict locator rejects without retrying. Wait for one copy first. - Forms home hero: the icon was visible, then its box read came back empty because the subtree was replaced in between. Poll the box. No test skipped or loosened; no app code changed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
🤖 CodeAnt AI — Review Status
|
Thanks for using CodeAnt! 🎉We're free for open-source projects. if you're enjoying it, help us grow by sharing. Share on X · |
There was a problem hiding this comment.
BigSimmo has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
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 |
🏁 CodeAnt Quality Gate ResultsCommit: ✅ Overall Status: PASSEDQuality Gate Details
|
PR Summary by QodoStabilize WebKit hero checks during streamed page transitions
AI Description
Diagram
High-Level Assessment
Files changed (2)
|
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
|
Claude encountered an error after 2s —— View job I'll analyze this and get back to you. |
Merging this PR will improve performance by 13.79%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ⚡ ℹ️ | medication-entities: medicationEntityMatchesInText |
4.8 ms | 4.2 ms | +13.79% |
Tip
Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.
Comparing claude/webkit-hero-dupe-w72vlz (58eff58) with main (6ef2462)
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a47f67b3dc
ℹ️ 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".
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Qodo FixerNo findings are available for this PR yet. Findings appear here once Qodo has reviewed the PR. |
CodeAnt Nitpicks2 code suggestions1. This assertion can pass during a transient one-copy snapshot before streaming inserts the hidden duplicate, leaving the following strict locator checks to fail.Race condition · 2. This poll discards the successful box; the separate next
|
Code Review by Qodo
No findings for this group No findings for this group No findings for this group Resolved findings 1.
|
CodeAnt PR Risk: Low Risk
Assessed commit: |
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
|
Code review by qodo was updated up to the latest commit 562d0ea |
Code Review ✅ Approved 1 closed / 1 findings🟢 Low risk · Both changes only adjust Safari test polling and assertions, leaving application code and production behavior unchanged; impact is limited to test reliability. Stabilizes two Safari WebKit tests by waiting for the settled page after a streamed reload: the phone assessments hero now waits for exactly one copy before its visibility check, and the forms home hero icon bounding-box read is retried until it returns a value. Box is re-read after the poll, addressing the race that could still cause a failure. No open findings.
✅ 1 closed✅ Edge Case: Box is re-read after the poll, so the race it waits out can still fail
Review coverage🤖 Auto-approval Approved 📋 Rules No rules evaluated 🧪 Functional validation Not enabled · Set up OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
…abel layout (#3502) * test(webkit): retry the patient panel tap and report the Dictionary label layout Main's Safari matrix after #3501 cleared both of that PR's checks and showed two new failures: - Installed-app QTc: after tapping the patient panel the fields never showed. The other five tests using the same helper passed in that shard, so the tap landed on a panel that was then replaced and remounted closed. Retry the tap until the fields show. - Dictionary at 768px on phone Safari: the Abbreviations label measured 72px of text in 56px. Local Chromium gives exactly 72px at the 320px layout and 80px at 768px, so Safari appears to keep the narrow layout after the resize. The check now prints the applied width, breakpoint and segment sizes when it fails, so the next run shows which. No test skipped or loosened; no app code changed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr * test: re-tap the patient panel only while it is closed Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr * test: hydrate and re-check the patient field inside the retry Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr --------- Co-authored-by: Claude <noreply@anthropic.com>
WebKit now runs in CI and its genuine failures were fixed test-side in #3492-#3494 and #3501-#3504. The last three were the same race, a keypress before React attached the handler; the update names the helper to use and the one check left (the first main run after #3504). Claude-Session: https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr Co-authored-by: Claude <noreply@anthropic.com>
User description
Summary
Before: main's Safari release matrix after #3497 (run 38268232173) still failed in three jobs. The DSM compare, On Call anchor and phone hidden-tabs checks from #3497 all passed. Two different reads failed instead, both because the test looked while a streamed page was still swapping its content in.
After: both tests wait for the settled page before reading it.
tests/ui-phone-scroll-assessments.spec.ts, phone Safari and installed layout): straight after the reload the assessments hero existed twice, once still held in React's hidden reveal container. A strict locator rejects that immediately, with no retry. The test now waits for exactly one copy (toHaveCount(1)) and then checks it is visible. The first visit already waits for the page to settle, which is why it never failed there.tests/ui-tools.spec.ts, desktop Safari): the icon passed its visibility check, then a single bounding-box read came back empty because the subtree was replaced in between. The box read now retries until it has a value.Areas touched: App experience
No test skipped, quarantined or loosened, and no app code changed.
Verification
tsc --noEmitall came back clean.Risk and rollout
🤖 Generated with Claude Code
https://claude.ai/code/session_01DCghuougzFFXRF3dQQEcYr
Generated by Claude Code
Summary by cubic
Stabilizes two Safari tests that read a streamed page before it finishes swapping its content after a reload.
No app code changed, and no test was skipped or loosened.
Written for commit 58eff58. Summary will update on new commits.
CodeAnt-AI Description
Wait for streamed pages to settle before checking hero content
What Changed
Impact
✅ Fewer intermittent Safari test failures✅ Hero checks remain strict💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.