$ node scripts/prove-scenario.ts scripts/scenarios/submodule-download-progress.e2e.ts --base e0d0fb33dd438dbe40737683ddd8224ea581ec08 --head 5a23c16931f0f9369d1a1682e37fd5be03fd72f5 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 18m 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 1013, reused 1013, downloaded 0, added 998 Progress: resolved 1477, reused 1477, downloaded 0, added 1462 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 4.9s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1d1d1-5978-7749-973e-bda14d6e5ae2 · targets: web, ios ✓ target "web" command at http://127.0.0.1:34399/.well-known/t3/environment ready 7.09s ✓ target "ios" command at http://127.0.0.1:8190/status ready 7.98s × |web| scenarios/submodule-download-progress.e2e.ts > New worktree separates checkout from a slow submodule download 36.39s → expect.toBeVisible failed ❯ |web| scenarios/submodule-download-progress.e2e.ts (1 test | 1 failed) 36.39s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/submodule-download-progress.e2e.ts > New worktree separates checkout from a slow submodule download ASSERTION_FAILED: expect.toBeVisible failed locator: getByText("Init submodules").first() expected: visible observed: no node (match count 0) ❯ scenarios/submodule-download-progress.e2e.ts:74:5 72| await Promise.race([downloadVisible, delay(30_000).then(() => { t… 73| await app.screenshot("submodule-downloading"); 74| await expect(screen.getByText("Init submodules", { exact: true })… | ^ 75| await expect(screen.getByText("Receiving objects:", { exact: fals… 76| await expect(browser.locator('[data-worktree-setup-stage="submodu… ❯ at http://127.0.0.1:34399/2be015db-4d61-49aa-867e-4d51dcf3a21e/1f99da27-9dcf-4131-8ab2-16e0e96b3b2f ❯ app 1 warning logged ❯ trace .e2e/prove/base/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/trace.md ❯ video .e2e/prove/base/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 22:12:01 Duration 52.46s (startup 15.07s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/base/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/screenshots/001-launch-requested.png .e2e/prove/base/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/screenshots/002-submodule-downloading.png Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/submodule-download-progress.e2e.ts:74 > New worktree separates checkout from a slow submodule download ASSERTION_FAILED: expect.toBeVisible failed trace .e2e/prove/base/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 19m 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 416, reused 416, downloaded 0, added 401 Progress: resolved 1200, reused 1200, downloaded 0, added 1184 Progress: resolved 1760, reused 1760, downloaded 0, added 1751 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 5.3s using pnpm v12.14.0 RUN e2e v0.23.0 run 01a1d1d2-6524-727a-8d03-53891ce578c6 · targets: web, ios ✓ target "web" command at http://127.0.0.1:38073/.well-known/t3/environment ready 7.64s ✓ target "ios" command at http://127.0.0.1:8190/status ready 7.57s ✓ |web| scenarios/submodule-download-progress.e2e.ts > New worktree separates checkout from a slow submodule download 60.20s ✓ |web| scenarios/submodule-download-progress.e2e.ts (1 test) 60.20s Test Files 1 passed (1) Tests 1 passed (1) Start at 22:13:09 Duration 76.83s (1m 17s, startup 15.21s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/screenshots/001-launch-requested.png .e2e/prove/head/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/screenshots/002-submodule-downloading.png .e2e/prove/head/results/submodule-download-progress-new-worktree-separates-checkout-743b37ff26486a96/attempt-1/screenshots/003-submodules-complete.png Markdown .e2e/prove/head/summary.md { "scenario": "New worktree separates checkout from a slow submodule download", "failsOnBase": true, "passesOnHead": true, "baseSha": "e0d0fb33dd438dbe40737683ddd8224ea581ec08", "headSha": "5a23c16931f0f9369d1a1682e37fd5be03fd72f5", "verdict": "Proven: the scenario fails on base `e0d0fb33dd` and passes on head `5a23c16931`.", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle thread details panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Workspace\")", "status": "passed" }, { "step": "locator.tap getByRole(\"option\", name: \"New worktree\")", "status": "passed" }, { "step": "locator.fill getByTestId(\"composer-editor\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Submit message\")", "status": "passed" }, { "step": "app.screenshot launch-requested", "status": "passed" }, { "step": "app.screenshot submodule-downloading", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Init submodules\").first()", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle thread details panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Workspace\")", "status": "passed" }, { "step": "locator.tap getByRole(\"option\", name: \"New worktree\")", "status": "passed" }, { "step": "locator.fill getByTestId(\"composer-editor\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Submit message\")", "status": "passed" }, { "step": "app.screenshot launch-requested", "status": "passed" }, { "step": "app.screenshot submodule-downloading", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Init submodules\").first()", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Receiving objects:\").first()", "status": "passed" }, { "step": "expect.toHaveAttribute locator(\"[data-worktree-setup-stage=\\\"submodules\\\"]\")", "status": "passed" }, { "step": "expect.toHaveAttribute locator(\"[data-worktree-setup-stage=\\\"checkout\\\"]\")", "status": "passed" }, { "step": "app.screenshot submodules-complete", "status": "passed" }, { "step": "locator.waitFor getByText(\"Worked for\").first() → visible", "status": "passed" } ] }, "captures": [ "", "", "", "", "", "" ], "videos": [ "", "" ], "markdown": "### Scenario: New worktree separates checkout from a slow submodule download\n\n**Proven: the scenario fails on base `e0d0fb33dd` and passes on head `5a23c16931`.**\n\n| | Base `e0d0fb33dd` | Head `5a23c16931` |\n| --- | --- | --- |\n| Result | ❌ failed
ASSERTION_FAILED: expect.toBeVisible failed
locator: getByText(\"Init submodules\").first()
expected: visible
observed: no node (match count 0) | ✅ passed |\n| launch requested | ![Base e0d0fb33dd: launch requested](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/601cfd84e142998f/001-launch-requested.png) | ![Head 5a23c16931: launch requested](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/16881a01ca97fc7b/001-launch-requested.png) |\n| submodule downloading | ![Base e0d0fb33dd: submodule downloading](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/0025b539bbdb8884/002-submodule-downloading.png) | ![Head 5a23c16931: submodule downloading](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14ded9137106c44f/002-submodule-downloading.png) |\n| failure | ![Base e0d0fb33dd: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/4748a2c88516a03a/003-failure.png) | |\n| submodules complete | | ![Head 5a23c16931: submodules complete](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/30f5a568af1c6a64/003-submodules-complete.png) |\n", "base": { "sha": "e0d0fb33dd438dbe40737683ddd8224ea581ec08", "status": "failed", "title": "New worktree separates checkout from a slow submodule download", "message": "ASSERTION_FAILED: expect.toBeVisible failed\nlocator: getByText(\"Init submodules\").first()\nexpected: visible\nobserved: no node (match count 0)", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle thread details panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Workspace\")", "status": "passed" }, { "step": "locator.tap getByRole(\"option\", name: \"New worktree\")", "status": "passed" }, { "step": "locator.fill getByTestId(\"composer-editor\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Submit message\")", "status": "passed" }, { "step": "app.screenshot launch-requested", "status": "passed" }, { "step": "app.screenshot submodule-downloading", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Init submodules\").first()", "status": "failed" } ], "captures": [ "", "", "" ], "videos": [ "" ] }, "head": { "sha": "5a23c16931f0f9369d1a1682e37fd5be03fd72f5", "status": "passed", "title": "New worktree separates checkout from a slow submodule download", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Toggle thread details panel\")", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Workspace\")", "status": "passed" }, { "step": "locator.tap getByRole(\"option\", name: \"New worktree\")", "status": "passed" }, { "step": "locator.fill getByTestId(\"composer-editor\")", "status": "passed" }, { "step": "locator.tap getByRole(\"button\", name: \"Submit message\")", "status": "passed" }, { "step": "app.screenshot launch-requested", "status": "passed" }, { "step": "app.screenshot submodule-downloading", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Init submodules\").first()", "status": "passed" }, { "step": "expect.toBeVisible getByText(\"Receiving objects:\").first()", "status": "passed" }, { "step": "expect.toHaveAttribute locator(\"[data-worktree-setup-stage=\\\"submodules\\\"]\")", "status": "passed" }, { "step": "expect.toHaveAttribute locator(\"[data-worktree-setup-stage=\\\"checkout\\\"]\")", "status": "passed" }, { "step": "app.screenshot submodules-complete", "status": "passed" }, { "step": "locator.waitFor getByText(\"Worked for\").first() → visible", "status": "passed" } ], "captures": [ "", "", "" ], "videos": [ "" ] } }