{
  "scenario": "Synchronous setup completes with Bash and ble.sh",
  "failsOnBase": true,
  "passesOnHead": true,
  "couldNotRun": null,
  "baseSha": "2f2730c11347ec17f5d0136b1158da6b641ddc61",
  "headSha": "d1c9df20f924cad5dd80d500954d3763de6f6423",
  "verdict": "Proven: the scenario fails on base `2f2730c113` and passes on head `d1c9df20f9`.",
  "steps": {
    "base": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /b7b2bcfa-f91b-4c60-bd4f-7da3a17625e8/mcp:aaa634bb-fdcc-49af-bdd9-a339508a0369",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Add project script\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Name\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Command\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Run automatically on worktree creation\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Wait for it to finish before the agent starts\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Save action\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /b7b2bcfa-f91b-4c60-bd4f-7da3a17625e8/mcp:91687fd6-3d27-4698-809e-33c2458f4a37",
        "status": "passed"
      },
      {
        "step": "expect.toBeVisible getByText(\"first fixture turn complete\")",
        "status": "failed"
      },
      {
        "step": "app.screenshot setup-result",
        "status": "passed"
      }
    ],
    "head": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /e8094699-f2e3-474b-8af2-560322e29839/mcp:71c70ce3-862e-4887-80b9-9af833fdae10",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Add project script\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Name\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Command\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Run automatically on worktree creation\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Wait for it to finish before the agent starts\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Save action\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /e8094699-f2e3-474b-8af2-560322e29839/mcp:e7560577-fadd-4aed-866f-037688f81cd9",
        "status": "passed"
      },
      {
        "step": "expect.toBeVisible getByText(\"first fixture turn complete\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot setup-result",
        "status": "passed"
      }
    ]
  },
  "captures": [
    "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/001-setup-result.png",
    "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/002-failure.png",
    "<checkout>/scripts/.e2e/prove/head/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/001-setup-result.png"
  ],
  "videos": [
    "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/video/video.webm",
    "<checkout>/scripts/.e2e/prove/head/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/video/video.webm"
  ],
  "markdown": "### Scenario: Synchronous setup completes with Bash and ble.sh\n\n**Proven: the scenario fails on base `2f2730c113` and passes on head `d1c9df20f9`.**\n\n|  | Base `2f2730c113` | Head `d1c9df20f9` |\n| --- | --- | --- |\n| Result | \u274c failed<br>ASSERTION_FAILED: expect.toBeVisible failed<br>locator: getByText(\"first fixture turn complete\")<br>expected: visible<br>observed: no node (match count 0) | \u2705 passed |\n| setup result | ![Base 2f2730c113: setup result](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/ff27fb31dc39bf30/001-setup-result.png) | ![Head d1c9df20f9: setup result](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/b9b69b2f18530c77/001-setup-result.png) |\n| failure | ![Base 2f2730c113: failure](https://gh-file-drop-api-prod-mi5fy3sowv63ufte.pinglabs.workers.dev/f/fca8500c0ad58574/002-failure.png) |  |\n",
  "base": {
    "sha": "2f2730c11347ec17f5d0136b1158da6b641ddc61",
    "status": "failed",
    "title": "Synchronous setup completes with Bash and ble.sh",
    "message": "ASSERTION_FAILED: expect.toBeVisible failed\nlocator: getByText(\"first fixture turn complete\")\nexpected: visible\nobserved: no node (match count 0)",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /b7b2bcfa-f91b-4c60-bd4f-7da3a17625e8/mcp:aaa634bb-fdcc-49af-bdd9-a339508a0369",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Add project script\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Name\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Command\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Run automatically on worktree creation\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Wait for it to finish before the agent starts\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Save action\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /b7b2bcfa-f91b-4c60-bd4f-7da3a17625e8/mcp:91687fd6-3d27-4698-809e-33c2458f4a37",
        "status": "passed"
      },
      {
        "step": "expect.toBeVisible getByText(\"first fixture turn complete\")",
        "status": "failed"
      },
      {
        "step": "app.screenshot setup-result",
        "status": "passed"
      }
    ],
    "captures": [
      "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/001-setup-result.png",
      "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/002-failure.png"
    ],
    "videos": [
      "<checkout>/scripts/.e2e/prove/base/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/video/video.webm"
    ]
  },
  "head": {
    "sha": "d1c9df20f924cad5dd80d500954d3763de6f6423",
    "status": "passed",
    "title": "Synchronous setup completes with Bash and ble.sh",
    "steps": [
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /e8094699-f2e3-474b-8af2-560322e29839/mcp:71c70ce3-862e-4887-80b9-9af833fdae10",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Add project script\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Name\")",
        "status": "passed"
      },
      {
        "step": "locator.fill getByRole(\"textbox\", name: \"Command\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Run automatically on worktree creation\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"switch\", name: \"Wait for it to finish before the agent starts\")",
        "status": "passed"
      },
      {
        "step": "locator.tap getByRole(\"button\", name: \"Save action\")",
        "status": "passed"
      },
      {
        "step": "app.open <pairing link>",
        "status": "passed"
      },
      {
        "step": "expect.not.toHaveURL /\\/pair(?:[?#]|$)/",
        "status": "passed"
      },
      {
        "step": "app.open /e8094699-f2e3-474b-8af2-560322e29839/mcp:e7560577-fadd-4aed-866f-037688f81cd9",
        "status": "passed"
      },
      {
        "step": "expect.toBeVisible getByText(\"first fixture turn complete\")",
        "status": "passed"
      },
      {
        "step": "app.screenshot setup-result",
        "status": "passed"
      }
    ],
    "captures": [
      "<checkout>/scripts/.e2e/prove/head/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/screenshots/001-setup-result.png"
    ],
    "videos": [
      "<checkout>/scripts/.e2e/prove/head/results/setup-shell-editor-synchronous-setup-completes-with-e5e4f4e6ce2dc3a5/attempt-1/video/video.webm"
    ]
  }
}