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

(node:2101) 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-identity-convergence.test.ts (26 tests) 150ms
 ✓ |daemon| test/agent/qwen-provider.test.ts (43 tests) 990ms
   ✓ QwenProvider > retries a transient Premature close once before surfacing an error  361ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-fork-cost.test.ts (13 tests) 11893ms
   ✓ supervision worktree inspection cost (production-shaped) > cold inspection spawns a bounded, constant number of git processes  2032ms
   ✓ supervision worktree inspection cost (production-shaped) > never spawns one git process per changed path (no refs x files amplification)  822ms
   ✓ supervision worktree inspection cost (production-shaped) > does not block the daemon event loop while inspecting  752ms
   ✓ supervision worktree inspection cost (production-shaped) > re-inspects an unchanged worktree with a single bounded probe  985ms
   ✓ supervision worktree inspection cost (production-shaped) > coalesces concurrent identical inspections into one underlying pass  897ms
   ✓ cached inspection invalidates precisely > re-reads when a reported file changes on disk  849ms
   ✓ cached inspection invalidates precisely > re-reads when a previously CLEAN tracked file becomes dirty  922ms
   ✓ cached inspection invalidates precisely > re-reads when a NEW untracked file appears  1284ms
   ✓ cached inspection invalidates precisely > re-reads when staging changes  858ms
   ✓ cached inspection invalidates precisely > re-reads when HEAD moves  780ms
   ✓ cached inspection invalidates precisely > re-reads when a remote ref moves  842ms
   ✓ cached inspection invalidates precisely > expires by TTL even when nothing observable changed  851ms
 ✓ |daemon| test/daemon/jsonl-watcher.worker.test.ts (4 tests) 18510ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events for plain assistant/user turns  5862ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events for Edit tool_use + tool_result pair (file.change)  5074ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > produces identical events when tool_use and tool_result arrive in separate drain cycles  5033ms
   ✓ jsonl-watcher parity: worker ON vs worker OFF > falls back to main thread when worker is unavailable  2540ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-authority.test.ts (11 tests) 17614ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a NEW untracked path appears  769ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a previously CLEAN tracked path becomes dirty  753ms
   ✓ remote-delivery authority is never served stale > drops the positive match when a reported path changes content in place  627ms
   ✓ remote-delivery authority is never served stale > still answers an unchanged worktree without re-reading it from scratch  791ms
   ✓ deletion-only remote delivery parity > matches a remote commit that delivers exactly the deletion  613ms
   ✓ deletion-only remote delivery parity > does not match a remote that still carries the deleted path  329ms
   ✓ the git queue is bounded end to end > fails closed when a request cannot start before its total deadline  2864ms
   ✓ the git queue is bounded end to end > rejects immediately once the queue hits its hard cap, and stays bounded  8333ms
   ✓ git failure, deadline and output cap all fail closed > never claims a delivery it could not afford to read  1491ms
   ✓ git failure, deadline and output cap all fail closed > fails closed — and stays bounded — when a single git call outlives the deadline  904ms
 ✓ |daemon| test/daemon/transport-session-runtime.test.ts (203 tests) 12738ms
   ✓ TransportSessionRuntime > auto-retry redelivers a recoverable-failed message once the provider frees up  1013ms
   ✓ TransportSessionRuntime > keeps a recoverable retry isolated from messages queued during backoff  1012ms
   ✓ TransportSessionRuntime > auto-retry of a direct send does not duplicate timeline drain or runtime history  1006ms
   ✓ TransportSessionRuntime > auto-retry of a drained queued turn emits its user event only once  1006ms
   ✓ TransportSessionRuntime > uses a short retry budget for stale provider busy instead of the generic recoverable budget  7019ms
 ✓ |daemon| test/daemon/p2p-orchestrator.test.ts (70 tests | 2 skipped) 23281ms
   ✓ P2P orchestrator — parallel rounds > nudges stale active transport work when a P2P prompt is queued behind it  324ms
   ✓ 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  366ms
   ✓ P2P orchestrator — parallel rounds > drains a queued P2P prompt immediately when the transport runtime is already idle  348ms
   ✓ P2P orchestrator — parallel rounds > restarts the full legacy combo pipeline for each selected cycle without advanced fields  592ms
   ✓ P2P orchestrator — parallel rounds > inlines original-request execution into each complete legacy combo-cycle summary and follows up to confirm  566ms
   ✓ P2P orchestrator — parallel rounds > includes the previous cycle output in the next cycle participant kickoff prompt  345ms
   ✓ P2P orchestrator — parallel rounds > times out instead of hanging when the post-summary execution turn never returns idle  591ms
   ✓ P2P orchestrator — parallel rounds > dispatches phase-2 hops in parallel and waits for the barrier before summary  402ms
   ✓ P2P orchestrator — parallel rounds > still enters summary when zero hops complete in a round  309ms
   ✓ P2P orchestrator — parallel rounds > preserves completed evidence and still summarizes on partial hop failure  307ms
   ✓ P2P orchestrator — parallel rounds > does not fail the whole run when the initiator goes idle without writing  325ms
   ✓ P2P orchestrator — parallel rounds > does not double the configured timeout for required initiator hops  2138ms
   ✓ P2P orchestrator — parallel rounds > treats cancel on a terminal run as close and removes it from memory  301ms
   ✓ P2P orchestrator — parallel rounds > waits for final idle content instead of completing on the first streamed heading  4995ms
   ✓ P2P orchestrator — parallel rounds > treats missing advanced audit verdicts as rework and records jump history  371ms
   ✓ P2P orchestrator — parallel rounds > forces the minimum rework loops before handing off to smart-gate evaluation  371ms
   ✓ P2P orchestrator — parallel rounds > hands off forced_rework rounds to smart-gate behavior after minTriggers is satisfied  383ms
   ✓ P2P orchestrator — parallel rounds > continues forced_rework routing on REWORK after minTriggers until maxTriggers is exhausted  420ms
   ✓ P2P orchestrator — parallel rounds > completes the openspec preset after proposal artifacts are created and audit eventually passes  576ms
   ✓ P2P orchestrator — parallel rounds > cleans up loop-generated hop artifacts after repeated advanced attempts settle  642ms
   ✓ P2P orchestrator — parallel rounds > keeps advanced loop bookkeeping deterministic while legacy projections remain compatibility-only  419ms
   ✓ P2P orchestrator — parallel rounds > injects reducer summaries into later loop prompts and keeps the helper prompt focused on the latest attempt context  481ms
   ✓ P2P orchestrator — parallel rounds > cleans worker-hop artifacts after repeated loop attempts  555ms
 ✓ |daemon| test/agent/codex-sdk-provider.test.ts (183 tests) 9805ms
   ✓ CodexSdkProvider > polls the Codex rollout briefly for raw update_plan calls without waiting for token usage  2019ms
   ✓ CodexSdkProvider > merges a task_name-only spawn with its child thread rollout instead of duplicating the UI row  2048ms
   ✓ CodexSdkProvider > discovers child rollout sub-agents by IM.codes session identity when Codex parent id differs  2041ms
   ✓ CodexSdkProvider > settles a turn from rollout task_complete when the app-server sends only idle/completed hints  391ms
   ✓ CodexSdkProvider > terminalizes a WebSearch started event when rollout settles a turn without turn/completed  452ms
   ✓ CodexSdkProvider > settles from rollout task_complete when turn/start response never returns and ignores its late response  415ms
   ✓ CodexSdkProvider > ignores a late id-less interrupted notification from a previous stop and still settles the newer turn  378ms
 ✓ |daemon| test/daemon/hook-port.test.ts (74 tests) 12178ms
   ✓ publication lock - never taken from a live or indeterminate holder > refuses while a LIVE holder owns the current epoch, leaving it untouched  1101ms
   ✓ publication lock - never taken from a live or indeterminate holder > never takes over a live holder however old its acquisition is  1073ms
   ✓ publication lock - never taken from a live or indeterminate holder > never treats a holder with the same {pid,startToken} as its own leftover  1086ms
   ✓ publication lock - never taken from a live or indeterminate holder > never takes over a holder whose liveness is indeterminate  1066ms
   ✓ legacy single-file lock - respected, never modified > a LIVE nonce-less legacy holder is never taken over, however long it waits  1101ms
   ✓ legacy single-file lock - respected, never modified > an indeterminate legacy holder is never taken over  1047ms
   ✓ publication lock - ownership-safe interleavings > CLAIM gap: a reclaimer suspended after final validation cannot displace a successor  1058ms
   ✓ publication lock - ownership-safe interleavings > RELEASE gap: a stale holder's release cannot release or remove a successor's entry  1070ms
   ✓ publication lock - ownership-safe interleavings > PRUNE gap: a high-epoch claimer resumed after a directory reset cannot prune the new generation  1070ms
   ✓ publication lock - ownership-safe interleavings > CLAIM across a reset: a late old-generation claim is invisible to the new generation  1062ms
   ✓ publication lock - ownership-safe interleavings > RELEASE after epoch reuse: a stale release names only its own acquisition  1098ms
 ✓ |daemon| test/daemon/qwen-cancel.test.ts (4 tests) 6791ms
   ✓ Qwen provider cancel > sends SIGTERM on cancel  2207ms
   ✓ Qwen provider cancel > escalates a SIGTERM-ignoring process to SIGKILL before cancel resolves  2196ms
   ✓ Qwen provider cancel > resets started flag after cancel so next send starts fresh  2299ms
 ✓ |daemon| test/daemon/memory-mcp-server.test.ts (28 tests) 30620ms
   ✓ memory MCP stdio server > lists the registered shared tools over stdio and does not leak secret env  2615ms
   ✓ memory MCP stdio server > keeps the real stdio child and initial catalog alive after the RSS watchdog samples overload  12773ms
   ✓ memory MCP stdio server > lists tools over stdio without identity env  2076ms
   ✓ memory MCP stdio server > activates only matching tools and replaces the previous lazy result set  2269ms
   ✓ memory MCP stdio server > loads persisted sessions before serving scoped send targets over stdio  1687ms
   ✓ memory MCP stdio server > dispatches send_message through the daemon hook server from stdio MCP  2141ms
   ✓ memory MCP stdio server > submits peer_audit_reply to dedicated ingress with the runtime-bound sender header  1256ms
   ✓ memory MCP stdio server > submits delegation_reply to dedicated ingress with the runtime-bound sender header  2473ms
   ✓ memory MCP stdio server > keeps listed send targets usable across a transient empty session-store refresh  2627ms
   ✓ createMemoryMcpServerFromEnv supervision wiring > forwards supervisionToolDeps to registerSupervisionMcpTools  519ms
 ✓ |daemon| test/daemon/supervision-automation.test.ts (236 tests) 8672ms
   ✓ SupervisionAutomation > recovers the original user task after more than one thousand non-conversation events  681ms
 ✓ |daemon| test/daemon/lifecycle-boot-supervision-sweep.test.ts (1 test) 5373ms
   ✓ daemon boot enters the same bounded supervision convergence > repairs a stuck aggregate at boot, leaves unauthorized ones alone, and does not churn  5372ms
 ✓ |daemon| test/daemon/sdk-transport-restore.test.ts (45 tests) 6242ms
   ✓ sdk transport session restore > refuses to start a Brain codex turn when IM delegation is not authoritatively connected (control)  1546ms
   ✓ sdk transport session restore > emits startup memory.context when the first transport turn carries the seeded memory  2568ms
 ✓ |daemon| test/store/context-store-worker.test.ts (14 tests) 4141ms
   ✓ context-store worker foundation > round-trips a write/read op through the worker  350ms
   ✓ context-store worker foundation > structured-clones object rows and embedding buffers across the worker  680ms
   ✓ context-store worker foundation > rejects an unknown op with a stable unsupported_operation code  410ms
   ✓ context-store worker foundation > serializes a thrown op error as a plain code+message (no stack/path leak)  334ms
   ✓ context-store worker foundation > times out a pending RPC and discards the late worker reply  462ms
   ✓ context-store worker foundation > caps in-flight fire-and-forget at the backpressure limit  400ms
   ✓ context-store worker foundation > returns empty for an R1 read before the worker is warm, then serves after ready  391ms
   ✓ context-store worker foundation > rejects awaited mutations past the awaited cap with context_store_overloaded  369ms
   ✓ context-store worker foundation > callOrElse uses the worker when warm, and the local fallback when not warm  321ms
   ✓ context-store worker foundation > callOrElse falls back to local when the worker op errors  306ms
 ✓ |daemon| test/daemon/lifecycle-worker-session-sync.test.ts (4 tests) 3435ms
   ✓ lifecycle worker session sync > treats legacy list responses as degraded and does not destructively prune local sessions  1586ms
   ✓ lifecycle worker session sync > does not drop local sessions missing from a complete snapshot without an explicit tombstone  690ms
   ✓ lifecycle worker session sync > treats remote stopped sessions as existing instead of deleting a local running session  507ms
   ✓ lifecycle worker session sync > marks a bad complete snapshot as degraded before applying destructive side effects  650ms
 ✓ |daemon| test/daemon/hook-authority-global-containment.test.ts (4 tests) 4510ms
   ✓ machine hook-port containment > fences a spawned child that has no test-runner environment  1691ms
   ✓ machine hook-port containment > lets the lock-owning process publish, so the fence is not simply "always refuse"  1394ms
   ✓ machine hook-port containment > keeps the production record untouched while a sandboxed hook server runs  1115ms
   ✓ machine hook-port containment > proves a sandbox home is genuinely not the machine record  310ms
 ✓ |daemon| test/daemon/file-preview-read-dist-daemon-smoke.test.ts (2 tests) 3066ms
   ✓ dist default daemon preview-read smoke > uses real worker threads and emits visible success and sanitized errors through the default coordinator  457ms
   ✓ dist default daemon preview-read smoke > keeps non-preview commands responsive while real dist preview workers are delayed  2608ms
 ✓ |daemon| test/daemon/gemini-idle-detection.test.ts (12 tests) 3794ms
   ✓ Gemini Idle Detection (Direct pollTick test) > emits idle ONLY after JSON stops changing (new data always = running)  656ms
   ✓ Gemini Idle Detection (Direct pollTick test) > emits idle after trailing info message once JSON settles  647ms
   ✓ Gemini spinner detection (braille at col 0) > confirms working state when spinner seen in majority of burst reads  329ms
   ✓ 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)  325ms
   ✓ Gemini spinner detection (braille at col 0) > spinner overrides JSON idle status (ground truth)  325ms
   ✓ Gemini spinner detection (braille at col 0) > returns to idle when spinner disappears  655ms
   ✓ Gemini JSON change detection hardening > stays on unchanged path when both mtime and size match  325ms
 ✓ |daemon| test/daemon/materialization-coordinator.test.ts (20 tests) 3737ms
   ✓ MaterializationCoordinator > materializes structured problem-resolution summaries from eligible events  576ms
   ✓ MaterializationCoordinator > excludes tool.call and assistant.delta from materialized summaries even when present in staged events  563ms
   ✓ MaterializationCoordinator > materializes end-to-end through a WARM context-store worker (reads + commit off the main thread)  563ms
   ✓ MaterializationCoordinator > skips durable agent-learned projection writes when self-learning is disabled  346ms
 ❯ |daemon| test/daemon/memory-mcp-stdio-lifecycle.test.ts (13 tests | 1 failed) 38310ms
   ✓ memory MCP stdio lifecycle (subprocess) > exits when its parent dies even though stdin never reaches EOF  3302ms
   × memory MCP stdio lifecycle (subprocess) > exits when it was already reparented before it ever ran, stdin still held 22734ms
     → a process born already reparented must not become the leak: expected false to be true // Object.is equality
   ✓ memory MCP stdio lifecycle (subprocess) > exits when its parent dies BEFORE the server is ready, stdin still held  3047ms
   ✓ memory MCP stdio lifecycle (subprocess) > still exits on a clean stdin EOF  2735ms
   ✓ memory MCP stdio lifecycle (subprocess) > keeps running while its parent is alive and stdin is open  6483ms
   ✓ installMcpStdioLifecycle > shuts down on stdin EOF alone, with no parent change and no tick 2ms
   ✓ installMcpStdioLifecycle > ignores a poll callback that was already queued when the guard stopped 1ms
   ✓ installMcpStdioLifecycle > shuts down once when EOF and parent loss race in the same turn 1ms
   ✓ installMcpStdioLifecycle > does not shut down while the parent pid is unchanged 1ms
   ✓ installMcpStdioLifecycle > unrefs its poll so the guard never keeps the process alive 0ms
   ✓ installMcpStdioLifecycle > disposes without shutting down 0ms
   ✓ createIdempotentShutdown > releases once and closes once however many callers arrive 0ms
   ✓ createIdempotentShutdown > still closes when release rejects, and swallows a synchronously throwing close 1ms
 ✓ |daemon| test/shared/timeline-protocol-magic-string.test.ts (2 tests) 2771ms
   ✓ timeline protocol magic strings > keeps shared timeline protocol literals centralized outside compatibility fixtures  2769ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector-remote-match.test.ts (7 tests) 3944ms
   ✓ remote delivery matching against real git > matches the remote ref whose committed bytes are exactly the worktree bytes  738ms
   ✓ remote delivery matching against real git > reports no match when a single byte differs  517ms
   ✓ remote delivery matching against real git > reports no match when the bytes differ but the LENGTH is identical  599ms
   ✓ remote delivery matching against real git > requires every manifest row to match, not merely one of them  542ms
   ✓ remote delivery matching against real git > treats a path the remote still carries as disproving a deletion  561ms
   ✓ remote delivery matching against real git > still finds a non-preferred remote ref when origin/dev is not the match  610ms
   ✓ remote delivery matching against real git > fails closed when git cannot answer  374ms
 ✓ |daemon| test/daemon/agent-process-startup-sweep.test.ts (5 tests) 2350ms
   ✓ agent process group survives into the startup sweep > reaps the whole group of a crashed session, not just the leader  641ms
   ✓ agent process group survives into the startup sweep > refuses to signal when the recorded fingerprint no longer matches  525ms
   ✓ agent process group survives into the startup sweep > group-reaps survivors when the recorded leader is already gone  723ms
warning: in the working copy of 'web/android/gradlew.bat', LF will be replaced by CRLF the next time Git touches it
Preparing worktree (detached HEAD 7ea10ba)
Preparing worktree (detached HEAD 7ea10ba)
 ✓ |daemon| test/daemon/supervision-worktree-gc.test.ts (24 tests) 4176ms
   ✓ bounded supervision worktree GC > pages legacy repo-less assignment shells by durable cursor instead of retaining invalid_layout forever  300ms
   ✓ bounded supervision worktree GC > hard-bounds a crowded assignment root before registry or Git work  1701ms
   ✓ bounded supervision worktree GC > uses real Git status, registration, and remote reachability evidence  1103ms
 ✓ |daemon| test/daemon/supervision-worktree-provision.test.ts (7 tests) 3561ms
   ✓ supervision assignment worktree provisioning > provisions a safe worktree path for assignment id asg_2  452ms
   ✓ supervision assignment worktree provisioning > provisions a safe worktree path for assignment id supervision_assignment_22222222-2222-4222-8222-222222222222  342ms
   ✓ supervision assignment worktree provisioning > creates the exact detached base and replays without rebuilding it  605ms
   ✓ supervision assignment worktree provisioning > provisions the tracked Gradle batch file with CRLF bytes and a clean Git status  664ms
   ✓ supervision assignment worktree provisioning > fails closed without changing dirty, wrong-base, or foreign existing paths  828ms
   ✓ supervision assignment worktree provisioning > resolves an exact commit and rejects a stale explicit base  398ms
 ✓ |daemon| test/daemon/env-injection.test.ts (6 tests) 2405ms
   ✓ IMCODES_SESSION env injection > injects a selected-file identity into a process agent on its first launch  2292ms
 ✓ |daemon| test/daemon/supervision-task-registry.test.ts (249 tests) 4285ms
   ✓ SupervisionTaskRegistry > creates and verifies the exact worktree before live-hook delivery for exact-target and autoProvision tasks  766ms
   ✓ cancelled implementation evidence adoption > records late cancelled completion through the production task_finish ingress without reviving the worker  356ms
Preparing worktree (detached HEAD fd73366)
 ✓ |daemon| test/daemon/live-context-ingestion.test.ts (38 tests) 5186ms
   ✓ LiveContextIngestion > stages live timeline events and materializes them when the session becomes idle  586ms
   ✓ LiveContextIngestion > preserves tool-result skill-review evidence while a retry-buffer head is blocked  308ms
   ✓ LiveContextIngestion > backfills a second session in the same namespace after another session already has processed memory  375ms
   ✓ LiveContextIngestion > ignores API connection error assistant turns even when they are not explicitly memoryExcluded  333ms
   ✓ LiveContextIngestion > uses completed tool results as threshold evidence for post-response skill auto-creation without storing tool output  553ms
   ✓ LiveContextIngestion > filters hidden and failed tool results from skill-review tool-iteration evidence  495ms
Preparing worktree (detached HEAD fd73366)
Preparing worktree (detached HEAD fd73366)
Preparing worktree (detached HEAD fd73366)
 ✓ |daemon| test/daemon/supervision-integration-bundle.test.ts (3 tests) 3090ms
   ✓ immutable supervision integration bundle > preserves the exact tsk_f1x after bytes after the implementer worktree returns to base  1980ms
   ✓ immutable supervision integration bundle > is content addressed, replay-safe, and fails closed on bundle or target conflicts  644ms
   ✓ immutable supervision integration bundle > persists one exact bundle binding across store reopen and refuses a conflicting hash  465ms
 ✓ |daemon| test/daemon/timeline-projection-busy.test.ts (2 tests) 2013ms
   ✓ timeline projection client: saturation is not absence > raises TimelineProjectionBusyError instead of returning null when the worker stalls  2008ms
 ✓ |daemon| test/daemon/direct-file-transfer-stall-proof.test.ts (1 test) 2038ms
   ✓ direct file transfer survives a blocked daemon loop > R-1: the real worker keeps producing while the main loop is fully blocked  2037ms
 ✓ |daemon| test/daemon/gemini-watcher-tracking.test.ts (8 tests) 1963ms
   ✓ Gemini watcher — inode change detection > skips read when mtime, size, AND inode are all unchanged  328ms
   ✓ Gemini watcher — consecutive read failures trigger rescan > resets activeFile after 5 consecutive readConversation failures  1015ms
   ✓ Gemini watcher — consecutive read failures trigger rescan > resets readFailCount on successful read  612ms
 ✓ |daemon| test/daemon/hook-send.test.ts (49 tests | 3 skipped) 2350ms
   ✓ Hook server /send endpoint > Successful delivery > routes an exact auditor continuation past delegated instead of the ambiguity scan  406ms
   ✓ Hook server /send endpoint > Successful delivery > routes an exact integration_owner continuation instead of rejecting it as a non-implementer  340ms
   ✓ Hook server /send endpoint > Successful delivery > continues an exact auditor that already has non-final audit progress (tsk_4d0 shape)  330ms
   ✓ Hook server /send endpoint > Successful delivery > provisions the unique missing implementer worktree at the live /send boundary before delivery  307ms
   ✓ Hook server /send endpoint > Successful delivery > uses an exact pending auditor binding and ignores two unrelated missing implementer worktrees  532ms
 ✓ |daemon| test/daemon/transport-history.test.ts (21 tests) 4012ms
   ✓ transport-history > replay stays bounded on multi-megabyte JSONL files (tail-read only)  3541ms
 ✓ |daemon| test/daemon/command-handler-bad-input.test.ts (8 tests) 1735ms
 ✓ |daemon| test/daemon/p2p-workflow-runtime.test.ts (28 tests) 2009ms
   ✓ ServerLink P2P workflow hello > exposes the current daemon workflow capabilities for launch binding  1139ms
   ✓ ServerLink P2P workflow hello > sends daemon.hello after auth with current base capabilities  489ms
   ✓ ServerLink P2P workflow hello > resends daemon.hello with sorted updated capabilities only when capabilities change  370ms
 ✓ |daemon| test/daemon/supervision-worktree-inspector.test.ts (7 tests) 2743ms
   ✓ authoritative supervision worktree inspection > accepts an exact clean zero-source worktree without metadata paths  374ms
   ✓ authoritative supervision worktree inspection > omits an untracked dependency symlink without following it or hiding real source changes  512ms
   ✓ authoritative supervision worktree inspection > ignores stale evidence metadata and binds current worktree bytes without mutation  305ms
   ✓ authoritative supervision worktree inspection > computes deletion markers directly from the current worktree  376ms
   ✓ authoritative supervision worktree inspection > reports staged state for the registry gate  419ms
   ✓ authoritative supervision worktree inspection > continues to report conflicted paths for the registry gate  501ms
 ✓ |daemon| test/daemon/jsonl-parse-pool.test.ts (12 tests) 2166ms
   ✓ jsonlParsePool — REAL Worker thread > returns null on timeout; pool stays available afterwards  331ms
   ✓ jsonlParsePool — REAL Worker thread > shutdown() terminates worker cleanly and allows the pool to be reused  523ms
 ✓ |daemon| test/daemon/file-transfer-handler.test.ts (23 tests) 1618ms
   ✓ file-transfer local handle hardening > commits a relay upload into the selected existing directory without overwrite  781ms
 ✓ |daemon| test/daemon/memory-get-sources-rpc.test.ts (7 tests) 2276ms
   ✓ daemon WS handler: memory.get_sources_request > returns sources for a projection with matching archived events  449ms
 ✓ |daemon| test/daemon/session-list.test.ts (11 tests) 2946ms
   ✓ buildSessionList > hydrates missing qwen display metadata from runtime config  447ms
   ✓ buildSessionList > hydrates codex family quota metadata from shared runtime config  342ms
   ✓ buildSessionList > does not surface expired resend queue entries as pending work  325ms
(node:33482) 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/context-store.test.ts (39 tests) 1449ms
 ✓ |daemon| test/daemon/p2p-parser.test.ts (42 tests) 1630ms
 ✓ |daemon| test/daemon/cron-p2p-integration.test.ts (5 tests) 1411ms
   ✓ Cron → P2P integration > cron P2P with role participants creates discussion file and completes  670ms
   ✓ Cron → P2P integration > cron P2P with sub-session participantEntries completes  372ms
   ✓ Cron → P2P integration > cron P2P with mixed role + session participants deduplicates correctly  333ms
 ✓ |daemon| test/store/session-store.test.ts (19 tests) 2199ms
   ✓ session-store > loadStore reconcile (runtimeType backfill + error recovery) > restores a filled three-scope multibyte identity byte-for-byte in a fresh process  753ms
   ✓ session-store > loadStore reconcile (runtimeType backfill + error recovery) > reports child and disk evidence when a fresh process cannot find the requested session  324ms
   ✓ session-store > loadStore reconcile (runtimeType backfill + error recovery) > migrates missing identities once and preserves them across daemon reload  865ms
 ✓ |daemon| test/daemon/timeline-projection.test.ts (7 tests) 962ms
 ✓ |daemon| test/daemon/direct-file-transfer-worker-boundary.test.ts (46 tests) 791ms
 ✓ |daemon| test/daemon/supervision-auto-audit.test.ts (122 tests) 1988ms
 ✓ |daemon| test/daemon/session-resource-lifecycle.test.ts (10 tests) 1212ms
 ✓ |daemon| test/daemon/p2p-workflow-artifacts.test.ts (22 tests) 568ms
 ✓ |daemon| test/daemon/command-handler-memory-context.test.ts (42 tests) 766ms
 ✓ |daemon| test/store/archive-sweeper.test.ts (6 tests) 1078ms
 ✓ |daemon| test/daemon/direct-file-transfer-process-isolation.test.ts (4 tests | 1 skipped) 591ms
   ✓ P0 direct transfer native crash containment > reaps the production child after an orderly shutdown  463ms
 ✓ |daemon| test/daemon/template-eligibility.test.ts (10 tests) 781ms
   ✓ computeExecutionTemplateEligibility > marks a normal non-main, non-stopped, non-clone sub as eligible  507ms
 ✓ |daemon| test/shared/fs-read-error-codes.test.ts (6 tests) 1177ms
   ✓ fs-read shared error constants > keeps fs-read production consumers importing shared wire error values instead of redefining them  1172ms
 ✓ |daemon| test/daemon/direct-file-transfer.test.ts (43 tests) 58337ms
   ✓ daemon direct file transfer v2 lease broker > never strips a live upload of its resume state under capacity pressure  26858ms
   ✓ daemon direct file transfer v2 lease broker > keeps the number of partials on disk bounded by the resume ledger capacity  26705ms
 ✓ |daemon| test/daemon/machine-direct-transfer.test.ts (10 tests) 1340ms
   ✓ machine direct encrypted TCP transfer > reuses the encrypted sender to stream from a controlled source into a Full receiver temp file  666ms
   ✓ machine direct encrypted TCP transfer > streams a file over a routed-private candidate and commits a normal attachment  408ms
 ✓ |daemon| test/daemon/jsonl-watcher-refresh.test.ts (6 tests) 739ms
 ✓ |daemon| test/daemon/cloud-sync-e2e.test.ts (15 tests) 547ms
 ✓ |daemon| test/daemon/memory-mcp-search.test.ts (14 tests) 488ms
 ✓ |daemon| test/daemon/timeline-store.async.test.ts (6 tests) 727ms
   ✓ timeline-store async append (T1-T4) > T4b: flushAll(timeoutMs) logs warn when timeout fires while chain still in flight  439ms
 ✓ |daemon| test/daemon/codex-watcher-retrack.test.ts (4 tests) 599ms
 ✓ |daemon| test/store/pinned-notes.test.ts (1 test) 825ms
   ✓ pinned notes store integration > injects pinned notes byte-identically under the User-Pinned Notes heading  823ms
 ✓ |daemon| test/daemon/hook-authority-endpoint.test.ts (19 tests) 745ms
 ✓ |daemon| test/store/materialization-commit.test.ts (3 tests) 767ms
   ✓ commitMaterialization (atomic bundle) > commits the whole bundle together (archive + projection + delete staged + replication + complete job)  505ms
 ✓ |daemon| test/daemon/tmux-security.test.ts (16 tests) 495ms
   ✓ tmux shell-injection prevention > tolerates repeated recoverable tmux server exits during one command  313ms
 ✓ |daemon| test/daemon/command-handler-transport-queue.test.ts (171 tests) 1100ms
 ✓ |daemon| test/daemon/timeline-store.tail-truncate.test.ts (2 tests) 537ms
   ✓ timeline-store truncate > keeps conversation records ahead of status noise without readFileSync  482ms
 ✓ |daemon| test/daemon/gemini-watcher-refresh.test.ts (3 tests) 587ms
   ✓ gemini watcher refresh() > refresh does not follow a different session id file  492ms
 ✓ |daemon| test/store/turn-usage.test.ts (19 tests) 604ms
 ✓ |daemon| test/daemon/preview-ws-relay.test.ts (15 tests) 585ms
 ✓ |daemon| test/store/context-store-production-owner.test.ts (4 tests) 505ms
   ✓ context-store production-owner failure policy > does not advertise warm when the worker reports a warmup failure  452ms
 ✓ |daemon| test/store/no-sync-context-store-guard.test.ts (6 tests) 517ms
 ✓ |daemon| test/daemon/lifecycle-truncate-background.test.ts (3 tests) 340ms
 ✓ |daemon| test/store/fts-unavailable.test.ts (4 tests) 398ms
 ✓ |daemon| test/shared/session-identity.test.ts (20 tests) 209ms
 ✓ |daemon| test/daemon/session-group-clone-engine.test.ts (4 tests) 297ms
 ✓ |daemon| test/daemon/claude-no-text-refresh.test.ts (2 tests) 449ms
 ✓ |daemon| test/daemon/p2p-discussion-list.test.ts (12 tests) 470ms
 ✓ |daemon| test/daemon/terminal-streamer-snapshot.test.ts (31 tests) 167ms
 ✓ |daemon| test/daemon/direct-file-transfer-commit-recovery.test.ts (7 tests) 171ms
 ✓ |daemon| test/daemon/send-tool.test.ts (35 tests) 603ms
   ✓ send-tool > lets the persisted binding outrank a same-name live runtime that now reports otherwise  523ms
 ✓ |daemon| test/daemon/launch-session-codex.test.ts (3 tests) 364ms
 ✓ |daemon| test/daemon/transport-queue-store.test.ts (63 tests) 525ms
 ✓ |daemon| test/daemon/timeline-store.projection-fallback.test.ts (6 tests) 270ms
(node:37994) 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-pruning.test.ts (6 tests) 178ms
 ✓ |daemon| test/daemon/memory-recall-integration.test.ts (42 tests) 358ms
 ✓ |daemon| test/daemon/gemini-file-change.test.ts (3 tests) 332ms
   ✓ Gemini watcher — file.change emission > defers file-tool rows until terminal success and falls back to visible rows on error  327ms
 ✓ |daemon| test/daemon/machine-file-client.test.ts (12 tests) 177ms
 ✓ |daemon| test/daemon/provider-callback-lifecycle.test.ts (9 tests) 480ms
   ✓ TransportSessionRuntime callback cleanup > keeps session info emitted synchronously while createSession is resolving  477ms
 ✓ |daemon| test/daemon/supervision-repair-resume.test.ts (25 tests) 647ms
 ✓ |daemon| test/daemon/delegation-reply-ingress.test.ts (26 tests) 643ms
   ✓ delegation reply ingress > persists progress without Brain chatter and reports a blocked final handoff once  556ms
 ✓ |daemon| test/daemon/session-group-clone.test.ts (27 tests) 174ms
 ✓ |daemon| test/daemon/file-preview-read-dist-smoke.test.ts (1 test) 298ms
 ✓ |daemon| test/daemon/instance-lock.test.ts (23 tests) 183ms
 ✓ |daemon| test/daemon/transport-message-queue-integration.test.ts (10 tests) 170ms
(node:38491) 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/machine-mcp-registration.test.ts (17 tests) 208ms
 ✓ |daemon| test/daemon/cursor-copilot-transport-restore.test.ts (4 tests) 322ms
 ✓ |daemon| test/store/context-store-backoff-overflow.test.ts (6 tests) 160ms
 ✓ |daemon| test/daemon/transport-status-lifecycle.test.ts (20 tests) 89ms
 ✓ |daemon| test/daemon/timeline-history-worker.test.ts (7 tests) 355ms
 ✓ |daemon| test/daemon/timeline-store.retention.test.ts (4 tests) 399ms
 ✓ |daemon| test/shared/daemon-latency-summary.test.ts (1 test) 124ms
 ✓ |daemon| test/daemon/openclaw-provider.test.ts (44 tests) 126ms
 ✓ |daemon| test/daemon/supervision-mcp-registration.test.ts (58 tests) 487ms
 ✓ |daemon| test/daemon/codex-watcher.test.ts (45 tests) 407ms
 ✓ |daemon| test/daemon/server-link.test.ts (33 tests) 281ms
 ✓ |daemon| test/daemon/timeline-projection-drain.test.ts (4 tests) 196ms
 ✓ |daemon| test/daemon/cc-presets.test.ts (18 tests) 196ms
 ✓ |daemon| test/daemon/processed-context-replication.test.ts (3 tests) 94ms
 ✓ |daemon| test/store/project-store-contract.test.ts (2 tests) 72ms
 ✓ |daemon| test/store/turn-usage-idempotent.test.ts (5 tests) 167ms
 ✓ |daemon| test/daemon/codex-watcher-refresh.test.ts (4 tests) 187ms
 ✓ |daemon| test/daemon/capability-mcp-tools.test.ts (7 tests) 145ms
 ✓ |daemon| test/daemon/native-quiesce-contract.test.ts (8 tests) 316ms
(node:39356) 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) 97ms
(node:39460) 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) 1727ms
   ✓ gemini retrackLatestSessionFile > switches to the latest matching session file and replays missed content  1560ms
 ✓ |daemon| test/daemon/supervision-broker.test.ts (47 tests) 309ms
 ✓ |daemon| test/daemon/p2p-artifact-identity-persistence.test.ts (6 tests) 172ms
 ✓ |daemon| test/daemon/preview-relay.test.ts (7 tests) 52ms
 ✓ |daemon| test/daemon/fs-write.test.ts (32 tests) 71ms
 ✓ |daemon| test/daemon/upgrade-native-quiesce.test.ts (2 tests) 176ms
 ✓ |daemon| test/daemon/shared-context-send-surface.test.ts (1 test) 48ms
 ✓ |daemon| test/daemon/codex-watcher-tail-history.test.ts (1 test) 320ms
   ✓ codex-watcher tail history replay > replays the tail of oversized rollout history instead of the head  318ms
(node:39914) 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-console-e2e.test.ts (15 tests) 172ms
(node:39919) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:39951) 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/store/dedup-merge.test.ts (3 tests) 145ms
 ✓ |daemon| test/daemon/peer-audit-service.test.ts (10 tests) 106ms
 ✓ |daemon| test/daemon/supervision-successor-finish-recovery.test.ts (14 tests) 155ms
 ✓ |daemon| test/daemon/supervision-list-query-cost.test.ts (1 test) 82ms
 ✓ |daemon| test/daemon/supervision-zero-change-autoprogress.test.ts (13 tests) 511ms
(node:40032) 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/fs-git-cache.test.ts (27 tests) 331ms
 ✓ |daemon| test/daemon/transport-relay.test.ts (87 tests) 47ms
 ✓ |daemon| test/daemon/p2p-discussion-writer-queue.test.ts (6 tests) 31ms
P2P: skipping symlink run-state entry /var/folders/vg/dk0l8d2n6gj9r1lszrj2k4p80000gn/T/imcodes-test-p2p-workflow-runs-A2ZBuX/symlink-entry
P2P: dropping persisted identity bad-paths — invalid declared path
 ✓ |daemon| test/daemon/p2p-artifact-persistence-hardening.test.ts (5 tests) 142ms
(node:40223) 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) 77ms
(node:40279) 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-lifecycle-convergence.test.ts (17 tests) 158ms
 ✓ |daemon| test/store/context-store-worker-self-recovery.test.ts (11 tests) 117ms
 ✓ |daemon| test/shared/supervision-execution-summary.test.ts (12 tests) 23ms
 ✓ |daemon| test/daemon/hook-server-stop-text.test.ts (4 tests) 39ms
 ✓ |daemon| test/daemon/command-handler-delegation-regression.test.ts (6 tests) 100ms
 ✓ |daemon| test/daemon/cron-mcp-client.test.ts (15 tests) 33ms
 ✓ |daemon| test/store/archive-backfill.test.ts (2 tests) 125ms
 ✓ |daemon| test/daemon/supervision-console-producer.test.ts (35 tests) 374ms
 ✓ |daemon| test/daemon/hook-server-validation.test.ts (15 tests) 78ms
 ✓ |daemon| test/daemon/fs-list-worker-handler.test.ts (9 tests) 54ms
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":1789317861594,"msg":"Daemon authenticated","serverId":"server-console-chain","daemonVersion":null}

 ✓ |daemon| test/daemon/supervision-console-production-chain.test.ts (1 test) 36ms
 ✓ |daemon| test/daemon/hook-server-session-restart.test.ts (3 tests) 30ms
 ✓ |daemon| test/daemon/copilot-sdk-runtime.test.ts (1 test) 48ms
 ✓ |daemon| test/daemon/memory-mcp-tools-schema-firewall.test.ts (47 tests) 291ms
 ✓ |daemon| test/daemon/qwen-mcp-config.test.ts (6 tests) 50ms
 ✓ |daemon| test/daemon/execution-clone.test.ts (76 tests) 15ms
 ✓ |daemon| test/daemon/transport-runtime-drain-error.test.ts (7 tests) 81ms
 ✓ |daemon| test/daemon/opencode-watcher.test.ts (7 tests) 56ms
 ✓ |daemon| test/store/context-store-worker-client.test.ts (13 tests) 18ms
 ✓ |daemon| test/shared/memory-mcp-contracts.test.ts (16 tests) 34ms
 ✓ |daemon| test/daemon/supervision-state-store.test.ts (7 tests) 85ms
 ✓ |daemon| test/daemon/timeline-emitter-tempfile-guard.test.ts (3 tests) 33ms
 ✓ |daemon| test/daemon/peer-audit-candidates.test.ts (22 tests) 61ms
 ✓ |daemon| test/daemon/pipe-pane-protocol.test.ts (15 tests) 29ms
 ✓ |daemon| test/daemon/supervision-auto-provision.test.ts (22 tests) 43ms
 ✓ |daemon| test/daemon/opencode-history.test.ts (14 tests) 60ms
 ✓ |daemon| test/daemon/fs-list.test.ts (31 tests) 126ms
 ✓ |daemon| test/daemon/hook-server-sessions-live.test.ts (4 tests) 86ms
(node:41733) ExperimentalWarning: SQLite is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:41806) 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-projection-worker-contract.test.ts (2 tests) 49ms
 ✓ |daemon| test/daemon/alias-mcp-tools.test.ts (26 tests) 45ms
 ✓ |daemon| test/daemon/supervision-store-migrations.test.ts (18 tests) 97ms
 ✓ |daemon| test/daemon/discussion-orchestrator.test.ts (3 tests) 60ms
(node:42008) 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-executor-send.test.ts (3 tests) 36ms
 ✓ |daemon| test/daemon/timeline-emitter.test.ts (38 tests) 59ms
 ✓ |daemon| test/daemon/supervision-console-session.test.ts (13 tests) 64ms
 ✓ |daemon| test/daemon/supervision-idle-integration.test.ts (9 tests) 69ms
 ✓ |daemon| test/daemon/delegation-reply-store.test.ts (21 tests) 57ms
 ✓ |daemon| test/daemon/session-identity-refresh-command.test.ts (1 test) 58ms
 ✓ |daemon| test/shared-remote-exec.test.ts (32 tests) 26ms
 ✓ |daemon| test/daemon/hook-server-send-id.test.ts (3 tests) 27ms
 ✓ |daemon| test/daemon/message-pin-mcp-tools.test.ts (8 tests) 63ms
 ✓ |daemon| test/store/context-meta.test.ts (2 tests) 30ms
 ✓ |daemon| test/daemon/transport-resend-queue.test.ts (26 tests) 73ms
 ✓ |daemon| test/daemon/peer-audit-result.test.ts (2 tests) 15ms
 ✓ |daemon| test/daemon/transport-queue-projection.test.ts (8 tests) 53ms
 ✓ |daemon| test/daemon/transport-resend-queue-emit.test.ts (9 tests) 42ms
 ✓ |daemon| test/daemon/session-dispatch-peer-audit.test.ts (17 tests) 67ms
 ✓ |daemon| test/daemon/oc-streaming-integration.test.ts (6 tests) 14ms
 ✓ |daemon| test/daemon/remote-desktop-login-screen.test.ts (7 tests) 42ms
 ✓ |daemon| test/daemon/p2p-config-store.test.ts (6 tests) 73ms
 ✓ |daemon| test/agent/transport-runtime-assembly.test.ts (41 tests) 95ms
 ✓ |daemon| test/daemon/remote-desktop-consent-provider.test.ts (27 tests) 25ms
 ✓ |daemon| test/daemon/provider-sessions.test.ts (5 tests) 17ms
 ✓ |daemon| test/daemon/execution-clone-mcp.test.ts (45 tests) 36ms
 ✓ |daemon| test/daemon/cron-executor.test.ts (44 tests) 30ms
 ✓ |daemon| test/daemon/command-handler-timeline-history-parity.test.ts (1 test) 60ms
 ✓ |daemon| test/daemon/command-handler-timeline-history-projection.test.ts (16 tests) 80ms
 ✓ |daemon| test/daemon/remote-desktop-daemon.test.ts (20 tests) 68ms
 ✓ |daemon| test/daemon/memory-mcp-hook-authority-taxonomy.test.ts (6 tests) 12ms
 ✓ |daemon| test/daemon/timeline-replay.test.ts (8 tests) 85ms
 ✓ |daemon| test/daemon/timeline-history-sanitize.test.ts (14 tests) 88ms
 ✓ |daemon| test/daemon/master-compaction-registry.test.ts (6 tests) 10ms
 ✓ |daemon| test/store/temp-file-store.test.ts (4 tests) 87ms
(node:43148) 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/codex-watcher-bootstrap.test.ts (3 tests) 32ms
 ✓ |daemon| test/daemon/supervision-prompts.test.ts (68 tests) 40ms
 ✓ |daemon| test/daemon/supervision-registry-minting.test.ts (10 tests) 35ms
 ✓ |daemon| test/daemon/command-handler-clear.test.ts (3 tests) 52ms
 ✓ |daemon| test/daemon/ack-outbox.test.ts (2 tests) 13ms
 ✓ |daemon| test/store/context-store-single-owner.test.ts (5 tests) 19ms
 ✓ |daemon| test/daemon/usage-sync-worker.test.ts (10 tests) 69ms
 ✓ |daemon| test/daemon/terminal-streamer-pipe-grace.test.ts (5 tests) 16ms
 ✓ |daemon| test/daemon/ordered-shutdown.test.ts (3 tests) 7ms
 ✓ |daemon| test/daemon/supervision-registry-binding.test.ts (6 tests) 53ms
 ✓ |daemon| test/daemon/file-search.test.ts (13 tests) 16ms
 ✓ |daemon| test/daemon/supervision-coordinator-authority.test.ts (12 tests) 39ms
 ✓ |daemon| test/shared/models-options.test.ts (8 tests) 4ms
 ✓ |daemon| test/daemon/remote-desktop-privacy-barrier.test.ts (30 tests) 17ms
 ✓ |daemon| test/shared/remote-desktop-access.test.ts (64 tests) 53ms
 ✓ |daemon| test/daemon/p2p-behavioral.test.ts (29 tests) 8ms
 ✓ |daemon| test/daemon/upgrade-blocked-outbox.test.ts (3 tests) 26ms
 ✓ |daemon| test/daemon/transport-drain-awaited.test.ts (5 tests) 20ms
 ✓ |daemon| test/daemon/command-handler-test-session-guard.test.ts (2 tests) 13ms
 ✓ |daemon| test/daemon/cursor-mcp-config.test.ts (2 tests) 61ms
 ✓ |daemon| test/daemon/subsession-manager-forced-fresh.test.ts (22 tests) 15ms
 ✓ |daemon| test/daemon/file-transfer-upload-registry-recovery.test.ts (1 test) 60ms
 ✓ |daemon| test/daemon/supervision-prompts-custom-instructions.test.ts (39 tests) 40ms
 ✓ |daemon| test/store/session-store-mock-isolation.test.ts (1 test) 130ms
 ✓ |daemon| test/daemon/supervision-audit-routing-authority.test.ts (4 tests) 9ms
 ✓ |daemon| test/shared/git-remote-url.test.ts (4 tests) 4ms
 ✓ |daemon| test/daemon/p2p-workflow-discussion-offsets.test.ts (6 tests) 49ms
 ✓ |daemon| test/daemon/machine-mcp-deps.test.ts (27 tests) 24ms
 ✓ |daemon| test/daemon/file-preview-read-pool.test.ts (11 tests) 58ms
 ✓ |daemon| test/shared/p2p-workflow-compiler.test.ts (8 tests) 16ms
 ✓ |daemon| test/daemon/memory-inject-startup.test.ts (1 test) 16ms
 ✓ |daemon| test/daemon/command-handler-stop.test.ts (8 tests) 21ms
 ✓ |daemon| test/shared/alias-types.test.ts (13 tests) 4ms
 ✓ |daemon| test/shared/metrics.test.ts (5 tests) 20ms
 ✓ |daemon| test/daemon/session-identity-mcp.test.ts (6 tests) 34ms
 ✓ |daemon| test/daemon/fs-list-worker.test.ts (2 tests) 7ms
 ✓ |daemon| test/daemon/disk-usage.test.ts (5 tests) 17ms
 ✓ |daemon| test/shared/p2p-workflow-validators.test.ts (15 tests) 23ms
 ✓ |daemon| test/daemon/session-manager-stop-project.test.ts (4 tests) 27ms
 ✓ |daemon| test/shared/mcp-machine-tool-gate.test.ts (9 tests) 4ms
 ✓ |daemon| test/daemon/transport-queued-events-bug3.test.ts (3 tests) 3ms
 ✓ |daemon| test/shared/webrtc-connectivity.test.ts (9 tests) 62ms
 ✓ |daemon| test/daemon/lifecycle-startup-persist-failure.test.ts (2 tests) 4ms
 ✓ |daemon| test/daemon/p2p-workflow-launch-wiring.test.ts (3 tests) 2ms
 ✓ |daemon| test/daemon/auto-upgrade-cooldown.test.ts (12 tests) 16ms
 ✓ |daemon| test/shared/template-prompt-patterns.test.ts (100 tests) 18ms
 ✓ |daemon| test/daemon/launch-session-opencode.test.ts (1 test) 47ms
 ✓ |daemon| test/shared/agent-delegation.test.ts (37 tests) 13ms
 ✓ |daemon| test/shared/p2p-workflow-artifacts.test.ts (6 tests) 11ms
 ✓ |daemon| test/daemon/service-recovery.test.ts (16 tests) 31ms
 ✓ |daemon| test/daemon/execution-routing-appendix.test.ts (9 tests) 14ms
 ✓ |daemon| test/shared/supervision-task-console.test.ts (39 tests) 15ms
 ✓ |daemon| test/daemon/file-change-normalizer.test.ts (12 tests) 93ms
 ✓ |daemon| test/daemon/session-manager-restore.test.ts (10 tests) 28ms
 ✓ |daemon| test/daemon/transport-resend-delivery.test.ts (6 tests) 20ms
 ✓ |daemon| test/shared/transport-queue-reducer.test.ts (12 tests) 15ms
 ✓ |daemon| test/daemon/fs-git-status-pool.test.ts (6 tests) 31ms
 ✓ |daemon| test/daemon/remote-desktop-consent-ipc.test.ts (21 tests) 28ms
 ✓ |daemon| test/daemon/terminal-streamer-stale-pane.test.ts (3 tests) 41ms
 ✓ |daemon| test/daemon/session-dispatch-delegation.test.ts (6 tests) 39ms
 ✓ |daemon| test/daemon/memory-mcp-resource-budget.test.ts (4 tests) 24ms
(node:45195) 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/fs-list-pool.test.ts (6 tests) 23ms
 ✓ |daemon| test/shared/wire-protocol-contract.test.ts (4 tests) 4ms
 ✓ |daemon| test/daemon/supervision-compat-shims.test.ts (11 tests) 9ms
 ✓ |daemon| test/daemon/memory-mcp-machine-handlers.test.ts (10 tests) 67ms
 ✓ |daemon| test/daemon/peer-audit-reply-ingress.test.ts (11 tests) 9ms
 ✓ |daemon| test/daemon/file-preview-read-observability.test.ts (2 tests) 161ms
 ✓ |daemon| test/daemon/systemd-unit-template.test.ts (19 tests) 5ms
 ✓ |daemon| test/daemon/execution-clone-admission.test.ts (6 tests) 7ms
 ✓ |daemon| test/shared/p2p-workflow-protocol.test.ts (7 tests) 7ms
 ✓ |daemon| test/shared-machine-direct-file-transfer.test.ts (5 tests) 8ms
 ✓ |daemon| test/daemon/session-restart-mcp.test.ts (5 tests) 6ms
 ✓ |daemon| test/daemon/peer-audit-reply-pipeline.test.ts (4 tests) 34ms
 ✓ |daemon| test/shared/transport-types-contract.test.ts (24 tests) 8ms
 ✓ |daemon| test/daemon/peer-audit-controller.test.ts (18 tests) 21ms
 ✓ |daemon| test/daemon/execution-clone-orchestration.test.ts (17 tests) 70ms
 ✓ |daemon| test/daemon/verification-machine-mcp.test.ts (4 tests) 12ms
 ✓ |daemon| test/daemon/file-preview-read-coordinator.test.ts (13 tests) 164ms
 ✓ |daemon| test/daemon/mcp-tool-discovery.test.ts (4 tests) 10ms
 ✓ |daemon| test/daemon/worker-session-sync-retrier.test.ts (3 tests) 12ms
 ✓ |daemon| test/shared/memory-eligible-event.test.ts (11 tests) 6ms
 ✓ |daemon| test/shared/daemon-upgrade.test.ts (3 tests) 3ms
 ✓ |daemon| test/store/session-state-probe-events.test.ts (4 tests) 7ms
 ✓ |daemon| test/daemon/openspec-auto-deliver-orchestrator.test.ts (91 tests) 88306ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > preserves an explicit single implementation audit limit in launched audit prompts  326ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > sends launch ack before collecting the implementation product baseline  1938ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > queues a marker reminder and stale recovery when implementation stays busy without writing the marker  355ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps one implementation prompt active while tasks remain unchecked and no completed marker exists  1628ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > dispatches final acceptance scoring instead of stopping early when implementation prompt budget is spent  1558ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > escalates to needs_human after too many idle reminders without a completion marker  325ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not exhaust the marker reminder cap while a slow session has not answered the implementation prompt yet  1044ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > asks the implementation LLM to commit&push, then verifies product changes after final implementation audit PASS when opted in  2366ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > runs the Standard preset from spec audit through implementation audit PASS  3059ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > advances spec repair to final acceptance when the repair idle event is missed  1148ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > builds Team audit prompts from canonical OpenSpec templates and final acceptance prompts with authoritative metadata  2580ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds final audit PASS safety failures back into implementation repair  1917ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps spec audit REWORK in audit repair instead of advancing to implementation  1200ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > inlines the previous spec acceptance audit required_changes into the next spec repair prompt  1319ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > starts another Team audit only after final acceptance says previous spec repairs are complete but still insufficient  1333ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not start another Team audit after final implementation acceptance PASS with perfect scores  1487ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not start another spec Team round after final spec acceptance PASS with acceptable scores  1247ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > stops for human input when spec audit reports BLOCKED  1241ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds implementation audit REWORK back into implementation repair before re-auditing  1624ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds low implementation audit scores back into implementation repair  1532ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > queues final acceptance audit prompts for resend when transport runtime is not initialized  1468ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > nudges stale active transport turns when a final acceptance audit prompt is queued  1488ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > drops stale queued Auto Deliver implementation prompts once final acceptance passes  1538ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not continue implementation after final acceptance PASS when changed-file coverage is documented outside repairs_applied  2093ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > removes stale runtime-pending Auto Deliver implementation prompts once final acceptance passes  1448ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > feeds final acceptance REWORK back into implementation repair before extending audit rounds  1628ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > continues implementation repair on fixable work even when external blocked_items are also listed  1428ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > hands off to a human only when no fixable work remains and external blockers persist  1465ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > does not let an in-flight idle advance send into the next test after test cleanup  2541ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > delivers (passed) when the only unchecked tasks are accepted external/deferred gates  1486ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > starts another Team implementation audit only after final acceptance says previous repairs are complete but still low scoring  1660ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps valid missing authoritative result files classified as missing JSON  1486ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requests authoritative result file repair before consuming another audit-repair round  1646ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > continues after a final acceptance result-file repair even when the idle event is missed  1450ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > consumes a valid final acceptance result file even while the transport runtime still reports busy  1728ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > consumes one final acceptance result only once when duplicate idle events race  1725ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requests authoritative result file repair for verdict payload format errors  1573ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > requires repair_completion before consuming a final acceptance result  1573ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps result-file repair prompts stage-scoped for spec audit repair  1175ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > keeps retrying final acceptance result-file repair instead of prompting for human input  2932ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores stale idle events while final acceptance result-file prompts are still running  1773ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > stops for human input when implementation audit reports BLOCKED  1444ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects stale metadata and malformed or missing authoritative result files  5793ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects authoritative result files that symlink outside .imc/discussions  1340ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > rejects .imc/discussions directory symlink escapes with the same invalid-path classification  1433ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores discussion JSON when the authoritative result file is missing  1668ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > uses an authoritative result file larger than the generic P2P summary tail  2073ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > surfaces wrapper P2P failures instead of misreporting missing authoritative JSON  1303ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > proceeds to repair + scoring on a post-summary execution-gate failure instead of audit_p2p_failed  1226ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > proceeds to repair + scoring when the audit discussion times out (a hop ran out of its time box)  1327ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > ignores late audit results after stop terminalization and releases the P2P lock  1118ms
   ✓ OpenSpec Auto Deliver daemon orchestrator > denies non-participant sibling stop and preserves terminal status on late stop  1738ms
 ✓ |daemon| test/daemon/transport-resend-preservation.test.ts (2 tests) 14ms
 ✓ |daemon| test/daemon/daemon-task-admission-record-only.test.ts (3 tests) 60ms
 ✓ |daemon| test/daemon/file-preview-read-worker.test.ts (7 tests) 6ms
 ✓ |daemon| test/shared/p2p-workflow-library.test.ts (29 tests) 11ms
 ✓ |daemon| test/shared/remote-desktop.test.ts (27 tests) 10ms
 ✓ |daemon| test/daemon/memory-get-sources-orchestrator.test.ts (13 tests) 12ms
 ✓ |daemon| test/daemon/p2p-workflow-allowlist-loader.test.ts (12 tests) 8ms
 ✓ |daemon| test/daemon/execution-clone-cap-integrity.test.ts (4 tests) 5ms
 ✓ |daemon| test/shared/tab-sharing.test.ts (14 tests) 12ms
 ✓ |daemon| test/shared/remote-desktop-platform.test.ts (20 tests) 5ms
 ✓ |daemon| test/daemon/memory-mcp-daemon-worker-proxy.test.ts (1 test) 6ms
 ✓ |daemon| test/daemon/supervision-intent-ops.test.ts (17 tests) 43ms
 ✓ |daemon| test/daemon/structured-session-bootstrap.test.ts (4 tests) 4ms
 ✓ |daemon| test/shared/windows-authenticode-enrollment.test.ts (2 tests) 5ms
 ✓ |daemon| test/daemon/command-handler-ack-contract.test.ts (1 test) 3ms
 ✓ |daemon| test/daemon/file-preview-classifier.test.ts (11 tests) 7ms
 ✓ |daemon| test/daemon/daemon-upgrade-guard.test.ts (21 tests) 13ms
 ✓ |daemon| test/shared/peer-audit.test.ts (33 tests) 8ms
 ✓ |daemon| test/shared/sdk-subagent-status.test.ts (11 tests) 5ms
 ✓ |daemon| test/shared/capability-management.test.ts (9 tests) 9ms
 ✓ |daemon| test/daemon/p2p-script-runner-sandbox.test.ts (33 tests) 4ms
 ✓ |daemon| test/daemon/verification-machine-client.test.ts (2 tests) 12ms
 ✓ |daemon| test/daemon/well-known-directories.test.ts (41 tests) 9ms
 ✓ |daemon| test/shared/custom-provider-sdk-agent-types.test.ts (3 tests) 95ms
 ✓ |daemon| test/shared/supervision-execution-pool.test.ts (28 tests) 6ms
 ✓ |daemon| test/daemon/transport-types.test.ts (27 tests) 4ms
 ✓ |daemon| test/shared/direct-file-transfer-ipc-limits.test.ts (21 tests) 5ms
 ✓ |daemon| test/daemon/session-resource-service.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/direct-file-transfer-v2.test.ts (17 tests) 6ms
 ✓ |daemon| test/daemon/session-restoration.test.ts (8 tests) 7ms
 ✓ |daemon| test/daemon/shared-machine-authority-client.test.ts (2 tests) 5ms
 ✓ |daemon| test/daemon/subsession-sync.test.ts (1 test) 27ms
 ✓ |daemon| test/daemon/session-identity-client.test.ts (3 tests) 12ms
 ✓ |daemon| test/shared/alias-expand.test.ts (29 tests) 6ms
 ✓ |daemon| test/shared/openspec-auto-deliver.test.ts (15 tests) 11ms
 ✓ |daemon| test/daemon/memory-mcp-caller.test.ts (4 tests) 4ms
 ✓ |daemon| test/daemon/memory-scoring.test.ts (21 tests) 5ms
 ✓ |daemon| test/daemon/upgrade-deferral-backstop.test.ts (6 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-validators-fieldpath.test.ts (6 tests) 3ms
 ✓ |daemon| test/daemon/context-model-config.test.ts (7 tests) 4ms
 ✓ |daemon| test/daemon/daemon-task-admission.test.ts (2 tests) 7ms
 ✓ |daemon| test/daemon/gemini-stable-id.test.ts (1 test) 4ms
 ✓ |daemon| test/agent/priority-preserving-context-cap.test.ts (12 tests) 7ms
 ✓ |daemon| test/daemon/terminal-parser.test.ts (26 tests) 6ms
 ✓ |daemon| test/daemon/p2p-config-mode.test.ts (59 tests) 5ms
 ✓ |daemon| test/daemon/lifecycle-display.test.ts (7 tests) 8ms
 ✓ |daemon| test/shared-computer-use.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/windows-release-publisher-trust.test.ts (16 tests) 5ms
 ✓ |daemon| test/daemon/file-preview-policy.test.ts (19 tests) 10ms
 ✓ |daemon| test/daemon/session-identity-sync.test.ts (4 tests) 5ms
 ✓ |daemon| test/daemon/watcher-claiming.test.ts (6 tests) 9ms
 ✓ |daemon| test/daemon/session-bootstrap.test.ts (6 tests) 6ms
 ✓ |daemon| test/shared/request-failure.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/execution-routing-injection.test.ts (10 tests) 4ms
 ✓ |daemon| test/shared/delegation-claim.test.ts (28 tests) 20ms
 ✓ |daemon| test/shared/memory-noise-patterns.test.ts (2 tests) 2ms
 ✓ |daemon| test/daemon/jsonl-parse-core.test.ts (15 tests) 5ms
 ✓ |daemon| test/shared-machine-reference.test.ts (12 tests) 5ms
 ✓ |daemon| test/shared/supervision-audit-handoff.test.ts (23 tests) 49ms
 ✓ |daemon| test/daemon/p2p-adapter-topology.test.ts (11 tests) 3ms
 ✓ |daemon| test/daemon/upgrade-toolchain-check.test.ts (5 tests) 5ms
 ✓ |daemon| test/shared/test-session-guard.test.ts (4 tests) 5ms
 ✓ |daemon| test/daemon/supervisor-defaults-cache.test.ts (1 test) 4ms
 ✓ |daemon| test/daemon/supervision-audit-envelope-contract.test.ts (10 tests) 5ms
 ✓ |daemon| test/daemon/execution-clone-limits-resolver.test.ts (10 tests) 3ms
 ✓ |daemon| test/daemon/session-type-switch.test.ts (2 tests) 3ms
 ✓ |daemon| test/shared/execution-clone.test.ts (20 tests) 12ms
 ✓ |daemon| test/shared/p2p-advanced.test.ts (14 tests) 6ms
 ✓ |daemon| test/shared/timeline-merge.test.ts (15 tests) 4ms
 ✓ |daemon| test/daemon/peer-audit-process-injector.test.ts (12 tests) 4ms
 ✓ |daemon| test/store/source-id-merge.test.ts (1 test) 3ms
 ✓ |daemon| test/daemon/file-preview-read-fanout.test.ts (4 tests) 3ms
 ✓ |daemon| test/shared/session-activity-types.test.ts (13 tests) 4ms
 ✓ |daemon| test/shared/p2p-workflow-script.test.ts (10 tests) 11ms
 ✓ |daemon| test/daemon/backend-authored-context.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/supervision-id-minter.test.ts (10 tests) 4ms
 ✓ |daemon| test/daemon/oc-session-sync.test.ts (25 tests) 4ms
 ✓ |daemon| test/shared/p2p-execution-marker.test.ts (7 tests) 7ms
 ✓ |daemon| test/shared/session-group-clone.test.ts (7 tests) 7ms
 ✓ |daemon| test/shared/preview-ws-types.test.ts (27 tests) 9ms
 ✓ |daemon| test/daemon/file-preview-read-shutdown.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/codex-quota-refresh.test.ts (2 tests) 3ms
 ✓ |daemon| test/daemon/peer-audit-baseline.test.ts (17 tests) 4ms
 ✓ |daemon| test/daemon/embedding-semantic.test.ts (9 tests) 5ms
 ✓ |daemon| test/daemon/file-preview-read-response.test.ts (5 tests) 4ms
 ✓ |daemon| test/daemon/send-list-targets-eligibility.test.ts (4 tests) 11ms
 ✓ |daemon| test/daemon/alias-audit.test.ts (13 tests) 4ms
 ✓ |daemon| test/daemon/execution-clone-launch-boundary.test.ts (5 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-materialize.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/controlled-node-identity.test.ts (17 tests) 5ms
 ✓ |daemon| test/shared/memory-mcp-provenance.test.ts (2 tests) 2ms
 ✓ |daemon| test/daemon/backend-context-namespace.test.ts (2 tests) 5ms
 ✓ |daemon| test/shared-context-runtime-config.test.ts (18 tests) 3ms
 ✓ |daemon| test/daemon/timeline-detail-store.test.ts (2 tests) 3ms
 ✓ |daemon| test/daemon/service-recovery-runner.test.ts (9 tests) 4ms
 ✓ |daemon| test/daemon/supervision-i18n.test.ts (8 tests) 3ms
 ✓ |daemon| test/daemon/session-close.test.ts (5 tests) 4ms
 ✓ |daemon| test/shared/recall-cap-rule.test.ts (15 tests) 3ms
 ✓ |daemon| test/shared/sanitize-project-name.test.ts (7 tests) 3ms
 ✓ |daemon| test/shared/daemon-machine-list-contract.test.ts (4 tests) 3ms
 ✓ |daemon| test/shared/p2p-workflow-logic-evaluator.test.ts (17 tests) 3ms
 ✓ |daemon| test/daemon/file-preview-read-admission.test.ts (6 tests) 2ms
 ✓ |daemon| test/shared-file-transfer-controlled.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/imcodes-version-channel.test.ts (5 tests) 2ms
 ✓ |daemon| test/shared/transport-identity-scrub.test.ts (11 tests) 3ms
 ✓ |daemon| test/shared/audit-convergence.test.ts (4 tests) 3ms
 ✓ |daemon| test/daemon/lifecycle-context-store-startup-order.test.ts (1 test) 2ms
 ✓ |daemon| test/daemon/execution-clone-lifecycle.test.ts (3 tests) 4ms
 ✓ |daemon| test/shared/controlled-node-ticket-delivery.test.ts (4 tests) 4ms
 ✓ |daemon| test/shared/computer-use.test.ts (5 tests) 3ms
 ✓ |daemon| test/daemon/transport-relay-usage-payload.test.ts (5 tests) 5ms
 ✓ |daemon| test/daemon/fs-git-status-worker.test.ts (4 tests) 4ms
 ✓ |daemon| test/shared/session-display.test.ts (3 tests) 2ms
 ✓ |daemon| test/daemon/supervision-brain-authority.test.ts (3 tests) 23ms
 ✓ |daemon| test/daemon/session-file-read-grants.test.ts (3 tests) 2ms
 ✓ |daemon| test/shared/session-control-commands.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/transport-queue-privacy.test.ts (3 tests) 8ms
 ✓ |daemon| test/daemon/shared-machine-authority-context.test.ts (3 tests) 2ms
 ✓ |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/cron-types.test.ts (12 tests) 3ms
 ✓ |daemon| test/daemon/p2p-launch-admission.test.ts (5 tests) 4ms
 ✓ |daemon| test/shared/html-preview.test.ts (19 tests) 3ms
 ✓ |daemon| test/daemon/backend-runtime-config.test.ts (1 test) 2ms
 ✓ |daemon| test/shared/platform-types-contract.test.ts (2 tests) 1ms
 ✓ |daemon| test/daemon/file-preview-read-cache-facade.test.ts (7 tests) 2ms
 ✓ |daemon| test/daemon/p2p-prototype-pollution.test.ts (7 tests) 2ms
 ✓ |daemon| test/shared/send-message-id.test.ts (3 tests) 2ms
 ✓ |daemon| test/daemon/project-path-key.test.ts (9 tests) 2ms
 ✓ |daemon| test/shared/p2p-workflow-prompt.test.ts (4 tests) 2ms
 ✓ |daemon| test/daemon/cgroup-validation-probes.test.ts (3 tests | 1 skipped) 4ms
 ✓ |daemon| test/daemon/provider-routing.test.ts (6 tests) 2ms
 ✓ |daemon| test/shared/session-scope.test.ts (3 tests) 3ms
 ✓ |daemon| test/daemon/direct-file-transfer-ice.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/timeline-recoverable-errors.test.ts (5 tests) 3ms
 ✓ |daemon| test/shared/user-session-text-caps.test.ts (7 tests) 3ms
 ✓ |daemon| test/daemon/suppress-sqlite-warning.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/clock-sync.test.ts (8 tests) 2ms
 ✓ |daemon| test/shared/timeline-delivery-telemetry.test.ts (5 tests) 2ms
 ✓ |daemon| test/daemon/p2p-memory-filter.test.ts (5 tests) 9ms
 ✓ |daemon| test/daemon/memory-projection-owner-cache.test.ts (6 tests) 2ms
 ✓ |daemon| test/shared/memory-mcp-errors.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/password-rules.test.ts (8 tests) 2ms
 ✓ |daemon| test/shared/openspec-prompt-templates.test.ts (2 tests) 1ms
 ✓ |daemon| test/shared-agent-types.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/alias-memory-isolation.test.ts (3 tests) 25ms
 ✓ |daemon| test/shared/fs-transport-contract.test.ts (2 tests) 1ms
 ✓ |daemon| test/daemon/command-handler-opencode-history.test.ts (5 tests) 2ms
 ✓ |daemon| test/shared/memory-mcp-env.test.ts (1 test) 2ms
 ✓ |daemon| test/shared/session-model.test.ts (2 tests) 2ms
 ✓ |daemon| test/shared/terminal-transport-contract.test.ts (2 tests) 1ms
 ↓ |daemon| test/daemon/p2p-workflow-script.test.ts (16 tests | 16 skipped)
 ✓ |daemon| test/daemon/jsonl-watcher.test.ts (49 tests) 111446ms
   ✓ parseLine — event type coverage > emits assistant.text for text blocks  2720ms
   ✓ parseLine — event type coverage > emits assistant.thinking for thinking blocks  2706ms
   ✓ parseLine — event type coverage > emits tool.call for tool_use blocks  2704ms
   ✓ parseLine — event type coverage > emits user.message for user text blocks  2708ms
   ✓ parseLine — event type coverage > emits user.message for string-form user content used by real CC transcripts  2709ms
   ✓ parseLine — event type coverage > emits tool.result for tool_result blocks  2712ms
   ✓ 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  2708ms
   ✓ parseLine — event type coverage > emits agent.status for compact_boundary system events  2710ms
   ✓ parseLine — event type coverage > emits agent.status for bash_progress  2718ms
   ✓ parseLine — event type coverage > emits ask.question for AskUserQuestion tool_use  2711ms
   ✓ parseLine — event type coverage > handles multi-block assistant turns (text + tool_use)  2709ms
   ✓ parseLine — event type coverage > emits usage.update with token counts from assistant messages  2737ms
   ✓ parseLine — event type coverage > ignores invalid JSON lines gracefully  2710ms
   ✓ parseLine — event type coverage > ignores empty/whitespace lines  2706ms
   ✓ extractToolInput — tool-specific input extraction > extracts command from Bash tool  2707ms
   ✓ extractToolInput — tool-specific input extraction > extracts file_path from Read tool  2728ms
   ✓ extractToolInput — tool-specific input extraction > extracts pattern from Glob tool  2723ms
   ✓ extractToolInput — tool-specific input extraction > extracts pattern+path from Grep tool  2706ms
   ✓ extractToolInput — tool-specific input extraction > extracts description from Agent tool  2708ms
   ✓ file.change emission > emits hidden raw tool events and a visible file.change for Claude Edit  2715ms
   ✓ file.change emission > preserves repeated patches for the same file within a MultiEdit batch  2712ms
   ✓ file.change emission > does not emit file.change when Claude file identity is missing  2722ms
   ✓ file.change emission > keeps raw Claude tool rows visible when the deferred file tool errors  2705ms
   ✓ drainNewLines — partial line handling > does NOT lose data when file write splits a JSON line across drains  4565ms
   ✓ drainNewLines — partial line handling > handles multiple complete lines followed by a partial  4558ms
   ✓ startWatchingFile — timeout cleanup > cleans up phantom watcher when file never appears  1008ms
   ✓ startWatchingFile — timeout cleanup > succeeds when file appears within timeout  1004ms
   ✓ watcher status tracking > transitions from waiting_for_file to active  302ms
   ✓ watcher status tracking > returns stopped/null after stopWatching  306ms
   ✓ claim management > preClaimFile prevents other sessions from claiming the same file  303ms
   ✓ claim management > stopWatching releases claims  302ms
   ✓ stable eventId generation > generates deterministic eventIds based on byte offset  604ms
   ✓ stable eventId generation > produces same eventIds on re-read (daemon restart simulation)  608ms
   ✓ progress event subtypes > emits agent.status for agent_progress  2706ms
   ✓ progress event subtypes > emits agent.status for mcp_progress started  2706ms
   ✓ progress event subtypes > emits agent.status for waiting_for_task  2703ms
   ✓ system-injected message filtering > filters <task-notification> and emits agent.status processing instead  2716ms
   ✓ system-injected message filtering > filters <system-reminder> and emits agent.status processing instead  2712ms
   ✓ system-injected message filtering > filters <command-name> slash commands  2713ms
   ✓ system-injected message filtering > filters <local-command-caveat> local commands  2756ms
   ✓ system-injected message filtering > filters <bash-input> / <bash-stdout> / <bash-stderr>  2708ms
   ✓ system-injected message filtering > filters <command-message> tags  2710ms
   ✓ system-injected message filtering > filters string-form user content with system tags  2704ms
   ✓ system-injected message filtering > does NOT filter normal user messages  2704ms
   ✓ system-injected message filtering > does NOT filter user messages that mention XML tags in natural text  2704ms

⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯

 FAIL  |daemon| test/daemon/memory-mcp-stdio-lifecycle.test.ts > memory MCP stdio lifecycle (subprocess) > exits when it was already reparented before it ever ran, stdin still held
AssertionError: a process born already reparented must not become the leak: expected false to be true // Object.is equality

[32m- Expected[39m
[31m+ Received[39m

[32m- true[39m
[31m+ false[39m

 ❯ test/daemon/memory-mcp-stdio-lifecycle.test.ts:251:82
    249| 
    250|       const gone = await waitFor(() => !pidAlive(serverPid), 20_000);
    251|       expect(gone, 'a process born already reparented must not become …
       |                                                                                  ^
    252|     } finally {
    253|       if (serverPid > 0 && pidAlive(serverPid)) { try { process.kill(s…

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯


 Test Files  1 failed | 434 passed | 1 skipped (436)
      Tests  1 failed | 6678 passed | 23 skipped (6702)
   Start at  00:43:05
   Duration  113.66s (transform 20.37s, setup 15.54s, collect 165.38s, tests 596.36s, environment 119ms, prepare 38.84s)

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=1
