{
  "schemaVersion": "1",
  "contractVersion": "1",
  "repository": "alexcodeplace/overdeck",
  "gitTreeObjectSha": "f2f850b8d0dae4f98c5b9abce24c26656af4e562",
  "runId": "31557662468",
  "attempt": 1,
  "executor": {
    "hostname": "debian1",
    "platform": "linux",
    "arch": "x64",
    "node": "v22.23.1",
    "ci": true
  },
  "fingerprints": {
    "lockfileSha256": "a08d5c0d5d130f5ff2113301fbd02c32e5d2af51b7b37f9b53baec3da555011d",
    "packageManager": "pnpm@11.5.2",
    "gitTreeObjectSha": "f2f850b8d0dae4f98c5b9abce24c26656af4e562"
  },
  "resultsDir": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562",
  "granularity": {
    "workspace": "test",
    "workstation": "suite",
    "osShell": "suite",
    "playwright": "test",
    "buildboxPath1": "suite",
    "buildboxPath2": "suite"
  },
  "phases": [
    {
      "id": "workflow-contract",
      "startedAt": "2026-08-12T02:41:31.062Z",
      "endedAt": "2026-08-12T02:41:31.062Z",
      "durationMs": 0,
      "status": "passed",
      "details": {
        "offloadExit": 0,
        "auditViolations": []
      }
    },
    {
      "id": "inventory-check",
      "status": "passed",
      "durationMs": 0,
      "startedAt": "2026-08-12T02:41:31.147Z",
      "endedAt": "2026-08-12T02:41:31.147Z"
    },
    {
      "id": "typecheck",
      "label": "typecheck",
      "argv": [
        "pnpm",
        "run",
        "typecheck"
      ],
      "cwd": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck",
      "startedAt": "2026-08-12T02:41:31.147Z",
      "endedAt": "2026-08-12T02:41:47.080Z",
      "durationMs": 15932,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 834,
      "stderrBytes": 20,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/typecheck.log"
    },
    {
      "id": "workspace-tests",
      "startedAt": "2026-08-12T02:41:47.081Z",
      "endedAt": "2026-08-12T02:44:08.920Z",
      "durationMs": 141839,
      "status": "passed"
    },
    {
      "id": "workstation:ca-launcher",
      "suitePath": "modules/workstation/claude/tests/ca-launcher.test.sh",
      "sourceDigest": "67ab8bf85c683181752dea7bc7c9c491fe8f0c6fec4c7f914d65bb60f9c4c884",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/ca-launcher.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:08.931Z",
      "endedAt": "2026-08-12T02:44:08.946Z",
      "durationMs": 14,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 112,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-ca-launcher.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:containment-invariants",
      "suitePath": "modules/workstation/claude/tests/containment-invariants.test.sh",
      "sourceDigest": "aabbc2a51c828c68a71d51713d25df265148b91a5333e583b51e798ee0baada4",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/containment-invariants.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:08.946Z",
      "endedAt": "2026-08-12T02:44:09.132Z",
      "durationMs": 185,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1184,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-containment-invariants.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:confine-scope-escape",
      "suitePath": "modules/workstation/claude/tests/confine-scope-escape.test.sh",
      "sourceDigest": "4805355a1cb525f1e4114851e4cf2eb37c8d9e560f628d68132d133fcfcfc9f7",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/confine-scope-escape.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.132Z",
      "endedAt": "2026-08-12T02:44:09.293Z",
      "durationMs": 161,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 229,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-confine-scope-escape.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:agent-reaper-enforce",
      "suitePath": "modules/workstation/claude/tests/agent-reaper-enforce.test.py",
      "sourceDigest": "782d661f7ae01b4e98715599b855c538f166c4982fb8b4e2b12c3aaf52912e96",
      "argv": [
        "python3",
        "modules/workstation/claude/tests/agent-reaper-enforce.test.py"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.294Z",
      "endedAt": "2026-08-12T02:44:09.373Z",
      "durationMs": 79,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 0,
      "stderrBytes": 516,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-reaper-enforce.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:agent-session-ledger",
      "suitePath": "modules/workstation/claude/tests/agent-session-ledger.test.sh",
      "sourceDigest": "8800b98d5fbd4c23370279e2dffcb8c780770f1f818e4a5beb70647207b8a5e2",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/agent-session-ledger.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.374Z",
      "endedAt": "2026-08-12T02:44:25.315Z",
      "durationMs": 15942,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 5008,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-ledger.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:agent-session-passthrough",
      "suitePath": "modules/workstation/claude/tests/agent-session-passthrough.test.sh",
      "sourceDigest": "8e052d8f9d42d1f7c25c54d8a2c7eb5fd99cf7b5c88eb8e149851a55ea715977",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/agent-session-passthrough.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:25.316Z",
      "endedAt": "2026-08-12T02:44:35.408Z",
      "durationMs": 10092,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 362,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-passthrough.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:human-session-fallback",
      "suitePath": "modules/workstation/claude/tests/human-session-fallback.test.sh",
      "sourceDigest": "2ee1a2d604bb7d4b3133fc0b574515d6d4bbb17ba85b16a08fadcc74d9725668",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/human-session-fallback.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:35.408Z",
      "endedAt": "2026-08-12T02:44:35.547Z",
      "durationMs": 139,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 254,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-human-session-fallback.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:shim-drift-check",
      "suitePath": "modules/workstation/claude/tests/shim-drift-check.test.sh",
      "sourceDigest": "a158ce0f16e88ff348d3b79feb3604323e872a89ddc67b85f49d680163d740f0",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/shim-drift-check.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:35.547Z",
      "endedAt": "2026-08-12T02:44:36.747Z",
      "durationMs": 1199,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 813,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-drift-check.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:od-worktree-registry",
      "suitePath": "modules/workstation/claude/tests/od-worktree-registry.test.sh",
      "sourceDigest": "900c9cd09a78fc56f951948e2e8ff543a2ff6a0a763172150ef6cac90e9c5537",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/od-worktree-registry.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.747Z",
      "endedAt": "2026-08-12T02:44:36.816Z",
      "durationMs": 69,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 296,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-od-worktree-registry.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:shim-bare-name",
      "suitePath": "modules/workstation/claude/tests/shim-bare-name.test.sh",
      "sourceDigest": "8c3955c657f339751f97d73a15f3cf587bdcd21d4f1033765e12d9d1730084f7",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/shim-bare-name.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.817Z",
      "endedAt": "2026-08-12T02:44:36.859Z",
      "durationMs": 43,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 220,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-bare-name.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:kill-guard",
      "suitePath": "modules/workstation/claude/tests/kill-guard.test.sh",
      "sourceDigest": "8e4712b59585d667d8b19347b0a97c672f1298ec76475397169d3366eff255e5",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/kill-guard.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.860Z",
      "endedAt": "2026-08-12T02:44:37.780Z",
      "durationMs": 920,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1095,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-kill-guard.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:headless-guard-scope",
      "suitePath": "modules/workstation/claude/tests/headless-guard-scope.test.sh",
      "sourceDigest": "7f852b91528fbe1fa2e07e14566bd6baa5659bfb7add2563fb85c32ee0a829b4",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/headless-guard-scope.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:37.781Z",
      "endedAt": "2026-08-12T02:44:38.359Z",
      "durationMs": 579,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1803,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-headless-guard-scope.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    {
      "id": "workstation:bun-hooks",
      "label": "workstation:bun-hooks",
      "argv": [
        "bun",
        "test",
        "modules/workstation/claude/hooks/test",
        "--reporter=junit",
        "--reporter-outfile=/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/bun-hooks.junit.xml"
      ],
      "cwd": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck",
      "startedAt": "2026-08-12T02:44:38.360Z",
      "endedAt": "2026-08-12T02:44:39.630Z",
      "durationMs": 1270,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 28,
      "stderrBytes": 2621,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/bun-hooks.log"
    },
    {
      "id": "os-shell-suites",
      "label": "os-shell-suites",
      "argv": [
        "bash",
        "tests/os/run-all.sh"
      ],
      "cwd": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "durationMs": 71253,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 37855,
      "stderrBytes": 788,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/os-shell-suites.log"
    },
    {
      "id": "playwright",
      "label": "playwright",
      "argv": [
        "bash",
        "scripts/ci-with-test-display.sh",
        "pnpm",
        "exec",
        "playwright",
        "test",
        "--reporter=list,json"
      ],
      "cwd": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck",
      "startedAt": "2026-08-12T02:45:50.886Z",
      "endedAt": "2026-08-12T02:47:13.953Z",
      "durationMs": 83067,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 12769,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/playwright.log"
    }
  ],
  "suites": {
    "expected": [
      "workspace:apps/web",
      "workspace:collector",
      "workspace:controller",
      "workspace:modules/buildbox",
      "workspace:packages/deck-ui",
      "workspace:spine",
      "workstation:ca-launcher",
      "workstation:containment-invariants",
      "workstation:confine-scope-escape",
      "workstation:agent-reaper-enforce",
      "workstation:agent-session-ledger",
      "workstation:agent-session-passthrough",
      "workstation:human-session-fallback",
      "workstation:shim-drift-check",
      "workstation:od-worktree-registry",
      "workstation:shim-bare-name",
      "workstation:kill-guard",
      "workstation:headless-guard-scope",
      "workstation:bun-hooks",
      "os:buildbox-watch-edge.test.sh",
      "os:cutover.test.sh",
      "os:deck-podman.test.sh",
      "os:deckctl-agents.test.sh",
      "os:deckctl-bootstrap.test.sh",
      "os:deckctl-core.test.sh",
      "os:deckctl-install.test.sh",
      "os:deckctl-sync.test.sh",
      "os:deckctl-system-units.test.sh",
      "os:environment-d-specifiers.test.sh",
      "os:exec-plane-probe.test.sh",
      "os:import-module.test.sh",
      "os:monitor-dryrun.test.sh",
      "os:ref-sweep.test.sh",
      "os:schema.test.sh",
      "os:wrapper-reinvoke-lint.test.sh",
      "module:buildbox:build-cache-prune.test.sh",
      "module:buildbox:claude-home-settings.test.sh",
      "module:buildbox:claude-parity.test.sh",
      "module:buildbox:deadman-branches.test.sh",
      "module:buildbox:devtools.test.sh",
      "module:buildbox:fleet-guard.test.sh",
      "module:buildbox:is-lab-host.test.sh",
      "module:buildbox:journal-cap.test.sh",
      "module:buildbox:parity-converge.test.sh",
      "module:buildbox:reboot-wait.test.sh",
      "module:buildbox:runner.test.sh",
      "module:buildbox:second-disk.test.sh",
      "module:buildbox:sshd-access-lock.test.sh",
      "module:buildbox:telemetry.test.sh",
      "module:buildbox:vendor.test.sh",
      "module:fleet:adapters-audit.test.sh",
      "module:fleet:adapters-harden.test.sh",
      "module:fleet:adapters.test.sh",
      "module:fleet:cli.test.sh",
      "module:fleet:hosts-migration.test.sh",
      "module:fleet:node.test.sh",
      "module:fleet:roots.test.sh",
      "module:harness:canary-wrapper-health.test.sh",
      "module:harness:codex-permission-mode.test.sh",
      "module:harness:codex-sidecar-contract.test.sh",
      "module:harness:gate-attribution.test.sh",
      "module:harness:gate-scope-guard.test.sh",
      "module:harness:gate0-heartbeat.test.sh",
      "module:harness:gate0-progress.test.sh",
      "module:harness:okf-hooks.test.sh",
      "module:harness:okf-nav-protocol.test.sh",
      "module:harness:okf.test.sh",
      "module:harness:wrapper-empty-output.test.sh",
      "playwright:actions",
      "playwright:bots-live",
      "playwright:bots",
      "playwright:ci-build",
      "playwright:ci-trains",
      "playwright:decisions",
      "playwright:hooks-controls",
      "playwright:inbox",
      "playwright:map",
      "playwright:overview",
      "playwright:pages",
      "playwright:plans-observability",
      "playwright:sessions",
      "playwright:shell",
      "playwright:ui-matrix"
    ],
    "executed": [
      "workspace:apps/web",
      "workspace:collector",
      "workspace:controller",
      "workspace:packages/deck-ui",
      "workspace:spine",
      "workspace:modules/buildbox",
      "module:buildbox:build-cache-prune.test.sh",
      "module:buildbox:claude-home-settings.test.sh",
      "module:buildbox:claude-parity.test.sh",
      "module:buildbox:deadman-branches.test.sh",
      "module:buildbox:devtools.test.sh",
      "module:buildbox:fleet-guard.test.sh",
      "module:buildbox:is-lab-host.test.sh",
      "module:buildbox:journal-cap.test.sh",
      "module:buildbox:parity-converge.test.sh",
      "module:buildbox:reboot-wait.test.sh",
      "module:buildbox:runner.test.sh",
      "module:buildbox:second-disk.test.sh",
      "module:buildbox:sshd-access-lock.test.sh",
      "module:buildbox:telemetry.test.sh",
      "module:buildbox:vendor.test.sh",
      "workstation:ca-launcher",
      "workstation:containment-invariants",
      "workstation:confine-scope-escape",
      "workstation:agent-reaper-enforce",
      "workstation:agent-session-ledger",
      "workstation:agent-session-passthrough",
      "workstation:human-session-fallback",
      "workstation:shim-drift-check",
      "workstation:od-worktree-registry",
      "workstation:shim-bare-name",
      "workstation:kill-guard",
      "workstation:headless-guard-scope",
      "workstation:bun-hooks",
      "os:buildbox-watch-edge.test.sh",
      "os:cutover.test.sh",
      "os:deck-podman.test.sh",
      "os:deckctl-agents.test.sh",
      "os:deckctl-bootstrap.test.sh",
      "os:deckctl-core.test.sh",
      "os:deckctl-install.test.sh",
      "os:deckctl-sync.test.sh",
      "os:deckctl-system-units.test.sh",
      "os:environment-d-specifiers.test.sh",
      "os:exec-plane-probe.test.sh",
      "os:import-module.test.sh",
      "os:monitor-dryrun.test.sh",
      "os:ref-sweep.test.sh",
      "os:schema.test.sh",
      "os:wrapper-reinvoke-lint.test.sh",
      "module:fleet:adapters-audit.test.sh",
      "module:fleet:adapters-harden.test.sh",
      "module:fleet:adapters.test.sh",
      "module:fleet:cli.test.sh",
      "module:fleet:hosts-migration.test.sh",
      "module:fleet:node.test.sh",
      "module:fleet:roots.test.sh",
      "module:harness:canary-wrapper-health.test.sh",
      "module:harness:codex-permission-mode.test.sh",
      "module:harness:codex-sidecar-contract.test.sh",
      "module:harness:gate-attribution.test.sh",
      "module:harness:gate-scope-guard.test.sh",
      "module:harness:gate0-heartbeat.test.sh",
      "module:harness:gate0-progress.test.sh",
      "module:harness:okf-hooks.test.sh",
      "module:harness:okf-nav-protocol.test.sh",
      "module:harness:okf.test.sh",
      "module:harness:wrapper-empty-output.test.sh",
      "playwright:actions",
      "playwright:bots-live",
      "playwright:bots",
      "playwright:ci-build",
      "playwright:ci-trains",
      "playwright:decisions",
      "playwright:hooks-controls",
      "playwright:inbox",
      "playwright:map",
      "playwright:overview",
      "playwright:pages",
      "playwright:plans-observability",
      "playwright:sessions",
      "playwright:shell",
      "playwright:ui-matrix"
    ],
    "notStarted": []
  },
  "buildboxEquivalence": {
    "path1Caller": "workspace:modules/buildbox",
    "path2Caller": "os-discovery",
    "path1": [
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:build-cache-prune.test.sh",
        "suitePath": "modules/buildbox/test/build-cache-prune.test.sh",
        "sourceDigest": "f755db9661143c8caeda4b7acfc4d3b5437f6085fb2467bc7f7c1a123e478aa9",
        "argv": [
          "bash",
          "modules/buildbox/test/build-cache-prune.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:41:48.082Z",
        "endedAt": "2026-08-12T02:41:48.230Z",
        "durationMs": 148,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "27e08f0e804ab4a392599f72a715908e5c9b0e9d3667376546cdf3253269f973"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:claude-home-settings.test.sh",
        "suitePath": "modules/buildbox/test/claude-home-settings.test.sh",
        "sourceDigest": "36054d98b40c9880b263bd89e20e81ba97c6c21e9222a89a7efe624f2c3f0e5d",
        "argv": [
          "bash",
          "modules/buildbox/test/claude-home-settings.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:41:48.805Z",
        "endedAt": "2026-08-12T02:41:49.494Z",
        "durationMs": 689,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "384705d8173c7354ea1cde010273f6cda3cef627ed55713439632b9a4c02b0ba"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:claude-parity.test.sh",
        "suitePath": "modules/buildbox/test/claude-parity.test.sh",
        "sourceDigest": "c0d801167b446bad4feba01bbaea3322415615b9e59df9ba0bcde0dd2e7b7614",
        "argv": [
          "bash",
          "modules/buildbox/test/claude-parity.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:41:50.071Z",
        "endedAt": "2026-08-12T02:41:51.206Z",
        "durationMs": 1135,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "a114f5b6a7570416a849b61de66166a8b6339b77f78c155b8b172b64e326c364"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:deadman-branches.test.sh",
        "suitePath": "modules/buildbox/test/deadman-branches.test.sh",
        "sourceDigest": "848695a3a91ec316e03d74309f49267075a0105ee729dde1aa76da3b702b0273",
        "argv": [
          "bash",
          "modules/buildbox/test/deadman-branches.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:41:51.814Z",
        "endedAt": "2026-08-12T02:41:52.369Z",
        "durationMs": 555,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "d0d6f1875235d799cfcc79bd6471c665c23e51c19bc0fc932cb39f46ce1ef116"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:devtools.test.sh",
        "suitePath": "modules/buildbox/test/devtools.test.sh",
        "sourceDigest": "c5a38eee6c7ba596d40750696df8cfa46685e14d17b3b77ceaa41348e13e4678",
        "argv": [
          "bash",
          "modules/buildbox/test/devtools.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:41:53.109Z",
        "endedAt": "2026-08-12T02:42:26.027Z",
        "durationMs": 32918,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "778b6deab21ac14818f36216089959058b9e59981c4b50c3e327cbd259e8d0a1"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:fleet-guard.test.sh",
        "suitePath": "modules/buildbox/test/fleet-guard.test.sh",
        "sourceDigest": "9cc0c945f39e6949ab6fe99f79cabeccf927ca04f1122bd33e58ad142a971f90",
        "argv": [
          "bash",
          "modules/buildbox/test/fleet-guard.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:42:26.394Z",
        "endedAt": "2026-08-12T02:42:26.590Z",
        "durationMs": 196,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "38fc3f241b00d128a8f3e969e7ce6439b66e45241556998e9d6df9a5e6b71d41"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:is-lab-host.test.sh",
        "suitePath": "modules/buildbox/test/is-lab-host.test.sh",
        "sourceDigest": "6445c6c3635444bfc8bb393efd2b79bdd9f8491e20038a99f8f25d3860b9f7fd",
        "argv": [
          "bash",
          "modules/buildbox/test/is-lab-host.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:42:26.956Z",
        "endedAt": "2026-08-12T02:42:26.994Z",
        "durationMs": 38,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "2fbc906833ce13910137260595636c4e89f381b8fda3ecc5c4faf96fadcfa06d"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:journal-cap.test.sh",
        "suitePath": "modules/buildbox/test/journal-cap.test.sh",
        "sourceDigest": "f01bda67e7975ec7cba6a0da813a2d44bb6284eaec47d0b9c72dac4b3752c3bf",
        "argv": [
          "bash",
          "modules/buildbox/test/journal-cap.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:42:27.366Z",
        "endedAt": "2026-08-12T02:42:27.395Z",
        "durationMs": 29,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "4a28e23a07e19be8c81686bb51de6d1f080f53c52117f44421cbd2f9dbe1cdf6"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:parity-converge.test.sh",
        "suitePath": "modules/buildbox/test/parity-converge.test.sh",
        "sourceDigest": "6de3b0c246964eb825ffe2016da8b0848a212fcc8966210ef2a6c3432cc4503b",
        "argv": [
          "bash",
          "modules/buildbox/test/parity-converge.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:42:27.857Z",
        "endedAt": "2026-08-12T02:42:28.139Z",
        "durationMs": 282,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "daa2f88cfce1c88aca1b5988c993503859b78e6b8e333e54f8c03514a83f3604"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:reboot-wait.test.sh",
        "suitePath": "modules/buildbox/test/reboot-wait.test.sh",
        "sourceDigest": "0766ac6261292ecdfea51227d1a8b95a70ef77e9cec95f1d96e9feb326ab10f0",
        "argv": [
          "bash",
          "modules/buildbox/test/reboot-wait.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:42:28.516Z",
        "endedAt": "2026-08-12T02:43:08.553Z",
        "durationMs": 40037,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "610beb92a805f1acf85891b5509bbf4487c9b865a5da7baa7675a5ed94347fca"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:runner.test.sh",
        "suitePath": "modules/buildbox/test/runner.test.sh",
        "sourceDigest": "a4235cfdb7e737bd396d2ad4a6282193f598b17ce9f76f01f9542eaba1d7128f",
        "argv": [
          "bash",
          "modules/buildbox/test/runner.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:43:08.941Z",
        "endedAt": "2026-08-12T02:43:09.009Z",
        "durationMs": 68,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "995d1f6085f414915caa74f923747fb234972d76dd874e63856a12261589df9e"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:second-disk.test.sh",
        "suitePath": "modules/buildbox/test/second-disk.test.sh",
        "sourceDigest": "44c9c7a3648d8db2c9826ab851b6af686d3146cd3f4d22dfe825d4d085e8aca1",
        "argv": [
          "bash",
          "modules/buildbox/test/second-disk.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:43:09.484Z",
        "endedAt": "2026-08-12T02:43:09.714Z",
        "durationMs": 230,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "d38ad4d8e1b43c8dab02d86f69fde090cca3e0ca2c924718357dc8ed04f56408"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:sshd-access-lock.test.sh",
        "suitePath": "modules/buildbox/test/sshd-access-lock.test.sh",
        "sourceDigest": "032beffcf58fd3152b6350650d7516c9d8d279885c2f447837c019ed2faa5324",
        "argv": [
          "bash",
          "modules/buildbox/test/sshd-access-lock.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:43:10.222Z",
        "endedAt": "2026-08-12T02:43:11.239Z",
        "durationMs": 1017,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "5532bfebc0db4518af92ab176aa8b1d42582013abebc4147fabeba3a564c3606"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:telemetry.test.sh",
        "suitePath": "modules/buildbox/test/telemetry.test.sh",
        "sourceDigest": "e35e8664fc10eb3b3550fd59376df54d27869009e44d7375290aca5d39e1620f",
        "argv": [
          "bash",
          "modules/buildbox/test/telemetry.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:43:11.638Z",
        "endedAt": "2026-08-12T02:43:13.060Z",
        "durationMs": 1422,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "d4fdba79ae68d4f708dfc9b666387485b264e90432fbc7803fbbac3bd94b76d4"
      },
      {
        "kind": "buildbox-suite",
        "caller": "workspace",
        "id": "buildbox:vendor.test.sh",
        "suitePath": "modules/buildbox/test/vendor.test.sh",
        "sourceDigest": "2b4f8c661a99d16e15579689cfa009fffdabb2b7967ce308d9373449b7abbd52",
        "argv": [
          "bash",
          "modules/buildbox/test/vendor.test.sh"
        ],
        "cwd": ".",
        "env": {
          "CI": "true",
          "BUILD_SCHED_IDLE": "0",
          "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "toolchain": {
          "bash": {
            "path": "/usr/bin/bash",
            "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
          },
          "git": {
            "path": "/usr/bin/git",
            "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
          },
          "jq": {
            "path": "/usr/bin/jq",
            "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
          },
          "node": {
            "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
            "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
          },
          "podman": {
            "path": "/usr/bin/podman",
            "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
          },
          "ssh": {
            "path": "/usr/bin/ssh",
            "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
          },
          "systemctl": {
            "path": "/usr/bin/systemctl",
            "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
          }
        },
        "startedAt": "2026-08-12T02:43:13.441Z",
        "endedAt": "2026-08-12T02:43:46.290Z",
        "durationMs": 32849,
        "exitStatus": 0,
        "signal": null,
        "status": "passed",
        "rawDigest": "5e2967073b28d863befeb6af75b3ccaf9913cd005a7f5df8fd66d9912bb8c23b"
      }
    ],
    "path2": [],
    "equivalent": true,
    "proofComplete": true,
    "proofMissing": [],
    "dedupBlocked": false,
    "proof": {
      "kind": "deduplicated-ownership",
      "authoritativeCaller": "workspace:modules/buildbox",
      "excludedCaller": "os-discovery",
      "expectedIds": [
        "buildbox:build-cache-prune.test.sh",
        "buildbox:claude-home-settings.test.sh",
        "buildbox:claude-parity.test.sh",
        "buildbox:deadman-branches.test.sh",
        "buildbox:devtools.test.sh",
        "buildbox:fleet-guard.test.sh",
        "buildbox:is-lab-host.test.sh",
        "buildbox:journal-cap.test.sh",
        "buildbox:parity-converge.test.sh",
        "buildbox:reboot-wait.test.sh",
        "buildbox:runner.test.sh",
        "buildbox:second-disk.test.sh",
        "buildbox:sshd-access-lock.test.sh",
        "buildbox:telemetry.test.sh",
        "buildbox:vendor.test.sh"
      ],
      "observedIds": [
        "buildbox:build-cache-prune.test.sh",
        "buildbox:claude-home-settings.test.sh",
        "buildbox:claude-parity.test.sh",
        "buildbox:deadman-branches.test.sh",
        "buildbox:devtools.test.sh",
        "buildbox:fleet-guard.test.sh",
        "buildbox:is-lab-host.test.sh",
        "buildbox:journal-cap.test.sh",
        "buildbox:parity-converge.test.sh",
        "buildbox:reboot-wait.test.sh",
        "buildbox:runner.test.sh",
        "buildbox:second-disk.test.sh",
        "buildbox:sshd-access-lock.test.sh",
        "buildbox:telemetry.test.sh",
        "buildbox:vendor.test.sh"
      ],
      "exact": true
    }
  },
  "rawReports": [
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/typecheck.log",
      "kind": "phase-log",
      "phaseId": "typecheck",
      "sha256": "08595ef600fcc97f972d44f8470ba811930e03bdea68d0e7a5f7652234e92170"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-tests.log",
      "sha256": "3c454f9027884d088b946a3b32c9300d7ac559ffeb7f06bb72434dd70fc0d8e4",
      "kind": "phase-log",
      "phaseId": "workspace-tests"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-apps-web.json",
      "sha256": "b907ebce3cfd95f387e2bc62941695c885cf3ca247ecc4da1d4c841902cd454b",
      "kind": "vitest-json",
      "suiteId": "workspace:apps/web"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-collector.junit.xml",
      "sha256": "06b8625d87483be69e8b4be5079d7baaeaae7cd95bfa64421807a20ce7a64863",
      "kind": "bun-junit",
      "suiteId": "workspace:collector"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-controller.junit.xml",
      "sha256": "a7eda7f3122ba5344eaa771eb645e29a0be5d92405b31e3637571c8be25a9ccd",
      "kind": "bun-junit",
      "suiteId": "workspace:controller"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-packages-deck-ui.json",
      "sha256": "87301f8e37a9073992d137ecd84f043bc0fe1c395951a88ddd85fcef93e34589",
      "kind": "vitest-json",
      "suiteId": "workspace:packages/deck-ui"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workspace-spine.junit.xml",
      "sha256": "a8a59dbb90e871d85027fcad6f5b4e9aeead2c3f71de13021f01614863196326",
      "kind": "bun-junit",
      "suiteId": "workspace:spine"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-ca-launcher.log",
      "kind": "phase-log",
      "phaseId": "workstation:ca-launcher",
      "sha256": "45fa28510376d4d11434e07aed6edc73ecc8ae1301a1fc3f094b0b407a12ee5a"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-containment-invariants.log",
      "kind": "phase-log",
      "phaseId": "workstation:containment-invariants",
      "sha256": "33f7844b98d73f95523b6cab225b4993e313e74e32e79cbc956c77efbc7dbcc5"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-confine-scope-escape.log",
      "kind": "phase-log",
      "phaseId": "workstation:confine-scope-escape",
      "sha256": "43caa04e3a978180e3d20f629085cc05de0778ef54e3afc9211609769abc79e6"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-reaper-enforce.log",
      "kind": "phase-log",
      "phaseId": "workstation:agent-reaper-enforce",
      "sha256": "6f0195d6b3dca9f5ec4fbe818862711816e41170d10919a7fa7eec4cef59b66a"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-ledger.log",
      "kind": "phase-log",
      "phaseId": "workstation:agent-session-ledger",
      "sha256": "43d57710f5c107ca960a6bb23ee29a2c2ade63299f23aa72dfab40f929636e2b"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-passthrough.log",
      "kind": "phase-log",
      "phaseId": "workstation:agent-session-passthrough",
      "sha256": "f006160619ee622268e578ffa850cc58bfc2c652af3ae257a7e6f213e4b2e761"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-human-session-fallback.log",
      "kind": "phase-log",
      "phaseId": "workstation:human-session-fallback",
      "sha256": "ae69b6d6c39830d326188da25beae3430eefdd85aebeafb2a9d648c7efae0b81"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-drift-check.log",
      "kind": "phase-log",
      "phaseId": "workstation:shim-drift-check",
      "sha256": "82632190c2e9bce1c89d15b36a9bda991e37456249ac7086f1982157ff6ef76e"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-od-worktree-registry.log",
      "kind": "phase-log",
      "phaseId": "workstation:od-worktree-registry",
      "sha256": "85deb59b1ff8f3eb0d9708624b933a72d3c3ba44418b01e081b4357c4a5e9a7f"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-bare-name.log",
      "kind": "phase-log",
      "phaseId": "workstation:shim-bare-name",
      "sha256": "e6cf3739376e2484cc9c1db0bc474ee44da6289ef1d33edb249ce963d6254ba9"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-kill-guard.log",
      "kind": "phase-log",
      "phaseId": "workstation:kill-guard",
      "sha256": "534567bc4f13d6506704ce8b33b61ba07d4307147daefe635fd35ab005cfeec6"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-headless-guard-scope.log",
      "kind": "phase-log",
      "phaseId": "workstation:headless-guard-scope",
      "sha256": "36e98be8df1a8697fcb2991424f5e58c24f0769c490af68b283197a4b0ea51db"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/bun-hooks.junit.xml",
      "sha256": "e650561e97a58c9a0818b326744a1066696955fbd82e6496bac9e27740bf499b",
      "kind": "bun-junit",
      "suiteId": "workstation:bun-hooks"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/bun-hooks.log",
      "kind": "phase-log",
      "phaseId": "workstation:bun-hooks",
      "sha256": "8fa97de6b09c191d425a08412971ac11e4d5013c19f5c866952dd66fbc575c60"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/os-shell-suites.log",
      "kind": "phase-log",
      "phaseId": "os-shell-suites",
      "sha256": "a4b54858ce6ee16b26c17e9a13e6e37efa7b5345ded01b95fd426cf811722208"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/playwright.json",
      "sha256": "06d19021b0ab26e99f4ff8f1aa6f17b6fed7c504c02de50bde74454a0437fb20",
      "kind": "playwright-json",
      "suiteId": "phase:playwright"
    },
    {
      "path": ".ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/playwright.log",
      "kind": "phase-log",
      "phaseId": "playwright",
      "sha256": "518331b101d432da79959ef2d369bfd8ebe07b54ae1319b78e91967ff6a95d57"
    }
  ],
  "terminalStatus": "passed",
  "startedAt": "2026-08-12T02:41:31.029Z",
  "endedAt": "2026-08-12T02:47:13.958Z",
  "suiteObservations": {
    "workspace:apps/web": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "vitest-json",
      "tests": [
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::uses exact hook-control routes and bodies",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 8.791874000000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::forwards AbortSignal only for hook-control GET",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 3.8594339999999647
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::uses bare fetch(url) for generic collector GET callers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 1.2201390000000174
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::prefers server detail for hook-control POST errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 2.656665999999859
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::returns observed hook-control state on indeterminate persistence success",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 1.650470999999925
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects malformed hook-control GET payloads at the trust boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 1.5821109999999408
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects null hook-control POST payloads at the trust boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 1.1076669999999922
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects hook-control payloads missing controls",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.6137219999998251
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects confirmed hook-control persistence with persistenceDetail",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.9685750000001008
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects omitted hook-control persistence with persistenceDetail",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.729050000000143
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects indeterminate hook-control persistence without persistenceDetail",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.6937460000001465
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::normalizes null collector state collections at the HTTP trust boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.5809200000001056
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::maps factory panel ids to the factory adapter",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.2928670000001148
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::uses encoded authoritative harness URLs and preserves opaque event cursors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.9552029999999831
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::follows opaque event cursors and deduplicates IDs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.7380950000001576
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::rejects a cursor that repeats explicit since without requesting it again",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 1.4036579999999503
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::fails closed when harness event pagination reaches its page limit",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 10.678605999999945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::serializes existing action callers without credentials and preserves actionable errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.981853000000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::preserves action HTTP status in a typed error",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.6012610000000222
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts::serializes activity query params with URLSearchParams and omits absent values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-client.test.ts",
          "status": "passed",
          "durationMs": 0.7417190000001028
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::accepts only JSON media-type essence and returns stable known-route methods",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 17.466462999999976
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::allows only the exact incident filing and dispatch mutation paths with same-origin proof",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 19.011340999999902
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::forwards artifact ranges and size metadata",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 1.8603730000002088
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::proxies only exact harness read routes and preserves cursor headers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 1.4101839999998447
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::proxies the session screen route and nothing else under /sessions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 1.3705059999999776
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::proxies /activity as a read path",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 1.1073089999999866
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::proxies only the exact cluster snapshot, node, and workload reads",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 2.2811040000001412
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::accepts sessions.sendKeys only with same-origin proof",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 1.4089579999999842
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts::requires same-origin CSRF proof and an explicit action verb",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-proxy.test.ts",
          "status": "passed",
          "durationMs": 2.275086999999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-queries.test.ts::normalizes malformed persisted collector state before consumers read it",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-queries.test.ts",
          "status": "passed",
          "durationMs": 24.241708000000017
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-queries.test.ts::cancels focus/reconnect GET again before applying mutation response",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/collector-queries.test.ts",
          "status": "passed",
          "durationMs": 115.7888660000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::keeps the health page discoverable in shell navigation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 7.998172000000068
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::keeps the factory page discoverable in shell navigation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.4335559999999532
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::prioritizes errors over staleness and reports unknown without adapters",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.6842249999999694
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::derives reachability and gaps only from recorded adapter state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 1.480250999999953
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::names the failing adapter and its reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.7838470000001507
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::says the collector itself is unreachable rather than blaming an adapter",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.3249749999999949
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::names stale adapters and counts the ones it does not list",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.27098000000000866
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::reports healthy with the adapter count and no failing list",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 2.5543679999998403
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts::says the collector has not answered yet instead of showing unknown bare",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/health.test.ts",
          "status": "passed",
          "durationMs": 0.5388359999999466
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts::renders offline runners with err intent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts",
          "status": "passed",
          "durationMs": 6.387663999999859
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts::puts running plans first, then most-recent activity",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.9254149999997026
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts::drops stale running plans with all tasks complete below active work",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.5966490000000704
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts::preserves the overview sort order",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/overview-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.6841150000000198
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts::reports a payload the browser stopped refreshing as stale",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts",
          "status": "passed",
          "durationMs": 2.996007999999847
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts::stays quiet while the payload is within two poll intervals",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts",
          "status": "passed",
          "durationMs": 0.5554869999998573
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts::keeps the collector own stale verdict even on a fresh payload",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts",
          "status": "passed",
          "durationMs": 0.27035399999999754
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts::falls back to the adapter when the panel carries no usable stamp",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/panel-freshness.test.ts",
          "status": "passed",
          "durationMs": 0.4145410000000993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::lists every registry host, the collector host, and any host only the ledger knows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 3.579644000000144
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::renders observed zeros as zero and carries a failed probe reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 1.3678620000000592
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::separates a probe that has not returned yet from one that failed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.5672800000002098
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::keeps a real zero on the recorder host, where zero is an observation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.45605699999987337
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::reports what a remote host did enrol, without claiming it is everything",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.5110139999999319
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::buckets sessions the recorder stamped no host on rather than dropping them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.2977699999999004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::sums to the same live/idle/reconnectable totals the summary shows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.4020299999999679
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts::carries the registry verdict for a host the registry disables",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-hosts.test.ts",
          "status": "passed",
          "durationMs": 0.4321509999999762
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::keeps detached-alive visually distinct from orphaned",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 2.8341550000000097
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::separates working from idle",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.4085539999998673
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::maps the ledger vocabulary onto the pinned states without losing the detail one",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 3.688386000000037
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::keeps each cli distinct rather than flattening them to one runtime",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.5814450000000306
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::reports every absent field as null instead of a plausible substitute",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.46418500000004315
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::never back-fills last activity from the session start time",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.27818200000001525
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::infers launchedBy only from a recorded parent, never from anything else",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.246998000000076
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::refuses a launcher value outside the contract rather than showing it as fact",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.15574099999980717
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::flags a resume command that carries no account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.5137549999999464
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::carries the reconnect descriptor through untouched, reason included",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.34766000000013264
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::covers every attach kind in the contract",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.29653399999983776
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::gives every unreachable row a reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.4509170000001177
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::measures a real elapsed time",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.3587679999998272
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::reports an absent timestamp as unknown with no invented problem",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.16394400000012865
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::never returns a negative duration for a future timestamp — it names the data bug",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.16915800000015224
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::names an unparseable timestamp instead of rendering NaN",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.14770199999998113
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::groups every project, live groups first",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.6617200000000594
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::sorts live rows above finished ones inside a group",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.23539600000003702
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::sorts rows with no timestamps last instead of first",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.3343449999999848
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::returns nothing for an empty ledger",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.16109100000016952
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::names a worktree by its repo and slug so two worktrees never read alike",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 3.0899279999998726
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::keeps a checkout and a build clone of one repo apart",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.24505500000009306
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::strips the home prefix instead of printing it on every group",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.1294460000001436
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::never names a group after the user, which is what a home-rooted repo walk produces",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.2048050000000785
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::ticks the running clock only while the session is running",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.30811400000015965
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::freezes the running clock of a finished session at its recorded end",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.24607500000001892
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::measures an orphaned session to its last activity, since it has no end",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.1896639999999934
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::reports an idle clock only for a running session, and last-seen otherwise",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.25448100000016893
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::names the data bug rather than rendering a negative duration",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.16605700000013712
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts::says a finished session with no recorded end has an unknown run length",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/session-types.test.ts",
          "status": "passed",
          "durationMs": 0.17199299999992945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sessions-fixtures-containment.test.ts::is imported by no shipped source file",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sessions-fixtures-containment.test.ts",
          "status": "passed",
          "durationMs": 7.24413299999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sidebar-badges.test.ts::uses the live bot fleet count instead of static mockup values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sidebar-badges.test.ts",
          "status": "passed",
          "durationMs": 2.761886000000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sidebar-badges.test.ts::derives inbox and decision badges from collector items",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/lib/sidebar-badges.test.ts",
          "status": "passed",
          "durationMs": 0.504998999999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::maps every supported verb to exact T3 args",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 3.4806250000001455
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::rejects unknown verbs and missing prerequisites",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 0.5329249999995227
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::refuses host actions when the registry marks the host unreachable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 1.1763750000000073
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::labels every capability probe with the host it was taken on",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 0.6071719999999914
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::reports a stale remote-jobs panel as unknown rather than as no jobs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 1.1539969999994355
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::maps structured KPI samples without scraping incident titles",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 0.4372320000002219
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::names the failure and claims no fleet, no jobs and no machine cards",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 64.48229800000081
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::carries box-side guard facts from the collector payload into the detail modal",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 140.6550960000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::reads revision at confirm time after dialog opens",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 481.1495190000005
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::retains selected host when the detail modal closes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 167.72035899999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::posts exact args for control and modal verbs with requestedBy overdeck-web",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 832.5190039999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::does not post when confirm is cancelled or verb is unsupported",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 161.694657
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::refetches collector-state after a successful action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 109.08937100000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::preserves selection, surfaces alert + danger toast, and retries after failure",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 418.16786499999944
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::lists a registry host the controller never enrolled, and says so on the card",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 58.0284070000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::does not call an unreachable controller evidence of enrollment",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 33.26825699999972
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx::says the registry is unreadable rather than presenting a shorter fleet as complete",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/ci/CiContent.test.tsx",
          "status": "passed",
          "durationMs": 54.51080399999955
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx::uses the shared live Machines surface ahead of the cluster summary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx",
          "status": "passed",
          "durationMs": 161.46520599999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx::uses only a recorded run id for the canonical observability link",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx",
          "status": "passed",
          "durationMs": 0.5382570000001579
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx::renders source reasons and never turns absent metrics into zero",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx",
          "status": "passed",
          "durationMs": 272.71796800000084
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx::opens node detail through the node query route",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/cluster/ClusterContent.test.tsx",
          "status": "passed",
          "durationMs": 111.61777999999958
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::turns approvals on and reports the wait the terminal falls back after",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 226.51097200000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::shows the armed state while the collector window is open and turns it off again",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 31.065419999999904
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::treats a lapsed window as off rather than reporting a stale on",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 8.380185999999412
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::says so instead of guessing when the collector reports no permission gate",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 3.110743000000184
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::lets a hidden page lapse instead of refreshing the window it cannot keep alive",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 7.680884999999762
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx::surfaces a failed toggle instead of showing a state it did not reach",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/BrowserApprovalToggle.test.tsx",
          "status": "passed",
          "durationMs": 16.966849000000366
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx::answers a queued tool permission through the collector permission queue",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx",
          "status": "passed",
          "durationMs": 213.23027600000023
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx::denies through the same queue",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx",
          "status": "passed",
          "durationMs": 31.35164900000018
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx::reports an empty queue rather than inventing a pending decision",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/DecisionsApp.test.tsx",
          "status": "passed",
          "durationMs": 3.8309509999999136
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts::separates decisions from halts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts",
          "status": "passed",
          "durationMs": 2.5511509999998907
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts::renders options for both harness and factory answer verbs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts",
          "status": "passed",
          "durationMs": 1.2417250000000877
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts::identifies factory decision items by id prefix and extracts the decision id",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.4937330000000202
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts::renders allow/deny options for a queued tool permission and offers no free text",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.7317989999999099
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts::allows free text on factory items only when the decision declares it",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/decisions/decision-mappers.test.ts",
          "status": "passed",
          "durationMs": 0.3889090000000124
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts::registers every React component exported by the deck-ui barrel",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts",
          "status": "passed",
          "durationMs": 7.447040000000015
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts::renders plans attempt history gallery entries without throwing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts",
          "status": "passed",
          "durationMs": 42.27212300000065
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts::keeps the gallery discoverable in shell navigation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/design-system/gallery-registry.test.ts",
          "status": "passed",
          "durationMs": 0.9476570000006177
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::renders a completed run with per-phase estimated spend",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 302.5087649999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::opens the full prompt in a drawer and copies it while preserving the collapsed counter",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 378.304631
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::renders tool calls in sequence with durations and opens the complete result excerpt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 263.89802899999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::renders a killed tool call without inventing a zero duration",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 198.9790950000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::renders an explicit empty state when an attempt has no tool calls",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 130.93662199999926
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::identifies an idle timeout as the no-output limit in the table and metadata",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 153.83744300000035
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::keeps the existing timeout wording when timeoutKind is null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 140.07852300000013
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::renders a partial running run with elapsed timing and stop command",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 90.41204500000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::shows events when a run has events but no phases",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 42.4697070000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::shows canonical repo name for legacy worktree paths without repoName",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 38.588259999999536
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::lists live runs before completed runs and shows multiple repos",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 35.49601100000018
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::handles malformed and unknown fields without crashing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 12.176918000000114
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::distinguishes an empty database from collector failure",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 19.449075999999877
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::expands a run with a pending decision by default and answers it in place",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 123.1866629999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::shows answered decision history with the chosen answer, rendered as relative time",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 44.368766999999934
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::falls back to the raw string when answeredAt is unparseable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 21.74236800000017
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::offers a rerun command on finished runs as the change-your-mind path",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 31.105513999999857
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::keeps run summary text outside the expand toggle so identifiers stay selectable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 38.80932699999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx::stops a running run through the two-step confirm button",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryContent.test.tsx",
          "status": "passed",
          "durationMs": 115.02052600000025
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::renders structured failing-check command metadata and the selectable command log path",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 406.8288700000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::opens the complete long failure detail in a drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 138.9020300000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::keeps a passing gate on the existing checks-only presentation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 124.43849500000033
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::states explicitly when a failed gate has no violation details",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 50.92383399999926
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::renders unknown gate and check verdicts honestly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 53.84550399999989
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::opens the full diff text and changed-file list for a phase",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 106.39042100000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::marks a truncated diff and says so when no diff text was recorded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 45.75426299999981
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx::shows each owned process with its pid, command and liveness",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/FactoryTraceTables.test.tsx",
          "status": "passed",
          "durationMs": 23.378012999999555
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::formats estimated spend and token counts honestly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 4.0817369999999755
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::sorts live runs ahead of completed runs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 1.0648099999998522
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::filters pending decisions and summarizes answers by option label",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.710309000000052
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::builds a rerun command from the run request and first adw token",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.865795000000162
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::prefers run slug for display name and keeps request as secondary context",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.5412940000001072
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::falls back to request and adw id for legacy runs without slug",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.3182710000000952
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::prefers repoName for display and falls back for legacy worktree paths",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.41028099999994083
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::keeps the exact repo path in rerun commands",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.2422879999999168
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts::falls back safely for unknown event and status labels",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/factory/factory-helpers.test.ts",
          "status": "passed",
          "durationMs": 0.6276619999998729
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx::is pessimistic while pending and announces a failed update",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx",
          "status": "passed",
          "durationMs": 159.53997600000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx::links hint and error through aria-describedby",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx",
          "status": "passed",
          "durationMs": 17.328146000000743
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx::retains the confirmed enabled state while pending",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HookControlToggle.test.tsx",
          "status": "passed",
          "durationMs": 4.473756000000321
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::places the fetched control before hook counts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 72.33039200000076
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::disables the control before the initial GET resolves and during mutation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 20.49412399999983
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::retains confirmed state and surfaces mutation errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 154.41744500000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::adopts observed state and offers reconfirm when persistence is indeterminate",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 84.80577499999981
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::retains observed state and surfaces reconfirm errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 52.060145999999804
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::disables the toggle and offers repair when the config issue is non-null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 38.726878999999826
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::groups hooks by event and flags dead ones",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 46.40197399999943
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::shows unresolved runtimes and the unobserved count",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 28.868852999999945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::filters hooks across events",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 55.43643999999949
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::renders unchecked before hook controls load",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 15.719633000000613
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::does not offer repair for nonrepairable issues but still surfaces issue detail",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 51.5169249999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::surfaces both issue and persistence detail when both are present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 35.11759499999971
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::does not show reconfirm when config issue is non-null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 34.58065399999941
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::mutually excludes repair and reconfirm pending states",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 90.67811799999981
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::clears stale mutation error after successful toggle and confirmed GET",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 27.185701000000336
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx::renders the empty state and source errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/hooks/HooksContent.test.tsx",
          "status": "passed",
          "durationMs": 15.282334999999875
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/health/HealthContent.test.tsx::reorders adapters when the system header is activated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/health/HealthContent.test.tsx",
          "status": "passed",
          "durationMs": 225.44052599999986
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/inbox/browser-storage.test.ts::returns only string key/value entries",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/inbox/browser-storage.test.ts",
          "status": "passed",
          "durationMs": 2.4041950000000725
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::lists active incidents and keeps resolved ones in their own section",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 119.14797100000033
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::files an incident with the existing form controls and keeps authoritative response data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 318.4041130000005
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::shows the empty-active copy only when the store answered with no active incidents",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 25.47326200000043
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::never reuses the empty copy for an unreachable store",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 15.636384999999791
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::distinguishes an unconfigured store from an unreachable one",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 10.7117760000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::renders unknown priority and absent timestamps as em dashes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 94.81126300000051
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::filters the list by the typed text",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 61.694140999999945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::opens the detail drawer and shows lifecycle entries from the detail route",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 203.84823599999982
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::sorts lifecycle entries when the timestamp header is activated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 226.96116099999927
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::reports a failed detail fetch instead of claiming there is no history",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 124.3769629999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::surfaces incomplete coverage instead of presenting the list as whole",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 45.57496699999956
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::re-sorts by priority when the header is activated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 188.18109800000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::files an incident from the shared-control form",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 75.97437700000046
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::dispatches only a filed incident from its detail drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 170.89979100000073
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::pre-selects the suggested type from title keywords and sends it when filing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 108.2368550000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::lets the owner override or clear the suggested type",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 93.31062699999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::hides the type dropdown when the options endpoint is unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 14.22936800000025
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::renders the persisted dispatch brief read-only in the drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 59.921847999999954
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::omits the brief section when no brief was persisted",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 69.29215900000054
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::disables dispatch filing while options are loading",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 59.33149300000059
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::keeps narrative input and retries when dispatch options are unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 58.52932099999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::treats POST incident-assets-unavailable as stale options with retry, not store unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 108.14693999999963
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::treats POST incident-accounts-unavailable as stale options with retry, not store unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 89.56285499999922
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::treats a malformed options payload missing clis as unavailable without throwing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 37.977506000000176
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::clears incompatible model, effort, and account when the CLI changes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 53.345382999999856
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::resets effort on model change while leaving account intact",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 48.04732199999944
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::populates authoritative selectors from options even when the incident store is empty",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 99.02152900000056
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx::surfaces the named brief refusal and offers the explicit without-brief dispatch",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/IncidentsContent.test.tsx",
          "status": "passed",
          "durationMs": 167.19657499999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::puts active incidents ahead of resolved ones",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 2.7925500000001193
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::orders P0 before P3 and sorts unknown priority last",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.5407439999999042
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::breaks priority ties by most recent update, absent updates last",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.38129399999979796
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::renders an em dash rather than a fabricated time when the stamp is absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.5165530000003855
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::renders an em dash for an unparseable stamp",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.3481840000004013
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::pairs a relative label with the absolute ISO instant",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.567403000000013
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::matches on id, title and cli, case-insensitively",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.5336939999997412
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::keeps every incident when the filter is blank",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.1950339999998505
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::excludes non-matching incidents",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.422704000000067
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::renders an em dash when neither is recorded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.34609199999977136
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::joins cli and model, and degrades to whichever is known",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.26687500000025466
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::renders unknown fields as em dashes rather than zeroes or blanks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.49498199999970893
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::flags a non-zero exit code and a failure class as errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.264850000000024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::leaves a clean exit code unflagged",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.21963099999993574
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::maps every incident state onto a token StatusChip already categorises",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.20146599999998216
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::ranks P0 highest and leaves unknown priority unranked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.22573000000011234
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::leads with an explicit None so the field is clearable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.24218900000005306
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::picks the type with the most distinct keyword hits",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.24058100000002014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::is case-insensitive and matches across title and description",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.19427900000027876
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::suggests nothing when no keyword matches",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.12427100000013525
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::keeps taxonomy order on a tie",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.12788299999965602
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::ignores empty keyword entries",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.12761500000033266
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::surfaces the named brief refusal verbatim and flags the degraded path",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.30380600000034974
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::names an unavailable store without offering the degraded path",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.3513209999996434
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts::falls back to a generic message for unknown errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/incidents/incident-view.test.ts",
          "status": "passed",
          "durationMs": 0.17681499999980588
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::reports events-in-range KPI from total and not from visible row count",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 95.284404
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::uses the second query total for Errors in range and suppresses the tile while pending/error",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 56.99731900000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::renders category facets only for categories present in counts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 363.76872600000024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::links each source row to that source individual entries page",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 68.358792
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::renders coverage absent and error states honestly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 144.39156900000035
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::uses project → host → runtime → session for the Context column",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 169.74374699999953
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::shows the account in the row and the detail, and an em dash when absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 132.68237000000045
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::passes D1 by re-rendering an absent time into a present time without throwing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 27.233777999999802
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::reports a group span as a forward duration, never a negative one",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 46.65014700000029
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::groups by dedupeKey only, keeps no-dedupe events separate, and respects the toggle",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 90.09193499999947
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::sorts by Time and Severity using DataTable headers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 186.49426500000027
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::renders event severity values through StatusChip with deck-ui category",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 29.70397199999934
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::opens a detail drawer with grouped and flattened event data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 128.7129359999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::shows truncation notice only when data is truncated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 35.51181600000018
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::renders the suppressed-notifications table and its drill-down caption",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 52.03892400000041
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::renders zero-event and zero-suppressed copy instead of blank tables",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 17.064673000000766
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::keeps source coverage absent/error visible and does not fabricate values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 45.51211699999931
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx::omits undefined event fields from the details panel and context fallback shows a dash",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/LogsContent.test.tsx",
          "status": "passed",
          "durationMs": 67.2179500000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::renders each individual entry of the source",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 96.90730299999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::sorts entries by their raw timestamp",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 281.2690160000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::opens the selected entry details in a drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 101.44991600000048
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::explains skipped records instead of only counting them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 22.840860000000248
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::shows an em dash rather than a fabricated line number when the skip has no locator",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 22.10688299999947
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::pages forward and back over the source total",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 80.82902300000023
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::reports an absent source as absent rather than as an empty log",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 11.099063999999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::surfaces a read error with the collector message",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 8.341731999999865
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx::links back to the sources list",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/logs/SourceEntriesContent.test.tsx",
          "status": "passed",
          "durationMs": 17.61726700000054
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx::renders bot rows from the collector bots panel",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx",
          "status": "passed",
          "durationMs": 53.6692879999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx::shows an unavailable message when the bots panel is missing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx",
          "status": "passed",
          "durationMs": 3.357662999999775
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx::shows an empty snapshot message when the panel has no bots",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/BotsCard.test.tsx",
          "status": "passed",
          "durationMs": 2.7316960000002837
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/CollectorRealtimeBridge.test.tsx::normalizes stale null collections before merging a panel delta",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/CollectorRealtimeBridge.test.tsx",
          "status": "passed",
          "durationMs": 17.310792999999876
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx::renders the paragraph visibly when the collector omits sections",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx",
          "status": "passed",
          "durationMs": 70.41571099999987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx::renders section blocks when the collector supplies them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx",
          "status": "passed",
          "durationMs": 16.353321999999935
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx::shows the banner once per local day",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/overview/MorningDigestBanner.test.tsx",
          "status": "passed",
          "durationMs": 11.579522999999881
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AbandonedContent.test.tsx::maps persisted collector facts and prefers failClass",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AbandonedContent.test.tsx",
          "status": "passed",
          "durationMs": 2.3978860000001987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AbandonedContent.test.tsx::falls back to degraded reason and rejects missing timestamps",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AbandonedContent.test.tsx",
          "status": "passed",
          "durationMs": 0.9124959999999191
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::joins the agent to its task and chronological timeline segments",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 3.0400879999997414
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::keeps paused tasks live and closes terminal tasks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.5370900000007168
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::returns known agent ids for an unknown agent without inventing identity",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.4487829999998212
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::reads account from the latest dispatch.attempt payload",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.3637619999999515
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::returns null when no journaled account exists",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.3113409999996293
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::does not treat seat/provider as executing account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.19377199999962613
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::reads account from attempt.reply when journaled by the wrapper",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.1860049999995681
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::deduplicates replayed opaque SSE ids and retains latest bounded frames",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 1.0309830000005604
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::maps hostile authoritative payload as text without interpreting markup",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 1.2055860000000393
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::does not select or mix attempts when event contract lacks lifecycle correlation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.42032599999947706
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::selects only the latest explicit attempt lifecycle",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.3506470000002082
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::ignores lifecycle attempts with matching completion events",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.18577900000036607
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::does not infer an active attempt from an unambiguous historical event",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.15343300000040472
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::does not mix uncorrelated task history when lifecycle mapping is absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 0.1494349999993574
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::starts exact task stream after authoritative state and events load",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 80.12469899999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx::renders journaled executing account and not-recorded fallback in the sidebar",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AgentApp.test.tsx",
          "status": "passed",
          "durationMs": 137.18940999999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::renders cost and cached tokens when measured usage includes them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 58.835948999999346
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::omits cost and cached token lines when usage lacks them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 10.282020000000557
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::renders verdict, measured usage, and activity counters",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 20.98331599999983
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::renders unmetered usage when usage is unknown",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 10.536368000000039
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::shows honest unavailable states for in-progress attempts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 9.500813000000562
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::omits failure class and fingerprint when absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 20.04752499999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::renders secondary reply link with the correct href",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 28.856361000000106
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::renders secondary prompt link with the correct href",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 188.8466410000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::expands prompt content on demand when provided via prop",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 36.81877600000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::fetches and renders inline prompt content collapsed by default",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 38.86386500000026
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::fetches and renders inline reply content",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 13.130803999999443
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::does not show fetched artifacts from a previous attempt while a new attempt loads",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 30.004503000000113
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::shows not captured when prompt fetch fails",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 12.695639000000483
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::shows not captured when reply fetch fails",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 16.62584500000048
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx::returns null when closed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 1.1366760000000795
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx::renders one entry per attempt in journal order",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx",
          "status": "passed",
          "durationMs": 167.89044899999953
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx::visually distinguishes stalled attempts from healthy in-progress ones",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx",
          "status": "passed",
          "durationMs": 6.655858999999509
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx::forwards selection clicks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AttemptTimeline.test.tsx",
          "status": "passed",
          "durationMs": 9.320741000000453
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::renders one marker per attempt in journal order for failed runs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 39.48693800000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::marks stalled attempts using isAttemptAlarmed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 2.8252290000000357
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::enters warning state at exactly three attempts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 7.806242999999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::does not render for healthy running or succeeded runs even with attempts present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 2.9335629999995945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::renders for blocked runs with attempt history",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 2.798453999999765
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::renders the quarantine reason chip when a run is quarantined",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 4.510862000000088
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx::renders nothing for a healthy run without quarantine",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/AutopsyStrip.test.tsx",
          "status": "passed",
          "durationMs": 1.1971779999994396
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::alarms when the same failureFingerprint appears on two attempts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 38.83644299999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::alarms independently when attempt usage reaches at least 75% of budget",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.980211000000054
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::names both alarm conditions when repeat failure and budget proximity fire together",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.771984000000202
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::renders task dispatch and usage totals when no alarm fires",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.617146000000048
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::does not alarm on plan-wide attempt count when every task stays under its own budget",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.961915999999974
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::alarms when any single task reaches 75% of its own budget",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 3.4135599999999613
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::accumulates costUsd and cachedTokens in seat and model rollups with honest gaps",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 22.696833999999853
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::renders captured zero cost and cached-token values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.002811000000065
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::labels absent cost and cached-token values as not captured",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 3.7858400000000074
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::uses each task own taskDispatchBudget and taskDispatchCount",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 3.91662899999983
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx::renders nothing for a single healthy attempt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/BurnPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.269896000000017
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders attempt history when the fetch succeeds",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 158.05102699999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::opens compiled prompt artifact from selected attempt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 83.60967700000037
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders an honest not-captured state when the fetch returns empty",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 41.287694999999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders an honest not-captured state when the fetch fails",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 63.487349999999424
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders an attention item for a failed task with a failure reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 30.88944300000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders an attention item for a gated task with a failure reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 35.121140000000196
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::does not render an attention item for a running task even with a reason in the map",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 32.024271999999655
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx::renders no task-failure item and does not throw when the events query is undefined",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.attempts.test.tsx",
          "status": "passed",
          "durationMs": 68.82872800000041
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::keeps acceptance and fix-loop values authoritative",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 3.0045249999998305
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::preserves enriched decision option meaning",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.5554119999997056
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::enables only state-valid run controls",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.601568000000043
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::renders real rate-limit data without inferred fields",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 1.2942649999999958
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::keeps A9 Executing account gap when no journaled account exists",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.5041200000000572
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::clears A9 when at least one dispatch journals a truthful account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.2161670000000413
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::clears A9 when attempt.reply journals a wrapper-reported account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.18174099999987448
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::keeps A9 when attempt.reply has no account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.16066500000033557
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::surfaces a quarantine reason for the task",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.7485700000001998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::maps review.verdict FAIL findings null-safely and drops non-object entries",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.4116209999997409
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::adds nothing for a PASS verdict",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.2845470000002024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::surfaces the verify.failed command",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.20229699999981676
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::maps task-end failure to failClass and cause",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.2541660000001684
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::adds nothing for task-end without a failure",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.1396260000001348
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::clears an accumulated reason on task-start (retry resets)",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.14143299999977899
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::ignores events with no task identity",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.1329809999997451
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::falls back to payload.task when taskId is absent, and merges later events last-wins per field",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.2688299999999799
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::joins all lines in order: quarantine, cause, verify command, then findings",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.2944430000002285
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx::returns an empty string for an empty reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlanRunApp.test.tsx",
          "status": "passed",
          "durationMs": 0.12401700000009441
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::pins a viewport-fit full-width horizontal split",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 2.210292999999183
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::propagates alarmed onto plan table items when the run is stalled",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 2.2674180000003616
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::maps only recorded row fields and preserves needs-you separately from failure",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.6640099999995073
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::uses honest project label fallbacks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.6486540000005334
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::excludes abandoned runs and sorts groups attention-first",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 1.330800000000636
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::folds one plan re-run across repo roots into a single row",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 1.3891340000000127
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::keeps distinct plans in one project apart",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.4788410000001022
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::sums engine-reported attempts across folded checkouts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.3201920000001337
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::keeps concurrently live runs on their own rows and collapses their finished attempts",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.9715179999993779
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::lets the live run speak for its plan even when a finished attempt is stamped later",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.4796230000001742
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::resolves detached checkouts to the project that owns them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.4489560000001802
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::returns active runs associated with a scoreboard repo, attention first",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.35875099999975646
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::maps null and invalid activity timestamps to honest gaps",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.29411399999935384
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::omits a zero sequence because the harness value is meaningless",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.24211099999956787
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::counts every seat the engine reports as occupied, not just the v1 spelling",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.1702980000000025
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::never times a running plan from the plan authoring date",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.3055160000003525
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::carries the collapsed-attempts count only when the plan relaunched",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.29799499999990076
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::sorts runs inside each group with active plans first",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.2581339999996999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::aggregates group counts from the same categories rendered by row chips",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.3250179999995453
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::preserves queue source order and source statuses before any plan runs exist",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.8595900000000256
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::keeps queue optionals honest and does not create row actions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 0.3591790000000401
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx::reorders queue rows when a sortable header is activated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/PlansContent.test.tsx",
          "status": "passed",
          "durationMs": 368.2651879999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts::matches harness alarm thresholds",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts",
          "status": "passed",
          "durationMs": 5.164629999999988
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts::returns null when no quarantine event exists",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts",
          "status": "passed",
          "durationMs": 0.5359470000000783
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts::returns phase and reason of the latest quarantine event",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts",
          "status": "passed",
          "durationMs": 0.8381889999998293
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts::labels missing payload fields as not recorded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/plans/attempt-record.test.ts",
          "status": "passed",
          "durationMs": 0.35683300000005147
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::shows an honest empty state naming the ledger directory",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 122.01508699999977
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::renders every project the ledger knows, not just the current one",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 836.3832940000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::starts an all-finished project collapsed with only its summary visible",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 189.1734120000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::reveals an all-finished project table when its header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 181.72322299999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::gives each row a real title and falls back to a named gap, never to the id",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 144.45728599999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::shows each cli and each launcher distinctly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 309.9811810000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::says whether a window is attached to the session",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 86.7288439999993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::offers a reconnect action per reachable row and a reason instead of a dead button",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 548.7358009999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::never renders a negative age for a session whose clock is wrong",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 115.28740299999936
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::freezes the running time of a session that is no longer running",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 211.71524399999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::names each field the ledger does not carry yet rather than leaving a blank column",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 115.9996229999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::says why a session that recorded nothing ended, instead of showing an empty row",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 201.85950800000046
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::warns that a long tool call reads as idle rather than letting him misread the column",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 79.0167390000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::states that a session outside the ledger is invisible to the page",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 81.38187099999959
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::has no column for uncommitted files — it was on every row and actionable on none",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 84.84987499999988
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::says a stopped session RAN for its length and a live one is still RUNNING",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 469.43640399999913
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::keeps an open terminal in step with the ledger instead of freezing the row it opened on",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 184.00776999999835
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::keeps the present tense for a live session whose run length cannot be measured",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 391.4669670000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::shows five runs per project and keeps the rest reachable behind an honest count",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 154.27125799999885
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::never truncates a running session away, whatever column the reader sorts by",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 106.36355999999978
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx::states why attach is off when the collector is not on loopback",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/apps/web/src/components/sessions/SessionsContent.test.tsx",
          "status": "passed",
          "durationMs": 54.392359999999826
        }
      ],
      "testCounts": {
        "passed": 399,
        "failed": 0,
        "skipped": 0,
        "total": 399
      }
    },
    "workspace:collector": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "bun-junit",
      "tests": [
        {
          "name": "inventories healthy, missing, and non-executable configured hooks",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "accepts a readable script launched by an executable interpreter",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "flags an executable script whose shebang runtime does not resolve",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolves a runtime named through an env shebang",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "treats an executable without a shebang as self-contained",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "records source errors for unparseable registries",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "substitutes CLAUDE_PLUGIN_ROOT from the plugin manifest next to the registry",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "marks commands with unresolvable environment variables UNOBSERVED, never DEAD",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolves PLUGIN_ROOT to the dot-dir manifest&apos;s parent when the target lives there",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "ships disabled with named error when mining output is absent",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "honors per-item cooldown",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "honors quiet hours",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "ignores non-act severities via createAlerter subscription",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "asks the gate first, then follows notifier.py argv shape and parses the id",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "an unapproved source never reaches the session bus",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a gate that cannot be run denies rather than emitting",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "digest string is exact on fixture day",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "buildDigest assembles fixture state for the fixture morning",
          "status": "passed",
          "durationMs": 250
        },
        {
          "name": "reads thresholds from mining output without inventing defaults",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "a pending request becomes a decision item and an allow verdict resolves it",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a deny verdict resolves with deny",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the wait bound lapses to ask and never to allow",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "a disconnected caller lapses to ask",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "answering an unknown or already-lapsed request reports not applied",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a full queue falls straight back to the terminal",
          "status": "passed",
          "durationMs": 62
        },
        {
          "name": "credential-shaped tool input is redacted before it reaches the browser",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "arming writes a self-expiring 0600 arm file and disarming removes it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the gate panel reports arm state and queue depth honestly",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the Claude Code feeder maps the hook envelope onto a neutral request",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "only allow and deny render a PreToolUse directive",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "startup clears journalled pendings and a stale arm file from a dead collector",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "merges runs by id+attempt and keeps newest first",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "persists and reloads from disk",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "missing and corrupt stores read as empty without throwing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "abandon is restart-safe, idempotent, and atomically persisted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "restore is idempotent",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "serves contained text and tails oversized files",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects traversal and symlinks escaping the data directory",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "proxies to controller with bearer token and returns JSON body",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "returns 503 when controller connection is not configured",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "refuses a registry-disabled host without contacting the controller",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "refuses a host the registry does not declare",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "fails closed when the registry cannot be read",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "returns activity response shape",
          "status": "passed",
          "durationMs": 28
        },
        {
          "name": "returns 400 for invalid from",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns 400 for invalid limit",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "returns 400 for unknown category",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "serves per-source entries and rejects an unknown source",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "non-allowlisted verb returns 404",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "reap with pid absent from orphan candidate set returns 400",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "ci-rerun with run id absent from ci panel returns 400",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects task controls with missing or extra args before harness call",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "forwards exact observed task IDs and leaves duplicate request IDs idempotent upstream",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "preserves stale attempt conflicts and journals config patch atomically",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "authorizes every config patch key against authoritative mutability metadata",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "bounds and redacts harness config patches before parsing",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "forwards exact run controls",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "spawns and journals exact ci.rerunFailed argv",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "spawns and journals exact ci.cancelRun argv",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "accepts exact repository regex boundaries",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects invalid or shell-bearing repo -alexcodeplace/multideal before spawn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects invalid or shell-bearing repo aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/repo before spawn",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects invalid or shell-bearing repo owner/rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr before spawn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects invalid or shell-bearing repo owner/repo;rm before spawn",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects invalid or shell-bearing repo owner/repo$(id) before spawn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects non-string args, extra keys, and malformed bodies",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects cross-repo run",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects stale run",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects an obsolete run from a reused train branch",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects refsComplete false",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects trainRunsComplete false",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects prsComplete false",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects trainsComplete false",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "does not gate eligible actions on history completeness",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects ineligible ci.rerunFailed state green/completed",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects ineligible ci.cancelRun state failed/completed",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects ineligible ci.cancelRun state gating/completed",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects a stale adapter snapshot",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects after a successful poll is followed by a failed poll",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "abandon and restore are idempotent local actions with journal entries",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "abandon rejects invalid args with the steer validation shape",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "forwards a decision answer through the harness adapter",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "appends a journal line with exact shape on failed attempt",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "appends a journal line with exact shape on successful reap",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "all 8 offload verbs proxy to controller /transition with gateway-owned idempotency key",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rejects caller-supplied idempotencyKey in args",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "box-drain with host absent from fleet panel returns 400",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "job-retry with job absent from remote-jobs panel returns 400",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "job-retry forwards jobId to controller args",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "controller unreachable returns typed 502",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "appends journal line with exact shape on offload proxy success",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "factory.decision.answer is allowlisted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "valid option answer returns 200, marks decision answered, and writes decision_answered event",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "second answer returns 409",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "unknown decisionId returns 404",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "invalid choice returns 400 when options are fixed and free text is disabled",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "free-text decision accepts arbitrary choice text",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "event insert failure rolls back the decision update and returns 500",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "factory.run.stop is allowlisted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "running session returns 200 and spawns factory stop with the session repo",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "unknown adwId returns 404 without spawning",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "non-running session returns 409 without spawning",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "invalid adwId returns 400 without touching the db",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "failed factory stop spawn returns 500 with stderr",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "incident.resolve is allowlisted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "missing artifact returns 400 naming the artifact-required rule, provider untouched",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "happy path resolves through the provider and returns ok",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolution conflict maps to 409 with the stored-artifact detail",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "unknown incident maps to 404",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "collector without an incidents provider answers 503, never a bare 500",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "materializes registry defaults and preserves future boolean keys",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "marks malformed bytes as repairable and nonregular targets as nonrepairable",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "repairs invalid bytes only after writing a durable private backup",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "removes corruption backup when repair fails before rename commit",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "surfaces backup cleanup failure when repair fails before rename commit",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "removes corruption backup when backup write fails after exclusive create during repair",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "removes corruption backup when backup file fsync fails during repair",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "removes corruption backup when post-backup directory fsync fails during repair",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "surfaces backup cleanup failure when backup file fsync fails during repair",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects prototype pollution IDs with unknown-hook-control",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects symlink lock paths without following or truncating them",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects hard-linked lock files",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "unlocks and closes the lock descriptor when post-flock initialization fails, then allows a later acquisition",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "releases a stale advisory lock after the holder exits",
          "status": "passed",
          "durationMs": 147
        },
        {
          "name": "fails closed when a live advisory lock is held past the bounded wait",
          "status": "passed",
          "durationMs": 2126
        },
        {
          "name": "serializes concurrent mutations without lost updates",
          "status": "passed",
          "durationMs": 31
        },
        {
          "name": "preserves prior bytes when pre-rename persistence fails",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "returns observed indeterminate success when post-rename parent fsync fails",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns committed indeterminate success when post-rename fsync and reread both fail",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "GET fsync retries then confirms persistence",
          "status": "passed",
          "durationMs": 34
        },
        {
          "name": "GET reports indeterminate persistence when directory fsync keeps failing",
          "status": "passed",
          "durationMs": 59
        },
        {
          "name": "GET confirmed generation matches disk while lock serializes concurrent POST",
          "status": "passed",
          "durationMs": 216
        },
        {
          "name": "closes the lock descriptor in finally when release fails after commit",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "returns indeterminate success when lock release fails after commit",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "leaves no marker or rollback artifacts after indeterminate write",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "appends lock release failure when GET persistence is already indeterminate",
          "status": "passed",
          "durationMs": 58
        },
        {
          "name": "includes temp cleanup failure in write error before commit",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "marks persistence indeterminate when temp cleanup fails after commit",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "allows concurrent GET readers under shared flock",
          "status": "passed",
          "durationMs": 58
        },
        {
          "name": "append writes a line, load replays it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "appending same id twice within a process is a no-op the second time",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "dedupe survives restart: unchanged item journaled before restart is not re-appended",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "load with no existing file returns empty array",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "appending an id with changed content re-persists (does not no-op)",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "tombstone replay: a resolved item does not resurrect after restart",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "interleaved upsert/tombstone order is respected on replay (genuinely last-write-wins)",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a tombstone is not silently dropped as a malformed line",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "malformed lines are skipped without throwing",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "uses registry defaults, exact JSON essence, and stable known-route methods",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects prototype hook IDs as unknown-hook-control",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "missing Authorization header is rejected with 401",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "wrong bearer token is rejected with 401",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "correct bearer token is accepted",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "GET /health returns 401 without auth",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "GET /health returns ok with valid bearer",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "GET /state returns panels and adapter statuses",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "cluster reads expose the snapshot, exact node, workload evidence, and honest 404s",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "GET /items returns items, filterable by kind",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "GET /events streams an SSE delta on new poll data",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "an idle /events stream outlives Bun&apos;s default 10s idleTimeout",
          "status": "passed",
          "durationMs": 12002
        },
        {
          "name": "harness reads are authenticated, exact, and preserve query cursor",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "task SSE is relayed without buffering and cancellation closes upstream",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "task SSE drops malformed data frames without exposing bytes",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "task SSE rejects oversized delimited frames before redaction",
          "status": "passed",
          "durationMs": 17
        },
        {
          "name": "binding an already-bound port throws CollectorFatalError with code PORT_BUSY",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rejects requests without auth",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "returns the hook inventory with liveness verdicts",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "missing config file falls back to defaults",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "valid config.toml is parsed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invalid TOML syntax throws a named fatal error",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "valid TOML but wrong shape throws a named fatal error",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "unreadable config file throws a named fatal error",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads rules with the provider account registry",
          "status": "passed",
          "durationMs": 16
        },
        {
          "name": "rejects an unknown account slug without changing the file",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "rejects malformed and extra fields without changing the file",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "atomically replaces the complete routing file",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "rejects noncanonical account slugs",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rejects invalid alias min-length registry for both routing and incidents parsers",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "default config enables every wave-1 adapter",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "enabled = false omits an adapter, others stay",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "enabled = false omits cluster",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "enabled = false omits gates",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "enabled = false omits botmaster",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "enabled = false omits offload",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "intervalMs overrides the adapter&apos;s default interval",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "every built adapter id is unique — registry registration cannot collide",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty token throws TOKEN_EMPTY when offload is enabled",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "adapter is fresh right after a successful poll",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "adapter is marked stale once age exceeds 2x interval",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "adapter that has never succeeded is stale",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throwing adapter never crashes the scheduler",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "generates a token file with mode 600 when missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reuses an existing token on subsequent loads",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "token file contents match what is returned",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "validates and forwards a filing to the incidents provider",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects malformed and unknown fields before reaching the provider",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects a client-supplied wrapper model before reaching the provider",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects each tampered dispatch dimension before reaching the provider",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "accepts unsafe:true when authority declares unsafe and persists authoritative wrapper",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects unsupported unsafe permission before reaching the provider",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects an unready account before reaching the provider",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rejects a body over the collector limit",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "authority load failures occur before Kanboard mutation or idempotency creation",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "poll result lands in state as items and panels",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "delta is emitted to subscribers on poll",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "getItems filters by kind",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "scheduler forwards parsed completeScopes into scoped reconciliation",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "adapter health tracks poll latency and consecutive failures, then resets on success",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an id absent from a successful poll is removed, tombstoned, and delta&apos;d as resolved",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "recordFailure retains items — nothing is resolved on a failed poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "ownership isolation: adapter A&apos;s poll never resolves adapter B&apos;s items",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "items replayed from the journal are reconcilable: a restart does not orphan them",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "named scopes reconcile independently and empty completeScopes resolves none",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "named scope ownership survives restart and resolves by exact scope only",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "upserting an id into a new scope does not let its completed old scope tombstone it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "replay migrates only valid unscoped ghci run failures and persists upgraded ownership",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a ledger that was never written reports missing, never invents sessions",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a ledger root without a sessions directory reports missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an armed but empty ledger is present and empty",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a schemaVersion 1 entry becomes a record carrying its resume id",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a linked worktree reports its own directory as the worktree",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "a session with no runtime session id yet carries no resume id",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the dtach socket is never reported as a tmux target",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a human session records the tmux target it can be reopened through",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a tmux host discovered from process ancestry becomes a browser target",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "unparseable and wrong-schema files are reported, not silently dropped",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a name readdir lists but whose bytes are gone by read time is skipped, not a crash or a fabricated entry",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an unrecognized liveness state is rejected rather than guessed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a classifier that cannot run makes the ledger unavailable, never wrong",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "host, parent, mux and the classifier&apos;s own verdict all reach the record",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "recorder fields the panel renders are null until the recorder stamps them, never guessed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "recorder-stamped title, activity, launcher and account are carried verbatim",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the closer&apos;s own words for why a session ended reach the record verbatim",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a session nobody said anything about carries no finish reason",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "no progress timestamp is ever back-filled from the session&apos;s start time",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an entry with no ledger id is rejected",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an entry with no cwd is rejected",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "lowercase and underscored state spellings normalize",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads declared enablement without contacting any host",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads the registry the workstation module actually ships, extra keys and all",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an unreadable or malformed registry reads as missing rather than throwing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a host outside the registry is unknown, never assumed reachable",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the registry path honours the same env override as the workstation reader",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports ok, ssh failure, invalid output, and registry-disabled hosts without contacting disabled hosts",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "quotes every remote command argument",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "registry gating refuses unknown and unreachable hosts by name",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a hung command is killed and returns an honest timeout",
          "status": "passed",
          "durationMs": 22
        },
        {
          "name": "captures the pane of an attachable session",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "an unknown session id is refused",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an orphaned session cannot be attached",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a non-loopback bind refuses capture",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a missing tmux binary reports unavailable instead of failing opaquely",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keystrokes are sent literally to the ledger&apos;s tmux target",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "named keys are sent without the literal flag",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a tmux failure surfaces its stderr rather than reporting success",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "captures a reachable remote pane through registry-resolved ssh with quoted target",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "surfaces a remote ssh failure without fabricating a screen",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sendKeys uses the same remote ssh path",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on malformed JSON",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "throws when response id is missing",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "throws on response id mismatch",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "includes issue paths when response schema is invalid",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "throws on json-rpc false failure result",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on json-rpc error envelope",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "fails when batch response is partial",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "fails when a batch element has false result",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "resolves every placeholder for a typed incident",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "omits type, skill and similar sections for an untyped incident",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "omits type sections for a type id absent from the taxonomy",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws a named error when taxonomy.json is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws a named error when dispatch-template.md is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws a named error when placement-map.md is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws a named error when never-touch.md is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on invalid taxonomy JSON",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on an unknown placeholder",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on an unclosed template section",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "caps similar incidents at three of the same type",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports an empty knowledge base honestly",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "renders unset priority honestly",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "creates project on bootstrap absent case",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "is idempotent and makes no redundant writes when already correct",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "reports drift when project remains public",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "adds a missing column while keeping readiness ready",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "adds a missing swimlane while keeping readiness ready",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "reports degraded readiness on unknown structural drift",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "does not consider token or auth in error messages",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "returns null when kanboard env is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "returns null when api token is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads token and defaults baseUrl",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolves readiness lazily",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "caches readiness inside the ttl and re-resolves after it",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "shares a single in-flight resolution across concurrent callers",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "does not cache a failed resolution",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "preserves named mutation errors instead of wrapping them as unavailable",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rethrows IncidentOptionsError from loadIncidentOptions during dispatch with same kind/detail",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "wraps unrelated loadIncidentOptions failures as IncidentsUnavailableError",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "never leaks the token or store address through the failure message",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "returns 404 for both routes when no incident store is configured",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "requires the bearer token",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "defaults scope to active and forwards query and priority",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects an unknown scope or priority without reaching the store",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "returns a single incident and 404 for an unknown id",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "decodes the incident id segment",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "surfaces an unavailable store as 503 on both routes",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "files and dispatches through dedicated mutation routes",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "serves taxonomy options and reports missing assets as unavailable",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "preserves named authority and dispatch errors without partial options 200",
          "status": "passed",
          "durationMs": 16
        },
        {
          "name": "requires auth and returns 404 for an unknown incident on the brief route",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "assembles a fresh brief and prefers the persisted one",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "surfaces a brief assembly failure as a named refusal, never a bare 500",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "returns no incidents for empty project and does not fetch comments",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "maps metadata-absent task as filed and keeps null timestamps",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "marks state mismatch between column and metadata as needs-attention",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "surfaces priority/swimlane drift without guessing the wrong priority",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "resolves scope filters without mixing active and resolved",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "filters by query and priority",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps getAllComments entries with comment field for incident detail",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "returns null when missing incident is requested",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "locates a non-numeric incident id through the task reference",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "refuses a task that belongs to another project",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports bootstrap drift as list coverage",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "files into the Filed column with matching priority and durable idempotency metadata",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "dispatches a filed incident, persisting brief and provenance with the dispatch metadata",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "aborts the dispatch transition when brief assembly throws",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "aborts before moving the column when brief persistence fails",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "dispatches without a brief only on explicit override, recording the degraded path",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "stale/authority matrix preserves named codes and writes zero dispatch state",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "resolves an incident: writes artifact metadata and moves it to Resolved",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "re-resolving with the same artifact is a no-op success",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "re-resolving with a different artifact is a conflict, not an overwrite",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolving an unknown incident throws not-found",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "creates the task with its reference in one call and no updateTask",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "concurrent duplicate filings create exactly one task",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "adopts and repairs a task whose metadata write never landed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "still rejects a request id reused with a different payload",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "joins deployed authority without incident history and keeps wrapper mappings private",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "profile joins via loader; fixed-account join stays on materialize seam",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "loadIncidentOptions rejects tampered deployed v1 that switches codex to fixed",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "validates the shipped Codex capability against the adapter registry",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "trust-boundary matrix fails closed for unknown version/shape and scoped duplicates",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "trust-boundary matrix fails closed for adapter/wrapper/model emptiness and registry faults",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects self-declared non-v1 capabilities and unregistered selections",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "bootstraps with real store idempotently and validates measured shape",
          "status": "skipped",
          "durationMs": 0
        },
        {
          "name": "projects real tasks through the incident read path",
          "status": "skipped",
          "durationMs": 0
        },
        {
          "name": "keeps core run data when optional trace tables are absent",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "propagates runSlug from sessions.run_slug",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns null runSlug when sessions.run_slug column is absent",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "propagates repoName from sessions.repo_name",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "returns null repoName when sessions.repo_name column is absent",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "discovers an optional trace table created in the same db file after polling",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "discovers an optional column added in the same db file after polling",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "prefers attempt model and exposes account while legacy attempt columns stay optional",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "computes idle time only for running attempts with heartbeat data",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "surfaces attempts, phase durations, and parsed or raw gate checks from legacy columns",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "surfaces phase diffs and owned processes",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "uses empty violations for malformed gate JSON",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "uses empty violations when the legacy gate table has no violations column",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "surfaces ordered tool calls with safe parsed args and timeout kind",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "returns an empty panel when the db file is absent",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "projects completed and running runs from two repos with phase spend and tokens",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "emits a halt item for failed runs without invented actions",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "pages the global rowid cursor beyond 500 events without duplicates on repeat polls",
          "status": "passed",
          "durationMs": 64
        },
        {
          "name": "does not skip cross-session events when a new session bootstraps after an incremental event",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "preserves open db and cursor across mtime/size changes but rebuilds on inode replacement",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "rebuilds safely after db replacement and schema reset",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "opens the database readonly and never writes",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "documents the completed-session cap consistent with the visualizer",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "projects pending decisions as inbox items with factory answer actions",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "does not project answered or canceled decisions",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "projects pending decisions across multiple repos",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "panel runs carry the full decision history including answered decisions",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "linear-projection ETA from 60% -&gt; 70% -&gt; 78% over 30 minutes",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "panel exposes percent, status, spend, window per account",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "percent &gt;= threshold triggers warn item even with single sample (no ETA)",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "ETA &lt; threshold triggers warn item even when percent is below percentWarn",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "declarative auto-resolve: warn item is simply omitted once back under threshold",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "stale snapshot: panel marked stale, no alert items emitted despite over-threshold data",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "fresh snapshot within stale_after_s: panel not stale",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "tolerates one atomic-rename race by retrying the read once",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "uses accounts.json alias as the display label",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "propagates failure when the read fails twice in a row (retry-once only)",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "merges codex and claude health caches with provider-prefixed labels",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "never groups a session under the home directory just because the repo walk landed there",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "keeps a real repo root as the grouping key",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty ledger yields an empty panel that names the directory",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sorts most-recently-active first",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sorts by classifier activity, not by the record&apos;s own heartbeat",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "groups by the absolute project root, not a repo nickname",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "carries every recorder field the panel renders, absent ones as null",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a tmux-hosted live session attaches in the browser and reopens from a terminal",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a dtach-wrapped live session reopens from a terminal but cannot render a screen",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a live session with no multiplexer says why it cannot be reopened",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a finished claude session resumes by runtime id, with the account when one was recorded",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "codex and cursor-agent resume with their own verbs, never claude&apos;s",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an unknown runtime is refused by name rather than given claude&apos;s verb",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a session with no runtime id cannot be resumed and says so",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a registry-reachable off-host tmux session reconnects and renders over ssh",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a registry-disabled host is refused from static data, never probed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a host absent from the registry is reported unknown, not assumed reachable",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "orphaned sessions cannot render a screen and say why",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a missing tmux binary blocks the browser screen with a named reason",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a non-loopback bind disables the browser screen for every session",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a missing host registry is reported, not silently treated as empty",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "poll does not await probes, then merges cached remote records with remote collisions winning",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sessionFromPanel resolves only ids present in the snapshot",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a stopped entry sharing a live session&apos;s id refuses to resume and names the holder",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "stopped entries with no live holder stay resumable",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "the same id under a different runtime is not treated as held",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "default config binds loopback and allows attach",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "tailnet bind refuses attach instead of inheriting it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "collapses repeat hits of one tool into one gap",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "drops records from an image that is no longer deployed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "skips malformed lines instead of failing the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "orders by hit count then name",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "one item per tool, keyed on the tool name",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "gaps retire once the image is rebuilt under a new tag",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "stays silent until a sandbox image has been provisioned",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports no gaps when nothing has been recorded yet",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "id defaults to gates with a sane default interval",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "emits gates panel with prevent open count, slopgate debt total and 7-day trend",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "emits gate items for each confirmed prevent-band finding",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits gate decision items for warnignore additions awaiting sign-off",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "successful poll omits an item when its condition no longer holds (snapshot contract)",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws when confirmed.json cannot be read so prior state is retained",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws when precision records cannot be read",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws when a slopgate baseline exists but is unreadable",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws when a configured slopgate baseline is missing",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws when baseline git history cannot be read",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "uses argv-array git invocation, never a shell string",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "covers exact, host-only, unplaced, conflicting, expired and partial-source cases without invented metrics",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "an absent ledger reports absent and fabricates no session placement",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads the canonical annotation from the real launcher Job and Pod template shape",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "adapter reports partial namespaces and reads only closed API paths",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "id defaults to golive with a sane default interval",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "counts works/total from checkbox lines, excluding a decoy inside a fenced code block",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "parses verdict tags: works=WORKS-count, 4-way breakdown, per-criterion rows, fenced decoy excluded",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "reachedAt: committed criterion line gets its commit date; uncommitted (zero-SHA) line stays null",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "computes 7-day trend from a fake git log: works 7 days ago vs now",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "no commit found before the 7-day cutoff: trend falls back to current works count",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "churn threshold: commitsSinceLastWorksDelta at threshold is not churn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "churn threshold: commitsSinceLastWorksDelta over threshold fires churn",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a missing or unreadable GOLIVE.md drops that repo from the panel without throwing; other repos survive",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty git history (untracked GOLIVE.md) is tolerated: zero trend, no churn",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sourceUpdatedAt: newest GOLIVE.md commit date, normalised to an ISO instant",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sourceUpdatedAt: never-committed GOLIVE.md stays null",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "scores from origin/main when the remote branch exists — working tree never shadows it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "origin/main derivation anchors history reads to the ref",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "no remote branch: falls back to the working tree and HEAD-anchored history",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "emits no items — panel only",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "uses argv-array git invocation, never a shell string",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "ORPHANED with dirty files -&gt; act/alert item",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "ORPHANED with no dirty files -&gt; warn/alert item",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "DETACHED-ALIVE -&gt; warn/progress item with attach action",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "ALIVE-WORKING and ALIVE-IDLE -&gt; info/progress items",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "FINISHED session excluded from items but present in panel within 24h",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "FINISHED session older than retention window excluded from panel too",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "completeScopes always includes agent-sessions on a successful poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "skips corrupt JSON and wrong-schemaVersion files, keeps parsable ones (warn once)",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "classify import/impl failure -&gt; poll throws (adapter.ts: retains previously known state)",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "groups panel sessions per project, newest lastProgressAt first",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "timeline-opt-data-integrity.json: every segment falls inside a run window",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "timeline-grok-account-parity.json: every segment falls inside a run window",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "projects ordered queue entries losslessly without fabricated run fields",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects failed or invalid queue reads so collector retains prior plans state",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "keeps legacy plans output free of every observability field",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "projects enriched observability reads losslessly without defaults",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "redacts credential-like config values while retaining field metadata",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "redacts nested credentials from every JSON browser egress surface",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "streams task SSE without applying request timeout and preserves opaque cursors",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "sends task, run, and config controls with observed IDs and revisions",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects malformed wire payloads and retains upstream status plus redacted body",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "accepts run-scoped events and rejects unchecked enriched wire values",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "builds a plans panel from /runs with waves grouped from the DAG",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "forwards honest defaults when repo metadata is absent",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "forwards the persisted abandoned timestamp without fabrication",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits a halt item for a run whose status requires human intervention",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "does not emit harness decision inbox items",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "does not emit a liveness alert when an attempt is within budget with recent heartbeats",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits a liveness alert when attempt elapsed exceeds 2x timeoutSecs",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits an alert when active-run attempt coverage is unavailable",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits a liveness alert when heartbeat gap exceeds 180s while still in progress",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "never emits a liveness alert for a completed attempt regardless of elapsed time",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "alarms only the stale attempt when concurrent in-progress attempts share a fresh run.updatedAt",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "computes per-run staleness from the newest journal and heartbeat timestamps",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "flags a run alarmed by run-level staleness when journal and heartbeat are both stale",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "does not flag run-level staleness when journal coverage is unavailable",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "computes exact bucket sums for the forensics panel from the fixture timeline",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "poll rejects when the harness control-api is unreachable, so the reconciler retains all prior state",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "aborts a hung control-api request after the configured timeout",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "caps concurrent decisions and timeline requests",
          "status": "passed",
          "durationMs": 187
        },
        {
          "name": "poll succeeds when a run&apos;s decisions endpoint would fail because decisions are not polled for inbox items",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "stays zero-throw when only the timeline endpoint fails — the forensics panel just stays stale",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "proxies decision answers with the bearer token and JSON body",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "redacts nested credentials from decision answer responses",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "proxies steer requests with the bearer token and JSON body",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "discards nested credentials from closed steer responses",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "attaches the bearer token to every GET call during poll()",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "re-reads the control-api pointer for each poll",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "invalidates discovered connections on network failures and timeouts",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "classifies 401 separately from other status and JSON failures",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "invalidates discovered connections when reading a response body fails",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "keeps a newer generation when an older in-flight request fails",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "pins a poll and established SSE stream to their starting connection",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "invalidates SSE handshakes, rotates tokens, and never reads fixed-endpoint pointers",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects failed /runs reads rather than mixing stale runs with queue state",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "self-heals a dead control-api by running ensure and retrying the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "re-runs ensure when the control-api serves a superseded engine version",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "returns trimmed non-empty token",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty token throws CollectorFatalError with code TOKEN_EMPTY",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "resolves defaults and passes through validated token",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty token throws TOKEN_EMPTY before connection is returned",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty token throws TOKEN_EMPTY when offload is enabled",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "emits a host panel with no alert items when everything is nominal",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "PROCHOT: package throttle rate &gt; 0 fires an alert item",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "PROCHOT: zero throttle rate does not fire",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "mem runway: eta below 30 minutes fires an alert item",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "mem runway: eta at the 30 minute boundary does not fire",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "mem runway: sentinel 999999 (no exhaustion trajectory) never fires",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "disk: free percent below 5% fires an alert item",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "disk: free percent at the 5% boundary does not fire",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "panel carries build.slice job count from the real systemd unit_state metric",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "Prometheus down: poll rejects so the scheduler marks the panel stale, no items produced",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "Prometheus reachable but errors (HTTP 500): poll rejects",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "speaks the agent-guard poll protocol over a unix socket",
          "status": "passed",
          "durationMs": 35
        },
        {
          "name": "emits cluster and agents panels from fixture sources",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "debian1 offline is reflected in the cluster panel",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "autoscaler idle state comes from ci-fallback counters",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "orphan candidate emits act alert with reap action",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "no orphan items when ps output has no qualifying processes",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "etime and cpu boundaries are exclusive: at 30m and 80% does not fire",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "declarative snapshot: orphan absent on next poll when ps clears",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "agent-guard socket failure rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "ps failure rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invalid buildbox state rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "unreadable ci-fallback counter rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads only configured ci-fallback idle and pressure sources",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "unreadable queued buildslot ticket rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "unreadable agent cgroup rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "classifies agent processes with the configured regex",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects malformed process rows instead of returning a partial snapshot",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "accepts rtk ps rows with dash NI and day-prefixed etime",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "uses pinned snapshot argv, OID identity, and independent completeness fields",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "keeps train evidence when GitHub returns a short partial history page",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "treats a full first history page as complete when total_count exceeds the page size",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "serves persisted run history when the latest GitHub fetch fails",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "treats missing self-hosted runners as empty occupancy",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "adds org-level runners to the fleet when repo runners are unavailable",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "paginates train refs until the connection is complete",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "preserves simultaneous REST, ref, PR, and check pagination gaps",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "keeps ref and PR completeness independent on a malformed sibling connection",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects exact-run responses containing a different head SHA",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "serves cached snapshot for repos outside the admitted batch",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "isolates early repo failures and advances rotation",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rotates 10 configured repos in exact batches",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rotates 11 configured repos in exact batches",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rotates 21 configured repos in exact batches",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "latches the tenth successful poll and uses an inclusive UTC seven-day query",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "retains a failed merged-fetch latch until a later successful admitted poll",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "finishes every fixed and exact query before jobs or logs and stays within the poll budget",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "pins ordinary, mixed-due, and all-due five-repo arithmetic",
          "status": "passed",
          "durationMs": 36
        },
        {
          "name": "rotates constrained job admission after dispatch failure",
          "status": "passed",
          "durationMs": 37
        },
        {
          "name": "rotates constrained log admission independently",
          "status": "passed",
          "durationMs": 38
        },
        {
          "name": "preserves stable run-failure item identity",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "derives queued/%s attempt 1 as gating",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "derives in_progress/%s attempt 2 as rerunning",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "derives completed/failure attempt 1 as failed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "derives completed/success attempt 1 as green",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps a branch-only queued/%s run building",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps a branch-only completed/failure run building",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps a branch-only completed/success run building",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "applies canonical total ordering and exact-query admission",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "orders invalid train suffixes by created time, PR number, then branch",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "selects latest exact-OID run by created time, attempt, then ID and exposes unsupported gaps",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "ignores obsolete open and merged PR identities on reused branches",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "retains cached merged train PRs and gives open PR lifecycle precedence",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "applies completeness guard %s",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "applies completeness guard %s",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "applies completeness guard %s",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "derives PR queue metrics, staleVsMain, checks, and train membership",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "classifies each unseen job ID once and reuses the cached result",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "classifies only the retained 64KiB log suffix and caches matches by job ID",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "derives deterministic blockers and runner occupancy joins",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "selects failed blockers by started time with null last, then job ID",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "marks truncated or budget-deferred jobs incomplete without inventing infra state",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "marks excess train job scope degraded while completeness guards suppress job calls",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "does not report saturation for an empty online-runner set",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "emits scoped run failure, infra failure, green-unmerged, and queue-without-train items",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "marks complete empty scopes while suppressing positive claims at exact incompleteness boundaries",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "budget-excluded repos expose no reconciliation scopes",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "green-unmerged uses a strict ten-minute completion threshold and stable identity",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "derives complete UTC merged metrics and leaves history completeness independent",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "nulls both merged metrics for truncated count",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "nulls both merged metrics for next page",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "nulls both merged metrics for invalid timestamp",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "nulls both merged metrics for null node",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "nulls both merged metrics for query failure",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "requires three valid seven-day samples without hiding today&apos;s count",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "records only completed runs with complete, valid job timing and resets on restart",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "dedupes, orders by completion and run ID, and retains newest 50 after sorting",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "filters invalid created time from amplification",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "filters invalid updated time from amplification",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "filters reversed run time from amplification",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "requires an injected fetch implementation",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "builds a bots panel with runtime status, traffic health, msgs, errors, and cost",
          "status": "passed",
          "durationMs": 31
        },
        {
          "name": "emits an alert item for each running bot that went silent after prior activity",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "omits the down alert once the bot recovers — the reconciler resolves it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "poll rejects when the summary API is unreachable, so prior state is retained",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "attaches the bearer token to every API call during poll()",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps an api path to the REST base with versioned auth headers",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "posts graphql with string and typed variables",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects argv shapes the collector never issues",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws a status-bearing error that the runner 404 probe matches",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "never leaks the token into the error message",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "re-resolves the token once after a 401 and retries",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "replays the cached body on 304 without re-reading the network payload",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "caches per URL so a different query is not answered from another entry",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "omits if-none-match once an entry is evicted by the cache bound",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "does not cache a body above the size bound",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "follows the log redirect without forwarding credentials and keeps the tail bytes",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "throws on a failing log request",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps completeness flags true when every conditional request answers 304",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "requires an injected fetch implementation",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "empty token throws TOKEN_EMPTY before any controller request",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "emits the four offload panels on a healthy poll",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "plumbs structured controller KPI samples and derives longest observed pull-back",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "a lifetime exit counter with no open circuit raises no capability item",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "2026-07-18 incident: exactly remote-idle-queue-stalled + capability-missing with job links",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "controller-down: one controller-down item and all panels stale",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "controller-down: Bun connection-refused (no ECONNREFUSED substring) still models controller-down",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "normal-temp fixture emits no cpu-temp-critical item",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "crit-temp fixture emits exactly one cpu-temp-critical item",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "reachable controller with malformed status rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reachable controller with wrong-shaped status rejects the poll",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reachable controller with malformed metric vector rejects the poll",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "malformed status after success retains last-good snapshot",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "two-mount disk metrics pair free and size bytes per mountpoint",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "publishes the recorded ~/.claude parity verdict per host",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "an unreadable parity state leaves every host&apos;s verdict unrecorded",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a controller host absent from the registry reaches neither the fleet nor capability",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a registry host the controller never enrolled is listed, not dropped",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "an unreadable registry fails closed before contacting the controller",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "a controller outage leaves the declared hosts listed and marked stale",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reachable controller but metrics failure rejects the poll",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "publishes a host&apos;s reported live sessions and leaves an unavailable series unknown",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "carries the box&apos;s own per-path work counts, and leaves an absent split unknown",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "publishes stall, tmpfs and work-slice facts per host on the fleet panel",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a host with no guard series reports nulls and an empty slice list, never invented numbers",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "an OOM-kill total already on the clock at startup never alerts; only a fresh kill does",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "a full tmpfs alerts because writes are already failing; a merely busy one does not",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "a stalled box alerts on lack of forward progress, not on how much memory is in use",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "returns undefined for a source id this collector does not know",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "serves one source&apos;s entries newest-first with its coverage",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "explains every skipped record instead of dropping it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "pages with offset and limit while total counts every match",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "clamps a limit above the maximum and a negative offset",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "searches record detail, not only the title",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "filters by severity floor and by window",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "redacts credential-named values in a skipped record&apos;s excerpt",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports an absent source honestly rather than as an empty ok source",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "emits scheduled and started once with exact correlation fields",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "emits terminal and deletion transitions without treating an absent value as a sample",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "adds facet counts computed over the full match set before limit truncation",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "keeps other category counts when filtering by one category",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "narrows category and source facets with non-category filters",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "omits facets with zero matches instead of fabricating zeros",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "respects limit after sorting and clamps above max to 2000",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "keeps other source coverage when one source throws while still returning events",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "maps known actions, unknown actions, and root/session mapping",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "reports absent for missing file and keeps malformed lines accounted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps start/finish events and enforces optional-field honesty",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "honors range filters while coverage stays whole-file",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports absent when sessions directory does not exist",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps controller records into stable activity events",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "reports absent when controller file does not exist",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps every attempt to a row carrying its own text",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "keeps coverage full-file while applying from/to windows",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports absent when the log has never been written",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports error instead of throwing when the log cannot be read",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "skips corrupt lines without losing the sound ones",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps historical records queryable after the event schema change",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "Kubernetes activity source dedupes stable ids and reports absent coverage honestly",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "summarizes pending registry and skips malformed row counts",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "returns absent status when pending registry is not present",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads each repo root, honors window, and keeps stable IDs",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "reports absent if no landq roots exist",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps hardened host events from jsonl and skips malformed lines",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "reports absent when harden ledger does not exist",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "honors range filters while coverage stays whole-file",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps action audit records and skips malformed entries",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "reports absent when actions file does not exist",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps notification attempts and normalizes keys, severities, and titles",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "keeps coverage full-file while applying from/to windows",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports absent when log file does not exist",
          "status": "passed",
          "durationMs": 0
        }
      ],
      "testCounts": {
        "passed": 691,
        "failed": 0,
        "skipped": 2,
        "total": 693
      }
    },
    "workspace:controller": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "bun-junit",
      "tests": [
        {
          "name": "isolates concurrent dirty worktrees of one repo",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "refuses stale publication, preserves staging and emits act event",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "requires both snapshot digest and checkout generation to remain unchanged",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "default generation check ignores controller staging paths",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "recovers a crash during promotion to a fully staged state",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "recovers a crash after the atomic swap to a fully promoted state",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "reattaches once after transport interruption",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "fails loud after the single reattach also disconnects",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "garbage-collects completed workspaces after TTL using injected clock",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "atomically reserves the global remote-job limit",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "wires authenticated create, stage and promote routes",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "maps incident notifications field-for-field",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "maps watchdog notifications field-for-field with injected clock",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "omits restartError when watchdog notification has none",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "info never desktop-pages",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "page and high desktop locally in both mode",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "broken notify-send is swallowed and journaled",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "POST uses exact ntfy-compatible request and 5s timeout",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "POST failure logs and is swallowed",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "126 then 127 job reports page through the real laptop sink",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "promotes an enrolling host with no operator action",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "records and logs the probe&apos;s reason when the host stays out",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "continues host admission when delivery lifecycle reconciliation throws",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "skips the pass entirely when nothing is enrolling",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "does not start a second pass while one is in flight",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "GET /health returns 401 without auth",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "GET /health returns ok with valid bearer",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "valid generic bearer cannot admit caller-supplied evidence",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "corrupt config with override records exactly one incident",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "GET /status without Authorization returns 401",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "GET /status with wrong bearer token returns 401",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "GET /status with valid bearer returns schema-valid ControllerStatus",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "POST /transition/box-drain commits and bumps revision",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "stale revision returns 409",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "invalid args return 422",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "derives identity, enrolls observed host, replays, and advances attempts",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "conflicts preserve job and append one event",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "raw 126/127 reports never blame argv[0] without executor evidence",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rejects untrusted identity, unsafe mirrors, empty commands, and relative config paths",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "event failure rolls back whole job report",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "config reports enforce replay and incident sentinel ownership",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "requires a dedicated authority distinct from the generic bearer",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "refuses a dedicated token equal to the generic bearer",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "admits a valid envelope once and rejects replay atomically",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "accepts absent restart argv fields as observe-only",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "accepts empty restart argv arrays as observe-only",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects intervalMs at or below probe timeout",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects non-loopback target URLs",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects non-HTTPS webhook URLs",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects unknown config keys",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects restart argv with empty strings",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "TOKEN_MISSING when token file is absent",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "TOKEN_EMPTY when token file is blank",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "returns TOKEN_MISSING before probes start",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "loads config from disk",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "tunnel URLs resolve as observe-only targets",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "off-laptop watchdog pages through webhook adapter on probe failure",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "WatchdogFatalError preserves exact codes",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "healthy controller and collector cause no action",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "controller failure restarts once then pages once while collector remains healthy",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "collector failure is detected independently of healthy controller",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "both failures each receive one independent restart and page",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "recovery rearms paging for a later failure",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "sends bearer token to both observation endpoints",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "observe-only targets notify without restart when restartArgv is absent or empty",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "health fetch uses a 10s abort timeout signal",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "aborted probe is treated as a failed health check",
          "status": "passed",
          "durationMs": 25
        },
        {
          "name": "admits only when command, version, paths, disk, and systemd satisfy manifest",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "manifest miss emits one capability-missing event and suppresses probe storms",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "repeated 126/127 opens a persisted class circuit and emits once",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "closed breaker ignores unrelated exit codes",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "open breaker stays open for every exit code including success",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "half-open success closes through recordExit and emits capability-restored",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "half-open nonzero re-opens and admit does not close probation",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "breaker opening and capability-missing event commit atomically",
          "status": "passed",
          "durationMs": 23
        },
        {
          "name": "unrelated host updates preserve half-open breaker state",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "status projects breaker through existing capability fields",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "half-open breaker does not project as a missing command",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "probeAdmission is side-effect-free",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "a probe harness failure is reported, not misclassified as a missing command",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "command breakers do not mutate manifest capability",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rejects unsafe hostnames and foreign manifests without spawning",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invokes exact ssh argv transport with 5s timeout and maps outcomes",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "missing config and token boot with defaults and created token",
          "status": "passed",
          "durationMs": 47
        },
        {
          "name": "invalid config stays live degraded with one incident and loopback bind",
          "status": "passed",
          "durationMs": 60
        },
        {
          "name": "empty token file fails with TOKEN_EMPTY",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "projects events initially, on append, and on shutdown flush",
          "status": "passed",
          "durationMs": 2255
        },
        {
          "name": "systemd notify emits READY once and WATCHDOG every 10s only with NOTIFY_SOCKET",
          "status": "passed",
          "durationMs": 144
        },
        {
          "name": "pending admission recovery completes before bind and READY",
          "status": "passed",
          "durationMs": 42
        },
        {
          "name": "missing systemd-notify logs once and keeps server live",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "health stays responsive while an in-flight probe is pending",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "shutdown closes the single store",
          "status": "passed",
          "durationMs": 24
        },
        {
          "name": "rejects non-loopback bindHost as invalid shape",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "disabled by default, config flag arms it, env overrides both ways",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "namespace/kubeconfig mirror the same config keys as k3sConfig()",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "parses server/CA/client-cert from a kubeconfig",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on a kubeconfig missing the current context",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "picks the newest pod per job-name, ignores pods without a terminated build container",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "builds the emitJobReport() shape from annotations + container args",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "returns null when the pod is missing report annotations",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "no-ops without touching the network when k3s_enabled is false",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "emits a /jobs/report for a newly completed pod and does not re-report it",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "tick() rejects when the k3s API is unreachable, so the run loop can back off",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "run loop backs off on repeated failure and resets on success, never a hot loop",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "opens with revision 0 and empty fleet",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "drops wrapper-named breakers on open and keeps executable ones",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "enforces exact receipt authority at the feature state boundary",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "persists revision across reopen",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "rejects permanent fallback lease",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "expires fallback lease after ttl",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "idempotency replay survives reopen within 24h",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "audit write failure throws AuditWriteError",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "mutations are transactional",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "nested mutations share one transaction and return values",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "persists report job fields and succeeded releases reservations",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "stores only the latest spine config hash per path",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "host eligibility evaluates guards in contract order without reservations",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "transition commit CAS cancels stale journal without state writes",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "clears spine-config degradation whose config file no longer exists",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "emits only one config incident",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "omits the sessions series rather than publishing zero when a host cannot report it",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "omits the builds-24h series rather than publishing zero when no count was recorded",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "publishes every spec series with exact labels and multi-mount disks",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "serves Prometheus text and selector-aware vector JSON behind Bearer auth",
          "status": "passed",
          "durationMs": 17
        },
        {
          "name": "reuses a short-lived collect cache across repeated queries",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "enforces the exact event shape and non-job sentinels",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "builds exact report events",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "replays lifecycle events in strict revision order from a cursor",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "rolls back state and event when event append fails",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "projects the authoritative SQLite log to exact JSONL events",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "missing config file is healthy with defaults",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "valid enabled:false is legitimately disabled",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invalid TOML is preserved and degrades with one incident",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invalid schema is preserved and never local fail-open",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "non-loopback bindHost is invalid shape and falls back to literal loopback",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "defaults notify mode to both when section is absent",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invalid notify mode degrades with one config incident",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "BUILD_REMOTE_LOCAL_FALLBACK honored only when config valid",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "corrupt config honors and records explicit local fallback override",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects invalid hostnames without spawning",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invokes exact ssh argv transport for journalctl",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "marks truncated when line count reaches the fetch limit",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "requires bearer auth and proxies host logs via injected exec",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "admits an exact valid Ed25519 envelope",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects every signed-payload identity tamper",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "rejects malformed signatures and public keys",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects unknown keys and invalid attestation windows",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects observations outside the signed time window",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects replay and rolls back a failed persistence marker",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "dispatches durable FIFO to least-loaded eligible builders",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "requires available capability-passed non-quarantined builder",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "atomically prevents concurrent per-host oversubscription",
          "status": "passed",
          "durationMs": 116
        },
        {
          "name": "reconciles terminal jobs after restart without leaking host slots",
          "status": "passed",
          "durationMs": 32
        },
        {
          "name": "restart requeues a placed ticket when no job ledger was created",
          "status": "passed",
          "durationMs": 26
        },
        {
          "name": "ordinary store opens cannot erase an in-flight reservation",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "releases the host slot atomically when a job becomes terminal",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "releases host reservation exactly once without touching global limit",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "spills only when all builders are overloaded and queue exceeds builder count",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "terminal spill clears its lease",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "spill placement atomically rechecks overload predicate",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "newly enrolled builder receives new dispatch without a host allowlist",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "reclaims dead tickets by PID starttime identity",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "default owner probe rejects a reused PID with mismatched starttime",
          "status": "passed",
          "durationMs": 22
        },
        {
          "name": "transition verbs reconcile scheduler placements and recall spill state",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "projects scheduler state through the closed ControllerStatus shape",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "migration deterministically preserves the first legacy duplicate ticket",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "projects stale running jobs at read time without writing",
          "status": "passed",
          "durationMs": 23
        },
        {
          "name": "derives observed 24h route, success, and exit-127 samples from the job ledger",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "leaves success unrecorded when no 24h job has a terminal result",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rejects unsafe hostnames without spawning",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "invokes exact ssh argv transport and maps JSON metrics",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "keeps a summary published one box cadence ago",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports a frozen summary as a stale-telemetry gap, not as absence",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "names clock disagreement for a summary stamped in the future",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "names the missing field for a summary with no publication stamp",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "does not leak the publication stamp into the reported metrics",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "states why for non-zero exit, timeout, invalid JSON, empty file, and schema mismatch",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns metrics only for successful hosts in a mixed batch",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "background sampler returns cached metrics without calling inner sample synchronously",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "coerces expectedRevision from string",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "stale expectedRevision returns 409 without mutation",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "idempotency replay returns prior result without re-exec",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "idempotency replay wins over stale revision",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "audit write failure returns 403",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "box-drain moves host to draining",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "admission-reconcile does not enter maintenance while jobs run",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "admission-reconcile advances draining to maintenance when idle",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "admission-reconcile probes enrolling hosts concurrently and promotes only green",
          "status": "passed",
          "durationMs": 17
        },
        {
          "name": "admission-reconcile rejects host args and loses post-probe CAS",
          "status": "passed",
          "durationMs": 25
        },
        {
          "name": "box-restore requires green health to reach available",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "host quarantine and unquarantine route through persisted breaker states",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "job-retry only for infra failures",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "ci-reconcile clears ci jobs",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "recall-spill clears fallback lease",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "kill-mid-transition for box-drain converges on restart",
          "status": "passed",
          "durationMs": 23
        },
        {
          "name": "kill-mid-transition for box-restore converges on restart",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "kill-mid-transition for host-quarantine converges on restart",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "kill-mid-transition for host-unquarantine converges on restart",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "kill-mid-transition for admission-reconcile converges on restart",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "kill-mid-transition for job-retry converges on restart",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "kill-mid-transition for ci-reconcile converges on restart",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "kill-mid-transition for recall-spill converges on restart",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "implements one data rule for every page-vs-auto-heal matrix row",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "transient-transport dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "dead-lease dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "repeated-command-not-found dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "queue-stalled-while-idle dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "fallback-lease-or-drain-stuck dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "artifact-cas-mismatch dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "control-service-down dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "resolve event closes incident and emits lifecycle event",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "durable replay cursor prevents recount after restart",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "migrates legacy config incidents into durable incident records",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "critical package temperature pages and pauses only affected host until clear",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "publishes alert-state metrics without adding incidents to status",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "is bearer-authenticated and reports revision with last event timestamp",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "refuses every wrong-candidate readiness receipt",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "replays deterministic refusal without creating another journal",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "resumes same-process retry after lost response without duplicate journal",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "orders generic recovery before delivery recovery without cancelling delivery intent",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "owns authorized INTERNAL through RETIRED lifecycle and OFF rollback",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "persists illegal and malformed recovery refusals without retargeting",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "permits OFF rollback and retirement after review expiry",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "retires expired ON state and removes state and evidence after rollback window",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "rolls back activation atomically on evidence drift",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rolls back on CAS conflict before activation",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "fails closed after definition review date",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "denies malformed and unavailable identities",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "denies corrupt stored identities and valid mismatches",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "partial states require a bound eligibility decision",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "denies expired definitions during steady-state evaluation",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "loads the tracked dark definition with a stable digest",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "runtime loading disables the entire registry rather than throwing",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "fails closed after review expiry and requires a cleanup task",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects unknown keys, invalid dates, and duplicate IDs",
          "status": "passed",
          "durationMs": 3
        }
      ],
      "testCounts": {
        "passed": 235,
        "failed": 0,
        "skipped": 0,
        "total": 235
      }
    },
    "workspace:packages/deck-ui": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "vitest-json",
      "tests": [
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx::renders honest metadata and restores a row",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx",
          "status": "passed",
          "durationMs": 277.97089400000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx::links the exact soft-delete empty state back to plans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx",
          "status": "passed",
          "durationMs": 9.995536999999786
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx::reorders rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AbandonedPlansTable.test.tsx",
          "status": "passed",
          "durationMs": 91.07909899999959
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ActionsMenu.test.tsx::opens with Enter, cycles focus with arrows, selects, and renders a divider",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ActionsMenu.test.tsx",
          "status": "passed",
          "durationMs": 219.84256200000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ActionsMenu.test.tsx::closes on Escape and outside pointer interaction",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ActionsMenu.test.tsx",
          "status": "passed",
          "durationMs": 33.800702999999885
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentComposer.test.tsx::disables sending while in flight and clears text on success",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentComposer.test.tsx",
          "status": "passed",
          "durationMs": 254.22759599999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentComposer.test.tsx::surfaces send errors inline and preserves the message",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentComposer.test.tsx",
          "status": "passed",
          "durationMs": 65.78171899999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx::sorts turn cards chronologically",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx",
          "status": "passed",
          "durationMs": 49.83510799999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx::marks an unfinished live turn as in progress",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx",
          "status": "passed",
          "durationMs": 7.322372000000087
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx::renders an ended banner for historical activity",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx",
          "status": "passed",
          "durationMs": 9.792943999999807
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx::labels absent raw event detail without inventing a harness version gap",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx",
          "status": "passed",
          "durationMs": 176.0053089999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx::renders hostile authoritative payload as text",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentFeed.test.tsx",
          "status": "passed",
          "durationMs": 14.528662999999824
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentMetaSidebar.test.tsx::renders recorded metadata and not-recorded account fallback",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentMetaSidebar.test.tsx",
          "status": "passed",
          "durationMs": 316.36007300000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentMetaSidebar.test.tsx::renders the journaled executing account when present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentMetaSidebar.test.tsx",
          "status": "passed",
          "durationMs": 7.576823999999988
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentModeToggle.test.tsx::switches between live and historical views",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentModeToggle.test.tsx",
          "status": "passed",
          "durationMs": 163.330146
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentModeToggle.test.tsx::disables live mode for an ended attempt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentModeToggle.test.tsx",
          "status": "passed",
          "durationMs": 13.648073999999951
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx::queues restart for five seconds and supports undo or commit",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx",
          "status": "passed",
          "durationMs": 193.81249100000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx::labels unsupported controls from explicit capability state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx",
          "status": "passed",
          "durationMs": 40.541187000000036
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx::queues an enabled kill behind confirmation undo",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AgentStatusBar.test.tsx",
          "status": "passed",
          "durationMs": 22.106206999999813
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders the newest ten gates in input order and caps the ring",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 304.71426900000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders paired compute and wall bars for every visible run",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 17.48714300000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders the median multiplier",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 12.140771000000086
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::excludes zero and invalid compute denominators from the median",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 11.952686999999969
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders an honest warm-up gap for complete empty history",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 8.742632000000185
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders restart warm-up without claiming persisted history",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 7.0025439999999435
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx::renders incomplete history as a gap even when returned samples exist",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AmplificationSpark.test.tsx",
          "status": "passed",
          "durationMs": 5.67850199999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx::renders three shared-grid attention rows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx",
          "status": "passed",
          "durationMs": 186.66748899999993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx::renders neutral empty state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx",
          "status": "passed",
          "durationMs": 3.380922999999939
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx::renders agent actions as real links",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx",
          "status": "passed",
          "durationMs": 27.14343400000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx::makes every row span the panel grid tracks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/AttentionPanel.test.tsx",
          "status": "passed",
          "durationMs": 21.275814000000082
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx::renders one row per bot with its metrics",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx",
          "status": "passed",
          "durationMs": 236.86928799999987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx::shows a dash for null cost on a stopped bot",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx",
          "status": "passed",
          "durationMs": 15.52152500000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx::renders the exact column headers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx",
          "status": "passed",
          "durationMs": 36.668188999999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx::renders full-density columns with search",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/BotTable.test.tsx",
          "status": "passed",
          "durationMs": 59.889414000000215
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx::defaults to a solid accent md button and fires onClick",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx",
          "status": "passed",
          "durationMs": 177.431464
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx::applies variant and tone classes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx",
          "status": "passed",
          "durationMs": 3.582994000000099
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx::applies ghost neutral classes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx",
          "status": "passed",
          "durationMs": 2.890626999999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx::merges className, passes through disabled and data-* attributes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx",
          "status": "passed",
          "durationMs": 2.8146679999999833
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx::supports type=submit passthrough",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Button.test.tsx",
          "status": "passed",
          "durationMs": 16.23686799999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx::labels the control and reports the toggled state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx",
          "status": "passed",
          "durationMs": 190.993019
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx::carries its warning as visible text linked by aria-describedby, not colour alone",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx",
          "status": "passed",
          "durationMs": 18.715129999999817
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx::links its error text and marks the field invalid",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Checkbox.test.tsx",
          "status": "passed",
          "durationMs": 25.117093000000068
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CiCoverageBanner.test.tsx::renders headline, action, and tooltip detail",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CiCoverageBanner.test.tsx",
          "status": "passed",
          "durationMs": 43.445053000000144
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ClusterQueue.test.tsx::renders tickets and wedge row",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ClusterQueue.test.tsx",
          "status": "passed",
          "durationMs": 77.18889100000024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ClusterQueue.test.tsx::reorders rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ClusterQueue.test.tsx",
          "status": "passed",
          "durationMs": 193.55430100000012
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders id, text, and the verdict badge",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 42.93095799999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders an em dash when reachedAt is null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 4.802052999999887
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders an em dash when reachedAt is omitted",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 3.8253199999999197
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders the reachedAt date string when present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 4.23371700000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders an evidence subline when evidence is present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 11.612861000000066
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx::renders no subline when evidence is absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/CriterionRow.test.tsx",
          "status": "passed",
          "durationMs": 9.33121200000005
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DataCoveragePanel.test.tsx::renders every gap and its linked spec reference",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DataCoveragePanel.test.tsx",
          "status": "passed",
          "durationMs": 173.0588690000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx::holds abort for five seconds and commits exactly once on expiry",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx",
          "status": "passed",
          "durationMs": 231.7221689999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx::undoes abort without sending a decision",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx",
          "status": "passed",
          "durationMs": 42.52622499999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx::decides non-abort options immediately",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx",
          "status": "passed",
          "durationMs": 40.57944700000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx::labels detail fields missing from the harness",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionDialog.test.tsx",
          "status": "passed",
          "durationMs": 10.693670000000111
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx::renders collapsed row chrome from the mockup",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx",
          "status": "passed",
          "durationMs": 267.4155760000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx::toggles expanded detail when the title row is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx",
          "status": "passed",
          "durationMs": 63.54983200000015
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx::shows expanded sections and fires option / free-text callbacks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx",
          "status": "passed",
          "durationMs": 61.74541999999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx::marks old waiting age and preserves free text in the error state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DecisionRow.test.tsx",
          "status": "passed",
          "durationMs": 11.249847000000045
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx::renders bold and muted lines for a hovered target",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx",
          "status": "passed",
          "durationMs": 225.652646
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx::repositions inside the viewport near the right edge",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx",
          "status": "passed",
          "durationMs": 23.098692000000028
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx::hides when the pointer leaves the target",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DeckTooltip.test.tsx",
          "status": "passed",
          "durationMs": 19.109423000000106
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::uses the default responsive width when size is omitted",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 196.9943699999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::uses the wide responsive width when requested",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 10.248627999999826
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::uses the wide responsive width when draggable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 14.29004800000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::renders the dialog shell, header, body slot, and close control",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 52.547681999999895
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::closes when Escape is pressed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 5.503798000000188
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::moves focus into the drawer when it opens",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 20.530411999999842
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::keeps Tab focus trapped inside the drawer while open",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 41.72807799999987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::restores focus to the trigger element when the drawer closes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 17.956404999999904
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::does not steal focus back to the close control when the parent re-renders with a new onClose identity",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 16.301357000000053
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::closes from the backdrop without clicking through to content behind the drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 6.748331999999891
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::does not close when a pointerdown occurs inside the drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 13.780013000000054
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::moves when its drag handle is used",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 37.04570899999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::moves by a fixed step when the drag handle is nudged with an arrow key",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 42.425570000000334
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::leaves navigation available when used as a persistent workspace",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 6.577072000000044
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx::does not trap Tab inside a non-modal drawer",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 12.976188999999977
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx::renders verified counts, cells, ETA, fix-loop share, and truth note",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx",
          "status": "passed",
          "durationMs": 181.43334400000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx::renders labeled gaps without metric numbers when ETA and fix-loop data are absent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx",
          "status": "passed",
          "durationMs": 6.225395999999819
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx::renders a task-cell alarm ring only when the cell is alarmed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/DistanceToDone.test.tsx",
          "status": "passed",
          "durationMs": 5.989397000000054
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/FilterInput.test.tsx::forwards text changes and exposes a clear affordance only when populated",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/FilterInput.test.tsx",
          "status": "passed",
          "durationMs": 213.58593700000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx::renders log lines in a monospace scrollable body",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx",
          "status": "passed",
          "durationMs": 36.100713999999925
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx::shows loading, empty, and error states honestly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx",
          "status": "passed",
          "durationMs": 159.87844199999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx::invokes onClose and onRefresh",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/HostLogsModal.test.tsx",
          "status": "passed",
          "durationMs": 48.69545799999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IconButton.test.tsx::exposes its label, tooltip, hit target, and fixed 16px icon slot",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IconButton.test.tsx",
          "status": "passed",
          "durationMs": 189.9552510000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::renders the A10 gap without starting a fake clock",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 37.56826099999989
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::renders Working at its threshold boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 4.239581999999928
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::renders No progress at its threshold boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 3.489168999999947
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::renders Watchdog recovering at its threshold boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 2.7467870000000403
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::renders Ended at its threshold boundary",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 3.682320000000118
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx::ticks once per second when watchdog data is present",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/IdleTimer.test.tsx",
          "status": "passed",
          "durationMs": 4.970716999999922
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx::renders title, subtitle, and both actions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx",
          "status": "passed",
          "durationMs": 182.91126500000018
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx::fires the action callback for the clicked button",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx",
          "status": "passed",
          "durationMs": 17.52405200000021
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx::maps dot=red to bg-danger",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx",
          "status": "passed",
          "durationMs": 3.711676000000125
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx::maps dot=amber to bg-warning",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx",
          "status": "passed",
          "durationMs": 2.5816399999998794
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx::maps dot=blue to bg-accent",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/InboxItem.test.tsx",
          "status": "passed",
          "durationMs": 3.201520999999957
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx::formats a *Ms tile value as a duration",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx",
          "status": "passed",
          "durationMs": 33.55783199999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx::renders a non-Ms tile value as a plain number",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx",
          "status": "passed",
          "durationMs": 8.732320000000072
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx::renders every real tile from the forensics fixture without crashing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KpiTile.test.tsx",
          "status": "passed",
          "durationMs": 15.755443999999898
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx::renders every row label and value",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx",
          "status": "passed",
          "durationMs": 47.88874399999986
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx::applies the err intent color to a failing row",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx",
          "status": "passed",
          "durationMs": 5.0109879999999976
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx::defaults to neutral color when intent is omitted",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/KvPanel.test.tsx",
          "status": "passed",
          "durationMs": 4.612409000000071
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx::maps every returned job to one segment without hook-order violations",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx",
          "status": "passed",
          "durationMs": 37.09043200000019
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx::stripes only the infra-classified job when jobs are complete",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx",
          "status": "passed",
          "durationMs": 19.895215000000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx::keeps returned lanes visible under jobs incomplete and suppresses striping",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx",
          "status": "passed",
          "durationMs": 10.77206000000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx::renders a named empty lane state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneBar.test.tsx",
          "status": "passed",
          "durationMs": 3.2765699999999924
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::attaches exactly one tooltip target with job name and duration",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 33.518107999999984
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::uses the semantic success lane color",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 5.053844000000026
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::uses the semantic failure lane color",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 3.1825639999999566
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::uses the semantic running lane color",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 3.433672000000115
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::uses the semantic queued lane color",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 3.975926999999956
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx::suppresses infra striping when jobs are incomplete",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LaneSegment.test.tsx",
          "status": "passed",
          "durationMs": 4.588567000000012
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::renders percent and cap ETA for a warn-tier account",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 44.14511500000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::renders percent only when there is no cap ETA",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 5.401534999999967
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::uses the warning fill above warnAt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 4.0550479999999425
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::uses the success fill below warnAt",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 2.7892950000000383
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::renders a dash when percent is null and status is ok",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 4.385274999999865
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx::renders broken status when percent is null and auth failed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitMeter.test.tsx",
          "status": "passed",
          "durationMs": 2.421101000000135
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitsAccountsTable.test.tsx::renders account labels from platform DataTable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitsAccountsTable.test.tsx",
          "status": "passed",
          "durationMs": 133.25996299999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitsAccountsTable.test.tsx::renders usage summary for warn-tier rows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LimitsAccountsTable.test.tsx",
          "status": "passed",
          "durationMs": 8.56438100000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LinkButton.test.tsx::renders an accent link with optional className and data-testid",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LinkButton.test.tsx",
          "status": "passed",
          "durationMs": 46.14013900000009
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LinkButton.test.tsx::renders an accent button with disabled support",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LinkButton.test.tsx",
          "status": "passed",
          "durationMs": 177.04009100000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LiveDuration.test.tsx::ticks elapsed time once per minute and clears its interval",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LiveDuration.test.tsx",
          "status": "passed",
          "durationMs": 45.929341999999906
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LiveDuration.test.tsx::renders an honest coverage gap when start time is unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/LiveDuration.test.tsx",
          "status": "passed",
          "durationMs": 4.443777999999838
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::renders host name, load, and capability probes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 371.4220989999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::renders enrolling state for a joining host",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 9.366611000000148
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::counts every placement path in running, not just controller-placed jobs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 12.661297999999988
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::adds seats the session ledger never recorded to the sessions count",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 7.049274999999852
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::marks an unpublished work count unobserved rather than rendering it as zero",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 9.973736999999801
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::reports a sessions count missing one of its two sources as a floor",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 8.830968000000212
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::says a host has no 24-hour history instead of showing a bare dash",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 9.974247999999989
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::states why a red capability probe is red, in the chip tooltip and inline",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 7.54929600000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::names the telemetry gap instead of a bare dash when a host reports no load",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 9.897727000000032
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::shows a real load for a host still enrolling rather than suppressing it",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 5.315490999999838
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::marks workstation spill state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 8.515527999999904
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::shows the config parity verdict with the time it was probed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 8.540031999999883
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx::says so when no parity verdict was recorded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineCard.test.tsx",
          "status": "passed",
          "durationMs": 6.69030900000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::shows per-core load, memory, network, and disk for a healthy host",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 107.2142160000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::shows critical temperature banner only when pkg >= crit",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 44.76549100000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::invokes onAction for enabled offload buttons",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 326.93688999999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::disables host-scoped actions without a machine and blocks while pending",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 175.4063070000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::enables host-logs without treating it as host-scoped offload",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 69.97743900000023
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::renders accessible action errors adjacent to the action group",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 32.280071000000135
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::reorders disk rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 68.6533730000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::shows stall, tmpfs and per-slice facts when the box reported them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 19.67346699999962
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::reports the seats it can see as a floor, and names the source it is missing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 31.830463000000236
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::says no source answered rather than reporting zero sessions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 58.18512700000065
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::says the facts are missing rather than showing zeros when the host was never sampled",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 25.648145000000113
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx::distinguishes a box with no agent slices from a box with no data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MachineDetailModal.test.tsx",
          "status": "passed",
          "durationMs": 12.748622000000069
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapCanvas.test.tsx::renders nodes, inspector for the selected node, and SVG edges",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapCanvas.test.tsx",
          "status": "passed",
          "durationMs": 216.33490000000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapCanvas.test.tsx::switches inspector content when another node is selected",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapCanvas.test.tsx",
          "status": "passed",
          "durationMs": 34.31095800000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapNode.test.tsx::renders title, chips, and pulse state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapNode.test.tsx",
          "status": "passed",
          "durationMs": 45.10048300000017
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapNode.test.tsx::calls onSelect with the node id when clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/MapNode.test.tsx",
          "status": "passed",
          "durationMs": 158.14644900000008
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx::renders state machine, kv rows, probes, and selected host label",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx",
          "status": "passed",
          "durationMs": 295.9801060000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx::disables host-scoped actions until a host is selected",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx",
          "status": "passed",
          "durationMs": 47.015691999999945
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx::disables host-scoped actions for a host the registry marks unreachable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx",
          "status": "passed",
          "durationMs": 22.065149999999903
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx::invokes onAction and blocks duplicate submission while pending",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx",
          "status": "passed",
          "durationMs": 57.53537400000005
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx::disables quarantine when required command is absent and surfaces action errors",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/OffloadControl.test.tsx",
          "status": "passed",
          "durationMs": 33.934275999999954
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx::renders all six bucket labels from the real attribution payload",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx",
          "status": "passed",
          "durationMs": 132.29909699999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx::sorts rows by totalMs descending, with the largest bucket at 100% bar width",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx",
          "status": "passed",
          "durationMs": 155.58688599999982
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx::shows duration and share-of-total percent for each bucket",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PhaseBars.test.tsx",
          "status": "passed",
          "durationMs": 13.695537999999942
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx::renders verified run chips and absolute-time tooltip data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx",
          "status": "passed",
          "durationMs": 171.12127400000008
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx::omits absent sequence and zero active-agent values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx",
          "status": "passed",
          "durationMs": 6.8147630000000845
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx::selects from the row button while Open remains navigation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx",
          "status": "passed",
          "durationMs": 30.807186999999885
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx::omits the timestamp instead of crashing when updatedAtMs is not finite",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanRunListRow.test.tsx",
          "status": "passed",
          "durationMs": 5.562151000000085
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx::renders every plan column and searchable content",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx",
          "status": "passed",
          "durationMs": 332.91805499999964
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx::reorders rows from a sortable header using the tri-state cycle",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx",
          "status": "passed",
          "durationMs": 126.73630700000012
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx::pre-sorts active plans first and is stable by source order",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx",
          "status": "passed",
          "durationMs": 13.34900800000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx::keeps failed actions visible while needs-you uses its shared status category",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTable.test.tsx",
          "status": "passed",
          "durationMs": 62.184972999999445
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::opens from row click while Open remains navigation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 258.05544499999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::shows running duration only for running rows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 14.900878999999804
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::shows a collapsed-attempts badge only when a plan has relaunches",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 16.785533999999643
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::renders no attempts badge for a single-launch plan",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 10.223656000000119
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::renders a stalled indicator when the row is alarmed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 12.532901999999922
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::omits the stalled indicator when the row is not alarmed",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 9.424446999999418
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::renders the elapsed activity duration when a running row carries a start time",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 18.05376200000046
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::omits the duplicate Open run action and fires abandon from the trash control",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 72.67210100000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::uses the shared failed category for row actions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 56.239746999999625
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::does not expose failed actions when needs-you is the rendered category",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 42.88571800000045
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::disables unresolved harness actions with the pinned gap tooltip",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 43.724247999999534
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx::folds more than two actions into a menu with abandon last",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PlanTableRow.test.tsx",
          "status": "passed",
          "durationMs": 84.85104500000034
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::sorts by age descending by default and toggles deterministically",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 353.0825249999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::renders a Repo column for all scope and omits it for single-repo scope",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 246.69722400000046
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::opens the right checks in a single detail drawer for duplicate PR numbers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 72.57117199999993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::renders conflict, train membership, stale, and unknown states honestly",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 24.73014400000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::keeps returned checks visible but suppresses passing rollups when checks are incomplete",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 48.23286899999948
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::renders complete failed, pending, and passing check rollups",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 37.2323150000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::labels every incomplete repository while retaining its rows",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 37.394326999999976
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::resets selection and sorts deterministically when a PR head OID changes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 119.31173899999976
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx::distinguishes complete empty scope from incomplete empty scope",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/PrQueueTable.test.tsx",
          "status": "passed",
          "durationMs": 3.7566859999997178
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx::renders non-zero metrics, severity stripe, activity, and expanded children",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx",
          "status": "passed",
          "durationMs": 184.841232
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx::omits zero chips, handles missing activity, and toggles",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx",
          "status": "passed",
          "durationMs": 28.651930999999877
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx::reveals children when its controlled expanded state changes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ProjectGroupRow.test.tsx",
          "status": "passed",
          "durationMs": 39.18286400000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RateLimitDialog.test.tsx::renders a healthy wrapper as read-only",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RateLimitDialog.test.tsx",
          "status": "passed",
          "durationMs": 43.26941399999987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RateLimitDialog.test.tsx::renders limited scope and resolves wait, retry, and switch payloads",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RateLimitDialog.test.tsx",
          "status": "passed",
          "durationMs": 332.08868200000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RemoteJobsTable.test.tsx::renders job rows with stage and rc",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RemoteJobsTable.test.tsx",
          "status": "passed",
          "durationMs": 56.455277000000024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RemoteJobsTable.test.tsx::reorders rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RemoteJobsTable.test.tsx",
          "status": "passed",
          "durationMs": 180.0533690000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx::selects All by default and scopes it to null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx",
          "status": "passed",
          "durationMs": 225.10730000000012
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx::marks and scopes only the exact selected repository",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx",
          "status": "passed",
          "durationMs": 61.415001000000075
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx::renders All first and preserves repository input order",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx",
          "status": "passed",
          "durationMs": 23.64632000000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx::renders a named gap state for an empty repository list",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiStrip.test.tsx",
          "status": "passed",
          "durationMs": 16.07764199999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders real metrics and scopes to its repository",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 270.5660929999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::does not mark the 30-minute boundary as act-red",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 7.061480999999958
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders the prsComplete gap independently",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 16.96003900000005
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders the queueComplete gap independently",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 4.073360000000093
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders the refsComplete gap independently",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 6.75899400000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders the trainRunsComplete gap independently",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 3.650570000000016
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::suppresses operator warnings when poll rotation serves cached data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 3.629713000000038
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::preserves simultaneous completeness gaps with actionable copy",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 12.897273999999925
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx::renders labeled gaps for unknown metrics instead of zeroes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RepoCiTile.test.tsx",
          "status": "passed",
          "durationMs": 24.548246999999947
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx::disables unsupported controls with an explicit capability reason",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx",
          "status": "passed",
          "durationMs": 251.88695200000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx::invokes supported pause and kill controls",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx",
          "status": "passed",
          "durationMs": 50.924301000000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx::cancels a pending kill confirmation with Escape",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx",
          "status": "passed",
          "durationMs": 45.01896899999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx::omits a missing update timestamp without fabricating a value",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunCommandBar.test.tsx",
          "status": "passed",
          "durationMs": 7.271187999999938
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx::renders a landed X/Y summary for a done run",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx",
          "status": "passed",
          "durationMs": 80.71580999999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx::renders a crashed outcome in the danger color with a cap marker",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx",
          "status": "passed",
          "durationMs": 13.575325999999905
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx::attributes each segment to its own run by time range, not to every run",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunLanes.test.tsx",
          "status": "passed",
          "durationMs": 7.13299300000017
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx::renders one row per run with every real payload field",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx",
          "status": "passed",
          "durationMs": 67.17915300000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx::colors the status dot green for done and red for crash",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx",
          "status": "passed",
          "durationMs": 14.579107999999906
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx::renders the exact column headers",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx",
          "status": "passed",
          "durationMs": 94.0184819999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx::reorders rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunTable.test.tsx",
          "status": "passed",
          "durationMs": 252.41041899999982
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::renders runner registration scope when provided",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 43.740219000000025
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::renders a busy runner current job and repository",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 163.75016899999991
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::renders an idle runner without a current assignment",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 34.97571400000015
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::renders explicit unknown and suppresses unverified current assignment values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 23.972663999999895
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::shows aggregate occupancy and head-of-line saturation for a non-empty all-busy online fleet",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 16.759111000000075
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::does not show saturation at the exact fifteen-minute threshold",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 15.937607000000071
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::labels incomplete runner data, hides aggregate occupancy, and suppresses saturation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 15.258380999999872
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::renders a complete empty fleet without saturation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 6.736504999999852
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx::never renders saturation for an all-offline fleet with an old queue",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/RunnerFleetStrip.test.tsx",
          "status": "passed",
          "durationMs": 4.234196999999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx::renders value/max and an up trend",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx",
          "status": "passed",
          "durationMs": 51.015200999999934
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx::sizes the progress bar fill to value/max",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx",
          "status": "passed",
          "durationMs": 5.887640999999803
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx::renders a flat trend in the danger color",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx",
          "status": "passed",
          "durationMs": 3.7600689999999304
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx::honors a custom bar color class",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ScoreCard.test.tsx",
          "status": "passed",
          "durationMs": 3.926348000000189
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::renders the title and children",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 46.52438499999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::hides the children when collapsed and reports aria-expanded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 287.42963800000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::shows the children when expanded",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 23.69911400000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::calls onToggle when the title button is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 17.652406000000155
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::keeps the title as plain text without collapsible props",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 3.31269199999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::renders a link action when href is given",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 29.33968200000004
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::renders a button action and fires onClick when no href is given",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 14.218601000000035
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx::renders a titleBadge inline with the title",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionCard.test.tsx",
          "status": "passed",
          "durationMs": 2.22233499999993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx::renders the title and subtitle",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx",
          "status": "passed",
          "durationMs": 42.61955000000012
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx::renders a link action when href is given",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx",
          "status": "passed",
          "durationMs": 123.38065099999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx::renders a button action and fires onClick when no href is given",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx",
          "status": "passed",
          "durationMs": 22.869097999999894
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx::renders a titleBadge inline with the title",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SectionHeading.test.tsx",
          "status": "passed",
          "durationMs": 6.332940999999892
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SegmentDetailDrawer.test.tsx::renders when, who, note, evidence, and the agent link",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SegmentDetailDrawer.test.tsx",
          "status": "passed",
          "durationMs": 178.90425900000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx::labels the control and reports the chosen value",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx",
          "status": "passed",
          "durationMs": 49.67259399999989
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx::keeps unavailable options visible but unselectable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx",
          "status": "passed",
          "durationMs": 133.6978190000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx::renders a disabled placeholder when no value is chosen yet",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx",
          "status": "passed",
          "durationMs": 23.912968999999975
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx::links its error text and marks the field invalid",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/Select.test.tsx",
          "status": "passed",
          "durationMs": 5.972148000000061
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx::renders aligned settings columns without pills",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx",
          "status": "passed",
          "durationMs": 286.28682200000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx::expands all five layers inline and saves a run override",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx",
          "status": "passed",
          "durationMs": 171.05080999999973
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx::renders immutable layers without inputs",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx",
          "status": "passed",
          "durationMs": 44.025408999999854
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx::renders the B5 gap state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx",
          "status": "passed",
          "durationMs": 2.4880910000001677
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx::reorders rows when a sortable header is clicked",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SettingsTable.test.tsx",
          "status": "passed",
          "durationMs": 99.1572100000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx::renders nothing when the adapter status is not stale",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx",
          "status": "passed",
          "durationMs": 14.276896000000079
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx::renders a stale pill with the age since lastSuccess when stale",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx",
          "status": "passed",
          "durationMs": 20.059562000000142
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx::renders bare \"stale\" when lastSuccess is unknown",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StaleBadge.test.tsx",
          "status": "passed",
          "durationMs": 3.1024159999999483
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StatusChip.test.tsx::uses one category mapping for status labels and styling",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/StatusChip.test.tsx",
          "status": "passed",
          "durationMs": 31.64935700000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::positions segments and the NOW playhead on the shared absolute clock",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 72.71989600000006
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::constrains a condition band to its declared lanes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 20.594630000000052
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::reports zoom and segment interactions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 179.28213500000015
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::uses the canonical status category to color status-bearing segments",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 8.73496399999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::renders a time axis beneath the plot column with wall-clock labels",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 44.04768100000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::keeps the NOW playhead scoped to lane rows, not the time axis",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 13.221776999999975
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::labels short spans with second precision",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 6.2425080000000435
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::labels multi-day spans with calendar context",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 7.567851000000019
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::does not render a time axis when lanes have no temporal data",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 6.396343999999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::shares one horizontal overflow container across lanes and the axis",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 13.978848999999855
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::exposes ISO UTC tooltips on axis ticks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 7.0654890000000705
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::exposes exact ISO UTC timestamps in the screen-reader range",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 12.804262999999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::anchors axis endpoint epochs to fit bounds for a completed trace",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 11.942266000000018
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::anchors axis endpoint epochs to the last-hour window",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 10.651839999999993
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::anchors axis endpoint epochs to the live window",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 9.910631000000194
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::updates axis endpoint epochs when zoom changes on a running trace",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 27.551198000000113
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::anchors the NOW label inward at the end bound and on the start half of the plot",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 20.92264299999988
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::does not render the NOW playhead when nowMs is before the displayed interval",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 9.946555999999873
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::does not render the NOW playhead when nowMs is after the displayed interval",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 10.266153999999915
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx::disables Follow live and coerces zoom=live to fit on a completed trace",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/SwimlaneTrace.test.tsx",
          "status": "passed",
          "durationMs": 51.504969000000074
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::renders the captured screen",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 46.57669099999998
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::shows the reason instead of an empty pane when unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 5.663835000000063
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::says it is connecting before the first capture",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 4.1576840000000175
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::sends typed text followed by Enter",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 176.98506799999996
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::sends Enter alone when the composer is empty",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 13.169391000000132
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::sends a control key from its button",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 17.26892399999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::disables input when the session is not attached",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 23.40634900000009
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::disables input while a send is in flight",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 22.964591000000155
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx::omits the capture note when there is nothing to report",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TerminalView.test.tsx",
          "status": "passed",
          "durationMs": 14.097663000000011
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx::labels the control and reports raw values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx",
          "status": "passed",
          "durationMs": 54.240980000000036
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx::honours a hidden label and a disabled state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx",
          "status": "passed",
          "durationMs": 195.62618500000008
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx::links its error text and marks the field invalid",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextArea.test.tsx",
          "status": "passed",
          "durationMs": 8.022711000000072
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx::labels the control and reports raw values",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx",
          "status": "passed",
          "durationMs": 55.48056999999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx::keeps a hidden label reachable by accessible name",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx",
          "status": "passed",
          "durationMs": 166.6033510000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx::links hint and error text through aria-describedby and marks the field invalid",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx",
          "status": "passed",
          "durationMs": 7.425950999999941
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx::omits aria-describedby and aria-invalid when there is nothing to describe",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx",
          "status": "passed",
          "durationMs": 3.225830999999971
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx::renders a trailing affordance beside the control",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TextField.test.tsx",
          "status": "passed",
          "durationMs": 17.234335999999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::builds member links exclusively from the train repository",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 238.97782900000016
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::reruns a complete failed gate with exact string mutation args",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 45.25795599999992
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::cancels a complete gating gate",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 17.327961000000187
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::cancels a complete rerunning gate",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 17.35821799999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::opens a valid GitHub pull URL without invoking a mutation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 27.277778000000126
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::omits Open for invalid URL http://github.com/alexcodeplace/multideal/pull/901",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 12.979456000000027
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::omits Open for invalid URL https://user:secret@github.com/alexcodeplace/multideal/pull/901",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 17.866068999999925
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::omits Open for invalid URL https://github.example/alexcodeplace/multideal/pull/901",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 7.283350999999811
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::omits Open for invalid URL not a URL",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 16.113157
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders the refsComplete gap and suppresses every action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 5.114271000000144
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders the prsComplete gap and suppresses every action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 4.059727000000066
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders the trainRunsComplete gap and suppresses every action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 3.813519000000042
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders the trainsComplete gap and suppresses every action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 4.50584600000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::uses completeness precedence over a stale state gap",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 3.9870469999998477
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders nullable state gap and deterministic blocking line",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 8.328952999999956
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::keeps incomplete jobs visible but suppresses blocking, classification, striping, and recommendation claims",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 16.46513700000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::does not recommend an eligible rerun without exact infra classification",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 16.202952999999752
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::labels null complete-job classification as unknown",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 4.281442999999854
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx::renders actions independently from one another",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainCard.test.tsx",
          "status": "passed",
          "durationMs": 8.93851900000027
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::uses the canonical total order and excludes merged trains",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 94.58054300000003
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::uses repo ascending only after all train keys tie",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 10.342237999999952
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::renders each scoped repository completeness gap even with returned trains",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 40.520274999999856
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::never renders the complete empty state for a zero-return truncated-ref repository",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 4.3393469999998615
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::renders the exact complete empty state",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 3.5673910000000433
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::renders exactly one tooltip layer per rail composition",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 8.821414999999888
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx::keeps duplicate PR numbers scoped to each train repo for links and mutations",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/TrainRail.test.tsx",
          "status": "passed",
          "durationMs": 219.48366199999987
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx::dismisses a plain toast after 3.4 seconds",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx",
          "status": "passed",
          "durationMs": 53.07301399999983
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx::ticks the countdown and commits only on expiry",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx",
          "status": "passed",
          "durationMs": 190.78225199999997
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx::dismisses and restores through undo without committing",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx",
          "status": "passed",
          "durationMs": 22.466920999999957
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx::commits a pending action before replacing it",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx",
          "status": "passed",
          "durationMs": 5.908200000000079
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx::enforces the five-second minimum",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/UndoToast.test.tsx",
          "status": "passed",
          "durationMs": 18.78680899999995
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx::renders the uppercased label for a verdict",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx",
          "status": "passed",
          "durationMs": 44.915346
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx::carries the danger token class for a broken verdict",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx",
          "status": "passed",
          "durationMs": 4.153043000000025
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx::distinguishes works from broken by color class",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/VerdictBadge.test.tsx",
          "status": "passed",
          "durationMs": 4.956077999999934
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx::renders healthy wrappers and opens the selected wrapper",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx",
          "status": "passed",
          "durationMs": 253.60526700000014
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx::renders and ticks a real limited-wrapper countdown",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx",
          "status": "passed",
          "durationMs": 36.5464629999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx::renders no countdown when B7 data is unavailable",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/WrapperCapacity.test.tsx",
          "status": "passed",
          "durationMs": 28.483735000000024
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts::suppresses operator warnings for poll-budget rotation",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts",
          "status": "passed",
          "durationMs": 2.912225000000035
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts::does not surface run-history coverage gaps",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts",
          "status": "passed",
          "durationMs": 0.6370959999999286
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts::prioritizes train ref gaps before PR gaps",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/ci-coverage.test.ts",
          "status": "passed",
          "durationMs": 0.3301859999999124
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats 61ms as 61ms",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 2.091989999999896
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats 999ms as 999ms",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.37584800000013274
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats 1000ms as 1s",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.2200599999998758
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats 45000ms as 45s",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.30586799999991854
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats just now",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.38510999999994056
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats minutes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.18310600000017985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats hours",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.14296799999988252
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats days",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.1265960000000632
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats future minutes",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.49977100000000974
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats future hours",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.2114689999998518
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats future days",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.2566340000000764
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::sorts missing values last in both directions",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.29320400000005975
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::shows seconds for short spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.454578999999967
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::shows hours and minutes for sub-day spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.15332999999986896
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::shows month and day for multi-day spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.14465099999983977
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::formats UTC midnight as 00:xx, not 24:xx",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.18661400000019057
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::shows seconds for >=60s spans when tick step is under one minute",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.15966999999977816
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::keeps adjacent labels distinct across 60–120s spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 1.276506000000154
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::includes date context when a sub-day span crosses UTC midnight",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.26915600000006634
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::includes year when a span crosses a UTC calendar year",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.19837200000006305
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::shows millisecond precision for sub-second spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.2629239999998845
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::derives ticks from start and end bounds",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 1.0689930000000913
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::appends the exact end bound when span is not divisible by the step",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.4317980000000716
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::suppresses interior ticks within one step of start or end",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.6906260000000657
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::steps across long spans without exceeding maxTicks",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.3158499999999549
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::honors maxTicks for spans longer than 49 days",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.29296100000010483
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::aligns interior ticks to UTC wall-clock step boundaries",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.2958560000001853
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::labels cross-midnight sub-day spans with date context",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.22050399999989168
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::labels sub-second spans with distinct millisecond endpoints",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.3102930000000015
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::includes year on date-bearing labels when span crosses a UTC calendar year",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.26016500000014275
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts::selects oversized steps in O(1) time for very long spans",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/format.test.ts",
          "status": "passed",
          "durationMs": 0.3581340000000637
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts::assigns 12 distinct hues on the first rotation, each a wheel-unique hue",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts",
          "status": "passed",
          "durationMs": 2.520150000000058
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts::keeps consecutively-assigned hues at least 2 wheel steps apart",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts",
          "status": "passed",
          "durationMs": 1.060079000000087
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts::shifts lightness/chroma on the second rotation by >= 20 ΔE vs the same hue in rotation 0",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts",
          "status": "passed",
          "durationMs": 1.491373000000067
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts::uses a manual override from collector config passthrough instead of the wheel",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts",
          "status": "passed",
          "durationMs": 0.9108719999999266
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts::assigns colors positionally, honoring per-id overrides",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/project-colors.test.ts",
          "status": "passed",
          "durationMs": 0.5266159999998763
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps wrapper-engine-down to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 2.8955069999999523
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps gate-failed to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.423279999999977
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps review-failed to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.23571800000013354
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps provider-quota to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.8239160000000538
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps unknown-class to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.33308199999987664
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::maps undefined to its honest action",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.27454099999999926
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts::never maps non-wrapper failures to retry",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/resolve-action.test.ts",
          "status": "passed",
          "durationMs": 0.822016000000076
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::stays idle and never fetches when url is null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 34.48675400000002
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::parses split multiline events and ignores heartbeat comments",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 63.62315899999999
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::parses multiple frames delivered in one chunk",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 62.78955999999994
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::terminates malformed data frames before later events or reconnects",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 79.86743200000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::resumes from the last delivered opaque ID and suppresses replayed events",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 59.58458899999982
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::reconnects after the exact fixture frame closes and resumes its opaque cursor",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 53.1544550000001
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::reconnects after the stream ends, until unmounted",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 73.55665899999985
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::does not reconnect after consumer closes the stream with url null",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 27.877322000000277
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::closes an oversized delimiter-free frame without reconnecting",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 80.84897600000022
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::accepts a frame exactly at the byte bound",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 53.01294000000007
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::closes an oversized delimited frame before parsing or delivery",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 75.28820900000028
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts::aborts the in-flight request on unmount",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/useSseStream.test.ts",
          "status": "passed",
          "durationMs": 1.3406209999998282
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::splits plain text into one segment per line",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 3.814781000000039
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::applies foreground colour as a palette index",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 1.1744779999999082
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::maps bright colours into the upper half of the palette",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.4660140000000865
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::falls back to the default colour for palette entries with no token",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.620185999999876
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::carries attributes and clears them on reset",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.4635430000000724
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::keeps style across a line break, as a terminal does",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.29476499999987027
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::strips non-SGR control sequences instead of printing them",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.29808299999990595
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::merges adjacent segments that share a style",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.2563749999999345
        },
        {
          "name": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts::returns an empty row for an empty line",
          "file": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/packages/deck-ui/src/internal/ansi-screen.test.ts",
          "status": "passed",
          "durationMs": 0.49617800000009993
        }
      ],
      "testCounts": {
        "passed": 402,
        "failed": 0,
        "skipped": 0,
        "total": 402
      }
    },
    "workspace:spine": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "bun-junit",
      "tests": [
        {
          "name": "job report requires mirror basename and rejects id",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "finished job report requires rc and finishedAt",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "config report requires override on valid and invalid",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "parseReportInput routes by stage union",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "honors flag-off with zero network calls",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "swallows controller delivery failure",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "posts to the expected endpoints when enabled",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "parse-config writes one compact success line",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "parse-config exits 65 for a leftover hosts key",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "parse-config exits 65 for invalid shape",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "report accepts stdin-only payloads and exits 0 on delivery failure",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "report exits 64 for invalid stdin",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "host-eligible writes exact verdict line",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "host-eligible exits 64 for missing args",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "fails open when obey flag is unset",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "propagates controller denials and scopes by command",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "caches verdicts for up to five seconds",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "fails open when controller is unreachable",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects unknown keys",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "fills every pinned default when fields are omitted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "preserves validated overrides",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "preserves validated k3s overrides",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects malformed k3s CA fingerprints",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reports the remote job timeout without enforcing it",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "refuses a leftover hosts key",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "refuses a legacy host key",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "leaves hosts empty for a tuning-only config",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "an enabled config is live once the caller injects fleet hosts",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "the fleet declaration is the host source remote-build injects",
          "status": "passed",
          "durationMs": 0
        }
      ],
      "testCounts": {
        "passed": 29,
        "failed": 0,
        "skipped": 0,
        "total": 29
      }
    },
    "workspace:modules/buildbox": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "structured-buildbox-records",
      "startedAt": "2026-08-12T02:41:48.082Z",
      "endedAt": "2026-08-12T02:43:46.290Z",
      "exitStatus": 0,
      "records": [
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:build-cache-prune.test.sh",
          "suitePath": "modules/buildbox/test/build-cache-prune.test.sh",
          "sourceDigest": "f755db9661143c8caeda4b7acfc4d3b5437f6085fb2467bc7f7c1a123e478aa9",
          "argv": [
            "bash",
            "modules/buildbox/test/build-cache-prune.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:41:48.082Z",
          "endedAt": "2026-08-12T02:41:48.230Z",
          "durationMs": 148,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "27e08f0e804ab4a392599f72a715908e5c9b0e9d3667376546cdf3253269f973"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:claude-home-settings.test.sh",
          "suitePath": "modules/buildbox/test/claude-home-settings.test.sh",
          "sourceDigest": "36054d98b40c9880b263bd89e20e81ba97c6c21e9222a89a7efe624f2c3f0e5d",
          "argv": [
            "bash",
            "modules/buildbox/test/claude-home-settings.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:41:48.805Z",
          "endedAt": "2026-08-12T02:41:49.494Z",
          "durationMs": 689,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "384705d8173c7354ea1cde010273f6cda3cef627ed55713439632b9a4c02b0ba"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:claude-parity.test.sh",
          "suitePath": "modules/buildbox/test/claude-parity.test.sh",
          "sourceDigest": "c0d801167b446bad4feba01bbaea3322415615b9e59df9ba0bcde0dd2e7b7614",
          "argv": [
            "bash",
            "modules/buildbox/test/claude-parity.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:41:50.071Z",
          "endedAt": "2026-08-12T02:41:51.206Z",
          "durationMs": 1135,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "a114f5b6a7570416a849b61de66166a8b6339b77f78c155b8b172b64e326c364"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:deadman-branches.test.sh",
          "suitePath": "modules/buildbox/test/deadman-branches.test.sh",
          "sourceDigest": "848695a3a91ec316e03d74309f49267075a0105ee729dde1aa76da3b702b0273",
          "argv": [
            "bash",
            "modules/buildbox/test/deadman-branches.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:41:51.814Z",
          "endedAt": "2026-08-12T02:41:52.369Z",
          "durationMs": 555,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "d0d6f1875235d799cfcc79bd6471c665c23e51c19bc0fc932cb39f46ce1ef116"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:devtools.test.sh",
          "suitePath": "modules/buildbox/test/devtools.test.sh",
          "sourceDigest": "c5a38eee6c7ba596d40750696df8cfa46685e14d17b3b77ceaa41348e13e4678",
          "argv": [
            "bash",
            "modules/buildbox/test/devtools.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:41:53.109Z",
          "endedAt": "2026-08-12T02:42:26.027Z",
          "durationMs": 32918,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "778b6deab21ac14818f36216089959058b9e59981c4b50c3e327cbd259e8d0a1"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:fleet-guard.test.sh",
          "suitePath": "modules/buildbox/test/fleet-guard.test.sh",
          "sourceDigest": "9cc0c945f39e6949ab6fe99f79cabeccf927ca04f1122bd33e58ad142a971f90",
          "argv": [
            "bash",
            "modules/buildbox/test/fleet-guard.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:42:26.394Z",
          "endedAt": "2026-08-12T02:42:26.590Z",
          "durationMs": 196,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "38fc3f241b00d128a8f3e969e7ce6439b66e45241556998e9d6df9a5e6b71d41"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:is-lab-host.test.sh",
          "suitePath": "modules/buildbox/test/is-lab-host.test.sh",
          "sourceDigest": "6445c6c3635444bfc8bb393efd2b79bdd9f8491e20038a99f8f25d3860b9f7fd",
          "argv": [
            "bash",
            "modules/buildbox/test/is-lab-host.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:42:26.956Z",
          "endedAt": "2026-08-12T02:42:26.994Z",
          "durationMs": 38,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "2fbc906833ce13910137260595636c4e89f381b8fda3ecc5c4faf96fadcfa06d"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:journal-cap.test.sh",
          "suitePath": "modules/buildbox/test/journal-cap.test.sh",
          "sourceDigest": "f01bda67e7975ec7cba6a0da813a2d44bb6284eaec47d0b9c72dac4b3752c3bf",
          "argv": [
            "bash",
            "modules/buildbox/test/journal-cap.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:42:27.366Z",
          "endedAt": "2026-08-12T02:42:27.395Z",
          "durationMs": 29,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "4a28e23a07e19be8c81686bb51de6d1f080f53c52117f44421cbd2f9dbe1cdf6"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:parity-converge.test.sh",
          "suitePath": "modules/buildbox/test/parity-converge.test.sh",
          "sourceDigest": "6de3b0c246964eb825ffe2016da8b0848a212fcc8966210ef2a6c3432cc4503b",
          "argv": [
            "bash",
            "modules/buildbox/test/parity-converge.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:42:27.857Z",
          "endedAt": "2026-08-12T02:42:28.139Z",
          "durationMs": 282,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "daa2f88cfce1c88aca1b5988c993503859b78e6b8e333e54f8c03514a83f3604"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:reboot-wait.test.sh",
          "suitePath": "modules/buildbox/test/reboot-wait.test.sh",
          "sourceDigest": "0766ac6261292ecdfea51227d1a8b95a70ef77e9cec95f1d96e9feb326ab10f0",
          "argv": [
            "bash",
            "modules/buildbox/test/reboot-wait.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:42:28.516Z",
          "endedAt": "2026-08-12T02:43:08.553Z",
          "durationMs": 40037,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "610beb92a805f1acf85891b5509bbf4487c9b865a5da7baa7675a5ed94347fca"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:runner.test.sh",
          "suitePath": "modules/buildbox/test/runner.test.sh",
          "sourceDigest": "a4235cfdb7e737bd396d2ad4a6282193f598b17ce9f76f01f9542eaba1d7128f",
          "argv": [
            "bash",
            "modules/buildbox/test/runner.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:43:08.941Z",
          "endedAt": "2026-08-12T02:43:09.009Z",
          "durationMs": 68,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "995d1f6085f414915caa74f923747fb234972d76dd874e63856a12261589df9e"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:second-disk.test.sh",
          "suitePath": "modules/buildbox/test/second-disk.test.sh",
          "sourceDigest": "44c9c7a3648d8db2c9826ab851b6af686d3146cd3f4d22dfe825d4d085e8aca1",
          "argv": [
            "bash",
            "modules/buildbox/test/second-disk.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:43:09.484Z",
          "endedAt": "2026-08-12T02:43:09.714Z",
          "durationMs": 230,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "d38ad4d8e1b43c8dab02d86f69fde090cca3e0ca2c924718357dc8ed04f56408"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:sshd-access-lock.test.sh",
          "suitePath": "modules/buildbox/test/sshd-access-lock.test.sh",
          "sourceDigest": "032beffcf58fd3152b6350650d7516c9d8d279885c2f447837c019ed2faa5324",
          "argv": [
            "bash",
            "modules/buildbox/test/sshd-access-lock.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:43:10.222Z",
          "endedAt": "2026-08-12T02:43:11.239Z",
          "durationMs": 1017,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "5532bfebc0db4518af92ab176aa8b1d42582013abebc4147fabeba3a564c3606"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:telemetry.test.sh",
          "suitePath": "modules/buildbox/test/telemetry.test.sh",
          "sourceDigest": "e35e8664fc10eb3b3550fd59376df54d27869009e44d7375290aca5d39e1620f",
          "argv": [
            "bash",
            "modules/buildbox/test/telemetry.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:43:11.638Z",
          "endedAt": "2026-08-12T02:43:13.060Z",
          "durationMs": 1422,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "d4fdba79ae68d4f708dfc9b666387485b264e90432fbc7803fbbac3bd94b76d4"
        },
        {
          "kind": "buildbox-suite",
          "caller": "workspace",
          "id": "buildbox:vendor.test.sh",
          "suitePath": "modules/buildbox/test/vendor.test.sh",
          "sourceDigest": "2b4f8c661a99d16e15579689cfa009fffdabb2b7967ce308d9373449b7abbd52",
          "argv": [
            "bash",
            "modules/buildbox/test/vendor.test.sh"
          ],
          "cwd": ".",
          "env": {
            "CI": "true",
            "BUILD_SCHED_IDLE": "0",
            "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/tools/ci/shims:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/modules/buildbox/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
          },
          "toolchain": {
            "bash": {
              "path": "/usr/bin/bash",
              "sha256": "a3240e3ca305f1482afce389898daece2551098b9862d6d540dcf5fa1822482f"
            },
            "git": {
              "path": "/usr/bin/git",
              "sha256": "6abe513946d74e02884954e01cd296d0e4d65ca7452a5f99a1e5d4bc2c5a61c6"
            },
            "jq": {
              "path": "/usr/bin/jq",
              "sha256": "959c6616e0a30e4ad32d28a7fe2138b29cc9fa541fae7d885aa33785e96ab6d1"
            },
            "node": {
              "path": "/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin/node",
              "sha256": "93956de2e59480474a7b46571da1651180b1a050cdf32641ebec4ce6e478e068"
            },
            "podman": {
              "path": "/usr/bin/podman",
              "sha256": "404a2fe84b76705452254d110b1f7e158969e3e99907000e80aedd63a0b0d555"
            },
            "ssh": {
              "path": "/usr/bin/ssh",
              "sha256": "eb31d30c1c761a5da9c0be39d8857316ee827d78850932a58b3d292423d8a915"
            },
            "systemctl": {
              "path": "/usr/bin/systemctl",
              "sha256": "7bb757102440352dba4519926cd8fd7d2e5efe1a8c73d9ccb9d2324094f36cbb"
            }
          },
          "startedAt": "2026-08-12T02:43:13.441Z",
          "endedAt": "2026-08-12T02:43:46.290Z",
          "durationMs": 32849,
          "exitStatus": 0,
          "signal": null,
          "status": "passed",
          "rawDigest": "5e2967073b28d863befeb6af75b3ccaf9913cd005a7f5df8fd66d9912bb8c23b"
        }
      ]
    },
    "module:buildbox:build-cache-prune.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:41:48.082Z",
      "endedAt": "2026-08-12T02:41:48.230Z",
      "durationMs": 148,
      "exitStatus": 0,
      "sourceDigest": "f755db9661143c8caeda4b7acfc4d3b5437f6085fb2467bc7f7c1a123e478aa9",
      "rawDigest": "27e08f0e804ab4a392599f72a715908e5c9b0e9d3667376546cdf3253269f973"
    },
    "module:buildbox:claude-home-settings.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:41:48.805Z",
      "endedAt": "2026-08-12T02:41:49.494Z",
      "durationMs": 689,
      "exitStatus": 0,
      "sourceDigest": "36054d98b40c9880b263bd89e20e81ba97c6c21e9222a89a7efe624f2c3f0e5d",
      "rawDigest": "384705d8173c7354ea1cde010273f6cda3cef627ed55713439632b9a4c02b0ba"
    },
    "module:buildbox:claude-parity.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:41:50.071Z",
      "endedAt": "2026-08-12T02:41:51.206Z",
      "durationMs": 1135,
      "exitStatus": 0,
      "sourceDigest": "c0d801167b446bad4feba01bbaea3322415615b9e59df9ba0bcde0dd2e7b7614",
      "rawDigest": "a114f5b6a7570416a849b61de66166a8b6339b77f78c155b8b172b64e326c364"
    },
    "module:buildbox:deadman-branches.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:41:51.814Z",
      "endedAt": "2026-08-12T02:41:52.369Z",
      "durationMs": 555,
      "exitStatus": 0,
      "sourceDigest": "848695a3a91ec316e03d74309f49267075a0105ee729dde1aa76da3b702b0273",
      "rawDigest": "d0d6f1875235d799cfcc79bd6471c665c23e51c19bc0fc932cb39f46ce1ef116"
    },
    "module:buildbox:devtools.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:41:53.109Z",
      "endedAt": "2026-08-12T02:42:26.027Z",
      "durationMs": 32918,
      "exitStatus": 0,
      "sourceDigest": "c5a38eee6c7ba596d40750696df8cfa46685e14d17b3b77ceaa41348e13e4678",
      "rawDigest": "778b6deab21ac14818f36216089959058b9e59981c4b50c3e327cbd259e8d0a1"
    },
    "module:buildbox:fleet-guard.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:42:26.394Z",
      "endedAt": "2026-08-12T02:42:26.590Z",
      "durationMs": 196,
      "exitStatus": 0,
      "sourceDigest": "9cc0c945f39e6949ab6fe99f79cabeccf927ca04f1122bd33e58ad142a971f90",
      "rawDigest": "38fc3f241b00d128a8f3e969e7ce6439b66e45241556998e9d6df9a5e6b71d41"
    },
    "module:buildbox:is-lab-host.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:42:26.956Z",
      "endedAt": "2026-08-12T02:42:26.994Z",
      "durationMs": 38,
      "exitStatus": 0,
      "sourceDigest": "6445c6c3635444bfc8bb393efd2b79bdd9f8491e20038a99f8f25d3860b9f7fd",
      "rawDigest": "2fbc906833ce13910137260595636c4e89f381b8fda3ecc5c4faf96fadcfa06d"
    },
    "module:buildbox:journal-cap.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:42:27.366Z",
      "endedAt": "2026-08-12T02:42:27.395Z",
      "durationMs": 29,
      "exitStatus": 0,
      "sourceDigest": "f01bda67e7975ec7cba6a0da813a2d44bb6284eaec47d0b9c72dac4b3752c3bf",
      "rawDigest": "4a28e23a07e19be8c81686bb51de6d1f080f53c52117f44421cbd2f9dbe1cdf6"
    },
    "module:buildbox:parity-converge.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:42:27.857Z",
      "endedAt": "2026-08-12T02:42:28.139Z",
      "durationMs": 282,
      "exitStatus": 0,
      "sourceDigest": "6de3b0c246964eb825ffe2016da8b0848a212fcc8966210ef2a6c3432cc4503b",
      "rawDigest": "daa2f88cfce1c88aca1b5988c993503859b78e6b8e333e54f8c03514a83f3604"
    },
    "module:buildbox:reboot-wait.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:42:28.516Z",
      "endedAt": "2026-08-12T02:43:08.553Z",
      "durationMs": 40037,
      "exitStatus": 0,
      "sourceDigest": "0766ac6261292ecdfea51227d1a8b95a70ef77e9cec95f1d96e9feb326ab10f0",
      "rawDigest": "610beb92a805f1acf85891b5509bbf4487c9b865a5da7baa7675a5ed94347fca"
    },
    "module:buildbox:runner.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:43:08.941Z",
      "endedAt": "2026-08-12T02:43:09.009Z",
      "durationMs": 68,
      "exitStatus": 0,
      "sourceDigest": "a4235cfdb7e737bd396d2ad4a6282193f598b17ce9f76f01f9542eaba1d7128f",
      "rawDigest": "995d1f6085f414915caa74f923747fb234972d76dd874e63856a12261589df9e"
    },
    "module:buildbox:second-disk.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:43:09.484Z",
      "endedAt": "2026-08-12T02:43:09.714Z",
      "durationMs": 230,
      "exitStatus": 0,
      "sourceDigest": "44c9c7a3648d8db2c9826ab851b6af686d3146cd3f4d22dfe825d4d085e8aca1",
      "rawDigest": "d38ad4d8e1b43c8dab02d86f69fde090cca3e0ca2c924718357dc8ed04f56408"
    },
    "module:buildbox:sshd-access-lock.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:43:10.222Z",
      "endedAt": "2026-08-12T02:43:11.239Z",
      "durationMs": 1017,
      "exitStatus": 0,
      "sourceDigest": "032beffcf58fd3152b6350650d7516c9d8d279885c2f447837c019ed2faa5324",
      "rawDigest": "5532bfebc0db4518af92ab176aa8b1d42582013abebc4147fabeba3a564c3606"
    },
    "module:buildbox:telemetry.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:43:11.638Z",
      "endedAt": "2026-08-12T02:43:13.060Z",
      "durationMs": 1422,
      "exitStatus": 0,
      "sourceDigest": "e35e8664fc10eb3b3550fd59376df54d27869009e44d7375290aca5d39e1620f",
      "rawDigest": "d4fdba79ae68d4f708dfc9b666387485b264e90432fbc7803fbbac3bd94b76d4"
    },
    "module:buildbox:vendor.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-12T02:43:13.441Z",
      "endedAt": "2026-08-12T02:43:46.290Z",
      "durationMs": 32849,
      "exitStatus": 0,
      "sourceDigest": "2b4f8c661a99d16e15579689cfa009fffdabb2b7967ce308d9373449b7abbd52",
      "rawDigest": "5e2967073b28d863befeb6af75b3ccaf9913cd005a7f5df8fd66d9912bb8c23b"
    },
    "workstation:ca-launcher": {
      "id": "workstation:ca-launcher",
      "suitePath": "modules/workstation/claude/tests/ca-launcher.test.sh",
      "sourceDigest": "67ab8bf85c683181752dea7bc7c9c491fe8f0c6fec4c7f914d65bb60f9c4c884",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/ca-launcher.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:08.931Z",
      "endedAt": "2026-08-12T02:44:08.946Z",
      "durationMs": 14,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 112,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-ca-launcher.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:containment-invariants": {
      "id": "workstation:containment-invariants",
      "suitePath": "modules/workstation/claude/tests/containment-invariants.test.sh",
      "sourceDigest": "aabbc2a51c828c68a71d51713d25df265148b91a5333e583b51e798ee0baada4",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/containment-invariants.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:08.946Z",
      "endedAt": "2026-08-12T02:44:09.132Z",
      "durationMs": 185,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1184,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-containment-invariants.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:confine-scope-escape": {
      "id": "workstation:confine-scope-escape",
      "suitePath": "modules/workstation/claude/tests/confine-scope-escape.test.sh",
      "sourceDigest": "4805355a1cb525f1e4114851e4cf2eb37c8d9e560f628d68132d133fcfcfc9f7",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/confine-scope-escape.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.132Z",
      "endedAt": "2026-08-12T02:44:09.293Z",
      "durationMs": 161,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 229,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-confine-scope-escape.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:agent-reaper-enforce": {
      "id": "workstation:agent-reaper-enforce",
      "suitePath": "modules/workstation/claude/tests/agent-reaper-enforce.test.py",
      "sourceDigest": "782d661f7ae01b4e98715599b855c538f166c4982fb8b4e2b12c3aaf52912e96",
      "argv": [
        "python3",
        "modules/workstation/claude/tests/agent-reaper-enforce.test.py"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.294Z",
      "endedAt": "2026-08-12T02:44:09.373Z",
      "durationMs": 79,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 0,
      "stderrBytes": 516,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-reaper-enforce.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:agent-session-ledger": {
      "id": "workstation:agent-session-ledger",
      "suitePath": "modules/workstation/claude/tests/agent-session-ledger.test.sh",
      "sourceDigest": "8800b98d5fbd4c23370279e2dffcb8c780770f1f818e4a5beb70647207b8a5e2",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/agent-session-ledger.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:09.374Z",
      "endedAt": "2026-08-12T02:44:25.315Z",
      "durationMs": 15942,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 5008,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-ledger.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:agent-session-passthrough": {
      "id": "workstation:agent-session-passthrough",
      "suitePath": "modules/workstation/claude/tests/agent-session-passthrough.test.sh",
      "sourceDigest": "8e052d8f9d42d1f7c25c54d8a2c7eb5fd99cf7b5c88eb8e149851a55ea715977",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/agent-session-passthrough.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:25.316Z",
      "endedAt": "2026-08-12T02:44:35.408Z",
      "durationMs": 10092,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 362,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-agent-session-passthrough.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:human-session-fallback": {
      "id": "workstation:human-session-fallback",
      "suitePath": "modules/workstation/claude/tests/human-session-fallback.test.sh",
      "sourceDigest": "2ee1a2d604bb7d4b3133fc0b574515d6d4bbb17ba85b16a08fadcc74d9725668",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/human-session-fallback.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:35.408Z",
      "endedAt": "2026-08-12T02:44:35.547Z",
      "durationMs": 139,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 254,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-human-session-fallback.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:shim-drift-check": {
      "id": "workstation:shim-drift-check",
      "suitePath": "modules/workstation/claude/tests/shim-drift-check.test.sh",
      "sourceDigest": "a158ce0f16e88ff348d3b79feb3604323e872a89ddc67b85f49d680163d740f0",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/shim-drift-check.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:35.547Z",
      "endedAt": "2026-08-12T02:44:36.747Z",
      "durationMs": 1199,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 813,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-drift-check.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:od-worktree-registry": {
      "id": "workstation:od-worktree-registry",
      "suitePath": "modules/workstation/claude/tests/od-worktree-registry.test.sh",
      "sourceDigest": "900c9cd09a78fc56f951948e2e8ff543a2ff6a0a763172150ef6cac90e9c5537",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/od-worktree-registry.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.747Z",
      "endedAt": "2026-08-12T02:44:36.816Z",
      "durationMs": 69,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 296,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-od-worktree-registry.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:shim-bare-name": {
      "id": "workstation:shim-bare-name",
      "suitePath": "modules/workstation/claude/tests/shim-bare-name.test.sh",
      "sourceDigest": "8c3955c657f339751f97d73a15f3cf587bdcd21d4f1033765e12d9d1730084f7",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/shim-bare-name.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.817Z",
      "endedAt": "2026-08-12T02:44:36.859Z",
      "durationMs": 43,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 220,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-shim-bare-name.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:kill-guard": {
      "id": "workstation:kill-guard",
      "suitePath": "modules/workstation/claude/tests/kill-guard.test.sh",
      "sourceDigest": "8e4712b59585d667d8b19347b0a97c672f1298ec76475397169d3366eff255e5",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/kill-guard.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:36.860Z",
      "endedAt": "2026-08-12T02:44:37.780Z",
      "durationMs": 920,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1095,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-kill-guard.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:headless-guard-scope": {
      "id": "workstation:headless-guard-scope",
      "suitePath": "modules/workstation/claude/tests/headless-guard-scope.test.sh",
      "sourceDigest": "7f852b91528fbe1fa2e07e14566bd6baa5659bfb7add2563fb85c32ee0a829b4",
      "argv": [
        "bash",
        "modules/workstation/claude/tests/headless-guard-scope.test.sh"
      ],
      "cwd": ".",
      "env": {
        "CI": "true",
        "BUILD_SCHED_IDLE": "0",
        "PATH": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/store/v11/links/@/pnpm/11.5.2/54cca61479d7b5622a27a0c4b6a7994506eb707524e1b7073ef2311a9b6bce54/node_modules/pnpm/dist/node-gyp-bin:/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/node_modules/.bin:/home/user/.bun/bin:/home/user/actions-runner-overdeck-debian1/_work/_tool/node/22.23.1/x64/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin/bin:/home/user/actions-runner-overdeck-debian1/_work/_temp/setup-pnpm/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      },
      "startedAt": "2026-08-12T02:44:37.781Z",
      "endedAt": "2026-08-12T02:44:38.359Z",
      "durationMs": 579,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1803,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31557662468-1-f2f850b8d0dae4f98c5b9abce24c26656af4e562/raw/workstation-headless-guard-scope.log",
      "granularity": "suite",
      "observedVia": "shell-suite"
    },
    "workstation:bun-hooks": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "bun-junit",
      "tests": [
        {
          "name": "blocks machine-signalled raw wrapper and CLI verification",
          "status": "passed",
          "durationMs": 93
        },
        {
          "name": "preserves heuristic detection for trivial probes",
          "status": "passed",
          "durationMs": 92
        },
        {
          "name": "fixture name in prompt or comment cannot bypass a raw denial",
          "status": "passed",
          "durationMs": 46
        },
        {
          "name": "allows actual fixture invocations and benign implementation or review dispatches",
          "status": "passed",
          "durationMs": 136
        },
        {
          "name": "a labelled immediate-next line blocks",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "a next-steps heading blocks",
          "status": "passed",
          "durationMs": 39
        },
        {
          "name": "a heading that merely starts with the word next does not block",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "a bolded next-step label blocks",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "prose forms block",
          "status": "passed",
          "durationMs": 97
        },
        {
          "name": "the phrase inside a fenced block does not block",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "the phrase inside a double-quoted span does not block",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "a plain completion report does not block",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "newly covered asks block",
          "status": "passed",
          "durationMs": 139
        },
        {
          "name": "the say-go family blocks",
          "status": "passed",
          "durationMs": 180
        },
        {
          "name": "a quoted or backticked mention of say-go does not block",
          "status": "passed",
          "durationMs": 38
        },
        {
          "name": "ordinary prose containing go is untouched",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "existing asks still block",
          "status": "passed",
          "durationMs": 77
        },
        {
          "name": "a claim without a user quote blocks",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "a claim carrying a verbatim user quote does not block",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "stop_hook_active returns silently",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "an absent transcript returns silently",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "a malformed payload returns silently",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "a malformed transcript returns silently",
          "status": "passed",
          "durationMs": 20
        }
      ],
      "testCounts": {
        "passed": 23,
        "failed": 0,
        "skipped": 0,
        "total": 23
      }
    },
    "os:buildbox-watch-edge.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/buildbox-watch-edge.test.sh",
      "exitStatus": 0
    },
    "os:cutover.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/cutover.test.sh",
      "exitStatus": 0
    },
    "os:deck-podman.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deck-podman.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-agents.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-agents.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-bootstrap.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-bootstrap.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-core.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-core.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-install.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-install.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-sync.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-sync.test.sh",
      "exitStatus": 0
    },
    "os:deckctl-system-units.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/deckctl-system-units.test.sh",
      "exitStatus": 0
    },
    "os:environment-d-specifiers.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/environment-d-specifiers.test.sh",
      "exitStatus": 0
    },
    "os:exec-plane-probe.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/exec-plane-probe.test.sh",
      "exitStatus": 0
    },
    "os:import-module.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/import-module.test.sh",
      "exitStatus": 0
    },
    "os:monitor-dryrun.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/monitor-dryrun.test.sh",
      "exitStatus": 0
    },
    "os:ref-sweep.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/ref-sweep.test.sh",
      "exitStatus": 0
    },
    "os:schema.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/schema.test.sh",
      "exitStatus": 0
    },
    "os:wrapper-reinvoke-lint.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== tests/os/wrapper-reinvoke-lint.test.sh",
      "exitStatus": 0
    },
    "module:fleet:adapters-audit.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/adapters-audit.test.sh",
      "exitStatus": 0
    },
    "module:fleet:adapters-harden.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/adapters-harden.test.sh",
      "exitStatus": 0
    },
    "module:fleet:adapters.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/adapters.test.sh",
      "exitStatus": 0
    },
    "module:fleet:cli.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/cli.test.sh",
      "exitStatus": 0
    },
    "module:fleet:hosts-migration.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/hosts-migration.test.sh",
      "exitStatus": 0
    },
    "module:fleet:node.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/node.test.sh",
      "exitStatus": 0
    },
    "module:fleet:roots.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/fleet/test/roots.test.sh",
      "exitStatus": 0
    },
    "module:harness:canary-wrapper-health.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/canary-wrapper-health.test.sh",
      "exitStatus": 0
    },
    "module:harness:codex-permission-mode.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/codex-permission-mode.test.sh",
      "exitStatus": 0
    },
    "module:harness:codex-sidecar-contract.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/codex-sidecar-contract.test.sh",
      "exitStatus": 0
    },
    "module:harness:gate-attribution.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/gate-attribution.test.sh",
      "exitStatus": 0
    },
    "module:harness:gate-scope-guard.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/gate-scope-guard.test.sh",
      "exitStatus": 0
    },
    "module:harness:gate0-heartbeat.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/gate0-heartbeat.test.sh",
      "exitStatus": 0
    },
    "module:harness:gate0-progress.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/gate0-progress.test.sh",
      "exitStatus": 0
    },
    "module:harness:okf-hooks.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/okf-hooks.test.sh",
      "exitStatus": 0
    },
    "module:harness:okf-nav-protocol.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/okf-nav-protocol.test.sh",
      "exitStatus": 0
    },
    "module:harness:okf.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/okf.test.sh",
      "exitStatus": 0
    },
    "module:harness:wrapper-empty-output.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-12T02:44:39.631Z",
      "endedAt": "2026-08-12T02:45:50.884Z",
      "suiteStartedEvidence": "=== modules/harness/test/wrapper-empty-output.test.sh",
      "exitStatus": 0
    },
    "playwright:actions": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/actions.spec.ts::allowlisted action POST without Origin header returns 403 (CSRF default-deny)",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 38
        },
        {
          "name": "apps/web/tests/actions.spec.ts::non-allowlisted action verb returns 404 through the proxy",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "apps/web/tests/actions.spec.ts::reap with pid absent from orphan candidates returns 400 through the proxy",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "apps/web/tests/actions.spec.ts::reap confirm dialog posts to the mock executor and shows a success toast",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 1292
        }
      ],
      "testCounts": {
        "passed": 4,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 4
      }
    },
    "playwright:bots-live": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/bots-live.spec.ts::shows named fleet with observability columns, not opaque bot ids",
          "file": "apps/web/tests/bots-live.spec.ts",
          "status": "skipped",
          "durationMs": 0
        }
      ],
      "testCounts": {
        "passed": 0,
        "failed": 0,
        "flaky": 0,
        "skipped": 1,
        "total": 1
      }
    },
    "playwright:bots": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/bots.spec.ts::/bots renders fleet summary and full observability table",
          "file": "apps/web/tests/bots.spec.ts",
          "status": "passed",
          "durationMs": 445
        },
        {
          "name": "apps/web/tests/bots.spec.ts::overview Bots card shows bot names, not opaque ids",
          "file": "apps/web/tests/bots.spec.ts",
          "status": "passed",
          "durationMs": 356
        }
      ],
      "testCounts": {
        "passed": 2,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 2
      }
    },
    "playwright:ci-build": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders CI & Build in dark theme with incident fixture fleet and panels",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 503
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders correctly in light theme",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 415
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::clicking a machine card opens detail modal with telemetry sections",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 444
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::every action button carries a valid X1 offload verb",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 378
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::normal-temp fixture does not show critical temperature banner in modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 4386
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::crit-temp fixture shows critical temperature banner in modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 4376
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::CI-only fixture renders CI content and labels every unavailable offload KPI",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 376
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::Logs opens read-only viewer; Drain confirm appears above machine modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 590
        }
      ],
      "testCounts": {
        "passed": 8,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 8
      }
    },
    "playwright:ci-trains": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/ci-trains.spec.ts::renders all-scope trains, cross-repo PRs, runners, and amplification with honest gaps",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 406
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::repo scope filters every train dashboard model and hides the Repo column",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 411
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::train mutations post exact verbs and string args; success waits for HTTP and ToastProvider stays valid",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 826
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::Open performs validated client navigation with no action POST",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 440
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::stale train mutation surfaces exact parsed server error without optimistic success",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4433
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::cached trains preserve each independent completeness gap and expose no actions",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4998
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::simultaneous incompleteness reaches every named component without false totals",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4434
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::missing selected repo after SSE refresh resets scope to All",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4439
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::renders train dashboard in light theme",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4372
        }
      ],
      "testCounts": {
        "passed": 9,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 9
      }
    },
    "playwright:decisions": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/decisions.spec.ts::expands and collapses a decision row in place",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 481
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::option answer posts the exact payload to the collector mock",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 405
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::free-text answer posts the typed choice payload",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 413
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::failure path shows an error and preserves the typed answer",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 427
        }
      ],
      "testCounts": {
        "passed": 4,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 4
      }
    },
    "playwright:hooks-controls": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control reflects fixture policy and round-trips pessimistically",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 457
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control stays checked while a delayed mutation is pending",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 774
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control retains confirmed state and announces a failed mutation",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 414
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control surfaces issue repair and clears it after repair",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control hides repair for nonrepairable issues",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 365
        }
      ],
      "testCounts": {
        "passed": 5,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 5
      }
    },
    "playwright:inbox": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/inbox.spec.ts::renders the full triage list sorted by severity then recency",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::filter rail shows kind counts and filters the list",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 449
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::snooze persists before expiry without deleting collector item",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 457
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::expired snooze restores item and removes durable entry",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 600
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::project color tags honor settings overrides and auto-assigned wheel colors",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 364
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::open and train actions are enabled; unknown actions stay disabled",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 378
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::valid Open navigates client-side and never posts an open action",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 412
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::invalid Open stays on-page, shows danger feedback, and sends no POST",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 401
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::train rerun posts exact string args and shows success only after HTTP success",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 597
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::train action rejection shows parsed server error and no success toast",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 407
        }
      ],
      "testCounts": {
        "passed": 10,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 10
      }
    },
    "playwright:map": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/map.spec.ts::renders fixture map nodes and inspector panel",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 405
        },
        {
          "name": "apps/web/tests/map.spec.ts::selecting a node updates the inspector",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 365
        },
        {
          "name": "apps/web/tests/map.spec.ts::aggregates queue only when every repo queue is complete and non-null",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 805
        }
      ],
      "testCounts": {
        "passed": 3,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 3
      }
    },
    "playwright:overview": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/overview.spec.ts::renders every mockup-v2 Overview widget group with fixture values, no console errors",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 452
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders correctly in light theme with no console errors",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 397
        },
        {
          "name": "apps/web/tests/overview.spec.ts::an item-resolved SSE delta removes the item from Needs you now",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 355
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders queue completeness independently from run history",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 824
        },
        {
          "name": "apps/web/tests/overview.spec.ts::keeps overview content inside mobile, tablet, laptop, and desktop viewports",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 1029
        }
      ],
      "testCounts": {
        "passed": 5,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 5
      }
    },
    "playwright:pages": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/pages.spec.ts::/plans renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 404
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/factory renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 597
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/agents renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 390
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/ci renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 358
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/bots renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 350
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/limits renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/gates renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 388
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/projects renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 398
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/settings renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 434
        },
        {
          "name": "apps/web/tests/pages.spec.ts::plan rows link to the componentized run detail page",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 786
        },
        {
          "name": "apps/web/tests/pages.spec.ts::clicking a plan row opens the run detail page",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 686
        },
        {
          "name": "apps/web/tests/pages.spec.ts::settings color override round-trips through POST /config/projects",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 596
        }
      ],
      "testCounts": {
        "passed": 12,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 12
      }
    },
    "playwright:plans-observability": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/plans-observability.spec.ts::shows one row per plan with its attempt count, not one row per checkout",
          "file": "apps/web/tests/plans-observability.spec.ts",
          "status": "passed",
          "durationMs": 429
        },
        {
          "name": "apps/web/tests/plans-observability.spec.ts::marks the deck stale when its payload stops advancing",
          "file": "apps/web/tests/plans-observability.spec.ts",
          "status": "passed",
          "durationMs": 350
        }
      ],
      "testCounts": {
        "passed": 2,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 2
      }
    },
    "playwright:sessions": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/sessions.spec.ts::lists every project, with the cli, launcher and state of each session",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 600
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::attaches to a tmux-hosted session in the browser and sends a keystroke",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 522
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::keeps an attached terminal open and polling while navigating, and lets the reader move it",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 1526
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::offers an account-aware resume command for a finished claude session",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 526
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::states why an unreachable session cannot be reconnected instead of showing a dead button",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 412
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::renders the TerminalView gallery entry in the design system",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 643
        }
      ],
      "testCounts": {
        "passed": 6,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 6
      }
    },
    "playwright:shell": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/shell.spec.ts::renders the dashboard shell with the exact sidebar structure",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "name": "apps/web/tests/shell.spec.ts::defaults to dark theme with no console errors",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 140
        },
        {
          "name": "apps/web/tests/shell.spec.ts::theme preference persists across a fresh shell load",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 797
        },
        {
          "name": "apps/web/tests/shell.spec.ts::invalid stored theme falls back to dark without overwriting storage",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 259
        }
      ],
      "testCounts": {
        "passed": 4,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 4
      }
    },
    "playwright:ui-matrix": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/ renders overview needs-you-now card without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 360
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox renders inbox heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/plans renders plans heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 353
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/agents renders agents heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/ci renders CI runners panel without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 334
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/bots renders bots heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 340
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/limits renders limits heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/gates renders gates heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/projects renders projects repository without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 352
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/projects/multideal renders project detail criterion without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 384
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings renders settings heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 352
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/decisions renders decisions heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/map renders map canvas without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 362
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings project color input is editable",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 366
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings save project colors is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox non-gateway action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 328
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox reap action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox destructive confirmation controls are enabled before submission",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 435
        }
      ],
      "testCounts": {
        "passed": 18,
        "failed": 0,
        "flaky": 0,
        "skipped": 0,
        "total": 18
      }
    },
    "phase:playwright": {
      "status": "passed",
      "granularity": "test",
      "observedVia": "playwright-json",
      "tests": [
        {
          "name": "apps/web/tests/actions.spec.ts::allowlisted action POST without Origin header returns 403 (CSRF default-deny)",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 38
        },
        {
          "name": "apps/web/tests/actions.spec.ts::non-allowlisted action verb returns 404 through the proxy",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "apps/web/tests/actions.spec.ts::reap with pid absent from orphan candidates returns 400 through the proxy",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "apps/web/tests/actions.spec.ts::reap confirm dialog posts to the mock executor and shows a success toast",
          "file": "apps/web/tests/actions.spec.ts",
          "status": "passed",
          "durationMs": 1292
        },
        {
          "name": "apps/web/tests/bots-live.spec.ts::shows named fleet with observability columns, not opaque bot ids",
          "file": "apps/web/tests/bots-live.spec.ts",
          "status": "skipped",
          "durationMs": 0
        },
        {
          "name": "apps/web/tests/bots.spec.ts::/bots renders fleet summary and full observability table",
          "file": "apps/web/tests/bots.spec.ts",
          "status": "passed",
          "durationMs": 445
        },
        {
          "name": "apps/web/tests/bots.spec.ts::overview Bots card shows bot names, not opaque ids",
          "file": "apps/web/tests/bots.spec.ts",
          "status": "passed",
          "durationMs": 356
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders CI & Build in dark theme with incident fixture fleet and panels",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 503
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders correctly in light theme",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 415
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::clicking a machine card opens detail modal with telemetry sections",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 444
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::every action button carries a valid X1 offload verb",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 378
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::normal-temp fixture does not show critical temperature banner in modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 4386
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::crit-temp fixture shows critical temperature banner in modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 4376
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::CI-only fixture renders CI content and labels every unavailable offload KPI",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 376
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::Logs opens read-only viewer; Drain confirm appears above machine modal",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 590
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::renders all-scope trains, cross-repo PRs, runners, and amplification with honest gaps",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 406
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::repo scope filters every train dashboard model and hides the Repo column",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 411
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::train mutations post exact verbs and string args; success waits for HTTP and ToastProvider stays valid",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 826
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::Open performs validated client navigation with no action POST",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 440
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::stale train mutation surfaces exact parsed server error without optimistic success",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4433
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::cached trains preserve each independent completeness gap and expose no actions",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4998
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::simultaneous incompleteness reaches every named component without false totals",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4434
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::missing selected repo after SSE refresh resets scope to All",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4439
        },
        {
          "name": "apps/web/tests/ci-trains.spec.ts::renders train dashboard in light theme",
          "file": "apps/web/tests/ci-trains.spec.ts",
          "status": "passed",
          "durationMs": 4372
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::expands and collapses a decision row in place",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 481
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::option answer posts the exact payload to the collector mock",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 405
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::free-text answer posts the typed choice payload",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 413
        },
        {
          "name": "apps/web/tests/decisions.spec.ts::failure path shows an error and preserves the typed answer",
          "file": "apps/web/tests/decisions.spec.ts",
          "status": "passed",
          "durationMs": 427
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control reflects fixture policy and round-trips pessimistically",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 457
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control stays checked while a delayed mutation is pending",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 774
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control retains confirmed state and announces a failed mutation",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 414
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control surfaces issue repair and clears it after repair",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "name": "apps/web/tests/hooks-controls.spec.ts::hooks control hides repair for nonrepairable issues",
          "file": "apps/web/tests/hooks-controls.spec.ts",
          "status": "passed",
          "durationMs": 365
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::renders the full triage list sorted by severity then recency",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::filter rail shows kind counts and filters the list",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 449
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::snooze persists before expiry without deleting collector item",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 457
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::expired snooze restores item and removes durable entry",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 600
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::project color tags honor settings overrides and auto-assigned wheel colors",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 364
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::open and train actions are enabled; unknown actions stay disabled",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 378
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::valid Open navigates client-side and never posts an open action",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 412
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::invalid Open stays on-page, shows danger feedback, and sends no POST",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 401
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::train rerun posts exact string args and shows success only after HTTP success",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 597
        },
        {
          "name": "apps/web/tests/inbox.spec.ts::train action rejection shows parsed server error and no success toast",
          "file": "apps/web/tests/inbox.spec.ts",
          "status": "passed",
          "durationMs": 407
        },
        {
          "name": "apps/web/tests/map.spec.ts::renders fixture map nodes and inspector panel",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 405
        },
        {
          "name": "apps/web/tests/map.spec.ts::selecting a node updates the inspector",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 365
        },
        {
          "name": "apps/web/tests/map.spec.ts::aggregates queue only when every repo queue is complete and non-null",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 805
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders every mockup-v2 Overview widget group with fixture values, no console errors",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 452
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders correctly in light theme with no console errors",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 397
        },
        {
          "name": "apps/web/tests/overview.spec.ts::an item-resolved SSE delta removes the item from Needs you now",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 355
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders queue completeness independently from run history",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 824
        },
        {
          "name": "apps/web/tests/overview.spec.ts::keeps overview content inside mobile, tablet, laptop, and desktop viewports",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 1029
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/plans renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 404
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/factory renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 597
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/agents renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 390
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/ci renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 358
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/bots renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 350
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/limits renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/gates renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 388
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/projects renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 398
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/settings renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 434
        },
        {
          "name": "apps/web/tests/pages.spec.ts::plan rows link to the componentized run detail page",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 786
        },
        {
          "name": "apps/web/tests/pages.spec.ts::clicking a plan row opens the run detail page",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 686
        },
        {
          "name": "apps/web/tests/pages.spec.ts::settings color override round-trips through POST /config/projects",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 596
        },
        {
          "name": "apps/web/tests/plans-observability.spec.ts::shows one row per plan with its attempt count, not one row per checkout",
          "file": "apps/web/tests/plans-observability.spec.ts",
          "status": "passed",
          "durationMs": 429
        },
        {
          "name": "apps/web/tests/plans-observability.spec.ts::marks the deck stale when its payload stops advancing",
          "file": "apps/web/tests/plans-observability.spec.ts",
          "status": "passed",
          "durationMs": 350
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::lists every project, with the cli, launcher and state of each session",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 600
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::attaches to a tmux-hosted session in the browser and sends a keystroke",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 522
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::keeps an attached terminal open and polling while navigating, and lets the reader move it",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 1526
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::offers an account-aware resume command for a finished claude session",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 526
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::states why an unreachable session cannot be reconnected instead of showing a dead button",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 412
        },
        {
          "name": "apps/web/tests/sessions.spec.ts::renders the TerminalView gallery entry in the design system",
          "file": "apps/web/tests/sessions.spec.ts",
          "status": "passed",
          "durationMs": 643
        },
        {
          "name": "apps/web/tests/shell.spec.ts::renders the dashboard shell with the exact sidebar structure",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "name": "apps/web/tests/shell.spec.ts::defaults to dark theme with no console errors",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 140
        },
        {
          "name": "apps/web/tests/shell.spec.ts::theme preference persists across a fresh shell load",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 797
        },
        {
          "name": "apps/web/tests/shell.spec.ts::invalid stored theme falls back to dark without overwriting storage",
          "file": "apps/web/tests/shell.spec.ts",
          "status": "passed",
          "durationMs": 259
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/ renders overview needs-you-now card without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 360
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox renders inbox heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/plans renders plans heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 353
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/agents renders agents heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/ci renders CI runners panel without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 334
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/bots renders bots heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 340
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/limits renders limits heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/gates renders gates heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/projects renders projects repository without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 352
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/projects/multideal renders project detail criterion without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 384
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings renders settings heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 352
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/decisions renders decisions heading without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/map renders map canvas without runtime failures",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 362
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings project color input is editable",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 366
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/settings save project colors is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox non-gateway action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 328
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox reap action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 382
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox destructive confirmation controls are enabled before submission",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 435
        }
      ],
      "testCounts": {
        "passed": 92,
        "failed": 0,
        "flaky": 0,
        "skipped": 1,
        "total": 93
      }
    }
  }
}
