Running 93 tests using 1 worker ✓ 1 [chromium] › apps/web/tests/actions.spec.ts:17:1 › allowlisted action POST without Origin header returns 403 (CSRF default-deny) (45ms) ✓ 2 [chromium] › apps/web/tests/actions.spec.ts:24:1 › non-allowlisted action verb returns 404 through the proxy (14ms) ✓ 3 [chromium] › apps/web/tests/actions.spec.ts:32:1 › reap with pid absent from orphan candidates returns 400 through the proxy (21ms) ✓ 4 [chromium] › apps/web/tests/actions.spec.ts:40:1 › reap confirm dialog posts to the mock executor and shows a success toast (1.6s) - 5 [chromium] › apps/web/tests/bots-live.spec.ts:15:3 › bots page (live stack) › shows named fleet with observability columns, not opaque bot ids ✓ 6 [chromium] › apps/web/tests/bots.spec.ts:74:1 › /bots renders fleet summary and full observability table (426ms) ✓ 7 [chromium] › apps/web/tests/bots.spec.ts:94:1 › overview Bots card shows bot names, not opaque ids (352ms) ✓ 8 [chromium] › apps/web/tests/ci-build.spec.ts:47:1 › renders CI & Build in dark theme with incident fixture fleet and panels (475ms) ✓ 9 [chromium] › apps/web/tests/ci-build.spec.ts:68:1 › renders correctly in light theme (400ms) ✓ 10 [chromium] › apps/web/tests/ci-build.spec.ts:80:1 › clicking a machine card opens detail modal with telemetry sections (429ms) ✓ 11 [chromium] › apps/web/tests/ci-build.spec.ts:92:1 › every action button carries a valid X1 offload verb (378ms) ✓ 12 [chromium] › apps/web/tests/ci-build.spec.ts:105:1 › normal-temp fixture does not show critical temperature banner in modal (4.4s) ✓ 13 [chromium] › apps/web/tests/ci-build.spec.ts:125:1 › crit-temp fixture shows critical temperature banner in modal (4.4s) ✓ 14 [chromium] › apps/web/tests/ci-build.spec.ts:145:1 › CI-only fixture renders CI content and labels every unavailable offload KPI (375ms) ✓ 15 [chromium] › apps/web/tests/ci-build.spec.ts:169:1 › Logs opens read-only viewer; Drain confirm appears above machine modal (589ms) ✓ 16 [chromium] › apps/web/tests/ci-trains.spec.ts:51:1 › renders all-scope trains, cross-repo PRs, runners, and amplification with honest gaps (400ms) ✓ 17 [chromium] › apps/web/tests/ci-trains.spec.ts:87:1 › repo scope filters every train dashboard model and hides the Repo column (407ms) ✓ 18 [chromium] › apps/web/tests/ci-trains.spec.ts:102:1 › train mutations post exact verbs and string args; success waits for HTTP and ToastProvider stays valid (839ms) ✓ 19 [chromium] › apps/web/tests/ci-trains.spec.ts:132:1 › Open performs validated client navigation with no action POST (408ms) ✓ 20 [chromium] › apps/web/tests/ci-trains.spec.ts:144:1 › stale train mutation surfaces exact parsed server error without optimistic success (4.4s) ✓ 21 [chromium] › apps/web/tests/ci-trains.spec.ts:162:1 › cached trains preserve each independent completeness gap and expose no actions (5.0s) ✓ 22 [chromium] › apps/web/tests/ci-trains.spec.ts:181:1 › simultaneous incompleteness reaches every named component without false totals (4.5s) ✓ 23 [chromium] › apps/web/tests/ci-trains.spec.ts:199:1 › missing selected repo after SSE refresh resets scope to All (4.4s) ✓ 24 [chromium] › apps/web/tests/ci-trains.spec.ts:215:1 › renders train dashboard in light theme (4.4s) ✓ 25 [chromium] › apps/web/tests/decisions.spec.ts:112:1 › expands and collapses a decision row in place (487ms) ✓ 26 [chromium] › apps/web/tests/decisions.spec.ts:129:1 › option answer posts the exact payload to the collector mock (386ms) ✓ 27 [chromium] › apps/web/tests/decisions.spec.ts:144:1 › free-text answer posts the typed choice payload (397ms) ✓ 28 [chromium] › apps/web/tests/decisions.spec.ts:159:1 › failure path shows an error and preserves the typed answer (422ms) ✓ 29 [chromium] › apps/web/tests/hooks-controls.spec.ts:9:1 › hooks control reflects fixture policy and round-trips pessimistically (448ms) ✓ 30 [chromium] › apps/web/tests/hooks-controls.spec.ts:17:1 › hooks control stays checked while a delayed mutation is pending (775ms) ✓ 31 [chromium] › apps/web/tests/hooks-controls.spec.ts:28:1 › hooks control retains confirmed state and announces a failed mutation (414ms) ✓ 32 [chromium] › apps/web/tests/hooks-controls.spec.ts:38:1 › hooks control surfaces issue repair and clears it after repair (416ms) ✓ 33 [chromium] › apps/web/tests/hooks-controls.spec.ts:48:1 › hooks control hides repair for nonrepairable issues (339ms) ✓ 34 [chromium] › apps/web/tests/inbox.spec.ts:32:1 › renders the full triage list sorted by severity then recency (380ms) ✓ 35 [chromium] › apps/web/tests/inbox.spec.ts:56:1 › filter rail shows kind counts and filters the list (450ms) ✓ 36 [chromium] › apps/web/tests/inbox.spec.ts:78:1 › snooze persists before expiry without deleting collector item @UJ-004 @H1 @forbidden-side-effect @browser-sensitive (465ms) ✓ 37 [chromium] › apps/web/tests/inbox.spec.ts:114:1 › expired snooze restores item and removes durable entry @UJ-004 @A1 @expiry-boundary @browser-sensitive (561ms) ✓ 38 [chromium] › apps/web/tests/inbox.spec.ts:157:1 › project color tags honor settings overrides and auto-assigned wheel colors (361ms) ✓ 39 [chromium] › apps/web/tests/inbox.spec.ts:176:1 › open and train actions are enabled; unknown actions stay disabled (358ms) ✓ 40 [chromium] › apps/web/tests/inbox.spec.ts:197:1 › valid Open navigates client-side and never posts an open action (401ms) ✓ 41 [chromium] › apps/web/tests/inbox.spec.ts:208:1 › invalid Open stays on-page, shows danger feedback, and sends no POST (433ms) ✓ 42 [chromium] › apps/web/tests/inbox.spec.ts:221:1 › train rerun posts exact string args and shows success only after HTTP success (619ms) ✓ 43 [chromium] › apps/web/tests/inbox.spec.ts:237:1 › train action rejection shows parsed server error and no success toast (434ms) ✓ 44 [chromium] › apps/web/tests/map.spec.ts:26:1 › renders fixture map nodes and inspector panel (393ms) ✓ 45 [chromium] › apps/web/tests/map.spec.ts:42:1 › selecting a node updates the inspector (385ms) ✓ 46 [chromium] › apps/web/tests/map.spec.ts:48:1 › aggregates queue only when every repo queue is complete and non-null (819ms) ✓ 47 [chromium] › apps/web/tests/overview.spec.ts:29:1 › renders every mockup-v2 Overview widget group with fixture values, no console errors (441ms) ✓ 48 [chromium] › apps/web/tests/overview.spec.ts:82:1 › renders correctly in light theme with no console errors (394ms) ✓ 49 [chromium] › apps/web/tests/overview.spec.ts:102:1 › an item-resolved SSE delta removes the item from Needs you now (352ms) ✓ 50 [chromium] › apps/web/tests/overview.spec.ts:112:1 › renders queue completeness independently from run history (802ms) ✓ 51 [chromium] › apps/web/tests/overview.spec.ts:144:1 › keeps overview content inside mobile, tablet, laptop, and desktop viewports (1.0s) ✓ 52 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /plans renders non-empty fixture content (384ms) ✓ 53 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /factory renders non-empty fixture content (591ms) ✓ 54 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /agents renders non-empty fixture content (375ms) ✓ 55 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /ci renders non-empty fixture content (347ms) ✓ 56 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /bots renders non-empty fixture content (344ms) ✓ 57 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /limits renders non-empty fixture content (379ms) ✓ 58 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /gates renders non-empty fixture content (390ms) ✓ 59 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /projects renders non-empty fixture content (379ms) ✓ 60 [chromium] › apps/web/tests/pages.spec.ts:48:3 › /settings renders non-empty fixture content (408ms) ✓ 61 [chromium] › apps/web/tests/pages.spec.ts:79:1 › plan rows link to the componentized run detail page (764ms) ✓ 62 [chromium] › apps/web/tests/pages.spec.ts:89:1 › clicking a plan row opens the run detail page (692ms) ✓ 63 [chromium] › apps/web/tests/pages.spec.ts:99:1 › settings color override round-trips through POST /config/projects (581ms) ✓ 64 [chromium] › apps/web/tests/plans-observability.spec.ts:59:1 › shows one row per plan with its attempt count, not one row per checkout (395ms) ✓ 65 [chromium] › apps/web/tests/plans-observability.spec.ts:71:1 › marks the deck stale when its payload stops advancing (342ms) ✓ 66 [chromium] › apps/web/tests/sessions.spec.ts:25:1 › lists every project, with the cli, launcher and state of each session (602ms) ✓ 67 [chromium] › apps/web/tests/sessions.spec.ts:43:1 › attaches to a tmux-hosted session in the browser and sends a keystroke (508ms) ✓ 68 [chromium] › apps/web/tests/sessions.spec.ts:57:1 › keeps an attached terminal open and polling while navigating, and lets the reader move it (1.5s) ✓ 69 [chromium] › apps/web/tests/sessions.spec.ts:90:1 › offers an account-aware resume command for a finished claude session (536ms) ✓ 70 [chromium] › apps/web/tests/sessions.spec.ts:100:1 › states why an unreachable session cannot be reconnected instead of showing a dead button (393ms) ✓ 71 [chromium] › apps/web/tests/sessions.spec.ts:109:1 › renders the TerminalView gallery entry in the design system (627ms) ✓ 72 [chromium] › apps/web/tests/shell.spec.ts:33:1 › renders the dashboard shell with the exact sidebar structure (380ms) ✓ 73 [chromium] › apps/web/tests/shell.spec.ts:45:1 › defaults to dark theme with no console errors (137ms) ✓ 74 [chromium] › apps/web/tests/shell.spec.ts:57:1 › theme preference persists across a fresh shell load @UJ-003 @H1 @persistence @browser-sensitive (802ms) ✓ 75 [chromium] › apps/web/tests/shell.spec.ts:98:1 › invalid stored theme falls back to dark without overwriting storage @UJ-003 @A1 @invalid-preference @browser-sensitive (260ms) ✓ 76 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › / renders overview needs-you-now card without runtime failures (341ms) ✓ 77 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /inbox renders inbox heading without runtime failures (348ms) ✓ 78 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /plans renders plans heading without runtime failures (346ms) ✓ 79 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /agents renders agents heading without runtime failures (349ms) ✓ 80 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /ci renders CI runners panel without runtime failures (349ms) ✓ 81 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /bots renders bots heading without runtime failures (337ms) ✓ 82 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /limits renders limits heading without runtime failures (347ms) ✓ 83 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /gates renders gates heading without runtime failures (344ms) ✓ 84 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /projects renders projects repository without runtime failures (362ms) ✓ 85 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /projects/multideal renders project detail criterion without runtime failures (393ms) ✓ 86 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /settings renders settings heading without runtime failures (339ms) ✓ 87 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /decisions renders decisions heading without runtime failures (339ms) ✓ 88 [chromium] › apps/web/tests/ui-matrix.spec.ts:60:3 › /map renders map canvas without runtime failures (343ms) ✓ 89 [chromium] › apps/web/tests/ui-matrix.spec.ts:79:3 › /settings project color input is editable (337ms) ✓ 90 [chromium] › apps/web/tests/ui-matrix.spec.ts:79:3 › /settings save project colors is enabled (341ms) ✓ 91 [chromium] › apps/web/tests/ui-matrix.spec.ts:79:3 › /inbox non-gateway action is enabled (345ms) ✓ 92 [chromium] › apps/web/tests/ui-matrix.spec.ts:79:3 › /inbox reap action is enabled (348ms) ✓ 93 [chromium] › apps/web/tests/ui-matrix.spec.ts:85:1 › /inbox destructive confirmation controls are enabled before submission (394ms) 1 skipped 92 passed (1.4m)