$ node scripts/prove-scenario.ts scripts/scenarios/git-checkpoint-failure.e2e.ts --base c90b67859a6d85fc957f9ffe25ba95113c6479d3 --head 9d3e315a6db6db5b8029bb613184513647aa16d5 --upload-command 'ghdrop upload' ⊘ cache disabled
Scope: all 42 workspace projects
✓ Lockfile passes supply-chain policies (verified 4m 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: <artifact>
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 819, reused 819, downloaded 0, added 804
Progress: resolved 1123, reused 1123, downloaded 0, added 1108
Progress: resolved 1489, reused 1489, downloaded 0, added 1478
Progress: resolved 1678, reused 1674, downloaded 0, added 1675
Packages: +1678
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1678, reused 1674, downloaded 0, added 1678, 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 6.2s using pnpm v12.14.0

 RUN  e2e v0.23.0 <artifact>
      run 01a1c9a9-f68a-7f85-b7a6-932472ec5440 · targets: web, ios

 ✓ target "web" command at http://127.0.0.1:38551/.well-known/t3/environment ready 7.29s
 ✓ target "ios" command at http://127.0.0.1:8190/status ready 8.26s
stdout | |web| scenarios/git-checkpoint-failure.e2e.ts > Git failures are errors while absent repositories remain missing
{"sha":"c90b67859a6d85fc957f9ffe25ba95113c6479d3","checkpoints":{"broken":[{"ordinal":0,"status":"missing","files":"[]"},{"ordinal":1,"status":"missing","files":"[]"}],"plain":[{"ordinal":0,"status":"missing","files":"[]"},{"ordinal":1,"status":"missing","files":"[]"}],"healthy":[{"ordinal":0,"status":"ready","files":"[]"},{"ordinal":1,"status":"ready","files":"[]"}]},"probeWarningCount":0}
   × |web| scenarios/git-checkpoint-failure.e2e.ts > Git failures are errors while absent repositories remain missing 36.09s
     → expected ["missing","missing"] to equal ["error","error"]
 ❯ |web| scenarios/git-checkpoint-failure.e2e.ts (1 test | 1 failed) 36.09s

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

 FAIL  |web| scenarios/git-checkpoint-failure.e2e.ts > Git failures are errors while absent repositories remain missing
ASSERTION_FAILED: expected ["missing","missing"] to equal ["error","error"]
 ❯ scenarios/git-checkpoint-failure.e2e.ts:34:33
     32|   await app.screenshot("completed-broken-repository-turn");
     33|   console.log(JSON.stringify({ sha, checkpoints: results, probeWarnin…
     34|   await expect(statuses.broken).toEqual(["error", "error"]);
       |                                 ^
     35|   await expect(statuses.plain).toEqual(["missing", "missing"]);
     36|   await expect(statuses.healthy).toEqual(["ready", "ready"]);
 ❯ at http://127.0.0.1:38551/89b50206-4cdd-46ab-af46-a4c4ff16235b/mcp%3A92d831b3-4e46-4d7b-9d3f-315402c04fbf
 ❯ app 1 warning logged
 ❯ trace .e2e/prove/base/results/git-checkpoint-failure-git-failures-are-errors-while-67bfa70dd2a1b83e/trace.md
 ❯ video .e2e/prove/base/results/git-checkpoint-failure-git-failures-are-errors-while-67bfa70dd2a1b83e/attempt-1/video/video.webm

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯


 Test Files  1 failed | 0 passed (1)
      Tests  1 failed | 0 passed (1)
   Start at  08:12:02
   Duration  52.70s (startup 15.55s)
     Traces  .e2e/prove/base/results/ (1 page, trace.md in each test's directory)
Screenshots  .e2e/prove/base/results/git-checkpoint-failure-git-failures-are-errors-while-67bfa70dd2a1b83e/attempt-1/screenshots/001-completed-broken-repository-turn.png

   Markdown  .e2e/prove/base/summary.md

     Failed  × |web| scenarios/git-checkpoint-failure.e2e.ts:34 > Git failures are errors while absent repositories remain missing
               ASSERTION_FAILED: expected ["missing","missing"] to equal ["error","error"]
               trace .e2e/prove/base/results/git-checkpoint-failure-git-failures-are-errors-while-67bfa70dd2a1b83e/trace.md

Scope: all 42 workspace projects
✓ Lockfile passes supply-chain policies (verified 6m 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: <artifact>
  Virtual store is at:             node_modules/.pnpm
Progress: resolved 838, reused 838, downloaded 0, added 823
Progress: resolved 1325, reused 1325, downloaded 0, added 1311
Progress: resolved 1668, reused 1668, downloaded 0, added 1659
Packages: +1678
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Progress: resolved 1678, reused 1674, downloaded 0, added 1678, 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 <artifact>
      run 01a1c9ab-0537-7546-af82-6fcde2c36a79 · targets: web, ios

 ✓ target "web" command at http://127.0.0.1:36669/.well-known/t3/environment ready 7.96s
 ✓ target "ios" command at http://127.0.0.1:8190/status ready 10.89s
stdout | |web| scenarios/git-checkpoint-failure.e2e.ts > Git failures are errors while absent repositories remain missing
{"sha":"9d3e315a6db6db5b8029bb613184513647aa16d5","checkpoints":{"broken":[{"ordinal":0,"status":"error","files":"[]"},{"ordinal":1,"status":"error","files":"[]"}],"plain":[{"ordinal":0,"status":"missing","files":"[]"},{"ordinal":1,"status":"missing","files":"[]"}],"healthy":[{"ordinal":0,"status":"ready","files":"[]"},{"ordinal":1,"status":"ready","files":"[]"}]},"probeWarningCount":2}
   ✓ |web| scenarios/git-checkpoint-failure.e2e.ts > Git failures are errors while absent repositories remain missing 37.93s
 ✓ |web| scenarios/git-checkpoint-failure.e2e.ts (1 test) 37.93s

 Test Files  1 passed (1)
      Tests  1 passed (1)
   Start at  08:13:11
   Duration  58.12s (startup 18.85s)
     Traces  .e2e/prove/head/results/ (1 page, trace.md in each test's directory)
Screenshots  .e2e/prove/head/results/git-checkpoint-failure-git-failures-are-errors-while-67bfa70dd2a1b83e/attempt-1/screenshots/001-completed-broken-repository-turn.png

   Markdown  .e2e/prove/head/summary.md

{
  "scenario": "Git failures are errors while absent repositories remain missing",
  "failsOnBase": true,
  "passesOnHead": true,
  "baseSha": "c90b67859a6d85fc957f9ffe25ba95113c6479d3",
  "headSha": "9d3e315a6db6db5b8029bb613184513647aa16d5",
  "verdict": "Proven: the scenario fails on base `c90b67859a` and passes on head `9d3e315a6d`.",
  "steps": {
    "base": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"broken Git checkpoint proof, Done, broken-repository\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"todo list fixture complete\") → visible",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"Syncing messages...\") → hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot completed-broken-repository-turn",
        "status": "passed"
      }
    ],
    "head": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"broken Git checkpoint proof, Done, broken-repository\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"todo list fixture complete\") → visible",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"Syncing messages...\") → hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot completed-broken-repository-turn",
        "status": "passed"
      }
    ]
  },
  "captures": [
    "<artifact>",
    "<artifact>",
    "<artifact>"
  ],
  "videos": [
    "<artifact>",
    "<artifact>"
  ],
  "markdown": "### Scenario: Git failures are errors while absent repositories remain missing\n\n**Proven: the scenario fails on base `c90b67859a` and passes on head `9d3e315a6d`.**\n\n|  | Base `c90b67859a` | Head `9d3e315a6d` |\n| --- | --- | --- |\n| Result | ❌ failed<br>ASSERTION_FAILED: expected [\"missing\",\"missing\"] to equal [\"error\",\"error\"] | ✅ passed |\n| completed broken repository turn | ![Base c90b67859a: completed broken repository turn](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/de74238f36e15387/001-completed-broken-repository-turn.png) | ![Head 9d3e315a6d: completed broken repository turn](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/84a5a24162cbdcbc/001-completed-broken-repository-turn.png) |\n| failure | ![Base c90b67859a: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/c6777f62a8778cb4/002-failure.png) |  |\n",
  "base": {
    "sha": "c90b67859a6d85fc957f9ffe25ba95113c6479d3",
    "status": "failed",
    "title": "Git failures are errors while absent repositories remain missing",
    "message": "ASSERTION_FAILED: expected [\"missing\",\"missing\"] to equal [\"error\",\"error\"]",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"broken Git checkpoint proof, Done, broken-repository\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"todo list fixture complete\") → visible",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"Syncing messages...\") → hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot completed-broken-repository-turn",
        "status": "passed"
      }
    ],
    "captures": [
      "<artifact>",
      "<artifact>"
    ],
    "videos": [
      "<artifact>"
    ]
  },
  "head": {
    "sha": "9d3e315a6db6db5b8029bb613184513647aa16d5",
    "status": "passed",
    "title": "Git failures are errors while absent repositories remain missing",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"broken Git checkpoint proof, Done, broken-repository\")",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"todo list fixture complete\") → visible",
        "status": "passed"
      },
      {
        "step": "locator.waitFor getByText(\"Syncing messages...\") → hidden",
        "status": "passed"
      },
      {
        "step": "app.screenshot completed-broken-repository-turn",
        "status": "passed"
      }
    ],
    "captures": [
      "<artifact>"
    ],
    "videos": [
      "<artifact>"
    ]
  }
}

