
 RUN  v3.2.7 /Users/k/.imcodes/worktrees/imcodes/deck_sub_0610320z/asg_nbp/repo

 ✓ |daemon| test/daemon/transport-drain-awaited.test.ts (5 tests) 14ms
 ✓ |daemon| test/daemon/session-identity-mcp.test.ts (6 tests) 21ms
 ✓ |daemon| test/daemon/sdk-transport-restore.test.ts (45 tests) 5449ms
   ✓ sdk transport session restore > refuses to start a Brain codex turn when IM delegation is not authoritatively connected (control)  1535ms
   ✓ sdk transport session restore > emits startup memory.context when the first transport turn carries the seeded memory  2544ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-fork-cost.test.ts (13 tests) 11835ms
   ✓ supervision worktree inspection cost (production-shaped) > cold inspection spawns a bounded, constant number of git processes  2237ms
   ✓ supervision worktree inspection cost (production-shaped) > never spawns one git process per changed path (no refs x files amplification)  754ms
   ✓ supervision worktree inspection cost (production-shaped) > does not block the daemon event loop while inspecting  590ms
   ✓ supervision worktree inspection cost (production-shaped) > re-inspects an unchanged worktree with a single bounded probe  616ms
   ✓ supervision worktree inspection cost (production-shaped) > coalesces concurrent identical inspections into one underlying pass  586ms
   ✓ cached inspection invalidates precisely > re-reads when a reported file changes on disk  808ms
   ✓ cached inspection invalidates precisely > re-reads when a previously CLEAN tracked file becomes dirty  1099ms
   ✓ cached inspection invalidates precisely > re-reads when a NEW untracked file appears  1127ms
   ✓ cached inspection invalidates precisely > re-reads when staging changes  954ms
   ✓ cached inspection invalidates precisely > re-reads when HEAD moves  945ms
   ✓ cached inspection invalidates precisely > re-reads when a remote ref moves  1025ms
   ✓ cached inspection invalidates precisely > expires by TTL even when nothing observable changed  1038ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-authority.test.ts (11 tests) 14010ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a NEW untracked path appears  714ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a previously CLEAN tracked path becomes dirty  416ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a reported path changes content in place  433ms
   ✓ remote-delivery authority is never served stale > still answers an unchanged worktree without re-reading it from scratch  380ms
   ✓ deletion-only remote delivery parity > matches a remote commit that delivers exactly the deletion  320ms
   ✓ the git queue is bounded end to end > fails closed when a request cannot start before its total deadline  2358ms
   ✓ the git queue is bounded end to end > rejects immediately once the queue hits its hard cap, and stays bounded  7138ms
   ✓ git failure, deadline and output cap all fail closed > never claims a delivery it could not afford to read  884ms
   ✓ git failure, deadline and output cap all fail closed > fails closed — and stays bounded — when a single git call outlives the deadline  912ms
 ✓ |daemon| test/daemon/jsonl-watcher.worker.test.ts (4 tests) 17620ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events for plain assistant/user turns  5067ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events for Edit tool_use + tool_result pair (file.change)  5024ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events when tool_use and tool_result arrive in separate drain cycles  5015ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > falls back to main thread when worker is unavailable  2512ms
 ✓ |daemon| test/daemon/memory-mcp-stdio-lifecycle.test.ts (13 tests) 13367ms
   ✓ memory MCP stdio lifecycle (subprocess) > exits when its parent dies even though stdin never reaches EOF  1762ms
   ✓ memory MCP stdio lifecycle (subprocess) > exits when it was already reparented before it ever ran, stdin still held  2068ms
   ✓ memory MCP stdio lifecycle (subprocess) > exits when its parent dies BEFORE the server is ready, stdin still held  3541ms
   ✓ memory MCP stdio lifecycle (subprocess) > still exits on a clean stdin EOF  902ms
   ✓ memory MCP stdio lifecycle (subprocess) > keeps running while its parent is alive and stdin is open  5086ms
 ✓ |daemon| test/daemon/memory-mcp-server.test.ts (28 tests) 19954ms
   ✓ memory MCP stdio server > lists the registered shared tools over stdio and does not leak secret env  1677ms
   ✓ memory MCP stdio server > keeps the real stdio child and initial catalog alive after the RSS watchdog samples overload  11350ms
   ✓ memory MCP stdio server > lists tools over stdio without identity env  1111ms
   ✓ memory MCP stdio server > activates only matching tools and replaces the previous lazy result set  915ms
   ✓ memory MCP stdio server > loads persisted sessions before serving scoped send targets over stdio  955ms
   ✓ memory MCP stdio server > dispatches send_message through the daemon hook server from stdio MCP  929ms
   ✓ memory MCP stdio server > submits peer_audit_reply to dedicated ingress with the runtime-bound sender header  856ms
   ✓ memory MCP stdio server > submits delegation_reply to dedicated ingress with the runtime-bound sender header  880ms
   ✓ memory MCP stdio server > keeps listed send targets usable across a transient empty session-store refresh  919ms
 ✓ |daemon| test/daemon/p2p-orchestrator.test.ts (70 tests | 2 skipped) 21705ms
   ✓ P2P orchestrator — parallel rounds > nudges stale active transport work when a P2P prompt is queued behind it  339ms
   ✓ P2P orchestrator — parallel rounds > removes its queued transport prompt when a P2P hop times out before drain  337ms
   ✓ P2P orchestrator — parallel rounds > does not cancel an active P2P transport turn just because discussion output has not appeared yet  347ms
   ✓ P2P orchestrator — parallel rounds > drains a queued P2P prompt immediately when the transport runtime is already idle  341ms
   ✓ P2P orchestrator — parallel rounds > restarts the full legacy combo pipeline for each selected cycle without advanced fields  544ms
   ✓ P2P orchestrator — parallel rounds > inlines original-request execution into each complete legacy combo-cycle summary and follows up to confirm  570ms
   ✓ P2P orchestrator — parallel rounds > times out instead of hanging when the post-summary execution turn never returns idle  544ms
   ✓ P2P orchestrator — parallel rounds > dispatches phase-2 hops in parallel and waits for the barrier before summary  336ms
   ✓ P2P orchestrator — parallel rounds > does not double the configured timeout for required initiator hops  2114ms
   ✓ P2P orchestrator — parallel rounds > treats cancel on a terminal run as close and removes it from memory  317ms
   ✓ P2P orchestrator — parallel rounds > waits for final idle content instead of completing on the first streamed heading  4979ms
   ✓ P2P orchestrator — parallel rounds > treats missing advanced audit verdicts as rework and records jump history  360ms
   ✓ P2P orchestrator — parallel rounds > forces the minimum rework loops before handing off to smart-gate evaluation  336ms
   ✓ P2P orchestrator — parallel rounds > hands off forced_rework rounds to smart-gate behavior after minTriggers is satisfied  362ms
   ✓ P2P orchestrator — parallel rounds > continues forced_rework routing on REWORK after minTriggers until maxTriggers is exhausted  335ms
   ✓ P2P orchestrator — parallel rounds > completes the openspec preset after proposal artifacts are created and audit eventually passes  540ms
   ✓ P2P orchestrator — parallel rounds > cleans up loop-generated hop artifacts after repeated advanced attempts settle  610ms
   ✓ P2P orchestrator — parallel rounds > keeps advanced loop bookkeeping deterministic while legacy projections remain compatibility-only  359ms
   ✓ P2P orchestrator — parallel rounds > injects reducer summaries into later loop prompts and keeps the helper prompt focused on the latest attempt context  438ms
   ✓ P2P orchestrator — parallel rounds > cleans worker-hop artifacts after repeated loop attempts  463ms
 ✓ |daemon| test/daemon/lifecycle-boot-supervision-sweep.test.ts (1 test) 2512ms
   ✓ daemon boot enters the same bounded supervision convergence > repairs a stuck aggregate at boot, leaves unauthorized ones alone, and does not churn  2511ms
 ✓ |daemon| test/daemon/live-context-ingestion.test.ts (38 tests) 2541ms
 ✓ |daemon| test/daemon/hook-port.test.ts (74 tests) 11715ms
   ✓ publication lock - never taken from a live or indeterminate holder > refuses while a LIVE holder owns the current epoch, leaving it untouched  1047ms
   ✓ publication lock - never taken from a live or indeterminate holder > never takes over a live holder however old its acquisition is  1059ms
   ✓ publication lock - never taken from a live or indeterminate holder > never treats a holder with the same {pid,startToken} as its own leftover  1054ms
   ✓ publication lock - never taken from a live or indeterminate holder > never takes over a holder whose liveness is indeterminate  1043ms
   ✓ legacy single-file lock - respected, never modified > a LIVE nonce-less legacy holder is never taken over, however long it waits  1045ms
   ✓ legacy single-file lock - respected, never modified > an indeterminate legacy holder is never taken over  1035ms
   ✓ publication lock - ownership-safe interleavings > CLAIM gap: a reclaimer suspended after final validation cannot displace a successor  1021ms
   ✓ publication lock - ownership-safe interleavings > RELEASE gap: a stale holder's release cannot release or remove a successor's entry  1045ms
   ✓ publication lock - ownership-safe interleavings > PRUNE gap: a high-epoch claimer resumed after a directory reset cannot prune the new generation  1063ms
   ✓ publication lock - ownership-safe interleavings > CLAIM across a reset: a late old-generation claim is invisible to the new generation  1045ms
   ✓ publication lock - ownership-safe interleavings > RELEASE after epoch reuse: a stale release names only its own acquisition  1051ms
 ✓ |daemon| test/daemon/transport-session-runtime.test.ts (203 tests) 12777ms
   ✓ TransportSessionRuntime > auto-retry redelivers a recoverable-failed message once the provider frees up  1003ms
   ✓ TransportSessionRuntime > keeps a recoverable retry isolated from messages queued during backoff  1007ms
   ✓ TransportSessionRuntime > auto-retry of a direct send does not duplicate timeline drain or runtime history  1005ms
   ✓ TransportSessionRuntime > auto-retry of a drained queued turn emits its user event only once  1008ms
   ✓ TransportSessionRuntime > uses a short retry budget for stale provider busy instead of the generic recoverable budget  7014ms
 ✓ |daemon| test/agent/codex-sdk-provider.test.ts (183 tests) 9756ms
   ✓ CodexSdkProvider > polls the Codex rollout briefly for raw update_plan calls without waiting for token usage  2015ms
   ✓ CodexSdkProvider > merges a task_name-only spawn with its child thread rollout instead of duplicating the UI row  2008ms
   ✓ CodexSdkProvider > discovers child rollout sub-agents by IM.codes session identity when Codex parent id differs  2018ms
   ✓ CodexSdkProvider > settles a turn from rollout task_complete when the app-server sends only idle/completed hints  363ms
   ✓ CodexSdkProvider > terminalizes a WebSearch started event when rollout settles a turn without turn/completed  348ms
   ✓ CodexSdkProvider > settles from rollout task_complete when turn/start response never returns and ignores its late response  420ms
   ✓ CodexSdkProvider > ignores a late id-less interrupted notification from a previous stop and still settles the newer turn  453ms
 ✓ |daemon| test/daemon/qwen-cancel.test.ts (4 tests) 6773ms
   ✓ Qwen provider cancel > sends SIGTERM on cancel  2169ms
   ✓ Qwen provider cancel > escalates a SIGTERM-ignoring process to SIGKILL before cancel resolves  2203ms
   ✓ Qwen provider cancel > resets started flag after cancel so next send starts fresh  2302ms
 ✓ |daemon| test/daemon/file-preview-read-dist-daemon-smoke.test.ts (2 tests) 3548ms
   ✓ dist default daemon preview-read smoke > uses real worker threads and emits visible success and sanitized errors through the default coordinator  502ms
   ✓ dist default daemon preview-read smoke > keeps non-preview commands responsive while real dist preview workers are delayed  3044ms
 ✓ |daemon| test/daemon/hook-authority-global-containment.test.ts (4 tests) 4799ms
   ✓ machine hook-port containment > fences a spawned child that has no test-runner environment  2003ms
   ✓ machine hook-port containment > lets the lock-owning process publish, so the fence is not simply "always refuse"  1296ms
   ✓ machine hook-port containment > keeps the production record untouched while a sandboxed hook server runs  1182ms
   ✓ machine hook-port containment > proves a sandbox home is genuinely not the machine record  317ms
 ✓ |daemon| test/shared/timeline-protocol-magic-string.test.ts (2 tests) 3080ms
   ✓ timeline protocol magic strings > keeps shared timeline protocol literals centralized outside compatibility fixtures  3078ms
 ✓ |daemon| test/daemon/supervision-automation.test.ts (236 tests) 8193ms
   ✓ SupervisionAutomation > recovers the original user task after more than one thousand non-conversation events  855ms
 ✓ |daemon| test/daemon/gemini-idle-detection.test.ts (12 tests) 3789ms
   ✓ Gemini Idle Detection (Direct pollTick test) > emits idle ONLY after JSON stops changing (new data always = running)  658ms
   ✓ Gemini Idle Detection (Direct pollTick test) > emits idle after trailing info message once JSON settles  649ms
   ✓ Gemini spinner detection (braille at col 0) > confirms working state when spinner seen in majority of burst reads  327ms
   ✓ Gemini spinner detection (braille at col 0) > emits assistant.thinking with terminal-spinner source on confirmed spinner  325ms
   ✓ Gemini spinner detection (braille at col 0) > does NOT transition to running on single-frame spinner (burst fails)  323ms
   ✓ Gemini spinner detection (braille at col 0) > spinner overrides JSON idle status (ground truth)  326ms
   ✓ Gemini spinner detection (braille at col 0) > returns to idle when spinner disappears  651ms
   ✓ Gemini JSON change detection hardening > stays on unchanged path when both mtime and size match  324ms
 ✓ |daemon| test/daemon/memory-get-sources-rpc.test.ts (7 tests) 1776ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-remote-match.test.ts (7 tests) 5324ms
   ✓ remote delivery matching against real git > matches the remote ref whose committed bytes are exactly the worktree bytes  733ms
   ✓ remote delivery matching against real git > reports no match when a single byte differs  958ms
   ✓ remote delivery matching against real git > reports no match when the bytes differ but the LENGTH is identical  737ms
   ✓ remote delivery matching against real git > requires every manifest row to match, not merely one of them  782ms
   ✓ remote delivery matching against real git > treats a path the remote still carries as disproving a deletion  799ms
   ✓ remote delivery matching against real git > still finds a non-preferred remote ref when origin/dev is not the match  948ms
   ✓ remote delivery matching against real git > fails closed when git cannot answer  365ms
 ✓ |daemon| test/store/context-store-worker.test.ts (14 tests) 5374ms
   ✓ context-store worker foundation > round-trips a write/read op through the worker  665ms
   ✓ context-store worker foundation > structured-clones object rows and embedding buffers across the worker  542ms
   ✓ context-store worker foundation > rejects an unknown op with a stable unsupported_operation code  548ms
   ✓ context-store worker foundation > serializes a thrown op error as a plain code+message (no stack/path leak)  557ms
   ✓ context-store worker foundation > times out a pending RPC and discards the late worker reply  572ms
   ✓ context-store worker foundation > caps in-flight fire-and-forget at the backpressure limit  450ms
   ✓ context-store worker foundation > returns empty for an R1 read before the worker is warm, then serves after ready  680ms
   ✓ context-store worker foundation > rejects awaited mutations past the awaited cap with context_store_overloaded  351ms
   ✓ context-store worker foundation > callOrElse falls back to local when the worker op errors  550ms
Preparing worktree (detached HEAD 2e49748)
 ✓ |daemon| test/daemon/env-injection.test.ts (6 tests) 2408ms
   ✓ IMCODES_SESSION env injection > injects a selected-file identity into a process agent on its first launch  2331ms
Preparing worktree (detached HEAD 2e49748)
 ✓ |daemon| test/daemon/lifecycle-worker-session-sync.test.ts (4 tests) 4553ms
   ✓ lifecycle worker session sync > treats legacy list responses as degraded and does not destructively prune local sessions  2494ms
   ✓ lifecycle worker session sync > does not drop local sessions missing from a complete snapshot without an explicit tombstone  689ms
   ✓ lifecycle worker session sync > treats remote stopped sessions as existing instead of deleting a local running session  908ms
   ✓ lifecycle worker session sync > marks a bad complete snapshot as degraded before applying destructive side effects  456ms
 ✓ |daemon| test/daemon/materialization-coordinator.test.ts (20 tests) 3853ms
   ✓ MaterializationCoordinator > materializes structured problem-resolution summaries from eligible events  862ms
   ✓ MaterializationCoordinator > excludes tool.call and assistant.delta from materialized summaries even when present in staged events  431ms
   ✓ MaterializationCoordinator > materializes end-to-end through a WARM context-store worker (reads + commit off the main thread)  545ms
Preparing worktree (detached HEAD 9e001b0)
Preparing worktree (detached HEAD 9e001b0)
 ✓ |daemon| test/daemon/direct-file-transfer-stall-proof.test.ts (1 test) 2120ms
   ✓ direct file transfer survives a blocked daemon loop > R-1: the real worker keeps producing while the main loop is fully blocked  2119ms
 ✓ |daemon| test/daemon/timeline-projection-busy.test.ts (2 tests) 2011ms
   ✓ timeline projection client: saturation is not absence > raises TimelineProjectionBusyError instead of returning null when the worker stalls  2008ms
 ✓ |daemon| test/daemon/agent-process-startup-sweep.test.ts (5 tests) 2523ms
   ✓ agent process group survives into the startup sweep > reaps the whole group of a crashed session, not just the leader  621ms
   ✓ agent process group survives into the startup sweep > refuses to signal when the recorded fingerprint no longer matches  686ms
   ✓ agent process group survives into the startup sweep > refuses to signal a pid handle that carries no fingerprint at all  349ms
   ✓ agent process group survives into the startup sweep > group-reaps survivors when the recorded leader is already gone  623ms
Preparing worktree (detached HEAD 9e001b0)
Preparing worktree (detached HEAD 9e001b0)
 ✓ |daemon| test/daemon/supervision-task-registry.test.ts (249 tests) 2709ms
   ✓ SupervisionTaskRegistry > creates and verifies the exact worktree before live-hook delivery for exact-target and autoProvision tasks  955ms
 ✓ |daemon| test/daemon/supervision-integration-bundle.test.ts (3 tests) 3449ms
   ✓ immutable supervision integration bundle > preserves the exact tsk_f1x after bytes after the implementer worktree returns to base  2788ms
   ✓ immutable supervision integration bundle > is content addressed, replay-safe, and fails closed on bundle or target conflicts  306ms
   ✓ immutable supervision integration bundle > persists one exact bundle binding across store reopen and refuses a conflicting hash  355ms
 ✓ |daemon| test/daemon/gemini-watcher-tracking.test.ts (8 tests) 1949ms
   ✓ Gemini watcher — inode change detection > skips read when mtime, size, AND inode are all unchanged  325ms
   ✓ Gemini watcher — consecutive read failures trigger rescan > resets activeFile after 5 consecutive readConversation failures  1011ms
   ✓ Gemini watcher — consecutive read failures trigger rescan > resets readFailCount on successful read  607ms
warning: in the working copy of 'web/android/gradlew.bat', LF will be replaced by CRLF the next time Git touches it
 ✓ |daemon| test/daemon/jsonl-parse-pool.test.ts (12 tests) 1618ms
   ✓ jsonlParsePool — REAL Worker thread > returns null on timeout; pool stays available afterwards  301ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector.test.ts (7 tests) 1964ms
   ✓ authoritative supervision worktree inspection > accepts an exact clean zero-source worktree without metadata paths  371ms
   ✓ authoritative supervision worktree inspection > continues to report conflicted paths for the registry gate  356ms
 ✓ |daemon| test/daemon/supervision-worktree-provision.test.ts (7 tests) 2353ms
   ✓ supervision assignment worktree provisioning > provisions a safe worktree path for assignment id asg_2  347ms
   ✓ supervision assignment worktree provisioning > provisions a safe worktree path for assignment id supervision_assignment_22222222-2222-4222-8222-222222222222  321ms
   ✓ supervision assignment worktree provisioning > creates the exact detached base and replays without rebuilding it  380ms
   ✓ supervision assignment worktree provisioning > provisions the tracked Gradle batch file with CRLF bytes and a clean Git status  421ms
   ✓ supervision assignment worktree provisioning > fails closed without changing dirty, wrong-base, or foreign existing paths  444ms
 ✓ |daemon| test/daemon/hook-send.test.ts (49 tests | 3 skipped) 1595ms
   ✓ Hook server /send endpoint > Successful delivery > routes an exact auditor continuation past delegated instead of the ambiguity scan  352ms
 ✓ |daemon| test/daemon/p2p-parser.test.ts (42 tests) 1520ms
 ✓ |daemon| test/daemon/transport-history.test.ts (21 tests) 2305ms
   ✓ transport-history > replay stays bounded on multi-megabyte JSONL files (tail-read only)  1920ms
 ✓ |daemon| test/store/session-store.test.ts (19 tests) 1283ms
   ✓ session-store > loadStore reconcile (runtimeType backfill + error recovery) > restores a filled three-scope multibyte identity byte-for-byte in a fresh process  336ms
   ✓ session-store > loadStore reconcile (runtimeType backfill + error recovery) > migrates missing identities once and preserves them across daemon reload  515ms
 ✓ |daemon| test/daemon/file-transfer-handler.test.ts (23 tests) 1600ms
   ✓ file-transfer local handle hardening > commits a relay upload into the selected existing directory without overwrite  784ms
   ✓ file-transfer local handle hardening > retries relay-staged upload downloads with the same URL before failing  319ms
 ✓ |daemon| test/daemon/context-store.test.ts (39 tests) 1338ms
 ✓ |daemon| test/daemon/cron-p2p-integration.test.ts (5 tests) 1450ms
   ✓ Cron → P2P integration > cron P2P with role participants creates discussion file and completes  690ms
   ✓ Cron → P2P integration > cron P2P with sub-session participantEntries completes  314ms
   ✓ Cron → P2P integration > cron P2P with mixed role + session participants deduplicates correctly  437ms
 ✓ |daemon| test/agent/qwen-provider.test.ts (43 tests) 1096ms
   ✓ QwenProvider > retries a transient Premature close once before surfacing an error  362ms
 ✓ |daemon| test/daemon/supervision-worktree-gc.test.ts (24 tests) 3558ms
   ✓ bounded supervision worktree GC > hard-bounds a crowded assignment root before registry or Git work  1186ms
   ✓ bounded supervision worktree GC > uses real Git status, registration, and remote reachability evidence  1155ms
 ✓ |daemon| test/daemon/supervision-auto-audit.test.ts (122 tests) 2117ms
 ✓ |daemon| test/daemon/direct-file-transfer-worker-boundary.test.ts (46 tests) 804ms
 ✓ |daemon| test/daemon/command-handler-memory-context.test.ts (42 tests) 881ms
   ✓ handleWebCommand memory context timeline > validates manual memory project directories before trusting canonical repo ids  329ms
(node:70032) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/session-list.test.ts (11 tests) 2245ms
   ✓ buildSessionList > hydrates missing qwen display metadata from runtime config  586ms
 ✓ |daemon| test/daemon/jsonl-watcher-refresh.test.ts (6 tests) 703ms
 ✓ |daemon| test/daemon/p2p-workflow-runtime.test.ts (28 tests) 1783ms
   ✓ ServerLink P2P workflow hello > exposes the current daemon workflow capabilities for launch binding  941ms
   ✓ ServerLink P2P workflow hello > sends daemon.hello after auth with current base capabilities  357ms
   ✓ ServerLink P2P workflow hello > resends daemon.hello with sorted updated capabilities only when capabilities change  470ms
 ↓ |daemon| test/daemon/p2p-workflow-script.test.ts (16 tests | 16 skipped)
 ✓ |daemon| test/daemon/timeline-projection.test.ts (7 tests) 1161ms
 ✓ |daemon| test/daemon/delegation-reply-ingress.test.ts (26 tests) 973ms
   ✓ delegation reply ingress > persists progress without Brain chatter and reports a blocked final handoff once  850ms
 ✓ |daemon| test/daemon/command-handler-bad-input.test.ts (8 tests) 1828ms
 ✓ |daemon| test/daemon/machine-direct-transfer.test.ts (10 tests) 744ms
   ✓ machine direct encrypted TCP transfer > reuses the encrypted sender to stream from a controlled source into a Full receiver temp file  454ms
 ✓ |daemon| test/daemon/gemini-watcher-refresh.test.ts (3 tests) 533ms
   ✓ gemini watcher refresh() > refresh does not follow a different session id file  495ms
 ✓ |daemon| test/daemon/timeline-store.async.test.ts (6 tests) 586ms
   ✓ timeline-store async append (T1-T4) > T4b: flushAll(timeoutMs) logs warn when timeout fires while chain still in flight  433ms
 ✓ |daemon| test/daemon/codex-watcher-retrack.test.ts (4 tests) 577ms
 ✓ |daemon| test/daemon/command-handler-transport-queue.test.ts (171 tests) 640ms
 ✓ |daemon| test/daemon/preview-ws-relay.test.ts (15 tests) 495ms
 ✓ |daemon| test/daemon/tmux-security.test.ts (16 tests) 537ms
   ✓ tmux shell-injection prevention > tolerates repeated recoverable tmux server exits during one command  306ms
 ✓ |daemon| test/shared/fs-read-error-codes.test.ts (6 tests) 713ms
   ✓ fs-read shared error constants > keeps fs-read production consumers importing shared wire error values instead of redefining them  710ms
 ✓ |daemon| test/store/turn-usage.test.ts (19 tests) 505ms
 ✓ |daemon| test/daemon/hook-authority-endpoint.test.ts (19 tests) 631ms
 ✓ |daemon| test/daemon/session-resource-lifecycle.test.ts (10 tests) 1086ms
 ✓ |daemon| test/daemon/direct-file-transfer-process-isolation.test.ts (4 tests | 1 skipped) 708ms
   ✓ P0 direct transfer native crash containment > reaps the production child after an orderly shutdown  602ms
 ✓ |daemon| test/daemon/send-tool.test.ts (35 tests) 986ms
   ✓ send-tool > lets the persisted binding outrank a same-name live runtime that now reports otherwise  871ms
 ✓ |daemon| test/daemon/claude-no-text-refresh.test.ts (2 tests) 408ms
 ✓ |daemon| test/store/archive-sweeper.test.ts (6 tests) 770ms
 ✓ |daemon| test/daemon/gemini-file-change.test.ts (3 tests) 334ms
   ✓ Gemini watcher — file.change emission > defers file-tool rows until terminal success and falls back to visible rows on error  330ms
 ✓ |daemon| test/store/context-store-production-owner.test.ts (4 tests) 464ms
   ✓ context-store production-owner failure policy > does not advertise warm when the worker reports a warmup failure  421ms
 ✓ |daemon| test/daemon/timeline-store.tail-truncate.test.ts (2 tests) 517ms
   ✓ timeline-store truncate > keeps conversation records ahead of status noise without readFileSync  495ms
 ✓ |daemon| test/daemon/launch-session-codex.test.ts (3 tests) 389ms
   ✓ launchSession — Codex ID handling > assigns an explicit codexSessionId before first launch and persists it  316ms
 ✓ |daemon| test/daemon/p2p-workflow-artifacts.test.ts (22 tests) 780ms
   ✓ p2p workflow artifact runtime > captureP2pArtifactBaseline > enforces max 200 files  302ms
   ✓ p2p workflow artifact runtime > captureP2pArtifactBaseline > halts at the total bytes cap (64 MiB) and marks truncated  304ms
 ✓ |daemon| test/daemon/memory-mcp-search.test.ts (14 tests) 593ms
 ✓ |daemon| test/daemon/supervision-broker.test.ts (47 tests) 754ms
   ✓ SupervisionBroker > falls back to the configured backup runtime when the primary provider fails  703ms
(node:73236) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/gemini-watcher-retrack.test.ts (3 tests) 223ms
 ✓ |daemon| test/store/materialization-commit.test.ts (3 tests) 560ms
 ✓ |daemon| test/daemon/cloud-sync-e2e.test.ts (15 tests) 599ms
 ✓ |daemon| test/daemon/transport-queue-store.test.ts (63 tests) 534ms
 ✓ |daemon| test/daemon/supervision-repair-resume.test.ts (25 tests) 420ms
 ✓ |daemon| test/store/no-sync-context-store-guard.test.ts (6 tests) 420ms
 ✓ |daemon| test/store/pinned-notes.test.ts (1 test) 682ms
   ✓ pinned notes store integration > injects pinned notes byte-identically under the User-Pinned Notes heading  681ms
 ✓ |daemon| test/store/fts-unavailable.test.ts (4 tests) 418ms
 ✓ |daemon| test/daemon/template-eligibility.test.ts (10 tests) 709ms
   ✓ computeExecutionTemplateEligibility > marks a normal non-main, non-stopped, non-clone sub as eligible  529ms
 ✓ |daemon| test/daemon/codex-watcher.test.ts (45 tests) 254ms
 ✓ |daemon| test/daemon/file-preview-read-dist-smoke.test.ts (1 test) 292ms
 ✓ |daemon| test/daemon/provider-callback-lifecycle.test.ts (9 tests) 329ms
   ✓ TransportSessionRuntime callback cleanup > keeps session info emitted synchronously while createSession is resolving  324ms
(node:74007) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/p2p-artifact-identity-persistence.test.ts (6 tests) 176ms
 ✓ |daemon| test/daemon/timeline-projection-drain.test.ts (4 tests) 226ms
 ✓ |daemon| test/daemon/timeline-history-worker.test.ts (7 tests) 264ms
 ✓ |daemon| test/daemon/timeline-store.retention.test.ts (4 tests) 262ms
 ✓ |daemon| test/daemon/upgrade-native-quiesce.test.ts (2 tests) 167ms
 ✓ |daemon| test/store/dedup-merge.test.ts (3 tests) 154ms
 ✓ |daemon| test/daemon/p2p-discussion-list.test.ts (12 tests) 460ms
(node:74177) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/supervision-list-query-cost.test.ts (1 test) 134ms
 ✓ |daemon| test/store/turn-usage-idempotent.test.ts (5 tests) 219ms
 ✓ |daemon| test/daemon/codex-watcher-refresh.test.ts (4 tests) 208ms
 ✓ |daemon| test/daemon/supervision-mcp-registration.test.ts (58 tests) 234ms
 ✓ |daemon| test/daemon/cursor-copilot-transport-restore.test.ts (4 tests) 295ms
 ✓ |daemon| test/daemon/cc-presets.test.ts (18 tests) 229ms
 ✓ |daemon| test/daemon/codex-watcher-tail-history.test.ts (1 test) 164ms
P2P: skipping symlink run-state entry /var/folders/vg/dk0l8d2n6gj9r1lszrj2k4p80000gn/T/imcodes-test-p2p-workflow-runs-VDVrsu/symlink-entry
P2P: dropping persisted identity bad-paths — invalid declared path
 ✓ |daemon| test/daemon/p2p-artifact-persistence-hardening.test.ts (5 tests) 124ms
 ✓ |daemon| test/daemon/native-quiesce-contract.test.ts (8 tests) 203ms
 ✓ |daemon| test/daemon/fs-git-cache.test.ts (27 tests) 178ms
(node:74451) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:74518) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:74520) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/instance-lock.test.ts (23 tests) 277ms
 ✓ |daemon| test/daemon/supervision-successor-finish-recovery.test.ts (14 tests) 305ms
 ✓ |daemon| test/daemon/supervision-zero-change-autoprogress.test.ts (13 tests) 393ms
 ✓ |daemon| test/daemon/memory-pruning.test.ts (6 tests) 346ms
 ✓ |daemon| test/daemon/server-link.test.ts (33 tests) 266ms
(node:75118) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/memory-recall-integration.test.ts (42 tests) 356ms
 ✓ |daemon| test/daemon/lifecycle-truncate-background.test.ts (3 tests) 405ms
 ✓ |daemon| test/daemon/session-group-clone.test.ts (27 tests) 303ms
 ✓ |daemon| test/daemon/direct-file-transfer.test.ts (43 tests) 57671ms
   ✓ daemon direct file transfer v2 lease broker > never strips a live upload of its resume state under capacity pressure  26686ms
   ✓ daemon direct file transfer v2 lease broker > keeps the number of partials on disk bounded by the resume ledger capacity  26677ms
 ✓ |daemon| test/daemon/transport-message-queue-integration.test.ts (10 tests) 308ms
 ✓ |daemon| test/daemon/direct-file-transfer-commit-recovery.test.ts (7 tests) 378ms
 ✓ |daemon| test/store/project-store-contract.test.ts (2 tests) 207ms
 ✓ |daemon| test/store/archive-backfill.test.ts (2 tests) 90ms
(node:76292) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/session-group-clone-engine.test.ts (4 tests) 389ms
   ✓ daemon session group clone engine > launches a fresh role-compatible main clone and keeps transportConfig out of events  383ms
 ✓ |daemon| test/daemon/supervision-console-producer.test.ts (35 tests) 581ms
 ✓ |daemon| test/daemon/supervision-console-e2e.test.ts (15 tests) 230ms
 ✓ |daemon| test/shared/session-identity.test.ts (20 tests) 402ms
 ✓ |daemon| test/daemon/p2p-workflow-allowlist-loader.test.ts (12 tests) 7ms
 ✓ |daemon| test/daemon/supervision-identity-convergence.test.ts (26 tests) 504ms
(node:77886) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/timeline-response-shaper.test.ts (4 tests) 182ms
 ✓ |daemon| test/shared/daemon-latency-summary.test.ts (1 test) 255ms
(node:78669) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/processed-context-replication.test.ts (3 tests) 220ms
 ✓ |daemon| test/daemon/supervision-lifecycle-convergence.test.ts (17 tests) 407ms
(node:80028) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/openclaw-provider.test.ts (44 tests) 258ms
 ✓ |daemon| test/daemon/supervision-store-migrations.test.ts (18 tests) 208ms
 ✓ |daemon| test/daemon/fs-list.test.ts (31 tests) 86ms
 ✓ |daemon| test/daemon/memory-mcp-tools-schema-firewall.test.ts (47 tests) 339ms
 ✓ |daemon| test/daemon/timeline-store.projection-fallback.test.ts (6 tests) 373ms
 ✓ |daemon| test/daemon/discussion-orchestrator.test.ts (3 tests) 57ms
 ✓ |daemon| test/daemon/opencode-history.test.ts (14 tests) 59ms
 ✓ |daemon| test/daemon/machine-mcp-registration.test.ts (17 tests) 312ms
 ✓ |daemon| test/daemon/transport-resend-queue.test.ts (26 tests) 249ms
 ✓ |daemon| test/daemon/delegation-reply-store.test.ts (21 tests) 156ms
 ✓ |daemon| test/daemon/fs-write.test.ts (32 tests) 204ms
 ✓ |daemon| test/daemon/fs-list-worker-handler.test.ts (9 tests) 104ms
 ✓ |daemon| test/daemon/preview-relay.test.ts (7 tests) 169ms
 ✓ |daemon| test/daemon/supervision-idle-integration.test.ts (9 tests) 307ms
 ✓ |daemon| test/daemon/terminal-streamer-snapshot.test.ts (31 tests) 385ms
 ✓ |daemon| test/daemon/shared-context-send-surface.test.ts (1 test) 190ms
 ✓ |daemon| test/daemon/session-identity-refresh-command.test.ts (1 test) 59ms
 ✓ |daemon| test/store/context-store-backoff-overflow.test.ts (6 tests) 270ms
 ✓ |daemon| test/daemon/capability-mcp-tools.test.ts (7 tests) 255ms
(node:85007) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/cron-mcp-client.test.ts (15 tests) 93ms
 ✓ |daemon| test/daemon/machine-file-client.test.ts (12 tests) 328ms
 ✓ |daemon| test/daemon/transport-queue-projection.test.ts (8 tests) 47ms
 ✓ |daemon| test/daemon/supervision-state-store.test.ts (7 tests) 149ms
 ✓ |daemon| test/daemon/supervision-console-session.test.ts (13 tests) 263ms
 ✓ |daemon| test/daemon/command-handler-delegation-regression.test.ts (6 tests) 236ms
 ✓ |daemon| test/daemon/peer-audit-service.test.ts (10 tests) 203ms
 ✓ |daemon| test/daemon/file-preview-read-worker.test.ts (7 tests) 8ms
 ✓ |daemon| test/store/context-meta.test.ts (2 tests) 46ms
 ✓ |daemon| test/daemon/supervision-prompts.test.ts (67 tests) 161ms
 ✓ |daemon| test/shared-remote-exec.test.ts (32 tests) 53ms
 ✓ |daemon| test/daemon/p2p-discussion-writer-queue.test.ts (6 tests) 127ms
 ✓ |daemon| test/daemon/transport-status-lifecycle.test.ts (20 tests) 272ms
 ✓ |daemon| test/daemon/hook-server-validation.test.ts (15 tests) 95ms
 ✓ |daemon| test/agent/transport-runtime-assembly.test.ts (41 tests) 37ms
(node:86575) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/copilot-sdk-runtime.test.ts (1 test) 89ms
 ✓ |daemon| test/daemon/hook-server-stop-text.test.ts (4 tests) 128ms
 ✓ |daemon| test/daemon/transport-relay.test.ts (87 tests) 139ms
 ✓ |daemon| test/daemon/supervision-registry-binding.test.ts (6 tests) 141ms
 ✓ |daemon| test/daemon/transport-resend-queue-emit.test.ts (9 tests) 48ms
 ✓ |daemon| test/daemon/timeline-emitter.test.ts (38 tests) 55ms
 ✓ |daemon| test/daemon/command-handler-timeline-history-projection.test.ts (16 tests) 48ms
 ✓ |daemon| test/daemon/transport-runtime-drain-error.test.ts (7 tests) 89ms
 ✓ |daemon| test/daemon/hook-server-session-restart.test.ts (3 tests) 89ms
 ✓ |daemon| test/daemon/pipe-pane-protocol.test.ts (15 tests) 66ms
 ✓ |daemon| test/store/temp-file-store.test.ts (4 tests) 33ms
stdout | test/daemon/supervision-console-production-chain.test.ts > browser -> server bridge -> daemon registry -> browser task-console chain > returns the authoritative project snapshot to shared MAIN viewers and participants
{"level":"info","time":1789317102783,"msg":"Daemon authenticated","serverId":"server-console-chain","daemonVersion":null}

 ✓ |daemon| test/daemon/supervision-console-production-chain.test.ts (1 test) 66ms
 ✓ |daemon| test/daemon/command-handler-clear.test.ts (3 tests) 132ms
 ✓ |daemon| test/daemon/message-pin-mcp-tools.test.ts (8 tests) 55ms
(node:88581) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/supervision-coordinator-authority.test.ts (12 tests) 128ms
 ✓ |daemon| test/daemon/timeline-history-sanitize.test.ts (14 tests) 34ms
 ✓ |daemon| test/daemon/supervision-registry-minting.test.ts (10 tests) 125ms
 ✓ |daemon| test/daemon/supervision-audit-routing-authority.test.ts (4 tests) 17ms
 ✓ |daemon| test/daemon/alias-mcp-tools.test.ts (26 tests) 81ms
 ✓ |daemon| test/daemon/p2p-config-store.test.ts (6 tests) 40ms
 ✓ |daemon| test/daemon/supervision-auto-provision.test.ts (22 tests) 37ms
(node:89425) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/subsession-manager.test.ts (52 tests) 119ms
 ✓ |daemon| test/daemon/timeline-projection-worker-contract.test.ts (2 tests) 57ms
 ✓ |daemon| test/daemon/remote-desktop-daemon.test.ts (20 tests) 36ms
 ✓ |daemon| test/store/context-store-single-owner.test.ts (5 tests) 28ms
 ✓ |daemon| test/daemon/timeline-emitter-tempfile-guard.test.ts (3 tests) 67ms
 ✓ |daemon| test/daemon/hook-server-send-id.test.ts (3 tests) 56ms
 ✓ |daemon| test/shared/memory-mcp-contracts.test.ts (16 tests) 79ms
 ✓ |daemon| test/daemon/command-handler-stop.test.ts (8 tests) 19ms
 ✓ |daemon| test/daemon/execution-clone-mcp.test.ts (45 tests) 39ms
 ✓ |daemon| test/daemon/hook-server-sessions-live.test.ts (4 tests) 70ms
 ✓ |daemon| test/daemon/file-transfer-upload-registry-recovery.test.ts (1 test) 21ms
 ✓ |daemon| test/daemon/supervision-prompts-custom-instructions.test.ts (39 tests) 50ms
 ✓ |daemon| test/daemon/memory-inject-startup.test.ts (1 test) 18ms
 ✓ |daemon| test/daemon/cron-executor.test.ts (44 tests) 44ms
 ✓ |daemon| test/daemon/mcp-tool-discovery.test.ts (4 tests) 9ms
 ✓ |daemon| test/daemon/file-preview-read-pool.test.ts (11 tests) 18ms
 ✓ |daemon| test/shared/metrics.test.ts (5 tests) 17ms
 ✓ |daemon| test/store/context-store-worker-self-recovery.test.ts (11 tests) 115ms
 ✓ |daemon| test/daemon/memory-mcp-machine-handlers.test.ts (10 tests) 12ms
 ✓ |daemon| test/daemon/machine-mcp-deps.test.ts (27 tests) 18ms
 ✓ |daemon| test/shared/p2p-workflow-compiler.test.ts (8 tests) 17ms
 ✓ |daemon| test/store/context-store-worker-client.test.ts (13 tests) 75ms
 ✓ |daemon| test/shared/remote-desktop-access.test.ts (64 tests) 23ms
 ✓ |daemon| test/shared/webrtc-connectivity.test.ts (9 tests) 14ms
 ✓ |daemon| test/daemon/qwen-mcp-config.test.ts (6 tests) 89ms
 ✓ |daemon| test/daemon/peer-audit-candidates.test.ts (22 tests) 23ms
 ✓ |daemon| test/daemon/timeline-replay.test.ts (8 tests) 35ms
 ✓ |daemon| test/daemon/remote-desktop-consent-ipc.test.ts (21 tests) 11ms
 ✓ |daemon| test/daemon/execution-clone.test.ts (76 tests) 14ms
 ✓ |daemon| test/daemon/remote-desktop-login-screen.test.ts (7 tests) 39ms
 ✓ |daemon| test/shared/transport-queue-reducer.test.ts (12 tests) 11ms
 ✓ |daemon| test/daemon/remote-desktop-consent-provider.test.ts (27 tests) 36ms
 ✓ |daemon| test/daemon/peer-audit-result.test.ts (2 tests) 44ms
 ✓ |daemon| test/daemon/transport-resend-delivery.test.ts (6 tests) 11ms
 ✓ |daemon| test/daemon/file-search.test.ts (13 tests) 33ms
 ✓ |daemon| test/daemon/p2p-workflow-discussion-offsets.test.ts (6 tests) 19ms
 ✓ |daemon| test/shared/p2p-workflow-artifacts.test.ts (6 tests) 13ms
 ✓ |daemon| test/daemon/subsession-manager-forced-fresh.test.ts (22 tests) 21ms
 ✓ |daemon| test/daemon/fs-list-worker.test.ts (2 tests) 16ms
 ✓ |daemon| test/daemon/fs-list-pool.test.ts (6 tests) 10ms
 ✓ |daemon| test/shared/delegation-claim.test.ts (28 tests) 5ms
 ✓ |daemon| test/daemon/session-manager-stop-project.test.ts (4 tests) 17ms
 ✓ |daemon| test/daemon/usage-sync-worker.test.ts (10 tests) 27ms
 ✓ |daemon| test/daemon/session-manager-restore.test.ts (10 tests) 14ms
 ✓ |daemon| test/daemon/remote-desktop-privacy-barrier.test.ts (30 tests) 25ms
 ✓ |daemon| test/daemon/peer-audit-controller.test.ts (18 tests) 9ms
 ✓ |daemon| test/daemon/oc-streaming-integration.test.ts (6 tests) 43ms
 ✓ |daemon| test/daemon/launch-session-opencode.test.ts (1 test) 15ms
 ✓ |daemon| test/daemon/opencode-watcher.test.ts (7 tests) 83ms
 ✓ |daemon| test/daemon/cursor-mcp-config.test.ts (2 tests) 23ms
 ✓ |daemon| test/daemon/file-preview-read-coordinator.test.ts (13 tests) 9ms
 ✓ |daemon| test/shared/agent-delegation.test.ts (37 tests) 13ms
 ✓ |daemon| test/daemon/cron-executor-send.test.ts (3 tests) 64ms
 ✓ |daemon| test/daemon/codex-watcher-bootstrap.test.ts (3 tests) 33ms
 ✓ |daemon| test/shared/p2p-workflow-library.test.ts (29 tests) 7ms
 ✓ |daemon| test/daemon/session-dispatch-delegation.test.ts (6 tests) 13ms
 ✓ |daemon| test/daemon/execution-clone-orchestration.test.ts (17 tests) 9ms
 ✓ |daemon| test/shared/supervision-execution-summary.test.ts (12 tests) 112ms
 ✓ |daemon| test/shared/supervision-execution-pool.test.ts (28 tests) 6ms
 ✓ |daemon| test/daemon/service-recovery.test.ts (16 tests) 13ms
(node:91384) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
 ✓ |daemon| test/daemon/systemd-unit-template.test.ts (19 tests) 10ms
 ✓ |daemon| test/daemon/supervision-compat-shims.test.ts (11 tests) 9ms
 ✓ |daemon| test/daemon/peer-audit-reply-ingress.test.ts (11 tests) 10ms
 ✓ |daemon| test/shared-machine-direct-file-transfer.test.ts (5 tests) 9ms
 ✓ |daemon| test/daemon/provider-sessions.test.ts (5 tests) 38ms
 ✓ |daemon| test/daemon/session-dispatch-peer-audit.test.ts (17 tests) 11ms
 ✓ |daemon| test/daemon/upgrade-blocked-outbox.test.ts (3 tests) 22ms
 ✓ |daemon| test/shared/remote-desktop.test.ts (27 tests) 8ms
 ✓ |daemon| test/shared/template-prompt-patterns.test.ts (100 tests) 14ms
 ✓ |daemon| test/daemon/memory-get-sources-orchestrator.test.ts (13 tests) 7ms
 ✓ |daemon| test/store/session-store-mock-isolation.test.ts (1 test) 21ms
 ✓ |daemon| test/daemon/terminal-streamer-pipe-grace.test.ts (5 tests) 27ms
 ✓ |daemon| test/daemon/peer-audit-reply-pipeline.test.ts (4 tests) 9ms
 ✓ |daemon| test/shared/capability-management.test.ts (9 tests) 7ms
 ✓ |daemon| test/daemon/p2p-config-mode.test.ts (59 tests) 5ms
 ✓ |daemon| test/shared/supervision-task-console.test.ts (39 tests) 12ms
 ✓ |daemon| test/daemon/ordered-shutdown.test.ts (3 tests) 26ms
 ✓ |daemon| test/daemon/command-handler-test-session-guard.test.ts (2 tests) 7ms
 ✓ |daemon| test/daemon/terminal-streamer-stale-pane.test.ts (3 tests) 11ms
 ✓ |daemon| test/daemon/daemon-upgrade-guard.test.ts (21 tests) 8ms
 ✓ |daemon| test/daemon/supervision-intent-ops.test.ts (17 tests) 9ms
 ✓ |daemon| test/daemon/session-identity-client.test.ts (3 tests) 6ms
 ✓ |daemon| test/daemon/well-known-directories.test.ts (41 tests) 6ms
 ✓ |daemon| test/daemon/file-preview-read-observability.test.ts (2 tests) 10ms
 ✓ |daemon| test/daemon/lifecycle-startup-persist-failure.test.ts (2 tests) 14ms
 ✓ |daemon| test/shared/tab-sharing.test.ts (14 tests) 7ms
 ✓ |daemon| test/shared/peer-audit.test.ts (33 tests) 7ms
 ✓ |daemon| test/daemon/execution-clone-admission.test.ts (6 tests) 11ms
 ✓ |daemon| test/daemon/verification-machine-client.test.ts (2 tests) 7ms
 ✓ |daemon| test/daemon/ack-outbox.test.ts (2 tests) 29ms
 ✓ |daemon| test/daemon/command-handler-timeline-history-parity.test.ts (1 test) 6ms
 ✓ |daemon| test/daemon/fs-git-status-pool.test.ts (6 tests) 11ms
 ✓ |daemon| test/daemon/session-restoration.test.ts (8 tests) 7ms
 ✓ |daemon| test/daemon/disk-usage.test.ts (5 tests) 16ms
 ✓ |daemon| test/daemon/memory-scoring.test.ts (21 tests) 6ms
 ✓ |daemon| test/shared/openspec-auto-deliver.test.ts (15 tests) 6ms
 ✓ |daemon| test/daemon/p2p-launch-admission.test.ts (5 tests) 2ms
 ✓ |daemon| test/shared/alias-expand.test.ts (29 tests) 6ms
 ✓ |daemon| test/daemon/memory-mcp-hook-authority-taxonomy.test.ts (6 tests) 37ms
 ✓ |daemon| test/shared/p2p-workflow-validators.test.ts (15 tests) 15ms
 ✓ |daemon| test/daemon/provider-routing.test.ts (6 tests) 3ms
 ✓ |daemon| test/daemon/verification-machine-mcp.test.ts (4 tests) 10ms
 ✓ |daemon| test/daemon/terminal-parser.test.ts (26 tests) 6ms
 ✓ |daemon| test/daemon/memory-mcp-resource-budget.test.ts (4 tests) 11ms
 ✓ |daemon| test/shared/direct-file-transfer-v2.test.ts (17 tests) 6ms
 ✓ |daemon| test/daemon/transport-resend-preservation.test.ts (2 tests) 7ms
 ✓ |daemon| test/daemon/command-handler-ack-contract.test.ts (1 test) 7ms
 ✓ |daemon| test/daemon/session-restart-mcp.test.ts (5 tests) 11ms
 ✓ |daemon| test/daemon/file-change-normalizer.test.ts (12 tests) 13ms
 ✓ |daemon| test/shared/sdk-subagent-status.test.ts (11 tests) 7ms
 ✓ |daemon| test/daemon/worker-session-sync-retrier.test.ts (3 tests) 9ms
 ✓ |daemon| test/shared/direct-file-transfer-ipc-limits.test.ts (21 tests) 6ms
 ✓ |daemon| test/daemon/p2p-behavioral.test.ts (29 tests) 26ms
 ✓ |daemon| test/shared/sanitize-project-name.test.ts (7 tests) 3ms
 ✓ |daemon| test/store/session-state-probe-events.test.ts (4 tests) 8ms
 ✓ |daemon| test/daemon/master-compaction-registry.test.ts (6 tests) 34ms
 ✓ |daemon| test/shared/mcp-machine-tool-gate.test.ts (9 tests) 15ms
 ✓ |daemon| test/daemon/memory-mcp-daemon-worker-proxy.test.ts (1 test) 9ms
 ✓ |daemon| test/daemon/jsonl-parse-core.test.ts (15 tests) 5ms
 ✓ |daemon| test/shared/p2p-workflow-protocol.test.ts (7 tests) 9ms
 ✓ |daemon| test/shared/custom-provider-sdk-agent-types.test.ts (3 tests) 6ms
 ✓ |daemon| test/daemon/execution-clone-cap-integrity.test.ts (4 tests) 7ms
 ✓ |daemon| test/shared-machine-reference.test.ts (12 tests) 4ms
 ✓ |daemon| test/shared/windows-authenticode-enrollment.test.ts (2 tests) 7ms
 ✓ |daemon| test/agent/priority-preserving-context-cap.test.ts (12 tests) 5ms
 ✓ |daemon| test/shared/supervision-audit-handoff.test.ts (23 tests) 4ms
 ✓ |daemon| test/daemon/execution-routing-injection.test.ts (10 tests) 6ms
 ✓ |daemon| test/daemon/embedding-semantic.test.ts (9 tests) 4ms
 ✓ |daemon| test/daemon/session-identity-sync.test.ts (4 tests) 6ms
 ✓ |daemon| test/daemon/shared-machine-authority-client.test.ts (2 tests) 6ms
 ✓ |daemon| test/shared/session-group-clone.test.ts (7 tests) 4ms
 ✓ |daemon| test/daemon/file-preview-policy.test.ts (19 tests) 5ms
 ✓ |daemon| test/daemon/lifecycle-display.test.ts (7 tests) 7ms
 ✓ |daemon| test/daemon/subsession-sync.test.ts (1 test) 6ms
 ✓ |daemon| test/shared-computer-use.test.ts (5 tests) 5ms
 ✓ |daemon| test/daemon/p2p-prototype-pollution.test.ts (7 tests) 2ms
 ✓ |daemon| test/daemon/supervision-audit-envelope-contract.test.ts (10 tests) 5ms
 ✓ |daemon| test/daemon/context-model-config.test.ts (7 tests) 6ms
 ✓ |daemon| test/shared/alias-types.test.ts (13 tests) 17ms
 ✓ |daemon| test/daemon/transport-types.test.ts (27 tests) 6ms
 ✓ |daemon| test/shared/p2p-advanced.test.ts (14 tests) 4ms
 ✓ |daemon| test/daemon/peer-audit-process-injector.test.ts (12 tests) 4ms
 ✓ |daemon| test/daemon/fs-git-status-worker.test.ts (4 tests) 3ms
 ✓ |daemon| test/shared/preview-ws-types.test.ts (27 tests) 4ms
 ✓ |daemon| test/shared/execution-clone.test.ts (20 tests) 4ms
 ✓ |daemon| test/daemon/openspec-auto-deliver-orchestrator.test.ts (91 tests) 85292ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > sends launch ack before collecting the implementation product baseline  2660ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps one implementation prompt active while tasks remain unchecked and no completed marker exists  1274ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > still terminalizes when tasks.md stays empty past the read retry budget  309ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > dispatches final acceptance scoring instead of stopping early when implementation prompt budget is spent  1291ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not exhaust the marker reminder cap while a slow session has not answered the implementation prompt yet  996ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > asks the implementation LLM to commit&push, then verifies product changes after final implementation audit PASS when opted in  2655ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > runs the Standard preset from spec audit through implementation audit PASS  2726ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > advances spec repair to final acceptance when the repair idle event is missed  1186ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > builds Team audit prompts from canonical OpenSpec templates and final acceptance prompts with authoritative metadata  2437ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds final audit PASS safety failures back into implementation repair  1450ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps spec audit REWORK in audit repair instead of advancing to implementation  1105ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > inlines the previous spec acceptance audit required_changes into the next spec repair prompt  1124ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > starts another Team audit only after final acceptance says previous spec repairs are complete but still insufficient  1438ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not start another Team audit after final implementation acceptance PASS with perfect scores  1354ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not start another spec Team round after final spec acceptance PASS with acceptable scores  1241ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > stops for human input when spec audit reports BLOCKED  1277ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds implementation audit REWORK back into implementation repair before re-auditing  1870ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds low implementation audit scores back into implementation repair  1846ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > queues final acceptance audit prompts for resend when transport runtime is not initialized  1463ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > nudges stale active transport turns when a final acceptance audit prompt is queued  1529ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > drops stale queued Auto Deliver implementation prompts once final acceptance passes  1814ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not continue implementation after final acceptance PASS when changed-file coverage is documented outside repairs_applied  2485ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > removes stale runtime-pending Auto Deliver implementation prompts once final acceptance passes  1416ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds final acceptance REWORK back into implementation repair before extending audit rounds  1489ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > continues implementation repair on fixable work even when external blocked_items are also listed  1388ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > hands off to a human only when no fixable work remains and external blockers persist  1365ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not let an in-flight idle advance send into the next test after test cleanup  2359ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > delivers (passed) when the only unchecked tasks are accepted external/deferred gates  1713ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > starts another Team implementation audit only after final acceptance says previous repairs are complete but still low scoring  1597ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps valid missing authoritative result files classified as missing JSON  1471ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requests authoritative result file repair before consuming another audit-repair round  1472ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > continues after a final acceptance result-file repair even when the idle event is missed  1439ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > consumes a valid final acceptance result file even while the transport runtime still reports busy  1580ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > consumes one final acceptance result only once when duplicate idle events race  1572ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requests authoritative result file repair for verdict payload format errors  1580ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requires repair_completion before consuming a final acceptance result  1504ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps result-file repair prompts stage-scoped for spec audit repair  1234ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps retrying final acceptance result-file repair instead of prompting for human input  2678ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores stale idle events while final acceptance result-file prompts are still running  1752ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > stops for human input when implementation audit reports BLOCKED  1463ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects stale metadata and malformed or missing authoritative result files  5684ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects authoritative result files that symlink outside .imc/discussions  1382ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects .imc/discussions directory symlink escapes with the same invalid-path classification  1363ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores discussion JSON when the authoritative result file is missing  1544ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > uses an authoritative result file larger than the generic P2P summary tail  1536ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > surfaces wrapper P2P failures instead of misreporting missing authoritative JSON  1206ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > proceeds to repair + scoring on a post-summary execution-gate failure instead of audit_p2p_failed  1205ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > proceeds to repair + scoring when the audit discussion times out (a hop ran out of its time box)  1249ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores late audit results after stop terminalization and releases the P2P lock  1117ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > denies non-participant sibling stop and preserves terminal status on late stop  1560ms
 ✓ |daemon| test/shared/p2p-workflow-script.test.ts (10 tests) 4ms
 ✓ |daemon| test/shared/imcodes-version-channel.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/timeline-merge.test.ts (15 tests) 4ms
 ✓ |daemon| test/daemon/peer-audit-baseline.test.ts (17 tests) 4ms
 ✓ |daemon| test/daemon/supervision-id-minter.test.ts (10 tests) 16ms
 ✓ |daemon| test/daemon/oc-session-sync.test.ts (25 tests) 4ms
 ✓ |daemon| test/daemon/execution-clone-limits-resolver.test.ts (10 tests) 4ms
 ✓ |daemon| test/daemon/supervisor-defaults-cache.test.ts (1 test) 4ms
 ✓ |daemon| test/daemon/p2p-script-runner-sandbox.test.ts (33 tests) 7ms
 ✓ |daemon| test/daemon/file-preview-classifier.test.ts (11 tests) 7ms
 ✓ |daemon| test/daemon/file-preview-read-response.test.ts (5 tests) 4ms
 ✓ |daemon| test/shared/test-session-guard.test.ts (4 tests) 4ms
 ✓ |daemon| test/shared/session-activity-types.test.ts (13 tests) 4ms
 ✓ |daemon| test/daemon/alias-audit.test.ts (13 tests) 4ms
 ✓ |daemon| test/daemon/backend-authored-context.test.ts (3 tests) 4ms
 ✓ |daemon| test/shared/p2p-workflow-logic-evaluator.test.ts (17 tests) 3ms
 ✓ |daemon| test/daemon/backend-context-namespace.test.ts (2 tests) 3ms
 ✓ |daemon| test/daemon/file-preview-read-shutdown.test.ts (3 tests) 4ms
 ✓ |daemon| test/shared/remote-desktop-platform.test.ts (20 tests) 7ms
 ✓ |daemon| test/daemon/send-list-targets-eligibility.test.ts (4 tests) 36ms
 ✓ |daemon| test/daemon/timeline-detail-store.test.ts (2 tests) 3ms
 ✓ |daemon| test/shared-context-runtime-config.test.ts (18 tests) 3ms
 ✓ |daemon| test/daemon/session-resource-service.test.ts (5 tests) 6ms
 ✓ |daemon| test/daemon/session-bootstrap.test.ts (6 tests) 4ms
 ✓ |daemon| test/daemon/transport-queued-events-bug3.test.ts (3 tests) 15ms
 ✓ |daemon| test/daemon/execution-clone-lifecycle.test.ts (3 tests) 4ms
 ✓ |daemon| test/daemon/session-close.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/transport-types-contract.test.ts (24 tests) 9ms
 ✓ |daemon| test/shared/controlled-node-identity.test.ts (17 tests) 3ms
 ✓ |daemon| test/shared/windows-release-publisher-trust.test.ts (16 tests) 5ms
 ✓ |daemon| test/shared/audit-convergence.test.ts (4 tests) 3ms
 ✓ |daemon| test/daemon/p2p-adapter-topology.test.ts (11 tests) 5ms
 ✓ |daemon| test/daemon/direct-file-transfer-ice.test.ts (2 tests) 2ms
 ✓ |daemon| test/daemon/structured-session-bootstrap.test.ts (4 tests) 7ms
 ✓ |daemon| test/shared/user-session-text-caps.test.ts (7 tests) 2ms
 ✓ |daemon| test/daemon/service-recovery-runner.test.ts (9 tests) 3ms
 ✓ |daemon| test/daemon/file-preview-read-fanout.test.ts (4 tests) 4ms
 ✓ |daemon| test/daemon/file-preview-read-cache-facade.test.ts (7 tests) 2ms
 ✓ |daemon| test/shared/recall-cap-rule.test.ts (15 tests) 3ms
 ✓ |daemon| test/shared/wire-protocol-contract.test.ts (4 tests) 10ms
 ✓ |daemon| test/shared/transport-identity-scrub.test.ts (11 tests) 3ms
 ✓ |daemon| test/shared/daemon-upgrade.test.ts (3 tests) 8ms
 ✓ |daemon| test/shared/computer-use.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/html-preview.test.ts (19 tests) 2ms
 ✓ |daemon| test/shared/session-control-commands.test.ts (5 tests) 3ms
 ✓ |daemon| test/daemon/memory-mcp-caller.test.ts (4 tests) 6ms
 ✓ |daemon| test/shared/session-model.test.ts (2 tests) 1ms
 ✓ |daemon| test/shared-file-transfer-controlled.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/cron-types.test.ts (12 tests) 2ms
 ✓ |daemon| test/daemon/codex-quota-refresh.test.ts (2 tests) 4ms
 ✓ |daemon| test/daemon/gemini-stable-id.test.ts (1 test) 6ms
 ✓ |daemon| test/daemon/file-preview-read-admission.test.ts (6 tests) 3ms
 ✓ |daemon| test/daemon/backend-runtime-config.test.ts (1 test) 2ms
 ✓ |daemon| test/shared/daemon-machine-list-contract.test.ts (4 tests) 3ms
 ✓ |daemon| test/shared/models-options.test.ts (8 tests) 24ms
 ✓ |daemon| test/shared/remote-desktop-platform-adapters.test.ts (3 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-redaction.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-prompt.test.ts (4 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-validators-fieldpath.test.ts (6 tests) 6ms
 ✓ |daemon| test/daemon/execution-routing-appendix.test.ts (9 tests) 13ms
 ✓ |daemon| test/daemon/auto-upgrade-cooldown.test.ts (12 tests) 18ms
 ✓ |daemon| test/daemon/transport-relay-usage-payload.test.ts (5 tests) 3ms
 ✓ |daemon| test/store/source-id-merge.test.ts (1 test) 4ms
 ✓ |daemon| test/shared/git-remote-url.test.ts (4 tests) 19ms
 ✓ |daemon| test/daemon/suppress-sqlite-warning.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/transport-queue-privacy.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/daemon-task-admission-record-only.test.ts (3 tests) 4ms
 ✓ |daemon| test/shared/p2p-execution-marker.test.ts (7 tests) 4ms
 ✓ |daemon| test/daemon/project-path-key.test.ts (9 tests) 2ms
 ✓ |daemon| test/shared/controlled-node-ticket-delivery.test.ts (4 tests) 3ms
 ✓ |daemon| test/daemon/session-file-read-grants.test.ts (3 tests) 3ms
 ✓ |daemon| test/shared/send-message-id.test.ts (3 tests) 2ms
 ✓ |daemon| test/shared/timeline-recoverable-errors.test.ts (5 tests) 2ms
 ✓ |daemon| test/daemon/daemon-task-admission.test.ts (2 tests) 6ms
 ✓ |daemon| test/shared/memory-noise-patterns.test.ts (2 tests) 5ms
 ✓ |daemon| test/shared/memory-mcp-errors.test.ts (2 tests) 2ms
 ✓ |daemon| test/daemon/watcher-claiming.test.ts (6 tests) 5ms
 ✓ |daemon| test/shared/session-display.test.ts (3 tests) 3ms
 ✓ |daemon| test/shared/timeline-delivery-telemetry.test.ts (5 tests) 2ms
 ✓ |daemon| test/daemon/p2p-memory-filter.test.ts (5 tests) 2ms
 ✓ |daemon| test/daemon/supervision-i18n.test.ts (8 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-materialize.test.ts (2 tests) 3ms
 ✓ |daemon| test/shared/memory-eligible-event.test.ts (11 tests) 9ms
 ✓ |daemon| test/daemon/execution-clone-launch-boundary.test.ts (5 tests) 4ms
 ✓ |daemon| test/shared/session-scope.test.ts (3 tests) 2ms
 ✓ |daemon| test/shared-agent-types.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/clock-sync.test.ts (8 tests) 2ms
 ✓ |daemon| test/shared/password-rules.test.ts (8 tests) 2ms
 ✓ |daemon| test/shared/request-failure.test.ts (3 tests) 5ms
 ✓ |daemon| test/daemon/upgrade-deferral-backstop.test.ts (6 tests) 7ms
 ✓ |daemon| test/daemon/shared-machine-authority-context.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/memory-projection-owner-cache.test.ts (6 tests) 2ms
 ✓ |daemon| test/daemon/cgroup-validation-probes.test.ts (3 tests | 1 skipped) 2ms
 ✓ |daemon| test/shared/memory-mcp-env.test.ts (1 test) 2ms
 ✓ |daemon| test/daemon/p2p-workflow-launch-wiring.test.ts (3 tests) 14ms
 ✓ |daemon| test/daemon/upgrade-toolchain-check.test.ts (5 tests) 5ms
 ✓ |daemon| test/daemon/lifecycle-context-store-startup-order.test.ts (1 test) 3ms
 ✓ |daemon| test/shared/openspec-prompt-templates.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/memory-mcp-provenance.test.ts (2 tests) 3ms
 ✓ |daemon| test/daemon/supervision-brain-authority.test.ts (3 tests) 2ms
 ✓ |daemon| test/daemon/session-type-switch.test.ts (2 tests) 5ms
 ✓ |daemon| test/shared/terminal-transport-contract.test.ts (2 tests) 1ms
 ✓ |daemon| test/shared/platform-types-contract.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/alias-memory-isolation.test.ts (3 tests) 2ms
 ✓ |daemon| test/shared/fs-transport-contract.test.ts (2 tests) 2ms
 ✓ |daemon| test/daemon/command-handler-opencode-history.test.ts (5 tests) 2ms
 ✓ |daemon| test/daemon/jsonl-watcher.test.ts (49 tests) 111407ms
   ✓ parseLine — event type coverage > emits assistant.text for text blocks  2715ms
   ✓ parseLine — event type coverage > emits assistant.thinking for thinking blocks  2705ms
   ✓ parseLine — event type coverage > emits tool.call for tool_use blocks  2703ms
   ✓ parseLine — event type coverage > emits user.message for user text blocks  2705ms
   ✓ parseLine — event type coverage > emits user.message for string-form user content used by real CC transcripts  2708ms
   ✓ parseLine — event type coverage > emits tool.result for tool_result blocks  2710ms
   ✓ parseLine — event type coverage > emits tool.result with error for error tool_results  2705ms
   ✓ parseLine — event type coverage > emits usage.update for result events with cost  2704ms
   ✓ parseLine — event type coverage > emits agent.status for compact_boundary system events  2704ms
   ✓ parseLine — event type coverage > emits agent.status for bash_progress  2706ms
   ✓ parseLine — event type coverage > emits ask.question for AskUserQuestion tool_use  2706ms
   ✓ parseLine — event type coverage > handles multi-block assistant turns (text + tool_use)  2710ms
   ✓ parseLine — event type coverage > emits usage.update with token counts from assistant messages  2725ms
   ✓ parseLine — event type coverage > ignores invalid JSON lines gracefully  2705ms
   ✓ parseLine — event type coverage > ignores empty/whitespace lines  2705ms
   ✓ extractToolInput — tool-specific input extraction > extracts command from Bash tool  2733ms
   ✓ extractToolInput — tool-specific input extraction > extracts file_path from Read tool  2720ms
   ✓ extractToolInput — tool-specific input extraction > extracts pattern from Glob tool  2705ms
   ✓ extractToolInput — tool-specific input extraction > extracts pattern+path from Grep tool  2706ms
   ✓ extractToolInput — tool-specific input extraction > extracts description from Agent tool  2705ms
   ✓ file.change emission > emits hidden raw tool events and a visible file.change for Claude Edit  2708ms
   ✓ file.change emission > preserves repeated patches for the same file within a MultiEdit batch  2714ms
   ✓ file.change emission > does not emit file.change when Claude file identity is missing  2713ms
   ✓ file.change emission > keeps raw Claude tool rows visible when the deferred file tool errors  2765ms
   ✓ drainNewLines — partial line handling > does NOT lose data when file write splits a JSON line across drains  4582ms
   ✓ drainNewLines — partial line handling > handles multiple complete lines followed by a partial  4566ms
   ✓ startWatchingFile — timeout cleanup > cleans up phantom watcher when file never appears  1003ms
   ✓ startWatchingFile — timeout cleanup > succeeds when file appears within timeout  1003ms
   ✓ watcher status tracking > transitions from waiting_for_file to active  303ms
   ✓ watcher status tracking > returns stopped/null after stopWatching  324ms
   ✓ claim management > preClaimFile prevents other sessions from claiming the same file  324ms
   ✓ claim management > stopWatching releases claims  305ms
   ✓ stable eventId generation > generates deterministic eventIds based on byte offset  611ms
   ✓ stable eventId generation > produces same eventIds on re-read (daemon restart simulation)  630ms
   ✓ progress event subtypes > emits agent.status for agent_progress  2705ms
   ✓ progress event subtypes > emits agent.status for mcp_progress started  2704ms
   ✓ progress event subtypes > emits agent.status for waiting_for_task  2704ms
   ✓ system-injected message filtering > filters <task-notification> and emits agent.status processing instead  2704ms
   ✓ system-injected message filtering > filters <system-reminder> and emits agent.status processing instead  2705ms
   ✓ system-injected message filtering > filters <command-name> slash commands  2704ms
   ✓ system-injected message filtering > filters <local-command-caveat> local commands  2704ms
   ✓ system-injected message filtering > filters <bash-input> / <bash-stdout> / <bash-stderr>  2704ms
   ✓ system-injected message filtering > filters <command-message> tags  2705ms
   ✓ system-injected message filtering > filters string-form user content with system tags  2704ms
   ✓ system-injected message filtering > does NOT filter normal user messages  2705ms
   ✓ system-injected message filtering > does NOT filter user messages that mention XML tags in natural text  2705ms

 Test Files  435 passed | 1 skipped (436)
      Tests  6678 passed | 23 skipped (6701)
   Start at  00:30:29
   Duration  112.47s (transform 13.20s, setup 12.46s, collect 150.59s, tests 540.88s, environment 63ms, prepare 33.52s)

npm notice
npm notice New minor version of npm available! 11.8.0 -> 11.19.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.19.1
npm notice To update run: npm install -g npm@11.19.1
npm notice
EXIT=0
