prove-1.log $ node scripts/prove-scenario.ts scripts/scenarios/loopback-preview.e2e.ts --base 4099e62767f725937aea6ab2f43ba44b8e4b651e --head 14005f71156aee44f094ba67d504871aa26ac630 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 1h ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 848, reused 848, downloaded 0, added 833 Progress: resolved 1583, reused 1583, downloaded 0, added 1567 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, done .../esbuild@0.28.2/node_modules/esbuild postinstall$ node install.js .../esbuild@0.28.2/node_modules/esbuild postinstall: Done .../node_modules/node-pty install$ node scripts/prebuild.js || node-gyp rebuild .../react-native-enriched-markdown postinstall$ node postinstall.mjs .../node_modules/node-pty install: > Checking prebuilds... .../node_modules/node-pty install: Done .../node_modules/node-pty postinstall$ node scripts/post-install.js .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] restoring vendored native assets ... .../node_modules/node-pty postinstall: > Cleaning release folder... .../node_modules/node-pty postinstall: > Moving conpty.dll... .../node_modules/node-pty postinstall: SKIPPED (not Windows) .../node_modules/node-pty postinstall: Done .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching runtime v0.26.3 from https://github.com/tree-sitter/tree-sitter/archive/refs/tags/v0.26.3.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] runtime -> react-native-enriched-markdown/cpp/highlight/vendor/tree-sitter/src .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-json@0.24.8 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-html@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-css@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-markdown@0.3.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading @tree-sitter-grammars/tree-sitter-yaml@0.7.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-go@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-java@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-javascript@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-python@0.23.6 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c@0.23.5 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-rust@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-bash@0.23.3 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-typescript@0.23.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-cpp@0.23.4 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-swift@0.7.0 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-php@0.24.2 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-ruby@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] downloading tree-sitter-c-sharp@0.23.1 ... .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] json -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/json .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] html -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/html .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] css -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/css .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] markdown -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/markdown .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] yaml -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/yaml .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] go -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/go .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] java -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/java .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] javascript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/javascript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] python -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/python .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] rust -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/rust .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] bash -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/bash .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] typescript -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/typescript .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] tsx -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/tsx .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] cpp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/cpp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] swift -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/swift .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] php -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/php .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] ruby -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/ruby .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] c-sharp -> react-native-enriched-markdown/cpp/highlight/vendor/grammars/c-sharp .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] grammar sources ready. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching xcframework from https://github.com/erweixin/RaTeX/releases/download/v0.1.15/RaTeX.xcframework.zip .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] fetching source from https://github.com/erweixin/RaTeX/archive/refs/tags/v0.1.15.tar.gz .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] RaTeX v0.1.15 -> /node_modules/.pnpm/react-native-enriched-markdown@file+apps+mobile+deps+react-native-enriched-markdown-1.2_bd60b861cc6d7978093c13c6e798d3b3/node_modules/react-native-enriched-markdown/ios/vendor .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] done. .../react-native-enriched-markdown postinstall: [react-native-enriched-markdown] postinstall complete. .../react-native-enriched-markdown postinstall: Done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 9.3s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d1f1-31cc-7ae8-87dd-834f40c3f9b5 · targets: web, ios ✓ target "web" command at http://127.0.0.1:40243/.well-known/t3/environment ready 6.51s ✓ target "ios" command at http://127.0.0.1:8190/status ready 6.71s × |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 34.99s → tap did not become actionable in time: locator.click: Timeout 22113ms ex… ❯ |web| scenarios/loopback-preview.e2e.ts (1 test | 1 failed) 34.99s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText("Loopback preview").first() ❯ at http://127.0.0.1:40243/draft/c02e6438-685c-4a4e-8e4e-a833a9dd0485 ❯ trace .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md ❯ video .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:46:48 Duration 49.27s (startup 13.22s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/loopback-preview.e2e.ts:5 > Schemeless IPv4 loopback previews load a plain HTTP server ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText("Loopback preview").first() trace .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 2h ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 1141, reused 1141, downloaded 0, added 1126 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 3.3s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d1f2-31a0-74dd-8807-bcb53145b988 · targets: web, ios ✓ target "web" command at http://127.0.0.1:35883/.well-known/t3/environment ready 4.84s ✓ target "ios" command at http://127.0.0.1:8190/status ready 5.61s × |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 33.95s → tap did not become actionable in time: locator.click: Timeout 22980ms ex… ❯ |web| scenarios/loopback-preview.e2e.ts (1 test | 1 failed) 33.95s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22980ms exceeded.
  • …
  • intercepts pointer events: getByText("Loopback preview").first() ❯ at http://127.0.0.1:35883/draft/bd1f0e6e-edb1-4598-8343-eeb861430364 ❯ trace .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md ❯ video .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:47:53 Duration 45.17s (startup 10.45s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Markdown .e2e/prove/head/summary.md Failed × |web| scenarios/loopback-preview.e2e.ts:5 > Schemeless IPv4 loopback previews load a plain HTTP server ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22980ms exceeded.
  • …
  • intercepts pointer events: getByText("Loopback preview").first() trace .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md { "scenario": "Schemeless IPv4 loopback previews load a plain HTTP server", "failsOnBase": false, "passesOnHead": false, "baseSha": "4099e62767f725937aea6ab2f43ba44b8e4b651e", "headSha": "14005f71156aee44f094ba67d504871aa26ac630", "verdict": "Not proven: the scenario could not run on base `4099e62767` (ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first()).", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"Loopback preview\").first()", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"Loopback preview\").first()", "status": "failed" } ] }, "captures": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png", "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm", "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ], "markdown": "### Scenario: Schemeless IPv4 loopback previews load a plain HTTP server\n\n**Not proven: the scenario could not run on base `4099e62767` (ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first()).**\n\n| | Base `4099e62767` | Head `14005f7115` |\n| --- | --- | --- |\n| Result | ⚠️ could not run
    ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first() | ⚠️ could not run
    ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22980ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first() |\n| failure | ![Base 4099e62767: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/6fafd1908c975592/001-failure.png) | ![Head 14005f7115: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/196ed03989a8195d/001-failure.png) |\n", "base": { "sha": "4099e62767f725937aea6ab2f43ba44b8e4b651e", "status": "error", "title": "Schemeless IPv4 loopback previews load a plain HTTP server", "message": "ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22113ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first()", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"Loopback preview\").first()", "status": "failed" } ], "captures": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ] }, "head": { "sha": "14005f71156aee44f094ba67d504871aa26ac630", "status": "error", "title": "Schemeless IPv4 loopback previews load a plain HTTP server", "message": "ACTION_FAILED: tap did not become actionable in time: locator.click: Timeout 22980ms exceeded.
  • …
  • intercepts pointer events: getByText(\"Loopback preview\").first()", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByText(\"Loopback preview\").first()", "status": "failed" } ], "captures": [ "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ] } } prove-2.log $ node scripts/prove-scenario.ts scripts/scenarios/loopback-preview.e2e.ts --base 4099e62767f725937aea6ab2f43ba44b8e4b651e --head 14005f71156aee44f094ba67d504871aa26ac630 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 2h ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 1288, reused 1288, downloaded 0, added 1272 Progress: resolved 1775, reused 1775, downloaded 0, added 1774 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 3.1s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d1f3-2d0c-7592-9a22-ee2bf08271cd · targets: web, ios ✓ target "web" command at http://127.0.0.1:34093/.well-known/t3/environment ready 5.38s ✓ target "ios" command at http://127.0.0.1:8190/status ready 6.18s × |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 42.74s → locator matched no nodes within getByRole("button", name: "Browser") ❯ |web| scenarios/loopback-preview.e2e.ts (1 test | 1 failed) 42.74s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server LOCATOR_NOT_FOUND: locator matched no nodes within getByRole("button", name: "Browser") ❯ scenarios/loopback-preview.e2e.ts:19:5 17| await screen.getByTestId("sidebar-row-card").first().tap(); 18| await screen.getByRole("button", "Toggle right panel", { exact: t… 19| await screen.getByRole("button", "Browser", { exact: true }).tap(… | ^ 20| const address = screen.getByRole("textbox", "Search or enter URL"… 21| await address.fill("http://127.0.0.2:3000"); ❯ at http://127.0.0.1:34093/6ccc3aa2-5131-492c-ade3-16acaa69aa83/mcp%3Ac90d7928-0fb0-4dec-ab7a-74573e61fc0e ❯ on screen #n6024 button "Browser B" ❯ on screen #n6027 button "Open browser in a profile" ❯ app 1 error, 2 warnings logged × console error: WebSocket connection to 'ws://127.0.0.1:34093/ws?clientSurface=web&clientAppVersion=0.1.9&clientDeviceType=desktop&clientOs=Linux&clientWebDeployment=server&clientBrowser=Chrome&connectionMethod=direct&clientDevice=7c004b3d66fbd7a4c99dc634dd196ae3ba8e27c6d1a3f7150bf618bf3a5853d2&orchestrationProtoc… ❯ trace .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md ❯ video .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:48:57 Duration 55.30s (startup 11.56s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/loopback-preview.e2e.ts:19 > Schemeless IPv4 loopback previews load a plain HTTP server LOCATOR_NOT_FOUND: locator matched no nodes within getByRole("button", name: "Browser") trace .e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 2h ago) Lockfile is up to date, resolution step is skipped Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: Virtual store is at: node_modules/.pnpm Progress: resolved 1253, reused 1253, downloaded 0, added 1238 Progress: resolved 1770, reused 1770, downloaded 0, added 1758 Packages: +1779 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1779, reused 1775, downloaded 0, added 1779, done Agent skills awaiting approval: e2e. Run "pnpm approve" to review them. . prepare$ vp config --no-agent . prepare: Done devDependencies: + @coderabbitai/config 1.2.0 + @effect/tsgo 0.67.1 + @shadcn/lint 0.1.5 + @types/node 24.12.4 + knip 6.34.0 + vite-plus 1.4.0 Done in 3.6s using pnpm v12.14.0 RUN e2e v0.23.0 /scripts run 01a1d1f4-3537-77c5-a855-03e50e4ddea1 · targets: web, ios ✓ target "web" command at http://127.0.0.1:38005/.well-known/t3/environment ready 4.93s ✓ target "ios" command at http://127.0.0.1:8190/status ready 5.76s × |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 42.41s → locator matched no nodes within getByRole("button", name: "Browser") ❯ |web| scenarios/loopback-preview.e2e.ts (1 test | 1 failed) 42.41s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server LOCATOR_NOT_FOUND: locator matched no nodes within getByRole("button", name: "Browser") ❯ scenarios/loopback-preview.e2e.ts:19:5 17| await screen.getByTestId("sidebar-row-card").first().tap(); 18| await screen.getByRole("button", "Toggle right panel", { exact: t… 19| await screen.getByRole("button", "Browser", { exact: true }).tap(… | ^ 20| const address = screen.getByRole("textbox", "Search or enter URL"… 21| await address.fill("http://127.0.0.2:3000"); ❯ at http://127.0.0.1:38005/29457669-2380-49df-bebd-b75e3e59c063/mcp%3A8d35b6df-4d78-42a7-8c04-c0b4c6d3a327 ❯ on screen #n6024 button "Browser B" ❯ on screen #n6027 button "Open browser in a profile" ❯ app 1 warning logged ❯ trace .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md ❯ video .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:50:05 Duration 53.99s (startup 10.70s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Markdown .e2e/prove/head/summary.md Failed × |web| scenarios/loopback-preview.e2e.ts:19 > Schemeless IPv4 loopback previews load a plain HTTP server LOCATOR_NOT_FOUND: locator matched no nodes within getByRole("button", name: "Browser") trace .e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md { "scenario": "Schemeless IPv4 loopback previews load a plain HTTP server", "failsOnBase": false, "passesOnHead": false, "baseSha": "4099e62767f725937aea6ab2f43ba44b8e4b651e", "headSha": "14005f71156aee44f094ba67d504871aa26ac630", "verdict": "Not proven: the scenario could not run on base `4099e62767` (LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\")).", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByTestId(\"sidebar-row-card\").first()", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle right panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Browser\")", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByTestId(\"sidebar-row-card\").first()", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle right panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Browser\")", "status": "failed" } ] }, "captures": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png", "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm", "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ], "markdown": "### Scenario: Schemeless IPv4 loopback previews load a plain HTTP server\n\n**Not proven: the scenario could not run on base `4099e62767` (LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\")).**\n\n| | Base `4099e62767` | Head `14005f7115` |\n| --- | --- | --- |\n| Result | ⚠️ could not run
    LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\") | ⚠️ could not run
    LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\") |\n| failure | ![Base 4099e62767: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/58064669eff984c2/001-failure.png) | ![Head 14005f7115: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/49cff9ceee5d90a1/001-failure.png) |\n", "base": { "sha": "4099e62767f725937aea6ab2f43ba44b8e4b651e", "status": "error", "title": "Schemeless IPv4 loopback previews load a plain HTTP server", "message": "LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\")", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByTestId(\"sidebar-row-card\").first()", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle right panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Browser\")", "status": "failed" } ], "captures": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ] }, "head": { "sha": "14005f71156aee44f094ba67d504871aa26ac630", "status": "error", "title": "Schemeless IPv4 loopback previews load a plain HTTP server", "message": "LOCATOR_NOT_FOUND: locator matched no nodes within getByRole(\"button\", name: \"Browser\")", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByTestId(\"sidebar-row-card\").first()", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle right panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Browser\")", "status": "failed" } ], "captures": [ "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-failure.png" ], "videos": [ "/scripts/.e2e/prove/head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm" ] } } manual-base.log ~/scripts$ E2E_TELEMETRY_DISABLED=1 e2e run scripts/scenarios/loopback-preview.e2e.ts --target web --output /manual-base ⊘ cache disabled ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Run Errors 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ ERROR configuration error INVALID_CONFIG (config) --output "/manual-base" is outside the project root /scripts; name a directory inside it Test Files no test files Tests no tests executed Errors 1 error Start at 22:51:44 Duration 3ms Report (not written) manual-base-2.log ~/scripts$ E2E_TELEMETRY_DISABLED=1 e2e run scenarios/loopback-preview.e2e.ts --target web --output .e2e/manual-base ⊘ cache disabled RUN e2e v0.23.0 /scripts run 01a1d1f5-f635-79c1-a300-d688cb7a8d33 · targets: web, ios ✓ target "web" command at http://127.0.0.1:44821/.well-known/t3/environment ready 5.33s × |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 36.07s → expect.toHaveValue failed ❯ |web| scenarios/loopback-preview.e2e.ts (1 test | 1 failed) 36.07s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server ASSERTION_FAILED: expect.toHaveValue failed locator: getByRole("textbox", name: "Search or enter URL") expected: value "http://127.0.0.2:3000/" observed: value "https://127.0.0.2:3000/" (match count 1) ❯ scenarios/loopback-preview.e2e.ts:50:5 48| await screen.getByRole("button", "Refresh", { exact: true }).wait… 49| await stableScreenshot("schemeless-loopback"); 50| await expect(address).toHaveValue("http://127.0.0.2:3000/"); | ^ 51| } finally { 52| server.closeAllConnections(); ❯ at http://127.0.0.1:44821/4ba37def-d452-4225-9873-06b2f6763070/mcp%3Ad9762dd4-4cf2-4709-a1e1-7959ce019038 ❯ app 1 warning logged ❯ trace .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md ❯ video .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:52:00 Duration 42.09s (startup 5.33s) Traces .e2e/manual-base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-explicit-http-control-settling.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/002-explicit-http-control-stable-0.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/003-explicit-http-control-stable-1.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/004-explicit-http-control.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/005-explicit-https-control-settling.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/006-explicit-https-control-stable-0.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/007-explicit-https-control-stable-1.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/008-explicit-https-control.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/009-schemeless-loopback-settling.png .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/010-schemeless-loopback-stable-0.png and 2 more (the report lists every artifact) Markdown .e2e/manual-base/summary.md Failed × |web| scenarios/loopback-preview.e2e.ts:50 > Schemeless IPv4 loopback previews load a plain HTTP server ASSERTION_FAILED: expect.toHaveValue failed trace .e2e/manual-base/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/trace.md manual-head.log ~/scripts$ E2E_TELEMETRY_DISABLED=1 e2e run scenarios/loopback-preview.e2e.ts --target web --output .e2e/manual-head ⊘ cache disabled RUN e2e v0.23.0 /scripts run 01a1d1f7-1629-7d6f-b452-e9bc7a147f82 · targets: web, ios ✓ target "web" command at http://127.0.0.1:44941/.well-known/t3/environment ready 6.66s ✓ |web| scenarios/loopback-preview.e2e.ts > Schemeless IPv4 loopback previews load a plain HTTP server 21.44s ✓ |web| scenarios/loopback-preview.e2e.ts (1 test) 21.44s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:53:14 Duration 28.89s (startup 6.66s) Traces .e2e/manual-head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/001-explicit-http-control-settling.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/002-explicit-http-control-stable-0.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/003-explicit-http-control-stable-1.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/004-explicit-http-control.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/005-explicit-https-control-settling.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/006-explicit-https-control-stable-0.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/007-explicit-https-control-stable-1.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/008-explicit-https-control.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/009-schemeless-loopback-settling.png .e2e/manual-head/results/loopback-preview-schemeless-ipv4-loopback-6db62d79bae520aa/attempt-1/screenshots/010-schemeless-loopback-stable-0.png and 2 more (the report lists every artifact) Markdown .e2e/manual-head/summary.md