{
  "schemaVersion": "1",
  "phases": [
    {
      "id": "workflow-contract",
      "durationMs": 0,
      "status": "passed",
      "startedAt": "2026-08-11T11:46:46.003Z",
      "endedAt": "2026-08-11T11:46:46.003Z"
    },
    {
      "id": "inventory-check",
      "durationMs": 0,
      "status": "passed",
      "startedAt": "2026-08-11T11:46:46.083Z",
      "endedAt": "2026-08-11T11:46:46.083Z"
    },
    {
      "id": "typecheck",
      "durationMs": 16338,
      "status": "passed",
      "startedAt": "2026-08-11T11:46:46.083Z",
      "endedAt": "2026-08-11T11:47:02.422Z"
    },
    {
      "id": "workspace-tests",
      "durationMs": 136712,
      "status": "passed",
      "startedAt": "2026-08-11T11:47:02.423Z",
      "endedAt": "2026-08-11T11:49:19.135Z"
    },
    {
      "id": "workstation:ca-launcher",
      "durationMs": 13,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:19.144Z",
      "endedAt": "2026-08-11T11:49:19.157Z"
    },
    {
      "id": "workstation:containment-invariants",
      "durationMs": 186,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:19.158Z",
      "endedAt": "2026-08-11T11:49:19.343Z"
    },
    {
      "id": "workstation:confine-scope-escape",
      "durationMs": 139,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:19.344Z",
      "endedAt": "2026-08-11T11:49:19.482Z"
    },
    {
      "id": "workstation:agent-reaper-enforce",
      "durationMs": 82,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:19.483Z",
      "endedAt": "2026-08-11T11:49:19.565Z"
    },
    {
      "id": "workstation:agent-session-ledger",
      "durationMs": 15784,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:19.565Z",
      "endedAt": "2026-08-11T11:49:35.349Z"
    },
    {
      "id": "workstation:agent-session-passthrough",
      "durationMs": 10070,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:35.350Z",
      "endedAt": "2026-08-11T11:49:45.420Z"
    },
    {
      "id": "workstation:human-session-fallback",
      "durationMs": 144,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:45.420Z",
      "endedAt": "2026-08-11T11:49:45.564Z"
    },
    {
      "id": "workstation:shim-drift-check",
      "durationMs": 1227,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:45.564Z",
      "endedAt": "2026-08-11T11:49:46.792Z"
    },
    {
      "id": "workstation:od-worktree-registry",
      "durationMs": 66,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:46.792Z",
      "endedAt": "2026-08-11T11:49:46.858Z"
    },
    {
      "id": "workstation:shim-bare-name",
      "durationMs": 42,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:46.859Z",
      "endedAt": "2026-08-11T11:49:46.901Z"
    },
    {
      "id": "workstation:kill-guard",
      "durationMs": 935,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:46.901Z",
      "endedAt": "2026-08-11T11:49:47.836Z"
    },
    {
      "id": "workstation:headless-guard-scope",
      "durationMs": 583,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:47.836Z",
      "endedAt": "2026-08-11T11:49:48.420Z"
    },
    {
      "id": "workstation:bun-hooks",
      "durationMs": 1243,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:48.420Z",
      "endedAt": "2026-08-11T11:49:49.663Z"
    },
    {
      "id": "os-shell-suites",
      "durationMs": 72175,
      "status": "passed",
      "startedAt": "2026-08-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z"
    },
    {
      "id": "playwright",
      "durationMs": 84274,
      "status": "passed",
      "startedAt": "2026-08-11T11:51:01.840Z",
      "endedAt": "2026-08-11T11:52:26.114Z"
    }
  ],
  "suites": {
    "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.792724000000135
        },
        {
          "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": 2.263887000000068
        },
        {
          "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.1843179999998483
        },
        {
          "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": 4.591533000000027
        },
        {
          "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.7327410000000327
        },
        {
          "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": 0.9734100000000581
        },
        {
          "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.0792619999999715
        },
        {
          "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.6492950000001656
        },
        {
          "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.9303899999999885
        },
        {
          "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.8220470000001114
        },
        {
          "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.7684159999998883
        },
        {
          "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.607975000000124
        },
        {
          "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.2984920000001239
        },
        {
          "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.9905029999999897
        },
        {
          "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.7568400000000111
        },
        {
          "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.3906859999999597
        },
        {
          "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": 8.564724999999953
        },
        {
          "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.9759770000000572
        },
        {
          "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.5726580000000467
        },
        {
          "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": 3.333082999999988
        },
        {
          "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": 9.168141000000105
        },
        {
          "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": 12.391783999999916
        },
        {
          "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.9165619999998853
        },
        {
          "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.49650900000006
        },
        {
          "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.369228000000021
        },
        {
          "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.0864500000000135
        },
        {
          "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.2446319999999105
        },
        {
          "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.357484999999997
        },
        {
          "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.2307590000000346
        },
        {
          "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": 26.027041000000054
        },
        {
          "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": 119.4828070000001
        },
        {
          "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": 2.6395370000000185
        },
        {
          "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.3968130000000656
        },
        {
          "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.6437600000001567
        },
        {
          "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.3770030000000588
        },
        {
          "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.7593689999998787
        },
        {
          "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.32476100000008046
        },
        {
          "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.27601400000003196
        },
        {
          "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": 0.23227899999983492
        },
        {
          "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.46891199999981836
        },
        {
          "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": 3.0843770000001314
        },
        {
          "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.8380940000001829
        },
        {
          "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.549054999999953
        },
        {
          "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.5297930000001543
        },
        {
          "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": 3.048228999999992
        },
        {
          "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.5124349999998685
        },
        {
          "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.27796299999999974
        },
        {
          "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.43621699999994235
        },
        {
          "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.6070810000001075
        },
        {
          "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.4253969999999754
        },
        {
          "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": 4.956658000000061
        },
        {
          "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": 1.3659620000000814
        },
        {
          "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.5532259999999951
        },
        {
          "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.31696499999998196
        },
        {
          "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.40949399999999514
        },
        {
          "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.4516670000000431
        },
        {
          "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": 7.567399000000023
        },
        {
          "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.43292399999995723
        },
        {
          "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": 0.73404000000005
        },
        {
          "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.5178079999998317
        },
        {
          "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.4592710000001716
        },
        {
          "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.2614579999999478
        },
        {
          "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.2472210000000814
        },
        {
          "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.1571920000001228
        },
        {
          "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.5260869999999613
        },
        {
          "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.3492220000000543
        },
        {
          "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.29275299999994786
        },
        {
          "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.4661389999998846
        },
        {
          "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.3579250000000229
        },
        {
          "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.17274499999984982
        },
        {
          "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.171746000000212
        },
        {
          "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.14854799999989154
        },
        {
          "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.6589420000000246
        },
        {
          "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.2443759999998747
        },
        {
          "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.3538340000000062
        },
        {
          "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.1584850000001552
        },
        {
          "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": 0.23769199999992452
        },
        {
          "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.16346199999998134
        },
        {
          "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.11983299999997143
        },
        {
          "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.1935559999999441
        },
        {
          "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.3072589999999309
        },
        {
          "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.2263029999999162
        },
        {
          "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.1864780000000792
        },
        {
          "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.266503000000057
        },
        {
          "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.15992499999993015
        },
        {
          "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.16362699999990582
        },
        {
          "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.654872999999952
        },
        {
          "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.655954000000065
        },
        {
          "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.49734699999999066
        },
        {
          "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.5501210000002175
        },
        {
          "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.503114999999525
        },
        {
          "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.2781569999997373
        },
        {
          "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.6033109999998487
        },
        {
          "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.0870370000002367
        },
        {
          "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.43695299999944837
        },
        {
          "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": 69.65823300000011
        },
        {
          "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": 154.6093150000006
        },
        {
          "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": 559.3433130000003
        },
        {
          "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.53671799999938
        },
        {
          "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": 703.7562779999998
        },
        {
          "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": 159.0582429999995
        },
        {
          "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": 115.79467599999953
        },
        {
          "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": 388.1772379999993
        },
        {
          "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": 46.155024000000594
        },
        {
          "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": 32.34013200000027
        },
        {
          "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": 33.87862900000073
        },
        {
          "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": 148.84192900000016
        },
        {
          "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.5380029999996623
        },
        {
          "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": 276.2230400000003
        },
        {
          "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": 104.52905499999997
        },
        {
          "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": 6.99425599999995
        },
        {
          "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": 43.90218399999958
        },
        {
          "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.9568790000002991
        },
        {
          "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": 171.03434700000025
        },
        {
          "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": 20.726522999999816
        },
        {
          "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": 9.05234100000007
        },
        {
          "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.18969799999968
        },
        {
          "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": 8.136367000000064
        },
        {
          "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": 14.439836999999898
        },
        {
          "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": 248.66026799999963
        },
        {
          "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.970139999999446
        },
        {
          "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.904048999999759
        },
        {
          "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.283108000000084
        },
        {
          "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.2905120000000352
        },
        {
          "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.4751139999998486
        },
        {
          "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.7034449999998742
        },
        {
          "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.408476999999948
        },
        {
          "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": 363.67692499999976
        },
        {
          "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": 302.29671400000007
        },
        {
          "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": 206.786967
        },
        {
          "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": 170.07710999999927
        },
        {
          "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": 164.32311600000048
        },
        {
          "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": 184.26205700000082
        },
        {
          "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": 194.10228499999994
        },
        {
          "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": 107.8458529999998
        },
        {
          "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": 31.850945999999567
        },
        {
          "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": 50.39808200000061
        },
        {
          "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": 48.90845799999988
        },
        {
          "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": 17.272313999999824
        },
        {
          "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": 25.829039999999623
        },
        {
          "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": 128.01044999999976
        },
        {
          "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": 28.276154000000133
        },
        {
          "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.749861999999666
        },
        {
          "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": 22.072451
        },
        {
          "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": 35.20813400000043
        },
        {
          "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": 127.47876799999995
        },
        {
          "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": 331.8523319999995
        },
        {
          "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": 81.6100290000004
        },
        {
          "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": 70.88872900000024
        },
        {
          "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": 38.83133599999928
        },
        {
          "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": 35.74892899999941
        },
        {
          "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": 71.54030700000021
        },
        {
          "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": 33.126860000000306
        },
        {
          "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": 24.85754100000031
        },
        {
          "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": 2.813346000000365
        },
        {
          "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.0398800000002666
        },
        {
          "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.6561289999999644
        },
        {
          "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.8758609999999862
        },
        {
          "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.45699500000000626
        },
        {
          "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.25923499999998967
        },
        {
          "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.31954499999983454
        },
        {
          "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.19266099999958897
        },
        {
          "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.6148659999998927
        },
        {
          "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": 227.13658600000008
        },
        {
          "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": 197.4848649999999
        },
        {
          "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": 14.28095200000007
        },
        {
          "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.274553000000196
        },
        {
          "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": 73.0061510000005
        },
        {
          "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": 17.449987999999394
        },
        {
          "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": 161.96929499999987
        },
        {
          "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": 44.91085800000019
        },
        {
          "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": 54.433938999999555
        },
        {
          "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": 26.926134000000275
        },
        {
          "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": 34.93777299999965
        },
        {
          "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": 29.62015799999972
        },
        {
          "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": 30.65365500000007
        },
        {
          "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": 11.019516999999723
        },
        {
          "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": 37.064926000000014
        },
        {
          "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": 24.837931999999455
        },
        {
          "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": 29.645659999999225
        },
        {
          "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": 88.8394360000002
        },
        {
          "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": 40.86030000000028
        },
        {
          "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": 9.067001999999775
        },
        {
          "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.461426999999958
        },
        {
          "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.21356800000012
        },
        {
          "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": 313.2725249999994
        },
        {
          "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": 18.748116000000664
        },
        {
          "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": 12.804909000000407
        },
        {
          "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": 8.774857999999767
        },
        {
          "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": 127.6902170000003
        },
        {
          "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": 73.31427900000017
        },
        {
          "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": 230.7436029999999
        },
        {
          "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": 190.8117199999997
        },
        {
          "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": 119.53226900000027
        },
        {
          "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": 42.8093259999996
        },
        {
          "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": 174.4112299999997
        },
        {
          "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": 91.42316000000028
        },
        {
          "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": 123.0278959999996
        },
        {
          "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": 117.47178500000064
        },
        {
          "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": 84.15720899999997
        },
        {
          "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": 18.027240000000347
        },
        {
          "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": 81.44620299999951
        },
        {
          "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": 64.63312099999985
        },
        {
          "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": 34.007000999999946
        },
        {
          "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": 40.72607699999935
        },
        {
          "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": 86.60956700000042
        },
        {
          "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": 103.50966799999969
        },
        {
          "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": 50.376374999999825
        },
        {
          "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": 60.65997900000002
        },
        {
          "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": 57.144835999999486
        },
        {
          "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": 71.1919369999996
        },
        {
          "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": 142.788861
        },
        {
          "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.688350999999784
        },
        {
          "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.49634999999989304
        },
        {
          "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.35946400000011636
        },
        {
          "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.47770600000012564
        },
        {
          "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.35294900000008056
        },
        {
          "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.574619999999868
        },
        {
          "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.5059180000002925
        },
        {
          "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.1771929999999884
        },
        {
          "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.4417910000001939
        },
        {
          "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.3440860000000612
        },
        {
          "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.2781419999996615
        },
        {
          "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.46765700000014476
        },
        {
          "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.26382399999965855
        },
        {
          "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.2156079999999747
        },
        {
          "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.1979510000001028
        },
        {
          "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.21631100000013248
        },
        {
          "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.23022200000013981
        },
        {
          "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.23303900000018984
        },
        {
          "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.1914849999998296
        },
        {
          "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.11714399999982561
        },
        {
          "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.12068700000008903
        },
        {
          "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.1208440000000337
        },
        {
          "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.3134230000000571
        },
        {
          "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.35924599999998463
        },
        {
          "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.18526999999994587
        },
        {
          "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": 98.85570800000005
        },
        {
          "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": 66.08001299999978
        },
        {
          "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": 371.721356
        },
        {
          "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": 50.36333900000045
        },
        {
          "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": 88.99917000000005
        },
        {
          "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": 122.7358750000003
        },
        {
          "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": 145.5553630000004
        },
        {
          "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": 22.88484100000005
        },
        {
          "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": 37.458723000000646
        },
        {
          "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": 53.67294999999922
        },
        {
          "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": 146.440611
        },
        {
          "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": 35.89158299999963
        },
        {
          "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": 107.35845900000004
        },
        {
          "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": 74.07393400000001
        },
        {
          "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": 85.38269599999967
        },
        {
          "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": 27.95483299999978
        },
        {
          "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": 94.59649499999978
        },
        {
          "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": 54.70211199999994
        },
        {
          "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": 92.70769599999994
        },
        {
          "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": 279.1098270000002
        },
        {
          "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": 106.7490259999995
        },
        {
          "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": 21.040321000000404
        },
        {
          "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": 21.0773650000001
        },
        {
          "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": 83.01741200000015
        },
        {
          "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": 13.22603700000036
        },
        {
          "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": 10.491885999999795
        },
        {
          "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": 20.544206000000486
        },
        {
          "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": 39.410473999999795
        },
        {
          "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": 2.46071000000029
        },
        {
          "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.2669429999996282
        },
        {
          "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.411407000000054
        },
        {
          "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": 79.46961400000009
        },
        {
          "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": 25.591671000000133
        },
        {
          "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.584474999999884
        },
        {
          "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.2869590000000244
        },
        {
          "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.8221019999996315
        },
        {
          "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.576057000000219
        },
        {
          "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.5682000000001608
        },
        {
          "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.5344620000000759
        },
        {
          "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.3856639999999061
        },
        {
          "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.33332900000004884
        },
        {
          "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.19800499999973908
        },
        {
          "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.18717500000002474
        },
        {
          "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.2132060000003548
        },
        {
          "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.2437079999999696
        },
        {
          "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.46206900000015594
        },
        {
          "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.40690300000005664
        },
        {
          "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.20282599999973172
        },
        {
          "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.16771699999981138
        },
        {
          "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.16104799999993702
        },
        {
          "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": 79.64368100000002
        },
        {
          "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": 124.50041899999997
        },
        {
          "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": 62.72824400000036
        },
        {
          "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.63028199999917
        },
        {
          "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": 21.79525199999989
        },
        {
          "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.407685999999558
        },
        {
          "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": 12.853044999999838
        },
        {
          "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": 10.41948500000035
        },
        {
          "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": 29.852711000000454
        },
        {
          "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": 149.96108000000004
        },
        {
          "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": 42.42326400000002
        },
        {
          "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": 67.50453199999993
        },
        {
          "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": 36.74987200000032
        },
        {
          "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": 37.05470400000013
        },
        {
          "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": 14.339584000000286
        },
        {
          "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": 10.293908999999985
        },
        {
          "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.466790000000401
        },
        {
          "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": 204.58730100000002
        },
        {
          "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.715584999999919
        },
        {
          "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": 8.849436000000424
        },
        {
          "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": 38.688270999999986
        },
        {
          "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.965752000000066
        },
        {
          "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.792269999999917
        },
        {
          "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": 3.40883199999962
        },
        {
          "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.7761570000002393
        },
        {
          "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.8340039999998226
        },
        {
          "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": 3.85927300000003
        },
        {
          "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": 36.62273400000004
        },
        {
          "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": 5.048434999999927
        },
        {
          "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.781312999999955
        },
        {
          "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.748244999999997
        },
        {
          "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.808771999999863
        },
        {
          "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.4110769999999775
        },
        {
          "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": 20.632920000000013
        },
        {
          "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.909661999999798
        },
        {
          "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.8289199999999255
        },
        {
          "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": 5.1518069999999625
        },
        {
          "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": 3.5578840000000582
        },
        {
          "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": 104.25102799999968
        },
        {
          "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": 96.48486200000025
        },
        {
          "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": 35.68449999999939
        },
        {
          "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": 44.646026999999776
        },
        {
          "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": 27.093088000000535
        },
        {
          "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": 21.69086800000059
        },
        {
          "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": 28.73997700000018
        },
        {
          "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": 38.61481900000035
        },
        {
          "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": 2.846799999999803
        },
        {
          "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.5440309999999045
        },
        {
          "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.5782890000000407
        },
        {
          "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.2534200000000055
        },
        {
          "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.520944999999756
        },
        {
          "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.21481500000027154
        },
        {
          "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.18403299999999945
        },
        {
          "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.16419500000029075
        },
        {
          "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.6895299999996496
        },
        {
          "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.3612399999997251
        },
        {
          "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.24651399999993373
        },
        {
          "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.20278000000007523
        },
        {
          "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.25351099999988946
        },
        {
          "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.13862699999981487
        },
        {
          "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.14107800000010684
        },
        {
          "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.13236199999983
        },
        {
          "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.22976399999970454
        },
        {
          "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.284682999999859
        },
        {
          "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.13018800000008923
        },
        {
          "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.360708999999588
        },
        {
          "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.2147159999994983
        },
        {
          "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.6741359999996348
        },
        {
          "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.6889320000000225
        },
        {
          "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.2321980000006079
        },
        {
          "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.4336080000002767
        },
        {
          "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.5002039999999397
        },
        {
          "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.29072199999973236
        },
        {
          "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.8322220000000016
        },
        {
          "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.4590330000000904
        },
        {
          "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.35391100000015285
        },
        {
          "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.38806099999965227
        },
        {
          "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.287347000000409
        },
        {
          "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.2421250000006694
        },
        {
          "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.161127000000306
        },
        {
          "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.28920000000016444
        },
        {
          "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.26682700000037585
        },
        {
          "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.24470600000040577
        },
        {
          "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.3077210000001287
        },
        {
          "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": 1.6027039999999033
        },
        {
          "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.366490999999769
        },
        {
          "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": 430.52442900000005
        },
        {
          "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": 2.3511519999999564
        },
        {
          "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.4954210000000785
        },
        {
          "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.8175120000000788
        },
        {
          "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.3306849999999031
        },
        {
          "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": 107.97825299999931
        },
        {
          "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": 1022.2348769999999
        },
        {
          "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": 182.7811700000002
        },
        {
          "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": 243.86330499999985
        },
        {
          "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": 155.8173939999997
        },
        {
          "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": 228.54974000000038
        },
        {
          "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.74680399999943
        },
        {
          "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": 500.4056270000001
        },
        {
          "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": 140.25676300000032
        },
        {
          "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": 226.04842499999995
        },
        {
          "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": 86.14307699999972
        },
        {
          "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": 221.35275300000012
        },
        {
          "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": 78.29780200000005
        },
        {
          "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": 80.46533400000044
        },
        {
          "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": 103.03547999999955
        },
        {
          "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": 449.98691899999994
        },
        {
          "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": 167.17933999999877
        },
        {
          "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": 324.63311299999987
        },
        {
          "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": 155.99521699999968
        },
        {
          "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.37572199999886
        },
        {
          "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": 59.772517999999764
        }
      ],
      "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": 8
        },
        {
          "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": 1
        },
        {
          "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": 1
        },
        {
          "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": 245
        },
        {
          "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": 74
        },
        {
          "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": 2
        },
        {
          "name": "merges runs by id+attempt and keeps newest first",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 17
        },
        {
          "name": "rejects traversal and symlinks escaping the data directory",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "proxies to controller with bearer token and returns JSON body",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "returns 503 when controller connection is not configured",
          "status": "passed",
          "durationMs": 16
        },
        {
          "name": "refuses a registry-disabled host without contacting the controller",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "refuses a host the registry does not declare",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "fails closed when the registry cannot be read",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns activity response shape",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "returns 400 for invalid from",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "returns 400 for invalid limit",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 1
        },
        {
          "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": 1
        },
        {
          "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": 3
        },
        {
          "name": "preserves stale attempt conflicts and journals config patch atomically",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "authorizes every config patch key against authoritative mutability metadata",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "bounds and redacts harness config patches before parsing",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "forwards exact run controls",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "spawns and journals exact ci.rerunFailed argv",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "spawns and journals exact ci.cancelRun argv",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "accepts exact repository regex boundaries",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "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": 2
        },
        {
          "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": 1
        },
        {
          "name": "rejects an obsolete run from a reused train branch",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects refsComplete false",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects trainRunsComplete false",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects prsComplete false",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects trainsComplete false",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 3
        },
        {
          "name": "rejects a stale adapter snapshot",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "rejects after a successful poll is followed by a failed poll",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "abandon and restore are idempotent local actions with journal entries",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "abandon rejects invalid args with the steer validation shape",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "forwards a decision answer through the harness adapter",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 3
        },
        {
          "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": 3
        },
        {
          "name": "job-retry with job absent from remote-jobs panel returns 400",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "job-retry forwards jobId to controller args",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "controller unreachable returns typed 502",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 3
        },
        {
          "name": "unknown decisionId returns 404",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "invalid choice returns 400 when options are fixed and free text is disabled",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 2
        },
        {
          "name": "unknown adwId returns 404 without spawning",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "non-running session returns 409 without spawning",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "invalid adwId returns 400 without touching the db",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "failed factory stop spawn returns 500 with stderr",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "incident.resolve is allowlisted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "missing artifact returns 400 naming the artifact-required rule, provider untouched",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "happy path resolves through the provider and returns ok",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "resolution conflict maps to 409 with the stored-artifact detail",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "unknown incident maps to 404",
          "status": "passed",
          "durationMs": 0
        },
        {
          "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": 6
        },
        {
          "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": 2
        },
        {
          "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": 2
        },
        {
          "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": 2
        },
        {
          "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": 2
        },
        {
          "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": 132
        },
        {
          "name": "fails closed when a live advisory lock is held past the bounded wait",
          "status": "passed",
          "durationMs": 2110
        },
        {
          "name": "serializes concurrent mutations without lost updates",
          "status": "passed",
          "durationMs": 33
        },
        {
          "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": 4
        },
        {
          "name": "returns committed indeterminate success when post-rename fsync and reread both fail",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "GET fsync retries then confirms persistence",
          "status": "passed",
          "durationMs": 33
        },
        {
          "name": "GET reports indeterminate persistence when directory fsync keeps failing",
          "status": "passed",
          "durationMs": 60
        },
        {
          "name": "GET confirmed generation matches disk while lock serializes concurrent POST",
          "status": "passed",
          "durationMs": 214
        },
        {
          "name": "closes the lock descriptor in finally when release fails after commit",
          "status": "passed",
          "durationMs": 7
        },
        {
          "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": 59
        },
        {
          "name": "includes temp cleanup failure in write error before commit",
          "status": "passed",
          "durationMs": 6
        },
        {
          "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": 54
        },
        {
          "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": 0
        },
        {
          "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": 0
        },
        {
          "name": "uses registry defaults, exact JSON essence, and stable known-route methods",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rejects prototype hook IDs as unknown-hook-control",
          "status": "passed",
          "durationMs": 0
        },
        {
          "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": 0
        },
        {
          "name": "GET /health returns 401 without auth",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "GET /health returns ok with valid bearer",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "GET /state returns panels and adapter statuses",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "cluster reads expose the snapshot, exact node, workload evidence, and honest 404s",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "GET /items returns items, filterable by kind",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "GET /events streams an SSE delta on new poll data",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "an idle /events stream outlives Bun&apos;s default 10s idleTimeout",
          "status": "passed",
          "durationMs": 12003
        },
        {
          "name": "harness reads are authenticated, exact, and preserve query cursor",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "task SSE is relayed without buffering and cancellation closes upstream",
          "status": "passed",
          "durationMs": 24
        },
        {
          "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": 1
        },
        {
          "name": "binding an already-bound port throws CollectorFatalError with code PORT_BUSY",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects requests without auth",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 0
        },
        {
          "name": "unreadable config file throws a named fatal error",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "reads rules with the provider account registry",
          "status": "passed",
          "durationMs": 17
        },
        {
          "name": "rejects an unknown account slug without changing the file",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rejects malformed and extra fields without changing the file",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "atomically replaces the complete routing file",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rejects noncanonical account slugs",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects invalid alias min-length registry for both routing and incidents parsers",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "default config enables every wave-1 adapter",
          "status": "passed",
          "durationMs": 3
        },
        {
          "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": 0
        },
        {
          "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": 0
        },
        {
          "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": 5
        },
        {
          "name": "rejects malformed and unknown fields before reaching the provider",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects a client-supplied wrapper model before reaching the provider",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "rejects each tampered dispatch dimension before reaching the provider",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "accepts unsafe:true when authority declares unsafe and persists authoritative wrapper",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects unsupported unsafe permission before reaching the provider",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "rejects an unready account before reaching the provider",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "rejects a body over the collector limit",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "authority load failures occur before Kanboard mutation or idempotency creation",
          "status": "passed",
          "durationMs": 8
        },
        {
          "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": 0
        },
        {
          "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": 4
        },
        {
          "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": 0
        },
        {
          "name": "a session with no runtime session id yet carries no resume id",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 0
        },
        {
          "name": "host, parent, mux and the classifier&apos;s own verdict all reach the record",
          "status": "passed",
          "durationMs": 4
        },
        {
          "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": 3
        },
        {
          "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": 5
        },
        {
          "name": "quotes every remote command argument",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "registry gating refuses unknown and unreachable hosts by name",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a hung command is killed and returns an honest timeout",
          "status": "passed",
          "durationMs": 31
        },
        {
          "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": 0
        },
        {
          "name": "a missing tmux binary reports unavailable instead of failing opaquely",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "keystrokes are sent literally to the ledger&apos;s tmux target",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "name": "throws on json-rpc false failure result",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "throws on json-rpc error envelope",
          "status": "passed",
          "durationMs": 0
        },
        {
          "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": 8
        },
        {
          "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": 2
        },
        {
          "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": 6
        },
        {
          "name": "shares a single in-flight resolution across concurrent callers",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 3
        },
        {
          "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": 25
        },
        {
          "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": 12
        },
        {
          "name": "returns a single incident and 404 for an unknown id",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "decodes the incident id segment",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "surfaces an unavailable store as 503 on both routes",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "files and dispatches through dedicated mutation routes",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "serves taxonomy options and reports missing assets as unavailable",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "preserves named authority and dispatch errors without partial options 200",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "requires auth and returns 404 for an unknown incident on the brief route",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "assembles a fresh brief and prefers the persisted one",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "surfaces a brief assembly failure as a named refusal, never a bare 500",
          "status": "passed",
          "durationMs": 9
        },
        {
          "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": 0
        },
        {
          "name": "resolves scope filters without mixing active and resolved",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "filters by query and priority",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "maps getAllComments entries with comment field for incident detail",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 3
        },
        {
          "name": "dispatches a filed incident, persisting brief and provenance with the dispatch metadata",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "aborts the dispatch transition when brief assembly throws",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "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": 0
        },
        {
          "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": 10
        },
        {
          "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": 7
        },
        {
          "name": "propagates runSlug from sessions.run_slug",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "returns null runSlug when sessions.run_slug column is absent",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "propagates repoName from sessions.repo_name",
          "status": "passed",
          "durationMs": 3
        },
        {
          "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": 10
        },
        {
          "name": "discovers an optional column added in the same db file after polling",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "prefers attempt model and exposes account while legacy attempt columns stay optional",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "computes idle time only for running attempts with heartbeat data",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "surfaces attempts, phase durations, and parsed or raw gate checks from legacy columns",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "surfaces phase diffs and owned processes",
          "status": "passed",
          "durationMs": 12
        },
        {
          "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": 7
        },
        {
          "name": "surfaces ordered tool calls with safe parsed args and timeout kind",
          "status": "passed",
          "durationMs": 7
        },
        {
          "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": 7
        },
        {
          "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": 85
        },
        {
          "name": "does not skip cross-session events when a new session bootstraps after an incremental event",
          "status": "passed",
          "durationMs": 36
        },
        {
          "name": "preserves open db and cursor across mtime/size changes but rebuilds on inode replacement",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "rebuilds safely after db replacement and schema reset",
          "status": "passed",
          "durationMs": 28
        },
        {
          "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": 10
        },
        {
          "name": "does not project answered or canceled decisions",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "projects pending decisions across multiple repos",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "panel runs carry the full decision history including answered decisions",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "linear-projection ETA from 60% -&gt; 70% -&gt; 78% over 30 minutes",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 0
        },
        {
          "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": 17
        },
        {
          "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": 0
        },
        {
          "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": 3
        },
        {
          "name": "poll does not await probes, then merges cached remote records with remote collisions winning",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 0
        },
        {
          "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": 2
        },
        {
          "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": 0
        },
        {
          "name": "emits gate decision items for warnignore additions awaiting sign-off",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "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": 6
        },
        {
          "name": "parses verdict tags: works=WORKS-count, 4-way breakdown, per-criterion rows, fenced decoy excluded",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "reachedAt: committed criterion line gets its commit date; uncommitted (zero-SHA) line stays null",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "computes 7-day trend from a fake git log: works 7 days ago vs now",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 2
        },
        {
          "name": "churn threshold: commitsSinceLastWorksDelta over threshold fires churn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a missing or unreadable GOLIVE.md drops that repo from the panel without throwing; other repos survive",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "empty git history (untracked GOLIVE.md) is tolerated: zero trend, no churn",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "sourceUpdatedAt: newest GOLIVE.md commit date, normalised to an ISO instant",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "sourceUpdatedAt: never-committed GOLIVE.md stays null",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "scores from origin/main when the remote branch exists — working tree never shadows it",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "origin/main derivation anchors history reads to the ref",
          "status": "passed",
          "durationMs": 0
        },
        {
          "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": 0
        },
        {
          "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": 6
        },
        {
          "name": "rejects failed or invalid queue reads so collector retains prior plans state",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "keeps legacy plans output free of every observability field",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 1
        },
        {
          "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": 21
        },
        {
          "name": "caps concurrent decisions and timeline requests",
          "status": "passed",
          "durationMs": 109
        },
        {
          "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": 4
        },
        {
          "name": "proxies decision answers with the bearer token and JSON body",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 4
        },
        {
          "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": 6
        },
        {
          "name": "keeps a newer generation when an older in-flight request fails",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "pins a poll and established SSE stream to their starting connection",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "invalidates SSE handshakes, rotates tokens, and never reads fixed-endpoint pointers",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "rejects failed /runs reads rather than mixing stale runs with queue state",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "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": 0
        },
        {
          "name": "mem runway: eta at the 30 minute boundary does not fire",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 0
        },
        {
          "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": 1
        },
        {
          "name": "speaks the agent-guard poll protocol over a unix socket",
          "status": "passed",
          "durationMs": 43
        },
        {
          "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": 0
        },
        {
          "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": 0
        },
        {
          "name": "unreadable queued buildslot ticket rejects the poll",
          "status": "passed",
          "durationMs": 3
        },
        {
          "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": 16
        },
        {
          "name": "keeps train evidence when GitHub returns a short partial history page",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "treats a full first history page as complete when total_count exceeds the page size",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "serves persisted run history when the latest GitHub fetch fails",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "treats missing self-hosted runners as empty occupancy",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 1
        },
        {
          "name": "rejects exact-run responses containing a different head SHA",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 5
        },
        {
          "name": "rotates 10 configured repos in exact batches",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "rotates 11 configured repos in exact batches",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "rotates 21 configured repos in exact batches",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "latches the tenth successful poll and uses an inclusive UTC seven-day query",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "retains a failed merged-fetch latch until a later successful admitted poll",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "finishes every fixed and exact query before jobs or logs and stays within the poll budget",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "pins ordinary, mixed-due, and all-due five-repo arithmetic",
          "status": "passed",
          "durationMs": 112
        },
        {
          "name": "rotates constrained job admission after dispatch failure",
          "status": "passed",
          "durationMs": 26
        },
        {
          "name": "rotates constrained log admission independently",
          "status": "passed",
          "durationMs": 38
        },
        {
          "name": "preserves stable run-failure item identity",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 0
        },
        {
          "name": "applies completeness guard %s",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "applies completeness guard %s",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "derives PR queue metrics, staleVsMain, checks, and train membership",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 4
        },
        {
          "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": 3
        },
        {
          "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": 6
        },
        {
          "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": 5
        },
        {
          "name": "nulls both merged metrics for invalid timestamp",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 4
        },
        {
          "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": 38
        },
        {
          "name": "filters invalid created time from amplification",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 0
        },
        {
          "name": "builds a bots panel with runtime status, traffic health, msgs, errors, and cost",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 3
        },
        {
          "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": 3
        },
        {
          "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": 0
        },
        {
          "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": 5
        },
        {
          "name": "does not cache a body above the size bound",
          "status": "passed",
          "durationMs": 6
        },
        {
          "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": 3
        },
        {
          "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": 18
        },
        {
          "name": "plumbs structured controller KPI samples and derives longest observed pull-back",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "a lifetime exit counter with no open circuit raises no capability item",
          "status": "passed",
          "durationMs": 4
        },
        {
          "name": "2026-07-18 incident: exactly remote-idle-queue-stalled + capability-missing with job links",
          "status": "passed",
          "durationMs": 2
        },
        {
          "name": "controller-down: one controller-down item and all panels stale",
          "status": "passed",
          "durationMs": 3
        },
        {
          "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": 4
        },
        {
          "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": 4
        },
        {
          "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": 4
        },
        {
          "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": 0
        },
        {
          "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": 9
        },
        {
          "name": "publishes stall, tmpfs and work-slice facts per host on the fleet panel",
          "status": "passed",
          "durationMs": 2
        },
        {
          "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": 9
        },
        {
          "name": "a full tmpfs alerts because writes are already failing; a merely busy one does not",
          "status": "passed",
          "durationMs": 1
        },
        {
          "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": 25
        },
        {
          "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": 0
        },
        {
          "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": 1
        },
        {
          "name": "keeps other category counts when filtering by one category",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "narrows category and source facets with non-category filters",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "omits facets with zero matches instead of fabricating zeros",
          "status": "passed",
          "durationMs": 3
        },
        {
          "name": "respects limit after sorting and clamps above max to 2000",
          "status": "passed",
          "durationMs": 36
        },
        {
          "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": 10
        },
        {
          "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": 0
        },
        {
          "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": 16
        },
        {
          "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": 0
        },
        {
          "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": 1
        },
        {
          "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": 5
        },
        {
          "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": 0
        },
        {
          "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": 18
        },
        {
          "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": 12
        },
        {
          "name": "refuses stale publication, preserves staging and emits act event",
          "status": "passed",
          "durationMs": 10
        },
        {
          "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": 6
        },
        {
          "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": 5
        },
        {
          "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": 0
        },
        {
          "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": 8
        },
        {
          "name": "promotes an enrolling host with no operator action",
          "status": "passed",
          "durationMs": 7
        },
        {
          "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": 5
        },
        {
          "name": "skips the pass entirely when nothing is enrolling",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "does not start a second pass while one is in flight",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 6
        },
        {
          "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": 3
        },
        {
          "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": 7
        },
        {
          "name": "conflicts preserve job and append one event",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "raw 126/127 reports never blame argv[0] without executor evidence",
          "status": "passed",
          "durationMs": 8
        },
        {
          "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": "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": 1
        },
        {
          "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": 6
        },
        {
          "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": 4
        },
        {
          "name": "open breaker stays open for every exit code including success",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "half-open success closes through recordExit and emits capability-restored",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "half-open nonzero re-opens and admit does not close probation",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "breaker opening and capability-missing event commit atomically",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "unrelated host updates preserve half-open breaker state",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "status projects breaker through existing capability fields",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "half-open breaker does not project as a missing command",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 12
        },
        {
          "name": "command breakers do not mutate manifest capability",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 7
        },
        {
          "name": "missing config and token boot with defaults and created token",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "invalid config stays live degraded with one incident and loopback bind",
          "status": "passed",
          "durationMs": 22
        },
        {
          "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": 2233
        },
        {
          "name": "systemd notify emits READY once and WATCHDOG every 10s only with NOTIFY_SOCKET",
          "status": "passed",
          "durationMs": 139
        },
        {
          "name": "pending admission recovery completes before bind and READY",
          "status": "passed",
          "durationMs": 46
        },
        {
          "name": "missing systemd-notify logs once and keeps server live",
          "status": "passed",
          "durationMs": 32
        },
        {
          "name": "health stays responsive while an in-flight probe is pending",
          "status": "passed",
          "durationMs": 26
        },
        {
          "name": "shutdown closes the single store",
          "status": "passed",
          "durationMs": 17
        },
        {
          "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": 11
        },
        {
          "name": "emits a /jobs/report for a newly completed pod and does not re-report it",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "tick() rejects when the k3s API is unreachable, so the run loop can back off",
          "status": "passed",
          "durationMs": 11
        },
        {
          "name": "run loop backs off on repeated failure and resets on success, never a hot loop",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "opens with revision 0 and empty fleet",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "drops wrapper-named breakers on open and keeps executable ones",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "enforces exact receipt authority at the feature state boundary",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "persists revision across reopen",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "rejects permanent fallback lease",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "expires fallback lease after ttl",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "idempotency replay survives reopen within 24h",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "audit write failure throws AuditWriteError",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "mutations are transactional",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "nested mutations share one transaction and return values",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "persists report job fields and succeeded releases reservations",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 5
        },
        {
          "name": "transition commit CAS cancels stale journal without state writes",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "clears spine-config degradation whose config file no longer exists",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 12
        },
        {
          "name": "omits the builds-24h series rather than publishing zero when no count was recorded",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "publishes every spec series with exact labels and multi-mount disks",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "serves Prometheus text and selector-aware vector JSON behind Bearer auth",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "reuses a short-lived collect cache across repeated queries",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "enforces the exact event shape and non-job sentinels",
          "status": "passed",
          "durationMs": 18
        },
        {
          "name": "builds exact report events",
          "status": "passed",
          "durationMs": 15
        },
        {
          "name": "replays lifecycle events in strict revision order from a cursor",
          "status": "passed",
          "durationMs": 36
        },
        {
          "name": "rolls back state and event when event append fails",
          "status": "passed",
          "durationMs": 13
        },
        {
          "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": 0
        },
        {
          "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": 1
        },
        {
          "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": 66
        },
        {
          "name": "dispatches durable FIFO to least-loaded eligible builders",
          "status": "passed",
          "durationMs": 22
        },
        {
          "name": "requires available capability-passed non-quarantined builder",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "atomically prevents concurrent per-host oversubscription",
          "status": "passed",
          "durationMs": 96
        },
        {
          "name": "reconciles terminal jobs after restart without leaking host slots",
          "status": "passed",
          "durationMs": 28
        },
        {
          "name": "restart requeues a placed ticket when no job ledger was created",
          "status": "passed",
          "durationMs": 34
        },
        {
          "name": "ordinary store opens cannot erase an in-flight reservation",
          "status": "passed",
          "durationMs": 24
        },
        {
          "name": "releases the host slot atomically when a job becomes terminal",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "releases host reservation exactly once without touching global limit",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "spills only when all builders are overloaded and queue exceeds builder count",
          "status": "passed",
          "durationMs": 12
        },
        {
          "name": "terminal spill clears its lease",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "spill placement atomically rechecks overload predicate",
          "status": "passed",
          "durationMs": 24
        },
        {
          "name": "newly enrolled builder receives new dispatch without a host allowlist",
          "status": "passed",
          "durationMs": 14
        },
        {
          "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": 5
        },
        {
          "name": "transition verbs reconcile scheduler placements and recall spill state",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "projects scheduler state through the closed ControllerStatus shape",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "migration deterministically preserves the first legacy duplicate ticket",
          "status": "passed",
          "durationMs": 14
        },
        {
          "name": "projects stale running jobs at read time without writing",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "derives observed 24h route, success, and exit-127 samples from the job ledger",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "leaves success unrecorded when no 24h job has a terminal result",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 0
        },
        {
          "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": 5
        },
        {
          "name": "stale expectedRevision returns 409 without mutation",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "idempotency replay returns prior result without re-exec",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "idempotency replay wins over stale revision",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "audit write failure returns 403",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "box-drain moves host to draining",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "admission-reconcile does not enter maintenance while jobs run",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "admission-reconcile advances draining to maintenance when idle",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "admission-reconcile probes enrolling hosts concurrently and promotes only green",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "admission-reconcile rejects host args and loses post-probe CAS",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "box-restore requires green health to reach available",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "host quarantine and unquarantine route through persisted breaker states",
          "status": "passed",
          "durationMs": 7
        },
        {
          "name": "job-retry only for infra failures",
          "status": "passed",
          "durationMs": 7
        },
        {
          "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": 13
        },
        {
          "name": "kill-mid-transition for box-restore converges on restart",
          "status": "passed",
          "durationMs": 21
        },
        {
          "name": "kill-mid-transition for host-quarantine converges on restart",
          "status": "passed",
          "durationMs": 25
        },
        {
          "name": "kill-mid-transition for host-unquarantine converges on restart",
          "status": "passed",
          "durationMs": 26
        },
        {
          "name": "kill-mid-transition for admission-reconcile converges on restart",
          "status": "passed",
          "durationMs": 44
        },
        {
          "name": "kill-mid-transition for job-retry converges on restart",
          "status": "passed",
          "durationMs": 32
        },
        {
          "name": "kill-mid-transition for ci-reconcile converges on restart",
          "status": "passed",
          "durationMs": 32
        },
        {
          "name": "kill-mid-transition for recall-spill converges on restart",
          "status": "passed",
          "durationMs": 18
        },
        {
          "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": 12
        },
        {
          "name": "repeated-command-not-found dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 10
        },
        {
          "name": "queue-stalled-while-idle dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 5
        },
        {
          "name": "fallback-lease-or-drain-stuck dedupes durable incident and applies notification policy",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 6
        },
        {
          "name": "migrates legacy config incidents into durable incident records",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "critical package temperature pages and pauses only affected host until clear",
          "status": "passed",
          "durationMs": 6
        },
        {
          "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": 13
        },
        {
          "name": "refuses every wrong-candidate readiness receipt",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "replays deterministic refusal without creating another journal",
          "status": "passed",
          "durationMs": 6
        },
        {
          "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": 7
        },
        {
          "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": 7
        },
        {
          "name": "permits OFF rollback and retirement after review expiry",
          "status": "passed",
          "durationMs": 9
        },
        {
          "name": "retires expired ON state and removes state and evidence after rollback window",
          "status": "passed",
          "durationMs": 13
        },
        {
          "name": "rolls back activation atomically on evidence drift",
          "status": "passed",
          "durationMs": 8
        },
        {
          "name": "rolls back on CAS conflict before activation",
          "status": "passed",
          "durationMs": 6
        },
        {
          "name": "fails closed after definition review date",
          "status": "passed",
          "durationMs": 5
        },
        {
          "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": 0
        },
        {
          "name": "fails closed after review expiry and requires a cleanup task",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects unknown keys, invalid dates, and duplicate IDs",
          "status": "passed",
          "durationMs": 2
        }
      ],
      "testCounts": {
        "passed": 226,
        "failed": 0,
        "skipped": 0,
        "total": 226
      }
    },
    "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": 327.02551399999993
        },
        {
          "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": 15.027299000000312
        },
        {
          "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": 132.1933340000005
        },
        {
          "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": 234.08787699999993
        },
        {
          "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": 49.0372440000001
        },
        {
          "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": 263.825916
        },
        {
          "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": 45.15203999999994
        },
        {
          "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.39108600000009
        },
        {
          "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": 6.712829000000056
        },
        {
          "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": 14.96035199999983
        },
        {
          "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": 150.76289900000006
        },
        {
          "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": 15.282077999999956
        },
        {
          "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": 226.95725500000003
        },
        {
          "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": 6.090556000000106
        },
        {
          "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": 184.01793099999986
        },
        {
          "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": 15.581887000000052
        },
        {
          "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": 240.886663
        },
        {
          "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": 36.59668999999985
        },
        {
          "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": 15.428512999999839
        },
        {
          "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": 268.1168089999999
        },
        {
          "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": 14.592106999999942
        },
        {
          "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": 10.660035999999991
        },
        {
          "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": 9.677616000000171
        },
        {
          "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": 12.071815999999899
        },
        {
          "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": 10.628489999999829
        },
        {
          "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.934322000000066
        },
        {
          "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": 180.22765100000015
        },
        {
          "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.805242999999791
        },
        {
          "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": 29.629472000000078
        },
        {
          "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": 17.099960999999894
        },
        {
          "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": 222.91360600000007
        },
        {
          "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.351051000000552
        },
        {
          "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": 29.593751999999768
        },
        {
          "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": 37.15801400000055
        },
        {
          "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": 217.46855900000014
        },
        {
          "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.5782050000000254
        },
        {
          "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": 3.0266639999999825
        },
        {
          "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.7320170000000417
        },
        {
          "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": 9.911264999999958
        },
        {
          "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": 201.06556
        },
        {
          "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": 15.881616000000122
        },
        {
          "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": 19.73670900000002
        },
        {
          "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": 70.48726499999998
        },
        {
          "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": 93.53523799999994
        },
        {
          "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": 191.58027500000026
        },
        {
          "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": 39.06034900000009
        },
        {
          "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.939276999999947
        },
        {
          "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.3867629999999735
        },
        {
          "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": 2.925903000000062
        },
        {
          "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": 3.821822999999995
        },
        {
          "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": 3.025045000000091
        },
        {
          "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": 151.38686499999994
        },
        {
          "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": 289.57252400000016
        },
        {
          "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": 28.28663800000004
        },
        {
          "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": 30.88081800000009
        },
        {
          "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": 6.85336499999994
        },
        {
          "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": 273.8378539999999
        },
        {
          "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": 48.91804000000002
        },
        {
          "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": 47.47286600000007
        },
        {
          "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": 7.461662999999817
        },
        {
          "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": 212.18043500000022
        },
        {
          "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.400516000000152
        },
        {
          "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.692164000000048
        },
        {
          "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": 183.86384900000007
        },
        {
          "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": 11.413622000000032
        },
        {
          "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": 24.326825999999983
        },
        {
          "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": 57.56552499999998
        },
        {
          "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": 8.249503000000004
        },
        {
          "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": 19.951017000000093
        },
        {
          "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": 38.49748599999998
        },
        {
          "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": 22.226572999999917
        },
        {
          "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": 17.337870999999723
        },
        {
          "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.5409050000002935
        },
        {
          "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.390574999999899
        },
        {
          "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": 33.71177200000011
        },
        {
          "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": 36.20384899999999
        },
        {
          "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.6969960000001265
        },
        {
          "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": 13.984484000000066
        },
        {
          "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": 190.15982499999996
        },
        {
          "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": 5.803548000000092
        },
        {
          "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": 7.405483000000004
        },
        {
          "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": 221.28568600000017
        },
        {
          "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": 32.65618799999993
        },
        {
          "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": 144.51847499999985
        },
        {
          "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": 47.02765499999987
        },
        {
          "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": 165.20793100000014
        },
        {
          "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": 35.796955000000025
        },
        {
          "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.378905000000032
        },
        {
          "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.479376000000002
        },
        {
          "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.9376740000000154
        },
        {
          "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.741032000000132
        },
        {
          "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": 5.505558999999948
        },
        {
          "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": 266.5412530000001
        },
        {
          "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": 19.42530099999999
        },
        {
          "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.724623000000065
        },
        {
          "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.80293400000005
        },
        {
          "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.2257710000001225
        },
        {
          "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": 47.83999300000005
        },
        {
          "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.744752000000062
        },
        {
          "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.654622000000018
        },
        {
          "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": 51.671732999999904
        },
        {
          "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": 4.875538000000006
        },
        {
          "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.510784000000058
        },
        {
          "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": 35.67773000000011
        },
        {
          "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": 11.405872000000045
        },
        {
          "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": 7.772936999999956
        },
        {
          "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.199497000000065
        },
        {
          "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": 63.669384000000036
        },
        {
          "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": 9.485591999999997
        },
        {
          "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.1746650000000045
        },
        {
          "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": 2.32630499999982
        },
        {
          "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.8052110000000994
        },
        {
          "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.303199000000177
        },
        {
          "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": 50.47090800000001
        },
        {
          "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.450994000000037
        },
        {
          "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.673001999999997
        },
        {
          "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.851615000000038
        },
        {
          "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.732348000000002
        },
        {
          "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.6205469999999877
        },
        {
          "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.75683700000036
        },
        {
          "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": 6.580097000000023
        },
        {
          "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": 28.692977999999812
        },
        {
          "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": 143.0794780000001
        },
        {
          "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": 40.084082999999964
        },
        {
          "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.480245999999852
        },
        {
          "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": 295.72299999999996
        },
        {
          "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": 8.57221699999991
        },
        {
          "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": 8.558084000000008
        },
        {
          "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": 5.536839999999984
        },
        {
          "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.09786999999983
        },
        {
          "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": 5.7851190000001225
        },
        {
          "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": 5.071141000000125
        },
        {
          "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.226210000000037
        },
        {
          "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.369226000000026
        },
        {
          "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.072161000000051
        },
        {
          "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": 12.331926000000294
        },
        {
          "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": 10.510907000000316
        },
        {
          "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": 3.519984999999906
        },
        {
          "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.38648199999989
        },
        {
          "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": 42.308492999999544
        },
        {
          "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": 343.0957589999998
        },
        {
          "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": 180.30372699999953
        },
        {
          "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": 82.17189099999996
        },
        {
          "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": 46.593346999999994
        },
        {
          "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.66389199999958
        },
        {
          "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": 20.4229720000003
        },
        {
          "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": 29.900542000000314
        },
        {
          "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": 31.60692899999958
        },
        {
          "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": 24.785499999999956
        },
        {
          "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": 48.81248400000004
        },
        {
          "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": 206.96389299999987
        },
        {
          "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": 48.10805299999993
        },
        {
          "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": 50.92925200000013
        },
        {
          "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": 143.632339
        },
        {
          "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": 232.24903300000005
        },
        {
          "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.27730900000006
        },
        {
          "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": 23.742936999999984
        },
        {
          "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": 66.05216599999994
        },
        {
          "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": 34.716504000000214
        },
        {
          "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": 62.832341999999926
        },
        {
          "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": 126.06842299999994
        },
        {
          "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": 16.82908999999995
        },
        {
          "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": 173.60975600000006
        },
        {
          "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": 8.581945000000132
        },
        {
          "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": 45.65751599999999
        },
        {
          "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": 10.980129000000034
        },
        {
          "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": 328.4717410000003
        },
        {
          "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": 104.40785200000028
        },
        {
          "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.557095999999547
        },
        {
          "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": 71.96414499999992
        },
        {
          "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": 248.16406899999947
        },
        {
          "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": 13.509488000000601
        },
        {
          "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": 17.891771999999946
        },
        {
          "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.166377000000466
        },
        {
          "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": 14.327414000000317
        },
        {
          "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": 10.305132999999842
        },
        {
          "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": 14.7148559999996
        },
        {
          "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": 79.65021199999956
        },
        {
          "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.668251999999484
        },
        {
          "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": 47.55957800000033
        },
        {
          "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": 34.83912099999998
        },
        {
          "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": 72.74633100000028
        },
        {
          "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": 480.2455380000001
        },
        {
          "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": 248.80227899999954
        },
        {
          "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": 68.99357399999917
        },
        {
          "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.15949400000045
        },
        {
          "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": 39.065983999999844
        },
        {
          "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": 34.65305100000023
        },
        {
          "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.044582999999875
        },
        {
          "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": 109.01176200000009
        },
        {
          "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.428265999999894
        },
        {
          "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": 194.4391230000001
        },
        {
          "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": 20.70021900000006
        },
        {
          "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": 24.829177000000072
        },
        {
          "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": 48.37435800000003
        },
        {
          "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": 325.73477100000014
        },
        {
          "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": 55.687996999999996
        },
        {
          "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": 173.0022039999999
        },
        {
          "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": 264.34521299999983
        },
        {
          "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": 78.36826099999985
        },
        {
          "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": 14.685889999999972
        },
        {
          "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": 6.529021000000057
        },
        {
          "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": 248.00451399999997
        },
        {
          "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": 6.444041999999854
        },
        {
          "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": 9.172644000000219
        },
        {
          "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": 3.8336550000001353
        },
        {
          "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.6332219999999325
        },
        {
          "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.720149999999876
        },
        {
          "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.6314649999999347
        },
        {
          "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": 10.90044899999998
        },
        {
          "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": 15.07771600000001
        },
        {
          "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": 258.0101770000001
        },
        {
          "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": 48.50903799999992
        },
        {
          "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": 35.556331999999884
        },
        {
          "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": 10.98368000000005
        },
        {
          "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": 51.490949999999884
        },
        {
          "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": 10.127478999999994
        },
        {
          "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": 6.632456000000047
        },
        {
          "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": 115.66890500000045
        },
        {
          "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.058957000000191
        },
        {
          "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": 29.44588500000009
        },
        {
          "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": 217.1541900000002
        },
        {
          "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": 47.402176000000054
        },
        {
          "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": 204.78753800000004
        },
        {
          "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": 25.37127099999998
        },
        {
          "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": 19.21415499999989
        },
        {
          "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": 15.071267999999918
        },
        {
          "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": 4.493058999999903
        },
        {
          "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": 5.650280000000066
        },
        {
          "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": 3.9528020000000197
        },
        {
          "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": 3.9906570000000556
        },
        {
          "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.77581000000009
        },
        {
          "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.862769999999955
        },
        {
          "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.9998809999999594
        },
        {
          "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": 4.040711999999985
        },
        {
          "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": 49.406818999999814
        },
        {
          "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": 157.2227580000001
        },
        {
          "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": 18.59072900000001
        },
        {
          "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": 26.76850599999989
        },
        {
          "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.3299460000000636
        },
        {
          "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": 16.983812999999827
        },
        {
          "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": 7.8676020000000335
        },
        {
          "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.6220820000000913
        },
        {
          "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": 34.00078600000006
        },
        {
          "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": 175.19737099999998
        },
        {
          "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": 21.576078000000052
        },
        {
          "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": 2.919926000000032
        },
        {
          "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": 199.7556750000001
        },
        {
          "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": 47.86306600000012
        },
        {
          "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": 147.42868700000008
        },
        {
          "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": 36.30782500000009
        },
        {
          "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": 8.165006000000176
        },
        {
          "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": 296.0118250000005
        },
        {
          "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": 160.54013300000042
        },
        {
          "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": 41.69658000000072
        },
        {
          "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": 5.117717000000084
        },
        {
          "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": 63.80508800000007
        },
        {
          "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": 18.93384600000013
        },
        {
          "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.653753999999935
        },
        {
          "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": 6.042610999999852
        },
        {
          "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": 44.172458000000006
        },
        {
          "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": 67.70320800000013
        },
        {
          "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.08699200000001
        },
        {
          "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": 221.34017299999982
        },
        {
          "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.790181999999959
        },
        {
          "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": 35.60009600000012
        },
        {
          "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": 16.112902000000304
        },
        {
          "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": 7.518032000000403
        },
        {
          "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.557035999999698
        },
        {
          "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.851272999999765
        },
        {
          "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": 12.808629999999994
        },
        {
          "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.15452200000027
        },
        {
          "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.037804999999935
        },
        {
          "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": 12.165417000000161
        },
        {
          "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": 7.264534999999796
        },
        {
          "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": 6.276672999999846
        },
        {
          "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": 17.67712399999982
        },
        {
          "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": 23.806262999999944
        },
        {
          "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": 8.705989000000045
        },
        {
          "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": 5.38366300000007
        },
        {
          "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": 34.29661099999976
        },
        {
          "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": 45.459685000000036
        },
        {
          "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": 7.7426510000000235
        },
        {
          "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": 5.647611999999981
        },
        {
          "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": 164.96680300000003
        },
        {
          "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": 12.60462399999983
        },
        {
          "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": 24.41124999999988
        },
        {
          "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": 31.37648800000011
        },
        {
          "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": 32.536285000000134
        },
        {
          "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": 13.79377599999998
        },
        {
          "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": 93.33560599999987
        },
        {
          "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": 167.413098
        },
        {
          "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": 7.273932000000059
        },
        {
          "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": 46.162358999999924
        },
        {
          "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": 154.429034
        },
        {
          "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": 8.170748000000003
        },
        {
          "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.4389400000000023
        },
        {
          "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": 16.432945000000018
        },
        {
          "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": 223.55544600000007
        },
        {
          "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.53848599999992
        },
        {
          "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": 16.55561499999999
        },
        {
          "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.30805200000009
        },
        {
          "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": 19.340427999999974
        },
        {
          "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": 19.16609900000003
        },
        {
          "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.680431
        },
        {
          "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": 14.004597999999987
        },
        {
          "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.761185999999952
        },
        {
          "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": 4.572074999999813
        },
        {
          "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.5269170000001395
        },
        {
          "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": 10.056355000000167
        },
        {
          "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.98851999999988
        },
        {
          "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.8635400000002846
        },
        {
          "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.102767000000313
        },
        {
          "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": 27.58861999999999
        },
        {
          "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": 23.539222999999765
        },
        {
          "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": 6.218409999999949
        },
        {
          "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": 13.686527000000297
        },
        {
          "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": 61.92672700000003
        },
        {
          "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": 9.355160000000069
        },
        {
          "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": 46.20794100000012
        },
        {
          "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": 8.335921999999982
        },
        {
          "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": 6.116044000000102
        },
        {
          "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": 10.692729999999983
        },
        {
          "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": 291.34201600000006
        },
        {
          "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": 43.63291000000004
        },
        {
          "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": 186.7099700000001
        },
        {
          "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": 19.972278999999844
        },
        {
          "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": 11.84319800000003
        },
        {
          "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": 14.426830000000109
        },
        {
          "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": 42.42891400000008
        },
        {
          "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": 3.9010799999998653
        },
        {
          "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.593373000000156
        },
        {
          "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": 219.29496500000005
        },
        {
          "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": 37.780938000000106
        },
        {
          "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": 25.146179000000075
        },
        {
          "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.883501000000024
        },
        {
          "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.6817740000001322
        },
        {
          "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.34017999999991844
        },
        {
          "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.0268009999999776
        },
        {
          "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.3490239999998721
        },
        {
          "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.19668099999989863
        },
        {
          "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.3040059999998448
        },
        {
          "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.39699899999982335
        },
        {
          "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.15585200000009536
        },
        {
          "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.1349199999999655
        },
        {
          "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.17420999999990272
        },
        {
          "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.5103480000000218
        },
        {
          "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.21658400000001166
        },
        {
          "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.22681299999999283
        },
        {
          "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.28636600000004364
        },
        {
          "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.46063699999990604
        },
        {
          "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.1446739999998954
        },
        {
          "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.1321820000000571
        },
        {
          "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.1685010000001057
        },
        {
          "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.1467330000000402
        },
        {
          "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.210446999999931
        },
        {
          "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.2666300000000774
        },
        {
          "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.21669700000006742
        },
        {
          "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.25310800000011113
        },
        {
          "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.085593999999901
        },
        {
          "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.40544599999998354
        },
        {
          "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.6756880000000365
        },
        {
          "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.22010199999999713
        },
        {
          "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.2970319999999447
        },
        {
          "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.2851630000000114
        },
        {
          "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.26002199999993536
        },
        {
          "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.37031600000000253
        },
        {
          "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.2730349999999362
        },
        {
          "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.43935499999997774
        },
        {
          "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": 6.318975999999793
        },
        {
          "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.0735810000001038
        },
        {
          "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.9093249999998534
        },
        {
          "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.9308820000001106
        },
        {
          "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.5047560000000431
        },
        {
          "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.5684499999999844
        },
        {
          "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.4562550000000556
        },
        {
          "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.23964700000010453
        },
        {
          "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.3440530000000308
        },
        {
          "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.29606200000011995
        },
        {
          "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.24705600000015693
        },
        {
          "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.7390339999999469
        },
        {
          "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": 15.491458000000193
        },
        {
          "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": 60.46467000000007
        },
        {
          "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": 56.221363999999994
        },
        {
          "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": 74.05568999999991
        },
        {
          "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": 55.113035999999965
        },
        {
          "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": 54.49112800000012
        },
        {
          "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": 74.79393399999981
        },
        {
          "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": 26.906115999999884
        },
        {
          "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": 73.7682749999999
        },
        {
          "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.469644000000244
        },
        {
          "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": 80.28740299999981
        },
        {
          "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.1511109999996734
        },
        {
          "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.8219429999999193
        },
        {
          "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.2118689999999788
        },
        {
          "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.49563899999998284
        },
        {
          "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.6145389999999225
        },
        {
          "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.4304329999999936
        },
        {
          "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.3045759999999973
        },
        {
          "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.30861899999990783
        },
        {
          "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.2672649999999521
        },
        {
          "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.5084070000000338
        }
      ],
      "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": 7
        },
        {
          "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": 1
        },
        {
          "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": 11
        },
        {
          "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": 3
        },
        {
          "name": "report accepts stdin-only payloads and exits 0 on delivery failure",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "report exits 64 for invalid stdin",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "host-eligible writes exact verdict line",
          "status": "passed",
          "durationMs": 8
        },
        {
          "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": 25
        },
        {
          "name": "fails open when controller is unreachable",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "rejects unknown keys",
          "status": "passed",
          "durationMs": 1
        },
        {
          "name": "fills every pinned default when fields are omitted",
          "status": "passed",
          "durationMs": 0
        },
        {
          "name": "preserves validated overrides",
          "status": "passed",
          "durationMs": 9
        },
        {
          "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-11T11:47:03.295Z",
      "endedAt": "2026-08-11T11:48:57.271Z",
      "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-11T11:47:03.295Z",
          "endedAt": "2026-08-11T11:47:03.453Z",
          "durationMs": 158,
          "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-11T11:47:04.097Z",
          "endedAt": "2026-08-11T11:47:04.805Z",
          "durationMs": 708,
          "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-11T11:47:05.417Z",
          "endedAt": "2026-08-11T11:47:06.592Z",
          "durationMs": 1175,
          "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-11T11:47:07.234Z",
          "endedAt": "2026-08-11T11:47:07.729Z",
          "durationMs": 495,
          "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-11T11:47:08.291Z",
          "endedAt": "2026-08-11T11:47:39.856Z",
          "durationMs": 31565,
          "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-11T11:47:40.225Z",
          "endedAt": "2026-08-11T11:47:40.417Z",
          "durationMs": 192,
          "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-11T11:47:40.795Z",
          "endedAt": "2026-08-11T11:47:40.833Z",
          "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-11T11:47:41.203Z",
          "endedAt": "2026-08-11T11:47:41.231Z",
          "durationMs": 28,
          "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-11T11:47:41.715Z",
          "endedAt": "2026-08-11T11:47:41.991Z",
          "durationMs": 276,
          "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-11T11:47:42.366Z",
          "endedAt": "2026-08-11T11:48:22.404Z",
          "durationMs": 40038,
          "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-11T11:48:22.779Z",
          "endedAt": "2026-08-11T11:48:22.838Z",
          "durationMs": 59,
          "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-11T11:48:23.206Z",
          "endedAt": "2026-08-11T11:48:23.379Z",
          "durationMs": 173,
          "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-11T11:48:23.749Z",
          "endedAt": "2026-08-11T11:48:24.763Z",
          "durationMs": 1014,
          "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-11T11:48:25.236Z",
          "endedAt": "2026-08-11T11:48:26.643Z",
          "durationMs": 1407,
          "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-11T11:48:27.007Z",
          "endedAt": "2026-08-11T11:48:57.271Z",
          "durationMs": 30264,
          "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-11T11:47:03.295Z",
      "endedAt": "2026-08-11T11:47:03.453Z",
      "durationMs": 158,
      "exitStatus": 0,
      "sourceDigest": "f755db9661143c8caeda4b7acfc4d3b5437f6085fb2467bc7f7c1a123e478aa9",
      "rawDigest": "27e08f0e804ab4a392599f72a715908e5c9b0e9d3667376546cdf3253269f973"
    },
    "module:buildbox:claude-home-settings.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:04.097Z",
      "endedAt": "2026-08-11T11:47:04.805Z",
      "durationMs": 708,
      "exitStatus": 0,
      "sourceDigest": "36054d98b40c9880b263bd89e20e81ba97c6c21e9222a89a7efe624f2c3f0e5d",
      "rawDigest": "384705d8173c7354ea1cde010273f6cda3cef627ed55713439632b9a4c02b0ba"
    },
    "module:buildbox:claude-parity.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:05.417Z",
      "endedAt": "2026-08-11T11:47:06.592Z",
      "durationMs": 1175,
      "exitStatus": 0,
      "sourceDigest": "c0d801167b446bad4feba01bbaea3322415615b9e59df9ba0bcde0dd2e7b7614",
      "rawDigest": "a114f5b6a7570416a849b61de66166a8b6339b77f78c155b8b172b64e326c364"
    },
    "module:buildbox:deadman-branches.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:07.234Z",
      "endedAt": "2026-08-11T11:47:07.729Z",
      "durationMs": 495,
      "exitStatus": 0,
      "sourceDigest": "848695a3a91ec316e03d74309f49267075a0105ee729dde1aa76da3b702b0273",
      "rawDigest": "d0d6f1875235d799cfcc79bd6471c665c23e51c19bc0fc932cb39f46ce1ef116"
    },
    "module:buildbox:devtools.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:08.291Z",
      "endedAt": "2026-08-11T11:47:39.856Z",
      "durationMs": 31565,
      "exitStatus": 0,
      "sourceDigest": "c5a38eee6c7ba596d40750696df8cfa46685e14d17b3b77ceaa41348e13e4678",
      "rawDigest": "778b6deab21ac14818f36216089959058b9e59981c4b50c3e327cbd259e8d0a1"
    },
    "module:buildbox:fleet-guard.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:40.225Z",
      "endedAt": "2026-08-11T11:47:40.417Z",
      "durationMs": 192,
      "exitStatus": 0,
      "sourceDigest": "9cc0c945f39e6949ab6fe99f79cabeccf927ca04f1122bd33e58ad142a971f90",
      "rawDigest": "38fc3f241b00d128a8f3e969e7ce6439b66e45241556998e9d6df9a5e6b71d41"
    },
    "module:buildbox:is-lab-host.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:40.795Z",
      "endedAt": "2026-08-11T11:47:40.833Z",
      "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-11T11:47:41.203Z",
      "endedAt": "2026-08-11T11:47:41.231Z",
      "durationMs": 28,
      "exitStatus": 0,
      "sourceDigest": "f01bda67e7975ec7cba6a0da813a2d44bb6284eaec47d0b9c72dac4b3752c3bf",
      "rawDigest": "4a28e23a07e19be8c81686bb51de6d1f080f53c52117f44421cbd2f9dbe1cdf6"
    },
    "module:buildbox:parity-converge.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:41.715Z",
      "endedAt": "2026-08-11T11:47:41.991Z",
      "durationMs": 276,
      "exitStatus": 0,
      "sourceDigest": "6de3b0c246964eb825ffe2016da8b0848a212fcc8966210ef2a6c3432cc4503b",
      "rawDigest": "daa2f88cfce1c88aca1b5988c993503859b78e6b8e333e54f8c03514a83f3604"
    },
    "module:buildbox:reboot-wait.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:47:42.366Z",
      "endedAt": "2026-08-11T11:48:22.404Z",
      "durationMs": 40038,
      "exitStatus": 0,
      "sourceDigest": "0766ac6261292ecdfea51227d1a8b95a70ef77e9cec95f1d96e9feb326ab10f0",
      "rawDigest": "610beb92a805f1acf85891b5509bbf4487c9b865a5da7baa7675a5ed94347fca"
    },
    "module:buildbox:runner.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:48:22.779Z",
      "endedAt": "2026-08-11T11:48:22.838Z",
      "durationMs": 59,
      "exitStatus": 0,
      "sourceDigest": "a4235cfdb7e737bd396d2ad4a6282193f598b17ce9f76f01f9542eaba1d7128f",
      "rawDigest": "995d1f6085f414915caa74f923747fb234972d76dd874e63856a12261589df9e"
    },
    "module:buildbox:second-disk.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:48:23.206Z",
      "endedAt": "2026-08-11T11:48:23.379Z",
      "durationMs": 173,
      "exitStatus": 0,
      "sourceDigest": "44c9c7a3648d8db2c9826ab851b6af686d3146cd3f4d22dfe825d4d085e8aca1",
      "rawDigest": "d38ad4d8e1b43c8dab02d86f69fde090cca3e0ca2c924718357dc8ed04f56408"
    },
    "module:buildbox:sshd-access-lock.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:48:23.749Z",
      "endedAt": "2026-08-11T11:48:24.763Z",
      "durationMs": 1014,
      "exitStatus": 0,
      "sourceDigest": "032beffcf58fd3152b6350650d7516c9d8d279885c2f447837c019ed2faa5324",
      "rawDigest": "5532bfebc0db4518af92ab176aa8b1d42582013abebc4147fabeba3a564c3606"
    },
    "module:buildbox:telemetry.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:48:25.236Z",
      "endedAt": "2026-08-11T11:48:26.643Z",
      "durationMs": 1407,
      "exitStatus": 0,
      "sourceDigest": "e35e8664fc10eb3b3550fd59376df54d27869009e44d7375290aca5d39e1620f",
      "rawDigest": "d4fdba79ae68d4f708dfc9b666387485b264e90432fbc7803fbbac3bd94b76d4"
    },
    "module:buildbox:vendor.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "workspace-buildbox-record",
      "startedAt": "2026-08-11T11:48:27.007Z",
      "endedAt": "2026-08-11T11:48:57.271Z",
      "durationMs": 30264,
      "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-11T11:49:19.144Z",
      "endedAt": "2026-08-11T11:49:19.157Z",
      "durationMs": 13,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 112,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:19.158Z",
      "endedAt": "2026-08-11T11:49:19.343Z",
      "durationMs": 186,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1184,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:19.344Z",
      "endedAt": "2026-08-11T11:49:19.482Z",
      "durationMs": 139,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 229,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:19.483Z",
      "endedAt": "2026-08-11T11:49:19.565Z",
      "durationMs": 82,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 0,
      "stderrBytes": 516,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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": "9dbfdbaccc5d5db4ce511256f9f2e8983636dffadc6b6b8656b3389346b42da1",
      "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-11T11:49:19.565Z",
      "endedAt": "2026-08-11T11:49:35.349Z",
      "durationMs": 15784,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 4828,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:35.350Z",
      "endedAt": "2026-08-11T11:49:45.420Z",
      "durationMs": 10070,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 362,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:45.420Z",
      "endedAt": "2026-08-11T11:49:45.564Z",
      "durationMs": 144,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 254,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:45.564Z",
      "endedAt": "2026-08-11T11:49:46.792Z",
      "durationMs": 1227,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 813,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:46.792Z",
      "endedAt": "2026-08-11T11:49:46.858Z",
      "durationMs": 66,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 296,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:46.859Z",
      "endedAt": "2026-08-11T11:49:46.901Z",
      "durationMs": 42,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 220,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:46.901Z",
      "endedAt": "2026-08-11T11:49:47.836Z",
      "durationMs": 935,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1094,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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-11T11:49:47.836Z",
      "endedAt": "2026-08-11T11:49:48.420Z",
      "durationMs": 583,
      "exitStatus": 0,
      "status": "passed",
      "signal": null,
      "stdoutBytes": 1803,
      "stderrBytes": 0,
      "logPath": "/home/user/actions-runner-overdeck-debian1/_work/overdeck/overdeck/.ci-results/31488133161-1-6d829df8aa277b235a3d335c789b34332b0ceacc/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": 88
        },
        {
          "name": "preserves heuristic detection for trivial probes",
          "status": "passed",
          "durationMs": 88
        },
        {
          "name": "fixture name in prompt or comment cannot bypass a raw denial",
          "status": "passed",
          "durationMs": 45
        },
        {
          "name": "allows actual fixture invocations and benign implementation or review dispatches",
          "status": "passed",
          "durationMs": 133
        },
        {
          "name": "a labelled immediate-next line blocks",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "a next-steps heading blocks",
          "status": "passed",
          "durationMs": 40
        },
        {
          "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": 19
        },
        {
          "name": "prose forms block",
          "status": "passed",
          "durationMs": 96
        },
        {
          "name": "the phrase inside a fenced block does not block",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "the phrase inside a double-quoted span does not block",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "a plain completion report does not block",
          "status": "passed",
          "durationMs": 19
        },
        {
          "name": "newly covered asks block",
          "status": "passed",
          "durationMs": 135
        },
        {
          "name": "the say-go family blocks",
          "status": "passed",
          "durationMs": 174
        },
        {
          "name": "a quoted or backticked mention of say-go does not block",
          "status": "passed",
          "durationMs": 41
        },
        {
          "name": "ordinary prose containing go is untouched",
          "status": "passed",
          "durationMs": 20
        },
        {
          "name": "existing asks still block",
          "status": "passed",
          "durationMs": 76
        },
        {
          "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": 19
        },
        {
          "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": 18
        },
        {
          "name": "a malformed transcript returns silently",
          "status": "passed",
          "durationMs": 18
        }
      ],
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "suiteStartedEvidence": "=== tests/os/cutover.test.sh",
      "exitStatus": 0
    },
    "os:deck-podman.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "suiteStartedEvidence": "=== tests/os/ref-sweep.test.sh",
      "exitStatus": 0
    },
    "os:schema.test.sh": {
      "status": "passed",
      "granularity": "suite",
      "observedVia": "os-shell-suites",
      "startedAt": "2026-08-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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-11T11:49:49.664Z",
      "endedAt": "2026-08-11T11:51:01.838Z",
      "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": 45
        },
        {
          "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": 14
        },
        {
          "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": 21
        },
        {
          "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": 1563
        }
      ],
      "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": 426
        },
        {
          "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": 352
        }
      ],
      "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": 475
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders correctly in light theme",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "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": 429
        },
        {
          "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": 4367
        },
        {
          "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": 4362
        },
        {
          "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": 375
        },
        {
          "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": 589
        }
      ],
      "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": 400
        },
        {
          "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": 407
        },
        {
          "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": 839
        },
        {
          "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": 408
        },
        {
          "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": 4427
        },
        {
          "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": 4984
        },
        {
          "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": 4465
        },
        {
          "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": 4420
        },
        {
          "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": 4376
        }
      ],
      "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": 487
        },
        {
          "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": 386
        },
        {
          "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": 397
        },
        {
          "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": 422
        }
      ],
      "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": 448
        },
        {
          "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": 775
        },
        {
          "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": 416
        },
        {
          "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": 339
        }
      ],
      "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": 380
        },
        {
          "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": 450
        },
        {
          "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": 465
        },
        {
          "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": 561
        },
        {
          "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": 361
        },
        {
          "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": 358
        },
        {
          "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": 401
        },
        {
          "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": 433
        },
        {
          "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": 619
        },
        {
          "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": 434
        }
      ],
      "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": 393
        },
        {
          "name": "apps/web/tests/map.spec.ts::selecting a node updates the inspector",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 385
        },
        {
          "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": 819
        }
      ],
      "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": 441
        },
        {
          "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": 394
        },
        {
          "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": 352
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders queue completeness independently from run history",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 802
        },
        {
          "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": 1033
        }
      ],
      "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": 384
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/factory renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 591
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/agents renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/ci renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 347
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/bots renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 344
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/limits renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 379
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/gates renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 390
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/projects renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 379
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/settings renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 408
        },
        {
          "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": 764
        },
        {
          "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": 692
        },
        {
          "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": 581
        }
      ],
      "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": 395
        },
        {
          "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": 342
        }
      ],
      "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": 602
        },
        {
          "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": 508
        },
        {
          "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": 1498
        },
        {
          "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": 536
        },
        {
          "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": 393
        },
        {
          "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": 627
        }
      ],
      "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": 380
        },
        {
          "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": 137
        },
        {
          "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": 802
        },
        {
          "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": 260
        }
      ],
      "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": 341
        },
        {
          "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": 346
        },
        {
          "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": 349
        },
        {
          "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": 349
        },
        {
          "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": 337
        },
        {
          "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": 347
        },
        {
          "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": 344
        },
        {
          "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": 362
        },
        {
          "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": 393
        },
        {
          "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": 339
        },
        {
          "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": 339
        },
        {
          "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": 343
        },
        {
          "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": 337
        },
        {
          "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": 341
        },
        {
          "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": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox reap action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "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": 394
        }
      ],
      "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": 45
        },
        {
          "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": 14
        },
        {
          "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": 21
        },
        {
          "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": 1563
        },
        {
          "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": 426
        },
        {
          "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": 352
        },
        {
          "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": 475
        },
        {
          "name": "apps/web/tests/ci-build.spec.ts::renders correctly in light theme",
          "file": "apps/web/tests/ci-build.spec.ts",
          "status": "passed",
          "durationMs": 400
        },
        {
          "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": 429
        },
        {
          "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": 4367
        },
        {
          "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": 4362
        },
        {
          "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": 375
        },
        {
          "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": 589
        },
        {
          "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": 400
        },
        {
          "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": 407
        },
        {
          "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": 839
        },
        {
          "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": 408
        },
        {
          "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": 4427
        },
        {
          "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": 4984
        },
        {
          "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": 4465
        },
        {
          "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": 4420
        },
        {
          "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": 4376
        },
        {
          "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": 487
        },
        {
          "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": 386
        },
        {
          "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": 397
        },
        {
          "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": 422
        },
        {
          "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": 448
        },
        {
          "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": 775
        },
        {
          "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": 416
        },
        {
          "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": 339
        },
        {
          "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": 380
        },
        {
          "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": 450
        },
        {
          "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": 465
        },
        {
          "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": 561
        },
        {
          "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": 361
        },
        {
          "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": 358
        },
        {
          "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": 401
        },
        {
          "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": 433
        },
        {
          "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": 619
        },
        {
          "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": 434
        },
        {
          "name": "apps/web/tests/map.spec.ts::renders fixture map nodes and inspector panel",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 393
        },
        {
          "name": "apps/web/tests/map.spec.ts::selecting a node updates the inspector",
          "file": "apps/web/tests/map.spec.ts",
          "status": "passed",
          "durationMs": 385
        },
        {
          "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": 819
        },
        {
          "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": 441
        },
        {
          "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": 394
        },
        {
          "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": 352
        },
        {
          "name": "apps/web/tests/overview.spec.ts::renders queue completeness independently from run history",
          "file": "apps/web/tests/overview.spec.ts",
          "status": "passed",
          "durationMs": 802
        },
        {
          "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": 1033
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/plans renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 384
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/factory renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 591
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/agents renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 375
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/ci renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 347
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/bots renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 344
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/limits renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 379
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/gates renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 390
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/projects renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 379
        },
        {
          "name": "apps/web/tests/pages.spec.ts::/settings renders non-empty fixture content",
          "file": "apps/web/tests/pages.spec.ts",
          "status": "passed",
          "durationMs": 408
        },
        {
          "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": 764
        },
        {
          "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": 692
        },
        {
          "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": 581
        },
        {
          "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": 395
        },
        {
          "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": 342
        },
        {
          "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": 602
        },
        {
          "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": 508
        },
        {
          "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": 1498
        },
        {
          "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": 536
        },
        {
          "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": 393
        },
        {
          "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": 627
        },
        {
          "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": 380
        },
        {
          "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": 137
        },
        {
          "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": 802
        },
        {
          "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": 260
        },
        {
          "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": 341
        },
        {
          "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": 346
        },
        {
          "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": 349
        },
        {
          "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": 349
        },
        {
          "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": 337
        },
        {
          "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": 347
        },
        {
          "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": 344
        },
        {
          "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": 362
        },
        {
          "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": 393
        },
        {
          "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": 339
        },
        {
          "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": 339
        },
        {
          "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": 343
        },
        {
          "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": 337
        },
        {
          "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": 341
        },
        {
          "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": 345
        },
        {
          "name": "apps/web/tests/ui-matrix.spec.ts::/inbox reap action is enabled",
          "file": "apps/web/tests/ui-matrix.spec.ts",
          "status": "passed",
          "durationMs": 348
        },
        {
          "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": 394
        }
      ],
      "testCounts": {
        "passed": 92,
        "failed": 0,
        "flaky": 0,
        "skipped": 1,
        "total": 93
      }
    }
  }
}
