Skip to content

Fix Simulator request interception during application startup - #23

Merged
volkovmqx merged 2 commits into
mainfrom
codex/fix-webos-interception
Oct 20, 2026
Merged

volkovmqx merged 2 commits into
mainfrom
codex/fix-webos-interception

Conversation

@volkovmqx

@volkovmqx volkovmqx commented Oct 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

The Simulator fixture could enable request interception while the application target was still initializing. Playwright then missed that target. After the tested reload, GraphQL bypassed the local fixture and failed against the blocked network. Home displayed Error: Failed to fetch, as in the failed main CI run.

Wait for the exact application target before installing interception:

 connectOverCDP()
-install fixture interception
 wait for the application target
+install fixture interception
 reload the production application

Add a regression scenario that delays interception by 500 ms. It checks fixture content and native ArrowRight navigation in the real Simulator. Update the contribution guide with the required startup order.

Evidence

  • Before: The reduced timing reproduction failed three times in three runs. The permanent regression test also failed with the original startup order. Request logs showed that GraphQL bypassed the fixture handler and failed with ERR_PROXY_CONNECTION_FAILED.
    After: The same timing reproduction passed three times after the target wait moved before interception.
  • yarn verify passes TypeScript, FSD, both Knip modes, unit coverage, the production build, Chromium, and Chrome 68.
  • All 215 unit tests pass. Coverage is 99.33% statements, 96.31% branches, 99.43% functions, and 99.56% lines. Each limit remains 95%.
  • The full Simulator suite passes all ten scenarios with one worker and zero retries. The nine existing scenarios remain active.
  • The permanent delayed-startup regression passes ten repetitions on two CPU cores with zero retries and zero skipped scenarios.
  • Standards and Spec reviews report no findings.
  • CI run 39452022490 passes all five jobs on the first attempt, including all ten Simulator scenarios and packaging on Node.js 24 and latest. The Simulator report has zero failures, errors, and skipped scenarios.

Risk

The change affects Simulator startup and one new regression scenario. Initial requests remain blocked while CDP connects. The tested reload starts after fixture interception is active.

Context-wide interception can miss an application target that is still initializing over CDP. Wait for the exact application target before installing fixture routing and reloading it.

Add a delayed-interception regression test that reproduces the failed main CI request.
@github-actions

github-actions Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Coverage Report for Application

Status Category Percentage Covered / Total
🟢 Lines 99.56% (🎯 95%) 2507 / 2518
🟢 Statements 99.33% (🎯 95%) 2998 / 3018
🟢 Functions 99.43% (🎯 95%) 709 / 713
🟢 Branches 96.31% (🎯 95%) 2093 / 2173
File CoverageNo changed files found.
Generated in workflow #55 for commit 6a9d6b3 by the Vitest Coverage Report Action

@volkovmqx
volkovmqx merged commit 96bc716 into main Oct 20, 2026
5 checks passed
@volkovmqx
volkovmqx deleted the codex/fix-webos-interception branch October 20, 2026 15:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant