$ node scripts/prove-scenario.ts scripts/scenarios/clone-url-suffix.e2e.ts --base ed54f30644c2e51bc03d5786dc1f0707b66dea88 --head 4334b87457bca34195af92631d3c1957fdcfea12 --upload-command 'ghdrop upload' ⊘ cache disabled Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 31m 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: [private path] Virtual store is at: node_modules/.pnpm Progress: resolved 1365, reused 1365, downloaded 0, added 1349 Packages: +1781 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1781, reused 1777, downloaded 0, added 1781, 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 [private path] run 01a1cea9-50da-7d6a-9dc3-a2324f5c3b55 · targets: web, ios ✓ target "web" command at http://127.0.0.1:44357/.well-known/t3/environment ready 5.48s ✓ target "ios" command at http://127.0.0.1:8190/status ready 6.54s × |web| scenarios/clone-url-suffix.e2e.ts > Clone URL query and fragment retain the same repository identity 31.85s → expect.toBeVisible failed ❯ |web| scenarios/clone-url-suffix.e2e.ts (1 test | 1 failed) 31.85s ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ FAIL |web| scenarios/clone-url-suffix.e2e.ts > Clone URL query and fragment retain the same repository identity ASSERTION_FAILED: expect.toBeVisible failed locator: getByRole("option", name: "owner/repo") expected: visible observed: no node (match count 0) ❯ scenarios/clone-url-suffix.e2e.ts:14:3 12| await screen.getByRole("combobox", "Filter threads by project").tap… 13| await app.screenshot("repository-identity"); 14| await expect(screen.getByRole("option", "owner/repo", { exact: true… | ^ 15| await expect(screen.getByText("owner/repo.git", { exact: true })).t… 16| await expect(screen.getByRole("option", "Query clone", { exact: tru… ❯ at http://127.0.0.1:44357/draft/9a9b11fa-9143-4d6f-abad-f2dd197ab302 ❯ trace .e2e/prove/base/results/clone-url-suffix-clone-url-query-and-fragment-1aa269845d1a6bc1/trace.md ❯ video .e2e/prove/base/results/clone-url-suffix-clone-url-query-and-fragment-1aa269845d1a6bc1/attempt-1/video/video.webm ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ Test Files 1 failed | 0 passed (1) Tests 1 failed | 0 passed (1) Start at 07:29:25 Duration 45.26s (startup 12.02s) Traces .e2e/prove/base/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/base/results/clone-url-suffix-clone-url-query-and-fragment-1aa269845d1a6bc1/attempt-1/screenshots/001-repository-identity.png Markdown .e2e/prove/base/summary.md Failed × |web| scenarios/clone-url-suffix.e2e.ts:14 > Clone URL query and fragment retain the same repository identity ASSERTION_FAILED: expect.toBeVisible failed trace .e2e/prove/base/results/clone-url-suffix-clone-url-query-and-fragment-1aa269845d1a6bc1/trace.md Scope: all 42 workspace projects ✓ Lockfile passes supply-chain policies (verified 32m 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: [private path] Virtual store is at: node_modules/.pnpm Progress: resolved 282, reused 282, downloaded 0, added 267 Progress: resolved 549, reused 549, downloaded 0, added 534 Progress: resolved 730, reused 730, downloaded 0, added 715 Progress: resolved 845, reused 845, downloaded 0, added 830 Progress: resolved 931, reused 931, downloaded 0, added 916 Progress: resolved 1016, reused 1016, downloaded 0, added 1001 Progress: resolved 1118, reused 1118, downloaded 0, added 1103 Progress: resolved 1176, reused 1176, downloaded 0, added 1161 Progress: resolved 1300, reused 1300, downloaded 0, added 1286 Progress: resolved 1371, reused 1371, downloaded 0, added 1358 Progress: resolved 1402, reused 1402, downloaded 0, added 1389 Progress: resolved 1574, reused 1574, downloaded 0, added 1559 Progress: resolved 1631, reused 1631, downloaded 0, added 1618 Progress: resolved 1718, reused 1718, downloaded 0, added 1707 Progress: resolved 1770, reused 1770, downloaded 0, added 1764 Packages: +1781 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Progress: resolved 1781, reused 1777, downloaded 0, added 1781, 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 18.4s using pnpm v12.14.0 RUN e2e v0.23.0 [private path] run 01a1ceaa-8b0d-7dd3-8ce0-09e007b0e9c9 · targets: web, ios ✓ target "web" command at http://127.0.0.1:41669/.well-known/t3/environment ready 11.67s ✓ target "ios" command at http://127.0.0.1:8190/status ready 13.81s ✓ |web| scenarios/clone-url-suffix.e2e.ts > Clone URL query and fragment retain the same repository identity 24.19s ✓ |web| scenarios/clone-url-suffix.e2e.ts (1 test) 24.19s Test Files 1 passed (1) Tests 1 passed (1) Start at 07:30:46 Duration 51.03s (startup 25.48s) Traces .e2e/prove/head/results/ (1 page, trace.md in each test's directory) Screenshots .e2e/prove/head/results/clone-url-suffix-clone-url-query-and-fragment-1aa269845d1a6bc1/attempt-1/screenshots/001-repository-identity.png Markdown .e2e/prove/head/summary.md { "scenario": "Clone URL query and fragment retain the same repository identity", "failsOnBase": true, "passesOnHead": true, "baseSha": "ed54f30644c2e51bc03d5786dc1f0707b66dea88", "headSha": "4334b87457bca34195af92631d3c1957fdcfea12", "verdict": "Proven: the scenario fails on base `ed54f30644` and passes on head `4334b87457`.", "steps": { "base": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Filter threads by project\")", "status": "passed" }, { "step": "app.screenshot repository-identity", "status": "passed" }, { "step": "expect.toBeVisible getByRole(\"option\", name: \"owner/repo\")", "status": "failed" } ], "head": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Filter threads by project\")", "status": "passed" }, { "step": "app.screenshot repository-identity", "status": "passed" }, { "step": "expect.toBeVisible getByRole(\"option\", name: \"owner/repo\")", "status": "passed" }, { "step": "expect.toBeHidden getByText(\"owner/repo.git\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Query clone\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Fragment clone\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Plain clone\")", "status": "passed" } ] }, "captures": [ "[private path]", "[private path]", "[private path]" ], "videos": [ "[private path]", "[private path]" ], "markdown": "### Scenario: Clone URL query and fragment retain the same repository identity\n\n**Proven: the scenario fails on base `ed54f30644` and passes on head `4334b87457`.**\n\n| | Base `ed54f30644` | Head `4334b87457` |\n| --- | --- | --- |\n| Result | ❌ failed
ASSERTION_FAILED: expect.toBeVisible failed
locator: getByRole(\"option\", name: \"owner/repo\")
expected: visible
observed: no node (match count 0) | ✅ passed |\n| repository identity | ![Base ed54f30644: repository identity](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de3356b1c34aed68/001-repository-identity.png) | ![Head 4334b87457: repository identity](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/14cd3501106df48c/001-repository-identity.png) |\n| failure | ![Base ed54f30644: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/e79f17a4e3b6d168/002-failure.png) | |\n", "base": { "sha": "ed54f30644c2e51bc03d5786dc1f0707b66dea88", "status": "failed", "title": "Clone URL query and fragment retain the same repository identity", "message": "ASSERTION_FAILED: expect.toBeVisible failed\nlocator: getByRole(\"option\", name: \"owner/repo\")\nexpected: visible\nobserved: no node (match count 0)", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Filter threads by project\")", "status": "passed" }, { "step": "app.screenshot repository-identity", "status": "passed" }, { "step": "expect.toBeVisible getByRole(\"option\", name: \"owner/repo\")", "status": "failed" } ], "captures": [ "[private path]", "[private path]" ], "videos": [ "[private path]" ] }, "head": { "sha": "4334b87457bca34195af92631d3c1957fdcfea12", "status": "passed", "title": "Clone URL query and fragment retain the same repository identity", "steps": [ { "step": "app.open ", "status": "passed" }, { "step": "locator.tap getByRole(\"combobox\", name: \"Filter threads by project\")", "status": "passed" }, { "step": "app.screenshot repository-identity", "status": "passed" }, { "step": "expect.toBeVisible getByRole(\"option\", name: \"owner/repo\")", "status": "passed" }, { "step": "expect.toBeHidden getByText(\"owner/repo.git\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Query clone\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Fragment clone\")", "status": "passed" }, { "step": "expect.toBeHidden getByRole(\"option\", name: \"Plain clone\")", "status": "passed" } ], "captures": [ "[private path]" ], "videos": [ "[private path]" ] } }