Skip to content

Instantly share code, notes, and snippets.

@MarcoDotIO
Created April 27, 2026 18:58
Show Gist options
  • Select an option

  • Save MarcoDotIO/4b14d9cf6200d58e8ee59b11fb9a4141 to your computer and use it in GitHub Desktop.

Select an option

Save MarcoDotIO/4b14d9cf6200d58e8ee59b11fb9a4141 to your computer and use it in GitHub Desktop.
agenc-core PR #541 head 071a542 — full vitest run TAP output (6830 passed | 22 skipped | 0 failed)
This file has been truncated, but you can view the full file.
Starting daemon...
Generating AGENC.md for /var/folders/4j/vk_45j451hl42bxjlpchg51c0000gn/T/agenc-cli-init-create-1YDGie (this may take a minute)...
Starting daemon...
Starting daemon...
Generating AGENC.md for /var/folders/4j/vk_45j451hl42bxjlpchg51c0000gn/T/agenc-cli-init-invalid-nbzRDC (this may take a minute)...
Starting daemon...
Generating AGENC.md for /var/folders/4j/vk_45j451hl42bxjlpchg51c0000gn/T/agenc-cli-init-invalid-guide-x3Iapv (this may take a minute)...
TAP version 13
1..6852
ok 1 - src/idl.test.ts > IDL exports > exports a valid IDL object # time=0.93ms
ok 2 - src/idl.test.ts > IDL exports > has correct program address # time=0.21ms
ok 3 - src/idl.test.ts > IDL exports > exports a protocol IDL object alongside the runtime IDL # time=0.09ms
ok 4 - src/idl.test.ts > IDL exports > has expected metadata # time=0.22ms
ok 5 - src/idl.test.ts > IDL exports > has instructions array with entries # time=0.10ms
ok 6 - src/idl.test.ts > IDL exports > overrides devnet marketplace account layouts for task/dispute instructions # time=0.53ms
ok 7 - src/idl.test.ts > IDL exports > has expected instruction names # time=0.39ms
ok 8 - src/idl.test.ts > IDL exports > matches the deployed devnet task creation signer layout # time=0.32ms
ok 9 - src/idl.test.ts > IDL exports > uses the deployed devnet create_task account order # time=0.56ms
ok 10 - src/idl.test.ts > IDL exports > supports the legacy initiate_dispute account order for devnet compatibility # time=9.39ms
ok 11 - src/idl.test.ts > IDL exports > supports the legacy create_task account order for devnet compatibility # time=7.30ms
ok 12 - src/idl.test.ts > IDL exports > has accounts array with entries # time=0.14ms
ok 13 - src/idl.test.ts > IDL exports > has expected account types # time=0.21ms
ok 14 - src/idl.test.ts > IDL exports > has types array # time=0.16ms
ok 15 - src/idl.test.ts > IDL exports > has task validation V2 type definitions # time=0.18ms
ok 16 - src/idl.test.ts > IDL exports > has events array # time=0.05ms
ok 17 - src/idl.test.ts > IDL exports > has errors array # time=0.05ms
ok 18 - src/idl.test.ts > AgencCoordination type > type is usable for Program generics # time=10.92ms
ok 19 - src/idl.test.ts > createProgram > creates a Program instance with provider # time=5.09ms
ok 20 - src/idl.test.ts > createProgram > uses SDK PROGRAM_ID as default programId # time=4.88ms
ok 21 - src/idl.test.ts > createProgram > accepts custom programId parameter # time=5.17ms
ok 22 - src/idl.test.ts > createProgram > returns Program with correct IDL structure # time=12.89ms
ok 23 - src/idl.test.ts > createProgram > has expected account namespaces # time=4.22ms
ok 24 - src/idl.test.ts > createProgram > has expected methods namespace # time=4.36ms
ok 25 - src/idl.test.ts > createProgram > exposes task validation V2 methods through Program.methods # time=8.75ms
ok 26 - src/idl.test.ts > createReadOnlyProgram > creates a Program instance from Connection # time=4.02ms
ok 27 - src/idl.test.ts > createReadOnlyProgram > uses SDK PROGRAM_ID as default programId # time=4.10ms
ok 28 - src/idl.test.ts > createReadOnlyProgram > accepts custom programId parameter # time=17.95ms
ok 29 - src/idl.test.ts > createReadOnlyProgram > has a valid placeholder publicKey as wallet identity # time=4.21ms
ok 30 - src/idl.test.ts > createReadOnlyProgram > throws on signTransaction attempt # time=4.61ms
ok 31 - src/idl.test.ts > createReadOnlyProgram > throws on signAllTransactions attempt # time=11.41ms
ok 32 - src/idl.test.ts > createReadOnlyProgram > has confirmed commitment by default # time=5.83ms
ok 33 - src/idl.test.ts > createReadOnlyProgram > returns Program with correct IDL structure # time=4.39ms
ok 34 - src/idl.test.ts > createReadOnlyProgram > has expected account namespaces # time=8.91ms
ok 35 - src/idl.test.ts > getIdlForProgram behavior (internal) > returns original IDL when using default address # time=4.12ms
ok 36 - src/idl.test.ts > getIdlForProgram behavior (internal) > returns modified IDL with custom address when using custom programId # time=11.30ms
ok 37 - src/idl.test.ts > getIdlForProgram behavior (internal) > does not mutate original IDL when using custom programId # time=17.81ms
ok 38 - src/idl.test.ts > validateIdl error handling > IDL has required address field # time=0.10ms
ok 39 - src/idl.test.ts > validateIdl error handling > IDL has required instructions array # time=0.06ms
ok 40 - src/idl.test.ts > validateIdl error handling > createProgram and createReadOnlyProgram call validateIdl internally # time=16.77ms
ok 41 - src/project-doc.test.ts > project-doc > inspects common repository signals # time=24.22ms
ok 42 - src/project-doc.test.ts > project-doc > builds concise repository guidelines markdown # time=0.66ms
ok 43 - src/project-doc.test.ts > project-doc > prefers repo-aware guidance when contributor docs and package surfaces exist # time=24.98ms
ok 44 - src/project-doc.test.ts > project-doc > writes AGENC.md and skips overwrite unless forced # time=20.10ms
ok 45 - src/runtime.test.ts > AgentRuntime > constructor > creates instance with minimal valid config using Keypair # time=45.60ms
ok 46 - src/runtime.test.ts > AgentRuntime > constructor > creates instance with Wallet interface # time=13.41ms
ok 47 - src/runtime.test.ts > AgentRuntime > constructor > throws ValidationError when connection is missing # time=0.95ms
ok 48 - src/runtime.test.ts > AgentRuntime > constructor > throws ValidationError when wallet is missing # time=0.20ms
ok 49 - src/runtime.test.ts > AgentRuntime > constructor > throws ValidationError when agentId has wrong length # time=0.53ms
ok 50 - src/runtime.test.ts > AgentRuntime > constructor > accepts valid 32-byte agentId # time=14.27ms
ok 51 - src/runtime.test.ts > AgentRuntime > constructor > generates random agentId when not provided # time=17.75ms
ok 52 - src/runtime.test.ts > AgentRuntime > constructor > uses default values for optional config # time=36.62ms
ok 53 - src/runtime.test.ts > AgentRuntime > getAgentId > returns a copy of agentId to prevent mutation # time=5.46ms
ok 54 - src/runtime.test.ts > AgentRuntime > isStarted > returns false before start() is called # time=15.33ms
ok 55 - src/runtime.test.ts > AgentRuntime > getAgentPda > returns null before start() is called # time=10.26ms
ok 56 - src/runtime.test.ts > AgentRuntime > getAgentManager > returns the AgentManager instance # time=9.33ms
ok 57 - src/runtime.test.ts > AgentRuntime > stop > is idempotent when not started # time=22.93ms
ok 58 - src/runtime.test.ts > AgentRuntime > registerShutdownHandlers > registers SIGINT and SIGTERM handlers # time=10.43ms
ok 59 - src/runtime.test.ts > AgentRuntime > registerShutdownHandlers > is idempotent - does not register handlers twice # time=6.60ms
ok 60 - src/runtime.test.ts > AgentRuntime > createEventMonitor > returns an EventMonitor instance # time=30.37ms
ok 61 - src/runtime.test.ts > AgentRuntime > createEventMonitor > returns a new instance on each call # time=10.17ms
ok 62 - src/runtime.test.ts > AgentRuntime > createEventMonitor > returns a monitor that is not yet running # time=6.46ms
ok 63 - src/runtime.test.ts > AgentRuntime > createEventMonitor > returns a monitor with zeroed metrics # time=4.81ms
ok 64 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > returns a TaskExecutor instance # time=39.20ms
ok 65 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > returns a new instance on each call # time=9.81ms
ok 66 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > returns an executor that is not yet running # time=7.24ms
ok 67 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > uses runtime logger by default # time=12.06ms
ok 68 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > allows logger override # time=4.87ms
ok 69 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > supports multiple concurrent executors # time=6.77ms
ok 70 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > allows explicit memory-only task persistence mode # time=14.46ms
ok 71 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > returns executor with zeroed metrics # time=4.68ms
ok 72 - src/runtime.test.ts > AgentRuntime > createTaskExecutor > passes through mode and maxConcurrentTasks config # time=4.79ms
ok 73 - src/runtime.test.ts > AgentRuntime > replay integration > creates replay bridge when enabled via runtime config # time=0.89ms
ok 74 - src/runtime.test.ts > AgentRuntime > replay integration > starts and stops replay bridge in runtime lifecycle # time=0.68ms
ok 75 - src/runtime.test.ts > AgentRuntime > replay integration > uses backfill defaults when toSlot is omitted # time=12.07ms
ok 76 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.backfill.success # time=1828.99ms
ok 77 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.backfill.failure.missing-rpc # time=3.93ms
ok 78 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.compare.success # time=7.63ms
ok 79 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.compare.mismatch # time=4.92ms
ok 80 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.incident.success # time=2.35ms
ok 81 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.incident.truncated # time=6.63ms
ok 82 - tests/cli-contract.test.ts > CLI output contract tests > cli contract: cli.replay.incident.empty # time=3.40ms
ok 83 - tests/cli-contract.test.ts > CLI output contract tests > does not include extra top-level keys for mismatch case # time=0.40ms
ok 84 - tests/cli-foundation.test.ts > runtime cli foundation > parses short and long options in a deterministic record # time=1.93ms
ok 85 - tests/cli-foundation.test.ts > runtime cli foundation > renders command-line help with no arguments # time=1.61ms
ok 86 - tests/cli-foundation.test.ts > runtime cli foundation > returns a machine-readable error payload for unknown root command # time=1841.32ms
ok 87 - tests/cli-foundation.test.ts > runtime cli foundation > requires replay subcommand when root command is provided # time=0.90ms
ok 88 - tests/cli-foundation.test.ts > runtime cli foundation > enforces backfill required arguments # time=0.83ms
ok 89 - tests/cli-foundation.test.ts > runtime cli foundation > enforces compare required local-trace-path # time=0.72ms
ok 90 - tests/cli-foundation.test.ts > runtime cli foundation > requires incident target identifier # time=0.52ms
ok 91 - tests/cli-foundation.test.ts > runtime cli foundation > uses strict validation error for invalid backfill window values # time=0.54ms
ok 92 - tests/cli-foundation.test.ts > runtime cli foundation > loads cli defaults from config file # time=2.14ms
ok 93 - tests/cli-foundation.test.ts > runtime cli foundation > resolves env and CLI precedence for runtime options # time=1.78ms
ok 94 - tests/cli-foundation.test.ts > runtime cli foundation > rejects legacy flat config when selected through AGENC_CONFIG # time=1.11ms
ok 95 - tests/cli-foundation.test.ts > runtime cli foundation > accepts legacy flat config through AGENC_RUNTIME_CONFIG compatibility input # time=1.03ms
ok 96 - tests/cli-foundation.test.ts > runtime cli foundation > returns a structured error when config file cannot be parsed # time=0.51ms
ok 97 - tests/cli-replay-commands.test.ts > runtime replay cli commands > emits a deterministic replay compare report in schema v1 # time=1842.82ms
ok 98 - tests/cli-replay-commands.test.ts > runtime replay cli commands > emits replay compare mismatches when local traces diverge # time=7.51ms
ok 99 - tests/cli-replay-commands.test.ts > runtime replay cli commands > redacts requested replay compare fields when --redact-fields is set # time=3.34ms
ok 100 - tests/cli-replay-commands.test.ts > runtime replay cli commands > returns a stable incident reconstruction summary with validation # time=5.35ms
ok 101 - tests/cli-replay-commands.test.ts > runtime replay cli commands > redacts incident narrative/signatures when --redact-fields is set # time=1.24ms
ok 102 - tests/cli-replay-commands.test.ts > runtime replay cli commands > populates disputePda on incident summary from dispute event payloads # time=1.18ms
ok 103 - tests/cli-replay-commands.test.ts > runtime replay cli commands > emits a sealed evidence pack when --sealed is set # time=2.31ms
ok 104 - tests/cli-replay-commands.test.ts > runtime replay cli commands > runs backfill through deterministic on-chain fetcher output # time=1.87ms
ok 105 - tests/compiled-job-launch-readiness-docs.integration.test.ts > compiled job Phase 1 launch-readiness docs > includes incident, abuse, retention, and checklist sections # time=3.10ms
ok 106 - tests/compiled-job-launch-readiness-docs.integration.test.ts > compiled job Phase 1 launch-readiness docs > is linked from the repo and deployment indexes # time=2.18ms
ok 107 - tests/decomposition-search.integration.test.ts > decomposition-search integration > searches replay fixtures and returns pareto-ranked variants # time=2.74ms
ok 108 - tests/decomposition-search.integration.test.ts > decomposition-search integration > runs CLI harness and writes artifact # time=162.87ms
ok 109 - tests/delegation-benchmark.integration.test.ts > delegation benchmark integration > runs deterministic decomposition suite with baseline deltas # time=14.25ms
ok 110 - tests/delegation-benchmark.integration.test.ts > delegation benchmark integration > supports CLI artifact generation # time=848.74ms
ok 111 - tests/eval-scorecard.integration.test.ts > eval scorecard integration > computes deterministic scorecards from fixture traces # time=3.00ms
ok 112 - tests/eval-scorecard.integration.test.ts > eval scorecard integration > flags degraded traces with lower reliability metrics # time=1.40ms
ok 113 - tests/job-spec-security.integration.test.ts > marketplace job spec security integration > market.tasks.detail fails closed without fetching remote job specs by default # time=10.20ms
ok 114 - tests/litesvm-setup.test.ts > runtime LiteSVM setup > uses the local protocol target idl for the client program id # SKIP
ok 115 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > surfaces local job spec metadata in task list and detail # SKIP
ok 116 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > fails closed without fetching remote job specs in task detail by default # SKIP
ok 117 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > blocks injected marketplace task prompts until the job spec is locally verified # SKIP
ok 118 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > rejects claims when the local job spec object is tampered # SKIP
ok 119 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > rejects locally verified claims when the on-chain job spec pointer is missing # SKIP
ok 120 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > runs task lifecycle commands against LiteSVM # SKIP
ok 121 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > runs creator-initiated dispute list/detail/resolve commands # SKIP
ok 122 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > runs skill marketplace commands with on-chain purchase and rating # SKIP
ok 123 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > runs governance list/detail/vote commands # SKIP
ok 124 - tests/marketplace-cli.integration.test.ts > marketplace CLI integration > runs reputation summary, stake, and delegation commands # SKIP
ok 125 - tests/mutation-regression.integration.test.ts > mutation regression integration > runs benchmark corpus under mutation operators deterministically # time=34.54ms
ok 126 - tests/mutation-regression.integration.test.ts > mutation regression integration > supports CI dry-run threshold gate evaluation via CLI # time=379.57ms
ok 127 - tests/mutation-regression.integration.test.ts > mutation regression integration > supports checked-in mutation gate policy manifests via CLI # time=193.72ms
ok 128 - tests/pipeline-incident-replay.integration.test.ts > pipeline incident replay integration > replays sanitized incident traces deterministically offline # time=72.32ms
ok 129 - tests/pipeline-quality-gates.integration.test.ts > pipeline quality gate integration > supports strict failure + dry-run modes via CLI # time=995.29ms
ok 130 - tests/replay-chaos-comparator.test.ts > replay comparator chaos scenarios > detects hash mismatch when projected payload differs # time=1.82ms
ok 131 - tests/replay-chaos-comparator.test.ts > replay comparator chaos scenarios > detects missing event when local trace drops a projected event # time=0.41ms
ok 132 - tests/replay-chaos-comparator.test.ts > replay comparator chaos scenarios > detects unexpected event when local trace includes an extra event # time=0.37ms
ok 133 - tests/replay-chaos-comparator.test.ts > replay comparator chaos scenarios > detects type mismatch when local event type changes # time=0.38ms
ok 134 - tests/replay-chaos-partial-write.test.ts > partial write and resume chaos scenarios > resumes from persisted cursor after simulated crash # time=10.27ms
ok 135 - tests/replay-chaos-partial-write.test.ts > partial write and resume chaos scenarios > emits a stall alert when cursor does not advance # time=0.28ms
ok 136 - tests/replay-chaos-store.test.ts > replay store chaos scenarios > backfill handles store write failure gracefully # time=63.08ms
ok 137 - tests/replay-chaos-store.test.ts > replay store chaos scenarios > reports type mismatch when store corrupts projected event type # time=1.36ms
ok 138 - tests/replay-chaos-store.test.ts > replay store chaos scenarios > reports unexpected events when store returns empty projected timeline # time=0.26ms
ok 139 - tests/replay-chaos-transition.test.ts > transition chaos scenarios > flags invalid open -> completed transition as transition_invalid # time=8.14ms
ok 140 - tests/replay-chaos-transition.test.ts > transition chaos scenarios > flags duplicate completion sequences as duplicate_sequence # time=0.52ms
ok 141 - tests/replay-chaos-transition.test.ts > transition chaos scenarios > flags dispute initiated on cancelled task as transition_invalid # time=0.38ms
ok 142 - tests/replay-chaos.test.ts > chaotic replay projection pipeline > exposes a stable chaos scenario matrix # time=4.14ms
ok 143 - tests/replay-chaos.test.ts > chaotic replay projection pipeline > remains deterministic for out-of-order and duplicated chaos streams in lenient mode # time=34.91ms
ok 144 - tests/replay-chaos.test.ts > chaotic replay projection pipeline > detects same chaos signatures deterministically in strict mode # time=0.81ms
ok 145 - tests/replay-chaos.test.ts > chaotic replay projection pipeline > handles dropped middle events without breaking deterministic output shape # time=4.90ms
ok 146 - tests/replay-chaos.test.ts > chaotic replay projection pipeline > flags speculative lifecycle bursts consistently across repeated runs # time=0.93ms
ok 147 - tests/workflow-feature-store.integration.test.ts > workflow feature store integration > captures compile->submit->monitor output into optimizer feature vectors # time=68.27ms
ok 148 - tests/workflow-feature-store.integration.test.ts > workflow feature store integration > loads legacy fixture vectors and migrates them to current schema version # time=1.15ms
ok 149 - tests/workflow-optimizer.integration.test.ts > workflow optimizer integration > runs deterministic optimization and rolls back canary variants on regressions # time=10.87ms
ok 150 - tests/workflow-optimizer.integration.test.ts > workflow optimizer integration > selects the same candidate id for the same seed/history simulation # time=0.67ms
ok 151 - tests/workstream-i-docs.integration.test.ts > workstream I docs integration > runtime chat pipeline doc reflects delegation orchestration and policy-learning flow # time=6.25ms
ok 152 - tests/workstream-i-docs.integration.test.ts > workstream I docs integration > incident replay runbook includes delegation and decomposition incident templates # time=1.76ms
ok 153 - tests/workstream-i-docs.integration.test.ts > workstream I docs integration > runtime api includes subagent policy learning profile and benchmark scripts # time=1.00ms
ok 154 - tests/workstream-i-docs.integration.test.ts > workstream I docs integration > subagent orchestration flow doc exists with required sections # time=0.44ms
ok 155 - tests/workstream-i-docs.integration.test.ts > workstream I docs integration > architecture index references the new subagent orchestration flow # time=0.96ms
ok 156 - src/bin/node-compat.test.ts > node runtime compatibility > installs node:buffer File when the Node global is missing # time=1.05ms
ok 157 - src/bin/node-compat.test.ts > node runtime compatibility > preserves an existing File global # time=0.17ms
ok 158 - src/agent/capabilities.test.ts > Capability Constants > matches on-chain state.rs values (lines 16-27) # time=3.87ms
ok 159 - src/agent/capabilities.test.ts > Capability Constants > has exactly 10 capabilities # time=0.14ms
ok 160 - src/agent/capabilities.test.ts > Capability Constants > ALL_CAPABILITIES contains all values # time=0.64ms
ok 161 - src/agent/capabilities.test.ts > Capability Constants > ALL_CAPABILITY_NAMES contains all names # time=0.39ms
ok 162 - src/agent/capabilities.test.ts > combineCapabilities > combines multiple capabilities with bitwise OR # time=0.09ms
ok 163 - src/agent/capabilities.test.ts > combineCapabilities > returns 0n for no capabilities # time=0.05ms
ok 164 - src/agent/capabilities.test.ts > combineCapabilities > handles single capability # time=0.09ms
ok 165 - src/agent/capabilities.test.ts > combineCapabilities > combines all capabilities # time=0.06ms
ok 166 - src/agent/capabilities.test.ts > hasCapability > returns true for set capability # time=0.30ms
ok 167 - src/agent/capabilities.test.ts > hasCapability > returns false for unset capability # time=0.08ms
ok 168 - src/agent/capabilities.test.ts > hasCapability > handles zero capabilities # time=0.09ms
ok 169 - src/agent/capabilities.test.ts > hasAllCapabilities > returns true when all required capabilities are present # time=0.05ms
ok 170 - src/agent/capabilities.test.ts > hasAllCapabilities > returns false when any required capability is missing # time=0.04ms
ok 171 - src/agent/capabilities.test.ts > hasAllCapabilities > returns true for empty requirements # time=0.03ms
ok 172 - src/agent/capabilities.test.ts > hasAnyCapability > returns true when any capability matches # time=0.05ms
ok 173 - src/agent/capabilities.test.ts > hasAnyCapability > returns false when no capability matches # time=0.04ms
ok 174 - src/agent/capabilities.test.ts > hasAnyCapability > returns false for empty list # time=0.03ms
ok 175 - src/agent/capabilities.test.ts > getCapabilityNames > returns correct names for bitmask # time=0.09ms
ok 176 - src/agent/capabilities.test.ts > getCapabilityNames > returns empty array for zero # time=0.24ms
ok 177 - src/agent/capabilities.test.ts > getCapabilityNames > returns all names for all capabilities # time=0.04ms
ok 178 - src/agent/capabilities.test.ts > parseCapabilities > converts names to bitmask # time=0.04ms
ok 179 - src/agent/capabilities.test.ts > parseCapabilities > handles empty array # time=6.04ms
ok 180 - src/agent/capabilities.test.ts > parseCapabilities > round-trips with getCapabilityNames # time=0.21ms
ok 181 - src/agent/capabilities.test.ts > formatCapabilities > formats as comma-separated string # time=0.12ms
ok 182 - src/agent/capabilities.test.ts > formatCapabilities > returns "None" for zero # time=0.04ms
ok 183 - src/agent/capabilities.test.ts > formatCapabilities > handles single capability # time=0.03ms
ok 184 - src/agent/capabilities.test.ts > countCapabilities > counts set bits correctly # time=0.05ms
ok 185 - src/agent/capabilities.test.ts > countCapabilities > returns 0 for no capabilities # time=0.03ms
ok 186 - src/agent/capabilities.test.ts > countCapabilities > returns 10 for all capabilities # time=0.03ms
ok 187 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentRegistered > registers listener with correct event name # time=2.03ms
ok 188 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentRegistered > parses and passes event to callback # time=0.60ms
ok 189 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentRegistered > filters by agentId when option provided # time=0.22ms
ok 190 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentRegistered > unsubscribes correctly # time=0.28ms
ok 191 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentUpdated > registers listener with correct event name # time=0.26ms
ok 192 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentUpdated > parses and passes event to callback # time=0.30ms
ok 193 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentUpdated > filters by agentId when option provided # time=0.17ms
ok 194 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentDeregistered > registers listener with correct event name # time=0.18ms
ok 195 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentDeregistered > parses and passes event to callback # time=0.40ms
ok 196 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentSuspended > registers listener with correct event name # time=0.18ms
ok 197 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentSuspended > parses and passes event to callback # time=0.20ms
ok 198 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentUnsuspended > registers listener with correct event name # time=0.10ms
ok 199 - src/agent/events.test.ts > Event subscription utilities > subscribeToAgentUnsuspended > parses and passes event to callback # time=0.12ms
ok 200 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > subscribes to all three event types # time=0.51ms
ok 201 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > only subscribes to events with provided callbacks # time=0.08ms
ok 202 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > routes events to correct callbacks # time=0.19ms
ok 203 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > unsubscribes from all events # time=0.09ms
ok 204 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > applies agentId filter to all subscriptions # time=0.10ms
ok 205 - src/agent/events.test.ts > Event subscription utilities > subscribeToAllAgentEvents > handles empty callbacks object # time=0.06ms
ok 206 - src/agent/events.test.ts > Event subscription utilities > Event parsing edge cases > handles Uint8Array agentId in events # time=0.09ms
ok 207 - src/agent/events.test.ts > Event subscription utilities > Event parsing edge cases > converts capabilities from BN to bigint # time=0.07ms
ok 208 - src/agent/events.test.ts > Event subscription utilities > Event parsing edge cases > converts timestamp from BN to number # time=0.06ms
ok 209 - src/agent/manager.test.ts > AgentManager > constructor > creates instance with required config # time=49.88ms
ok 210 - src/agent/manager.test.ts > AgentManager > constructor > uses default PROGRAM_ID when not specified # time=6.46ms
ok 211 - src/agent/manager.test.ts > AgentManager > constructor > uses custom programId when specified # time=8.76ms
ok 212 - src/agent/manager.test.ts > AgentManager > constructor > uses silent logger by default when not specified # time=5.40ms
ok 213 - src/agent/manager.test.ts > AgentManager > initial state > isRegistered returns false initially # time=5.32ms
ok 214 - src/agent/manager.test.ts > AgentManager > initial state > getCachedState returns null initially # time=10.03ms
ok 215 - src/agent/manager.test.ts > AgentManager > initial state > getAgentPda returns null initially # time=4.96ms
ok 216 - src/agent/manager.test.ts > AgentManager > initial state > getAgentId returns null initially # time=5.37ms
ok 217 - src/agent/manager.test.ts > AgentManager > getProgram > should return the program instance # time=8.27ms
ok 218 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > getState throws AgentNotRegisteredError when not registered # time=5.16ms
ok 219 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > update throws AgentNotRegisteredError when not registered # time=6.53ms
ok 220 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > updateStatus throws AgentNotRegisteredError when not registered # time=9.67ms
ok 221 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > updateCapabilities throws AgentNotRegisteredError when not registered # time=4.81ms
ok 222 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > updateEndpoint throws AgentNotRegisteredError when not registered # time=5.04ms
ok 223 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > updateMetadataUri throws AgentNotRegisteredError when not registered # time=7.76ms
ok 224 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > deregister throws AgentNotRegisteredError when not registered # time=6.56ms
ok 225 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > getRateLimitState throws AgentNotRegisteredError when not registered # time=4.85ms
ok 226 - src/agent/manager.test.ts > AgentManager > requireRegistered errors > getReputation throws AgentNotRegisteredError when not registered # time=14.99ms
ok 227 - src/agent/manager.test.ts > AgentManager > validation - registration params > validates agentId length # time=5.07ms
ok 228 - src/agent/manager.test.ts > AgentManager > validation - registration params > validates capabilities is non-negative # time=13.22ms
ok 229 - src/agent/manager.test.ts > AgentManager > validation - registration params > validates endpoint length # time=14.58ms
ok 230 - src/agent/manager.test.ts > AgentManager > validation - registration params > validates metadataUri length # time=4.84ms
ok 231 - src/agent/manager.test.ts > AgentManager > validation - registration params > validates stakeAmount is non-negative # time=10.13ms
ok 232 - src/agent/manager.test.ts > AgentManager > validation - update params > updateStatus rejects invalid status # time=11.25ms
ok 233 - src/agent/manager.test.ts > AgentManager > validation - update params > updateCapabilities rejects negative value # time=7.05ms
ok 234 - src/agent/manager.test.ts > AgentManager > validation - update params > updateEndpoint rejects too-long endpoint # time=11.73ms
ok 235 - src/agent/manager.test.ts > AgentManager > validation - update params > updateMetadataUri rejects too-long URI # time=7.67ms
ok 236 - src/agent/manager.test.ts > AgentManager > validation - load params > load validates agentId length # time=6.18ms
ok 237 - src/agent/manager.test.ts > AgentManager > validation - load params > load validates agentId length - too long # time=4.48ms
ok 238 - src/agent/manager.test.ts > AgentManager > static methods - validation > fetchAgent validates agentId length # time=0.14ms
ok 239 - src/agent/manager.test.ts > AgentManager > static methods - validation > agentExists validates agentId length # time=0.08ms
ok 240 - src/agent/manager.test.ts > AgentManager > event subscription > subscribeToEvents returns subscription with unsubscribe # time=4.59ms
ok 241 - src/agent/manager.test.ts > AgentManager > event subscription > unsubscribeAll completes without error when no subscriptions # time=12.09ms
ok 242 - src/agent/manager.test.ts > AgentManager error classes > ActiveTasksError > includes task count in message # time=0.21ms
ok 243 - src/agent/manager.test.ts > AgentManager error classes > ActiveTasksError > uses singular "task" for count of 1 # time=0.07ms
ok 244 - src/agent/manager.test.ts > AgentManager error classes > PendingDisputeVotesError > includes vote count in message # time=0.08ms
ok 245 - src/agent/manager.test.ts > AgentManager error classes > PendingDisputeVotesError > uses singular "vote" for count of 1 # time=0.05ms
ok 246 - src/agent/manager.test.ts > AgentManager error classes > RecentVoteActivityError > includes timestamp in message # time=2.83ms
ok 247 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > uses default TTL when not specified # time=6.25ms
ok 248 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > accepts custom TTL # time=4.38ms
ok 249 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > accepts TTL of 0 (caching disabled) # time=9.14ms
ok 250 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > accepts TTL of Infinity (cache forever) # time=4.79ms
ok 251 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > rejects negative TTL # time=0.54ms
ok 252 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > rejects NaN TTL # time=0.36ms
ok 253 - src/agent/manager.test.ts > AgentManager protocol config caching > cache configuration > accepts returnStaleOnError option # time=4.30ms
ok 254 - src/agent/manager.test.ts > AgentManager protocol config caching > getCachedProtocolConfig > returns null when cache is empty # time=10.97ms
ok 255 - src/agent/manager.test.ts > AgentManager protocol config caching > isProtocolConfigCacheFresh > returns false when cache is empty # time=4.37ms
ok 256 - src/agent/manager.test.ts > AgentManager protocol config caching > invalidateProtocolConfigCache > completes without error when cache is empty # time=4.45ms
ok 257 - src/agent/manager.test.ts > AgentManager protocol config caching > invalidateProtocolConfigCache > clears cached value # time=14.90ms
ok 258 - src/agent/manager.test.ts > AgentManager protocol config caching > getProtocolConfig options > accepts forceRefresh option # time=4.76ms
ok 259 - src/agent/manager.test.ts > AgentManager protocol config caching > getProtocolConfig options > accepts empty options object # time=6.68ms
ok 260 - src/agent/manager.test.ts > AgentManager protocol config caching > getProtocolConfig options > accepts no options (default behavior) # time=8.88ms
ok 261 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > returns address and bump for valid agentId # time=2.52ms
ok 262 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > uses PROGRAM_ID by default # time=1.19ms
ok 263 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > uses custom programId when provided # time=0.87ms
ok 264 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > throws for agentId shorter than 32 bytes # time=0.45ms
ok 265 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > throws for agentId longer than 32 bytes # time=0.11ms
ok 266 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > throws for empty agentId # time=0.09ms
ok 267 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > produces different addresses for different agentIds # time=0.56ms
ok 268 - src/agent/pda.test.ts > PDA derivation helpers > deriveAgentPda > produces consistent results for same agentId # time=1.03ms
ok 269 - src/agent/pda.test.ts > PDA derivation helpers > deriveProtocolPda > returns address and bump # time=0.68ms
ok 270 - src/agent/pda.test.ts > PDA derivation helpers > deriveProtocolPda > uses PROGRAM_ID by default # time=0.38ms
ok 271 - src/agent/pda.test.ts > PDA derivation helpers > deriveProtocolPda > uses custom programId when provided # time=0.37ms
ok 272 - src/agent/pda.test.ts > PDA derivation helpers > deriveProtocolPda > produces consistent results # time=4.79ms
ok 273 - src/agent/pda.test.ts > PDA derivation helpers > deriveProtocolPda > produces different addresses for different program IDs # time=0.43ms
ok 274 - src/agent/pda.test.ts > PDA derivation helpers > findAgentPda > returns just the address (convenience wrapper) # time=0.21ms
ok 275 - src/agent/pda.test.ts > PDA derivation helpers > findAgentPda > matches deriveAgentPda address # time=0.95ms
ok 276 - src/agent/pda.test.ts > PDA derivation helpers > findAgentPda > accepts custom programId # time=1.09ms
ok 277 - src/agent/pda.test.ts > PDA derivation helpers > findAgentPda > throws for invalid agentId length # time=0.15ms
ok 278 - src/agent/pda.test.ts > PDA derivation helpers > deriveAuthorityRateLimitPda > returns address and bump for an authority wallet # time=0.29ms
ok 279 - src/agent/pda.test.ts > PDA derivation helpers > deriveAuthorityRateLimitPda > uses the authority_rate_limit seed bytes even before the SDK exports it # time=0.30ms
ok 280 - src/agent/pda.test.ts > PDA derivation helpers > findAuthorityRateLimitPda > matches deriveAuthorityRateLimitPda address # time=0.29ms
ok 281 - src/agent/pda.test.ts > PDA derivation helpers > findProtocolPda > returns just the address (convenience wrapper) # time=0.17ms
ok 282 - src/agent/pda.test.ts > PDA derivation helpers > findProtocolPda > matches deriveProtocolPda address # time=0.28ms
ok 283 - src/agent/pda.test.ts > PDA derivation helpers > findProtocolPda > accepts custom programId # time=0.38ms
ok 284 - src/agent/pda.test.ts > PDA derivation helpers > deriveAuthorityRateLimitPda > uses authority_rate_limit and authority seeds # time=0.95ms
ok 285 - src/agent/pda.test.ts > PDA derivation helpers > deriveAuthorityRateLimitPda > findAuthorityRateLimitPda returns the derived address # time=1.85ms
ok 286 - src/agent/pda.test.ts > PDA derivation helpers > PdaWithBump type > satisfies interface contract # time=0.21ms
ok 287 - src/agent/types.test.ts > Agent Constants > AGENT_REGISTRATION_SIZE > equals 438 bytes (matches state.rs) # time=26.65ms
ok 288 - src/agent/types.test.ts > Agent Constants > AGENT_ID_LENGTH > equals 32 bytes # time=0.14ms
ok 289 - src/agent/types.test.ts > Agent Constants > MAX_ENDPOINT_LENGTH > equals 128 characters # time=0.12ms
ok 290 - src/agent/types.test.ts > Agent Constants > MAX_METADATA_URI_LENGTH > equals 128 characters # time=0.07ms
ok 291 - src/agent/types.test.ts > Agent Constants > MAX_REPUTATION > equals 10000 (100.00%) # time=0.10ms
ok 292 - src/agent/types.test.ts > Agent Constants > MAX_U8 > equals 255 # time=0.05ms
ok 293 - src/agent/types.test.ts > Agent Constants > CAPABILITY_NAMES > contains all 10 capability names # time=0.88ms
ok 294 - src/agent/types.test.ts > AgentCapabilities > COMPUTE equals 1n << 0n # time=0.07ms
ok 295 - src/agent/types.test.ts > AgentCapabilities > INFERENCE equals 1n << 1n # time=0.32ms
ok 296 - src/agent/types.test.ts > AgentCapabilities > STORAGE equals 1n << 2n # time=0.07ms
ok 297 - src/agent/types.test.ts > AgentCapabilities > NETWORK equals 1n << 3n # time=0.11ms
ok 298 - src/agent/types.test.ts > AgentCapabilities > SENSOR equals 1n << 4n # time=0.03ms
ok 299 - src/agent/types.test.ts > AgentCapabilities > ACTUATOR equals 1n << 5n # time=0.03ms
ok 300 - src/agent/types.test.ts > AgentCapabilities > COORDINATOR equals 1n << 6n # time=0.03ms
ok 301 - src/agent/types.test.ts > AgentCapabilities > ARBITER equals 1n << 7n # time=0.03ms
ok 302 - src/agent/types.test.ts > AgentCapabilities > VALIDATOR equals 1n << 8n # time=0.03ms
ok 303 - src/agent/types.test.ts > AgentCapabilities > AGGREGATOR equals 1n << 9n # time=0.03ms
ok 304 - src/agent/types.test.ts > AgentCapabilities > all capabilities are unique powers of 2 # time=0.19ms
ok 305 - src/agent/types.test.ts > AgentStatus > enum values > Inactive equals 0 # time=0.03ms
ok 306 - src/agent/types.test.ts > AgentStatus > enum values > Active equals 1 # time=0.03ms
ok 307 - src/agent/types.test.ts > AgentStatus > enum values > Busy equals 2 # time=0.03ms
ok 308 - src/agent/types.test.ts > AgentStatus > enum values > Suspended equals 3 # time=0.03ms
ok 309 - src/agent/types.test.ts > AgentStatus > agentStatusToString > converts Inactive # time=0.04ms
ok 310 - src/agent/types.test.ts > AgentStatus > agentStatusToString > converts Active # time=0.03ms
ok 311 - src/agent/types.test.ts > AgentStatus > agentStatusToString > converts Busy # time=0.03ms
ok 312 - src/agent/types.test.ts > AgentStatus > agentStatusToString > converts Suspended # time=0.03ms
ok 313 - src/agent/types.test.ts > AgentStatus > agentStatusToString > handles unknown values gracefully # time=0.03ms
ok 314 - src/agent/types.test.ts > AgentStatus > isValidAgentStatus > returns true for valid values (0-3) # time=0.06ms
ok 315 - src/agent/types.test.ts > AgentStatus > isValidAgentStatus > returns false for negative values # time=0.03ms
ok 316 - src/agent/types.test.ts > AgentStatus > isValidAgentStatus > returns false for values > 3 # time=0.03ms
ok 317 - src/agent/types.test.ts > AgentStatus > isValidAgentStatus > returns false for non-integers # time=0.03ms
ok 318 - src/agent/types.test.ts > hasCapability > returns true when capability is present # time=0.05ms
ok 319 - src/agent/types.test.ts > hasCapability > returns false when capability is absent # time=0.04ms
ok 320 - src/agent/types.test.ts > hasCapability > handles zero capabilities # time=0.03ms
ok 321 - src/agent/types.test.ts > hasCapability > handles all capabilities # time=0.11ms
ok 322 - src/agent/types.test.ts > getCapabilityNames > returns empty array for zero capabilities # time=0.26ms
ok 323 - src/agent/types.test.ts > getCapabilityNames > returns single capability name # time=0.11ms
ok 324 - src/agent/types.test.ts > getCapabilityNames > returns multiple capability names in order # time=0.10ms
ok 325 - src/agent/types.test.ts > getCapabilityNames > returns all capability names when all set # time=0.22ms
ok 326 - src/agent/types.test.ts > createCapabilityMask > returns 0n for empty array # time=0.05ms
ok 327 - src/agent/types.test.ts > createCapabilityMask > creates mask from single capability # time=0.03ms
ok 328 - src/agent/types.test.ts > createCapabilityMask > creates mask from multiple capabilities # time=0.03ms
ok 329 - src/agent/types.test.ts > createCapabilityMask > is inverse of getCapabilityNames # time=0.03ms
ok 330 - src/agent/types.test.ts > parseAgentState > success cases > parses valid mock data # time=0.58ms
ok 331 - src/agent/types.test.ts > parseAgentState > success cases > correctly converts u64 fields to bigint # time=0.08ms
ok 332 - src/agent/types.test.ts > parseAgentState > success cases > correctly converts i64 timestamp fields to number # time=0.06ms
ok 333 - src/agent/types.test.ts > parseAgentState > success cases > handles Uint8Array agentId # time=0.07ms
ok 334 - src/agent/types.test.ts > parseAgentState > success cases > parses all AgentStatus enum variants # time=1.80ms
ok 335 - src/agent/types.test.ts > parseAgentState > success cases > parses numeric status values # time=0.23ms
ok 336 - src/agent/types.test.ts > parseAgentState > success cases > handles empty strings for endpoint and metadataUri # time=0.08ms
ok 337 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws on null input # time=0.48ms
ok 338 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws on undefined input # time=0.23ms
ok 339 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws on empty object # time=0.46ms
ok 340 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when agentId is missing # time=0.16ms
ok 341 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when authority is not a PublicKey # time=0.11ms
ok 342 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when capabilities is not BN-like # time=0.19ms
ok 343 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when timestamp BN fields are missing toNumber # time=0.11ms
ok 344 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when reputation is not a number # time=0.07ms
ok 345 - src/agent/types.test.ts > parseAgentState > error cases - missing required fields > throws when endpoint is not a string # time=0.68ms
ok 346 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when agentId has wrong length # time=0.18ms
ok 347 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when reputation exceeds MAX_REPUTATION # time=0.10ms
ok 348 - src/agent/types.test.ts > parseAgentState > error cases - range validation > allows reputation at MAX_REPUTATION # time=0.05ms
ok 349 - src/agent/types.test.ts > parseAgentState > error cases - range validation > allows reputation at 0 # time=0.04ms
ok 350 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when activeTasks exceeds MAX_U8 # time=0.06ms
ok 351 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when taskCount24h exceeds MAX_U8 # time=0.06ms
ok 352 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when disputeCount24h exceeds MAX_U8 # time=0.06ms
ok 353 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when activeDisputeVotes exceeds MAX_U8 # time=0.06ms
ok 354 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when bump exceeds MAX_U8 # time=0.06ms
ok 355 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when endpoint exceeds MAX_ENDPOINT_LENGTH # time=0.10ms
ok 356 - src/agent/types.test.ts > parseAgentState > error cases - range validation > allows endpoint at MAX_ENDPOINT_LENGTH # time=0.04ms
ok 357 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when metadataUri exceeds MAX_METADATA_URI_LENGTH # time=0.07ms
ok 358 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws on invalid numeric status # time=0.06ms
ok 359 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws on empty object status # time=0.06ms
ok 360 - src/agent/types.test.ts > parseAgentState > error cases - range validation > throws when agentId has too many bytes # time=0.06ms
ok 361 - src/agent/types.test.ts > parseAgentState > error cases - range validation > allows metadataUri at MAX_METADATA_URI_LENGTH # time=0.04ms
ok 362 - src/agent/types.test.ts > parseAgentState > edge cases > handles zero values for rate limiting fields # time=1.54ms
ok 363 - src/agent/types.test.ts > parseAgentState > edge cases > handles maximum u8 values # time=0.33ms
ok 364 - src/agent/types.test.ts > parseAgentState > edge cases > handles zero capabilities # time=0.09ms
ok 365 - src/agent/types.test.ts > parseAgentState > edge cases > handles all capabilities set # time=0.11ms
ok 366 - src/agent/types.test.ts > AgentState interface > accepts valid structure # time=0.09ms
ok 367 - src/agent/types.test.ts > computeRateLimitState > allows action when cooldown passed and under limit # time=0.12ms
ok 368 - src/agent/types.test.ts > computeRateLimitState > blocks action during cooldown # time=0.06ms
ok 369 - src/agent/types.test.ts > computeRateLimitState > blocks action when 24h limit reached # time=0.05ms
ok 370 - src/agent/types.test.ts > computeRateLimitState > resets counts when 24h window expires # time=0.06ms
ok 371 - src/agent/types.test.ts > computeRateLimitState > handles unlimited tasks (maxTasksPer24h = 0) # time=0.04ms
ok 372 - src/agent/types.test.ts > computeRateLimitState > handles unlimited disputes (maxDisputesPer24h = 0) # time=0.04ms
ok 373 - src/agent/types.test.ts > computeRateLimitState > handles zero cooldowns (disabled) # time=0.06ms
ok 374 - src/agent/types.test.ts > computeRateLimitState > handles edge case: exactly at cooldown end # time=0.04ms
ok 375 - src/connection/manager.test.ts > isRetryableError > returns true for 429 status # time=8.27ms
ok 376 - src/connection/manager.test.ts > isRetryableError > returns true for 502/503/504 # time=0.24ms
ok 377 - src/connection/manager.test.ts > isRetryableError > returns true for ETIMEDOUT # time=1.17ms
ok 378 - src/connection/manager.test.ts > isRetryableError > returns true for ECONNREFUSED # time=0.15ms
ok 379 - src/connection/manager.test.ts > isRetryableError > returns true for socket hang up # time=0.09ms
ok 380 - src/connection/manager.test.ts > isRetryableError > returns true for blockhash not found # time=0.06ms
ok 381 - src/connection/manager.test.ts > isRetryableError > returns true for Node is behind # time=3.68ms
ok 382 - src/connection/manager.test.ts > isRetryableError > returns false for Account does not exist # time=0.41ms
ok 383 - src/connection/manager.test.ts > isRetryableError > returns false for custom program error (Anchor) # time=5.47ms
ok 384 - src/connection/manager.test.ts > isRetryableError > returns false for insufficient funds # time=0.21ms
ok 385 - src/connection/manager.test.ts > isRetryableError > returns false for Signature verification # time=0.15ms
ok 386 - src/connection/manager.test.ts > isRetryableError > returns false for Transaction simulation failed # time=0.05ms
ok 387 - src/connection/manager.test.ts > isRetryableError > returns false for generic error # time=0.04ms
ok 388 - src/connection/manager.test.ts > isRetryableError > non-retryable takes priority over retryable # time=0.04ms
ok 389 - src/connection/manager.test.ts > isRetryableError > handles nested response.status # time=0.04ms
ok 390 - src/connection/manager.test.ts > isConnectionLevelError > returns true for ETIMEDOUT # time=0.06ms
ok 391 - src/connection/manager.test.ts > isConnectionLevelError > returns true for 502 # time=0.04ms
ok 392 - src/connection/manager.test.ts > isConnectionLevelError > returns false for 429 # time=0.03ms
ok 393 - src/connection/manager.test.ts > isConnectionLevelError > returns false for blockhash not found # time=0.03ms
ok 394 - src/connection/manager.test.ts > isWriteMethod > returns true for sendTransaction # time=0.04ms
ok 395 - src/connection/manager.test.ts > isWriteMethod > returns true for sendEncodedTransaction # time=0.03ms
ok 396 - src/connection/manager.test.ts > isWriteMethod > returns false for getAccountInfo # time=0.03ms
ok 397 - src/connection/manager.test.ts > isWriteMethod > returns false for getBalance # time=0.03ms
ok 398 - src/connection/manager.test.ts > computeBackoff > returns base delay for attempt 0 # time=0.39ms
ok 399 - src/connection/manager.test.ts > computeBackoff > doubles for each attempt # time=0.06ms
ok 400 - src/connection/manager.test.ts > computeBackoff > caps at maxDelayMs # time=0.03ms
ok 401 - src/connection/manager.test.ts > computeBackoff > applies jitter # time=0.07ms
ok 402 - src/connection/manager.test.ts > deriveCoalesceKey > produces deterministic key for same args # time=0.07ms
ok 403 - src/connection/manager.test.ts > deriveCoalesceKey > different methods produce different keys # time=0.27ms
ok 404 - src/connection/manager.test.ts > deriveCoalesceKey > handles Uint8Array deterministically # time=0.11ms
ok 405 - src/connection/manager.test.ts > deriveCoalesceKey > handles BigInt # time=0.07ms
ok 406 - src/connection/manager.test.ts > ConnectionError > has correct code and properties # time=0.10ms
ok 407 - src/connection/manager.test.ts > AllEndpointsUnhealthyError > has correct code and properties # time=0.38ms
ok 408 - src/connection/manager.test.ts > ConnectionManager constructor > throws on empty endpoints # time=0.33ms
ok 409 - src/connection/manager.test.ts > ConnectionManager constructor > accepts single string endpoint # time=0.86ms
ok 410 - src/connection/manager.test.ts > ConnectionManager constructor > accepts EndpointConfig objects # time=0.14ms
ok 411 - src/connection/manager.test.ts > ConnectionManager constructor > uses first endpoint as active # time=0.20ms
ok 412 - src/connection/manager.test.ts > ConnectionManager read retry > succeeds on first try # time=1.00ms
ok 413 - src/connection/manager.test.ts > ConnectionManager read retry > retries on 429 and succeeds # time=12.99ms
ok 414 - src/connection/manager.test.ts > ConnectionManager read retry > retries on ETIMEDOUT # time=5.64ms
ok 415 - src/connection/manager.test.ts > ConnectionManager read retry > does NOT retry on non-retryable errors (Account does not exist) # time=2.77ms
ok 416 - src/connection/manager.test.ts > ConnectionManager read retry > does NOT retry on custom program error # time=0.31ms
ok 417 - src/connection/manager.test.ts > ConnectionManager write behavior > does NOT retry writes # time=0.57ms
ok 418 - src/connection/manager.test.ts > ConnectionManager write behavior > fails over writes on connection-level errors # time=0.31ms
ok 419 - src/connection/manager.test.ts > ConnectionManager write behavior > does NOT failover writes on non-connection errors (e.g. 429) # time=0.35ms
ok 420 - src/connection/manager.test.ts > ConnectionManager failover > fails over to next endpoint on persistent read failure # time=7.73ms
ok 421 - src/connection/manager.test.ts > ConnectionManager failover > throws AllEndpointsUnhealthyError when all endpoints fail # time=0.30ms
ok 422 - src/connection/manager.test.ts > ConnectionManager failover > updates active endpoint after failover # time=0.20ms
ok 423 - src/connection/manager.test.ts > ConnectionManager coalescing > deduplicates concurrent identical reads # time=0.19ms
ok 424 - src/connection/manager.test.ts > ConnectionManager coalescing > does NOT coalesce writes # time=0.15ms
ok 425 - src/connection/manager.test.ts > ConnectionManager coalescing > can disable coalescing # time=0.12ms
ok 426 - src/connection/manager.test.ts > ConnectionManager coalescing > cleans up inflight map after completion # time=0.09ms
ok 427 - src/connection/manager.test.ts > ConnectionManager health tracking > marks endpoint unhealthy after threshold consecutive failures # time=0.14ms
ok 428 - src/connection/manager.test.ts > ConnectionManager health tracking > recovers endpoint after consecutive successes # time=0.10ms
ok 429 - src/connection/manager.test.ts > ConnectionManager health tracking > cooldown-based auto-recovery # time=25.47ms
ok 430 - src/connection/manager.test.ts > ConnectionManager health tracking > tracks latency EMA # time=0.24ms
ok 431 - src/connection/manager.test.ts > ConnectionManager destroy > is idempotent # time=0.07ms
ok 432 - src/connection/manager.test.ts > ConnectionManager destroy > aborts in-flight retries # time=16.49ms
ok 433 - src/connection/manager.test.ts > ConnectionManager stats > tracks request counts # time=0.27ms
ok 434 - src/connection/manager.test.ts > ConnectionManager stats > tracks retry counts # time=2.37ms
ok 435 - src/connection/manager.test.ts > ConnectionManager stats > tracks error counts per endpoint # time=3.05ms
ok 436 - src/connection/manager.test.ts > ConnectionManager stats > initializes with zero stats # time=0.13ms
ok 437 - src/connection/manager.test.ts > ConnectionManager getConnection > returns Connection instance # time=0.07ms
ok 438 - src/connection/manager.test.ts > ConnectionManager getConnection > returns same instance on multiple calls # time=0.06ms
ok 439 - src/connection/manager.test.ts > ConnectionManager single endpoint > throws AllEndpointsUnhealthyError with 1 endpoint when all retries fail # time=5.19ms
ok 440 - src/connection/manager.test.ts > ConnectionManager single endpoint > does not failover writes with single endpoint # time=0.27ms
ok 441 - src/desktop/errors.test.ts > DesktopSandboxLifecycleError > sets correct code and name # time=2.09ms
ok 442 - src/desktop/errors.test.ts > DesktopSandboxLifecycleError > includes containerId in message when provided # time=0.23ms
ok 443 - src/desktop/errors.test.ts > DesktopSandboxLifecycleError > handles missing containerId # time=0.13ms
ok 444 - src/desktop/errors.test.ts > DesktopSandboxHealthError > sets correct code and name # time=0.10ms
ok 445 - src/desktop/errors.test.ts > DesktopSandboxHealthError > includes custom message # time=0.07ms
ok 446 - src/desktop/errors.test.ts > DesktopSandboxConnectionError > sets correct code and name # time=0.13ms
ok 447 - src/desktop/errors.test.ts > DesktopSandboxConnectionError > includes custom message # time=0.09ms
ok 448 - src/desktop/errors.test.ts > DesktopSandboxPoolExhaustedError > sets correct code and name # time=0.09ms
ok 449 - src/desktop/errors.test.ts > DesktopSandboxPoolExhaustedError > includes maxConcurrent in message # time=0.30ms
ok 450 - src/desktop/health.test.ts > DesktopSandboxWatchdog > starts and stops without error # time=1.86ms
ok 451 - src/desktop/health.test.ts > DesktopSandboxWatchdog > checks health of all ready containers # time=2.16ms
ok 452 - src/desktop/health.test.ts > DesktopSandboxWatchdog > marks container as unhealthy on health check failure # time=0.50ms
ok 453 - src/desktop/health.test.ts > DesktopSandboxWatchdog > resets failure counter on successful health check # time=0.34ms
ok 454 - src/desktop/health.test.ts > DesktopSandboxWatchdog > attempts restart after threshold consecutive failures # time=8.35ms
ok 455 - src/desktop/health.test.ts > DesktopSandboxWatchdog > marks as failed when restart fails # time=42.10ms
ok 456 - src/desktop/health.test.ts > DesktopSandboxWatchdog > skips containers not in ready or unhealthy state # time=0.50ms
ok 457 - src/desktop/health.test.ts > DesktopSandboxWatchdog > runs checks on interval # time=0.69ms
ok 458 - src/desktop/manager.test.ts > DesktopSandboxManager > isAvailable() > returns true when Docker is available # time=3.46ms
ok 459 - src/desktop/manager.test.ts > DesktopSandboxManager > isAvailable() > returns false when Docker is not available # time=0.52ms
ok 460 - src/desktop/manager.test.ts > DesktopSandboxManager > isAvailable() > caches the result # time=0.25ms
ok 461 - src/desktop/manager.test.ts > DesktopSandboxManager > start() > recovers live managed containers on start # time=1.00ms
ok 462 - src/desktop/manager.test.ts > DesktopSandboxManager > start() > removes dead managed containers it cannot recover # time=0.40ms
ok 463 - src/desktop/manager.test.ts > DesktopSandboxManager > start() > removes Docker-unhealthy managed containers instead of recovering them # time=0.29ms
ok 464 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > creates a container with correct docker run args # time=1.95ms
ok 465 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > applies custom resolution # time=0.52ms
ok 466 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > applies per-sandbox maxMemory and maxCpu overrides # time=0.74ms
ok 467 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > normalizes bare integer memory overrides to gigabytes # time=0.41ms
ok 468 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > validates env var key names # time=0.36ms
ok 469 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > does not allow DESKTOP_AUTH_TOKEN overrides from sandbox env # time=0.44ms
ok 470 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > mounts the host workspace and sets /workspace as cwd when configured # time=0.30ms
ok 471 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > skips workspace mounts when workspaceAccess is none # time=0.42ms
ok 472 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > throws PoolExhaustedError when at max capacity # time=0.75ms
ok 473 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > reclaims unhealthy tracked capacity before throwing pool exhaustion # time=0.45ms
ok 474 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > throws LifecycleError for invalid maxMemory override # time=0.18ms
ok 475 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > throws LifecycleError for invalid maxCpu override # time=0.14ms
ok 476 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > throws LifecycleError when docker run fails # time=0.17ms
ok 477 - src/desktop/manager.test.ts > DesktopSandboxManager > create() > removes stale container with same name before create # time=0.22ms
ok 478 - src/desktop/manager.test.ts > DesktopSandboxManager > session mapping > getHandleBySession returns the correct handle # time=0.14ms
ok 479 - src/desktop/manager.test.ts > DesktopSandboxManager > session mapping > getHandleBySession returns undefined for unknown session # time=0.09ms
ok 480 - src/desktop/manager.test.ts > DesktopSandboxManager > session mapping > assignSession maps an additional session to an existing container # time=0.17ms
ok 481 - src/desktop/manager.test.ts > DesktopSandboxManager > getOrCreate() > returns existing handle if ready # time=0.14ms
ok 482 - src/desktop/manager.test.ts > DesktopSandboxManager > getOrCreate() > creates new handle if previous one stopped # time=0.16ms
ok 483 - src/desktop/manager.test.ts > DesktopSandboxManager > destroy() > removes container and clears session mapping # time=0.22ms
ok 484 - src/desktop/manager.test.ts > DesktopSandboxManager > destroy() > destroyBySession works # time=0.13ms
ok 485 - src/desktop/manager.test.ts > DesktopSandboxManager > destroy() > destroy removes all aliased session mappings for a container # time=0.19ms
ok 486 - src/desktop/manager.test.ts > DesktopSandboxManager > destroy() > destroyAll clears everything # time=0.19ms
ok 487 - src/desktop/manager.test.ts > DesktopSandboxManager > destroy() > stop preserves tracked containers for daemon recovery # time=0.17ms
ok 488 - src/desktop/manager.test.ts > DesktopSandboxManager > listAll() > returns info for all tracked containers # time=0.21ms
ok 489 - src/desktop/manager.test.ts > DesktopSandboxManager > idle timeout > destroys container after idle timeout # time=0.39ms
ok 490 - src/desktop/manager.test.ts > DesktopSandboxManager > idle timeout > touchActivity resets the idle timer # time=4.04ms
ok 491 - src/desktop/manager.test.ts > DesktopSandboxManager > max lifetime > destroys container after max lifetime # time=1.46ms
ok 492 - src/desktop/manager.test.ts > DesktopSandboxManager > port parsing > throws on missing port mapping # time=0.63ms
ok 493 - src/desktop/manager.test.ts > DesktopSandboxManager > activeCount > tracks active container count # time=0.31ms
ok 494 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > fetches tools and becomes connected # time=1.65ms
ok 495 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > namespaces tools with desktop. prefix # time=0.38ms
ok 496 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > throws ConnectionError on health check failure # time=0.53ms
ok 497 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > throws ConnectionError on unhealthy response # time=0.14ms
ok 498 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > throws ConnectionError when tool list fails # time=0.32ms
ok 499 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > subscribes to the desktop event stream and forwards parsed events # time=1.90ms
ok 500 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > connect() > warns when the desktop server is missing required cwd features # time=0.65ms
ok 501 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > disconnect() > makes getTools return empty # time=0.17ms
ok 502 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > tool execution > routes tool calls to the REST API # time=0.55ms
ok 503 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > tool execution > screenshot returns out-of-band artifact metadata instead of inline dataUrl # time=0.48ms
ok 504 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > tool execution > returns isError on execution failure # time=0.12ms
ok 505 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > tool execution > handles fetch errors gracefully # time=0.15ms
ok 506 - src/desktop/rest-bridge.test.ts > DesktopRESTBridge > getTools() before connect > returns empty array # time=0.06ms
ok 507 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > delegates non-desktop tools to base handler # time=2.62ms
ok 508 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > routes desktop.* tools to sandbox bridge # time=1.83ms
ok 509 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > passes desktop event callbacks through to the bridge # time=0.32ms
ok 510 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > creates sandbox lazily on first desktop tool call # time=0.28ms
ok 511 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > reuses existing bridge on subsequent calls # time=2.11ms
ok 512 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > resets idle timer on each tool call # time=0.23ms
ok 513 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > returns error when sandbox creation fails # time=0.33ms
ok 514 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > waits and retries when desktop pool is temporarily exhausted # time=2.01ms
ok 515 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > returns error for desktop.screenshot (disabled) # time=0.55ms
ok 516 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > returns error for unknown desktop tool # time=0.26ms
ok 517 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards desktop.bash against interactive REPL commands # time=0.32ms
ok 518 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards desktop.bash against interactive terminal app launches # time=0.23ms
ok 519 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > allows interactive terminal app launches when explicitly backgrounded # time=0.28ms
ok 520 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards desktop.bash against incomplete single-word commands # time=0.13ms
ok 521 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards browser launch commands without a URL target # time=0.12ms
ok 522 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards browser launch commands that are not backgrounded # time=0.19ms
ok 523 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards backgrounded browser launches without explicit stdout/stderr redirection # time=0.21ms
ok 524 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > rewrites chromium launch commands with an isolated user-data-dir # time=0.64ms
ok 525 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > strips unsupported chromium sandbox flags from desktop.bash launch commands # time=0.41ms
ok 526 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards long-running foreground server commands with short timeout # time=0.14ms
ok 527 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards long-running server commands even when prefixed with cd && # time=0.19ms
ok 528 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > allows long-running server commands when already backgrounded # time=0.17ms
ok 529 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > allows backgrounded long-running servers when command ends with '& echo $!' # time=0.14ms
ok 530 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > allows backgrounded long-running servers when command writes the spawned pid to a file # time=0.29ms
ok 531 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > guards backgrounded long-running servers without output redirection # time=0.45ms
ok 532 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > does not treat npm install package names like vite as server launches # time=0.24ms
ok 533 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > adds low-token verification guidance to successful browser launch results # time=0.22ms
ok 534 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > does not flag pgrep checks as long-running server launches # time=0.15ms
ok 535 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > does not flag pkill teardown checks as long-running server launches # time=0.13ms
ok 536 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > infers window_focus title from window_list when title is omitted # time=5.72ms
ok 537 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > recycles sandbox and retries once when desktop tool reports transient fetch failure # time=0.42ms
ok 538 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > runs a desktop pipeline flow (start, navigate, input, verify, teardown) without hanging # time=0.90ms
ok 539 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > auto-screenshot > does not append screenshots even when autoScreenshot is true # time=0.26ms
ok 540 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > auto-screenshot > does not delay bash responses for screenshot capture # time=0.16ms
ok 541 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > playwright bridge > launches the expected Playwright MCP package and browser cache path # time=0.61ms
ok 542 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > container MCP bridge > injects browser cache path and forwards env for container MCP # time=0.82ms
ok 543 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > container MCP bridge > only provisions container MCP servers allowed for the current session scope # time=0.34ms
ok 544 - src/desktop/session-router.test.ts > createDesktopAwareToolHandler > container MCP bridge > reuses existing parent-scoped container MCP bridges and only connects newly required servers # time=1.59ms
ok 545 - src/desktop/session-router.test.ts > destroySessionBridge > disconnects and removes bridge # time=0.16ms
ok 546 - src/desktop/session-router.test.ts > destroySessionBridge > is idempotent for unknown sessions # time=0.05ms
ok 547 - src/dispute/operations.test.ts > parseOnChainDispute > parses BN fields to correct types # time=38.13ms
ok 548 - src/dispute/operations.test.ts > parseOnChainDispute > parses enum objects correctly # time=1.52ms
ok 549 - src/dispute/operations.test.ts > parseOnChainDispute > parses boolean fields # time=11.59ms
ok 550 - src/dispute/operations.test.ts > parseOnChainDispute > handles all resolution types # time=2.96ms
ok 551 - src/dispute/operations.test.ts > parseOnChainDispute > handles all dispute statuses # time=4.27ms
ok 552 - src/dispute/operations.test.ts > parseOnChainDisputeVote > parses raw vote data correctly # time=0.65ms
ok 553 - src/dispute/operations.test.ts > parseOnChainDisputeVote > parses rejected vote # time=0.60ms
ok 554 - src/dispute/operations.test.ts > disputeStatusToString > converts all statuses # time=0.10ms
ok 555 - src/dispute/operations.test.ts > disputeStatusToString > returns Unknown for invalid status # time=0.37ms
ok 556 - src/dispute/operations.test.ts > deriveDisputePda > derives deterministic PDA # time=1.29ms
ok 557 - src/dispute/operations.test.ts > deriveDisputePda > throws on invalid length # time=0.40ms
ok 558 - src/dispute/operations.test.ts > deriveDisputePda > findDisputePda returns same address # time=0.34ms
ok 559 - src/dispute/operations.test.ts > deriveVotePda > derives deterministic PDA # time=1.26ms
ok 560 - src/dispute/operations.test.ts > deriveVotePda > findVotePda returns same address # time=1.39ms
ok 561 - src/dispute/operations.test.ts > DisputeNotFoundError > has correct properties # time=1.30ms
ok 562 - src/dispute/operations.test.ts > DisputeVoteError > has correct properties # time=0.49ms
ok 563 - src/dispute/operations.test.ts > DisputeResolutionError > has correct properties # time=2.55ms
ok 564 - src/dispute/operations.test.ts > DisputeSlashError > has correct properties # time=0.77ms
ok 565 - src/dispute/operations.test.ts > DisputeOperations > fetchDispute > returns parsed dispute when found # time=2.98ms
ok 566 - src/dispute/operations.test.ts > DisputeOperations > fetchDispute > enriches dispute with task rewardMint # time=5.86ms
ok 567 - src/dispute/operations.test.ts > DisputeOperations > fetchDispute > returns null when not found # time=2.36ms
ok 568 - src/dispute/operations.test.ts > DisputeOperations > fetchDisputeByIds > returns dispute and PDA when found # time=5.86ms
ok 569 - src/dispute/operations.test.ts > DisputeOperations > fetchDisputeByIds > returns null when not found # time=15.69ms
ok 570 - src/dispute/operations.test.ts > DisputeOperations > fetchAllDisputes > returns all disputes # time=3.01ms
ok 571 - src/dispute/operations.test.ts > DisputeOperations > fetchActiveDisputes > uses memcmp filter # time=3.56ms
ok 572 - src/dispute/operations.test.ts > DisputeOperations > fetchActiveDisputes > falls back to full scan on memcmp failure # time=2.54ms
ok 573 - src/dispute/operations.test.ts > DisputeOperations > fetchDisputesForTask > uses memcmp filter on task field # time=4.58ms
ok 574 - src/dispute/operations.test.ts > DisputeOperations > fetchVote > returns parsed vote when found # time=2.12ms
ok 575 - src/dispute/operations.test.ts > DisputeOperations > fetchVote > returns null when not found # time=1.19ms
ok 576 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > initiates dispute as worker # time=2.46ms
ok 577 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > omits taskSubmission when the derived submission account does not exist # time=2.96ms
ok 578 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > passes taskSubmission when the derived submission account exists # time=6.60ms
ok 579 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > initiates dispute as creator with defendant workers # time=3.07ms
ok 580 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > retries with the legacy devnet dispute layout when protocol_config appears uninitialized # time=3.04ms
ok 581 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > maps InsufficientEvidence error # time=64.95ms
ok 582 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute > maps EvidenceTooLong error # time=8.32ms
ok 583 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > casts approval vote # time=6.59ms
ok 584 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > casts rejection vote # time=3.81ms
ok 585 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > maps NotArbiter error # time=1.56ms
ok 586 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > maps VotingEnded error # time=6.96ms
ok 587 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > maps AlreadyVoted error # time=6.65ms
ok 588 - src/dispute/operations.test.ts > DisputeOperations > voteOnDispute > maps DisputeNotActive error # time=1.83ms
ok 589 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > resolves with refund (no worker accounts) # time=13.98ms
ok 590 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > resolves with worker accounts and arbiter remaining_accounts # time=9.46ms
ok 591 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > resolves with extra workers for collaborative tasks # time=2.27ms
ok 592 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > appends accepted-bid settlement suffix after arbiter and worker pairs # time=3.05ms
ok 593 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > maps VotingNotEnded error # time=4.10ms
ok 594 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > maps InsufficientVotes error # time=3.50ms
ok 595 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > maps UnauthorizedResolver error # time=1.51ms
ok 596 - src/dispute/operations.test.ts > DisputeOperations > resolveDispute > maps DisputeAlreadyResolved error # time=1.38ms
ok 597 - src/dispute/operations.test.ts > DisputeOperations > cancelDispute > cancels dispute successfully # time=1.88ms
ok 598 - src/dispute/operations.test.ts > DisputeOperations > cancelDispute > maps DisputeNotActive error # time=1.66ms
ok 599 - src/dispute/operations.test.ts > DisputeOperations > cancelDispute > maps UnauthorizedResolver error # time=6.65ms
ok 600 - src/dispute/operations.test.ts > DisputeOperations > expireDispute > expires dispute with remaining_accounts # time=1.95ms
ok 601 - src/dispute/operations.test.ts > DisputeOperations > expireDispute > appends accepted-bid settlement suffix for expiring bid-exclusive disputes # time=6.84ms
ok 602 - src/dispute/operations.test.ts > DisputeOperations > expireDispute > maps DisputeNotExpired error # time=1.72ms
ok 603 - src/dispute/operations.test.ts > DisputeOperations > applySlash > applies slash with treasury fetch # time=3.89ms
ok 604 - src/dispute/operations.test.ts > DisputeOperations > applySlash > wires token slash accounts for token-denominated task # time=2.97ms
ok 605 - src/dispute/operations.test.ts > DisputeOperations > applySlash > caches treasury across calls # time=5.37ms
ok 606 - src/dispute/operations.test.ts > DisputeOperations > applySlash > maps SlashAlreadyApplied error # time=1.60ms
ok 607 - src/dispute/operations.test.ts > DisputeOperations > applySlash > maps DisputeNotResolved error # time=1.46ms
ok 608 - src/dispute/operations.test.ts > DisputeOperations > buildRemainingAccounts (integration) > handles arbiter-only remaining accounts # time=1.96ms
ok 609 - src/dispute/operations.test.ts > DisputeOperations > buildRemainingAccounts (integration) > handles arbiter + worker remaining accounts in correct order # time=2.19ms
ok 610 - src/dispute/operations.test.ts > DisputeOperations > buildRemainingAccounts (integration) > handles accepted-bid settlement suffix after worker pairs # time=2.73ms
ok 611 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute input validation (\#963) > rejects disputeId with wrong length # time=0.85ms
ok 612 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute input validation (\#963) > rejects all-zero evidenceHash # time=0.86ms
ok 613 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute input validation (\#963) > rejects empty evidence string # time=1.04ms
ok 614 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute input validation (\#963) > rejects evidence exceeding 256 characters # time=1.02ms
ok 615 - src/dispute/operations.test.ts > DisputeOperations > initiateDispute input validation (\#963) > rejects invalid resolution type # time=1.06ms
ok 616 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeInitiated > registers with correct camelCase event name # time=2.15ms
ok 617 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeInitiated > parses raw events and forwards to callback # time=1.13ms
ok 618 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeInitiated > filters by disputeId when provided # time=0.29ms
ok 619 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeInitiated > passes all events when no filter # time=0.28ms
ok 620 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeInitiated > unsubscribe removes listener # time=0.33ms
ok 621 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeVoteCast > registers with correct camelCase event name # time=0.25ms
ok 622 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeVoteCast > parses raw events and forwards to callback # time=0.25ms
ok 623 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeVoteCast > filters by disputeId when provided # time=0.10ms
ok 624 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeResolved > registers with correct camelCase event name # time=0.44ms
ok 625 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeResolved > parses raw events and forwards to callback # time=0.20ms
ok 626 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeResolved > filters by disputeId when provided # time=0.13ms
ok 627 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeExpired > registers with correct camelCase event name # time=0.11ms
ok 628 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeExpired > parses raw events and forwards to callback # time=0.19ms
ok 629 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeExpired > filters by disputeId when provided # time=0.08ms
ok 630 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeCancelled > registers with correct camelCase event name # time=0.10ms
ok 631 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToDisputeCancelled > parses raw events and forwards to callback # time=0.28ms
ok 632 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToArbiterVotesCleanedUp > registers with correct camelCase event name # time=0.10ms
ok 633 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToArbiterVotesCleanedUp > parses raw events and forwards to callback # time=0.11ms
ok 634 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToAllDisputeEvents > routes events to correct callbacks # time=0.20ms
ok 635 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToAllDisputeEvents > only subscribes to provided callbacks # time=0.09ms
ok 636 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToAllDisputeEvents > unsubscribe removes all listeners # time=0.09ms
ok 637 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToAllDisputeEvents > applies disputeId filter to all subscriptions # time=0.19ms
ok 638 - src/events/dispute.test.ts > Dispute Event Subscriptions > subscribeToAllDisputeEvents > empty callbacks object creates no subscriptions # time=0.07ms
ok 639 - src/events/idl-drift-check.test.ts > idl drift checker > skips mismatched family checks for override fields # time=1.58ms
ok 640 - src/events/idl-drift-check.test.ts > idl drift checker > passes when runtime contract matches fixture IDL schema # time=0.21ms
ok 641 - src/events/idl-drift-check.test.ts > idl drift checker > detects missing event in IDL # time=0.24ms
ok 642 - src/events/idl-drift-check.test.ts > idl drift checker > detects field mismatch # time=0.24ms
ok 643 - src/events/idl-drift-check.test.ts > idl drift checker > detects field-family mismatch # time=0.25ms
ok 644 - src/events/idl-drift-check.test.ts > idl drift checker > detects runtime contract missing event from IDL # time=0.18ms
ok 645 - src/events/idl-drift-check.test.ts > idl drift checker > reports deterministic local path and first mismatch line # time=0.25ms
ok 646 - src/events/monitor.test.ts > EventMonitor > constructor > should throw when program is missing # time=2.33ms
ok 647 - src/events/monitor.test.ts > EventMonitor > constructor > should throw when program is undefined # time=0.53ms
ok 648 - src/events/monitor.test.ts > EventMonitor > constructor > should create instance with valid config # time=0.39ms
ok 649 - src/events/monitor.test.ts > EventMonitor > constructor > should accept optional logger # time=0.83ms
ok 650 - src/events/monitor.test.ts > EventMonitor > initial state > should not be running before start() # time=0.20ms
ok 651 - src/events/monitor.test.ts > EventMonitor > initial state > should have zero metrics # time=0.28ms
ok 652 - src/events/monitor.test.ts > EventMonitor > initial state > should have zero subscriptions # time=0.18ms
ok 653 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register task event listeners immediately # time=0.74ms
ok 654 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register dependentTaskCreated task callback listener # time=0.64ms
ok 655 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register dispute event listeners immediately # time=0.29ms
ok 656 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register additional dispute callback listeners # time=0.30ms
ok 657 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register protocol event listeners immediately # time=0.28ms
ok 658 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register additional protocol callback listeners # time=0.51ms
ok 659 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register agent event listeners immediately # time=0.25ms
ok 660 - src/events/monitor.test.ts > EventMonitor > subscriptions > should register missing-agent callback listeners # time=0.18ms
ok 661 - src/events/monitor.test.ts > EventMonitor > subscriptions > should accumulate subscriptions from multiple subscribe calls # time=0.19ms
ok 662 - src/events/monitor.test.ts > EventMonitor > subscriptions > should not require start() for subscriptions to work # time=8.93ms
ok 663 - src/events/monitor.test.ts > EventMonitor > lifecycle > start() sets isRunning and records startedAt # time=0.29ms
ok 664 - src/events/monitor.test.ts > EventMonitor > lifecycle > start() is idempotent # time=0.13ms
ok 665 - src/events/monitor.test.ts > EventMonitor > lifecycle > stop() unsubscribes all and resets state # time=3.92ms
ok 666 - src/events/monitor.test.ts > EventMonitor > lifecycle > stop() calls removeEventListener on all handles # time=0.25ms
ok 667 - src/events/monitor.test.ts > EventMonitor > lifecycle > stop() is idempotent # time=0.12ms
ok 668 - src/events/monitor.test.ts > EventMonitor > lifecycle > stop() when never started is a no-op # time=0.11ms
ok 669 - src/events/monitor.test.ts > EventMonitor > metrics > should count events after they fire # time=0.16ms
ok 670 - src/events/monitor.test.ts > EventMonitor > metrics > should track per-event-name counts separately # time=0.22ms
ok 671 - src/events/monitor.test.ts > EventMonitor > metrics > should track events across different subscription types # time=0.23ms
ok 672 - src/events/monitor.test.ts > EventMonitor > metrics > should track new callback event counts # time=0.27ms
ok 673 - src/events/monitor.test.ts > EventMonitor > metrics > should compute uptimeMs correctly # time=0.13ms
ok 674 - src/events/monitor.test.ts > EventMonitor > metrics > should return 0 uptimeMs when not started # time=0.09ms
ok 675 - src/events/monitor.test.ts > EventMonitor > metrics > should return a copy of eventCounts, not the internal object # time=0.10ms
ok 676 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should forward parsed events to user callback after counting # time=0.41ms
ok 677 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should increment metrics before forwarding to user callback # time=0.13ms
ok 678 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap dispute event callbacks for metrics # time=0.12ms
ok 679 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap protocol event callbacks for metrics # time=0.12ms
ok 680 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap protocol event callbacks for newly added protocol events # time=0.13ms
ok 681 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap agent event callbacks for metrics # time=0.13ms
ok 682 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap new agent lifecycle callbacks for metrics # time=0.12ms
ok 683 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap new dispute callbacks for metrics # time=0.13ms
ok 684 - src/events/monitor.test.ts > EventMonitor > callback wrapping > should wrap dependentTaskCreated for metrics # time=5.03ms
ok 685 - src/events/parse.test.ts > Event Parse Functions > parseTaskCreatedEvent > should convert all fields correctly # time=1.23ms
ok 686 - src/events/parse.test.ts > Event Parse Functions > parseTaskCreatedEvent > should handle Uint8Array taskId input # time=0.12ms
ok 687 - src/events/parse.test.ts > Event Parse Functions > parseTaskClaimedEvent > should preserve u8 fields as numbers # time=0.12ms
ok 688 - src/events/parse.test.ts > Event Parse Functions > parseTaskCompletedEvent > should convert proofHash and rewardPaid # time=0.16ms
ok 689 - src/events/parse.test.ts > Event Parse Functions > parseTaskCancelledEvent > should convert refundAmount to bigint # time=0.09ms
ok 690 - src/events/parse.test.ts > Event Parse Functions > parseDependentTaskCreatedEvent > should convert task and timestamp fields correctly # time=1.16ms
ok 691 - src/events/parse.test.ts > Event Parse Functions > parseDisputeInitiatedEvent > should convert both disputeId and taskId to Uint8Array # time=0.37ms
ok 692 - src/events/parse.test.ts > Event Parse Functions > parseDisputeVoteCastEvent > should convert votesFor/votesAgainst to bigint and preserve boolean # time=0.15ms
ok 693 - src/events/parse.test.ts > Event Parse Functions > parseDisputeResolvedEvent > should convert votesFor/votesAgainst to bigint # time=0.39ms
ok 694 - src/events/parse.test.ts > Event Parse Functions > parseDisputeExpiredEvent > should convert refundAmount to bigint # time=0.12ms
ok 695 - src/events/parse.test.ts > Event Parse Functions > parseDisputeCancelledEvent > should parse raw dispute cancellation event # time=0.22ms
ok 696 - src/events/parse.test.ts > Event Parse Functions > parseArbiterVotesCleanedUpEvent > should parse arbiter cleanup count # time=0.06ms
ok 697 - src/events/parse.test.ts > Event Parse Functions > parseStateUpdatedEvent > should convert stateKey to Uint8Array and version to bigint # time=0.15ms
ok 698 - src/events/parse.test.ts > Event Parse Functions > parseProtocolInitializedEvent > should preserve threshold and feeBps as numbers # time=0.06ms
ok 699 - src/events/parse.test.ts > Event Parse Functions > parseRewardDistributedEvent > should convert amount and protocolFee to bigint # time=0.06ms
ok 700 - src/events/parse.test.ts > Event Parse Functions > parseRateLimitHitEvent > should convert all fields correctly # time=0.10ms
ok 701 - src/events/parse.test.ts > Event Parse Functions > parseMigrationCompletedEvent > should preserve version numbers # time=0.05ms
ok 702 - src/events/parse.test.ts > Event Parse Functions > parseProtocolVersionUpdatedEvent > should preserve all version fields # time=0.05ms
ok 703 - src/events/parse.test.ts > Event Parse Functions > parseRateLimitsUpdatedEvent > should convert cooldowns and stake field # time=0.09ms
ok 704 - src/events/parse.test.ts > Event Parse Functions > parseProtocolFeeUpdatedEvent > should normalize protocol fee deltas # time=0.07ms
ok 705 - src/events/parse.test.ts > Event Parse Functions > parseReputationChangedEvent > should convert agent and reputation values # time=0.10ms
ok 706 - src/events/parse.test.ts > Event Parse Functions > parseBondDepositedEvent > should parse and normalize deposit totals # time=0.07ms
ok 707 - src/events/parse.test.ts > Event Parse Functions > parseBondLockedEvent > should parse locked commitment payload # time=0.14ms
ok 708 - src/events/parse.test.ts > Event Parse Functions > parseBondReleasedEvent > should parse released commitment payload # time=0.07ms
ok 709 - src/events/parse.test.ts > Event Parse Functions > parseBondSlashedEvent > should parse slash payload including reason # time=0.06ms
ok 710 - src/events/parse.test.ts > Event Parse Functions > parseSpeculativeCommitmentCreatedEvent > should parse commitment hash and expiry # time=0.11ms
ok 711 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToStateUpdated > registers with correct camelCase event name # time=2.03ms
ok 712 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToStateUpdated > parses raw events and forwards to callback # time=0.58ms
ok 713 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToStateUpdated > unsubscribe removes listener # time=0.24ms
ok 714 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolInitialized > registers with correct camelCase event name # time=0.32ms
ok 715 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolInitialized > parses raw events and forwards to callback # time=0.29ms
ok 716 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRewardDistributed > registers with correct camelCase event name # time=0.30ms
ok 717 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRewardDistributed > parses raw events and forwards to callback # time=0.20ms
ok 718 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRewardDistributed > filters by taskId when provided # time=0.12ms
ok 719 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRewardDistributed > passes all events when no filter # time=0.33ms
ok 720 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitHit > registers with correct camelCase event name # time=0.20ms
ok 721 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitHit > parses raw events and forwards to callback # time=0.27ms
ok 722 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitHit > filters by agentId when provided # time=0.10ms
ok 723 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitHit > passes all events when no filter # time=0.07ms
ok 724 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToMigrationCompleted > registers with correct camelCase event name # time=0.10ms
ok 725 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToMigrationCompleted > parses raw events and forwards to callback # time=0.17ms
ok 726 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolVersionUpdated > registers with correct camelCase event name # time=0.09ms
ok 727 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolVersionUpdated > parses raw events and forwards to callback # time=0.12ms
ok 728 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitsUpdated > registers with correct camelCase event name # time=0.08ms
ok 729 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToRateLimitsUpdated > parses raw events and forwards to callback # time=0.14ms
ok 730 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolFeeUpdated > registers with correct camelCase event name # time=0.17ms
ok 731 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToProtocolFeeUpdated > parses raw events and forwards to callback # time=0.11ms
ok 732 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToReputationChanged > registers with correct camelCase event name # time=0.30ms
ok 733 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToReputationChanged > parses raw events and forwards to callback # time=0.18ms
ok 734 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondDeposited > registers with correct camelCase event name # time=0.18ms
ok 735 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondDeposited > parses raw events and forwards to callback # time=0.13ms
ok 736 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondLocked > registers with correct camelCase event name # time=0.08ms
ok 737 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondLocked > parses raw events and forwards to callback # time=0.11ms
ok 738 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondReleased > registers with correct camelCase event name # time=0.08ms
ok 739 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondReleased > parses raw events and forwards to callback # time=0.11ms
ok 740 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondSlashed > registers with correct camelCase event name # time=0.07ms
ok 741 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToBondSlashed > parses raw events and forwards to callback # time=0.11ms
ok 742 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToSpeculativeCommitmentCreated > registers with correct camelCase event name # time=0.08ms
ok 743 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToSpeculativeCommitmentCreated > parses raw events and forwards to callback # time=0.14ms
ok 744 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToAllProtocolEvents > routes events to correct callbacks # time=0.39ms
ok 745 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToAllProtocolEvents > only subscribes to provided callbacks # time=0.12ms
ok 746 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToAllProtocolEvents > unsubscribe removes all listeners # time=0.16ms
ok 747 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToAllProtocolEvents > applies filters to filterable events # time=0.16ms
ok 748 - src/events/protocol.test.ts > Protocol Event Subscriptions > subscribeToAllProtocolEvents > empty callbacks object creates no subscriptions # time=0.13ms
ok 749 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCreated > registers with correct camelCase event name # time=2.18ms
ok 750 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCreated > parses raw events and forwards to callback # time=0.67ms
ok 751 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCreated > filters by taskId when provided # time=0.25ms
ok 752 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCreated > passes all events when no filter # time=0.24ms
ok 753 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCreated > unsubscribe removes listener # time=0.33ms
ok 754 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskClaimed > registers with correct camelCase event name # time=0.20ms
ok 755 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskClaimed > parses raw events and forwards to callback # time=0.22ms
ok 756 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskClaimed > filters by taskId when provided # time=0.09ms
ok 757 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCompleted > registers with correct camelCase event name # time=0.43ms
ok 758 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCompleted > parses raw events and forwards to callback # time=0.21ms
ok 759 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCompleted > filters by taskId when provided # time=0.16ms
ok 760 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCancelled > registers with correct camelCase event name # time=0.11ms
ok 761 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCancelled > parses raw events and forwards to callback # time=0.18ms
ok 762 - src/events/task.test.ts > Task Event Subscriptions > subscribeToTaskCancelled > filters by taskId when provided # time=0.07ms
ok 763 - src/events/task.test.ts > Task Event Subscriptions > subscribeToDependentTaskCreated > registers with correct camelCase event name # time=0.10ms
ok 764 - src/events/task.test.ts > Task Event Subscriptions > subscribeToDependentTaskCreated > parses raw events and forwards to callback # time=0.15ms
ok 765 - src/events/task.test.ts > Task Event Subscriptions > subscribeToAllTaskEvents > routes events to correct callbacks # time=0.18ms
ok 766 - src/events/task.test.ts > Task Event Subscriptions > subscribeToAllTaskEvents > only subscribes to provided callbacks # time=0.09ms
ok 767 - src/events/task.test.ts > Task Event Subscriptions > subscribeToAllTaskEvents > unsubscribe removes all listeners # time=0.09ms
ok 768 - src/events/task.test.ts > Task Event Subscriptions > subscribeToAllTaskEvents > applies taskId filter to all subscriptions # time=0.13ms
ok 769 - src/events/task.test.ts > Task Event Subscriptions > subscribeToAllTaskEvents > empty callbacks object creates no subscriptions # time=0.06ms
ok 770 - src/events/types.test.ts > Event Type Enums > TaskType > should have correct values # time=1.98ms
ok 771 - src/events/types.test.ts > Event Type Enums > ResolutionType > should have correct values # time=0.12ms
ok 772 - src/events/types.test.ts > Event Type Enums > RateLimitActionType > should have correct values # time=0.11ms
ok 773 - src/events/types.test.ts > Event Type Enums > RateLimitType > should have correct values # time=0.08ms
ok 774 - src/cli/agenc.test.ts > agenc launcher CLI > launches the general shell by default # time=3.22ms
ok 775 - src/cli/agenc.test.ts > agenc launcher CLI > passes shell flags through to the runtime shell command when no subcommand is provided # time=0.48ms
ok 776 - src/cli/agenc.test.ts > agenc launcher CLI > forwards explicit agenc shell subcommands to agenc-runtime # time=0.56ms
ok 777 - src/cli/agenc.test.ts > agenc launcher CLI > routes agenc ui to the dashboard launcher with no-open support # time=0.32ms
ok 778 - src/cli/agenc.test.ts > agenc launcher CLI > forwards explicit runtime subcommands to agenc-runtime # time=0.29ms
ok 779 - src/cli/agenc.test.ts > agenc launcher CLI > shows launcher help without touching the daemon path # time=0.44ms
ok 780 - src/cli/agenc.test.ts > agenc launcher CLI > rejects unexpected console positional arguments # time=1.09ms
ok 781 - src/cli/agenc.test.ts > agenc launcher CLI > rejects unexpected agenc ui positional arguments # time=0.44ms
ok 782 - src/cli/config-contract.test.ts > cli config contract > resolves config path precedence as explicit > AGENC_CONFIG > AGENC_RUNTIME_CONFIG > canonical # time=1.77ms
ok 783 - src/cli/config-contract.test.ts > cli config contract > parses canonical gateway config into the CLI contract view # time=2.01ms
ok 784 - src/cli/config-contract.test.ts > cli config contract > rejects legacy flat config when AGENC_CONFIG points at it # time=1.11ms
ok 785 - src/cli/config-contract.test.ts > cli config contract > accepts legacy flat config when selected through legacy compatibility input # time=0.89ms
ok 786 - src/cli/connectors.test.ts > connector CLI lifecycle > adds telegram from an environment token and stages config when no daemon is running # time=9.16ms
ok 787 - src/cli/connectors.test.ts > connector CLI lifecycle > restarts a matching daemon after add when restart stays enabled # time=3.17ms
ok 788 - src/cli/connectors.test.ts > connector CLI lifecycle > refuses auto-restart when pid-path points at a daemon for a different config # time=2.60ms
ok 789 - src/cli/connectors.test.ts > connector CLI lifecycle > lists daemon-reported connector statuses when available # time=2.71ms
ok 790 - src/cli/daemon.test.ts > daemon: runStartCommand > waits for a daemon.ready signal before reporting daemon startup success # time=4.45ms
ok 791 - src/cli/daemon.test.ts > daemon: runStartCommand > surfaces daemon startup_error messages instead of timing out on the PID file poll # time=0.76ms
ok 792 - src/cli/daemon.test.ts > daemon: runStartCommand > passes --yolo through to the daemon child process # time=0.58ms
ok 793 - src/cli/daemon.test.ts > daemon: process identity parsing > reads spaced config and pid paths from /proc argv # time=0.35ms
ok 794 - src/cli/daemon.test.ts > daemon: process identity parsing > falls back to shell-like parsing when /proc argv is unavailable # time=0.31ms
ok 795 - src/cli/daemon.test.ts > daemon: runServiceInstallCommand > includes --yolo in generated systemd units when requested # time=0.84ms
ok 796 - src/cli/daemon.test.ts > daemon: runServiceInstallCommand > uses AGENC_DAEMON_ENTRY when generating service templates # time=0.16ms
ok 797 - src/cli/foreground-log-tee.test.ts > foreground-log-tee > tees stdout and stderr into the configured log file # time=5.55ms
ok 798 - src/cli/foreground-log-tee.test.ts > foreground-log-tee > warns and returns null when the log file cannot be opened # time=0.97ms
ok 799 - src/cli/health.test.ts > health cli commands > health: RPC reachable (mocked) returns exit code 0 when all checks pass # time=7.52ms
ok 800 - src/cli/health.test.ts > health cli commands > health: RPC unreachable (mocked) returns exit code 2 # time=1.39ms
ok 801 - src/cli/health.test.ts > health cli commands > health: sqlite store directory missing yields fail with mkdir remediation # time=1.35ms
ok 802 - src/cli/health.test.ts > health cli commands > health: deep mode adds rpc latency and store integrity checks # time=0.89ms
ok 803 - src/cli/health.test.ts > health cli commands > health prefers the configured keypair path over a missing environment override # time=1.18ms
ok 804 - src/cli/health.test.ts > health cli commands > doctor: warnings only returns exit code 1 # time=0.78ms
ok 805 - src/cli/health.test.ts > health cli commands > doctor: failures return exit code 2 # time=0.75ms
ok 806 - src/cli/health.test.ts > health cli commands > doctor: --fix attempts to create sqlite store directory when missing # time=1.78ms
ok 807 - src/cli/index.lazy-routes.test.ts > runCli lazy route loading > does not load any route module for root help # time=1.59ms
ok 808 - src/cli/index.lazy-routes.test.ts > runCli lazy route loading > loads only the matched route family # time=0.44ms
ok 809 - src/cli/index.test.ts > runtime root CLI > includes init in root help output # time=4.08ms
ok 810 - src/cli/index.test.ts > runtime root CLI > routes shell flags through the root CLI command surface # time=2322.86ms
ok 811 - src/cli/index.test.ts > runtime root CLI > routes coding grep aliases through one-shot shell execution # time=13.74ms
ok 812 - src/cli/index.test.ts > runtime root CLI > routes git aliases through one-shot shell execution # time=1.17ms
ok 813 - src/cli/index.test.ts > runtime root CLI > routes plan workflow commands through one-shot shell execution # time=2.52ms
ok 814 - src/cli/index.test.ts > runtime root CLI > routes session status through one-shot shell execution # time=0.87ms
ok 815 - src/cli/index.test.ts > runtime root CLI > routes session list through the continuity control-plane surface # time=0.84ms
ok 816 - src/cli/index.test.ts > runtime root CLI > routes session inspect through the continuity control-plane surface # time=0.60ms
ok 817 - src/cli/index.test.ts > runtime root CLI > routes session history through the continuity control-plane surface # time=0.88ms
ok 818 - src/cli/index.test.ts > runtime root CLI > routes session fork through the continuity control-plane surface # time=1.39ms
ok 819 - src/cli/index.test.ts > runtime root CLI > routes resume to the interactive shell path with coding default profile # time=0.82ms
ok 820 - src/cli/index.test.ts > runtime root CLI > routes session resume to the interactive shell path # time=0.60ms
ok 821 - src/cli/index.test.ts > runtime root CLI > routes delegated review through one-shot shell execution # time=0.49ms
ok 822 - src/cli/index.test.ts > runtime root CLI > routes agent-role listing through one-shot shell execution # time=0.57ms
ok 823 - src/cli/index.test.ts > runtime root CLI > routes agent spawning through one-shot shell execution # time=0.52ms
ok 824 - src/cli/index.test.ts > runtime root CLI > routes skills aliases through one-shot shell execution # time=3.10ms
ok 825 - src/cli/index.test.ts > runtime root CLI > keeps plugin commands on the direct CLI path instead of the shell alias # time=4.60ms
ok 826 - src/cli/index.test.ts > runtime root CLI > routes init flags through the root CLI command surface # time=26.06ms
ok 827 - src/cli/index.test.ts > runtime root CLI > routes agent registration through the root CLI command surface # time=18.23ms
ok 828 - src/cli/index.test.ts > runtime root CLI > routes connector lifecycle flags through the root CLI command surface # time=25.01ms
ok 829 - src/cli/index.test.ts > runtime root CLI > routes market task claims through the root CLI command surface # time=12.97ms
ok 830 - src/cli/index.test.ts > runtime root CLI > routes market task creation through the root CLI command surface # time=3.26ms
ok 831 - src/cli/index.test.ts > runtime root CLI > routes market task acceptance through the root CLI command surface # time=5.04ms
ok 832 - src/cli/index.test.ts > runtime root CLI > routes market task rejection through the root CLI command surface # time=0.73ms
ok 833 - src/cli/index.test.ts > runtime root CLI > routes market inspect through the root CLI command surface # time=0.67ms
ok 834 - src/cli/index.test.ts > runtime root CLI > routes market reputation summaries through the root CLI command surface with configured keypair paths # time=0.72ms
ok 835 - src/cli/index.test.ts > runtime root CLI > routes market governance votes through the root CLI command surface # time=0.80ms
ok 836 - src/cli/index.test.ts > runtime root CLI > routes market tui through the root CLI command surface # time=0.60ms
ok 837 - src/cli/index.test.ts > runtime root CLI > routes onboard through the interactive TUI for tty sessions # time=1.07ms
ok 838 - src/cli/index.test.ts > runtime root CLI > keeps onboard on the structured path for json output # time=0.53ms
ok 839 - src/cli/index.test.ts > runtime root CLI > treats onboard --help as help text instead of entering onboarding flows # time=0.59ms
ok 840 - src/cli/init.test.ts > init CLI command > skips locally when AGENC.md already exists and force is not set # time=4.60ms
ok 841 - src/cli/init.test.ts > init CLI command > starts the daemon when needed and reports the model-backed result # time=4.73ms
ok 842 - src/cli/init.test.ts > init CLI command > returns an error when the target path does not exist # time=0.74ms
ok 843 - src/cli/init.test.ts > init CLI command > returns an error when the target path is not a directory # time=1.32ms
ok 844 - src/cli/init.test.ts > init CLI command > surfaces daemon start failures before init.run is sent # time=1.10ms
ok 845 - src/cli/init.test.ts > init CLI command > surfaces malformed daemon payloads # time=0.63ms
ok 846 - src/cli/init.test.ts > init CLI command > rejects daemon success when the generated guide is invalid # time=1.09ms
ok 847 - src/cli/jobs.test.ts > jobs CLI commands > runJobsListCommand > returns all jobs # time=5.67ms
ok 848 - src/cli/jobs.test.ts > jobs CLI commands > runJobsListCommand > returns empty list when no jobs # time=0.22ms
ok 849 - src/cli/jobs.test.ts > jobs CLI commands > runJobsRunCommand > runs a job successfully # time=0.52ms
ok 850 - src/cli/jobs.test.ts > jobs CLI commands > runJobsRunCommand > returns error for non-existent job # time=0.18ms
ok 851 - src/cli/jobs.test.ts > jobs CLI commands > runJobsEnableCommand > enables a disabled job # time=0.25ms
ok 852 - src/cli/jobs.test.ts > jobs CLI commands > runJobsEnableCommand > returns error for non-existent job # time=0.12ms
ok 853 - src/cli/jobs.test.ts > jobs CLI commands > runJobsDisableCommand > disables an enabled job # time=0.21ms
ok 854 - src/cli/jobs.test.ts > jobs CLI commands > runJobsDisableCommand > returns error for non-existent job # time=0.20ms
ok 855 - src/cli/logs.test.ts > logs: runLogsCommand > reports error when daemon is not running (no PID file) # time=4.38ms
ok 856 - src/cli/logs.test.ts > logs: runLogsCommand > reports error when PID file exists but process is dead # time=12.95ms
ok 857 - src/cli/logs.test.ts > logs: runLogsCommand > outputs log viewing instructions when daemon is running # time=7.33ms
ok 858 - src/cli/logs.test.ts > logs: runLogsCommand > includes session filter when sessionId is provided # time=12.24ms
ok 859 - src/cli/logs.test.ts > logs: runLogsCommand > includes --lines in journalctl hint when provided # time=16.07ms
ok 860 - src/cli/marketplace-cli.skill-detail.test.ts > runMarketSkillDetailCommand > returns bare skill detail when signer context is unavailable # time=2.38ms
ok 861 - src/cli/marketplace-cli.skill-detail.test.ts > runMarketSkillDetailCommand > surfaces purchase lookup failures instead of silently dropping purchased visibility # time=1.29ms
ok 862 - src/cli/marketplace-tui.test.ts > marketplace TUI > requires tty output and non-json formatting # time=0.96ms
ok 863 - src/cli/marketplace-tui.test.ts > marketplace TUI > opens and closes from the main menu # time=2.79ms
ok 864 - src/cli/onboard.test.ts > onboard cli command > onboard generates config when no existing config is present # time=137.41ms
ok 865 - src/cli/onboard.test.ts > onboard cli command > onboard skips existing config when --force is not provided # time=3.52ms
ok 866 - src/cli/onboard.test.ts > onboard cli command > onboard overwrites existing config when --force is provided # time=102.08ms
ok 867 - src/cli/onboard.test.ts > onboard cli command > imports legacy runtime config into canonical gateway config # time=111.69ms
ok 868 - src/cli/onboard.test.ts > onboard cli command > refuses to overwrite config while a matching daemon is live # time=1.21ms
ok 869 - src/cli/onboard.test.ts > onboard cli command > writes curated workspace files and uses the configured wallet path for health # time=187.28ms
ok 870 - src/cli/operator-console.test.ts > operator console launcher > prefers AGENC_WATCH_ENTRY when it points at a real file # time=0.93ms
ok 871 - src/cli/operator-console.test.ts > operator console launcher > starts the daemon when needed and launches the watch console # time=2.59ms
ok 872 - src/cli/operator-console.test.ts > operator console launcher > reuses an existing live daemon instead of starting a new one # time=0.63ms
ok 873 - src/cli/operator-console.test.ts > operator console launcher > preserves an explicitly configured watch client key # time=0.42ms
ok 874 - src/cli/operator-console.test.ts > operator console launcher > preserves an explicit remote tools override # time=0.39ms
ok 875 - src/cli/operator-console.test.ts > operator console launcher > attaches to an existing matching daemon when the pid file is missing # time=0.59ms
ok 876 - src/cli/operator-console.test.ts > operator console launcher > rejects an existing live daemon when its config path differs from the requested one # time=1.38ms
ok 877 - src/cli/operator-console.test.ts > operator console launcher > rejects when process scan finds a different-config daemon for the requested pid path # time=0.32ms
ok 878 - src/cli/operator-console.test.ts > operator console launcher > surfaces daemon start failures instead of hiding them behind the watch UI # time=0.79ms
ok 879 - src/cli/operator-console.test.ts > operator console launcher > fails when the operator console entrypoint cannot be located # time=0.31ms
ok 880 - src/cli/registry-cli.test.ts > registry-cli > search > returns results with correct schema # time=17.15ms
ok 881 - src/cli/registry-cli.test.ts > registry-cli > search > returns empty results # time=1.73ms
ok 882 - src/cli/registry-cli.test.ts > registry-cli > search > passes tags and limit to client # time=1.22ms
ok 883 - src/cli/registry-cli.test.ts > registry-cli > search > errors on network failure # time=0.52ms
ok 884 - src/cli/registry-cli.test.ts > registry-cli > search > errors when no RPC configured # time=0.54ms
ok 885 - src/cli/registry-cli.test.ts > registry-cli > registry-install > installs a skill successfully # time=0.53ms
ok 886 - src/cli/registry-cli.test.ts > registry-cli > registry-install > errors on SkillRegistryNotFoundError # time=0.48ms
ok 887 - src/cli/registry-cli.test.ts > registry-cli > registry-install > errors on SkillDownloadError # time=0.44ms
ok 888 - src/cli/registry-cli.test.ts > registry-cli > registry-install > errors on SkillVerificationError # time=0.74ms
ok 889 - src/cli/registry-cli.test.ts > registry-cli > registry-install > errors when no RPC configured # time=0.39ms
ok 890 - src/cli/registry-cli.test.ts > registry-cli > publish > publishes successfully with hash output # time=2.80ms
ok 891 - src/cli/registry-cli.test.ts > registry-cli > publish > errors when no wallet # time=0.68ms
ok 892 - src/cli/registry-cli.test.ts > registry-cli > publish > errors when file not found # time=0.41ms
ok 893 - src/cli/registry-cli.test.ts > registry-cli > publish > errors on SkillPublishError # time=2.62ms
ok 894 - src/cli/registry-cli.test.ts > registry-cli > publish > converts --price string to bigint # time=1.53ms
ok 895 - src/cli/registry-cli.test.ts > registry-cli > rate > rates successfully # time=0.82ms
ok 896 - src/cli/registry-cli.test.ts > registry-cli > rate > rejects rating 0 # time=0.45ms
ok 897 - src/cli/registry-cli.test.ts > registry-cli > rate > rejects rating 6 # time=0.38ms
ok 898 - src/cli/registry-cli.test.ts > registry-cli > rate > rejects non-integer rating # time=0.36ms
ok 899 - src/cli/registry-cli.test.ts > registry-cli > rate > errors when no wallet # time=0.34ms
ok 900 - src/cli/registry-cli.test.ts > registry-cli > rate > passes review text # time=0.51ms
ok 901 - src/cli/registry-cli.test.ts > registry-cli > verify > verified true when hashes match # time=3.28ms
ok 902 - src/cli/registry-cli.test.ts > registry-cli > verify > reports on-chain hash when no local file exists # time=0.70ms
ok 903 - src/cli/registry-cli.test.ts > registry-cli > verify > errors when skill not found # time=0.60ms
ok 904 - src/cli/registry-cli.test.ts > registry-cli > verify > uses explicit --path flag # time=2.75ms
ok 905 - src/cli/registry-cli.test.ts > registry-cli > import-openclaw > converts openclaw skill # time=41.46ms
ok 906 - src/cli/registry-cli.test.ts > registry-cli > import-openclaw > passes through agenc skill unchanged # time=3.10ms
ok 907 - src/cli/registry-cli.test.ts > registry-cli > import-openclaw > errors for nonexistent source # time=0.89ms
ok 908 - src/cli/replay.test.ts > summarizeReplayIncidentRecords determinism (\#968) > same records produce identical deterministicHash # time=1.32ms
ok 909 - src/cli/replay.test.ts > summarizeReplayIncidentRecords determinism (\#968) > records in different insertion order produce same output # time=0.62ms
ok 910 - src/cli/replay.test.ts > summarizeReplayIncidentRecords determinism (\#968) > fixture-driven regression test with pinned output # time=1.03ms
ok 911 - src/cli/replay.test.ts > summarizeReplayIncidentRecords determinism (\#968) > different filters produce different hash # time=0.39ms
ok 912 - src/cli/replay.test.ts > summarizeReplayIncidentRecords determinism (\#968) > count maps are sorted by key # time=0.25ms
ok 913 - src/cli/replay.test.ts > deriveIncidentTraceId (\#968) > is deterministic for same inputs # time=0.23ms
ok 914 - src/cli/replay.test.ts > deriveIncidentTraceId (\#968) > differs for different inputs # time=0.14ms
ok 915 - src/cli/replay.test.ts > deriveIncidentTraceId (\#968) > handles missing fields consistently # time=0.12ms
ok 916 - src/cli/replay.test.ts > deriveIncidentTraceId (\#968) > treats missing and undefined fields identically # time=0.34ms
ok 917 - src/cli/security.test.ts > aggregateSecurityReport > returns secure when all checks pass # time=2.45ms
ok 918 - src/cli/security.test.ts > aggregateSecurityReport > returns vulnerable on critical failure # time=0.31ms
ok 919 - src/cli/security.test.ts > aggregateSecurityReport > returns at_risk on high failure without critical # time=0.15ms
ok 920 - src/cli/security.test.ts > aggregateSecurityReport > returns at_risk on medium failure without critical/high # time=0.18ms
ok 921 - src/cli/security.test.ts > aggregateSecurityReport > includes timestamp in ISO format # time=0.15ms
ok 922 - src/cli/security.test.ts > built-in checks > model.unsafe_tool_execution fails when policy is disabled # time=0.12ms
ok 923 - src/cli/security.test.ts > built-in checks > model.unsafe_tool_execution passes when policy is enabled # time=0.37ms
ok 924 - src/cli/security.test.ts > built-in checks > execution.max_risk_score fails without maxRiskScore # time=0.70ms
ok 925 - src/cli/security.test.ts > built-in checks > execution.max_risk_score passes with maxRiskScore # time=0.34ms
ok 926 - src/cli/security.test.ts > built-in checks > webhook.https_only passes when no webhook configured # time=0.15ms
ok 927 - src/cli/security.test.ts > built-in checks > webhook.https_only fails for http webhook URL # time=0.12ms
ok 928 - src/cli/security.test.ts > built-in checks > webhook.https_only passes for https webhook URL # time=0.05ms
ok 929 - src/cli/security.test.ts > built-in checks > network.rpc_not_localhost_in_prod passes when no RPC configured # time=0.05ms
ok 930 - src/cli/security.test.ts > built-in checks > network.rpc_not_localhost_in_prod passes in non-production # time=0.04ms
ok 931 - src/cli/security.test.ts > built-in checks > network.rpc_authenticated skips without deep mode # time=0.10ms
ok 932 - src/cli/security.test.ts > built-in checks > network.rpc_authenticated runs in deep mode # time=0.09ms
ok 933 - src/cli/security.test.ts > built-in checks > network.rpc_authenticated passes with authenticated URL in deep mode # time=0.08ms
ok 934 - src/cli/security.test.ts > built-in checks > secrets.keypair_file_mode skips when file does not exist # time=0.11ms
ok 935 - src/cli/security.test.ts > runSecurityChecks > runs all checks and produces a report # time=0.14ms
ok 936 - src/cli/security.test.ts > runSecurityChecks > applies --fix for auto-fixable checks # time=0.38ms
ok 937 - src/cli/security.test.ts > runSecurityChecks > does not call fix for non-fixable checks # time=0.05ms
ok 938 - src/cli/security.test.ts > runSecurityChecks > handles empty check list # time=0.06ms
ok 939 - src/cli/sessions.test.ts > sessions: runSessionsListCommand > reports error when daemon is not running (no PID file) # time=6.40ms
ok 940 - src/cli/sessions.test.ts > sessions: runSessionsListCommand > reports error when PID file exists but process is dead # time=2.71ms
ok 941 - src/cli/sessions.test.ts > sessions: runSessionsKillCommand > reports error when daemon is not running # time=1.19ms
ok 942 - src/cli/sessions.test.ts > sessions: runSessionsKillCommand > reports error when PID file exists but process is dead # time=1.98ms
ok 943 - src/cli/shell.test.ts > shell > derives a stable resume key from workspace root and profile # time=2.19ms
ok 944 - src/cli/skills-cli.test.ts > skills-cli > list: returns discovered skills with correct fields # time=5.42ms
ok 945 - src/cli/skills-cli.test.ts > skills-cli > list: empty dir returns count 0 # time=1.77ms
ok 946 - src/cli/skills-cli.test.ts > skills-cli > list: shows disabled status when marker exists # time=4.86ms
ok 947 - src/cli/skills-cli.test.ts > skills-cli > info: returns full details for existing skill # time=1.46ms
ok 948 - src/cli/skills-cli.test.ts > skills-cli > info: error with suggestions for unknown name # time=2.45ms
ok 949 - src/cli/skills-cli.test.ts > skills-cli > validate: exit 0 for all-valid skills # time=2.49ms
ok 950 - src/cli/skills-cli.test.ts > skills-cli > validate: exit 1 when validation errors # time=4.37ms
ok 951 - src/cli/skills-cli.test.ts > skills-cli > create: scaffolds SKILL.md with valid template # time=4.46ms
ok 952 - src/cli/skills-cli.test.ts > skills-cli > create: error if file already exists # time=2.19ms
ok 953 - src/cli/skills-cli.test.ts > skills-cli > install: copies valid local SKILL.md using skill name as filename # time=6.33ms
ok 954 - src/cli/skills-cli.test.ts > skills-cli > install: error for nonexistent source path # time=2.33ms
ok 955 - src/cli/skills-cli.test.ts > skills-cli > install: error for non-SKILL.md file # time=2.04ms
ok 956 - src/cli/skills-cli.test.ts > skills-cli > install: error if dest file already exists # time=1.68ms
ok 957 - src/cli/skills-cli.test.ts > skills-cli > install: error for file with valid frontmatter but failing validation # time=1.82ms
ok 958 - src/cli/skills-cli.test.ts > skills-cli > uninstall: removes skill file # time=2.19ms
ok 959 - src/cli/skills-cli.test.ts > skills-cli > uninstall: also removes .disabled marker # time=1.58ms
ok 960 - src/cli/skills-cli.test.ts > skills-cli > uninstall: error for nonexistent skill # time=0.59ms
ok 961 - src/cli/skills-cli.test.ts > skills-cli > disable: creates .disabled marker # time=2.51ms
ok 962 - src/cli/skills-cli.test.ts > skills-cli > disable: idempotent when already disabled # time=31.50ms
ok 963 - src/cli/skills-cli.test.ts > skills-cli > enable: removes .disabled marker # time=9.44ms
ok 964 - src/cli/skills-cli.test.ts > skills-cli > enable: idempotent when already enabled # time=6.96ms
ok 965 - src/cli/skills-cli.test.ts > skills-cli > install: fetches from URL and installs # time=17.02ms
ok 966 - src/cli/ui.test.ts > agenc ui > prints the loopback dashboard URL and opens it by default # time=60.58ms
ok 967 - src/cli/ui.test.ts > agenc ui > uses loopback access for a non-loopback bind when local bypass is enabled # time=35.60ms
ok 968 - src/cli/ui.test.ts > agenc ui > fails fast when auth.secret is enabled without localBypass # time=18.34ms
ok 969 - src/cli/wizard.test.ts > wizard: generateDefaultConfig > returns a valid config with required fields # time=1.05ms
ok 970 - src/cli/wizard.test.ts > wizard: generateDefaultConfig > applies overrides # time=0.26ms
ok 971 - src/cli/wizard.test.ts > wizard: generateDefaultConfig > includes LLM config when provided as override # time=0.09ms
ok 972 - src/cli/wizard.test.ts > wizard: generateDefaultConfig > preserves optional runtime overrides in generated config # time=1.29ms
ok 973 - src/cli/wizard.test.ts > wizard: detectSolanaKeypair > returns null when keypair file does not exist at default path # time=0.14ms
ok 974 - src/cli/wizard.test.ts > wizard: runConfigInitCommand > creates config file and scaffolds workspace # time=4.87ms
ok 975 - src/cli/wizard.test.ts > wizard: runConfigInitCommand > persists managed CLI overrides into the generated gateway config # time=23.58ms
ok 976 - src/cli/wizard.test.ts > wizard: runConfigInitCommand > skips existing config without --force # time=0.81ms
ok 977 - src/cli/wizard.test.ts > wizard: runConfigInitCommand > overwrites existing config with --force # time=2.95ms
ok 978 - src/cli/wizard.test.ts > wizard: runConfigValidateCommand > accepts a valid config # time=2.02ms
ok 979 - src/cli/wizard.test.ts > wizard: runConfigValidateCommand > rejects an invalid config # time=2.57ms
ok 980 - src/cli/wizard.test.ts > wizard: runConfigValidateCommand > errors on missing config file # time=9.49ms
ok 981 - src/cli/wizard.test.ts > wizard: runConfigShowCommand > outputs the loaded config # time=13.45ms
ok 982 - src/cli/wizard.test.ts > wizard: runConfigShowCommand > errors on missing config file # time=1.10ms
ok 983 - src/eval/background-run-quality-runner.test.ts > background-run-quality runner > runs the benchmark suite and returns a valid artifact # time=151.76ms
ok 984 - src/eval/background-run-quality-runner.test.ts > background-run-quality runner > supports deterministic multi-hour soak supervision with virtual time # time=62.64ms
ok 985 - src/eval/background-run-quality.test.ts > background-run-quality artifact > builds rollups from scenario artifacts # time=2.55ms
ok 986 - src/eval/background-run-quality.test.ts > background-run-quality artifact > evaluates gates and formats failures # time=0.35ms
ok 987 - src/eval/background-run-replay.test.ts > background-run replay > reconstructs timing and verifier data from persisted events # time=1.92ms
ok 988 - src/eval/benchmark-manifest.test.ts > benchmark manifest > parses and canonicalizes scenarios deterministically # time=8.26ms
ok 989 - src/eval/benchmark-manifest.test.ts > benchmark manifest > rejects duplicate scenario ids and missing baseline references # time=0.55ms
ok 990 - src/eval/benchmark-manifest.test.ts > benchmark manifest > produces stable hashes independent of scenario ordering in input # time=0.49ms
ok 991 - src/eval/benchmark-runner.test.ts > BenchmarkRunner > produces deterministic artifact outputs from fixed manifest and seeds # time=10.57ms
ok 992 - src/eval/benchmark-runner.test.ts > BenchmarkRunner > computes scenario and aggregate deltas against baseline scorecard # time=38.85ms
ok 993 - src/eval/calibration.test.ts > eval/calibration > builds calibration bins and computes ECE/MCE # time=2.99ms
ok 994 - src/eval/calibration.test.ts > eval/calibration > computes verifier/judge agreement rate # time=0.44ms
ok 995 - src/eval/calibration.test.ts > eval/calibration > builds calibration report with stratification and confidence direction flags # time=3.68ms
ok 996 - src/eval/calibration.test.ts > eval/calibration > records calibration metrics using existing telemetry collector API # time=0.73ms
ok 997 - src/eval/chaos-suite.test.ts > runChaosSuite > covers all degraded-runtime fault scenarios and passes cleanly # time=77.44ms
ok 998 - src/eval/decomposition-search.test.ts > decomposition-search > evaluates variants deterministically over replay fixtures # time=2.83ms
ok 999 - src/eval/decomposition-search.test.ts > decomposition-search > promotes only pareto-frontier variants that satisfy quality/cost gates # time=0.61ms
ok 1000 - src/eval/delegation-benchmark.test.ts > delegation benchmark suite > is deterministic under fixed time/run configuration # time=41.41ms
ok 1001 - src/eval/delegation-benchmark.test.ts > delegation benchmark suite > covers decomposition modes and computes baseline deltas # time=5.50ms
ok 1002 - src/eval/economics-scorecard.test.ts > economics scorecard > grades negative-economics denial and reroute only on applicable scenarios # time=1.01ms
ok 1003 - src/eval/economics-scorecard.test.ts > economics scorecard > treats non-applicable economics controls as compliant rather than failing # time=0.20ms
ok 1004 - src/eval/effect-ledger-checks.test.ts > effect-ledger completeness checks > reports full completeness for a grounded filesystem effect # time=0.99ms
ok 1005 - src/eval/effect-ledger-checks.test.ts > effect-ledger completeness checks > flags missing snapshots, results, and duplicate idempotency keys # time=0.25ms
ok 1006 - src/eval/evidence-pack.test.ts > evidence-pack > builds a basic evidence pack manifest with deterministic hashes # time=9.65ms
ok 1007 - src/eval/evidence-pack.test.ts > evidence-pack > serializes to manifest + case jsonl + events jsonl # time=22.69ms
ok 1008 - src/eval/evidence-pack.test.ts > evidence-pack > supports sealed mode with dot-path redaction # time=1.27ms
ok 1009 - src/eval/evidence-pack.test.ts > evidence-pack > supports actor redaction in sealed mode # time=32.63ms
ok 1010 - src/eval/evidence-pack.test.ts > evidence-pack > produces identical evidence hashes for identical inputs # time=0.56ms
ok 1011 - src/eval/evidence-pack.test.ts > evidence-pack > handles empty events # time=0.20ms
ok 1012 - src/eval/evidence-pack.test.ts > evidence-pack > does not change evidence hashes when runtimeVersion changes # time=12.00ms
ok 1013 - src/eval/implementation-gate-suite.test.ts > implementation gate suite > covers the mandatory false-completion and wrong-artifact cutover regressions # time=121.47ms
ok 1014 - src/eval/incident-case.test.ts > incident case model > builds a deterministic case from fixture events # time=9.29ms
ok 1015 - src/eval/incident-case.test.ts > incident case model > handles empty event lists # time=0.26ms
ok 1016 - src/eval/incident-case.test.ts > incident case model > supports trace window override # time=0.87ms
ok 1017 - src/eval/incident-case.test.ts > incident case model > deduplicates actors and keeps earliest firstSeenSeq # time=1.04ms
ok 1018 - src/eval/incident-case.test.ts > incident case model > tracks dispute lifecycle transitions # time=1.09ms
ok 1019 - src/eval/incident-case.test.ts > incident case model > maps replay anomalies deterministically # time=0.53ms
ok 1020 - src/eval/incident-case.test.ts > incident case model > computes evidence hashes using stable JSON canonicalization # time=0.14ms
ok 1021 - src/eval/incident-case.test.ts > incident case model > produces deterministic case IDs for identical inputs # time=3.28ms
ok 1022 - src/eval/incident-case.test.ts > incident case model > round-trips through JSON serialization without loss # time=0.76ms
ok 1023 - src/eval/live-coding-runner.test.ts > live coding runner > executes temp-repo coding scenarios and returns a green artifact # time=193.33ms
ok 1024 - src/eval/metrics.test.ts > eval/metrics > computes pass@k and pass^k correctly # time=1.05ms
ok 1025 - src/eval/metrics.test.ts > eval/metrics > builds stratified scorecard by task type, reward tier, and verifier gate # time=0.72ms
ok 1026 - src/eval/metrics.test.ts > eval/metrics > records scorecard gauges via existing telemetry collector # time=0.45ms
ok 1027 - src/eval/metrics.test.ts > eval/metrics > serializes scorecards to json and human-readable summary # time=0.18ms
ok 1028 - src/eval/metrics.test.ts > eval/metrics > derives run records from replay results # time=0.89ms
ok 1029 - src/eval/mutation-engine.test.ts > MutationEngine > generates deterministic mutation candidates from default operators # time=9.40ms
ok 1030 - src/eval/mutation-engine.test.ts > MutationEngine > supports operator filtering and max mutations per scenario # time=0.68ms
ok 1031 - src/eval/mutation-engine.test.ts > MutationEngine > returns no mutations when trace does not match operator requirements # time=0.16ms
ok 1032 - src/eval/mutation-engine.test.ts > MutationEngine > applies workflow/tool/verifier mutations with expected perturbations # time=0.39ms
ok 1033 - src/eval/mutation-gates.test.ts > mutation regression gates > passes when deltas stay within thresholds # time=1.42ms
ok 1034 - src/eval/mutation-gates.test.ts > mutation regression gates > fails when deltas exceed thresholds and formats report # time=0.38ms
ok 1035 - src/eval/mutation-gates.test.ts > mutation regression gates > parses a valid gating policy manifest # time=0.23ms
ok 1036 - src/eval/mutation-gates.test.ts > mutation regression gates > rejects manifest schema versions other than 1 # time=0.36ms
ok 1037 - src/eval/mutation-gates.test.ts > mutation regression gates > rejects manifests with missing threshold fields # time=0.12ms
ok 1038 - src/eval/mutation-gates.test.ts > mutation regression gates > applies operator override thresholds from manifest # time=0.12ms
ok 1039 - src/eval/mutation-gates.test.ts > mutation regression gates > ignores manifest overrides for IDs not present in artifact # time=0.15ms
ok 1040 - src/eval/mutation-gates.test.ts > mutation regression gates > fails when chaos scenario fail rate exceeds threshold # time=0.15ms
ok 1041 - src/eval/mutation-runner.test.ts > MutationRunner > produces deterministic mutation artifacts from fixed manifest and seeds # time=22.26ms
ok 1042 - src/eval/mutation-runner.test.ts > MutationRunner > computes aggregate/operator/scenario regression deltas and top regressions # time=2.01ms
ok 1043 - src/eval/pipeline-gates.test.ts > pipeline quality gates > passes with default thresholds for healthy artifact # time=2.00ms
ok 1044 - src/eval/pipeline-gates.test.ts > pipeline quality gates > allows the current post-compaction context rebound # time=0.70ms
ok 1045 - src/eval/pipeline-gates.test.ts > pipeline quality gates > fails when malformed tool-turns are forwarded # time=0.19ms
ok 1046 - src/eval/pipeline-gates.test.ts > pipeline quality gates > fails delegation pass@k and pass^k regression thresholds # time=0.21ms
ok 1047 - src/eval/pipeline-gates.test.ts > pipeline quality gates > triggers fail-fast for harmful delegation runaway # time=0.13ms
ok 1048 - src/eval/pipeline-gates.test.ts > pipeline quality gates > formats violations for CI output # time=0.26ms
ok 1049 - src/eval/pipeline-gates.test.ts > pipeline quality gates > fails when chaos recovery thresholds regress # time=0.15ms
ok 1050 - src/eval/pipeline-gates.test.ts > pipeline quality gates > fails when mandatory implementation gates regress or false completion appears # time=0.11ms
ok 1051 - src/eval/pipeline-gates.test.ts > pipeline quality gates > fails when delegated-workspace mandatory gates regress or false completion appears # time=0.56ms
ok 1052 - src/eval/pipeline-quality-runner.test.ts > pipeline-quality runner > is deterministic under fixed runId/time/inputs # time=1345.44ms
ok 1053 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > builds derived context, replay, and delegation rollups # time=5.22ms
ok 1054 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > round-trips parse + serialization deterministically # time=1.33ms
ok 1055 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > migrates schema v1 artifacts by defaulting delegation and orchestration metrics # time=0.26ms
ok 1056 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > migrates schema v2 artifacts by defaulting orchestration baseline # time=0.19ms
ok 1057 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > migrates schema v4 artifacts by defaulting chaos metrics # time=0.17ms
ok 1058 - src/eval/pipeline-quality.test.ts > pipeline-quality artifact > rejects unsupported schema versions # time=1.35ms
ok 1059 - src/eval/projector.test.ts > on-chain event projection > orders events by slot, signature, and sequence deterministically # time=9.34ms
ok 1060 - src/eval/projector.test.ts > on-chain event projection > deduplicates repeated signature/name/payload tuples # time=1.02ms
ok 1061 - src/eval/projector.test.ts > on-chain event projection > captures unknown event names in telemetry and keeps processing # time=0.18ms
ok 1062 - src/eval/projector.test.ts > on-chain event projection > records transition conflicts while still emitting trajectory events # time=0.37ms
ok 1063 - src/eval/projector.test.ts > on-chain event projection > tracks dispute lifecycle transition conflicts # time=0.29ms
ok 1064 - src/eval/projector.test.ts > on-chain event projection > produces replay-compatible lifecycle traces for valid task paths # time=1.13ms
ok 1065 - src/eval/projector.test.ts > on-chain event projection > retains non-task context in source metadata # time=0.50ms
ok 1066 - src/eval/projector.test.ts > projects a full-quality fixture deterministically with full event-surface coverage # time=3.29ms
ok 1067 - src/eval/projector.test.ts > deduplicates repeated fixture snapshots while preserving deterministic ordering # time=0.94ms
ok 1068 - src/eval/projector.test.ts > Dispute replay determinism (\#960) > reproduces identical dispute state from same event sequence # time=3.73ms
ok 1069 - src/eval/projector.test.ts > Dispute replay determinism (\#960) > detects stale vote replay (vote after resolution) # time=0.42ms
ok 1070 - src/eval/projector.test.ts > Dispute replay determinism (\#960) > tracks cancelled and expired dispute states # time=0.43ms
ok 1071 - src/eval/projector.test.ts > Canonical event normalization (\#964) > produces identical projection regardless of input order # time=0.41ms
ok 1072 - src/eval/projector.test.ts > Canonical event normalization (\#964) > fills missing fields with stable defaults # time=0.08ms
ok 1073 - src/eval/projector.test.ts > Canonical event normalization (\#964) > uses provided sourceEventSequence over fallback # time=0.05ms
ok 1074 - src/eval/projector.test.ts > Canonical event normalization (\#964) > canonicalizeEvent produces sorted keys # time=0.06ms
ok 1075 - src/eval/projector.test.ts > Canonical event normalization (\#964) > canonicalizeEvent converts non-JSON-safe values # time=0.07ms
ok 1076 - src/eval/projector.test.ts > Canonical event normalization (\#964) > deriveTraceId produces same ID for same inputs # time=0.07ms
ok 1077 - src/eval/projector.test.ts > Canonical event normalization (\#964) > deriveTraceId returns base when provided # time=0.03ms
ok 1078 - src/eval/projector.test.ts > Canonical event normalization (\#964) > computeProjectionHash produces identical hash for identical events # time=0.16ms
ok 1079 - src/eval/query-dsl.test.ts > query-dsl > parses valid DSL string # time=1.46ms
ok 1080 - src/eval/query-dsl.test.ts > query-dsl > parses anomaly codes list # time=0.23ms
ok 1081 - src/eval/query-dsl.test.ts > query-dsl > parses wallet set and sorts entries # time=0.21ms
ok 1082 - src/eval/query-dsl.test.ts > query-dsl > throws validation error when missing equals # time=0.33ms
ok 1083 - src/eval/query-dsl.test.ts > query-dsl > throws validation error for invalid severity # time=0.08ms
ok 1084 - src/eval/query-dsl.test.ts > query-dsl > throws validation error for inverted slot range # time=0.07ms
ok 1085 - src/eval/query-dsl.test.ts > query-dsl > throws validation error for unknown fields # time=0.74ms
ok 1086 - src/eval/query-dsl.test.ts > query-dsl > normalizes to identical hashes regardless of token ordering # time=0.69ms
ok 1087 - src/eval/query-dsl.test.ts > query-dsl > normalizes empty DSL to stable defaults # time=0.97ms
ok 1088 - src/eval/query-dsl.test.ts > query-dsl > produces identical hashes across repeated parse+normalize calls # time=0.49ms
ok 1089 - src/eval/query-dsl.test.ts > query-dsl > applyQueryFilter filters events by taskPda # time=0.95ms
ok 1090 - src/eval/query-dsl.test.ts > query-dsl > applyAnomalyFilter filters anomalies by severity # time=0.22ms
ok 1091 - src/eval/query-dsl.test.ts > query-dsl > returns empty QueryDSL for empty input # time=0.07ms
ok 1092 - src/eval/recorder.test.ts > TrajectoryRecorder > records deterministic sequence and timestamp ordering # time=1.80ms
ok 1093 - src/eval/recorder.test.ts > TrajectoryRecorder > sanitizes non-JSON payload values # time=38.38ms
ok 1094 - src/eval/recorder.test.ts > TrajectoryRecorder > enforces max event limit # time=0.39ms
ok 1095 - src/eval/recorder.test.ts > TrajectoryRecorder > returns deep copies from createTrace/getEvents # time=0.13ms
ok 1096 - src/eval/recorder.test.ts > TrajectoryRecorder > supports disabled mode without recording side effects # time=0.97ms
ok 1097 - src/eval/replay-comparison.test.ts > ReplayComparisonService > produces a clean report for matching projected and local traces # time=11.00ms
ok 1098 - src/eval/replay-comparison.test.ts > ReplayComparisonService > returns deterministic mismatch anomalies when projected trace is perturbed # time=1.21ms
ok 1099 - src/eval/replay-comparison.test.ts > ReplayComparisonService > preserves trace identifiers in mismatch context # time=1.11ms
ok 1100 - src/eval/replay-comparison.test.ts > ReplayComparisonService > throws in strict mode and exposes machine-readable report # time=0.97ms
ok 1101 - src/eval/replay-comparison.test.ts > ReplayComparisonService > includes dispute IDs in diagnostics when matching on dispute timelines # time=0.60ms
ok 1102 - src/eval/replay-comparison.test.ts > ReplayComparisonService > remains deterministic for a quality fixture trace across repeated comparisons # time=7.24ms
ok 1103 - src/eval/replay-comparison.test.ts > ReplayComparisonService > produces stable mismatch summaries for perturbations against fixture traces # time=4.90ms
ok 1104 - src/eval/replay-comparison.test.ts > ReplayComparisonService > emits comparison alerts through configured dispatcher for mismatch paths # time=0.90ms
ok 1105 - src/eval/replay-comparison.test.ts > ReplayComparisonService > emits comparison metrics with mismatch and latency labels # time=0.89ms
ok 1106 - src/eval/replay.test.ts > TrajectoryReplayEngine > produces stable deterministic hash for identical trace + config # time=1.52ms
ok 1107 - src/eval/replay.test.ts > TrajectoryReplayEngine > reports invalid transitions in strict mode # time=0.40ms
ok 1108 - src/eval/replay.test.ts > TrajectoryReplayEngine > captures escalation, policy violations, and speculation aborts # time=0.22ms
ok 1109 - src/eval/replay.test.ts > TrajectoryReplayEngine > migrates legacy traces during replay # time=0.23ms
ok 1110 - src/eval/runner-shared.test.ts > runner-shared utilities > maps risk tiers to deterministic numeric scores # time=0.84ms
ok 1111 - src/eval/runner-shared.test.ts > runner-shared utilities > computes scorecard deltas field-by-field # time=0.28ms
ok 1112 - src/eval/runner-shared.test.ts > runner-shared utilities > normalizes reward values to strings # time=0.11ms
ok 1113 - src/eval/runner-shared.test.ts > runner-shared utilities > loads and normalizes fixture traces # time=2.83ms
ok 1114 - src/eval/safety-suite.test.ts > safety suite > blocks prompt injection, unsafe shell, and unauthorized writes # time=2.89ms
ok 1115 - src/eval/transition-validator.test.ts > transition validator > accepts valid task lifecycle progressions # time=7.97ms
ok 1116 - src/eval/transition-validator.test.ts > transition validator > flags deterministic invalid task transition graph edges # time=0.72ms
ok 1117 - src/eval/transition-validator.test.ts > transition validator > accepts valid dispute transitions and flags invalid branches # time=1.04ms
ok 1118 - src/eval/transition-validator.test.ts > transition validator > supports strict projection mode and throws on impossible transitions # time=0.54ms
ok 1119 - src/eval/transition-validator.test.ts > validateTransition > returns a deterministic violation for invalid transitions # time=0.41ms
ok 1120 - src/eval/transition-validator.test.ts > anomaly codes (\#959) > assigns TASK_DOUBLE_COMPLETE when completed task receives completion event # time=0.42ms
ok 1121 - src/eval/transition-validator.test.ts > anomaly codes (\#959) > assigns TASK_TERMINAL_TRANSITION for any edge leaving completed state # time=0.45ms
ok 1122 - src/eval/transition-validator.test.ts > anomaly codes (\#959) > assigns DISPUTE_INVALID_START for vote without initiation # time=0.18ms
ok 1123 - src/eval/transition-validator.test.ts > anomaly codes (\#959) > tracks task disputed state from disputeInitiated event # time=0.63ms
ok 1124 - src/eval/transition-validator.test.ts > on-chain transition matrices (\#966) > task transition matrix matches on-chain TaskStatus::can_transition_to # time=0.31ms
ok 1125 - src/eval/transition-validator.test.ts > on-chain transition matrices (\#966) > dispute transition matrix covers all terminal states # time=0.19ms
ok 1126 - src/eval/transition-validator.test.ts > on-chain transition matrices (\#966) > event-to-status mappings cover expected events # time=0.11ms
ok 1127 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Completed -> Open # time=0.04ms
ok 1128 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Completed -> InProgress # time=0.02ms
ok 1129 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Completed -> Cancelled # time=0.02ms
ok 1130 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Completed -> Disputed # time=0.03ms
ok 1131 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Completed -> PendingValidation # time=1.43ms
ok 1132 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Cancelled -> Open # time=0.06ms
ok 1133 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Cancelled -> InProgress # time=0.03ms
ok 1134 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Cancelled -> Completed # time=0.03ms
ok 1135 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Cancelled -> Disputed # time=0.03ms
ok 1136 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Cancelled -> PendingValidation # time=0.03ms
ok 1137 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Open -> Completed # time=0.02ms
ok 1138 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Open -> Disputed # time=0.02ms
ok 1139 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Open -> PendingValidation # time=0.03ms
ok 1140 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task PendingValidation -> Open # time=0.02ms
ok 1141 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task PendingValidation -> InProgress # time=0.02ms
ok 1142 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task PendingValidation -> Cancelled # time=0.04ms
ok 1143 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Disputed -> Open # time=0.02ms
ok 1144 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Disputed -> InProgress # time=0.02ms
ok 1145 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects task Disputed -> PendingValidation # time=0.03ms
ok 1146 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Resolved -> Active # time=0.04ms
ok 1147 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Resolved -> Expired # time=0.02ms
ok 1148 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Resolved -> Cancelled # time=0.02ms
ok 1149 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Expired -> Active # time=0.02ms
ok 1150 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Expired -> Resolved # time=0.02ms
ok 1151 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Expired -> Cancelled # time=0.02ms
ok 1152 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Cancelled -> Active # time=0.02ms
ok 1153 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Cancelled -> Resolved # time=0.02ms
ok 1154 - src/eval/transition-validator.test.ts > negative transition corpus (\#966) > rejects dispute Cancelled -> Expired # time=0.02ms
ok 1155 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > accepts valid on-chain task lifecycle (Open -> InProgress -> Completed) # time=0.14ms
ok 1156 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > rejects impossible on-chain task transition (Completed -> InProgress) # time=0.08ms
ok 1157 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > catches on-chain violation even when replay lifecycle allows it # time=0.22ms
ok 1158 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > rejects impossible on-chain dispute transition (Resolved -> Active) # time=0.05ms
ok 1159 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > tracks independent entities separately # time=0.04ms
ok 1160 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > reset clears all tracked state # time=0.05ms
ok 1161 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > toAnomaly produces structured anomaly payload # time=0.15ms
ok 1162 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > toAnomaly includes dispute PDA context # time=0.11ms
ok 1163 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > events without on-chain mapping skip on-chain check entirely # time=0.04ms
ok 1164 - src/eval/transition-validator.test.ts > TransitionValidator class (\#966) > unmapped events pass on-chain validation when replay lifecycle is valid # time=0.04ms
ok 1165 - src/eval/types.test.ts > eval/types > parses v1 traces # time=1.55ms
ok 1166 - src/eval/types.test.ts > eval/types > migrates legacy v0 traces # time=0.71ms
ok 1167 - src/eval/types.test.ts > eval/types > rejects malformed events # time=0.36ms
ok 1168 - src/eval/types.test.ts > eval/types > canonicalizes trace event ordering by sequence number # time=0.21ms
ok 1169 - src/eval/types.test.ts > eval/types > stable-stringifies JSON with key-order independence # time=0.16ms
ok 1170 - src/governance/operations.test.ts > PDA derivation > derives deterministic proposal PDA # time=107.17ms
ok 1171 - src/governance/operations.test.ts > PDA derivation > derives different PDAs for different nonces # time=1.12ms
ok 1172 - src/governance/operations.test.ts > PDA derivation > derives deterministic governance vote PDA # time=8.87ms
ok 1173 - src/governance/operations.test.ts > PDA derivation > findGovernanceVotePda returns address only # time=10.76ms
ok 1174 - src/governance/operations.test.ts > parseOnChainProposal > parses raw proposal data # time=2.25ms
ok 1175 - src/governance/operations.test.ts > parseOnChainProposal > parses all proposal types # time=21.31ms
ok 1176 - src/governance/operations.test.ts > parseOnChainProposal > parses all proposal statuses # time=2.32ms
ok 1177 - src/governance/operations.test.ts > parseOnChainProposal > handles BN-like nonce values # time=0.63ms
ok 1178 - src/governance/operations.test.ts > parseOnChainGovernanceVote > parses raw vote data # time=11.70ms
ok 1179 - src/governance/operations.test.ts > proposalStatusToString > converts all statuses to strings # time=0.15ms
ok 1180 - src/governance/operations.test.ts > proposalStatusToString > returns Unknown for invalid status # time=0.09ms
ok 1181 - src/governance/operations.test.ts > GovernanceOperations > fetchProposal > returns parsed proposal # time=2.59ms
ok 1182 - src/governance/operations.test.ts > GovernanceOperations > fetchProposal > returns null for missing proposal # time=1.30ms
ok 1183 - src/governance/operations.test.ts > GovernanceOperations > fetchAllProposals > returns all proposals # time=3.22ms
ok 1184 - src/governance/operations.test.ts > GovernanceOperations > fetchActiveProposals > filters by active status # time=29.55ms
ok 1185 - src/governance/operations.test.ts > GovernanceOperations > fetchGovernanceVote > returns parsed vote # time=1.83ms
ok 1186 - src/governance/operations.test.ts > GovernanceOperations > fetchGovernanceVote > returns null for missing vote # time=1.36ms
ok 1187 - src/governance/operations.test.ts > GovernanceOperations > createProposal > calls program.methods.createProposal and returns result # time=1.37ms
ok 1188 - src/governance/operations.test.ts > GovernanceOperations > vote > calls program.methods.voteProposal with approve=true # time=1.47ms
ok 1189 - src/governance/operations.test.ts > GovernanceOperations > vote > throws GovernanceVoteError for ProposalNotActive # time=1.66ms
ok 1190 - src/governance/operations.test.ts > GovernanceOperations > vote > throws GovernanceVoteError for ProposalVotingEnded # time=1.52ms
ok 1191 - src/governance/operations.test.ts > GovernanceOperations > executeProposal > calls program.methods.executeProposal # time=1.18ms
ok 1192 - src/governance/operations.test.ts > GovernanceOperations > executeProposal > throws GovernanceExecutionError for insufficient quorum # time=1.18ms
ok 1193 - src/governance/operations.test.ts > GovernanceOperations > executeProposal > throws GovernanceExecutionError for not approved # time=1.24ms
ok 1194 - src/governance/operations.test.ts > Governance Errors > GovernanceProposalNotFoundError has correct name and code # time=0.13ms
ok 1195 - src/governance/operations.test.ts > Governance Errors > GovernanceVoteError has correct name and fields # time=0.06ms
ok 1196 - src/governance/operations.test.ts > Governance Errors > GovernanceExecutionError has correct name and fields # time=0.05ms
ok 1197 - src/governance/operations.test.ts > GovernanceConfig PDA > derives deterministic governance config PDA # time=0.76ms
ok 1198 - src/governance/operations.test.ts > GovernanceConfig PDA > findGovernanceConfigPda returns address only # time=0.36ms
ok 1199 - src/governance/operations.test.ts > parseOnChainGovernanceConfig > parses raw governance config data # time=0.37ms
ok 1200 - src/governance/operations.test.ts > GovernanceOperations extended methods > initializeGovernance > sends initializeGovernance transaction # time=1.18ms
ok 1201 - src/governance/operations.test.ts > GovernanceOperations extended methods > cancelProposal > cancels a proposal # time=1.33ms
ok 1202 - src/governance/operations.test.ts > GovernanceOperations extended methods > cancelProposal > maps ProposalNotActive to GovernanceProposalNotFoundError # time=1.51ms
ok 1203 - src/governance/operations.test.ts > GovernanceOperations extended methods > cancelProposal > maps ProposalUnauthorizedCancel to GovernanceExecutionError # time=1.22ms
ok 1204 - src/governance/operations.test.ts > GovernanceOperations extended methods > fetchGovernanceConfig > returns parsed governance config # time=1.14ms
ok 1205 - src/governance/operations.test.ts > GovernanceOperations extended methods > fetchGovernanceConfig > returns null when not initialized # time=0.89ms
ok 1206 - src/governance/operations.test.ts > Constants > PROPOSAL_STATUS_OFFSET is correct # time=0.04ms
ok 1207 - src/mcp-client/manager.test.ts > MCPManager > connects to all enabled servers # time=1.88ms
ok 1208 - src/mcp-client/manager.test.ts > MCPManager > skips disabled servers # time=0.35ms
ok 1209 - src/mcp-client/manager.test.ts > MCPManager > does nothing with empty config # time=0.21ms
ok 1210 - src/mcp-client/manager.test.ts > MCPManager > logs and continues when one server fails to connect # time=3.66ms
ok 1211 - src/mcp-client/manager.test.ts > MCPManager > closes client when createToolBridge fails # time=0.32ms
ok 1212 - src/mcp-client/manager.test.ts > MCPManager > disposes all bridges then clears # time=0.24ms
ok 1213 - src/mcp-client/manager.test.ts > MCPManager > stop is safe to call when no bridges exist # time=0.44ms
ok 1214 - src/mcp-client/manager.test.ts > MCPManager > stop swallows dispose errors # time=0.15ms
ok 1215 - src/mcp-client/manager.test.ts > MCPManager > getTools returns flattened tools from all bridges # time=0.58ms
ok 1216 - src/mcp-client/manager.test.ts > MCPManager > getToolsByServer returns tools for a specific server # time=0.28ms
ok 1217 - src/mcp-client/manager.test.ts > MCPManager > getConnectedServers returns server names # time=0.17ms
ok 1218 - src/mcp-client/manager.test.ts > MCPManager > reconnects a configured enabled server in place # time=0.19ms
ok 1219 - src/mcp-client/manager.test.ts > MCPManager > rejects reconnect for unknown or disabled servers # time=0.35ms
ok 1220 - src/mcp-client/tool-bridge.test.ts > createToolBridge > converts MCP tools to runtime Tool[] with namespaced names # time=1.55ms
ok 1221 - src/mcp-client/tool-bridge.test.ts > createToolBridge > handles empty tool list # time=0.24ms
ok 1222 - src/mcp-client/tool-bridge.test.ts > createToolBridge > uses default description when MCP tool has none # time=0.17ms
ok 1223 - src/mcp-client/tool-bridge.test.ts > createToolBridge > uses default inputSchema when MCP tool has none # time=0.47ms
ok 1224 - src/mcp-client/tool-bridge.test.ts > createToolBridge > preserves inputSchema from MCP tool # time=0.14ms
ok 1225 - src/mcp-client/tool-bridge.test.ts > createToolBridge > handles server returning no tools key # time=0.11ms
ok 1226 - src/mcp-client/tool-bridge.test.ts > createToolBridge > filters discovered tools using per-server allow and deny lists # time=0.18ms
ok 1227 - src/mcp-client/tool-bridge.test.ts > createToolBridge > rejects tool catalogs whose digest does not match the configured expectation # time=0.98ms
ok 1228 - src/mcp-client/tool-bridge.test.ts > createToolBridge > accepts matching tool catalog digests # time=0.63ms
ok 1229 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute calls client.callTool with original tool name # time=0.54ms
ok 1230 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute extracts text content from MCP content array # time=0.17ms
ok 1231 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute JSON-stringifies non-text content items # time=0.10ms
ok 1232 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute handles string content from MCP # time=0.06ms
ok 1233 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute propagates isError flag # time=0.09ms
ok 1234 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute catches callTool errors and returns isError result # time=0.12ms
ok 1235 - src/mcp-client/tool-bridge.test.ts > createToolBridge > execute returns error after dispose # time=0.15ms
ok 1236 - src/mcp-client/tool-bridge.test.ts > createToolBridge > dispose calls client.close # time=0.06ms
ok 1237 - src/mcp-client/tool-bridge.test.ts > createToolBridge > dispose swallows close errors # time=0.05ms
ok 1238 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > lists only approved templates by default # time=0.90ms
ok 1239 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > renders a template with audit data and untrusted variables # time=7.72ms
ok 1240 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > rejects variables outside the approved schema # time=0.41ms
ok 1241 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > rejects rewards outside template bounds # time=0.16ms
ok 1242 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > returns null for unknown approved templates # time=0.30ms
ok 1243 - src/marketplace/approved-task-templates.test.ts > approved-task-templates > persists template proposals as draft files # time=15.18ms
ok 1244 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > does not fetch remote job spec URIs unless explicitly allowed # time=17.29ms
ok 1245 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > resolves remote job spec URIs only when allowRemote is true # time=0.67ms
ok 1246 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects forbidden payload keys at custom.__proto__ # time=0.12ms
ok 1247 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects forbidden payload keys at context.nested.constructor # time=0.17ms
ok 1248 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects forbidden payload keys at constraints[0].prototype # time=0.13ms
ok 1249 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects forbidden payload keys at attachments[0].__proto__ # time=0.11ms
ok 1250 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects a local envelope whose canonical hash omitted a forbidden key # time=11.99ms
ok 1251 - src/marketplace/job-spec-store.test.ts > marketplace job spec integrity > rejects a remote envelope whose canonical hash omitted a forbidden key # time=0.65ms
ok 1252 - src/marketplace/job-spec-store.test.ts > marketplace task link verified-task binding > rejects an attestation copied from another link sharing the same jobSpecHash # time=91.39ms
ok 1253 - src/marketplace/job-spec-store.test.ts > marketplace task link verified-task binding > rejects a link whose persisted canonical input does not match the attestation # time=6.67ms
ok 1254 - src/marketplace/job-spec-store.test.ts > marketplace task link verified-task binding > rejects a link whose persisted canonical input is absent (no independent material to bind) # time=12.18ms
ok 1255 - src/marketplace/verified-task-attestation.test.ts > verified task attestations > accepts a valid storefront-signed devnet attestation # time=160.39ms
ok 1256 - src/marketplace/verified-task-attestation.test.ts > verified task attestations > rejects a tampered attestation field # time=2.27ms
ok 1257 - src/marketplace/verified-task-attestation.test.ts > verified task attestations > rejects mismatched job specs, non-devnet attestations, expired attestations, and unknown keys # time=2.05ms
ok 1258 - src/marketplace/verified-task-attestation.test.ts > verified task attestations > rejects replayed verified task hashes and nonces after a finalized reservation # time=69.94ms
ok 1259 - src/marketplace/verified-task-attestation.test.ts > verified task attestations > does not consume a nonce if the on-chain create fails (release rolls back the pending reservation) # time=38.42ms
ok 1260 - src/observability/observability.test.ts > ObservabilityService > persists trace events and returns summaries/details # time=136.72ms
ok 1261 - src/observability/observability.test.ts > ObservabilityService > marks traces incomplete when no terminal event is recorded # time=9.37ms
ok 1262 - src/observability/observability.test.ts > ObservabilityService > treats handled slash-command traces as completed terminal traces # time=5.21ms
ok 1263 - src/observability/observability.test.ts > ObservabilityService > treats working background cycle traces as completed cycle traces # time=6.80ms
ok 1264 - src/observability/observability.test.ts > ObservabilityService > filters trace listings and summaries by session scope # time=4.19ms
ok 1265 - src/observability/observability.test.ts > ObservabilityService > writes derived concern logs when trace fan-out is enabled # time=98.31ms
ok 1266 - src/observability/observability.test.ts > ObservabilityService > getArtifact reads a JSONL line by sha256 anchor # time=1.54ms
ok 1267 - src/observability/observability.test.ts > ObservabilityService > getArtifact reads a legacy per-event JSON file # time=1.60ms
ok 1268 - src/observability/observability.test.ts > ObservabilityService > getArtifact throws when sha256 anchor does not match any line # time=5.32ms
ok 1269 - src/observability/trace-log-fanout.test.ts > deriveTraceLogFanoutPaths > derives sibling files from a standard daemon log path # time=1.55ms
ok 1270 - src/observability/trace-log-fanout.test.ts > deriveTraceLogFanoutPaths > adds a log suffix when the daemon path has no extension # time=0.34ms
ok 1271 - src/observability/trace-log-fanout.test.ts > classifyTraceLogFanoutCategories > routes error/provider/executor/subagent concerns into stable categories # time=2.14ms
ok 1272 - src/observability/trace-log-fanout.test.ts > TraceLogFanout > writes a single trace event to every matching derived view # time=46.16ms
ok 1273 - src/onboarding/profile.test.ts > onboarding profile > hydrates onboarding defaults from an existing gateway config # time=1.11ms
ok 1274 - src/onboarding/profile.test.ts > onboarding profile > builds a canonical config plus curated workspace files # time=0.78ms
ok 1275 - src/onboarding/profile.test.ts > onboarding profile > removes blank wallet paths from the generated config # time=0.11ms
ok 1276 - src/onboarding/tui.test.ts > interactive onboarding gating > only enables the TUI for real human terminal sessions # time=0.99ms
ok 1277 - src/onboarding/tui.test.ts > interactive onboarding gating > masks secrets without dropping the tail # time=0.24ms
ok 1278 - src/onboarding/tui.test.ts > interactive onboarding gating > fits the onboarding frame inside narrow terminals # time=0.47ms
ok 1279 - src/onboarding/xai-validation.test.ts > xAI onboarding validation > normalizes known Grok models from the xAI models response # time=2.96ms
ok 1280 - src/onboarding/xai-validation.test.ts > xAI onboarding validation > falls back to the default model when no known chat models are returned # time=0.63ms
ok 1281 - src/onboarding/xai-validation.test.ts > xAI onboarding validation > returns a clear auth error when xAI rejects the API key # time=0.15ms
ok 1282 - src/memory/agent-identity.test.ts > AgentIdentityManager > creates a new agent identity # time=1.52ms
ok 1283 - src/memory/agent-identity.test.ts > AgentIdentityManager > persists and loads identity # time=0.23ms
ok 1284 - src/memory/agent-identity.test.ts > AgentIdentityManager > versions personality on change and resets learned traits (skeptic) # time=0.17ms
ok 1285 - src/memory/agent-identity.test.ts > AgentIdentityManager > adds learned traits without replacing core # time=0.26ms
ok 1286 - src/memory/agent-identity.test.ts > AgentIdentityManager > deduplicates learned traits # time=0.11ms
ok 1287 - src/memory/agent-identity.test.ts > AgentIdentityManager > stores beliefs with evidence (edge case X5: rejects ungrounded) # time=0.17ms
ok 1288 - src/memory/agent-identity.test.ts > AgentIdentityManager > isolates identities by workspace # time=0.17ms
ok 1289 - src/memory/agent-identity.test.ts > AgentIdentityManager > resets learned traits keeping core personality # time=0.23ms
ok 1290 - src/memory/agent-identity.test.ts > AgentIdentityManager > formats identity for prompt injection with budget cap # time=0.47ms
ok 1291 - src/memory/agent-identity.test.ts > AgentIdentityManager > single-agent default mode works without overhead # time=0.11ms
ok 1292 - src/memory/agent-identity.test.ts > AgentIdentityManager > createAgentIdentityProvider (Phase 5.4) > returns formatted prompt for existing agent identity # time=0.19ms
ok 1293 - src/memory/agent-identity.test.ts > AgentIdentityManager > createAgentIdentityProvider (Phase 5.4) > returns undefined when agent identity does not exist # time=0.06ms
ok 1294 - src/memory/agent-identity.test.ts > AgentIdentityManager > createAgentIdentityProvider (Phase 5.4) > includes learned traits and beliefs in prompt # time=0.10ms
ok 1295 - src/memory/artifact-store.test.ts > MemoryArtifactStore > deletes superseded artifact records when a new snapshot replaces them # time=1.04ms
ok 1296 - src/memory/artifact-store.test.ts > MemoryArtifactStore > does not publish a snapshot pointer before all records are written # time=0.80ms
ok 1297 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > noops when the window is shorter than minWindowMessages # time=0.94ms
ok 1298 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > noops on a long but content-less window # time=0.35ms
ok 1299 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > produces a [consolidation] summary when topics repeat # time=7.25ms
ok 1300 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > honors minWindowMessages override # time=0.24ms
ok 1301 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > filters stopwords # time=0.32ms
ok 1302 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > caps the summary at maxSummaryTokens # time=0.13ms
ok 1303 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > is deterministic (same input -> same summary) # time=0.39ms
ok 1304 - src/memory/consolidation-slice.test.ts > consolidateEpisodicSlice (Phase N) > handles multimodal content parts by extracting text # time=0.21ms
ok 1305 - src/memory/consolidation.test.ts > runConsolidation > skips when fewer than minEntries exist # time=1.30ms
ok 1306 - src/memory/consolidation.test.ts > runConsolidation > consolidates repeated episodic entries into semantic facts # time=0.42ms
ok 1307 - src/memory/consolidation.test.ts > runConsolidation > skips duplicate consolidation (dedup check) # time=0.33ms
ok 1308 - src/memory/consolidation.test.ts > runConsolidation > creates knowledge graph nodes when graph is provided # time=0.73ms
ok 1309 - src/memory/consolidation.test.ts > runConsolidation > respects workspace scoping # time=0.21ms
ok 1310 - src/memory/consolidation.test.ts > runConsolidation > returns timing information # time=0.09ms
ok 1311 - src/memory/diagnostics.test.ts > collectMemoryHealthReport > collects health from all components # time=2.34ms
ok 1312 - src/memory/diagnostics.test.ts > collectMemoryHealthReport > handles missing components gracefully # time=0.27ms
ok 1313 - src/memory/diagnostics.test.ts > collectMemoryHealthReport > handles backend failure gracefully # time=0.72ms
ok 1314 - src/memory/diagnostics.test.ts > formatMemoryHealthReport > formats a complete report # time=0.24ms
ok 1315 - src/memory/diagnostics.test.ts > formatMemoryHealthReport > formats minimal report # time=0.10ms
ok 1316 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > embed returns zero vector of correct dimension # time=1.12ms
ok 1317 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > embedBatch returns correct number of vectors # time=0.44ms
ok 1318 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > isAvailable returns true # time=0.07ms
ok 1319 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > uses default dimension of 128 # time=0.05ms
ok 1320 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > embed returns vector of correct dimension # time=0.08ms
ok 1321 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > embedBatch handles empty input # time=0.07ms
ok 1322 - src/memory/embeddings.test.ts > NoopEmbeddingProvider > handles empty text input gracefully # time=0.10ms
ok 1323 - src/memory/embeddings.test.ts > cosineSimilarity > identical vectors return 1.0 # time=0.10ms
ok 1324 - src/memory/embeddings.test.ts > cosineSimilarity > orthogonal vectors return 0.0 # time=0.32ms
ok 1325 - src/memory/embeddings.test.ts > cosineSimilarity > opposite vectors return -1.0 # time=0.07ms
ok 1326 - src/memory/embeddings.test.ts > cosineSimilarity > throws on length mismatch # time=0.34ms
ok 1327 - src/memory/embeddings.test.ts > cosineSimilarity > returns 0 for zero vectors # time=0.05ms
ok 1328 - src/memory/embeddings.test.ts > cosineSimilarity > returns 0 for empty vectors # time=0.03ms
ok 1329 - src/memory/embeddings.test.ts > normalizeVector > produces unit-length vector # time=0.06ms
ok 1330 - src/memory/embeddings.test.ts > normalizeVector > handles zero vector gracefully # time=0.13ms
ok 1331 - src/memory/embeddings.test.ts > normalizeVector > preserves direction # time=0.04ms
ok 1332 - src/memory/embeddings.test.ts > normalizeVector > handles single-element vector # time=0.24ms
ok 1333 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > constructor stores config # time=0.06ms
ok 1334 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > embed calls embedBatch and returns first result # time=0.46ms
ok 1335 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > embedBatch returns correct number of vectors # time=0.25ms
ok 1336 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > embedBatch returns empty array for empty input # time=0.06ms
ok 1337 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > wraps API errors as MemoryBackendError # time=0.45ms
ok 1338 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > fails closed when pointed at xAI's undocumented embeddings surface # time=0.23ms
ok 1339 - src/memory/embeddings.test.ts > OpenAIEmbeddingProvider > reports unavailable when pointed at xAI's undocumented embeddings surface # time=0.14ms
ok 1340 - src/memory/embeddings.test.ts > OllamaEmbeddingProvider > constructor stores config # time=0.06ms
ok 1341 - src/memory/embeddings.test.ts > OllamaEmbeddingProvider > uses defaults with no config # time=0.04ms
ok 1342 - src/memory/embeddings.test.ts > OllamaEmbeddingProvider > embed returns vector from Ollama API # time=0.12ms
ok 1343 - src/memory/embeddings.test.ts > OllamaEmbeddingProvider > embedBatch calls embed sequentially # time=0.21ms
ok 1344 - src/memory/embeddings.test.ts > OllamaEmbeddingProvider > wraps API errors as MemoryBackendError # time=0.10ms
ok 1345 - src/memory/embeddings.test.ts > createEmbeddingProvider > with noop returns NoopProvider # time=0.11ms
ok 1346 - src/memory/embeddings.test.ts > createEmbeddingProvider > with openai returns OpenAIProvider # time=0.04ms
ok 1347 - src/memory/embeddings.test.ts > createEmbeddingProvider > with openai without apiKey throws # time=0.08ms
ok 1348 - src/memory/embeddings.test.ts > createEmbeddingProvider > with ollama returns OllamaProvider # time=0.04ms
ok 1349 - src/memory/embeddings.test.ts > createEmbeddingProvider > auto-selection falls back to Noop when no providers available # time=0.23ms
ok 1350 - src/memory/embeddings.test.ts > createEmbeddingProvider > auto-selection with no config returns a provider # time=81.34ms
ok 1351 - src/memory/encryption.test.ts > AES-256-GCM encryption > encrypts and decrypts content correctly # time=1.93ms
ok 1352 - src/memory/encryption.test.ts > AES-256-GCM encryption > encrypts and decrypts metadata JSON correctly # time=0.49ms
ok 1353 - src/memory/encryption.test.ts > AES-256-GCM encryption > produces different ciphertexts for same plaintext (random IV) # time=0.18ms
ok 1354 - src/memory/encryption.test.ts > AES-256-GCM encryption > rejects wrong key length # time=0.45ms
ok 1355 - src/memory/encryption.test.ts > AES-256-GCM encryption > accepts hex-encoded key string # time=0.28ms
ok 1356 - src/memory/encryption.test.ts > AES-256-GCM encryption > throws on tampered ciphertext # time=0.15ms
ok 1357 - src/memory/encryption.test.ts > AES-256-GCM encryption > handles empty string # time=0.17ms
ok 1358 - src/memory/encryption.test.ts > AES-256-GCM encryption > handles large metadata payloads # time=0.17ms
ok 1359 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > encrypts with current version and decrypts correctly # time=0.51ms
ok 1360 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > decrypts old version entries after key rotation # time=0.14ms
ok 1361 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > re-encrypts old version entries with current key # time=0.22ms
ok 1362 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > rejects missing current version in key map # time=0.09ms
ok 1363 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > rejects wrong key length for any version # time=0.07ms
ok 1364 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > supports hex-encoded keys # time=0.07ms
ok 1365 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > decrypts non-versioned legacy ciphertexts using version 0 key # time=0.11ms
ok 1366 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > decrypts legacy ciphertexts whose IV collides with the version marker # time=0.07ms
ok 1367 - src/memory/encryption.test.ts > Versioned AES-256-GCM key rotation > different versions produce different ciphertexts # time=0.09ms
ok 1368 - src/memory/export-import.test.ts > memory export/import > exports and imports entries round-trip # time=3.12ms
ok 1369 - src/memory/export-import.test.ts > memory export/import > rejects import from newer schema version # time=0.65ms
ok 1370 - src/memory/export-import.test.ts > memory export/import > records workspace filter in export metadata # time=0.15ms
ok 1371 - src/memory/graph.test.ts > MemoryGraph > requires provenance on writes # time=1.64ms
ok 1372 - src/memory/graph.test.ts > MemoryGraph > supports provenance-aware retrieval filters # time=0.75ms
ok 1373 - src/memory/graph.test.ts > MemoryGraph > applies freshness decay to confidence # time=0.24ms
ok 1374 - src/memory/graph.test.ts > MemoryGraph > models contradiction and supersession edges in retrieval policy # time=0.62ms
ok 1375 - src/memory/graph.test.ts > MemoryGraph > materializes session summaries from thread history # time=0.32ms
ok 1376 - src/memory/graph.test.ts > MemoryGraph > keeps in-memory and sqlite behavior aligned for core graph queries # time=22.26ms
ok 1377 - src/memory/ingestion.test.ts > MemoryIngestionEngine > ingestTurn > embeds combined turn text and stores working + semantic entries # time=3.07ms
ok 1378 - src/memory/ingestion.test.ts > MemoryIngestionEngine > ingestTurn > skips vector indexing when salience is below configured threshold # time=0.66ms
ok 1379 - src/memory/ingestion.test.ts > MemoryIngestionEngine > ingestTurn > preserves delegated scope trust metadata on indexed turn entries # time=2.74ms
ok 1380 - src/memory/ingestion.test.ts > MemoryIngestionEngine > ingestTurn > deduplicates near-identical turns per role # time=3.76ms
ok 1381 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processSessionEnd > stores summary in episodic memory with provenance and confidence # time=1.50ms
ok 1382 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processSessionEnd > stores extracted entities as semantic facts # time=2.24ms
ok 1383 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processSessionEnd > returns empty summary when summarization disabled # time=1.50ms
ok 1384 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processSessionEnd > passes provider trace options to session-end summarization when enabled # time=0.71ms
ok 1385 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processCompaction > stores compacted summary as episodic memory # time=1.74ms
ok 1386 - src/memory/ingestion.test.ts > MemoryIngestionEngine > processCompaction > skips compaction storage when duplicate is detected # time=0.40ms
ok 1387 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > returns three lifecycle hooks # time=0.73ms
ok 1388 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > message outbound hook triggers ingestTurn # time=69.80ms
ok 1389 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > passes outbound assistant delegated scope metadata into ingestion # time=8.72ms
ok 1390 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > session end hook attaches ingestion result # time=9.47ms
ok 1391 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > session compact hook processes only after-phase payloads # time=0.33ms
ok 1392 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > session compact hook silently skips after-phase compactions without a generated summary # time=0.19ms
ok 1393 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > session compact hook processes budget compactions with summary-only payloads # time=0.18ms
ok 1394 - src/memory/ingestion.test.ts > MemoryIngestionEngine > createIngestionHooks > session compact hook silently skips summary-less payloads without warning # time=4.13ms
ok 1395 - src/memory/ingestion.test.ts > MemoryIngestionEngine > background run memory scoping (Phase 2.9) > tags entries with backgroundRunId when provided in metadata # time=0.46ms
ok 1396 - src/memory/ingestion.test.ts > MemoryIngestionEngine > background run memory scoping (Phase 2.9) > does not include backgroundRunId when not provided # time=0.30ms
ok 1397 - src/memory/ingestion.test.ts > MemoryIngestionEngine > background run memory scoping (Phase 2.9) > hook passes backgroundRunId from payload to engine # time=17.94ms
ok 1398 - src/memory/procedural.test.ts > ProceduralMemory > records a successful tool sequence # time=1.75ms
ok 1399 - src/memory/procedural.test.ts > ProceduralMemory > increments success count on duplicate procedure # time=0.23ms
ok 1400 - src/memory/procedural.test.ts > ProceduralMemory > retrieves relevant procedures by trigger similarity # time=0.30ms
ok 1401 - src/memory/procedural.test.ts > ProceduralMemory > normalizes workspace paths in args # time=0.18ms
ok 1402 - src/memory/procedural.test.ts > ProceduralMemory > filters out failed tool calls # time=0.12ms
ok 1403 - src/memory/procedural.test.ts > ProceduralMemory > returns null for empty tool calls # time=0.06ms
ok 1404 - src/memory/procedural.test.ts > ProceduralMemory > isolates procedures by workspace # time=0.39ms
ok 1405 - src/memory/procedural.test.ts > ProceduralMemory > formats procedures for prompt injection # time=0.19ms
ok 1406 - src/memory/procedural.test.ts > ProceduralMemory > tracks failure count and reduces confidence # time=0.49ms
ok 1407 - src/memory/reflection.test.ts > runReflection > extracts learned traits and updates agent identity # time=2.78ms
ok 1408 - src/memory/reflection.test.ts > runReflection > skips reflection for short sessions (< 10 messages) # time=0.35ms
ok 1409 - src/memory/reflection.test.ts > runReflection > stores beliefs with evidence (rejects ungrounded) # time=0.49ms
ok 1410 - src/memory/reflection.test.ts > runReflection > handles LLM failure gracefully # time=0.18ms
ok 1411 - src/memory/retriever.test.ts > estimateTokens > returns 0 for empty string # time=0.84ms
ok 1412 - src/memory/retriever.test.ts > estimateTokens > returns ceil(chars / 4) # time=0.15ms
ok 1413 - src/memory/retriever.test.ts > computeRetrievalScore > returns pure relevance when recencyWeight=0 # time=0.15ms
ok 1414 - src/memory/retriever.test.ts > computeRetrievalScore > returns pure recency when recencyWeight=1 # time=0.07ms
ok 1415 - src/memory/retriever.test.ts > computeRetrievalScore > clamps future timestamps to recency=1 # time=0.06ms
ok 1416 - src/memory/retriever.test.ts > SemanticMemoryRetriever > returns undefined when no candidates are available # time=1.47ms
ok 1417 - src/memory/retriever.test.ts > SemanticMemoryRetriever > retrieves working, episodic, and semantic roles separately # time=1.31ms
ok 1418 - src/memory/retriever.test.ts > SemanticMemoryRetriever > enforces diversity-aware packing by dropping near-duplicates # time=3.26ms
ok 1419 - src/memory/retriever.test.ts > SemanticMemoryRetriever > filters untrusted delegated environment facts from working and semantic retrieval # time=1.24ms
ok 1420 - src/memory/retriever.test.ts > SemanticMemoryRetriever > forwards session id for working memory but omits it for semantic/episodic retrieval # time=1.09ms
ok 1421 - src/memory/retriever.test.ts > SemanticMemoryRetriever > includes curated memory with bounded budget # time=0.36ms
ok 1422 - src/memory/retriever.test.ts > SemanticMemoryRetriever > uses curated cache and supports clearCache # time=0.47ms
ok 1423 - src/memory/retriever.test.ts > SemanticMemoryRetriever > still returns working/curated memory when embedding is empty # time=0.32ms
ok 1424 - src/memory/shared-memory.test.ts > SharedMemoryBackend > writes and retrieves user-scoped facts with trust metadata # time=1.81ms
ok 1425 - src/memory/shared-memory.test.ts > SharedMemoryBackend > requires explicit system authorization for organization facts # time=4.07ms
ok 1426 - src/memory/shared-memory.test.ts > SharedMemoryBackend > updates facts with version check (optimistic concurrency) # time=0.93ms
ok 1427 - src/memory/shared-memory.test.ts > SharedMemoryBackend > filters user facts by userId # time=0.35ms
ok 1428 - src/memory/shared-memory.test.ts > SharedMemoryBackend > filters lineage-shared facts by lineage id # time=0.23ms
ok 1429 - src/memory/shared-memory.test.ts > SharedMemoryBackend > maintains audit trail with authorization metadata # time=0.24ms
ok 1430 - src/memory/shared-memory.test.ts > SharedMemoryBackend > caches read results for configured TTL and invalidates on write # time=3.70ms
ok 1431 - src/memory/shared-memory.test.ts > SharedMemoryBackend > formats facts for prompt injection with sanitization # time=0.30ms
ok 1432 - src/memory/shared-memory.test.ts > SharedMemoryBackend > filters reads by trust score threshold # time=0.53ms
ok 1433 - src/memory/social-memory.test.ts > SocialMemoryManager > social memory (agent-to-agent) > records and retrieves inter-agent interactions # time=1.48ms
ok 1434 - src/memory/social-memory.test.ts > SocialMemoryManager > social memory (agent-to-agent) > isolates social memory by world # time=0.13ms
ok 1435 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > adds observable facts with trust, provenance, and audit metadata # time=0.34ms
ok 1436 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > confirms facts from multiple agents and raises trust # time=0.33ms
ok 1437 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > enforces private visibility (only observer can see) # time=0.25ms
ok 1438 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > enforces shared visibility (only allowed agents) # time=0.16ms
ok 1439 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > treats lineage-shared facts as visible within the scoped lineage namespace # time=0.22ms
ok 1440 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > world-visible visibility is accessible to all agents # time=0.24ms
ok 1441 - src/memory/social-memory.test.ts > SocialMemoryManager > shared world state > promotes collectively confirmed facts to world-visible with audit trail # time=0.56ms
ok 1442 - src/memory/structured.test.ts > formatLogDate > returns YYYY-MM-DD for a known date # time=0.86ms
ok 1443 - src/memory/structured.test.ts > formatLogDate > defaults to current date when no argument given # time=0.23ms
ok 1444 - src/memory/structured.test.ts > formatLogDate > uses UTC to avoid timezone shifts # time=0.08ms
ok 1445 - src/memory/structured.test.ts > formatLogDate > zero-pads single-digit months and days # time=0.10ms
ok 1446 - src/memory/structured.test.ts > StructuredMemoryEntry > has all required fields # time=0.31ms
ok 1447 - src/memory/structured.test.ts > DailyLogManager > creates the log file on first append # time=44.78ms
ok 1448 - src/memory/structured.test.ts > DailyLogManager > appends to the same file on subsequent calls # time=24.16ms
ok 1449 - src/memory/structured.test.ts > DailyLogManager > includes timestamp and session id in entries # time=12.95ms
ok 1450 - src/memory/structured.test.ts > DailyLogManager > writes multiple sessions to the same day file # time=18.48ms
ok 1451 - src/memory/structured.test.ts > DailyLogManager > readLog returns undefined for missing date # time=4.17ms
ok 1452 - src/memory/structured.test.ts > DailyLogManager > listDates returns sorted date strings # time=3.62ms
ok 1453 - src/memory/structured.test.ts > DailyLogManager > listDates returns empty array for missing dir # time=2.98ms
ok 1454 - src/memory/structured.test.ts > DailyLogManager > todayPath uses current date # time=1.47ms
ok 1455 - src/memory/structured.test.ts > DailyLogManager > truncates oversized log entries # time=3.58ms
ok 1456 - src/memory/structured.test.ts > CuratedMemoryManager > load reads file content # time=3.74ms
ok 1457 - src/memory/structured.test.ts > CuratedMemoryManager > load returns empty string if file missing # time=0.37ms
ok 1458 - src/memory/structured.test.ts > CuratedMemoryManager > addFact appends a bullet line # time=1.37ms
ok 1459 - src/memory/structured.test.ts > CuratedMemoryManager > removeFact removes matching line # time=3.33ms
ok 1460 - src/memory/structured.test.ts > CuratedMemoryManager > removeFact returns false if not found # time=1.19ms
ok 1461 - src/memory/structured.test.ts > CuratedMemoryManager > removeFact returns false if file missing # time=2.28ms
ok 1462 - src/memory/structured.test.ts > CuratedMemoryManager > proposeAddition formats with source # time=0.52ms
ok 1463 - src/memory/structured.test.ts > NoopEntityExtractor > extract returns empty array # time=0.13ms
ok 1464 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits retrieval trace events # time=1.22ms
ok 1465 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits scoring trace events # time=0.26ms
ok 1466 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits ingestion trace events # time=0.20ms
ok 1467 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits consolidation trace events # time=0.16ms
ok 1468 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits trust filter trace events # time=0.11ms
ok 1469 - src/memory/trace-logger.test.ts > MemoryTraceLogger > emits error trace events # time=0.10ms
ok 1470 - src/memory/trace-logger.test.ts > MemoryTraceLogger > does not emit when disabled # time=0.19ms
ok 1471 - src/memory/trace-logger.test.ts > MemoryTraceLogger > createNoopMemoryTraceLogger creates a disabled logger # time=0.09ms
ok 1472 - src/memory/trace-logger.test.ts > MemoryTraceLogger > truncates long queries in retrieval traces # time=0.38ms
ok 1473 - src/memory/trust-scoring.test.ts > computeTrustScore > assigns highest trust to system-sourced entries # time=1.09ms
ok 1474 - src/memory/trust-scoring.test.ts > computeTrustScore > assigns lower trust to external entries # time=0.81ms
ok 1475 - src/memory/trust-scoring.test.ts > computeTrustScore > decays trust over time (temporal decay) # time=0.13ms
ok 1476 - src/memory/trust-scoring.test.ts > computeTrustScore > boosts trust for frequently accessed entries # time=0.12ms
ok 1477 - src/memory/trust-scoring.test.ts > computeTrustScore > gives confirmation bonus # time=0.12ms
ok 1478 - src/memory/trust-scoring.test.ts > computeTrustScore > returns score in [0, 1] range # time=0.10ms
ok 1479 - src/memory/trust-scoring.test.ts > inferTrustSource > identifies system sources # time=0.23ms
ok 1480 - src/memory/trust-scoring.test.ts > inferTrustSource > identifies user sources # time=0.06ms
ok 1481 - src/memory/trust-scoring.test.ts > inferTrustSource > identifies agent sources # time=0.32ms
ok 1482 - src/memory/trust-scoring.test.ts > inferTrustSource > identifies tool sources # time=0.09ms
ok 1483 - src/memory/trust-scoring.test.ts > inferTrustSource > defaults to unknown for missing metadata # time=0.09ms
ok 1484 - src/memory/trust-scoring.test.ts > inferTrustSource > default trust threshold is reasonable # time=0.06ms
ok 1485 - src/memory/vector-store.test.ts > InMemoryVectorStore > storeWithEmbedding > stores entry and infers dimension from first vector # time=1.35ms
ok 1486 - src/memory/vector-store.test.ts > InMemoryVectorStore > storeWithEmbedding > rejects embedding with mismatched dimension # time=0.73ms
ok 1487 - src/memory/vector-store.test.ts > InMemoryVectorStore > storeWithEmbedding > respects explicit dimension config # time=0.18ms
ok 1488 - src/memory/vector-store.test.ts > InMemoryVectorStore > storeWithEmbedding > returns valid MemoryEntry with generated ID # time=0.33ms
ok 1489 - src/memory/vector-store.test.ts > InMemoryVectorStore > storeWithEmbedding > rejects empty embedding # time=0.18ms
ok 1490 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > returns entries sorted by cosine similarity descending # time=0.34ms
ok 1491 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > respects limit parameter # time=0.34ms
ok 1492 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > respects threshold cutoff # time=0.14ms
ok 1493 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > filters by sessionId # time=0.30ms
ok 1494 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > filters by time range (after/before) # time=38.80ms
ok 1495 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > filters by metadata tags # time=0.21ms
ok 1496 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > returns empty for empty store # time=0.31ms
ok 1497 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > filters by channel # time=0.08ms
ok 1498 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchSimilar > filters by memoryRoles metadata # time=0.47ms
ok 1499 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchHybrid > combines vector and BM25 with default weights # time=0.50ms
ok 1500 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchHybrid > with vectorWeight=1 keywordWeight=0 gives pure vector results # time=9.00ms
ok 1501 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchHybrid > with vectorWeight=0 keywordWeight=1 gives pure keyword results # time=0.25ms
ok 1502 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchHybrid > deduplicates entries appearing in both searches # time=0.26ms
ok 1503 - src/memory/vector-store.test.ts > InMemoryVectorStore > searchHybrid > applies threshold after merging # time=0.43ms
ok 1504 - src/memory/vector-store.test.ts > InMemoryVectorStore > BM25 scoring (via searchHybrid) > exact keyword match scores higher than partial # time=0.19ms
ok 1505 - src/memory/vector-store.test.ts > InMemoryVectorStore > BM25 scoring (via searchHybrid) > returns zero score for no matching terms # time=0.08ms
ok 1506 - src/memory/vector-store.test.ts > InMemoryVectorStore > BM25 scoring (via searchHybrid) > handles empty query gracefully # time=0.05ms
ok 1507 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > addEntry works without embedding # time=0.08ms
ok 1508 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > deleteThread cleans up embeddings # time=0.19ms
ok 1509 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > clear resets all vector data # time=0.09ms
ok 1510 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > KV operations delegate correctly # time=0.11ms
ok 1511 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > listSessions delegates correctly # time=0.22ms
ok 1512 - src/memory/vector-store.test.ts > InMemoryVectorStore > MemoryBackend delegation > healthCheck delegates correctly # time=0.07ms
ok 1513 - src/memory/vector-store.test.ts > InMemoryVectorStore > edge cases > zero-vector query returns entries with score 0 # time=0.06ms
ok 1514 - src/memory/vector-store.test.ts > InMemoryVectorStore > edge cases > single entry corpus works correctly # time=0.08ms
ok 1515 - src/memory/vector-store.test.ts > InMemoryVectorStore > edge cases > entries evicted by backend capacity do not appear in search # time=0.28ms
ok 1516 - src/memory/vector-store.test.ts > InMemoryVectorStore > edge cases > rejects query embedding with wrong dimension # time=0.13ms
ok 1517 - src/memory/vector-store.test.ts > InMemoryVectorStore > edge cases > getDurability returns none level # time=0.05ms
ok 1518 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > returns default memory.db when worldId is undefined # time=0.83ms
ok 1519 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > returns default memory.db when worldId is 'default' # time=0.19ms
ok 1520 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > returns per-world path for a named world # time=0.13ms
ok 1521 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > sanitizes path traversal attempts # time=0.24ms
ok 1522 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > sanitizes special characters # time=0.16ms
ok 1523 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > truncates overly long worldIds to 128 chars # time=0.10ms
ok 1524 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > allows hyphens, underscores, dots, and alphanumeric # time=0.10ms
ok 1525 - src/memory/world-db-resolver.test.ts > resolveWorldDbPath > collapses consecutive dots # time=0.06ms
ok 1526 - src/memory/world-db-resolver.test.ts > resolveWorldVectorDbPath > returns default vectors.db when worldId is undefined # time=0.36ms
ok 1527 - src/memory/world-db-resolver.test.ts > resolveWorldVectorDbPath > returns per-world vectors.db for a named world # time=0.09ms
ok 1528 - src/plugins/channel-host-services.test.ts > createChannelHostServices > returns a world resolver and runtime defaults # time=4.75ms
ok 1529 - src/plugins/channel-host-services.test.ts > createChannelHostServices > caches the same world context and isolates different worlds # time=0.64ms
ok 1530 - src/plugins/channel-host-services.test.ts > createChannelHostServices > isolates same-world runs by effective storage key # time=1.26ms
ok 1531 - src/plugins/channel-host-services.test.ts > createChannelHostServices > accepts typed checkpoint metadata for lineage resume contexts # time=0.45ms
ok 1532 - src/plugins/channel-host-services.test.ts > createChannelHostServices > separates per-simulation log contexts even when lineage storage is shared # time=0.44ms
ok 1533 - src/plugins/channel-host.test.ts > HostedChannelPlugin > normalizes inbound and outbound message payloads # time=2.24ms
ok 1534 - src/plugins/channel-host.test.ts > HostedChannelPlugin > rejects invalid inbound payloads from adapters # time=0.74ms
ok 1535 - src/plugins/channel-loader.test.ts > loadConfiguredPluginChannel > loads a trusted channel adapter package # time=10.73ms
ok 1536 - src/plugins/channel-loader.test.ts > loadConfiguredPluginChannel > rejects channel names that shadow built-in runtime channels # time=0.72ms
ok 1537 - src/plugins/channel-loader.test.ts > loadConfiguredPluginChannel > rejects subpath imports that are not explicitly trusted # time=0.19ms
ok 1538 - src/plugins/channel-loader.test.ts > loadConfiguredPluginChannel > rejects manifest and config key mismatches # time=2.48ms
ok 1539 - src/plugins/channel-loader.test.ts > loadConfiguredPluginChannel > surfaces adapter config validation as a gateway config error # time=0.80ms
ok 1540 - src/plugins/channel-policy.test.ts > channel-policy > parses scoped package specifiers with subpaths # time=1.10ms
ok 1541 - src/plugins/channel-policy.test.ts > channel-policy > rejects unsafe specifiers # time=0.23ms
ok 1542 - src/plugins/channel-policy.test.ts > channel-policy > requires explicit subpath trust for subpath imports # time=0.12ms
ok 1543 - src/plugins/channel-policy.test.ts > channel-policy > allows bare package imports when the package is trusted # time=0.11ms
ok 1544 - src/plugins/channel-policy.test.ts > channel-policy > allows explicitly trusted subpaths # time=0.07ms
ok 1545 - src/replay/alerting.test.ts > ReplayAlertDispatcher > does not emit when disabled # time=1.18ms
ok 1546 - src/replay/alerting.test.ts > ReplayAlertDispatcher > emits deterministic alert IDs with fixed timestamp and dedupe policy # time=0.83ms
ok 1547 - src/replay/alerting.test.ts > ReplayAlertDispatcher > suppresses alerts inside the dedupe window but preserves history for repeat counts # time=0.28ms
ok 1548 - src/replay/alerting.test.ts > ReplayAlertDispatcher > maps severity to logger level in webhook-free mode # time=0.54ms
ok 1549 - src/replay/alerting.test.ts > ReplayAlertDispatcher > returns replay payloads as schema-stable objects # time=0.32ms
ok 1550 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > validates a complete alert payload # time=0.44ms
ok 1551 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > detects missing required fields # time=0.33ms
ok 1552 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > detects invalid field types # time=0.10ms
ok 1553 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > rejects non-object input # time=0.35ms
ok 1554 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > accepts optional fields without complaint # time=0.08ms
ok 1555 - src/replay/alerting.test.ts > validateAlertSchema (\#967) > reports schema version in result # time=0.11ms
ok 1556 - src/replay/alerting.test.ts > computeAnomalySetHash (\#967) > produces same hash for same anomaly set # time=0.08ms
ok 1557 - src/replay/alerting.test.ts > computeAnomalySetHash (\#967) > empty anomaly set produces consistent hash # time=0.05ms
ok 1558 - src/replay/alerting.test.ts > computeAnomalySetHash (\#967) > different sets produce different hashes # time=0.09ms
ok 1559 - src/replay/alerting.test.ts > computeAnomalySetHashFromContexts (\#967) > produces same hash for same contexts regardless of order # time=0.09ms
ok 1560 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > schema version is replay.alert.v1 # time=0.03ms
ok 1561 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > required fields list matches expected set # time=0.13ms
ok 1562 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > valid severities match expected set # time=0.05ms
ok 1563 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > valid kinds match expected set # time=0.04ms
ok 1564 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > sample alert passes schema validation # time=0.07ms
ok 1565 - src/replay/alerting.test.ts > replay.alert.v1 golden schema (\#967) > alert schema matches lockfile # time=0.50ms
ok 1566 - src/replay/backfill.test.ts > ReplayBackfillService > cursor reflects last processed page boundary # time=12.39ms
ok 1567 - src/replay/backfill.test.ts > ReplayBackfillService > reports duplicate events deterministically # time=2.34ms
ok 1568 - src/replay/backfill.test.ts > ReplayBackfillService > resume from partial cursor produces no event gaps # time=1.01ms
ok 1569 - src/replay/backfill.test.ts > ReplayBackfillService > survives interruption mid-page and resumes correctly # time=10.17ms
ok 1570 - src/replay/backfill.test.ts > ReplayBackfillService > repeat backfill with same inputs produces identical store state # time=1.36ms
ok 1571 - src/replay/backfill.test.ts > ReplayBackfillService > resets invalid cursor and emits alert # time=5.25ms
ok 1572 - src/replay/backfill.test.ts > ReplayBackfillService > resets cursor with empty signature and emits alert # time=0.29ms
ok 1573 - src/replay/backfill.test.ts > ReplayBackfillService > no duplicate report when no duplicates detected # time=0.28ms
ok 1574 - src/replay/bridge.test.ts > ReplayEventBridge storage defaults > defaults to a durable sqlite store when no store config is provided # time=1.33ms
ok 1575 - src/replay/bridge.test.ts > ReplayEventBridge storage defaults > preserves explicit in-memory store selection # time=0.47ms
ok 1576 - src/replay/bridge.test.ts > ReplayEventBridge storage defaults > rejects invalid sqlite config instead of silently falling back # time=0.51ms
ok 1577 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > persists replay records and cursor deterministically # time=30.52ms
ok 1578 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > applies ttl retention and drops old events # time=2.97ms
ok 1579 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > applies max events per task and preserves deterministic ordering # time=4.42ms
ok 1580 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > applies max events per dispute # time=2.13ms
ok 1581 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > applies max total event cap # time=8.45ms
ok 1582 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > compacts deterministically when compaction is enabled # time=13.77ms
ok 1583 - src/replay/sqlite-store.test.ts > SqliteReplayTimelineStore > resumes backfill from persisted cursor for sqlite store # time=17.79ms
ok 1584 - src/policy/audit-trail.test.ts > audit-trail > appends entries and maintains a valid hash chain # time=4.72ms
ok 1585 - src/policy/audit-trail.test.ts > audit-trail > detects tampering via verify() # time=0.31ms
ok 1586 - src/policy/audit-trail.test.ts > audit-trail > sets prevEntryHash to empty string for the first entry and computes entryHash deterministically # time=0.14ms
ok 1587 - src/policy/audit-trail.test.ts > audit-trail > produces deterministic input/output hashes across calls # time=0.16ms
ok 1588 - src/policy/audit-trail.test.ts > audit-trail > verifies empty audit trail as valid # time=0.14ms
ok 1589 - src/policy/bundles.test.ts > policy bundles > merges overlays with restrictive semantics # time=2.19ms
ok 1590 - src/policy/bundles.test.ts > policy bundles > resolves tenant and project overlays on top of the global bundle # time=0.52ms
ok 1591 - src/policy/engine.test.ts > PolicyEngine > allows everything when policy is disabled # time=1.49ms
ok 1592 - src/policy/engine.test.ts > PolicyEngine > blocks denied tools deterministically # time=0.48ms
ok 1593 - src/policy/engine.test.ts > PolicyEngine > enforces action budgets # time=0.21ms
ok 1594 - src/policy/engine.test.ts > PolicyEngine > enforces spend budgets # time=0.27ms
ok 1595 - src/policy/engine.test.ts > PolicyEngine > auto-trips circuit breaker on repeated violations # time=0.34ms
ok 1596 - src/policy/engine.test.ts > PolicyEngine > safe mode allows reads but blocks writes # time=0.20ms
ok 1597 - src/policy/engine.test.ts > PolicyEngine > evaluateOrThrow throws structured violation errors # time=0.24ms
ok 1598 - src/policy/engine.test.ts > PolicyEngine > enforces tenant bundle tool denials # time=0.11ms
ok 1599 - src/policy/engine.test.ts > PolicyEngine > enforces run-scoped action budgets # time=0.98ms
ok 1600 - src/policy/engine.test.ts > PolicyEngine > simulate does not consume action budgets # time=0.27ms
ok 1601 - src/policy/engine.test.ts > PolicyEngine > enforces rolling token budgets without consuming them in simulate mode # time=0.29ms
ok 1602 - src/policy/engine.test.ts > PolicyEngine > enforces run-scoped runtime budgets # time=0.17ms
ok 1603 - src/policy/engine.test.ts > PolicyEngine > enforces scoped process budgets from per-scope process counts # time=1.24ms
ok 1604 - src/policy/engine.test.ts > PolicyEngine > blocks denied policy classes # time=0.10ms
ok 1605 - src/policy/engine.test.ts > PolicyEngine > enforces network host allow-lists # time=0.21ms
ok 1606 - src/policy/engine.test.ts > PolicyEngine > enforces absolute write-scope roots # time=0.47ms
ok 1607 - src/policy/governance-audit-log.test.ts > InMemoryGovernanceAuditLog > appends signed records with a valid chain # time=2.52ms
ok 1608 - src/policy/governance-audit-log.test.ts > InMemoryGovernanceAuditLog > redacts configured actor, fields, and patterns before persistence # time=0.42ms
ok 1609 - src/policy/governance-audit-log.test.ts > InMemoryGovernanceAuditLog > preserves a complete signed chain across all governance event types # time=0.77ms
ok 1610 - src/policy/governance-audit-log.test.ts > InMemoryGovernanceAuditLog > archives pruned records when retentionMode=archive # time=0.52ms
ok 1611 - src/policy/governance-audit-log.test.ts > MemoryBackedGovernanceAuditLog > persists and reloads a verified audit chain # time=1.01ms
ok 1612 - src/policy/governance-audit-log.test.ts > MemoryBackedGovernanceAuditLog > archives expired records under legal hold instead of deleting them # time=0.45ms
ok 1613 - src/policy/governance-audit-log.test.ts > MemoryBackedGovernanceAuditLog > rejects retention downgrades once legal hold or archive mode is persisted # time=0.66ms
ok 1614 - src/policy/incident-roles.test.ts > incident-roles > defines permissions for every role x command combination # time=2.27ms
ok 1615 - src/policy/incident-roles.test.ts > incident-roles > read role cannot mutate # time=0.17ms
ok 1616 - src/policy/incident-roles.test.ts > incident-roles > admin can do everything # time=0.14ms
ok 1617 - src/policy/incident-roles.test.ts > incident-roles > role escalation is blocked # time=0.11ms
ok 1618 - src/policy/incident-roles.test.ts > incident-roles > enforceRole throws IncidentRoleViolationError # time=0.14ms
ok 1619 - src/policy/incident-roles.test.ts > incident-roles > IncidentRoleViolationError exposes role and command # time=0.07ms
ok 1620 - src/policy/mcp-governance.test.ts > mcp governance > requires sandboxed and untrusted servers to run in the desktop container # time=1.13ms
ok 1621 - src/policy/mcp-governance.test.ts > mcp governance > rejects unpinned npx package specs when supply-chain pinning is required # time=0.26ms
ok 1622 - src/policy/mcp-governance.test.ts > mcp governance > requires digest-pinned desktop images when configured # time=0.15ms
ok 1623 - src/policy/mcp-governance.test.ts > mcp governance > filters tool catalogs before hashing and approval generation # time=0.35ms
ok 1624 - src/policy/mcp-governance.test.ts > mcp governance > verifies binary and catalog digests when provided # time=7.87ms
ok 1625 - src/policy/policy-gate.test.ts > createPolicyGateHook > blocks denied tools in enforcement mode # time=3.48ms
ok 1626 - src/policy/policy-gate.test.ts > createPolicyGateHook > allows denied tools in shadow mode and records the simulated violation # time=53.51ms
ok 1627 - src/policy/policy-gate.test.ts > createPolicyGateHook > reclassifies credential-backed HTTP calls as secret access # time=0.39ms
ok 1628 - src/policy/policy-gate.test.ts > createPolicyGateHook > blocks nested browser session navigation outside the allowed host set # time=0.49ms
ok 1629 - src/policy/policy-gate.test.ts > createPolicyGateHook > blocks nested browser session uploads outside allowed write roots # time=0.23ms
ok 1630 - src/policy/production-profile.test.ts > production profile defaults > exposes all required production defaults # time=1.77ms
ok 1631 - src/policy/production-profile.test.ts > applyProductionProfile > uses production defaults when base is empty # time=0.34ms
ok 1632 - src/policy/production-profile.test.ts > applyProductionProfile > applies operator overrides # time=0.08ms
ok 1633 - src/policy/production-profile.test.ts > applyProductionProfile > prevents maxRiskScore from being weakened # time=0.11ms
ok 1634 - src/policy/production-profile.test.ts > applyProductionProfile > forces HTTPS when applying base config # time=0.09ms
ok 1635 - src/policy/production-profile.test.ts > applyProductionProfile > merges redaction strip fields # time=0.47ms
ok 1636 - src/policy/production-profile.test.ts > validateProductionReadiness > passes for baseline production profile # time=0.29ms
ok 1637 - src/policy/production-profile.test.ts > validateProductionReadiness > fails when policy is disabled # time=0.08ms
ok 1638 - src/policy/production-profile.test.ts > validateProductionReadiness > fails when circuit breaker is disabled # time=0.35ms
ok 1639 - src/policy/production-profile.test.ts > validateProductionReadiness > fails when max risk is too high # time=0.10ms
ok 1640 - src/policy/production-profile.test.ts > production defaults and budget values > uses expected evidence retention defaults # time=0.10ms
ok 1641 - src/policy/production-profile.test.ts > production defaults and budget values > uses expected deletion defaults # time=0.04ms
ok 1642 - src/policy/production-profile.test.ts > production defaults and budget values > pins production action budgets # time=0.06ms
ok 1643 - src/policy/production-profile.test.ts > production defaults and budget values > requires redaction in production profile # time=0.11ms
ok 1644 - src/policy/production-profile.test.ts > smoke > accepts baseline produced config after applying profile # time=0.05ms
ok 1645 - src/policy/session-credentials.test.ts > SessionCredentialBroker > issues short-lived session leases and injects headers for matching policy-scoped credentials # time=3.08ms
ok 1646 - src/policy/session-credentials.test.ts > SessionCredentialBroker > returns a clear error when a policy credential references a missing environment variable # time=0.27ms
ok 1647 - src/policy/session-credentials.test.ts > SessionCredentialBroker > revokes active leases and reports them as inactive afterward # time=0.87ms
ok 1648 - src/policy/session-credentials.test.ts > SessionCredentialBroker > keeps tenant-scoped credentials isolated between tenants # time=0.41ms
ok 1649 - src/policy/tool-governance.test.ts > tool-governance > classifies read tools as low-risk read_only # time=1.03ms
ok 1650 - src/policy/tool-governance.test.ts > tool-governance > classifies shell surfaces as credential_secret_access # time=0.42ms
ok 1651 - src/policy/tool-governance.test.ts > tool-governance > classifies wallet transfers as irreversible financial actions # time=0.20ms
ok 1652 - src/policy/tool-governance.test.ts > tool-governance > classifies skill-based token swaps and transfers as irreversible financial actions # time=0.18ms
ok 1653 - src/policy/tool-governance.test.ts > tool-governance > builds a policy action with explicit scope # time=0.45ms
ok 1654 - src/policy/tool-governance.test.ts > tool-governance > captures network hosts and write paths in metadata # time=0.41ms
ok 1655 - src/policy/tool-governance.test.ts > tool-governance > captures nested browser session action hosts and upload paths # time=0.29ms
ok 1656 - src/policy/tool-governance.test.ts > tool-governance > infers write access for non-read tool names # time=0.06ms
ok 1657 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > returns ask unchanged when no approvalRequester is supplied # time=1.04ms
ok 1658 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > resolves the ask through approvalRequester and returns the resolved allow # time=0.50ms
ok 1659 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > resolves the ask through approvalRequester and returns the resolved deny # time=0.18ms
ok 1660 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > passes the rule's approvalConfig through to the requester # time=0.36ms
ok 1661 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > does not invoke the requester when a deny rule matches earlier # time=0.24ms
ok 1662 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > does not invoke the requester when an allow rule matches alongside the ask # time=0.10ms
ok 1663 - src/policy/tool-permission-evaluator.test.ts > ToolPermissionEvaluator — approvalRequester (Phase G) > does not invoke the requester for tool calls that do not match the ask pattern # time=0.15ms
ok 1664 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > denies when a deny rule matches # time=1.40ms
ok 1665 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > allows when an allow rule matches # time=0.32ms
ok 1666 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > deny takes precedence over allow when deny comes first # time=0.33ms
ok 1667 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > deny takes precedence over allow even when allow comes first # time=0.35ms
ok 1668 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > defaults to deny when no rule matches # time=0.19ms
ok 1669 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > glob pattern system.* matches system.bash # time=0.16ms
ok 1670 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > glob pattern system.* matches system.http # time=0.11ms
ok 1671 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > glob pattern system.* does NOT match systemd # time=0.07ms
ok 1672 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > wildcard * matches everything # time=0.47ms
ok 1673 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > exact name matches exactly # time=0.12ms
ok 1674 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > glob pattern works with deny rules # time=0.13ms
ok 1675 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > glob does not match across dot segments # time=0.04ms
ok 1676 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > heartbeatOnly blocks user-initiated calls # time=0.05ms
ok 1677 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > heartbeatOnly allows heartbeat-initiated calls # time=0.04ms
ok 1678 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > sessionIds restriction blocks non-matching sessions # time=0.04ms
ok 1679 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > sessionIds allows matching sessions # time=0.07ms
ok 1680 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > channels restriction blocks non-matching channels # time=0.04ms
ok 1681 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > channels allows matching channels # time=0.05ms
ok 1682 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > sandboxOnly blocks non-sandboxed calls # time=0.27ms
ok 1683 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > sandboxOnly allows sandboxed calls # time=0.06ms
ok 1684 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > allows calls within rate limit # time=0.10ms
ok 1685 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > blocks calls exceeding rate limit # time=0.41ms
ok 1686 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > rate limit window resets after expiry # time=0.48ms
ok 1687 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > all conditions must be met (AND logic) # time=0.34ms
ok 1688 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > rate limit combined with channel condition # time=0.09ms
ok 1689 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > updatePolicies replaces policy set and clears rate counters # time=0.07ms
ok 1690 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > updatePolicies changes which tools are allowed # time=0.05ms
ok 1691 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > recordCall tracks calls for rate limit externally # time=1.16ms
ok 1692 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > empty policies list defaults to deny # time=0.10ms
ok 1693 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > deny rule with unmet conditions does not block # time=0.06ms
ok 1694 - src/policy/tool-policy.test.ts > ToolPolicyEvaluator > first matching allow rule wins # time=0.32ms
ok 1695 - src/llm/active-task-context-prompt.test.ts > shouldInjectActiveTaskContext > returns false when there is no context # time=0.83ms
ok 1696 - src/llm/active-task-context-prompt.test.ts > shouldInjectActiveTaskContext > injects on first turn with a context # time=0.20ms
ok 1697 - src/llm/active-task-context-prompt.test.ts > shouldInjectActiveTaskContext > skips injection when the prior block fingerprint matches # time=0.15ms
ok 1698 - src/llm/active-task-context-prompt.test.ts > shouldInjectActiveTaskContext > re-injects when the fingerprint changes # time=0.35ms
ok 1699 - src/llm/active-task-context-prompt.test.ts > shouldInjectActiveTaskContext > re-injects only based on the most recent block # time=0.14ms
ok 1700 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > includes workspaceRoot and both artifact lists # time=0.28ms
ok 1701 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > shows (none) for empty artifact lists # time=0.13ms
ok 1702 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > truncates long artifact lists and counts the overflow # time=0.10ms
ok 1703 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > carries user role and runtime-only merge boundary plus anchor preserve # time=0.34ms
ok 1704 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > omits optional fields when the context does not supply them # time=0.16ms
ok 1705 - src/llm/active-task-context-prompt.test.ts > buildActiveTaskContextMessage > embeds the contract fingerprint so subsequent turns can dedup # time=0.12ms
ok 1706 - src/llm/active-task-context-prompt.test.ts > idempotent across consecutive turns > a second collectAttachments-like call with identical context yields no new block # time=0.09ms
ok 1707 - src/llm/attachment-injection.test.ts > collectAttachments > returns an empty message list when TodoWrite is not in the active toolset # time=1.82ms
ok 1708 - src/llm/attachment-injection.test.ts > collectAttachments > fires the reminder on empty history when TodoWrite is available (matches upstream) # time=0.39ms
ok 1709 - src/llm/attachment-injection.test.ts > collectAttachments > returns the TodoWrite reminder when its trigger conditions hold # time=0.20ms
ok 1710 - src/llm/attachment-injection.test.ts > collectAttachments > suppresses the TodoWrite reminder when TodoWrite is not in the active toolset # time=0.08ms
ok 1711 - src/llm/attachment-injection.test.ts > collectAttachments > does NOT suppress the TodoWrite reminder based on recent task.* use (independent sibling reminder) # time=0.12ms
ok 1712 - src/llm/attachment-injection.test.ts > collectAttachments > emits the task_reminder when task.update is available and task.* has been stale for 10+ turns # time=0.18ms
ok 1713 - src/llm/attachment-injection.test.ts > collectAttachments > emits both reminders on the same turn when both triggers fire # time=0.22ms
ok 1714 - src/llm/attachment-injection.test.ts > collectAttachments > preserves upstream priority: todo_reminder before task_reminder # time=0.12ms
ok 1715 - src/llm/attachment-injection.test.ts > collectAttachments > emits the verify_reminder when counters exceed threshold and execute_with_agent is advertised # time=0.37ms
ok 1716 - src/llm/attachment-injection.test.ts > collectAttachments > does not emit verify_reminder when counters are omitted (interactive surface) # time=0.10ms
ok 1717 - src/llm/attachment-injection.test.ts > collectAttachments > does not emit verify_reminder when execute_with_agent is not advertised # time=0.12ms
ok 1718 - src/llm/attachment-injection.test.ts > collectAttachments > suppresses verify_reminder when edit counter is below threshold # time=0.05ms
ok 1719 - src/llm/attachment-injection.test.ts > collectAttachments > suppresses verify_reminder when turn counter is below cadence # time=0.05ms
ok 1720 - src/llm/attachment-injection.test.ts > collectAttachments > returns the same result for identical inputs regardless of caller # time=0.10ms
ok 1721 - src/llm/chat-executor-config.test.ts > ChatExecutor configuration and routing decisions > allowedTools routing > allowedTools rejects disallowed tool name # time=12.87ms
ok 1722 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > skillInjector.inject() result appears in messages # time=11.88ms
ok 1723 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > skillInjector failure is non-blocking # time=10.69ms
ok 1724 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > memoryRetriever failure is non-blocking # time=1.17ms
ok 1725 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > memoryRetriever.retrieve() result appears in messages # time=7.73ms
ok 1726 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > progressProvider.retrieve() result appears in messages # time=1.15ms
ok 1727 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > progressProvider failure is non-blocking # time=0.81ms
ok 1728 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > progressProvider injected after learningProvider # time=0.76ms
ok 1729 - src/llm/chat-executor-context-injection.test.ts > ChatExecutor context injection > injection > does not inject persistent memory providers on a fresh session # time=0.76ms
ok 1730 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > treats real tool activity as productive continuation progress # time=5.36ms
ok 1731 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > flags low-progress narration-only continuation cycles # time=0.60ms
ok 1732 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > stops for diminishing returns after three low-progress continuation cycles # time=0.14ms
ok 1733 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > continues while the turn stays below the token budget threshold # time=22.07ms
ok 1734 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > stops token-budget continuation after repeated low-delta continuations # time=0.52ms
ok 1735 - src/llm/chat-executor-continuation.test.ts > chat-executor-continuation > keeps token-budget stalls from poisoning validator recovery diminishing returns # time=0.17ms
ok 1736 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > does not hard-stop the loop just because the same tool call keeps failing # time=20.55ms
ok 1737 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint after shell-builtin style system.bash failure # time=3.43ms
ok 1738 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint after missing local binary ENOENT on system.bash # time=2.23ms
ok 1739 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint after malformed grep direct-mode usage # time=0.86ms
ok 1740 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint after grep is given a pattern but no search path # time=3.19ms
ok 1741 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when npm run targets a missing script # time=1.06ms
ok 1742 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when npm workspace selectors do not match package names # time=2.22ms
ok 1743 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > emits an execution trace event when recovery hints are injected # time=1.28ms
ok 1744 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint for TypeScript rootDir scope errors # time=1.67ms
ok 1745 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint for duplicate export compiler errors # time=0.90ms
ok 1746 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint for JSON-escaped source content written into a compiler target # time=0.54ms
ok 1747 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > replaces stale recovery hints with the latest timeout hint and traces the active keys # time=0.98ms
ok 1748 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when CommonJS require is used against an exports-only package # time=0.44ms
ok 1749 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when localhost is blocked by system.browse # time=0.39ms
ok 1750 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when localhost is blocked by system.browserSessionStart # time=0.43ms
ok 1751 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when desktop.bash is unavailable # time=0.33ms
ok 1752 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when container MCP tools require desktop session # time=0.78ms
ok 1753 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when desktop-targeted command fails on system.bash # time=0.55ms
ok 1754 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when node invocation of agenc-runtime is denied # time=0.49ms
ok 1755 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when python is denied on system.bash # time=0.43ms
ok 1756 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > injects a recovery hint when filesystem path is outside allowlist # time=0.34ms
ok 1757 - src/llm/chat-executor-ctx-helpers.test.ts > ChatExecutor ctx-helpers behavior > tool loop stop reason and recovery hints > lets repeated failed rounds run until the normal round budget stops the loop # time=1.59ms
ok 1758 - src/llm/chat-executor-fallback.test.ts > callWithFallback > falls through to a second same-family model after a transient server error # time=2.62ms
ok 1759 - src/llm/chat-executor-fallback.test.ts > callWithFallback > uses non-stream chat for tool follow-up turns that still require tools # time=0.58ms
ok 1760 - src/llm/chat-executor-fallback.test.ts > callWithFallback > keeps streaming enabled for tool follow-up final-answer turns # time=0.27ms
ok 1761 - src/llm/chat-executor-fallback.test.ts > callWithFallback > stops fallback once the end-to-end deadline has expired instead of starting a 1ms retry # time=2.05ms
ok 1762 - src/llm/chat-executor-fallback.test.ts > callWithFallback > uses non-stream chat when streaming is explicitly disabled # time=0.38ms
ok 1763 - src/llm/chat-executor-fallback.test.ts > callWithFallback > tracks streamed content only from the successful provider attempt # time=1.21ms
ok 1764 - src/llm/chat-executor-fallback.test.ts > callWithFallback > strips runtime-only prompt metadata before provider serialization # time=0.43ms
ok 1765 - src/llm/chat-executor-fallback.test.ts > callWithFallback > passes an explicit empty allowlist for no-tool recovery turns # time=0.21ms
ok 1766 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > compacts instead of throwing when the current view exceeds the local threshold # time=24.79ms
ok 1767 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > resets token counter after compaction # time=2.70ms
ok 1768 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > emits provider trace events for pre-execution compaction calls # time=13.11ms
ok 1769 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > invokes onCompaction callback # time=5.98ms
ok 1770 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > short history skips summarization but still resets tokens # time=1.37ms
ok 1771 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > compacted is false when no budget set # time=0.46ms
ok 1772 - src/llm/chat-executor-history-compaction.test.ts > ChatExecutor history compaction > context compaction > second budget hit re-triggers compaction # time=0.97ms
ok 1773 - src/llm/chat-executor-in-flight-compaction.test.ts > ChatExecutor in-flight compaction > soft compaction threshold > uses a soft compaction threshold even when the hard session budget is unlimited # time=11.40ms
ok 1774 - src/llm/chat-executor-in-flight-compaction.test.ts > ChatExecutor in-flight compaction > soft compaction threshold > treats soft-threshold compaction failures as best-effort when the hard budget is unlimited # time=4.05ms
ok 1775 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > omits historical image payloads from normalized history # time=11.30ms
ok 1776 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > truncates oversized user messages before provider call # time=1.53ms
ok 1777 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > keeps synthetic user context separate from the active user turn # time=1.85ms
ok 1778 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > suppresses runaway repetitive assistant output # time=0.83ms
ok 1779 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > preserves long final assistant output without truncation # time=0.83ms
ok 1780 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > history normalization and message truncation > keeps prompt growth bounded across repeated long turns # time=10.15ms
ok 1781 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > truncates oversized assistant tool-call arguments before follow-up model calls # time=4.03ms
ok 1782 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > reports section-level budget diagnostics when constrained # time=3.63ms
ok 1783 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > caps additive runtime system hints via prompt budget config # time=3.08ms
ok 1784 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > retains one system anchor and sheds extra runtime system blocks under pressure # time=0.74ms
ok 1785 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > uses the interactive prompt snapshot and summary text when present # time=0.49ms
ok 1786 - src/llm/chat-executor-init.test.ts > ChatExecutor initialization and prompt budgeting > prompt budget diagnostics and runtime hint caps > suppresses semantic, learning, and progress retrieval when interactive context is present # time=0.38ms
ok 1787 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > per-call budget overrides > maxToolRounds enforced — stops after limit # time=46.82ms
ok 1788 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > per-call budget overrides > per-call maxToolRounds overrides constructor default # time=4.05ms
ok 1789 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > per-call budget overrides > per-call maxModelRecalls=0 removes the recall cap # time=3.17ms
ok 1790 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > per-call budget overrides > per-call toolBudgetPerRequest overrides constructor default # time=0.87ms
ok 1791 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > provider chat options and routed tool subset > passes routed tool subset to provider chat options # time=1.32ms
ok 1792 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > provider chat options and routed tool subset > passes provider trace callbacks through with logical call metadata # time=0.60ms
ok 1793 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > provider chat options and routed tool subset > passes allowedTools to provider chat options when no routing subset is active # time=0.63ms
ok 1794 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > provider chat options and routed tool subset > expands routed tool subset once when model requests a missed tool # time=1.27ms
ok 1795 - src/llm/chat-executor-model-orchestration.test.ts > ChatExecutor model orchestration > provider chat options and routed tool subset > emits execution trace events for routed misses and route expansion # time=6.24ms
ok 1796 - src/llm/chat-executor-parallel-dispatch.test.ts > chat-executor parallel tool dispatch (Phase B) > dispatches 3 concurrency-safe tool calls in parallel via Promise.all # time=140.66ms
ok 1797 - src/llm/chat-executor-parallel-dispatch.test.ts > chat-executor parallel tool dispatch (Phase B) > serializes calls when isConcurrencySafe returns false # time=389.47ms
ok 1798 - src/llm/chat-executor-parallel-dispatch.test.ts > chat-executor parallel tool dispatch (Phase B) > serializes calls when no isConcurrencySafe predicate is supplied # time=248.41ms
ok 1799 - src/llm/chat-executor-provider-retry.test.ts > shouldRetryProviderImmediately > returns false when attempts >= maxRetries # time=1.56ms
ok 1800 - src/llm/chat-executor-provider-retry.test.ts > shouldRetryProviderImmediately > returns false for validation_error # time=0.31ms
ok 1801 - src/llm/chat-executor-provider-retry.test.ts > shouldRetryProviderImmediately > returns false for authentication_error # time=0.25ms
ok 1802 - src/llm/chat-executor-provider-retry.test.ts > shouldRetryProviderImmediately > returns true for timeout with remaining retries # time=0.14ms
ok 1803 - src/llm/chat-executor-provider-retry.test.ts > shouldFallbackForFailureClass > returns false for validation_error # time=0.55ms
ok 1804 - src/llm/chat-executor-provider-retry.test.ts > shouldFallbackForFailureClass > returns false for cancelled # time=0.18ms
ok 1805 - src/llm/chat-executor-provider-retry.test.ts > shouldFallbackForFailureClass > returns true for timeout # time=0.26ms
ok 1806 - src/llm/chat-executor-provider-retry.test.ts > shouldFallbackForFailureClass > returns true for rate_limited # time=0.09ms
ok 1807 - src/llm/chat-executor-provider-retry.test.ts > shouldFallbackForFailureClass > returns true for malformed provider response envelopes # time=0.43ms
ok 1808 - src/llm/chat-executor-provider-retry.test.ts > computeProviderCooldownMs > returns linear cooldown based on failure count # time=0.15ms
ok 1809 - src/llm/chat-executor-provider-retry.test.ts > computeProviderCooldownMs > caps at maxCooldownMs # time=0.11ms
ok 1810 - src/llm/chat-executor-provider-retry.test.ts > computeProviderCooldownMs > returns 0 for first failure with zero delays # time=0.05ms
ok 1811 - src/llm/chat-executor-provider-retry.test.ts > annotateFailureError > annotates error with failureClass and stopReason # time=0.22ms
ok 1812 - src/llm/chat-executor-provider-retry.test.ts > annotateFailureError > handles non-Error values # time=0.05ms
ok 1813 - src/llm/chat-executor-provider-retry.test.ts > buildActiveCooldownSnapshot > returns empty array when no cooldowns active # time=0.28ms
ok 1814 - src/llm/chat-executor-provider-retry.test.ts > buildActiveCooldownSnapshot > filters out expired cooldowns # time=0.08ms
ok 1815 - src/llm/chat-executor-provider-retry.test.ts > buildActiveCooldownSnapshot > includes active cooldowns with retryAfterMs # time=0.38ms
ok 1816 - src/llm/chat-executor-provider-retry.test.ts > buildActiveCooldownSnapshot > sorts by provider name # time=46.42ms
ok 1817 - src/llm/chat-executor-provider-retry.test.ts > emitProviderTraceEvent > calls onProviderTraceEvent when provided # time=9.01ms
ok 1818 - src/llm/chat-executor-provider-retry.test.ts > emitProviderTraceEvent > does nothing when no trace handler # time=0.06ms
ok 1819 - src/llm/chat-executor-provider-retry.test.ts > maybeInjectProviderFault > is inert when no injector is provided # time=0.31ms
ok 1820 - src/llm/chat-executor-provider-retry.test.ts > maybeInjectProviderFault > throws an LLM timeout when an enabled provider fault matches # time=9.17ms
ok 1821 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > redirects long-running desktop shell work to structured process tools # time=1.33ms
ok 1822 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > redirects failed raw docker shell attempts to durable sandbox handles # time=1.15ms
ok 1823 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > tells the model to ask for required input instead of retrying requires_input tools # time=0.18ms
ok 1824 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a recovery hint for stale CMake cache path mismatches # time=0.43ms
ok 1825 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > rewrites a simple stale copied build harness to direct fresh-build commands before execution # time=1.53ms
ok 1826 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > rewrites direct configure commands that target the stale copied build directory # time=0.73ms
ok 1827 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > rewrites direct make calls from the stale copied build directory to the fresh build root # time=0.50ms
ok 1828 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > fails closed when a stale copied build harness hardcodes build/ but cannot be safely rewritten # time=1.42ms
ok 1829 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a round-level recovery hint when stale CMake cleanup falls into denied rm # time=1.54ms
ok 1830 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a round-level recovery hint when a stale repo harness is retried after a successful fresh build # time=0.84ms
ok 1831 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects the stale harness hint regardless of whether the fresh build succeeded earlier in the round # time=0.59ms
ok 1832 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > carries the stale harness hint across rounds when a later split-shell retry falls back into run_tests.sh # time=0.31ms
ok 1833 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > pins subsequent rebuilds to the established fresh build dir after a stale CMake cache is repaired # time=0.21ms
ok 1834 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > suggests a fresh build directory when rm is denied for stale build artifacts # time=0.16ms
ok 1835 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > suggests configuring a fresh build directory when make runs in an unconfigured stale build dir # time=0.19ms
ok 1836 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a recovery hint for compiler diagnostics so the model repairs source instead of rerunning build # time=1.01ms
ok 1837 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a stronger recovery hint for header type-order compiler failures # time=0.35ms
ok 1838 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a stronger recovery hint for cross-file compiler interface drift # time=0.11ms
ok 1839 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > injects a recovery hint when a repo script is run from the wrong cwd and shell stderr reports a path failure # time=0.14ms
ok 1840 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags heredoc commands that put a conjunction on a fresh line # time=0.09ms
ok 1841 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > redirects timed-out Vitest watch mode to single-run execution # time=0.09ms
ok 1842 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > redirects timed-out non-watch tests to source inspection instead of retry flailing # time=0.17ms
ok 1843 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > treats direct node execution of compiled test artifacts as a timed-out test run # time=0.33ms
ok 1844 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags unsupported Vitest threads flags and points to the supported pool option # time=0.08ms
ok 1845 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags missing project-local binaries without misclassifying them as shell builtins # time=0.14ms
ok 1846 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags unsupported workspace protocol failures as host tooling constraints # time=0.07ms
ok 1847 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags repo-local verification harness shadow copies and redirects to direct bounded verification # time=0.08ms
ok 1848 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags interactive CLI verification runs that only return banner or prompt text # time=1.67ms
ok 1849 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > does not flag interactive CLI verification when prompt-prefixed output still carries a semantic payload # time=0.14ms
ok 1850 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags timeout-wrapped shell assignments that hide a broken verification probe behind exit code 0 # time=0.27ms
ok 1851 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags recursive npm install lifecycle scripts before they burn the turn budget # time=0.14ms
ok 1852 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags local package imports that point at missing dist output # time=0.11ms
ok 1853 - src/llm/chat-executor-recovery.test.ts > chat-executor-recovery > flags direct-mode wildcard operands that rely on shell glob expansion # time=0.23ms
ok 1854 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > per-call streaming > per-call callback overrides constructor callback # time=9.86ms
ok 1855 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > per-call streaming > per-call callback used when no constructor callback set # time=1.64ms
ok 1856 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > per-call streaming > constructor callback used when per-call not provided # time=0.75ms
ok 1857 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > per-call streaming > no streaming when neither callback set # time=0.47ms
ok 1858 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > per-call streaming > per-call streaming persists through multi-round tool loop # time=3.39ms
ok 1859 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > stateful session wiring and result assembly > returns the resolved runtime workspace root with the final result # time=0.82ms
ok 1860 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > stateful session wiring and result assembly > does not inject a request milestone contract before the first model call # time=2.34ms
ok 1861 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > stateful session wiring and result assembly > injects compacted artifact refs into execution context for long-running sessions # time=0.97ms
ok 1862 - src/llm/chat-executor-request.test.ts > ChatExecutor request assembly > stateful session wiring and result assembly > dispatches StopFailure with api error context before rethrowing # time=2.54ms
ok 1863 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > prefers the active routed subset for evidence checks # time=3.60ms
ok 1864 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > keeps the broader turn universe available for contract guidance # time=0.51ms
ok 1865 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > carries forward the current routed subset when no explicit override is provided # time=0.14ms
ok 1866 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > falls back to allowed tools when routing exists but no route is active # time=0.12ms
ok 1867 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > preserves an explicitly empty routed override # time=0.07ms
ok 1868 - src/llm/chat-executor-routing-state.test.ts > chat-executor-routing-state > normalizes and applies the active routed subset in one place # time=0.17ms
ok 1869 - src/llm/chat-executor-state.test.ts > ChatExecutor state tracking > token budget > does not hard-fail solely because cumulative session usage exceeds the budget # time=33.69ms
ok 1870 - src/llm/chat-executor-state.test.ts > ChatExecutor state tracking > token budget > accumulates across multiple executions; resetSessionTokens clears # time=11.10ms
ok 1871 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false when there is no final content # time=1.03ms
ok 1872 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false on a normal text response with no success claim # time=0.97ms
ok 1873 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false on a success claim with no failed tool calls and no refusals # time=1.19ms
ok 1874 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false on an HONEST partial-success report (acknowledges failures) # time=0.41ms
ok 1875 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false when failed tool calls are not shell-like (e.g. failed readFile) # time=0.09ms
ok 1876 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate (pass cases) > returns shouldIntervene=false on a long detailed success message even if final length > threshold # time=0.28ms
ok 1877 - src/llm/chat-executor-stop-gate.test.ts > evaluateArtifactEvidenceGate > bypasses artifact enforcement in unsafe benchmark mode # time=0.66ms
ok 1878 - src/llm/chat-executor-stop-gate.test.ts > evaluateArtifactEvidenceGate > reports missing_successful_tool_evidence when a workflow turn has no successful tools # time=0.72ms
ok 1879 - src/llm/chat-executor-stop-gate.test.ts > evaluateArtifactEvidenceGate > reports missing_file_artifact_evidence for grounded-read workflows that inspect the wrong file # time=1.28ms
ok 1880 - src/llm/chat-executor-stop-gate.test.ts > checkFilesystemArtifacts > flags empty and missing files while skipping same-turn deletions # time=5.92ms
ok 1881 - src/llm/chat-executor-stop-gate.test.ts > checkFilesystemArtifacts > resolves relative write paths against the workspace root before statting # time=1.45ms
ok 1882 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_anti_fab_refusal > fires when an anti-fab refusal is in the ledger and the final text claims success # time=0.36ms
ok 1883 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_anti_fab_refusal > does NOT fire if the model honestly acknowledges the refusal # time=0.07ms
ok 1884 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — truncated_success_claim > fires on the exact 14-token truncation pattern from the live trace # time=0.12ms
ok 1885 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — truncated_success_claim > fires on a short success claim with at least one tool call # time=0.15ms
ok 1886 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — truncated_success_claim > does NOT fire on a short success claim when no tool calls happened (greeting / chat) # time=0.04ms
ok 1887 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — truncated_success_claim > does NOT fire on a short message with no success claim # time=0.04ms
ok 1888 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > fires when bash failed and the final text claims success # time=0.10ms
ok 1889 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > fires on 'all tests pass' phrasing # time=0.10ms
ok 1890 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > fires on 'binary exists' phrasing # time=0.06ms
ok 1891 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > does NOT fire when the model honestly acknowledges the failure # time=0.04ms
ok 1892 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > fires when the reply still claims terminal completion despite acknowledging remaining shell gaps # time=0.05ms
ok 1893 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > does NOT fire when an earlier shell failure was followed by a later shell success # time=0.05ms
ok 1894 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_bash > does NOT fire when failures are present but the model is reporting them, not claiming success # time=0.03ms
ok 1895 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_verification > fires when the latest verification probe failed and the final text claims completion # time=0.23ms
ok 1896 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_verification > does not fire when a later verification probe succeeded # time=0.07ms
ok 1897 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — false_success_after_failed_verification > does not fire when the final reply honestly reports the verification failure # time=0.04ms
ok 1898 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — detector priority > anti-fab refusal beats failed-bash when both are present # time=0.07ms
ok 1899 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — detector priority > truncated success beats failed-bash when both are present # time=0.05ms
ok 1900 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — blocking message contents > includes bounded recovery loop instruction # time=0.07ms
ok 1901 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — blocking message contents > evidence carries failure excerpts truncated to 200 chars # time=0.22ms
ok 1902 - src/llm/chat-executor-stop-gate.test.ts > evaluateTurnEndStopGate — blocking message contents > evidence reports only the latest unresolved shell failure # time=0.12ms
ok 1903 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Build succeeded" # time=0.03ms
ok 1904 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "the build is successful" # time=0.02ms
ok 1905 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Phase 0 complete" # time=0.02ms
ok 1906 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Phase 5 done" # time=0.02ms
ok 1907 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Phase 11 implemented" # time=0.02ms
ok 1908 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "All tests pass" # time=0.02ms
ok 1909 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "all tests passed" # time=0.02ms
ok 1910 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Tests passed" # time=0.02ms
ok 1911 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "binary exists" # time=0.02ms
ok 1912 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "binary is ready" # time=0.02ms
ok 1913 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "binary built" # time=0.02ms
ok 1914 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "All phases complete" # time=0.02ms
ok 1915 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "task complete" # time=0.02ms
ok 1916 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "implementation complete" # time=0.02ms
ok 1917 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "successfully built" # time=0.02ms
ok 1918 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "successfully implemented" # time=0.09ms
ok 1919 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "v11.0 complete" # time=0.02ms
ok 1920 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "ready to ship" # time=0.02ms
ok 1921 - src/llm/chat-executor-stop-gate.test.ts > FALSE_SUCCESS_RE > matches: "Done with phase 1" # time=0.02ms
ok 1922 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "but failed" # time=0.03ms
ok 1923 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "however the build failed" # time=0.02ms
ok 1924 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "did not work" # time=0.02ms
ok 1925 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "couldn't compile" # time=0.02ms
ok 1926 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "cannot continue" # time=0.02ms
ok 1927 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "partially complete" # time=0.02ms
ok 1928 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "except for the parser test" # time=0.02ms
ok 1929 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "unfortunately the test failed" # time=0.02ms
ok 1930 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "encountered errors" # time=0.02ms
ok 1931 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "errors occurred during compile" # time=0.02ms
ok 1932 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "missing dependency" # time=0.02ms
ok 1933 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "missing library libreadline" # time=0.02ms
ok 1934 - src/llm/chat-executor-stop-gate.test.ts > FAILURE_ACKNOWLEDGMENT_RE > matches: "incomplete" # time=0.02ms
ok 1935 - src/llm/chat-executor-text.test.ts > chat-executor-text > builds an authoritative runtime tool ledger with tool calls and provider citations # time=1.92ms
ok 1936 - src/llm/chat-executor-text.test.ts > chat-executor-text > surfaces provider-native server-side tool telemetry even without citations # time=0.25ms
ok 1937 - src/llm/chat-executor-text.test.ts > chat-executor-text > keeps oversized runtime tool ledgers bounded and marks them truncated # time=7.54ms
ok 1938 - src/llm/chat-executor-text.test.ts > chat-executor-text > uses successful delegated child output in fallback summaries # time=0.71ms
ok 1939 - src/llm/chat-executor-text.test.ts > chat-executor-text > does not replay delegated cwd claims as authoritative fallback summaries # time=0.27ms
ok 1940 - src/llm/chat-executor-text.test.ts > chat-executor-text > propagates delegated child output from generateFallbackContent # time=0.22ms
ok 1941 - src/llm/chat-executor-text.test.ts > chat-executor-text > suppresses delegated cwd echoes from the authoritative runtime tool ledger preview # time=0.26ms
ok 1942 - src/llm/chat-executor-text.test.ts > chat-executor-text > rewrites rejected delegated scope failures before replaying them to the model # time=0.11ms
ok 1943 - src/llm/chat-executor-text.test.ts > chat-executor-text > omits assistant delegated cwd summaries from replay history # time=0.51ms
ok 1944 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true when execution is marked isError # time=0.84ms
ok 1945 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for JSON error payloads # time=0.09ms
ok 1946 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for nested JSON error payloads # time=0.07ms
ok 1947 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for non-zero JSON exitCode # time=0.07ms
ok 1948 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for JSON timeout payloads # time=0.07ms
ok 1949 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true when shell stderr reports a path/cwd failure despite exitCode 0 # time=0.24ms
ok 1950 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for MCP plain-text failure signatures # time=0.12ms
ok 1951 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for plain-text tool execution errors # time=0.06ms
ok 1952 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for plain-text tool-not-found failures # time=0.38ms
ok 1953 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns true for desktop-session requirement failures # time=0.10ms
ok 1954 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > didToolCallFail > returns false for normal non-JSON output # time=0.11ms
ok 1955 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > extractToolFailureTextFromResult > preserves both stderr and stdout when a failing tool writes diagnostics to stdout # time=0.14ms
ok 1956 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > extractToolFailureTextFromResult > extracts nested error diagnostics from structured tool results # time=0.07ms
ok 1957 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > normalizeToolCallArguments > canonicalizes aliased filesystem argument names before execution # time=0.36ms
ok 1958 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > normalizeToolCallArguments > decodes over-escaped multiline write content before execution # time=0.22ms
ok 1959 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > normalizeToolCallArguments > decodes over-escaped edit strings without touching legitimate in-code escapes # time=0.10ms
ok 1960 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > normalizeToolCallArguments > decodes over-escaped bash commands before execution # time=0.09ms
ok 1961 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > repairToolCallArgumentsFromMessageText > repairs collaboration args from explicit field labels in the prompt # time=0.82ms
ok 1962 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > repairToolCallArgumentsFromMessageText > does not overwrite collaboration fields that were already present # time=0.07ms
ok 1963 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > repairToolCallArgumentsFromMessageText > does not repair raw agenc.createTask arguments # time=0.49ms
ok 1964 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > repairToolCallArgumentsFromMessageText > leaves human-friendly agenc.createTask arguments invalid # time=0.09ms
ok 1965 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > repairToolCallArgumentsFromMessageText > does not fall back to COMPUTE for tag-like agenc.createTask capabilities # time=0.06ms
ok 1966 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > summarizeToolArgumentChanges > returns changed argument fields between raw and normalized args # time=0.11ms
ok 1967 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > checkToolCallPermission > does not block repeated side-effect tools within the same round # time=0.07ms
ok 1968 - src/llm/chat-executor-tool-utils.test.ts > chat-executor-tool-utils > checkToolCallPermission > still blocks tools outside the routed subset # time=0.07ms
ok 1969 - src/llm/chat-executor-trace-inventory.test.ts > chat execution trace inventory > contains every required event type a coding turn emits # time=1.14ms
ok 1970 - src/llm/chat-executor-trace-inventory.test.ts > chat execution trace inventory > does not reference any deleted verifier / probe / autonomous event type # time=0.27ms
ok 1971 - src/llm/chat-executor-trace-inventory.test.ts > chat execution trace inventory > exposes exactly the expected set — field inventory snapshot # time=0.37ms
ok 1972 - src/llm/chat-executor-trace-inventory.test.ts > chat execution trace inventory > has no duplicate entries # time=0.06ms
ok 1973 - src/llm/chat-executor-usage.test.ts > accumulateUsage > mutates the running cumulative in place # time=1.03ms
ok 1974 - src/llm/chat-executor-usage.test.ts > accumulateUsage > handles zero-value deltas without changing the cumulative # time=0.20ms
ok 1975 - src/llm/chat-executor-usage.test.ts > accumulateUsage > composes multiple deltas into a correct running total # time=0.09ms
ok 1976 - src/llm/chat-executor-usage.test.ts > createCallUsageRecord > assembles the canonical record shape from inputs # time=0.29ms
ok 1977 - src/llm/chat-executor-usage.test.ts > createCallUsageRecord > surfaces providerRequestMetrics and compactionDiagnostics from the response # time=0.12ms
ok 1978 - src/llm/chat-executor-usage.test.ts > createCallUsageRecord > passes budgetDiagnostics through when provided # time=0.13ms
ok 1979 - src/llm/chat-executor-usage.test.ts > createCallUsageRecord > records the compaction phase when the call is a pre-execution summarization # time=0.18ms
ok 1980 - src/llm/chat-executor.test.ts > ChatExecutor > basic operation > primary provider returns response with correct result shape # time=17.72ms
ok 1981 - src/llm/chat-executor.test.ts > ChatExecutor > basic operation > includes system prompt as first message # time=4.90ms
ok 1982 - src/llm/chat-executor.test.ts > ChatExecutor > basic operation > uses chatStream when onStreamChunk provided # time=1.78ms
ok 1983 - src/llm/chat-executor.test.ts > ChatExecutor > basic operation > usedFallback is false when primary succeeds # time=0.58ms
ok 1984 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > falls back to secondary on LLMTimeoutError # time=1.06ms
ok 1985 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > falls back to secondary on LLMServerError # time=1.08ms
ok 1986 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > falls back to secondary on LLMRateLimitError # time=0.98ms
ok 1987 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > does NOT fall back on LLMAuthenticationError # time=0.91ms
ok 1988 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > does NOT fall back on LLMProviderError (non-transient) # time=1.83ms
ok 1989 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > falls back when a provider returns a malformed response envelope # time=0.97ms
ok 1990 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > retries transient provider failures on same provider before fallback # time=0.71ms
ok 1991 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > does not retry deterministic message validation failures # time=0.37ms
ok 1992 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > usedFallback is true when fallback used # time=0.30ms
ok 1993 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > falls back on transient provider outage text without status # time=0.42ms
ok 1994 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > all providers fail — throws last error # time=0.53ms
ok 1995 - src/llm/chat-executor.test.ts > ChatExecutor > fallback > annotates thrown provider failures with canonical stop reason # time=0.37ms
ok 1996 - src/llm/chat-executor.test.ts > ChatExecutor > cooldown > provider retried after cooldown expires # time=1.75ms
ok 1997 - src/llm/chat-executor.test.ts > ChatExecutor > cooldown > uses retryAfterMs from LLMRateLimitError when available # time=19.98ms
ok 1998 - src/llm/chat-executor.test.ts > ChatExecutor > cooldown > all providers in cooldown throws descriptive error # time=14.50ms
ok 1999 - src/llm/chat-executor.test.ts > ChatExecutor > cooldown > re-checks cooldown timing after earlier provider latency before skipping later providers # time=2.40ms
ok 2000 - src/llm/chat-executor.test.ts > ChatExecutor > cooldown > linear backoff capped at maxCooldownMs # time=1.28ms
ok 2001 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > single tool call round executes correctly # time=3.47ms
ok 2002 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > continues the tool loop when tool calls are present even if finishReason is stop # time=1.14ms
ok 2003 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > fails closed when the provider reports tool_calls without any tool calls # time=0.30ms
ok 2004 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > does not turn an empty post-tool follow-up into a fake tool-result success # time=0.68ms
ok 2005 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > fails closed when the terminal provider payload is empty after tool use # time=0.92ms
ok 2006 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > continues after a successful tool turn while token budget remains # time=5.53ms
ok 2007 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > does not apply token-budget continuation to structured-output turns # time=0.60ms
ok 2008 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > does not apply token-budget continuation when structured output is default-enabled # time=0.38ms
ok 2009 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > surfaces timeout detail instead of summarizing tool output when tool follow-up never starts # time=0.59ms
ok 2010 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > fails closed to the stop detail when max tool rounds end with another unresolved tool turn # time=1.10ms
ok 2011 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > forces one no-tool recovery turn after three consecutive real tool failures # time=1.16ms
ok 2012 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > fails closed when a forced no-tool recovery turn still emits tool calls # time=0.70ms
ok 2013 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > sanitizes screenshot tool payloads and keeps image artifacts out-of-band # time=28.02ms
ok 2014 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > does not replay inline screenshot image parts into follow-up prompts # time=1.72ms
ok 2015 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > sanitizes mixed markdown + embedded JSON base64 screenshot blobs # time=1.16ms
ok 2016 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > multi-round tool calls chain with context # time=0.72ms
ok 2017 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > preserves provider-native server-side tool telemetry for delegated research # time=0.38ms
ok 2018 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > repairs collaboration tool args from explicit prompt fields and traces the repair # time=1.43ms
ok 2019 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > invalid JSON args handled gracefully # time=0.51ms
ok 2020 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > ToolCallRecord includes name, args, result, isError, durationMs # time=0.44ms
ok 2021 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > suppresses narrative file-creation claims when tools never wrote files # time=40.22ms
ok 2022 - src/llm/chat-executor.test.ts > ChatExecutor > tool loop > preserves successful folder-creation replies when the only mutation is mkdir # time=1.25ms
ok 2023 - src/llm/chat-executor.test.ts > ChatExecutor > edge cases > empty history works (first message in session) # time=0.42ms
ok 2024 - src/llm/chat-executor.test.ts > ChatExecutor > edge cases > constructor throws if providers is empty # time=0.11ms
ok 2025 - src/llm/chat-executor.test.ts > ChatExecutor > edge cases > negative cooldown values are clamped to zero # time=0.22ms
ok 2026 - src/llm/context-compaction.test.ts > context compaction > preserves unresolved stub work even when the narrative summary falsely claims closure # time=29.06ms
ok 2027 - src/llm/context-compaction.test.ts > context compaction > overrides no-blocker compaction summaries when open verification loops remain # time=0.81ms
ok 2028 - src/llm/context-compaction.test.ts > context compaction > drops stale blocker narratives when later file changes and passing tests supersede them # time=1.07ms
ok 2029 - src/llm/context-compaction.test.ts > context compaction > preserves compiler interface-drift diagnostics as first-class artifact refs across compaction # time=1.09ms
ok 2030 - src/llm/context-compaction.test.ts > context compaction > rebuilds the compacted history with preserved multimodal messages # time=5.45ms
ok 2031 - src/llm/context-compaction.test.ts > context compaction > keeps session compaction tails aligned to whole tool turns # time=0.19ms
ok 2032 - src/llm/context-compaction.test.ts > context compaction > preserves a pre-existing boundary verbatim across re-compaction # time=0.31ms
ok 2033 - src/llm/context-compaction.test.ts > context compaction > excludes prior-boundary content from the new boundary's hash # time=0.28ms
ok 2034 - src/llm/context-compaction.test.ts > context compaction > isCompactBoundaryMessage recognizes both boundary shapes # time=0.36ms
ok 2035 - src/llm/delegation-learning.test.ts > delegation-learning > computes bounded final reward components # time=0.95ms
ok 2036 - src/llm/delegation-learning.test.ts > delegation-learning > derives stable context cluster ids from planning features # time=0.18ms
ok 2037 - src/llm/delegation-learning.test.ts > delegation-learning > stores bounded trajectory records in memory sink # time=0.51ms
ok 2038 - src/llm/errors.test.ts > classifyLLMFailure > classifies typed LLM errors # time=1.05ms
ok 2039 - src/llm/errors.test.ts > classifyLLMFailure > classifies runtime budget errors # time=0.16ms
ok 2040 - src/llm/errors.test.ts > classifyLLMFailure > maps unknown cancel-like failures to cancelled # time=0.07ms
ok 2041 - src/llm/errors.test.ts > classifyLLMFailure > maps non-matching unknown errors to unknown # time=0.13ms
ok 2042 - src/llm/errors.test.ts > mapLLMError > maps transient provider outage text without status to server error # time=0.50ms
ok 2043 - src/llm/errors.test.ts > mapLLMError > context window overflow (Phase I) > maps HTTP 413 status to LLMContextWindowExceededError # time=0.14ms
ok 2044 - src/llm/errors.test.ts > mapLLMError > context window overflow (Phase I) > maps 'context_length_exceeded' message to LLMContextWindowExceededError # time=0.23ms
ok 2045 - src/llm/errors.test.ts > mapLLMError > context window overflow (Phase I) > maps 'prompt too long' message to LLMContextWindowExceededError # time=0.07ms
ok 2046 - src/llm/errors.test.ts > mapLLMError > context window overflow (Phase I) > passes LLMContextWindowExceededError through untouched # time=0.31ms
ok 2047 - src/llm/errors.test.ts > mapLLMError > context window overflow (Phase I) > classifies LLMContextWindowExceededError as provider_error for cooldown purposes # time=0.08ms
ok 2048 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > yields request_start as the first event # time=9.10ms
ok 2049 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > yields an assistant event with the final content # time=6.11ms
ok 2050 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > yields tool_result events for each tool call in the result # time=33.02ms
ok 2051 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > yields request_start before any stream_chunk or assistant events # time=1.44ms
ok 2052 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > populates the Terminal with the legacy result fields # time=0.79ms
ok 2053 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > preserves shared continuation behavior through the executeChat adapter # time=12.40ms
ok 2054 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > drains provider stream chunks into stream_chunk events when chatStream is used # time=1.51ms
ok 2055 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > fires the pass-through onStreamChunk callback alongside generator events # time=1.16ms
ok 2056 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > tolerates pass-through callback errors without aborting # time=2.16ms
ok 2057 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > returns an error Terminal when the underlying execute rejects # time=1.00ms
ok 2058 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > propagates request_id through stream_chunk and assistant events # time=0.46ms
ok 2059 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > returns a Terminal with non-negative durationMs # time=0.32ms
ok 2060 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > yields assistant events before tool_result events in the final order # time=0.51ms
ok 2061 - src/llm/execute-chat.test.ts > executeChat (Phase C async generator) > returns an empty toolCalls array in Terminal when no tools were called # time=0.23ms
ok 2062 - src/llm/fallback.test.ts > FallbackLLMProvider > uses primary provider when it succeeds # time=1.49ms
ok 2063 - src/llm/fallback.test.ts > FallbackLLMProvider > falls back to secondary on timeout errors # time=0.42ms
ok 2064 - src/llm/fallback.test.ts > FallbackLLMProvider > does not fall back on authentication errors by default # time=0.43ms
ok 2065 - src/llm/fallback.test.ts > FallbackLLMProvider > throws when all providers fail # time=0.21ms
ok 2066 - src/llm/fallback.test.ts > FallbackLLMProvider > healthCheck returns true if any provider is healthy # time=0.21ms
ok 2067 - src/llm/messages.test.ts > normalizeMessagesForAPI > strips boundary system messages (snip/microcompact/context-collapse/autocompact) # time=3.62ms
ok 2068 - src/llm/messages.test.ts > normalizeMessagesForAPI > merges consecutive user messages # time=0.31ms
ok 2069 - src/llm/messages.test.ts > normalizeMessagesForAPI > does not merge synthetic user-context messages into adjacent user turns # time=0.30ms
ok 2070 - src/llm/messages.test.ts > normalizeMessagesForAPI > drops orphan tool messages # time=0.09ms
ok 2071 - src/llm/messages.test.ts > normalizeMessagesForAPI > can preserve orphan tool messages for downstream repair # time=0.08ms
ok 2072 - src/llm/messages.test.ts > normalizeMessagesForAPI > keeps tool messages whose toolCallId matches a prior assistant tool_call # time=0.09ms
ok 2073 - src/llm/messages.test.ts > applyCacheControlBreakpoints (Phase J) > tags the last system, last user, and last tool message # time=0.21ms
ok 2074 - src/llm/messages.test.ts > applyCacheControlBreakpoints (Phase J) > returns the input unchanged when empty # time=0.26ms
ok 2075 - src/llm/messages.test.ts > applyCacheControlBreakpoints (Phase J) > tags only what exists (no user message present) # time=0.32ms
ok 2076 - src/llm/messages.test.ts > applyCacheControlBreakpoints (Phase J) > does not modify the original array # time=0.28ms
ok 2077 - src/llm/messages.test.ts > applyCacheControlBreakpoints (Phase J) > integrates with normalizeMessagesForAPI end-to-end # time=0.28ms
ok 2078 - src/llm/model-routing-policy.test.ts > model-routing-policy — xAI structured-output capability > marks grok-code-fast-1 as NOT supporting structured outputs with tools # time=1.02ms
ok 2079 - src/llm/model-routing-policy.test.ts > model-routing-policy — xAI structured-output capability > marks grok-4 family models as supporting structured outputs with tools # time=0.18ms
ok 2080 - src/llm/model-routing-policy.test.ts > model-routing-policy — xAI structured-output capability > preserves generic non-grok structured-output defaulting (enabled unless explicitly disabled) # time=0.10ms
ok 2081 - src/llm/model-routing-policy.test.ts > model-routing-policy — session-pinned primary, no silent model swap > keeps the session's primary selected when structured outputs are requested, even with a capable fallback available # time=0.17ms
ok 2082 - src/llm/model-routing-policy.test.ts > model-routing-policy — session-pinned primary, no silent model swap > keeps the primary selected when structured outputs are NOT required # time=0.14ms
ok 2083 - src/llm/model-routing-policy.test.ts > model-routing-policy — session-pinned primary, no silent model swap > returns the same session-pinned model across repeated calls regardless of run class or requirements # time=0.35ms
ok 2084 - src/llm/model-routing-policy.test.ts > model-routing-policy — session-pinned primary, no silent model swap > falls back to a healthy secondary only when the primary is explicitly degraded # time=0.18ms
ok 2085 - src/llm/policy.test.ts > llm policy taxonomy > defines non-retriable validation/auth/budget failures # time=0.85ms
ok 2086 - src/llm/policy.test.ts > llm policy taxonomy > defines retriable transient provider classes # time=0.22ms
ok 2087 - src/llm/policy.test.ts > llm policy taxonomy > maps unknown failures to provider_error stop reason # time=0.08ms
ok 2088 - src/llm/prompt-budget.test.ts > prompt-budget > adapts prompt chars when max output tokens increase # time=1.07ms
ok 2089 - src/llm/prompt-budget.test.ts > prompt-budget > adapts prompt chars when context window shrinks # time=0.21ms
ok 2090 - src/llm/prompt-budget.test.ts > prompt-budget > keeps exactly one system anchor under pressure # time=0.57ms
ok 2091 - src/llm/prompt-budget.test.ts > prompt-budget > respects memory role contracts in caps # time=0.33ms
ok 2092 - src/llm/prompt-budget.test.ts > prompt-budget > records dropped/truncated diagnostics by section # time=0.39ms
ok 2093 - src/llm/provider-native-search.test.ts > provider-native-search > only enables Grok server-side tools for supported models # time=0.87ms
ok 2094 - src/llm/provider-native-search.test.ts > provider-native-search > does not advertise web_search for unsupported Grok models # time=0.38ms
ok 2095 - src/llm/provider-native-search.test.ts > provider-native-search > builds documented xAI native tool definitions from the capability surface # time=0.49ms
ok 2096 - src/llm/provider-native-search.test.ts > provider-native-search > does not route web_search for generic current-state prompts # time=0.87ms
ok 2097 - src/llm/provider-native-search.test.ts > provider-native-search > routes web_search for explicit research turns on supported models # time=0.27ms
ok 2098 - src/llm/provider-native-search.test.ts > provider-native-search > routes x_search for X-specific prompts # time=0.25ms
ok 2099 - src/llm/provider-native-search.test.ts > provider-native-search > routes file_search for uploaded-collection prompts # time=0.50ms
ok 2100 - src/llm/provider-native-search.test.ts > provider-native-search > routes code_interpreter for calculation and data-analysis prompts # time=0.35ms
ok 2101 - src/llm/provider-native-search.test.ts > provider-native-search > routes hybrid collection analysis to file_search plus code_interpreter # time=0.68ms
ok 2102 - src/llm/provider-native-search.test.ts > provider-native-search > routes remote MCP servers when the prompt matches configured metadata # time=0.15ms
ok 2103 - src/llm/provider-native-search.test.ts > provider-native-search > does not treat implementation mechanics language as research # time=0.17ms
ok 2104 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > serializes nested payloads as single-line JSON # time=19.02ms
ok 2105 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > preserves duplicate trace context arrays in persisted artifacts # time=1.00ms
ok 2106 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > serializes execution trace events as single-line JSON # time=0.93ms
ok 2107 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > suppresses high-volume provider stream events from the normal logger # time=0.34ms
ok 2108 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > summarizes tool_dispatch_finished results in the log preview # time=0.64ms
ok 2109 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > summarizes ANSI-heavy terminal payloads in the log preview while keeping the artifact payload # time=0.81ms
ok 2110 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > summarizes multiline provider payload text instead of logging escaped newlines # time=0.55ms
ok 2111 - src/llm/provider-trace-logger.test.ts > createProviderTraceEventLogger > serializes structured runtime trace events as single-line JSON # time=0.58ms
ok 2112 - src/llm/request-task-progress.test.ts > request-task-progress > derives milestone completion from latest completed task state and removes it when reopened # time=2.13ms
ok 2113 - src/llm/request-task-progress.test.ts > request-task-progress > treats unknown milestone ids as malformed and ignores task.list for metadata refresh # time=0.33ms
ok 2114 - src/llm/request-task-progress.test.ts > request-task-progress > resets verification pressure when a verification task or verifier attempt is observed # time=0.38ms
ok 2115 - src/llm/response-converter.test.ts > responseToOutput > returns exactly 4 bigints # time=3.20ms
ok 2116 - src/llm/response-converter.test.ts > responseToOutput > is deterministic — same input produces same output # time=0.58ms
ok 2117 - src/llm/response-converter.test.ts > responseToOutput > produces different output for different input # time=0.16ms
ok 2118 - src/llm/response-converter.test.ts > responseToOutput > all values fit in 64 bits # time=0.27ms
ok 2119 - src/llm/response-converter.test.ts > responseToOutput > handles empty string # time=0.25ms
ok 2120 - src/llm/response-converter.test.ts > responseToOutput > handles unicode input # time=0.41ms
ok 2121 - src/llm/response-converter.test.ts > responseToOutput > matches known SHA-256 test vector # time=0.14ms
ok 2122 - src/llm/run-budget.test.ts > buildRuntimeEconomicsPolicy > derives finite ceilings from runtime settings # time=1.22ms
ok 2123 - src/llm/run-budget.test.ts > recordRuntimeModelCall > tracks reroutes and budget ceiling breaches once usage crosses the limit # time=0.79ms
ok 2124 - src/llm/shell-write-policy.test.ts > evaluateShellWorkspaceWritePolicy > blocks shell heredoc writes into workspace source paths # time=1.64ms
ok 2125 - src/llm/shell-write-policy.test.ts > evaluateShellWorkspaceWritePolicy > allows shell writes under generated output roots # time=0.33ms
ok 2126 - src/llm/shell-write-policy.test.ts > evaluateShellWorkspaceWritePolicy > allows mkdir scaffolding in workspace source paths # time=0.32ms
ok 2127 - src/llm/shell-write-policy.test.ts > evaluateShellWorkspaceWritePolicy > blocks direct-mode tee writes into workspace source paths # time=0.19ms
ok 2128 - src/llm/streaming-bridge.test.ts > streaming-bridge > applyEvent + accumulator > accumulates assistant text content and usage # time=1.25ms
ok 2129 - src/llm/streaming-bridge.test.ts > streaming-bridge > applyEvent + accumulator > records tool results into the toolCalls ledger # time=0.75ms
ok 2130 - src/llm/streaming-bridge.test.ts > streaming-bridge > applyEvent + accumulator > flips compacted=true on any tombstone event # time=0.10ms
ok 2131 - src/llm/streaming-bridge.test.ts > streaming-bridge > applyEvent + accumulator > ignores request_start / tool_use_summary for the base ledger # time=0.69ms
ok 2132 - src/llm/streaming-bridge.test.ts > streaming-bridge > applyEvent + accumulator > extracts text from multimodal content parts # time=0.15ms
ok 2133 - src/llm/streaming-bridge.test.ts > streaming-bridge > drainToLegacyCallbacks > drains a generator and fires onStreamChunk for each stream_chunk # time=0.72ms
ok 2134 - src/llm/streaming-bridge.test.ts > streaming-bridge > drainToLegacyCallbacks > works when no onStreamChunk is supplied # time=0.14ms
ok 2135 - src/llm/streaming-bridge.test.ts > streaming-bridge > buildChatExecutorResultFromEvents > assembles a ChatExecutorResult from events + terminal + seed # time=0.39ms
ok 2136 - src/llm/streaming-bridge.test.ts > streaming-bridge > buildChatExecutorResultFromEvents > prefers terminal.finalContent over the last assistant text # time=0.34ms
ok 2137 - src/llm/streaming-bridge.test.ts > streaming-bridge > buildChatExecutorResultFromEvents > prefers terminal.tokenUsage when populated # time=0.11ms
ok 2138 - src/llm/task-reminder.test.ts > getTurnsSinceTaskManagement > returns Infinity when no task management call has been made # time=0.91ms
ok 2139 - src/llm/task-reminder.test.ts > getTurnsSinceTaskManagement > counts assistant turns since the last task.create call # time=0.16ms
ok 2140 - src/llm/task-reminder.test.ts > getTurnsSinceTaskManagement > counts assistant turns since the last task.update call # time=0.07ms
ok 2141 - src/llm/task-reminder.test.ts > getTurnsSinceTaskManagement > does NOT count task.list, task.get, task.wait, or task.output # time=0.18ms
ok 2142 - src/llm/task-reminder.test.ts > getTurnsSinceTaskManagement > picks the most recent management call when multiple exist # time=0.06ms
ok 2143 - src/llm/task-reminder.test.ts > getTurnsSinceLastTaskReminder > returns Infinity when no reminder has been injected # time=0.17ms
ok 2144 - src/llm/task-reminder.test.ts > getTurnsSinceLastTaskReminder > detects a prior reminder via the header prefix # time=0.11ms
ok 2145 - src/llm/task-reminder.test.ts > shouldInjectTaskReminder > returns false when task.update is not in activeToolNames # time=0.08ms
ok 2146 - src/llm/task-reminder.test.ts > shouldInjectTaskReminder > returns true when both thresholds are met # time=0.34ms
ok 2147 - src/llm/task-reminder.test.ts > shouldInjectTaskReminder > suppresses when task.update was called within the last 10 turns # time=0.16ms
ok 2148 - src/llm/task-reminder.test.ts > shouldInjectTaskReminder > fires once task.update is past the 10-turn window # time=0.13ms
ok 2149 - src/llm/task-reminder.test.ts > shouldInjectTaskReminder > suppresses when a reminder was injected within the last 10 turns # time=0.07ms
ok 2150 - src/llm/task-reminder.test.ts > buildTaskReminderMessage > wraps the message in system-reminder tags # time=0.08ms
ok 2151 - src/llm/task-reminder.test.ts > buildTaskReminderMessage > includes the verbatim upstream header # time=0.10ms
ok 2152 - src/llm/task-reminder.test.ts > buildTaskReminderMessage > emits user role with runtime-only user_context merge boundary and anchorPreserve # time=0.05ms
ok 2153 - src/llm/task-reminder.test.ts > buildTaskReminderMessage > appends the task list when tasks exist # time=0.13ms
ok 2154 - src/llm/task-reminder.test.ts > buildTaskReminderMessage > omits the task list section when empty # time=0.06ms
ok 2155 - src/llm/todo-reminder.test.ts > getTurnsSinceTodoWrite > returns Infinity when no history contains a TodoWrite call # time=0.86ms
ok 2156 - src/llm/todo-reminder.test.ts > getTurnsSinceTodoWrite > returns 0 when the most recent assistant turn called TodoWrite # time=0.18ms
ok 2157 - src/llm/todo-reminder.test.ts > getTurnsSinceTodoWrite > counts only assistant turns that intervene after the last call # time=0.08ms
ok 2158 - src/llm/todo-reminder.test.ts > getTurnsSinceLastTodoReminder > returns Infinity when no reminder has been emitted # time=0.10ms
ok 2159 - src/llm/todo-reminder.test.ts > getTurnsSinceLastTodoReminder > finds a reminder by its stable header prefix # time=0.09ms
ok 2160 - src/llm/todo-reminder.test.ts > getTurnsSinceLastTodoReminder > uses only the header-prefix sentinel, not arbitrary content # time=0.05ms
ok 2161 - src/llm/todo-reminder.test.ts > shouldInjectTodoReminder > returns false when TodoWrite is not in the active toolset # time=0.11ms
ok 2162 - src/llm/todo-reminder.test.ts > shouldInjectTodoReminder > returns false when turnsSinceTodoWrite is below the threshold # time=0.15ms
ok 2163 - src/llm/todo-reminder.test.ts > shouldInjectTodoReminder > returns true when both thresholds are met # time=0.32ms
ok 2164 - src/llm/todo-reminder.test.ts > shouldInjectTodoReminder > does not suppress based on task.* tool-call history (independent sibling reminder) # time=0.09ms
ok 2165 - src/llm/todo-reminder.test.ts > shouldInjectTodoReminder > returns false when another reminder was emitted within the window # time=0.10ms
ok 2166 - src/llm/todo-reminder.test.ts > buildTodoReminderMessage > emits the verbatim upstream header wrapped in <system-reminder> tags # time=0.12ms
ok 2167 - src/llm/todo-reminder.test.ts > buildTodoReminderMessage > renders the todo list joined by newlines inside square brackets # time=0.04ms
ok 2168 - src/llm/todo-reminder.test.ts > buildTodoReminderMessage > omits the list section entirely when there are no todos # time=0.06ms
ok 2169 - src/llm/todo-reminder.test.ts > buildTodoReminderMessage > marks the runtime-only merge boundary so downstream surfaces filter it # time=0.04ms
ok 2170 - src/llm/tool-protocol-state.test.ts > tool-protocol-state > tracks opened tool calls and clears them as results arrive # time=1.12ms
ok 2171 - src/llm/tool-protocol-state.test.ts > tool-protocol-state > records repair and violation counters # time=0.21ms
ok 2172 - src/llm/tool-protocol-state.test.ts > tool-protocol-state > treats actual tool calls as the continuation signal # time=0.13ms
ok 2173 - src/llm/tool-protocol-state.test.ts > tool-protocol-state > detects tool_calls finish reasons without tool calls # time=0.11ms
ok 2174 - src/llm/tool-turn-validator.test.ts > tool-turn validator > accepts a valid assistant tool_calls -> tool results sequence # time=1.23ms
ok 2175 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects one malformed pair (assistant without tool_calls + tool) # time=0.61ms
ok 2176 - src/llm/tool-turn-validator.test.ts > tool-turn validator > accepts a leading tool-result block when previous_response_id continuity is in use # time=0.14ms
ok 2177 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects two malformed pairs and fails fast at first invalid pair # time=0.17ms
ok 2178 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects mixed valid/invalid sequence # time=0.15ms
ok 2179 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects duplicate tool_call ids declared by assistant # time=0.13ms
ok 2180 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects non-tool messages while tool results are still pending # time=0.34ms
ok 2181 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects duplicate tool result messages for the same toolCallId # time=0.21ms
ok 2182 - src/llm/tool-turn-validator.test.ts > tool-turn validator > rejects deterministic message-order/tool-id mutation set # time=0.43ms
ok 2183 - src/llm/tool-turn-validator.test.ts > tool-turn validator > inserts synthetic tool results when an assistant tool call is missing its result # time=0.32ms
ok 2184 - src/llm/tool-turn-validator.test.ts > tool-turn validator > drops duplicate tool results during repair # time=0.47ms
ok 2185 - src/llm/types.test.ts > validateToolCall > accepts a valid tool call payload # time=1.16ms
ok 2186 - src/llm/types.test.ts > validateToolCall > rejects missing ids # time=0.18ms
ok 2187 - src/llm/types.test.ts > validateToolCall > rejects empty names # time=0.07ms
ok 2188 - src/llm/types.test.ts > validateToolCall > rejects non-JSON argument strings # time=0.14ms
ok 2189 - src/llm/types.test.ts > validateToolCall > preserves valid JSON structure before decoding HTML entities in string values # time=0.10ms
ok 2190 - src/llm/types.test.ts > validateToolCall > falls back to decoding the raw JSON text only when the original JSON is invalid # time=0.12ms
ok 2191 - src/llm/types.test.ts > validateToolCall > returns a structured failure reason for rejected tool calls # time=0.12ms
ok 2192 - src/llm/types.test.ts > isAnchorPreserved > returns true only when runtimeOnly.anchorPreserve === true # time=0.19ms
ok 2193 - src/llm/types.test.ts > partitionByAnchorPreserve > splits into anchor-preserved and rest, preserving within-subset order # time=0.44ms
ok 2194 - src/llm/types.test.ts > partitionByAnchorPreserve > returns two empty arrays for empty input # time=0.09ms
ok 2195 - src/llm/types.test.ts > partitionByAnchorPreserve > returns all-rest when no message is anchor-preserved # time=0.12ms
ok 2196 - src/llm/types.test.ts > partitionByAnchorPreserve > returns all-anchor-preserved when every message is marked # time=0.08ms
ok 2197 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > TEST_FILE_PATH_RE / isVerificationTargetPath > matches plural and singular test directories # time=1.33ms
ok 2198 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > TEST_FILE_PATH_RE / isVerificationTargetPath > matches *.test.* and *.spec.* suffixes # time=0.10ms
ok 2199 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > TEST_FILE_PATH_RE / isVerificationTargetPath > does not match unrelated paths # time=0.16ms
ok 2200 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > TEST_FILE_PATH_RE / isVerificationTargetPath > backs isVerificationTargetPath via the exported regex # time=0.07ms
ok 2201 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > tool name classifiers > recognizes file-write tools # time=0.09ms
ok 2202 - src/llm/verification-target-guard.test.ts > verification-target-guard classifiers > tool name classifiers > recognizes shell tools # time=0.07ms
ok 2203 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > refuses writeFile over a harness the prior failing bash call referenced by basename (incident repro) # time=0.40ms
ok 2204 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > refuses appendFile targeting a harness referenced in a prior failure # time=0.08ms
ok 2205 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > refuses desktop.text_editor targeting a spec file referenced in a prior failure # time=0.31ms
ok 2206 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > allows writes to a harness when no prior bash call failed # time=0.10ms
ok 2207 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > allows writes to a harness when the failing bash did not reference that harness # time=0.13ms
ok 2208 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > allows writes to non-harness paths even after a failing bash call # time=0.04ms
ok 2209 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > is a no-op for non-write tools # time=0.04ms
ok 2210 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > is a no-op when the write target is missing or not a string # time=0.05ms
ok 2211 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > scans all prior calls, not just the immediately preceding one # time=0.05ms
ok 2212 - src/llm/verification-target-guard.test.ts > evaluateWriteOverFailedVerification > case-insensitive basename match # time=0.10ms
ok 2213 - src/llm/verify-reminder.test.ts > isMutatingTool > identifies structured file-modification tools # time=1.94ms
ok 2214 - src/llm/verify-reminder.test.ts > isMutatingTool > does NOT count read-only or shell tools # time=0.33ms
ok 2215 - src/llm/verify-reminder.test.ts > isVerifierSpawnFromRecord > returns true for execute_with_agent with non-empty verifierObligations # time=0.09ms
ok 2216 - src/llm/verify-reminder.test.ts > isVerifierSpawnFromRecord > returns false for execute_with_agent without verifierObligations # time=0.06ms
ok 2217 - src/llm/verify-reminder.test.ts > isVerifierSpawnFromRecord > returns false for execute_with_agent with empty verifierObligations array # time=0.06ms
ok 2218 - src/llm/verify-reminder.test.ts > isVerifierSpawnFromRecord > returns false for non execute_with_agent tools even with the field # time=0.05ms
ok 2219 - src/llm/verify-reminder.test.ts > containsVerdictMarkerInToolResult > matches VERDICT: PASS|FAIL|PARTIAL only in execute_with_agent results # time=0.14ms
ok 2220 - src/llm/verify-reminder.test.ts > containsVerdictMarkerInToolResult > does NOT match VERDICT strings in unrelated tool results (scoping) # time=0.08ms
ok 2221 - src/llm/verify-reminder.test.ts > containsVerdictMarkerInToolResult > returns false when execute_with_agent result has no marker # time=0.33ms
ok 2222 - src/llm/verify-reminder.test.ts > messageContainsVerifyReminderPrefix > matches the header prefix in string content # time=0.10ms
ok 2223 - src/llm/verify-reminder.test.ts > messageContainsVerifyReminderPrefix > matches the header prefix in content parts # time=0.10ms
ok 2224 - src/llm/verify-reminder.test.ts > messageContainsVerifyReminderPrefix > returns false when the prefix is not present # time=0.04ms
ok 2225 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > returns false when execute_with_agent is not advertised # time=0.05ms
ok 2226 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > returns false when the edit counter is undefined (interactive surface) # time=0.03ms
ok 2227 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > returns false when edit counter is below the threshold # time=0.36ms
ok 2228 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > returns false when turn counter is below the between-reminders cadence # time=0.06ms
ok 2229 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > returns true at exactly threshold edits and threshold turns # time=0.04ms
ok 2230 - src/llm/verify-reminder.test.ts > shouldInjectVerifyReminder > treats undefined turn counter as infinity (first-emission eligibility) # time=0.03ms
ok 2231 - src/llm/verify-reminder.test.ts > buildVerifyReminderMessage > wraps the header in system-reminder tags # time=0.12ms
ok 2232 - src/llm/verify-reminder.test.ts > buildVerifyReminderMessage > includes the contract wording and cannot-self-assign-PARTIAL clause # time=0.08ms
ok 2233 - src/llm/verify-reminder.test.ts > buildVerifyReminderMessage > emits user role with runtime-only user_context merge boundary and anchorPreserve # time=0.05ms
ok 2234 - src/gateway/agent-run-contract.test.ts > agent-run-contract > exposes the current schema version # time=2.11ms
ok 2235 - src/gateway/agent-run-contract.test.ts > agent-run-contract > classifies terminal and recoverable states correctly # time=0.39ms
ok 2236 - src/gateway/agent-run-contract.test.ts > agent-run-contract > permits documented lifecycle transitions # time=0.16ms
ok 2237 - src/gateway/agent-run-contract.test.ts > agent-run-contract > rejects invalid lifecycle transitions # time=0.38ms
ok 2238 - src/gateway/agent-run-contract.test.ts > agent-run-contract > validates canonical run contracts # time=0.16ms
ok 2239 - src/gateway/agent-run-contract.test.ts > agent-run-contract > rejects malformed run contracts # time=0.13ms
ok 2240 - src/gateway/agent-run-contract.test.ts > agent-run-contract > infers managed-process and approval domains from contract shape # time=0.24ms
ok 2241 - src/gateway/approval-runtime.test.ts > approval-runtime > approvalsEnabled > defaults to disabled when the approvals section is omitted # time=0.88ms
ok 2242 - src/gateway/approval-runtime.test.ts > approval-runtime > approvalsEnabled > honors explicit disablement # time=0.08ms
ok 2243 - src/gateway/approval-runtime.test.ts > approval-runtime > approvalsEnabled > requires explicit opt-in # time=0.06ms
ok 2244 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalRules > returns no rules when approvals are explicitly disabled # time=0.29ms
ok 2245 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalRules > keeps desktop automation gating opt-in # time=0.45ms
ok 2246 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalRules > still adds MCP trust-tier approval rules when approvals remain enabled # time=0.10ms
ok 2247 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalRules > does not create approval rules unless the approval engine is enabled # time=0.16ms
ok 2248 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalEngineConfig > returns an effect-centric policy config when approvals are enabled # time=0.17ms
ok 2249 - src/gateway/approval-runtime.test.ts > approval-runtime > resolveGatewayApprovalEngineConfig > returns null when approvals are disabled # time=0.29ms
ok 2250 - src/gateway/approvals.test.ts > globMatch > matches exact strings # time=0.82ms
ok 2251 - src/gateway/approvals.test.ts > globMatch > rejects non-matching exact strings # time=0.13ms
ok 2252 - src/gateway/approvals.test.ts > globMatch > matches wildcard at end # time=0.09ms
ok 2253 - src/gateway/approvals.test.ts > globMatch > rejects wildcard that does not match # time=0.11ms
ok 2254 - src/gateway/approvals.test.ts > globMatch > matches wildcard at start # time=0.06ms
ok 2255 - src/gateway/approvals.test.ts > globMatch > matches wildcard in middle # time=0.05ms
ok 2256 - src/gateway/approvals.test.ts > globMatch > matches double wildcard # time=0.10ms
ok 2257 - src/gateway/approvals.test.ts > globMatch > handles regex special chars in pattern # time=0.15ms
ok 2258 - src/gateway/approvals.test.ts > globMatch > empty pattern matches empty value # time=0.34ms
ok 2259 - src/gateway/approvals.test.ts > globMatch > star matches everything # time=0.08ms
ok 2260 - src/gateway/approvals.test.ts > extractAmount > extracts numeric amount # time=0.12ms
ok 2261 - src/gateway/approvals.test.ts > extractAmount > extracts string amount via coercion # time=0.04ms
ok 2262 - src/gateway/approvals.test.ts > extractAmount > extracts reward key # time=0.03ms
ok 2263 - src/gateway/approvals.test.ts > extractAmount > extracts lamports key # time=0.03ms
ok 2264 - src/gateway/approvals.test.ts > extractAmount > prefers amount over reward over lamports # time=0.07ms
ok 2265 - src/gateway/approvals.test.ts > extractAmount > returns undefined when no amount keys present # time=0.05ms
ok 2266 - src/gateway/approvals.test.ts > extractAmount > skips NaN values # time=0.03ms
ok 2267 - src/gateway/approvals.test.ts > extractAmount > returns undefined for all NaN # time=0.03ms
ok 2268 - src/gateway/approvals.test.ts > extractAmount > returns 0 for amount: 0 # time=0.03ms
ok 2269 - src/gateway/approvals.test.ts > extractAmount > skips empty string # time=0.03ms
ok 2270 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > matches exact tool name # time=0.26ms
ok 2271 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > does not require approval for system.bash by default # time=0.10ms
ok 2272 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > does not require approval for desktop.bash by default # time=0.07ms
ok 2273 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > returns null for unmatched tool # time=0.04ms
ok 2274 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > matches tool with glob pattern # time=0.09ms
ok 2275 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > applies minAmount condition — blocks above threshold # time=0.05ms
ok 2276 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > applies minAmount condition — allows at/below threshold # time=0.05ms
ok 2277 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > applies minAmount with no amount key — skips rule # time=0.07ms
ok 2278 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > always requires approval for raw agenc.createTask # time=0.06ms
ok 2279 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > always requires approval for agenc.registerAgent # time=0.08ms
ok 2280 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > always requires approval for agenc.purchaseSkill # time=0.04ms
ok 2281 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > matches agenc.stakeReputation with amount > 0.1 SOL (lamports) # time=0.05ms
ok 2282 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > checks argPatterns condition # time=0.07ms
ok 2283 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > returns first matching rule # time=0.11ms
ok 2284 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > requires approval for untrusted MCP tools even without explicit per-tool rules # time=0.09ms
ok 2285 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > requires both minAmount AND argPatterns to pass # time=0.08ms
ok 2286 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > uses effect-centric policy to require approval for shell in safe local dev mode # time=1.25ms
ok 2287 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > keeps read-only file flows ergonomic under the effect policy # time=0.30ms
ok 2288 - src/gateway/approvals.test.ts > ApprovalEngine > requiresApproval > scopes always-approve elevation to the effect risk class instead of the tool name # time=0.78ms
ok 2289 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > resolves with yes — returns approved response # time=0.09ms
ok 2290 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > resolves with no — returns denied response # time=0.07ms
ok 2291 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > auto-denies on timeout # time=1.08ms
ok 2292 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > emits request and escalation notifications before timeout # time=2.25ms
ok 2293 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > always disposition elevates the session # time=0.19ms
ok 2294 - src/gateway/approvals.test.ts > ApprovalEngine > approval flow > resolve of nonexistent request is a no-op # time=0.31ms
ok 2295 - src/gateway/approvals.test.ts > ApprovalEngine > onResponse > notifies registered handlers on resolve # time=0.47ms
ok 2296 - src/gateway/approvals.test.ts > ApprovalEngine > onResponse > notifies on timeout auto-deny # time=0.27ms
ok 2297 - src/gateway/approvals.test.ts > ApprovalEngine > elevation > isElevated returns false for unelevated session # time=0.05ms
ok 2298 - src/gateway/approvals.test.ts > ApprovalEngine > elevation > elevate + isElevated # time=0.04ms
ok 2299 - src/gateway/approvals.test.ts > ApprovalEngine > elevation > isToolElevated checks specific tool against patterns # time=0.06ms
ok 2300 - src/gateway/approvals.test.ts > ApprovalEngine > elevation > revokeElevation clears all patterns # time=2.35ms
ok 2301 - src/gateway/approvals.test.ts > ApprovalEngine > elevation > sessions are isolated # time=0.15ms
ok 2302 - src/gateway/approvals.test.ts > ApprovalEngine > session policy mutation state > applies allow, deny, clear, and reset mutations # time=0.39ms
ok 2303 - src/gateway/approvals.test.ts > ApprovalEngine > session policy mutation state > keeps allow and deny patterns mutually exclusive # time=0.09ms
ok 2304 - src/gateway/approvals.test.ts > ApprovalEngine > getPending > returns empty array when nothing pending # time=0.05ms
ok 2305 - src/gateway/approvals.test.ts > ApprovalEngine > getPending > returns pending requests # time=0.53ms
ok 2306 - src/gateway/approvals.test.ts > ApprovalEngine > getPending > removes resolved requests from pending # time=0.11ms
ok 2307 - src/gateway/approvals.test.ts > ApprovalEngine > dispose > clears all pending timers and requests # time=0.16ms
ok 2308 - src/gateway/approvals.test.ts > ApprovalEngine > dispose > auto-denies pending requests so promises resolve # time=0.06ms
ok 2309 - src/gateway/approvals.test.ts > ApprovalEngine > notifyHandlers error isolation > resolve still completes when onResponse handler throws # time=0.24ms
ok 2310 - src/gateway/approvals.test.ts > ApprovalEngine > notifyHandlers error isolation > timeout auto-deny still completes when onResponse handler throws # time=0.24ms
ok 2311 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > creates a request with injected id and timestamp # time=0.15ms
ok 2312 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > stores parent and subagent session context when provided # time=0.08ms
ok 2313 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > stores shell profile context on approval requests and previews # time=0.08ms
ok 2314 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > inherits denials from parent session across delegated children # time=0.25ms
ok 2315 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > supports simulation without enqueuing a request # time=0.48ms
ok 2316 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > embeds approver group and required roles into requests and escalations # time=0.56ms
ok 2317 - src/gateway/approvals.test.ts > ApprovalEngine > createRequest > signs resolver assertions and rejects manual responses without required roles # time=0.58ms
ok 2318 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > has 8 baseline high-risk rules # time=0.06ms
ok 2319 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > covers system.delete and system.evaluateJs # time=0.29ms
ok 2320 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > covers wallet.sign, wallet.transfer, and economic agenc mutations # time=0.28ms
ok 2321 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > wallet.transfer has minAmount 0.1 # time=0.05ms
ok 2322 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > agenc.createTask has no threshold condition # time=0.04ms
ok 2323 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > agenc.stakeReputation has minAmount 0.1 SOL in lamports # time=0.31ms
ok 2324 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_APPROVAL_RULES > does not include desktop automation tools by default # time=0.18ms
ok 2325 - src/gateway/approvals.test.ts > ApprovalEngine > DEFAULT_DESKTOP_APPROVAL_RULES > keeps desktop automation gating separate from baseline defaults # time=0.07ms
ok 2326 - src/gateway/approvals.test.ts > ApprovalEngine > buildDefaultApprovalRules > keeps desktop automation opt-in # time=0.18ms
ok 2327 - src/gateway/approvals.test.ts > createApprovalGateHook > has correct event, name, and priority # time=0.12ms
ok 2328 - src/gateway/approvals.test.ts > createApprovalGateHook > allows tool with no matching rule # time=0.19ms
ok 2329 - src/gateway/approvals.test.ts > createApprovalGateHook > blocks tool when denied # time=6.26ms
ok 2330 - src/gateway/approvals.test.ts > createApprovalGateHook > allows tool when approved # time=6.36ms
ok 2331 - src/gateway/approvals.test.ts > createApprovalGateHook > skips approval for elevated tool # time=0.10ms
ok 2332 - src/gateway/approvals.test.ts > createApprovalGateHook > continues when no toolName in payload # time=0.05ms
ok 2333 - src/gateway/at-mention-attachments.test.ts > resolveAtMentionAttachments > expands @-mentioned workspace files into synthetic file-read prelude # time=6.08ms
ok 2334 - src/gateway/at-mention-attachments.test.ts > resolveAtMentionAttachments > returns empty anchorRegistrations when no @mention is present # time=0.58ms
ok 2335 - src/gateway/at-mention-attachments.test.ts > resolveAtMentionAttachments > records partial-view anchor when a line range is mentioned # time=3.22ms
ok 2336 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > treats pending external review as a broad-rollout blocker but not a limited-rollout blocker # time=2.21ms
ok 2337 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > flags missing switches, SLO regressions, and unhealthy multi-agent evidence # time=0.66ms
ok 2338 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > requires rollback validation and drill coverage before rollout is marked ready # time=0.17ms
ok 2339 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > evaluates canary admission by tenant, feature, domain, and cohort percentage # time=1.61ms
ok 2340 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > requires a passing shell rollout artifact for limited rollout # time=0.39ms
ok 2341 - src/gateway/autonomy-rollout.test.ts > autonomy-rollout > admits shell feature cohorts when canary policy allows them # time=0.12ms
ok 2342 - src/gateway/background-run-anchor-files.test.ts > mergeAnchorRegistrations > adds new registrations and preserves existing snapshots # time=2.45ms
ok 2343 - src/gateway/background-run-anchor-files.test.ts > mergeAnchorRegistrations > re-registers a path in place (idempotent by canonical path) # time=0.49ms
ok 2344 - src/gateway/background-run-anchor-files.test.ts > mergeAnchorRegistrations > evicts the oldest entries when exceeding the per-run cap # time=0.18ms
ok 2345 - src/gateway/background-run-anchor-files.test.ts > mergeAnchorRegistrations > truncates oversized content to a head+tail preview with disk stash # time=4.69ms
ok 2346 - src/gateway/background-run-anchor-files.test.ts > refreshAnchorFiles > returns the same snapshot when mtime is unchanged # time=1.18ms
ok 2347 - src/gateway/background-run-anchor-files.test.ts > refreshAnchorFiles > re-reads content when the file mtime advances # time=3.62ms
ok 2348 - src/gateway/background-run-anchor-files.test.ts > refreshAnchorFiles > preserves the prior snapshot and annotates when the file is missing # time=2.46ms
ok 2349 - src/gateway/background-run-anchor-files.test.ts > formatAnchorFilesSection > returns an empty string when there are no anchors # time=0.15ms
ok 2350 - src/gateway/background-run-anchor-files.test.ts > formatAnchorFilesSection > renders the anchor section with path, sha, mtime, and content # time=0.39ms
ok 2351 - src/gateway/background-run-anchor-files.test.ts > formatAnchorFilesSection > adds a re-read directive when any anchor is truncated # time=0.13ms
ok 2352 - src/gateway/background-run-continuation.test.ts > buildZeroToolBlockingMessage > emits a plain user-turn message with the [runtime] prefix and no extra metadata # time=1.45ms
ok 2353 - src/gateway/background-run-continuation.test.ts > buildZeroToolBlockingMessage > includes an open-task summary when tasks exist # time=0.84ms
ok 2354 - src/gateway/background-run-continuation.test.ts > buildZeroToolBlockingMessage > adds an exhaustion notice once the nudge budget is hit # time=0.45ms
ok 2355 - src/gateway/background-run-continuation.test.ts > buildTaskStalenessReminder > renders a bulleted list of open tasks with cadence context # time=0.28ms
ok 2356 - src/gateway/background-run-continuation.test.ts > buildTaskStalenessReminder > includes a '(showing first N of M)' suffix when the task list exceeds the sample cap # time=0.08ms
ok 2357 - src/gateway/background-run-continuation.test.ts > buildTaskStalenessReminder > reports 'No open tasks recorded.' when the list is empty # time=0.06ms
ok 2358 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > returns [] when no mechanism applies # time=0.14ms
ok 2359 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > emits the zero-tool blocking message when the guard fired in the prior cycle # time=0.40ms
ok 2360 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > does not emit a zero-tool nudge when lastToolEvidence is missing (first-cycle path) # time=0.33ms
ok 2361 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > emits the task-staleness reminder on the cadence boundary # time=0.13ms
ok 2362 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > emits both messages when both mechanisms trigger # time=0.15ms
ok 2363 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > skips the zero-tool nudge when the last history message is already user-role # time=0.05ms
ok 2364 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > stops emitting the zero-tool nudge once the nudge budget is exhausted # time=0.04ms
ok 2365 - src/gateway/background-run-continuation.test.ts > evaluateCycleContinuationInjections > still emits the task reminder even when the nudge budget is exhausted # time=0.08ms
ok 2366 - src/gateway/background-run-control.test.ts > background-run-control > formats active background run status deterministically # time=1.04ms
ok 2367 - src/gateway/background-run-control.test.ts > background-run-control > formats active status replies from completion truth when richer state exists # time=0.29ms
ok 2368 - src/gateway/background-run-control.test.ts > background-run-control > formats inactive status replies from the recent snapshot # time=0.15ms
ok 2369 - src/gateway/background-run-control.test.ts > background-run-control > formats inactive stop replies without invoking the model # time=0.14ms
ok 2370 - src/gateway/background-run-control.test.ts > background-run-control > formats inactive replies from completion truth when richer state exists # time=0.09ms
ok 2371 - src/gateway/background-run-control.test.ts > background-run-control > formats explicit admission denial replies for supervised runs # time=0.09ms
ok 2372 - src/gateway/background-run-notifier.test.ts > BackgroundRunNotifier > delivers generic webhook payloads for eligible run events # time=143.84ms
ok 2373 - src/gateway/background-run-notifier.test.ts > BackgroundRunNotifier > filters sinks by event and session scope # time=0.51ms
ok 2374 - src/gateway/background-run-notifier.test.ts > BackgroundRunNotifier > formats Discord webhook payloads # time=10.96ms
ok 2375 - src/gateway/background-run-notifier.test.ts > BackgroundRunNotifier > adds HMAC signatures when signingSecret is configured # time=0.53ms
ok 2376 - src/gateway/background-run-notifier.test.ts > BackgroundRunNotifier > maps retry and fork control events to run_controlled notifications # time=0.29ms
ok 2377 - src/gateway/background-run-operator.test.ts > background-run-operator > explains approval waits as safe waiting states # time=1.13ms
ok 2378 - src/gateway/background-run-operator.test.ts > background-run-operator > marks failed runs as unsafe and paused runs as safe # time=0.21ms
ok 2379 - src/gateway/background-run-operator.test.ts > background-run-operator > includes the next verification cadence for active runs # time=0.20ms
ok 2380 - src/gateway/background-run-store.test.ts > BackgroundRunStore > saves, lists, and deletes persisted runs # time=3.40ms
ok 2381 - src/gateway/background-run-store.test.ts > BackgroundRunStore > rebuilds run history from the durable conversation transcript # time=2.00ms
ok 2382 - src/gateway/background-run-store.test.ts > BackgroundRunStore > forks durable conversation history between run sessions # time=0.64ms
ok 2383 - src/gateway/background-run-store.test.ts > BackgroundRunStore > preserves canonical delegated scope in durable lineage records # time=0.94ms
ok 2384 - src/gateway/background-run-store.test.ts > BackgroundRunStore > defaults legacy runs without shell profiles to general # time=0.28ms
ok 2385 - src/gateway/background-run-store.test.ts > BackgroundRunStore > defaults and preserves idle hook block streak across persistence # time=0.43ms
ok 2386 - src/gateway/background-run-store.test.ts > BackgroundRunStore > enforces lease ownership until the lease expires # time=0.70ms
ok 2387 - src/gateway/background-run-store.test.ts > BackgroundRunStore > allows another worker to steal a lease when the owner heartbeat is stale # time=0.31ms
ok 2388 - src/gateway/background-run-store.test.ts > BackgroundRunStore > stores append-only run events in a dedicated thread # time=0.96ms
ok 2389 - src/gateway/background-run-store.test.ts > BackgroundRunStore > stores and reloads the latest recent snapshot for a session # time=0.26ms
ok 2390 - src/gateway/background-run-store.test.ts > BackgroundRunStore > stores, reloads, and deletes terminal checkpoints for retry # time=0.33ms
ok 2391 - src/gateway/background-run-store.test.ts > BackgroundRunStore > persists completion progress across runs, snapshots, and checkpoints # time=0.47ms
ok 2392 - src/gateway/background-run-store.test.ts > BackgroundRunStore > persists policy scope and extended budget counters across reload # time=0.14ms
ok 2393 - src/gateway/background-run-store.test.ts > BackgroundRunStore > accepts suspended runs and rejects invalid persisted records # time=0.55ms
ok 2394 - src/gateway/background-run-store.test.ts > BackgroundRunStore > migrates schema version 1 records to the current durable run shape # time=1.13ms
ok 2395 - src/gateway/background-run-store.test.ts > BackgroundRunStore > defaults cross-cycle continuation counters to 0 on legacy records that lack them # time=0.58ms
ok 2396 - src/gateway/background-run-store.test.ts > BackgroundRunStore > quarantines incompatible schema versions instead of silently coercing them # time=0.34ms
ok 2397 - src/gateway/background-run-store.test.ts > BackgroundRunStore > scales default cycle budgets to the runtime budget instead of a fixed short cap # time=0.05ms
ok 2398 - src/gateway/background-run-store.test.ts > BackgroundRunStore > quarantines corrupt persisted records instead of surfacing partial state # time=0.20ms
ok 2399 - src/gateway/background-run-store.test.ts > BackgroundRunStore > rejects stale fence-token writes after another owner takes the lease # time=0.32ms
ok 2400 - src/gateway/background-run-store.test.ts > BackgroundRunStore > accepts forward fence-token writes for the same lease owner # time=0.22ms
ok 2401 - src/gateway/background-run-store.test.ts > BackgroundRunStore > garbage collects expired leases, terminal snapshots, and old corrupt records # time=0.55ms
ok 2402 - src/gateway/background-run-store.test.ts > BackgroundRunStore > dedupes scheduled wake events by key and keeps only the latest schedule # time=0.33ms
ok 2403 - src/gateway/background-run-store.test.ts > BackgroundRunStore > delivers due wake events to the run in priority order # time=0.42ms
ok 2404 - src/gateway/background-run-store.test.ts > BackgroundRunStore > moves exhausted wake events into dead letters instead of delivering them forever # time=0.28ms
ok 2405 - src/gateway/background-run-store.test.ts > BackgroundRunStore > handles out-of-order wake insertion by delivering the earliest due event first # time=0.31ms
ok 2406 - src/gateway/background-run-store.test.ts > BackgroundRunStore > round-trips typed domain contracts and signal payloads for non-process domains # time=0.69ms
ok 2407 - src/gateway/background-run-store.test.ts > BackgroundRunStore > claims durable dispatch items by worker pool and preserves preferred-worker affinity # time=0.49ms
ok 2408 - src/gateway/background-run-store.test.ts > BackgroundRunStore > allows another worker to reclaim a dispatch item when the claim owner heartbeat is stale # time=0.20ms
ok 2409 - src/gateway/background-run-store.test.ts > BackgroundRunStore > supports worker drain state and releases expired dispatch claims during garbage collection # time=0.32ms
ok 2410 - src/gateway/background-run-store.test.ts > BackgroundRunStore > dedupes durable dispatch items by key and updates the latest availability # time=0.25ms
ok 2411 - src/gateway/background-run-store.test.ts > BackgroundRunStore > prunes redundant queued dispatches for the same session while preserving the claimed item # time=0.35ms
ok 2412 - src/gateway/background-run-store.test.ts > BackgroundRunStore > maintains a lightweight dispatch beacon as queue state changes # time=0.26ms
ok 2413 - src/gateway/background-run-store.test.ts > BackgroundRunStore > holds up under concurrent dispatch-claim load across multiple workers # time=33.93ms
ok 2414 - src/gateway/background-run-store.test.ts > BackgroundRunStore > legacy persisted records that still carry requiresUserStop > loads a record with {kind: until_stopped, requiresUserStop: true} and strips the field # time=0.46ms
ok 2415 - src/gateway/background-run-store.test.ts > BackgroundRunStore > legacy persisted records that still carry requiresUserStop > loads an inconsistent legacy record {kind: finite, requiresUserStop: true} without consulting the boolean # time=0.15ms
ok 2416 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > passes through decisions that are not 'completed' # time=0.92ms
ok 2417 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > passes through when the cycle has successful tool calls # time=0.17ms
ok 2418 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > passes through when there is no prior tool evidence (groundDecision owns the never-started path) # time=0.09ms
ok 2419 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > downgrades 'completed' to 'working' when the zero-tool cycle has prior evidence and no explicit completion signal # time=0.20ms
ok 2420 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > accepts 'completed' when completionProgress explicitly says completed with no remaining requirements # time=0.08ms
ok 2421 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > downgrades when completionProgress claims completed but remaining requirements exist # time=0.10ms
ok 2422 - src/gateway/background-run-supervisor-helpers.test.ts > applyZeroToolCompletionGuard > accepts the actor's terminal 'completed' decision once the nudge budget is exhausted # time=0.09ms
ok 2423 - src/gateway/background-run-supervisor-helpers.test.ts > contract kind parsing defaults > parseContract: honors the planner-set kind verbatim # time=1.01ms
ok 2424 - src/gateway/background-run-supervisor-helpers.test.ts > contract kind parsing defaults > parseContract: silently ignores a stray requiresUserStop field on legacy input # time=0.37ms
ok 2425 - src/gateway/background-run-supervisor-helpers.test.ts > contract kind parsing defaults > buildFallbackContract: infers 'until_stopped' kind only when UNTIL_STOP_RE matches # time=0.90ms
ok 2426 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > detects explicit long-running intent # time=6.48ms
ok 2427 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > passes resolved workflow execution context into actor cycles # time=15.25ms
ok 2428 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > does not misparse natural-language durable server objectives as native process commands # time=5.91ms
ok 2429 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > passes interactive context into background actor cycles and reuses verifier child sessions # time=2.85ms
ok 2430 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > starts a run, executes a cycle, and keeps it working # time=3.62ms
ok 2431 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > passes the advertised tool bundle to actor cycles when no narrower route is active # time=12.53ms
ok 2432 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > passes provider trace options to actor and supervisor calls when enabled # time=6.22ms
ok 2433 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > emits background run cycle summary traces with planner details when tracing is enabled # time=4.37ms
ok 2434 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > fans durable lifecycle events out to configured notification sinks # time=9.60ms
ok 2435 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > grounds optimistic working decisions when every tool call in the cycle failed # time=4.30ms
ok 2436 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > treats bounded-step stop reasons with successful tool evidence as working # time=9.20ms
ok 2437 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes and removes a run when the supervisor decides it is done # time=2.78ms
ok 2438 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps a recent terminal snapshot after completion for runtime-owned control replies # time=5.71ms
ok 2439 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > cancels an active run # time=0.87ms
ok 2440 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > stops an active managed-process run through the typed stop tool # time=4.30ms
ok 2441 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > blocks the run when typed operator stop cannot stop the managed process # time=5.71ms
ok 2442 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > exposes operator detail and persists objective, constraint, and budget interventions # time=7.58ms
ok 2443 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > retries a terminal checkpoint and records verification overrides # time=9.57ms
ok 2444 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > retries a terminal checkpoint from a targeted step # time=3.69ms
ok 2445 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > retries a terminal checkpoint from a targeted trace # time=3.67ms
ok 2446 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > forks a durable run checkpoint into a target session # time=16.77ms
ok 2447 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > pauses a run, queues signals without waking it, and resumes cleanly # time=14.64ms
ok 2448 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > preserves the latest deterministic update while a stable background run waits for the next verification # time=6.96ms
ok 2449 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps a runtime heartbeat scheduled while a background cycle is still running # time=31.91ms
ok 2450 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > suppresses stale fence-token heartbeat persistence conflicts without crashing the run # time=10.39ms
ok 2451 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > accepts supervisor-suggested completion for until-stopped runs (no user-stop override) # time=2.44ms
ok 2452 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > does not expire an until-stopped run just because it exceeds the runtime cap # time=30.37ms
ok 2453 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > does not expire an until-stopped run just because it exceeds the cycle cap # time=26.14ms
ok 2454 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers persisted runs after restart with sqlite durability # time=75.35ms
ok 2455 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers partial completion progress after restart without losing remaining obligations # time=27.67ms
ok 2456 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers persisted canonical delegated scope without re-synthesizing workspace truth from prompt text # time=20.71ms
ok 2457 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > allows only one daemon instance to recover and own a persisted run lease # time=25.56ms
ok 2458 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > reclaims a stale claimed dispatch on a standby worker after the owner heartbeat stops # time=2.33ms
ok 2459 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers 'browser' runs and completes deterministically from persisted evidence # time=15.79ms
ok 2460 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers 'desktop_gui' runs and completes deterministically from persisted evidence # time=12.40ms
ok 2461 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers 'research' runs and completes deterministically from persisted evidence # time=25.97ms
ok 2462 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers 'pipeline' runs and completes deterministically from persisted evidence # time=23.32ms
ok 2463 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers 'remote_mcp' runs and completes deterministically from persisted evidence # time=10.13ms
ok 2464 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > recovers approval-gated runs in blocked state until a durable approval wake arrives # time=13.34ms
ok 2465 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps blocked runs durable and resumes them when a new signal arrives # time=6.49ms
ok 2466 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > queues user signals for an active run and carries forward compact state into the next cycle # time=6.65ms
ok 2467 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > does not execute an extra cycle when a late operator signal overlaps an expired timer dispatch # time=9.58ms
ok 2468 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > repairs poisoned carry-forward summaries that drift from verified evidence # time=4.90ms
ok 2469 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps binary tool outputs out of band when recording carry-forward evidence # time=2.00ms
ok 2470 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes deterministically from a verified process_exit signal when the objective is satisfied # time=4.19ms
ok 2471 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > resolves a managed-process exit signal by process id without requiring the caller to know the session id # time=4.31ms
ok 2472 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps host managed-process runs on the event-driven reconcile interval after native verification # time=6.46ms
ok 2473 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps typed host-server runs on the event-driven reconcile interval after native verification # time=8.01ms
ok 2474 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > uses system.serverStart for native bootstrap when the objective is a readiness-checked local HTTP service # time=2.12ms
ok 2475 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > promotes a server objective onto typed server supervision when readiness verification is required # time=1.83ms
ok 2476 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > wakes immediately on process_exit signals and restarts a managed process natively # time=4.86ms
ok 2477 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > restarts host managed-process runs with the host durable process tool family # time=3.90ms
ok 2478 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > uses native managed-process verification on timer wakes after the initial actor cycle # time=5.36ms
ok 2479 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > rejects optimistic completion claims when the managed-process domain verifies the process is still running # time=1.79ms
ok 2480 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > rejects optimistic browser completion claims when only navigation evidence exists # time=2.21ms
ok 2481 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > keeps workspace implementation runs active after internal command evidence # time=1.98ms
ok 2482 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes explicit finite workspace commands through the native workspace domain without actor tool planning # time=1.66ms
ok 2483 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > rejects false workspace success claims that have no verified tool evidence # time=1.46ms
ok 2484 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes browser runs from download events without spending another actor cycle # time=3.47ms
ok 2485 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > uses signal-preferred retry cadence for browser runs when no new tool evidence arrives # time=2.67ms
ok 2486 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes remote MCP runs from callback events without another actor cycle # time=3.56ms
ok 2487 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > defers new dispatches under queue saturation by scheduling admission_retry work # time=8.34ms
ok 2488 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes deterministically from managed process status without waiting for an exit event # time=1.66ms
ok 2489 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > completes from a process_exit signal that arrives during carry-forward refresh # time=3.79ms
ok 2490 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > preserves late external signals that arrive during carry-forward refresh # time=5.28ms
ok 2491 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > fails a run when the scoped token budget is exhausted # time=4.47ms
ok 2492 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > parks a run after repeated worker-idle hook blocks # time=15.29ms
ok 2493 - src/gateway/background-run-supervisor.test.ts > background-run-supervisor > waits when the managed-process concurrency budget is saturated # time=2.96ms
ok 2494 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > maps managed process desktop exits to deterministic process_exit signals # time=1.13ms
ok 2495 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > maps browser and filesystem desktop events into external wake signals # time=0.57ms
ok 2496 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > classifies external browser tool results and suppresses internal background tool calls # time=0.27ms
ok 2497 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > signals active runs from external tool results # time=0.94ms
ok 2498 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > classifies durable remote session tool results with session identifiers # time=0.16ms
ok 2499 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > authenticates and enqueues background-run webhook signals # time=0.35ms
ok 2500 - src/gateway/background-run-wake-adapters.test.ts > background-run-wake-adapters > rejects non-loopback webhook ingress when no auth secret is configured # time=0.19ms
ok 2501 - src/gateway/background-run-wake-bus.test.ts > BackgroundRunWakeBus > dispatches immediate operator wakes and drains them into the run # time=6.39ms
ok 2502 - src/gateway/background-run-wake-bus.test.ts > BackgroundRunWakeBus > fires scheduled timer wakes with fake-clock control # time=2.01ms
ok 2503 - src/gateway/background-run-wake-bus.test.ts > BackgroundRunWakeBus > keeps operator and approval wakes ahead of noisy external events under load # time=4.70ms
ok 2504 - src/gateway/browser-tool-mode.test.ts > resolveBrowserToolMode > returns advanced when Playwright is available # time=1.38ms
ok 2505 - src/gateway/browser-tool-mode.test.ts > resolveBrowserToolMode > falls back to basic when Playwright is unavailable # time=1.31ms
ok 2506 - src/gateway/channel-status.test.ts > buildGatewayChannelStatus > derives telegram polling mode and healthy summary from target config # time=0.98ms
ok 2507 - src/gateway/channel-status.test.ts > buildGatewayChannelStatus > reports pending restart when a live connector still exists after removal # time=0.20ms
ok 2508 - src/gateway/channel-status.test.ts > buildGatewayChannelStatus > reports live daemon config drift when gateway config lags behind disk # time=0.09ms
ok 2509 - src/gateway/channel-wiring.test.ts > wireExternalChannels > loads trusted plugin-backed channel adapters into the unified registry # time=39.52ms
ok 2510 - src/gateway/channel-wiring.test.ts > wireExternalChannels > ingests observation-only plugin messages without invoking the chat executor # time=3.24ms
ok 2511 - src/gateway/channel-wiring.test.ts > wireExternalChannels > isolates Concordia history by world metadata and skips daemon memory persistence # time=1.47ms
ok 2512 - src/gateway/channel-wiring.test.ts > wireExternalChannels > rejects actionable Concordia messages that lack request correlation # time=0.65ms
ok 2513 - src/gateway/channel.test.ts > WebhookRouter > prefixes paths with /webhooks/{channelName} # time=1.62ms
ok 2514 - src/gateway/channel.test.ts > WebhookRouter > supports multiple routes # time=0.31ms
ok 2515 - src/gateway/channel.test.ts > WebhookRouter > routes getter returns a shallow copy (does not leak internal array) # time=0.43ms
ok 2516 - src/gateway/channel.test.ts > WebhookRouter > handlers are callable # time=0.12ms
ok 2517 - src/gateway/channel.test.ts > WebhookRouteRegistry > matches parameterized routes and exposes params # time=0.32ms
ok 2518 - src/gateway/channel.test.ts > WebhookRouteRegistry > prefers exact routes over parameterized matches # time=0.09ms
ok 2519 - src/gateway/channel.test.ts > WebhookRouteRegistry > rejects duplicate parameterized route shapes # time=0.11ms
ok 2520 - src/gateway/channel.test.ts > PluginCatalog > register > registers a plugin # time=0.55ms
ok 2521 - src/gateway/channel.test.ts > PluginCatalog > register > throws on duplicate registration # time=0.51ms
ok 2522 - src/gateway/channel.test.ts > PluginCatalog > register > throws on empty plugin name # time=0.13ms
ok 2523 - src/gateway/channel.test.ts > PluginCatalog > register > throws on whitespace-only plugin name # time=0.12ms
ok 2524 - src/gateway/channel.test.ts > PluginCatalog > get / getOrThrow > get returns undefined for missing plugin # time=0.06ms
ok 2525 - src/gateway/channel.test.ts > PluginCatalog > get / getOrThrow > getOrThrow throws for missing plugin # time=0.09ms
ok 2526 - src/gateway/channel.test.ts > PluginCatalog > get / getOrThrow > getOrThrow returns plugin when found # time=0.19ms
ok 2527 - src/gateway/channel.test.ts > PluginCatalog > listing > listNames returns all registered names # time=0.37ms
ok 2528 - src/gateway/channel.test.ts > PluginCatalog > listing > listAll returns all plugins # time=0.11ms
ok 2529 - src/gateway/channel.test.ts > PluginCatalog > activate > initializes and starts a plugin # time=0.25ms
ok 2530 - src/gateway/channel.test.ts > PluginCatalog > activate > throws when activating unregistered plugin # time=0.33ms
ok 2531 - src/gateway/channel.test.ts > PluginCatalog > activate > registers webhooks when plugin supports them # time=0.28ms
ok 2532 - src/gateway/channel.test.ts > PluginCatalog > activate > deactivates before re-activating an already active plugin # time=0.21ms
ok 2533 - src/gateway/channel.test.ts > PluginCatalog > activate > cleans up if start() throws # time=0.46ms
ok 2534 - src/gateway/channel.test.ts > PluginCatalog > activate > cleans up if registerWebhooks() throws # time=0.19ms
ok 2535 - src/gateway/channel.test.ts > PluginCatalog > activate > cleans up if initialize() throws # time=0.13ms
ok 2536 - src/gateway/channel.test.ts > PluginCatalog > activate > context.onMessage forwards messages # time=0.36ms
ok 2537 - src/gateway/channel.test.ts > PluginCatalog > deactivate > stops an active plugin # time=0.08ms
ok 2538 - src/gateway/channel.test.ts > PluginCatalog > deactivate > cleans up webhook routes on deactivation # time=0.21ms
ok 2539 - src/gateway/channel.test.ts > PluginCatalog > deactivate > is a no-op for unregistered plugins # time=0.03ms
ok 2540 - src/gateway/channel.test.ts > PluginCatalog > deactivate > is a no-op for registered but never-activated plugins # time=0.12ms
ok 2541 - src/gateway/channel.test.ts > PluginCatalog > deactivate > handles stop() errors gracefully # time=0.06ms
ok 2542 - src/gateway/channel.test.ts > PluginCatalog > unregister > deactivates and removes a plugin # time=0.08ms
ok 2543 - src/gateway/channel.test.ts > PluginCatalog > getWebhookRoutes > returns all routes when no channel specified # time=0.13ms
ok 2544 - src/gateway/channel.test.ts > PluginCatalog > getWebhookRoutes > returns empty array for channel with no webhooks # time=0.06ms
ok 2545 - src/gateway/channel.test.ts > PluginCatalog > getHealthStatus > reports health with active flag for all plugins # time=0.16ms
ok 2546 - src/gateway/channel.test.ts > PluginCatalog > getHealthStatus > reports active: true for activated plugins # time=0.06ms
ok 2547 - src/gateway/channel.test.ts > PluginCatalog > getHealthStatus > reports active: false after deactivation # time=0.06ms
ok 2548 - src/gateway/channel.test.ts > PluginCatalog > stopAll > stops all active plugins concurrently # time=0.15ms
ok 2549 - src/gateway/channel.test.ts > PluginCatalog > stopAll > does not block on one plugin failure # time=0.16ms
ok 2550 - src/gateway/channel.test.ts > PluginCatalog > optional methods > plugin with handleReaction receives events # time=18.95ms
ok 2551 - src/gateway/channel.test.ts > PluginCatalog > optional methods > plugin with handleSlashCommand receives commands # time=0.32ms
ok 2552 - src/gateway/channel.test.ts > BaseChannelPlugin > initialize stores context # time=0.11ms
ok 2553 - src/gateway/channel.test.ts > BaseChannelPlugin > throws when context accessed before initialize() # time=0.10ms
ok 2554 - src/gateway/channel.test.ts > BaseChannelPlugin > isHealthy defaults to true # time=0.05ms
ok 2555 - src/gateway/channel.test.ts > BaseChannelPlugin > implements ChannelPlugin interface # time=0.08ms
ok 2556 - src/gateway/channel.test.ts > SlashCommandContext > has required fields # time=0.07ms
ok 2557 - src/gateway/channel.test.ts > ReactionEvent > uses boolean added field # time=0.05ms
ok 2558 - src/gateway/channel.test.ts > ReactionEvent > supports optional timestamp # time=0.03ms
ok 2559 - src/gateway/chat-executor-factory-hooks.test.ts > mergeUserStopHooksIntoConfig > returns the existing config unchanged when no user Stop entries exist # time=0.88ms
ok 2560 - src/gateway/chat-executor-factory-hooks.test.ts > mergeUserStopHooksIntoConfig > folds user Stop command + http entries into stop-hook handlers # time=0.45ms
ok 2561 - src/gateway/chat-executor-factory-hooks.test.ts > mergeUserStopHooksIntoConfig > appends user Stop entries after existing configured stop-hook handlers # time=0.16ms
ok 2562 - src/gateway/chat-usage.test.ts > buildChatUsagePayload > includes model window and section breakdown when diagnostics exist # time=1.89ms
ok 2563 - src/gateway/chat-usage.test.ts > buildChatUsagePayload > falls back to provided context window without diagnostics # time=0.28ms
ok 2564 - src/gateway/chat-usage.test.ts > buildChatUsagePayload > reuses earlier diagnostics when later calls omit them # time=0.21ms
ok 2565 - src/gateway/commands.test.ts > parseCommand > parses a simple command # time=1.27ms
ok 2566 - src/gateway/commands.test.ts > parseCommand > parses a command with arguments # time=0.27ms
ok 2567 - src/gateway/commands.test.ts > parseCommand > parses a command with multiple arguments # time=0.17ms
ok 2568 - src/gateway/commands.test.ts > parseCommand > normalizes command name to lowercase # time=0.11ms
ok 2569 - src/gateway/commands.test.ts > parseCommand > trims whitespace # time=0.07ms
ok 2570 - src/gateway/commands.test.ts > parseCommand > rejects non-command messages # time=0.07ms
ok 2571 - src/gateway/commands.test.ts > parseCommand > maps bare slash to help command # time=0.13ms
ok 2572 - src/gateway/commands.test.ts > parseCommand > rejects slash without valid command name # time=0.10ms
ok 2573 - src/gateway/commands.test.ts > parseCommand > accepts commands with dashes and underscores # time=0.30ms
ok 2574 - src/gateway/commands.test.ts > parseCommand > rejects messages that start with // (not a command) # time=0.08ms
ok 2575 - src/gateway/commands.test.ts > parseCommand > rejects messages with slash in middle # time=0.10ms
ok 2576 - src/gateway/commands.test.ts > parseCommand > rejects command names longer than 32 characters # time=0.04ms
ok 2577 - src/gateway/commands.test.ts > parseCommand > accepts command names exactly 32 characters # time=0.05ms
ok 2578 - src/gateway/commands.test.ts > SlashCommandRegistry > register / unregister > registers a custom command # time=0.66ms
ok 2579 - src/gateway/commands.test.ts > SlashCommandRegistry > register / unregister > overwrites existing command on re-register # time=0.15ms
ok 2580 - src/gateway/commands.test.ts > SlashCommandRegistry > register / unregister > unregisters a command # time=0.07ms
ok 2581 - src/gateway/commands.test.ts > SlashCommandRegistry > register / unregister > unregister returns false for nonexistent command # time=0.04ms
ok 2582 - src/gateway/commands.test.ts > SlashCommandRegistry > has > returns true for registered commands # time=0.05ms
ok 2583 - src/gateway/commands.test.ts > SlashCommandRegistry > has > returns false for unregistered commands # time=0.04ms
ok 2584 - src/gateway/commands.test.ts > SlashCommandRegistry > get / getCommands / listNames > get returns command definition # time=0.10ms
ok 2585 - src/gateway/commands.test.ts > SlashCommandRegistry > get / getCommands / listNames > get returns undefined for unknown command # time=0.04ms
ok 2586 - src/gateway/commands.test.ts > SlashCommandRegistry > get / getCommands / listNames > getCommands returns all commands sorted by name # time=6.32ms
ok 2587 - src/gateway/commands.test.ts > SlashCommandRegistry > get / getCommands / listNames > listNames returns all command names # time=0.41ms
ok 2588 - src/gateway/commands.test.ts > SlashCommandRegistry > get / getCommands / listNames > size reflects registered command count # time=0.06ms
ok 2589 - src/gateway/commands.test.ts > SlashCommandRegistry > parse > delegates to parseCommand # time=0.06ms
ok 2590 - src/gateway/commands.test.ts > SlashCommandRegistry > execute > executes a registered command from parsed input # time=0.11ms
ok 2591 - src/gateway/commands.test.ts > SlashCommandRegistry > execute > returns false for non-command parsed input # time=0.04ms
ok 2592 - src/gateway/commands.test.ts > SlashCommandRegistry > execute > returns false for unknown command # time=0.04ms
ok 2593 - src/gateway/commands.test.ts > SlashCommandRegistry > execute > catches handler errors and replies with error # time=0.25ms
ok 2594 - src/gateway/commands.test.ts > SlashCommandRegistry > dispatch > returns true for known commands # time=0.09ms
ok 2595 - src/gateway/commands.test.ts > SlashCommandRegistry > dispatch > returns false for unknown commands # time=0.16ms
ok 2596 - src/gateway/commands.test.ts > SlashCommandRegistry > dispatch > returns false for non-command messages # time=0.04ms
ok 2597 - src/gateway/commands.test.ts > createDefaultCommands > returns only the help placeholder command # time=0.12ms
ok 2598 - src/gateway/commands.test.ts > createDefaultCommands > includes the help command placeholder # time=0.05ms
ok 2599 - src/gateway/commands.test.ts > createDefaultCommands > all commands have global: true # time=0.04ms
ok 2600 - src/gateway/commands.test.ts > createDefaultCommands > /help has no args pattern # time=0.04ms
ok 2601 - src/gateway/commands.test.ts > createDefaultCommands > can be registered on a registry # time=0.04ms
ok 2602 - src/gateway/commands.test.ts > createDefaultCommands > registry without defaults starts empty # time=0.03ms
ok 2603 - src/gateway/commands.test.ts > createDefaultCommands > /help placeholder replies with generic guidance # time=0.09ms
ok 2604 - src/gateway/commands.test.ts > createDefaultCommands > getCommands returns sorted results with defaults loaded # time=0.05ms
ok 2605 - src/gateway/commands.test.ts > createDefaultCommands > /help description appears in help-style listing # time=0.05ms
ok 2606 - src/gateway/commands.test.ts > createDefaultCommands > /help is global and utility-scoped # time=0.09ms
ok 2607 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > accepts valid desktop.maxMemory and desktop.maxCpu # time=1.69ms
ok 2608 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > rejects invalid desktop.maxMemory format # time=0.54ms
ok 2609 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > rejects invalid desktop.maxCpu format # time=0.13ms
ok 2610 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > rejects non-positive desktop.maxCpu values # time=0.13ms
ok 2611 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > accepts subagent open-question controls # time=0.38ms
ok 2612 - src/gateway/config-watcher.test.ts > validateGatewayConfig desktop resource limits > rejects invalid subagent open-question controls # time=0.29ms
ok 2613 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin channel hosting > accepts trusted package allowlists and plugin channel entries # time=0.25ms
ok 2614 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin channel hosting > rejects unsafe plugin module specifiers # time=0.10ms
ok 2615 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin channel hosting > rejects invalid trusted package names and subpaths # time=0.62ms
ok 2616 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin channel hosting > rejects plugin wrappers on reserved built-in channel names # time=0.15ms
ok 2617 - src/gateway/config-watcher.test.ts > validateGatewayConfig llm unlimited limit semantics > accepts 0 for provider and execution ceilings that now mean unlimited # time=0.13ms
ok 2618 - src/gateway/config-watcher.test.ts > validateGatewayConfig durable async task prerequisites > rejects memory.backend=memory when runtime contract v2 async tasks are enabled # time=0.08ms
ok 2619 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin host policy > accepts plugin trust policy and plugin-backed channel wrapper fields # time=0.13ms
ok 2620 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin host policy > treats missing channel enabled as valid for legacy compatibility # time=0.08ms
ok 2621 - src/gateway/config-watcher.test.ts > validateGatewayConfig plugin host policy > rejects invalid plugin trust policy and plugin channel wrapper fields # time=0.13ms
ok 2622 - src/gateway/config-watcher.test.ts > validateGatewayConfig telegram connector lifecycle > accepts a polling-first telegram connector config # time=0.05ms
ok 2623 - src/gateway/config-watcher.test.ts > validateGatewayConfig telegram connector lifecycle > rejects enabled telegram config without a bot token # time=0.05ms
ok 2624 - src/gateway/config-watcher.test.ts > validateGatewayConfig telegram connector lifecycle > rejects invalid telegram webhook path values # time=0.05ms
ok 2625 - src/gateway/config-watcher.test.ts > validateGatewayConfig workspace host path > accepts a non-empty workspace.hostPath string # time=0.05ms
ok 2626 - src/gateway/config-watcher.test.ts > validateGatewayConfig workspace host path > rejects a blank workspace.hostPath string # time=0.05ms
ok 2627 - src/gateway/config-watcher.test.ts > diffGatewayConfig restart-only channel/plugin surfaces > marks channels and plugins changes as unsafe # time=0.22ms
ok 2628 - src/gateway/config-watcher.test.ts > validateGatewayConfig autonomy controls > accepts autonomy notifications, feature flags, kill switches, and canary settings # time=0.18ms
ok 2629 - src/gateway/config-watcher.test.ts > validateGatewayConfig autonomy controls > rejects invalid autonomy notification sink configuration # time=0.13ms
ok 2630 - src/gateway/config-watcher.test.ts > validateGatewayConfig auth safety for bind address > rejects non-local bind without auth.secret # time=0.06ms
ok 2631 - src/gateway/config-watcher.test.ts > validateGatewayConfig auth safety for bind address > accepts non-local bind with auth.secret # time=0.04ms
ok 2632 - src/gateway/config-watcher.test.ts > validateGatewayConfig auth safety for bind address > accepts loopback bind without auth.secret # time=0.03ms
ok 2633 - src/gateway/config-watcher.test.ts > validateGatewayConfig policy bundles > accepts scoped policy budgets and tenant/project bundles # time=0.18ms
ok 2634 - src/gateway/config-watcher.test.ts > validateGatewayConfig policy bundles > rejects invalid policy bundle fields # time=0.38ms
ok 2635 - src/gateway/config-watcher.test.ts > validateGatewayConfig mcp security > accepts trust tier, risk controls, and supply-chain fields # time=0.09ms
ok 2636 - src/gateway/config-watcher.test.ts > validateGatewayConfig mcp security > rejects invalid mcp trust and supply-chain fields # time=0.14ms
ok 2637 - src/gateway/config-watcher.test.ts > validateGatewayConfig approvals > accepts approval SLA and escalation config # time=0.04ms
ok 2638 - src/gateway/config-watcher.test.ts > validateGatewayConfig approvals > rejects invalid approval SLA and escalation config # time=0.13ms
ok 2639 - src/gateway/context-window.test.ts > normalizeGrokModel > maps legacy grok-4 aliases to current fast variants # time=1.75ms
ok 2640 - src/gateway/context-window.test.ts > normalizeGrokModel > maps superseded 0304 experimental models to 0309 canonical models # time=0.21ms
ok 2641 - src/gateway/context-window.test.ts > normalizeGrokModel > maps legacy beta-infixed 4.20 IDs to the current non-beta canonical IDs # time=0.17ms
ok 2642 - src/gateway/context-window.test.ts > inferGrokContextWindowTokens > resolves 2M windows for grok-4 fast and 0309 models # time=0.27ms
ok 2643 - src/gateway/context-window.test.ts > inferGrokContextWindowTokens > resolves model-specific windows for non-fast variants # time=0.14ms
ok 2644 - src/gateway/context-window.test.ts > listKnownGrokModels > returns canonical model ids with legacy aliases attached # time=6.84ms
ok 2645 - src/gateway/context-window.test.ts > listKnownGrokModels > includes current 0309 canonical models with aliases from superseded and legacy-beta variants # time=0.54ms
ok 2646 - src/gateway/context-window.test.ts > listKnownGrokModels > includes media models with modality set and zero context window # time=0.14ms
ok 2647 - src/gateway/context-window.test.ts > inferContextWindowTokens > uses explicit llm.contextWindowTokens when set # time=0.34ms
ok 2648 - src/gateway/context-window.test.ts > inferContextWindowTokens > infers per-model windows for grok and provider default for ollama # time=0.11ms
ok 2649 - src/gateway/context-window.test.ts > resolveDynamicContextWindowTokens > uses /models metadata when available # time=0.92ms
ok 2650 - src/gateway/context-window.test.ts > resolveDynamicContextWindowTokens > falls back to /language-models and supports nested/string values # time=0.54ms
ok 2651 - src/gateway/context-window.test.ts > resolveDynamicContextWindowTokens > caches metadata between lookups # time=0.15ms
ok 2652 - src/gateway/context-window.test.ts > resolveDynamicContextWindowTokens > uses Ollama runtime metadata from /api/ps when available # time=0.73ms
ok 2653 - src/gateway/context-window.test.ts > resolveContextWindowProfile > reports explicit Ollama request context as num_ctx-backed budgeting # time=0.38ms
ok 2654 - src/gateway/coordinator-tool.test.ts > coordinator_mode > parses list/stop/delegation actions # time=2.63ms
ok 2655 - src/gateway/coordinator-tool.test.ts > coordinator_mode > rejects invalid coordinator inputs # time=0.22ms
ok 2656 - src/gateway/coordinator-tool.test.ts > coordinator_mode > returns a direct execution error when invoked outside a session handler # time=0.20ms
ok 2657 - src/gateway/coordinator-tool.test.ts > coordinator_mode > lists only workers for the current parent session and reports the latest successful worker # time=11.32ms
ok 2658 - src/gateway/coordinator-tool.test.ts > coordinator_mode > reuses the latest successful worker when no workerSessionId is provided # time=97.26ms
ok 2659 - src/gateway/coordinator-tool.test.ts > coordinator_mode > lists persistent workers and reports the latest reusable worker id # time=198.10ms
ok 2660 - src/gateway/coordinator-tool.test.ts > coordinator_mode > queues follow-up work onto the latest compatible persistent worker # time=206.46ms
ok 2661 - src/gateway/coordinator-tool.test.ts > coordinator_mode > supports mailbox listing, ack, permission response, and coordinator messages # time=3.08ms
ok 2662 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /context > reports current-view context pressure with effective-window thresholds # time=31.96ms
ok 2663 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /profile > shows the current shell profile in /status # time=1.57ms
ok 2664 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /profile > lists the available shell profiles # time=1.08ms
ok 2665 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /profile > updates the shell profile and persists web session runtime state # time=1.42ms
ok 2666 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /policy > shows session allow and deny overrides in policy status # time=4.42ms
ok 2667 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /policy > updates session allow overrides # time=10.72ms
ok 2668 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /policy > updates session deny and clear overrides # time=1.46ms
ok 2669 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /policy > resets session overrides # time=1.06ms
ok 2670 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /response > shows the active stored-response status and encrypted reasoning setting # time=1.57ms
ok 2671 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /response > retrieves the latest stored response via the active anchor # time=1.20ms
ok 2672 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /response > deletes the active stored response and clears the live continuation anchor # time=1.04ms
ok 2673 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry /response > returns raw JSON for stored-response inspection when requested # time=0.65ms
ok 2674 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows workflow stage in the shell session surface # time=1.19ms
ok 2675 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > lists resumable sessions via /session list # time=1.32ms
ok 2676 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows continuity detail via /session inspect # time=0.82ms
ok 2677 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows continuity history via /session history # time=0.91ms
ok 2678 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > resumes another owned session via /session resume # time=0.62ms
ok 2679 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > forks a session via /session fork # time=0.75ms
ok 2680 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows repo inventory for /files # time=1.00ms
ok 2681 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > runs the structured grep command # time=0.73ms
ok 2682 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > runs structured git status and worktree commands # time=0.96ms
ok 2683 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows task state and MCP state # time=1.21ms
ok 2684 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > inspects, validates, reconnects, and disables an MCP server # time=18.04ms
ok 2685 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows local skill inventory, sources, and toggle state # time=3.52ms
ok 2686 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > lists, inspects, and toggles the shell plugin catalog # time=1.60ms
ok 2687 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows the shell agent role catalog and active child agents # time=1.14ms
ok 2688 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > spawns, inspects, assigns, and stops child agents through the shared launcher # time=2.21ms
ok 2689 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > shows and updates reasoning effort # time=3.85ms
ok 2690 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > enters plan mode with a coding-default child worktree posture # time=1.73ms
ok 2691 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > only allows /plan exit from plan mode # time=0.85ms
ok 2692 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > delegates review through the restricted reviewer child without silently changing the stage # time=1.15ms
ok 2693 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > delegates verification through the restricted verifier child # time=1.09ms
ok 2694 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > holds back coding commands when rollout disables them # time=0.78ms
ok 2695 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > holds back shell extensions when rollout disables them # time=0.71ms
ok 2696 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > holds back shell multi-agent orchestration when rollout disables it # time=0.68ms
ok 2697 - src/gateway/daemon-command-registry.test.ts > createDaemonCommandRegistry coding shell commands > coerces non-general profiles to general when shell profiles are held back # time=0.72ms
ok 2698 - src/gateway/daemon-session-state.test.ts > buildSessionStatefulOptions > returns undefined when no stateful session metadata is present # time=0.94ms
ok 2699 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > clears persisted runtime state during explicit session resets # time=0.96ms
ok 2700 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > repairs replay history so orphaned tool results regain an assistant envelope # time=0.72ms
ok 2701 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists and hydrates active task context across web-session resume # time=0.39ms
ok 2702 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists, hydrates, and rebuilds interactive context state # time=1.61ms
ok 2703 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists and hydrates workflow state across web-session resume # time=0.24ms
ok 2704 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists and hydrates review and verification surface state # time=0.40ms
ok 2705 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > clears cockpit review and verification state when forking runtime state # time=0.41ms
ok 2706 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists and hydrates non-default shell profiles across web-session resume # time=0.50ms
ok 2707 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > forks persisted runtime state while stripping live task ownership # time=0.64ms
ok 2708 - src/gateway/daemon-session-state.test.ts > web session runtime state helpers > persists and hydrates runtime contract status snapshots across web-session resume # time=0.49ms
ok 2709 - src/gateway/daemon-session-state.test.ts > enrichRuntimeContractSnapshotForSession > hydrates mailbox layer state from the worker manager # time=0.17ms
ok 2710 - src/gateway/daemon-session-state.test.ts > enrichRuntimeContractSnapshotForSession > builds a bounded runtime contract status snapshot from tasks, workers, and milestones # time=1.46ms
ok 2711 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > runs the shared text-channel turn path and persists session continuity # time=12.71ms
ok 2712 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > does not rerun top-level verification after the executor returns # time=0.81ms
ok 2713 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > passes persisted active task context into the executor and stores the updated lineage # time=0.48ms
ok 2714 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > passes a strict structured-output contract for Concordia agent generation turns # time=0.88ms
ok 2715 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > rethrows executor failures without mutating session history # time=0.90ms
ok 2716 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > persists a bounded runtime contract status snapshot on successful turns # time=0.54ms
ok 2717 - src/gateway/daemon-text-channel-turn.test.ts > executeTextChannelTurn > expands @-mentioned files into source-artifact context before execution # time=4.54ms
ok 2718 - src/gateway/daemon-trace.test.ts > runtime contract trace ids > builds deterministic session, task, and worker trace ids # time=0.85ms
ok 2719 - src/gateway/daemon-trace.test.ts > trace log filtering > drops provider stream_event chatter from daemon trace logs # time=2.87ms
ok 2720 - src/gateway/daemon-trace.test.ts > trace log filtering > summarizes tool_dispatch_finished result previews # time=5.39ms
ok 2721 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > filters protocol prompt sections for generic routed webchat turns # time=13.13ms
ok 2722 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > does not warn for store-disabled stateful continuation summaries # time=6.31ms
ok 2723 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > runs the shared webchat turn flow and persists stateful continuity # time=8.34ms
ok 2724 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > persists delegated scope trust metadata for poisoned child cwd summaries # time=1.17ms
ok 2725 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > surfaces failures to webchat and skips outbound persistence side effects # time=0.69ms
ok 2726 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > surfaces returned non-success results to webchat and skips outbound persistence side effects # time=0.50ms
ok 2727 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > passes the session workspace root into planner/runtime execution instead of a conflicting message root # time=7.45ms
ok 2728 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > passes persisted active task context into the executor and stores the updated lineage # time=0.86ms
ok 2729 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > expands @-mentioned files into source-artifact context before execution # time=32.38ms
ok 2730 - src/gateway/daemon-webchat-turn.test.ts > executeWebChatConversationTurn > promotes explicit full-plan implementation requests into durable workflow execution # time=8.67ms
ok 2731 - src/gateway/daemon.test.ts > DaemonManager host workspace prompt and memory resolution > uses a generic local-engineering fallback for non-workspace host paths # time=6.18ms
ok 2732 - src/gateway/daemon.test.ts > DaemonManager host workspace prompt and memory resolution > loads curated semantic memory from the configured host workspace # time=44.35ms
ok 2733 - src/gateway/daemon.test.ts > DaemonManager host workspace prompt and memory resolution > appends marketplace reputation tool-call guidance for host workspace prompts # time=7.70ms
ok 2734 - src/gateway/daemon.test.ts > DaemonManager watch cockpit usage snapshots > includes the live session usage snapshot in watch cockpit payloads # time=2.16ms
ok 2735 - src/gateway/daemon.test.ts > isCommandUnavailableError > returns true for ENOENT error code # time=0.17ms
ok 2736 - src/gateway/daemon.test.ts > isCommandUnavailableError > returns true for command-not-found messages # time=0.25ms
ok 2737 - src/gateway/daemon.test.ts > isCommandUnavailableError > returns false for non-availability errors # time=0.07ms
ok 2738 - src/gateway/daemon.test.ts > resolveSessionTokenBudget > defaults to unlimited when no explicit session token budget is configured # time=1.91ms
ok 2739 - src/gateway/daemon.test.ts > resolveSessionTokenBudget > keeps smaller context windows unlimited by default as well # time=0.93ms
ok 2740 - src/gateway/daemon.test.ts > resolveBashToolTimeoutConfig > uses the desktop bash defaults when no llm tool timeout is configured # time=0.59ms
ok 2741 - src/gateway/daemon.test.ts > resolveBashToolTimeoutConfig > preserves the shorter direct bash default when desktop mode is off # time=0.09ms
ok 2742 - src/gateway/daemon.test.ts > resolveBashToolTimeoutConfig > respects an explicitly lower llm tool timeout # time=0.28ms
ok 2743 - src/gateway/daemon.test.ts > resolveBashToolTimeoutConfig > allows longer configured llm tool timeouts up to the desktop bash ceiling # time=0.64ms
ok 2744 - src/gateway/daemon.test.ts > resolveProviderExecutionBudget > matches provider profiles back to configured child models and derives prompt budgets from them # time=0.58ms
ok 2745 - src/gateway/daemon.test.ts > sanitizeToolResultTextForTrace > scrubs embedded base64 blobs from mixed markdown tool output # time=0.67ms
ok 2746 - src/gateway/daemon.test.ts > sanitizeToolResultTextForTrace > scrubs inline data:image URLs # time=0.11ms
ok 2747 - src/gateway/daemon.test.ts > sanitizeToolResultTextForTrace > collapses ANSI-heavy terminal frames into a trace-safe placeholder # time=0.43ms
ok 2748 - src/gateway/daemon.test.ts > webchat runtime state persistence > clears persisted webchat runtime state when no stateful metadata remains # time=0.87ms
ok 2749 - src/gateway/daemon.test.ts > summarizeToolFailureForLog > summarizes JSON error responses # time=0.38ms
ok 2750 - src/gateway/daemon.test.ts > summarizeToolFailureForLog > summarizes non-zero exitCode responses # time=0.08ms
ok 2751 - src/gateway/daemon.test.ts > summarizeToolFailureForLog > returns null for successful tool output # time=0.04ms
ok 2752 - src/gateway/daemon.test.ts > summarizeToolFailureForLog > includes execute_with_agent objective context in failure summaries # time=0.23ms
ok 2753 - src/gateway/daemon.test.ts > summarizeToolFailureForLog > sanitizes ANSI-rich tool failure payloads before logging them # time=0.10ms
ok 2754 - src/gateway/daemon.test.ts > summarizeToolArgsForLog > summarizes execute_with_agent inputs with the debuggable fields # time=0.18ms
ok 2755 - src/gateway/daemon.test.ts > summarizeToolResultForTrace > flattens execute_with_agent results into debuggable trace fields # time=0.42ms
ok 2756 - src/gateway/daemon.test.ts > summarizeLLMFailureForSurface > uses annotated stop reason when present # time=0.14ms
ok 2757 - src/gateway/daemon.test.ts > summarizeLLMFailureForSurface > classifies unannotated errors into canonical stop reasons # time=0.15ms
ok 2758 - src/gateway/daemon.test.ts > formatEvalScriptReply > formats successful eval runs # time=0.10ms
ok 2759 - src/gateway/daemon.test.ts > formatEvalScriptReply > formats timed out eval runs # time=0.05ms
ok 2760 - src/gateway/daemon.test.ts > formatEvalScriptReply > formats failed eval runs with exit code # time=0.06ms
ok 2761 - src/gateway/daemon.test.ts > didEvalScriptPass > returns true only when stdout reports Overall: pass # time=0.11ms
ok 2762 - src/gateway/daemon.test.ts > didEvalScriptPass > returns false for missing or non-pass overall markers # time=0.07ms
ok 2763 - src/gateway/daemon.test.ts > didEvalScriptPass > returns false when process exit code is non-zero # time=0.03ms
ok 2764 - src/gateway/daemon.test.ts > resolveTraceLoggingConfig > returns disabled defaults when trace logging is not configured # time=0.09ms
ok 2765 - src/gateway/daemon.test.ts > resolveTraceLoggingConfig > applies configured values and maxChars bounds # time=0.08ms
ok 2766 - src/gateway/daemon.test.ts > resolveTraceFanoutEnabled > defaults fan-out on when trace logging is enabled # time=0.05ms
ok 2767 - src/gateway/daemon.test.ts > resolveTraceFanoutEnabled > respects explicit fan-out disablement # time=0.03ms
ok 2768 - src/gateway/daemon.test.ts > formatTracePayloadForLog > serializes nested payloads as JSON instead of util.inspect objects # time=0.15ms
ok 2769 - src/gateway/daemon.test.ts > resolveBashToolEnv > never forwards token-like keys by default # time=0.09ms
ok 2770 - src/gateway/daemon.test.ts > resolveBashToolEnv > includes desktop runtime keys only when desktop mode is enabled # time=0.10ms
ok 2771 - src/gateway/daemon.test.ts > resolveBashDenyExclusions > includes Linux desktop workflow exclusions # time=1.79ms
ok 2772 - src/gateway/daemon.test.ts > resolveBashDenyExclusions > keeps desktop-only exclusions off for non-desktop Linux # time=0.54ms
ok 2773 - src/gateway/daemon.test.ts > resolveBashDenyExclusions > preserves mac desktop exclusions # time=0.06ms
ok 2774 - src/gateway/daemon.test.ts > resolveStructuredExecDenyExclusions > preserves shell exclusions and adds developer runtimes for linux desktop mode # time=0.75ms
ok 2775 - src/gateway/daemon.test.ts > resolveStructuredExecDenyExclusions > returns undefined when desktop mode is disabled on linux # time=0.05ms
ok 2776 - src/gateway/daemon.test.ts > buildDesktopContext > makes desktop-only host tool unavailability explicit # time=0.17ms
ok 2777 - src/gateway/daemon.test.ts > project init > acks slash /init immediately and completes in the background # time=6.46ms
ok 2778 - src/gateway/daemon.test.ts > project init > dedupes concurrent slash /init runs per session # time=0.65ms
ok 2779 - src/gateway/daemon.test.ts > project init > isolates slash /init execution from the parent chat session # time=0.32ms
ok 2780 - src/gateway/daemon.test.ts > project init > returns a structured payload for init.run control messages # time=0.48ms
ok 2781 - src/gateway/daemon.test.ts > webchat background-run routing > does NOT auto-route until-stop phrasing into background supervision # time=1.53ms
ok 2782 - src/gateway/daemon.test.ts > webchat background-run routing > never auto-promotes a webchat message into a background run from objective text alone # time=0.75ms
ok 2783 - src/gateway/daemon.test.ts > ensureChromiumCompatShims > creates chromium and chromium-browser shims when only google-chrome exists # time=16.71ms
ok 2784 - src/gateway/daemon.test.ts > ensureChromiumCompatShims > does not create shims when chromium commands already exist # time=10.26ms
ok 2785 - src/gateway/daemon.test.ts > ensureAgencRuntimeShim > creates agenc-runtime shim when runtime dist binary exists # time=6.93ms
ok 2786 - src/gateway/daemon.test.ts > ensureAgencRuntimeShim > does not create shim when runtime binary cannot be resolved # time=2.71ms
ok 2787 - src/gateway/daemon.test.ts > PID file operations > writePidFile writes JSON with pid, port, configPath # time=5.00ms
ok 2788 - src/gateway/daemon.test.ts > PID file operations > writePidFile creates file with 0o600 permissions # time=2.92ms
ok 2789 - src/gateway/daemon.test.ts > PID file operations > writePidFile creates parent directories # time=7.26ms
ok 2790 - src/gateway/daemon.test.ts > PID file operations > readPidFile parses JSON correctly # time=16.56ms
ok 2791 - src/gateway/daemon.test.ts > PID file operations > readPidFile returns null for missing file # time=3.42ms
ok 2792 - src/gateway/daemon.test.ts > PID file operations > readPidFile returns null for invalid JSON # time=19.36ms
ok 2793 - src/gateway/daemon.test.ts > PID file operations > readPidFile returns null for JSON missing required fields # time=20.98ms
ok 2794 - src/gateway/daemon.test.ts > PID file operations > removePidFile deletes file # time=5.93ms
ok 2795 - src/gateway/daemon.test.ts > PID file operations > removePidFile is idempotent (ENOENT swallowed) # time=4.16ms
ok 2796 - src/gateway/daemon.test.ts > PID file operations > pidFileExists returns true when file exists # time=20.44ms
ok 2797 - src/gateway/daemon.test.ts > PID file operations > pidFileExists returns false when file missing # time=2.77ms
ok 2798 - src/gateway/daemon.test.ts > PID file operations > getDefaultPidPath respects AGENC_PID_PATH env var # time=1.11ms
ok 2799 - src/gateway/daemon.test.ts > PID file operations > getDefaultPidPath falls back to ~/.agenc/daemon.pid # time=0.73ms
ok 2800 - src/gateway/daemon.test.ts > PID file operations > isRuntimeUserSkillDiscoveryEnabled defaults to false # time=2.10ms
ok 2801 - src/gateway/daemon.test.ts > PID file operations > resolveRuntimeSkillDiscoveryPaths only includes ~/.agenc/skills when opt-in is enabled # time=2.55ms
ok 2802 - src/gateway/daemon.test.ts > isProcessAlive > returns true for current process # time=0.13ms
ok 2803 - src/gateway/daemon.test.ts > isProcessAlive > returns false for non-existent PID # time=0.06ms
ok 2804 - src/gateway/daemon.test.ts > checkStalePid > returns none when no PID file exists # time=7.57ms
ok 2805 - src/gateway/daemon.test.ts > checkStalePid > returns alive when process is running # time=10.31ms
ok 2806 - src/gateway/daemon.test.ts > checkStalePid > returns stale when process is not running # time=11.38ms
ok 2807 - src/gateway/daemon.test.ts > DaemonManager > start creates Gateway and writes PID file # time=28.48ms
ok 2808 - src/gateway/daemon.test.ts > DaemonManager > does not double-stop registered external channels during shutdown # time=3.30ms
ok 2809 - src/gateway/daemon.test.ts > DaemonManager > includes static desktop tools in the subagent catalog for desktop sessions # time=5.42ms
ok 2810 - src/gateway/daemon.test.ts > DaemonManager > discoverSkills ignores ~/.agenc/skills unless explicitly enabled # time=86.17ms
ok 2811 - src/gateway/daemon.test.ts > DaemonManager > discoverSkills loads ~/.agenc/skills only when explicitly enabled # time=85.37ms
ok 2812 - src/gateway/daemon.test.ts > DaemonManager > enables sub-agent orchestration by default when llm.subagents is omitted # time=3.70ms
ok 2813 - src/gateway/daemon.test.ts > DaemonManager > start initializes sub-agent infrastructure when llm.subagents is enabled # time=2.80ms
ok 2814 - src/gateway/daemon.test.ts > DaemonManager > starts and stops the desktop watchdog when desktop sandboxes are enabled # time=4.14ms
ok 2815 - src/gateway/daemon.test.ts > DaemonManager > registers execute_with_agent in the runtime tool registry # time=436.90ms
ok 2816 - src/gateway/daemon.test.ts > DaemonManager > forwards the configured programId when registering agenc tools # time=2.74ms
ok 2817 - src/gateway/daemon.test.ts > DaemonManager > preserves durable web-session task tracker state during session reset # time=6.88ms
ok 2818 - src/gateway/daemon.test.ts > DaemonManager > preserves durable subagent task tracker state when subagent contexts are destroyed # time=1.89ms
ok 2819 - src/gateway/daemon.test.ts > DaemonManager > leaves durable task tracker state intact when the daemon stops # time=2.34ms
ok 2820 - src/gateway/daemon.test.ts > DaemonManager > disables host execution deny lists when yolo mode is enabled # time=47.20ms
ok 2821 - src/gateway/daemon.test.ts > DaemonManager > hotSwapLLMProvider refreshes the cached provider list # time=1079.58ms
ok 2822 - src/gateway/daemon.test.ts > DaemonManager > advertises provider-native web_search when Grok web search is enabled # time=4.87ms
ok 2823 - src/gateway/daemon.test.ts > DaemonManager > does not advertise provider-native web_search for unsupported Grok models # time=1.33ms
ok 2824 - src/gateway/daemon.test.ts > DaemonManager > blocks package manifest writes with unsupported workspace protocol before execution # time=1.49ms
ok 2825 - src/gateway/daemon.test.ts > DaemonManager > allows package manifest writes when host workspace protocol support is available # time=3.00ms
ok 2826 - src/gateway/daemon.test.ts > DaemonManager > uses the session workspace root for webchat tool calls when workspace.hostPath is not pinned # time=4.55ms
ok 2827 - src/gateway/daemon.test.ts > DaemonManager > uses the session workspace root for direct delegated child shell calls in webchat when workspace.hostPath is not pinned # time=24.57ms
ok 2828 - src/gateway/daemon.test.ts > DaemonManager > keeps the configured host workspace root authoritative when workspace.hostPath is pinned # time=8.97ms
ok 2829 - src/gateway/daemon.test.ts > DaemonManager > registers social tools when enabled # time=51.01ms
ok 2830 - src/gateway/daemon.test.ts > DaemonManager > auto-creates missing default workspace for sub-agent isolation # time=1.45ms
ok 2831 - src/gateway/daemon.test.ts > DaemonManager > cleans up desktop resources for subagent sessions during teardown # time=172.57ms
ok 2832 - src/gateway/daemon.test.ts > DaemonManager > start cleans up gateway if writePidFile fails # time=9.61ms
ok 2833 - src/gateway/daemon.test.ts > DaemonManager > stop calls gateway.stop and removes PID file # time=7.67ms
ok 2834 - src/gateway/daemon.test.ts > DaemonManager > stop does not double-stop registered external channels when gateway owns them # time=1.97ms
ok 2835 - src/gateway/daemon.test.ts > DaemonManager > stop destroys sub-agent manager lifecycle # time=7.23ms
ok 2836 - src/gateway/daemon.test.ts > DaemonManager > stop is idempotent # time=1.09ms
ok 2837 - src/gateway/daemon.test.ts > DaemonManager > double start is rejected # time=4.48ms
ok 2838 - src/gateway/daemon.test.ts > DaemonManager > setupSignalHandlers registers handlers # time=0.94ms
ok 2839 - src/gateway/daemon.test.ts > DaemonManager > forces process exit if signal shutdown exceeds the grace window # time=5.18ms
ok 2840 - src/gateway/daemon.test.ts > DaemonManager > logs sub-agent startup diagnostics with hard caps # time=6.72ms
ok 2841 - src/gateway/daemon.test.ts > DaemonManager > start wires delegation policy/verifier/lifecycle dependencies # time=9.19ms
ok 2842 - src/gateway/daemon.test.ts > DaemonManager > enables unsafe delegation benchmark mode under --yolo # time=6.13ms
ok 2843 - src/gateway/daemon.test.ts > DaemonManager > defaults subagent spawn decision threshold to the calibrated runtime baseline # time=8.46ms
ok 2844 - src/gateway/daemon.test.ts > DaemonManager > resolves delegation controls for aggressiveness, handoff confidence, provider strategy, and hard blocks # time=18.03ms
ok 2845 - src/gateway/daemon.test.ts > DaemonManager > reconfigures delegation thresholds in place without recreating manager # time=9.78ms
ok 2846 - src/gateway/daemon.test.ts > DaemonManager > applies runtime delegation aggressiveness override to policy threshold # time=11.99ms
ok 2847 - src/gateway/daemon.test.ts > DaemonManager > getStatus returns correct shape when not running # time=11.54ms
ok 2848 - src/gateway/daemon.test.ts > DaemonManager > setupSignalHandlers is idempotent # time=5.60ms
ok 2849 - src/gateway/daemon.test.ts > DaemonManager > getStatus returns running status with gateway info # time=18.61ms
ok 2850 - src/gateway/daemon.test.ts > DaemonManager > relays subagent lifecycle events to parent chat/activity with trace correlation and sanitized payloads # time=2.73ms
ok 2851 - src/gateway/daemon.test.ts > DaemonManager > enriches synthesized lifecycle events with the latest delegated child context # time=3.15ms
ok 2852 - src/gateway/daemon.test.ts > DaemonManager > writes relayed subagent lifecycle events into trace logs when trace logging is enabled # time=7.46ms
ok 2853 - src/gateway/daemon.test.ts > DaemonManager > routes delegated approval requests to parent webchat and text channels # time=16.96ms
ok 2854 - src/gateway/daemon.test.ts > DaemonManager > allows parent sessions on text channels to list and resolve delegated approvals # time=10.01ms
ok 2855 - src/gateway/daemon.test.ts > DaemonManager > pushes first-class approval escalation notices to webchat and text dispatchers # time=7.42ms
ok 2856 - src/gateway/daemon.test.ts > DaemonManager > builds policy simulation previews from the active policy and approval engines # time=8.89ms
ok 2857 - src/gateway/daemon.test.ts > DaemonManager > uses session-scoped tenant and project policy context for previews # time=10.28ms
ok 2858 - src/gateway/daemon.test.ts > DaemonManager > audits operator background-run controls through the governance log # time=8.94ms
ok 2859 - src/gateway/daemon.test.ts > DaemonManager > audits operator stop controls through the governance log # time=4.54ms
ok 2860 - src/gateway/daemon.test.ts > DaemonManager > reports disabled durable-run capability in gateway status snapshots # time=1.76ms
ok 2861 - src/gateway/daemon.test.ts > DaemonManager > annotates inspected runs with durable-run availability # time=3.26ms
ok 2862 - src/gateway/daemon.test.ts > DaemonManager skill injection > daemon skill injector only exposes relevant metadata summaries # time=0.68ms
ok 2863 - src/gateway/daemon.test.ts > Service templates > systemd template contains required fields # time=0.18ms
ok 2864 - src/gateway/daemon.test.ts > Service templates > systemd template includes user when provided # time=0.04ms
ok 2865 - src/gateway/daemon.test.ts > Service templates > launchd template contains required fields # time=0.14ms
ok 2866 - src/gateway/daemon.test.ts > Service templates > launchd template uses custom label # time=0.10ms
ok 2867 - src/gateway/daemon.test.ts > Service templates > launchd template handles paths with spaces # time=0.04ms
ok 2868 - src/gateway/dashboard-assets.test.ts > dashboard assets > prefers the explicit dashboard asset override when it contains an index # time=8.59ms
ok 2869 - src/gateway/dashboard-assets.test.ts > dashboard assets > redirects /ui to /ui/ # time=15.15ms
ok 2870 - src/gateway/dashboard-assets.test.ts > dashboard assets > serves index.html for extensionless client routes # time=13.69ms
ok 2871 - src/gateway/dashboard-assets.test.ts > dashboard assets > serves asset files without SPA fallback # time=8.79ms
ok 2872 - src/gateway/dashboard-assets.test.ts > dashboard assets > returns 404 for missing asset files instead of index fallback # time=3.83ms
ok 2873 - src/gateway/dashboard-assets.test.ts > dashboard assets > rejects traversal attempts # time=9.48ms
ok 2874 - src/gateway/delegated-scope-preflight.test.ts > preflightDelegatedLocalFileScope > rejects filesystem-capable delegated tool scopes that lack a structured executionContext # time=1.43ms
ok 2875 - src/gateway/delegated-scope-preflight.test.ts > preflightDelegatedLocalFileScope > allows non-filesystem delegated tool scopes without a structured executionContext # time=0.45ms
ok 2876 - src/gateway/delegated-scope-preflight.test.ts > preflightDelegatedLocalFileScope > rejects required source artifacts outside delegated read roots before spawn # time=155.39ms
ok 2877 - src/gateway/delegated-scope-preflight.test.ts > preflightDelegatedLocalFileScope > rejects missing delegated workspaces when required source artifacts are declared # time=0.78ms
ok 2878 - src/gateway/delegated-scope-preflight.test.ts > preflightDelegatedLocalFileScope > accepts canonical delegated contracts that already agree with the filesystem # time=2.18ms
ok 2879 - src/gateway/delegation-admission.test.ts > assessDelegationAdmission > keeps explicitly requested read-only delegation admissible # time=17.50ms
ok 2880 - src/gateway/delegation-admission.test.ts > assessDelegationAdmission > denies parallel mutable writers that target the same artifact # time=0.88ms
ok 2881 - src/gateway/delegation-scope.test.ts > assessDelegationScope > rejects implementation work that also includes browser validation # time=2.73ms
ok 2882 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify explicitly negated browser automation as a browser phase # time=1.20ms
ok 2883 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify browser-target product wording as a browser validation phase # time=0.20ms
ok 2884 - src/gateway/delegation-scope.test.ts > assessDelegationScope > rejects research work that also asks the child to implement code # time=0.11ms
ok 2885 - src/gateway/delegation-scope.test.ts > assessDelegationScope > allows pure implementation that mentions research incidentally # time=0.40ms
ok 2886 - src/gateway/delegation-scope.test.ts > assessDelegationScope > allows browser-only validation steps that edit app state in the UI # time=0.48ms
ok 2887 - src/gateway/delegation-scope.test.ts > assessDelegationScope > allows setup plus implementation without browser validation # time=0.13ms
ok 2888 - src/gateway/delegation-scope.test.ts > assessDelegationScope > rejects oversized workspace scaffold phases that mix manifests, directories, and entry files # time=0.12ms
ok 2889 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify plain gameplay implementation as research # time=0.43ms
ok 2890 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify research about a failing test as validation work # time=0.12ms
ok 2891 - src/gateway/delegation-scope.test.ts > assessDelegationScope > allows implementation steps that include focused compile verification # time=0.15ms
ok 2892 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify source code mentions as research work # time=0.09ms
ok 2893 - src/gateway/delegation-scope.test.ts > assessDelegationScope > does not classify TypeScript project references as research work # time=0.14ms
ok 2894 - src/gateway/delegation-tool.test.ts > delegation-tool > parses execute_with_agent input with task and scoped options # time=1.43ms
ok 2895 - src/gateway/delegation-tool.test.ts > delegation-tool > accepts objective as task fallback # time=0.20ms
ok 2896 - src/gateway/delegation-tool.test.ts > delegation-tool > parses forkContext on the public delegation path # time=0.08ms
ok 2897 - src/gateway/delegation-tool.test.ts > delegation-tool > parses an explicit child cwd on the public delegation path # time=0.12ms
ok 2898 - src/gateway/delegation-tool.test.ts > delegation-tool > preserves explicit task scope when task and objective are both provided # time=0.08ms
ok 2899 - src/gateway/delegation-tool.test.ts > delegation-tool > parses internal continuation session identifiers without exposing them in the tool schema # time=0.06ms
ok 2900 - src/gateway/delegation-tool.test.ts > delegation-tool > ignores legacy context requirements on the direct execute_with_agent path # time=0.11ms
ok 2901 - src/gateway/delegation-tool.test.ts > delegation-tool > accepts snake_case delegation fields from planner-shaped payloads # time=0.22ms
ok 2902 - src/gateway/delegation-tool.test.ts > delegation-tool > rejects planner-shaped execution_context payloads on the public path # time=0.38ms
ok 2903 - src/gateway/delegation-tool.test.ts > delegation-tool > preserves only bounded artifact and verification hints on the public path # time=0.22ms
ok 2904 - src/gateway/delegation-tool.test.ts > delegation-tool > rejects model-authored delegated root authority on the public path # time=0.13ms
ok 2905 - src/gateway/delegation-tool.test.ts > delegation-tool > does not infer a delegated working directory from objective text # time=0.07ms
ok 2906 - src/gateway/delegation-tool.test.ts > delegation-tool > does not infer a delegated working directory from change-directory phrasing # time=0.03ms
ok 2907 - src/gateway/delegation-tool.test.ts > delegation-tool > uses executionContext.workspaceRoot when present # time=0.13ms
ok 2908 - src/gateway/delegation-tool.test.ts > delegation-tool > uses only runtime-owned executionContext as delegated working-directory truth # time=0.12ms
ok 2909 - src/gateway/delegation-tool.test.ts > delegation-tool > rejects missing task/objective # time=0.09ms
ok 2910 - src/gateway/delegation-tool.test.ts > delegation-tool > creates a canonical execute_with_agent tool definition # time=0.45ms
ok 2911 - src/gateway/durable-subrun-orchestrator.test.ts > durable-subrun-orchestrator > gates durable subruns on healthy single-agent metrics and helpful redundancy evidence # time=3.98ms
ok 2912 - src/gateway/durable-subrun-orchestrator.test.ts > durable-subrun-orchestrator > spawns silent child runs with durable lineage and parent events # time=20.52ms
ok 2913 - src/gateway/durable-subrun-orchestrator.test.ts > durable-subrun-orchestrator > rejects subrun plans when single-agent quality gates or nested budgets fail # time=2.20ms
ok 2914 - src/gateway/durable-subrun-orchestrator.test.ts > durable-subrun-orchestrator > applies runtime admission policy before spawning multi-agent subruns # time=0.81ms
ok 2915 - src/gateway/durable-subrun-orchestrator.test.ts > durable-subrun-orchestrator > joins child runs deterministically and reconstructs parent/child trees after restart # time=166.13ms
ok 2916 - src/gateway/gateway.test.ts > Gateway > constructor > accepts valid config # time=5.75ms
ok 2917 - src/gateway/gateway.test.ts > Gateway > lifecycle > start: stopped → starting → running # time=15.68ms
ok 2918 - src/gateway/gateway.test.ts > Gateway > lifecycle > stop: running → stopping → stopped # time=0.82ms
ok 2919 - src/gateway/gateway.test.ts > Gateway > lifecycle > start when running throws GatewayStateError # time=1.00ms
ok 2920 - src/gateway/gateway.test.ts > Gateway > lifecycle > start fails for non-loopback bind without auth.secret # time=1.13ms
ok 2921 - src/gateway/gateway.test.ts > Gateway > lifecycle > stop when stopped is no-op # time=0.40ms
ok 2922 - src/gateway/gateway.test.ts > Gateway > getStatus > returns correct state and uptime # time=0.70ms
ok 2923 - src/gateway/gateway.test.ts > Gateway > getStatus > allows a status provider to augment control-plane snapshots # time=0.51ms
ok 2924 - src/gateway/gateway.test.ts > Gateway > webhook routes > serves dashboard assets on the gateway port # time=34.56ms
ok 2925 - src/gateway/gateway.test.ts > Gateway > webhook routes > serves registered HTTP webhook routes on the gateway port # time=8.11ms
ok 2926 - src/gateway/gateway.test.ts > Gateway > webhook routes > rejects duplicate webhook route registration # time=0.26ms
ok 2927 - src/gateway/gateway.test.ts > Gateway > webhook routes > matches parameterized webhook routes and forwards path params # time=2.34ms
ok 2928 - src/gateway/gateway.test.ts > Gateway > channels > registerChannel adds to registry # time=0.57ms
ok 2929 - src/gateway/gateway.test.ts > Gateway > channels > registerChannel duplicate throws GatewayValidationError # time=0.28ms
ok 2930 - src/gateway/gateway.test.ts > Gateway > channels > unregisterChannel calls stop and removes # time=0.43ms
ok 2931 - src/gateway/gateway.test.ts > Gateway > config reload > reloadConfig identifies safe vs unsafe # time=1.39ms
ok 2932 - src/gateway/gateway.test.ts > Gateway > config reload > reloadConfig applies safe changes # time=0.23ms
ok 2933 - src/gateway/gateway.test.ts > Gateway > config reload > reloadConfig preserves unsafe fields from old config # time=0.47ms
ok 2934 - src/gateway/gateway.test.ts > Gateway > config reload > reloadConfig applies llm.subagents as safe config # time=0.70ms
ok 2935 - src/gateway/gateway.test.ts > Gateway > events > on/off subscription works # time=0.32ms
ok 2936 - src/gateway/gateway.test.ts > Gateway > events > emits started on start # time=0.17ms
ok 2937 - src/gateway/gateway.test.ts > Gateway > events > emits stopped on stop # time=0.14ms
ok 2938 - src/gateway/gateway.test.ts > Gateway > auth > no auth config allows all messages # time=0.46ms
ok 2939 - src/gateway/gateway.test.ts > Gateway > auth > no auth config rejects unauthenticated chat.message from non-local client # time=0.23ms
ok 2940 - src/gateway/gateway.test.ts > Gateway > auth > no auth config rejects explicit auth from non-local client # time=0.19ms
ok 2941 - src/gateway/gateway.test.ts > Gateway > auth > no auth config allows local chat.message via webchat handler # time=0.20ms
ok 2942 - src/gateway/gateway.test.ts > Gateway > auth > wallet.airdrop rejects invalid amount values # time=10.99ms
ok 2943 - src/gateway/gateway.test.ts > Gateway > auth > wallet.airdrop maps rate-limit errors to actionable messages # time=6.38ms
ok 2944 - src/gateway/gateway.test.ts > Gateway > auth > wallet.airdrop maps internal RPC errors to actionable messages # time=9.47ms
ok 2945 - src/gateway/gateway.test.ts > Gateway > auth > wallet.airdrop caps amount at 2 SOL # time=8.06ms
ok 2946 - src/gateway/gateway.test.ts > Gateway > auth > auth config rejects unauthenticated non-local client # time=0.44ms
ok 2947 - src/gateway/gateway.test.ts > Gateway > auth > auth config rejects unauthenticated chat.message # time=0.25ms
ok 2948 - src/gateway/gateway.test.ts > Gateway > auth > auth config allows ping before authentication # time=0.30ms
ok 2949 - src/gateway/gateway.test.ts > Gateway > auth > authenticates with valid token # time=0.62ms
ok 2950 - src/gateway/gateway.test.ts > Gateway > auth > forwards chat.message after authentication # time=0.29ms
ok 2951 - src/gateway/gateway.test.ts > Gateway > auth > rejects invalid token and closes socket # time=0.22ms
ok 2952 - src/gateway/gateway.test.ts > Gateway > auth > rejects auth with missing token and closes socket # time=0.19ms
ok 2953 - src/gateway/gateway.test.ts > Gateway > auth > auto-authenticates local connection (127.0.0.1) # time=0.20ms
ok 2954 - src/gateway/gateway.test.ts > Gateway > auth > auto-authenticates local connection (::1) # time=0.24ms
ok 2955 - src/gateway/gateway.test.ts > Gateway > auth > auto-authenticates local connection (::ffff:127.0.0.1) # time=0.16ms
ok 2956 - src/gateway/gateway.test.ts > Gateway > auth > rejects undefined remoteAddress even with localBypass # time=0.16ms
ok 2957 - src/gateway/gateway.test.ts > Gateway > auth > local bypass disabled requires auth even for localhost # time=0.16ms
ok 2958 - src/gateway/gateway.test.ts > Gateway > auth > cleanup on disconnect removes from authenticatedClients # time=0.18ms
ok 2959 - src/gateway/gateway.test.ts > config loading > loadGatewayConfig reads valid file # time=2.67ms
ok 2960 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects missing fields # time=23.49ms
ok 2961 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts valid config # time=8.30ms
ok 2962 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts logging.trace settings # time=1.47ms
ok 2963 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid logging.trace fields # time=5.40ms
ok 2964 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig silently tolerates legacy llm.statefulResponses field on disk # time=3.83ms
ok 2965 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts llm.toolRouting fields # time=2.01ms
ok 2966 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts llm native web search fields # time=9.67ms
ok 2967 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts explicit xAI capability surface fields # time=3.04ms
ok 2968 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid llm.toolRouting fields # time=8.46ms
ok 2969 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid llm native web search fields # time=5.36ms
ok 2970 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid explicit xAI capability surface fields # time=3.57ms
ok 2971 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts llm.subagents fields # time=9.29ms
ok 2972 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts an unlimited llm.subagents child-token ceiling # time=1.88ms
ok 2973 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid llm.subagents fields # time=5.38ms
ok 2974 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts phase-4 planner and budget fields # time=0.84ms
ok 2975 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid phase-4 planner and budget fields # time=7.41ms
ok 2976 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig accepts runtime-contract flags # time=1.39ms
ok 2977 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects invalid runtime-contract flags # time=0.99ms
ok 2978 - src/gateway/gateway.test.ts > config loading > validateGatewayConfig rejects reserved stop-hook ids # time=5.91ms
ok 2979 - src/gateway/gateway.test.ts > config loading > diffGatewayConfig detects changed sections # time=1.55ms
ok 2980 - src/gateway/gateway.test.ts > config loading > diffGatewayConfig treats channels and plugin trust policy as restart-only # time=1.20ms
ok 2981 - src/gateway/gateway.test.ts > config loading > ConfigWatcher debounces rapid changes # time=230.23ms
ok 2982 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > returns quiet when no memory entries # time=1.44ms
ok 2983 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > calls LLM with correct system and user prompts # time=5.15ms
ok 2984 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > returns quiet on LLM error # time=0.49ms
ok 2985 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > returns quiet when LLM returns empty content # time=0.18ms
ok 2986 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > passes correct query params with defaults # time=0.80ms
ok 2987 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > respects custom lookbackMs and maxEntries # time=1.12ms
ok 2988 - src/gateway/heartbeat-actions.test.ts > createSummaryAction > has name "summary" and enabled true # time=0.25ms
ok 2989 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > returns quiet on first run (no previous balance) # time=1.09ms
ok 2990 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > returns quiet when delta is below threshold # time=0.83ms
ok 2991 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > alerts when delta exceeds threshold (positive) # time=0.36ms
ok 2992 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > alerts when delta exceeds threshold (negative) # time=0.29ms
ok 2993 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > respects custom alertThresholdLamports # time=0.20ms
ok 2994 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > returns quiet and logs on connection error # time=0.20ms
ok 2995 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > has name "portfolio" and enabled true # time=0.10ms
ok 2996 - src/gateway/heartbeat-actions.test.ts > createPortfolioAction > always stores current balance # time=0.26ms
ok 2997 - src/gateway/heartbeat-actions.test.ts > createPollingAction > calls checkFn with parsed JSON on success # time=35.59ms
ok 2998 - src/gateway/heartbeat-actions.test.ts > createPollingAction > returns quiet on HTTP error # time=1.34ms
ok 2999 - src/gateway/heartbeat-actions.test.ts > createPollingAction > returns quiet on fetch error # time=1.79ms
ok 3000 - src/gateway/heartbeat-actions.test.ts > createPollingAction > passes custom headers to fetch # time=0.89ms
ok 3001 - src/gateway/heartbeat-actions.test.ts > createPollingAction > uses config name as action name # time=0.12ms
ok 3002 - src/gateway/heartbeat-actions.test.ts > createDefaultHeartbeatActions > returns 2 actions # time=0.37ms
ok 3003 - src/gateway/heartbeat-actions.test.ts > createDefaultHeartbeatActions > returns actions with correct names # time=0.14ms
ok 3004 - src/gateway/heartbeat-actions.test.ts > createDefaultHeartbeatActions > all actions are enabled # time=0.17ms
ok 3005 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > error classes > HeartbeatStateError has correct code and name # time=1.79ms
ok 3006 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > error classes > HeartbeatActionError has correct code, name, and actionName # time=0.53ms
ok 3007 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > error classes > HeartbeatTimeoutError has correct code, name, and timeoutMs # time=0.33ms
ok 3008 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > constructor > creates scheduler with default options # time=0.30ms
ok 3009 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > constructor > creates scheduler with custom logger and sendToChannels # time=0.19ms
ok 3010 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > registerAction > registers an action when stopped # time=0.13ms
ok 3011 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > registerAction > throws HeartbeatStateError when registering while running # time=0.40ms
ok 3012 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > start/stop > start sets running to true # time=0.19ms
ok 3013 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > start/stop > start is idempotent # time=0.56ms
ok 3014 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > start/stop > stop sets running to false # time=0.20ms
ok 3015 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > start/stop > stop is idempotent # time=0.24ms
ok 3016 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > start/stop > does not start when config.enabled is false # time=0.11ms
ok 3017 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > runOnce > executes all enabled actions # time=0.51ms
ok 3018 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > runOnce > skips disabled actions # time=0.22ms
ok 3019 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > runOnce > updates lastRunAt after execution # time=0.11ms
ok 3020 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > quiet heartbeat > does not call sendToChannels when all actions are quiet # time=0.27ms
ok 3021 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > quiet heartbeat > calls sendToChannels when action has output # time=0.59ms
ok 3022 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > quiet heartbeat > does not post when hasOutput is true but quiet is also true # time=0.19ms
ok 3023 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > timeout > times out slow actions without crashing the scheduler # time=17.54ms
ok 3024 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > error isolation > continues running after an action throws # time=2.70ms
ok 3025 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > active hours > returns true when within normal range (8-22) # time=4.04ms
ok 3026 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > active hours > returns false when outside normal range (8-22) # time=0.27ms
ok 3027 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > active hours > handles wrap-around range (22-6) # time=0.14ms
ok 3028 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > active hours > returns true when no activeHours configured # time=0.12ms
ok 3029 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > active hours > skips actions when outside active hours # time=0.30ms
ok 3030 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > interval scheduling > runs actions after intervalMs elapses # time=2.56ms
ok 3031 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > interval scheduling > sets nextRunAt on start and updates after runOnce # time=0.31ms
ok 3032 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > summary > returns correct counts in summary # time=0.25ms
ok 3033 - src/gateway/heartbeat.test.ts > HeartbeatScheduler > defaultHeartbeatConfig > has expected defaults # time=0.12ms
ok 3034 - src/gateway/hooks.test.ts > HookDispatcher > on / off > registers a handler # time=1.19ms
ok 3035 - src/gateway/hooks.test.ts > HookDispatcher > on / off > registers multiple handlers for same event # time=0.15ms
ok 3036 - src/gateway/hooks.test.ts > HookDispatcher > on / off > removes a handler by event and name # time=0.17ms
ok 3037 - src/gateway/hooks.test.ts > HookDispatcher > on / off > returns false when removing nonexistent handler # time=0.11ms
ok 3038 - src/gateway/hooks.test.ts > HookDispatcher > on / off > returns false when removing from event with no handlers # time=0.12ms
ok 3039 - src/gateway/hooks.test.ts > HookDispatcher > on / off > cleans up empty handler list on last removal # time=0.07ms
ok 3040 - src/gateway/hooks.test.ts > HookDispatcher > clear > clears handlers for a specific event # time=0.26ms
ok 3041 - src/gateway/hooks.test.ts > HookDispatcher > clear > clears all handlers when no event given # time=0.09ms
ok 3042 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > calls handlers in registration order when same priority # time=0.57ms
ok 3043 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > calls handlers in priority order (lower first) # time=0.13ms
ok 3044 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > passes payload to handlers # time=0.26ms
ok 3045 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > returns completed: true when all handlers continue # time=0.14ms
ok 3046 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > returns completed: true with 0 handlers when none registered # time=0.05ms
ok 3047 - src/gateway/hooks.test.ts > HookDispatcher > dispatch > aborts chain when handler returns continue: false # time=0.09ms
ok 3048 - src/gateway/hooks.test.ts > HookDispatcher > payload transformation > transforms payload between handlers # time=0.15ms
ok 3049 - src/gateway/hooks.test.ts > HookDispatcher > payload transformation > chains multiple payload transformations # time=0.08ms
ok 3050 - src/gateway/hooks.test.ts > HookDispatcher > payload transformation > aborted handler payload is preserved in result # time=0.06ms
ok 3051 - src/gateway/hooks.test.ts > HookDispatcher > error isolation > continues chain when a handler throws # time=0.13ms
ok 3052 - src/gateway/hooks.test.ts > HookDispatcher > getHandlerCount > returns 0 for events with no handlers # time=0.04ms
ok 3053 - src/gateway/hooks.test.ts > HookDispatcher > getHandlerCount > returns total count when no event specified # time=0.06ms
ok 3054 - src/gateway/hooks.test.ts > HookDispatcher > listHandlers > lists handlers grouped by event with priorities # time=0.51ms
ok 3055 - src/gateway/hooks.test.ts > HookDispatcher > dispatch — event isolation > does not call handlers registered for a different event # time=0.13ms
ok 3056 - src/gateway/hooks.test.ts > HookDispatcher > getHandlers > returns handlers for a registered event # time=0.10ms
ok 3057 - src/gateway/hooks.test.ts > HookDispatcher > getHandlers > returns empty array for event with no handlers # time=0.13ms
ok 3058 - src/gateway/hooks.test.ts > HookDispatcher > getHandlers > returns readonly array (does not expose internal list) # time=0.08ms
ok 3059 - src/gateway/hooks.test.ts > HookDispatcher > duplicate name guard > rejects duplicate (event, name) pair and returns false # time=0.06ms
ok 3060 - src/gateway/hooks.test.ts > HookDispatcher > duplicate name guard > allows same name on different events # time=0.05ms
ok 3061 - src/gateway/hooks.test.ts > HookDispatcher > reentrancy safety > handler registered during dispatch does not run in current cycle # time=0.10ms
ok 3062 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > returns 3 built-in hook handlers # time=0.13ms
ok 3063 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > includes tool-audit-logger on tool:after # time=0.28ms
ok 3064 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > includes boot-executor on gateway:startup # time=0.09ms
ok 3065 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > includes approval-gate on tool:before # time=0.07ms
ok 3066 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > all built-in hooks are no-op stubs that continue # time=0.07ms
ok 3067 - src/gateway/hooks.test.ts > HookDispatcher > createBuiltinHooks > can be registered on a dispatcher # time=0.07ms
ok 3068 - src/gateway/hooks.test.ts > HookDispatcher > timestamp injection > uses custom clock function # time=0.05ms
ok 3069 - src/gateway/host-tooling.test.ts > host-tooling > finds unsupported workspace protocol specifiers in package manifests # time=1.27ms
ok 3070 - src/gateway/host-tooling.test.ts > host-tooling > falls back to raw workspace literals when package manifest JSON is incomplete # time=0.32ms
ok 3071 - src/gateway/host-tooling.test.ts > host-tooling > records unsupported npm workspace protocol from an empirical install probe # time=9.03ms
ok 3072 - src/gateway/host-tooling.test.ts > host-tooling > records supported npm workspace protocol when the empirical install succeeds # time=8.32ms
ok 3073 - src/gateway/host-workspace.test.ts > resolveHostWorkspacePath > defaults to the daemon cwd when workspace.hostPath is unset # time=0.85ms
ok 3074 - src/gateway/host-workspace.test.ts > resolveHostWorkspacePath > resolves workspace.hostPath relative to the config file directory # time=0.18ms
ok 3075 - src/gateway/host-workspace.test.ts > resolveHostWorkspacePath > keeps absolute workspace.hostPath values # time=0.08ms
ok 3076 - src/gateway/host-workspace.test.ts > resolveHostWorkspacePath > rejects workspace.hostPath when it resolves to filesystem root # time=0.40ms
ok 3077 - src/gateway/host-workspace.test.ts > buildAllowedFilesystemPaths > includes the configured host workspace root once alongside standard safe roots # time=0.31ms
ok 3078 - src/gateway/host-workspace.test.ts > buildAllowedFilesystemPaths > does not duplicate built-in safe roots # time=0.07ms
ok 3079 - src/gateway/host-workspace.test.ts > resolveSessionWorkspaceRoot > accepts existing non-root absolute workspace paths # time=1.76ms
ok 3080 - src/gateway/host-workspace.test.ts > resolveSessionWorkspaceRoot > rejects filesystem root, relative paths, and missing directories # time=0.82ms
ok 3081 - src/gateway/host-workspace.test.ts > resolveSessionWorkspaceRoot > rejects sensitive roots, descendants, and broad ancestors that would include them # time=2.23ms
ok 3082 - src/gateway/host-workspace.test.ts > resolveSessionWorkspaceRoot > canonicalizes symlinked workspace roots and rejects files # time=1.65ms
ok 3083 - src/gateway/identity.test.ts > IdentityResolver > register > creates a new identity for an unlinked account # time=2.77ms
ok 3084 - src/gateway/identity.test.ts > IdentityResolver > register > returns existing identity if account is already linked # time=0.76ms
ok 3085 - src/gateway/identity.test.ts > IdentityResolver > register > rejects empty channel # time=1.50ms
ok 3086 - src/gateway/identity.test.ts > IdentityResolver > register > rejects empty senderId # time=0.74ms
ok 3087 - src/gateway/identity.test.ts > IdentityResolver > register > rejects null bytes in channel # time=0.46ms
ok 3088 - src/gateway/identity.test.ts > IdentityResolver > register > rejects null bytes in senderId # time=0.26ms
ok 3089 - src/gateway/identity.test.ts > IdentityResolver > register > rejects oversized channel # time=0.16ms
ok 3090 - src/gateway/identity.test.ts > IdentityResolver > register > rejects oversized senderId # time=0.19ms
ok 3091 - src/gateway/identity.test.ts > IdentityResolver > register > rejects when max identities reached # time=0.94ms
ok 3092 - src/gateway/identity.test.ts > IdentityResolver > resolve > returns identityId for a registered account # time=0.24ms
ok 3093 - src/gateway/identity.test.ts > IdentityResolver > resolve > returns undefined for an unregistered account # time=0.19ms
ok 3094 - src/gateway/identity.test.ts > IdentityResolver > getIdentity > returns identity by ID # time=0.13ms
ok 3095 - src/gateway/identity.test.ts > IdentityResolver > getIdentity > returns undefined for unknown ID # time=0.09ms
ok 3096 - src/gateway/identity.test.ts > IdentityResolver > getIdentityByAccount > returns identity for a linked account # time=0.15ms
ok 3097 - src/gateway/identity.test.ts > IdentityResolver > getIdentityByAccount > returns undefined for unlinked account # time=0.10ms
ok 3098 - src/gateway/identity.test.ts > IdentityResolver > requestLink > returns a 6-character alphanumeric uppercase code # time=0.44ms
ok 3099 - src/gateway/identity.test.ts > IdentityResolver > requestLink > auto-registers account if not already registered # time=0.16ms
ok 3100 - src/gateway/identity.test.ts > IdentityResolver > requestLink > rejects when pending link limit reached # time=0.18ms
ok 3101 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > merges two accounts into one identity # time=0.30ms
ok 3102 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > throws IdentityLinkNotFoundError for invalid code # time=0.24ms
ok 3103 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > throws IdentityLinkExpiredError for expired code # time=0.32ms
ok 3104 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > throws IdentitySelfLinkError for same channel + sender # time=10.55ms
ok 3105 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > merges identities when completing account already has identity # time=0.80ms
ok 3106 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > returns existing identity when already linked to same # time=0.23ms
ok 3107 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > merge path preserves new displayName # time=0.19ms
ok 3108 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > enforces attempt limit # time=0.37ms
ok 3109 - src/gateway/identity.test.ts > IdentityResolver > confirmLink > resets attempt counter on success # time=0.40ms
ok 3110 - src/gateway/identity.test.ts > IdentityResolver > unlink > removes an account from its identity # time=0.21ms
ok 3111 - src/gateway/identity.test.ts > IdentityResolver > unlink > removes identity entirely when last account is unlinked # time=0.18ms
ok 3112 - src/gateway/identity.test.ts > IdentityResolver > unlink > returns false for unregistered account # time=0.09ms
ok 3113 - src/gateway/identity.test.ts > IdentityResolver > setAgentPubkey > sets on-chain pubkey for identity # time=0.12ms
ok 3114 - src/gateway/identity.test.ts > IdentityResolver > setAgentPubkey > returns false for unknown identity # time=0.08ms
ok 3115 - src/gateway/identity.test.ts > IdentityResolver > linkViaSolana > links identity with valid ed25519 signature # time=35.52ms
ok 3116 - src/gateway/identity.test.ts > IdentityResolver > linkViaSolana > throws IdentitySignatureError for invalid signature # time=1.07ms
ok 3117 - src/gateway/identity.test.ts > IdentityResolver > linkViaSolana > throws IdentitySignatureError for invalid public key # time=0.17ms
ok 3118 - src/gateway/identity.test.ts > IdentityResolver > linkViaSolana > throws IdentityValidationError for unknown identity # time=0.47ms
ok 3119 - src/gateway/identity.test.ts > IdentityResolver > setPreferences > merges preferences for identity # time=0.37ms
ok 3120 - src/gateway/identity.test.ts > IdentityResolver > setPreferences > returns false for unknown identity # time=0.14ms
ok 3121 - src/gateway/identity.test.ts > IdentityResolver > purgeExpired > removes expired pending links # time=0.19ms
ok 3122 - src/gateway/identity.test.ts > IdentityResolver > purgeExpired > does not remove active links # time=0.12ms
ok 3123 - src/gateway/identity.test.ts > IdentityResolver > listIdentities > returns all registered identities # time=0.14ms
ok 3124 - src/gateway/identity.test.ts > IdentityResolver > multi-channel linking > supports linking 3+ channels to a single identity # time=0.26ms
ok 3125 - src/gateway/identity.test.ts > Identity Errors > IdentityLinkExpiredError has correct name and fields # time=0.14ms
ok 3126 - src/gateway/identity.test.ts > Identity Errors > IdentityLinkNotFoundError has correct name and fields # time=0.06ms
ok 3127 - src/gateway/identity.test.ts > Identity Errors > IdentitySelfLinkError has correct name and fields # time=0.06ms
ok 3128 - src/gateway/identity.test.ts > Identity Errors > IdentitySignatureError has correct name and fields # time=0.06ms
ok 3129 - src/gateway/identity.test.ts > Identity Errors > IdentityValidationError has correct name and fields # time=0.08ms
ok 3130 - src/gateway/identity.test.ts > InMemoryIdentityStore > saves and loads identity # time=0.07ms
ok 3131 - src/gateway/identity.test.ts > InMemoryIdentityStore > findByAccount returns identity ID # time=0.06ms
ok 3132 - src/gateway/identity.test.ts > InMemoryIdentityStore > deleteIdentity removes identity and index # time=0.06ms
ok 3133 - src/gateway/identity.test.ts > InMemoryIdentityStore > listAll returns all identities # time=0.07ms
ok 3134 - src/gateway/identity.test.ts > InMemoryIdentityStore > countIdentities returns correct count # time=0.05ms
ok 3135 - src/gateway/identity.test.ts > InMemoryIdentityStore > saves and loads pending links # time=0.04ms
ok 3136 - src/gateway/identity.test.ts > InMemoryIdentityStore > listExpiredPendingLinks returns only expired codes # time=0.06ms
ok 3137 - src/gateway/identity.test.ts > InMemoryIdentityStore > saveIdentity cleans up stale account index entries on update # time=0.07ms
ok 3138 - src/gateway/init-runner.test.ts > init-runner > requires the canonical init headings # time=0.94ms
ok 3139 - src/gateway/init-runner.test.ts > init-runner > builds a prompt grounded in repository evidence # time=0.32ms
ok 3140 - src/gateway/init-runner.test.ts > init-runner > skips when AGENC.md already exists and force is false # time=5.45ms
ok 3141 - src/gateway/init-runner.test.ts > init-runner > writes the guide deterministically from discovered repo evidence # time=50.87ms
ok 3142 - src/gateway/init-runner.test.ts > init-runner > accepts grounded discovery for minimal repos that only contain PLAN.md # time=35.65ms
ok 3143 - src/gateway/init-runner.test.ts > init-runner > renders planned structure from tree-style PLAN.md without double bullets or repo-root noise # time=28.71ms
ok 3144 - src/gateway/init-runner.test.ts > init-runner > records progress events while synthesizing the guide # time=34.08ms
ok 3145 - src/gateway/jwt.test.ts > JWT utility > createToken returns a 3-part JWT string # time=1.65ms
ok 3146 - src/gateway/jwt.test.ts > JWT utility > verifyToken accepts a valid token # time=0.43ms
ok 3147 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for wrong secret # time=0.18ms
ok 3148 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for expired token # time=0.53ms
ok 3149 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for malformed token (too few parts) # time=0.15ms
ok 3150 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for tampered payload # time=0.19ms
ok 3151 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for tampered signature # time=0.09ms
ok 3152 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for invalid JSON in payload # time=0.12ms
ok 3153 - src/gateway/jwt.test.ts > JWT utility > creates tokens with custom expiry # time=0.30ms
ok 3154 - src/gateway/jwt.test.ts > JWT utility > default expiry is 3600 seconds # time=0.16ms
ok 3155 - src/gateway/jwt.test.ts > JWT utility > verifyToken preserves scope field when present # time=0.15ms
ok 3156 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns undefined scope when not present # time=0.12ms
ok 3157 - src/gateway/jwt.test.ts > JWT utility > round-trip: multiple tokens with different subjects # time=0.15ms
ok 3158 - src/gateway/jwt.test.ts > JWT utility > createToken throws for secret shorter than 32 characters # time=0.39ms
ok 3159 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for secret shorter than 32 characters # time=0.13ms
ok 3160 - src/gateway/jwt.test.ts > JWT utility > verifyToken returns null for token with missing sub field # time=0.14ms
ok 3161 - src/gateway/media.test.ts > validate > rejects exceeding max size # time=10.95ms
ok 3162 - src/gateway/media.test.ts > validate > accepts within limits # time=6.06ms
ok 3163 - src/gateway/media.test.ts > validate > rejects large data buffer when sizeBytes is absent # time=6.32ms
ok 3164 - src/gateway/media.test.ts > process > voice → transcription text # time=10.61ms
ok 3165 - src/gateway/media.test.ts > process > image → description text # time=7.41ms
ok 3166 - src/gateway/media.test.ts > process > unsupported type → error result # time=5.10ms
ok 3167 - src/gateway/media.test.ts > process > rejects oversized attachment inline # time=3.03ms
ok 3168 - src/gateway/media.test.ts > enrichMessage > injects transcription text # time=3.49ms
ok 3169 - src/gateway/media.test.ts > enrichMessage > no attachments passthrough # time=3.67ms
ok 3170 - src/gateway/media.test.ts > enrichMessage > multiple attachments # time=3.61ms
ok 3171 - src/gateway/media.test.ts > enrichMessage > empty content becomes enrichment directly (voice-only) # time=19.09ms
ok 3172 - src/gateway/media.test.ts > enrichMessage > skips audio when autoTranscribeVoice is false # time=2.67ms
ok 3173 - src/gateway/media.test.ts > enrichMessage > skips attachments without data (URL-only) # time=0.75ms
ok 3174 - src/gateway/media.test.ts > cleanup > removes expired files # time=12.87ms
ok 3175 - src/gateway/media.test.ts > cleanup > preserves fresh files # time=11.71ms
ok 3176 - src/gateway/media.test.ts > NoopTranscriptionProvider > returns placeholder text # time=7.18ms
ok 3177 - src/gateway/media.test.ts > NoopImageDescriptionProvider > returns placeholder text # time=0.98ms
ok 3178 - src/gateway/media.test.ts > setTranscriptionProvider > swaps provider # time=6.01ms
ok 3179 - src/gateway/media.test.ts > timeout > enforced on slow provider # time=3.82ms
ok 3180 - src/gateway/media.test.ts > error handling > returns error result instead of throwing # time=3.45ms
ok 3181 - src/gateway/memory-backend-factory.test.ts > createMemoryBackend > defaults to sqlite durability when memory config is omitted # time=65.99ms
ok 3182 - src/gateway/memory-backend-factory.test.ts > createMemoryBackend > keeps explicit in-memory mode available for dev flows # time=0.44ms
ok 3183 - src/gateway/memory-backend-factory.test.ts > createMemoryBackend > resolves sqlite to the shared runtime persistence path by default # time=0.52ms
ok 3184 - src/gateway/message.test.ts > createGatewayMessage > generates unique UUID per call # time=1.38ms
ok 3185 - src/gateway/message.test.ts > createGatewayMessage > sets timestamp to current time # time=0.24ms
ok 3186 - src/gateway/message.test.ts > createGatewayMessage > preserves all provided fields # time=0.57ms
ok 3187 - src/gateway/message.test.ts > validateGatewayMessage > returns valid for a well-formed message # time=0.19ms
ok 3188 - src/gateway/message.test.ts > validateGatewayMessage > returns false for missing channel # time=0.19ms
ok 3189 - src/gateway/message.test.ts > validateGatewayMessage > returns false for missing senderId # time=0.09ms
ok 3190 - src/gateway/message.test.ts > validateGatewayMessage > returns false for missing content # time=0.18ms
ok 3191 - src/gateway/message.test.ts > validateGatewayMessage > returns false for invalid scope # time=0.08ms
ok 3192 - src/gateway/message.test.ts > validateGatewayMessage > accepts empty string content (voice-only messages) # time=0.35ms
ok 3193 - src/gateway/message.test.ts > validateGatewayMessage > accepts empty attachments array # time=0.11ms
ok 3194 - src/gateway/message.test.ts > validateAttachment > rejects exceeding maxSizeBytes # time=0.13ms
ok 3195 - src/gateway/message.test.ts > validateAttachment > accepts within size limit # time=0.04ms
ok 3196 - src/gateway/message.test.ts > validateAttachment > rejects empty MIME type # time=0.05ms
ok 3197 - src/gateway/message.test.ts > validateAttachment > accepts attachment with both url and data # time=0.04ms
ok 3198 - src/gateway/message.test.ts > createOutboundMessage > creates valid outbound message # time=0.08ms
ok 3199 - src/gateway/message.test.ts > createOutboundMessage > throws on missing sessionId # time=0.10ms
ok 3200 - src/gateway/message.test.ts > createOutboundMessage > throws on missing content # time=0.04ms
ok 3201 - src/gateway/message.test.ts > validateOutboundMessage > returns valid for well-formed outbound message # time=0.06ms
ok 3202 - src/gateway/message.test.ts > validateOutboundMessage > rejects non-object input # time=0.03ms
ok 3203 - src/gateway/message.test.ts > validateOutboundMessage > rejects empty sessionId # time=0.05ms
ok 3204 - src/gateway/message.test.ts > GatewayMessage readonly properties > readonly fields are enforced at type level # time=0.04ms
ok 3205 - src/gateway/persistent-worker-mailbox.test.ts > PersistentWorkerMailbox > persists typed messages and filters them by direction/status # time=8.42ms
ok 3206 - src/gateway/persistent-worker-mailbox.test.ts > PersistentWorkerMailbox > acknowledges and handles messages while preserving worker mailbox counts # time=0.46ms
ok 3207 - src/gateway/persistent-worker-mailbox.test.ts > PersistentWorkerMailbox > repairs acknowledged parent-to-worker messages back to pending # time=39.52ms
ok 3208 - src/gateway/persistent-worker-mailbox.test.ts > PersistentWorkerMailbox > emits trace transitions only for persisted mailbox state changes # time=0.35ms
ok 3209 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > emits worker lifecycle trace events for spawn, queue, claim, and idle # time=135.38ms
ok 3210 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > creates named workers and runs queued worker_assignment tasks # time=91.36ms
ok 3211 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > stops idle workers and releases queued targeted assignments # time=1.16ms
ok 3212 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > fails nonterminal workers and requeues claimed assignments during repair # time=0.66ms
ok 3213 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > routes worker assignment lifecycle through mailbox messages when enabled # time=111.48ms
ok 3214 - src/gateway/persistent-worker-manager.test.ts > PersistentWorkerManager > persists remote-session execution metadata when remote isolation is enabled # time=93.37ms
ok 3215 - src/gateway/personality.test.ts > listPersonalityTemplates > returns all 4 templates # time=1.92ms
ok 3216 - src/gateway/personality.test.ts > listPersonalityTemplates > returns a readonly array # time=0.20ms
ok 3217 - src/gateway/personality.test.ts > loadPersonalityTemplate > default returns all workspace files # time=0.26ms
ok 3218 - src/gateway/personality.test.ts > loadPersonalityTemplate > defi-analyst has DeFi-specific content # time=0.20ms
ok 3219 - src/gateway/personality.test.ts > loadPersonalityTemplate > developer has development-specific content # time=0.14ms
ok 3220 - src/gateway/personality.test.ts > loadPersonalityTemplate > minimal has minimal content # time=0.13ms
ok 3221 - src/gateway/personality.test.ts > loadPersonalityTemplate > all templates have non-empty AGENT.md content # time=0.17ms
ok 3222 - src/gateway/personality.test.ts > loadPersonalityTemplate > all templates have non-empty SOUL.md content # time=0.12ms
ok 3223 - src/gateway/personality.test.ts > loadPersonalityTemplate > all template content is valid markdown (contains headings) # time=0.38ms
ok 3224 - src/gateway/personality.test.ts > loadPersonalityTemplate > default returns a fresh copy each time # time=0.49ms
ok 3225 - src/gateway/personality.test.ts > loadPersonalityTemplate > defi-analyst inherits non-overridden fields from default # time=0.13ms
ok 3226 - src/gateway/personality.test.ts > loadPersonalityTemplate > developer inherits non-overridden fields from default # time=0.10ms
ok 3227 - src/gateway/personality.test.ts > mergePersonality > overrides specific fields # time=0.04ms
ok 3228 - src/gateway/personality.test.ts > mergePersonality > preserves base fields not overridden # time=1.11ms
ok 3229 - src/gateway/personality.test.ts > mergePersonality > overrides multiple fields at once # time=0.11ms
ok 3230 - src/gateway/personality.test.ts > mergePersonality > does not override with undefined # time=0.04ms
ok 3231 - src/gateway/personality.test.ts > mergePersonality > handles empty overrides # time=0.06ms
ok 3232 - src/gateway/personality.test.ts > mergePersonality > handles identity and memory fields # time=0.05ms
ok 3233 - src/gateway/progress.test.ts > ProgressTracker > append() > stores a progress entry with auto-set timestamp # time=3.40ms
ok 3234 - src/gateway/progress.test.ts > ProgressTracker > append() > appends multiple entries in order # time=1.44ms
ok 3235 - src/gateway/progress.test.ts > ProgressTracker > append() > prunes entries beyond maxEntriesPerSession # time=30.16ms
ok 3236 - src/gateway/progress.test.ts > ProgressTracker > append() > truncates long summaries # time=0.32ms
ok 3237 - src/gateway/progress.test.ts > ProgressTracker > append() > stores optional metadata # time=0.18ms
ok 3238 - src/gateway/progress.test.ts > ProgressTracker > append() > serializes concurrent appends to same session # time=8.35ms
ok 3239 - src/gateway/progress.test.ts > ProgressTracker > append() > logs error on backend failure without throwing # time=0.39ms
ok 3240 - src/gateway/progress.test.ts > ProgressTracker > getRecent() > returns empty array for unknown session # time=0.15ms
ok 3241 - src/gateway/progress.test.ts > ProgressTracker > getRecent() > respects limit parameter # time=0.61ms
ok 3242 - src/gateway/progress.test.ts > ProgressTracker > getSummary() > returns undefined for empty session # time=0.22ms
ok 3243 - src/gateway/progress.test.ts > ProgressTracker > getSummary() > returns grouped Markdown summary # time=2.50ms
ok 3244 - src/gateway/progress.test.ts > ProgressTracker > clear() > removes all entries for a session # time=0.40ms
ok 3245 - src/gateway/progress.test.ts > ProgressTracker > retrieve() (MemoryRetriever) > returns undefined for empty session # time=0.13ms
ok 3246 - src/gateway/progress.test.ts > ProgressTracker > retrieve() (MemoryRetriever) > returns formatted last-5 entries # time=0.32ms
ok 3247 - src/gateway/progress.test.ts > ProgressTracker > retrieve() (MemoryRetriever) > includes entry type prefix # time=0.10ms
ok 3248 - src/gateway/progress.test.ts > summarizeToolResult() > produces a one-liner summary # time=0.10ms
ok 3249 - src/gateway/progress.test.ts > summarizeToolResult() > truncates long args and results # time=0.06ms
ok 3250 - src/gateway/progress.test.ts > summarizeToolResult() > redacts rejected delegated scope failures from recent progress # time=0.14ms
ok 3251 - src/gateway/progress.test.ts > summarizeToolResult() > redacts untrusted delegated cwd echoes from recent progress # time=0.45ms
ok 3252 - src/gateway/remote.test.ts > RemoteGatewayClient > starts in disconnected state # time=1.40ms
ok 3253 - src/gateway/remote.test.ts > RemoteGatewayClient > transitions through connecting → authenticating → connected # time=53.82ms
ok 3254 - src/gateway/remote.test.ts > RemoteGatewayClient > emits connected event on successful auth # time=50.49ms
ok 3255 - src/gateway/remote.test.ts > RemoteGatewayClient > emits authFailed when auth response has error # time=52.16ms
ok 3256 - src/gateway/remote.test.ts > RemoteGatewayClient > sends auth message with token on connect # time=50.76ms
ok 3257 - src/gateway/remote.test.ts > RemoteGatewayClient > send() delivers when connected # time=54.27ms
ok 3258 - src/gateway/remote.test.ts > RemoteGatewayClient > send() queues when disconnected # time=0.27ms
ok 3259 - src/gateway/remote.test.ts > RemoteGatewayClient > flushes offline queue on connect # time=50.50ms
ok 3260 - src/gateway/remote.test.ts > RemoteGatewayClient > drops oldest when offline queue exceeds max size # time=0.57ms
ok 3261 - src/gateway/remote.test.ts > RemoteGatewayClient > sendMessage() is a convenience wrapper # time=51.54ms
ok 3262 - src/gateway/remote.test.ts > RemoteGatewayClient > disconnect stops connection and goes to disconnected # time=50.50ms
ok 3263 - src/gateway/remote.test.ts > RemoteGatewayClient > emits message events for non-auth messages # time=50.86ms
ok 3264 - src/gateway/remote.test.ts > RemoteGatewayClient > emits error events on ws errors # time=50.96ms
ok 3265 - src/gateway/remote.test.ts > RemoteGatewayClient > switchGateway disconnects and reconnects to new URL # time=102.37ms
ok 3266 - src/gateway/remote.test.ts > RemoteGatewayClient > on() returns a dispose function # time=102.50ms
ok 3267 - src/gateway/remote.test.ts > RemoteGatewayClient > transitions to reconnecting on unexpected close when reconnect=true # time=51.30ms
ok 3268 - src/gateway/remote.test.ts > RemoteGatewayClient > does not reconnect when reconnect=false # time=50.83ms
ok 3269 - src/gateway/remote.test.ts > RemoteGatewayClient > clearQueue empties the offline queue # time=0.20ms
ok 3270 - src/gateway/remote.test.ts > RemoteGatewayClient > clears offline queue on auth failure # time=52.22ms
ok 3271 - src/gateway/remote.test.ts > RemoteGatewayClient > connect is idempotent when already connected # time=50.78ms
ok 3272 - src/gateway/routing.test.ts > RoutingValidationError > has correct error code # time=0.89ms
ok 3273 - src/gateway/routing.test.ts > RoutingValidationError > has field and reason properties # time=0.23ms
ok 3274 - src/gateway/routing.test.ts > RoutingValidationError > is instanceof RuntimeError # time=0.13ms
ok 3275 - src/gateway/routing.test.ts > RoutingValidationError > has descriptive message # time=0.15ms
ok 3276 - src/gateway/routing.test.ts > MessageRouter > constructor > accepts empty rules array # time=0.49ms
ok 3277 - src/gateway/routing.test.ts > MessageRouter > constructor > validates defaultWorkspace format # time=0.15ms
ok 3278 - src/gateway/routing.test.ts > MessageRouter > constructor > validates defaultWorkspace length # time=0.12ms
ok 3279 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects duplicate rule names # time=0.16ms
ok 3280 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects invalid contentPattern regex # time=0.33ms
ok 3281 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects invalid workspace ID in rule # time=0.18ms
ok 3282 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects non-finite priority # time=0.64ms
ok 3283 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects invalid scope # time=0.20ms
ok 3284 - src/gateway/routing.test.ts > MessageRouter > constructor > rejects empty rule name # time=0.89ms
ok 3285 - src/gateway/routing.test.ts > MessageRouter > route > returns defaultWorkspace when no rules match # time=0.53ms
ok 3286 - src/gateway/routing.test.ts > MessageRouter > route > returns defaultWorkspace with empty rules # time=0.32ms
ok 3287 - src/gateway/routing.test.ts > MessageRouter > route > matches by peer (senderId) # time=0.46ms
ok 3288 - src/gateway/routing.test.ts > MessageRouter > route > matches by guildId from metadata # time=0.44ms
ok 3289 - src/gateway/routing.test.ts > MessageRouter > route > guildId does not match when metadata is undefined # time=0.11ms
ok 3290 - src/gateway/routing.test.ts > MessageRouter > route > guildId does not match when metadata.guildId is not a string # time=0.12ms
ok 3291 - src/gateway/routing.test.ts > MessageRouter > route > matches by accountId (identityId) # time=0.07ms
ok 3292 - src/gateway/routing.test.ts > MessageRouter > route > matches by channel name # time=0.06ms
ok 3293 - src/gateway/routing.test.ts > MessageRouter > route > matches by scope (exact) # time=0.10ms
ok 3294 - src/gateway/routing.test.ts > MessageRouter > route > matches by contentPattern (regex) # time=0.10ms
ok 3295 - src/gateway/routing.test.ts > MessageRouter > route > glob wildcards work # time=0.06ms
ok 3296 - src/gateway/routing.test.ts > MessageRouter > route > higher priority is evaluated first # time=0.06ms
ok 3297 - src/gateway/routing.test.ts > MessageRouter > route > specificity tiebreak: peer beats guildId at same priority # time=0.07ms
ok 3298 - src/gateway/routing.test.ts > MessageRouter > route > specificity tiebreak: peer beats combined guildId+channel at same priority # time=0.05ms
ok 3299 - src/gateway/routing.test.ts > MessageRouter > route > all match fields are ANDed # time=0.05ms
ok 3300 - src/gateway/routing.test.ts > MessageRouter > route > empty match object matches everything (catch-all) # time=0.04ms
ok 3301 - src/gateway/routing.test.ts > MessageRouter > route > deterministic alphabetical ordering for equal priority and specificity # time=6.18ms
ok 3302 - src/gateway/routing.test.ts > MessageRouter > addRule > adds rule and routes to it # time=0.07ms
ok 3303 - src/gateway/routing.test.ts > MessageRouter > addRule > rejects duplicate name # time=0.07ms
ok 3304 - src/gateway/routing.test.ts > MessageRouter > addRule > rejects invalid rule # time=0.05ms
ok 3305 - src/gateway/routing.test.ts > MessageRouter > removeRule > removes existing rule and returns true # time=0.11ms
ok 3306 - src/gateway/routing.test.ts > MessageRouter > removeRule > returns false for non-existent rule # time=0.14ms
ok 3307 - src/gateway/routing.test.ts > MessageRouter > removeRule > removed rule no longer matches # time=0.08ms
ok 3308 - src/gateway/routing.test.ts > MessageRouter > removeRule > allows re-adding a removed rule name # time=0.05ms
ok 3309 - src/gateway/routing.test.ts > MessageRouter > getRules > returns all rules # time=0.09ms
ok 3310 - src/gateway/routing.test.ts > MessageRouter > getRules > returned array is frozen # time=0.04ms
ok 3311 - src/gateway/routing.test.ts > MessageRouter > getRules > does not expose internal array (mutation safety) # time=0.17ms
ok 3312 - src/gateway/run-domains.test.ts > run-domains > generic domain summarizes existing run status # time=1.14ms
ok 3313 - src/gateway/run-domains.test.ts > run-domains > approval domain blocks deterministically while approval is pending # time=0.62ms
ok 3314 - src/gateway/run-domains.test.ts > run-domains > browser domain completes finite download objectives from artifact evidence # time=0.47ms
ok 3315 - src/gateway/run-domains.test.ts > run-domains > desktop gui domain blocks on explicit GUI tool failures # time=0.19ms
ok 3316 - src/gateway/run-domains.test.ts > run-domains > workspace domain does not self-complete implementation objectives from generic command signals # time=0.25ms
ok 3317 - src/gateway/run-domains.test.ts > run-domains > workspace domain executes explicit finite workspace commands natively # time=0.83ms
ok 3318 - src/gateway/run-domains.test.ts > run-domains > research domain treats persisted report artifacts as deterministic completion # time=0.26ms
ok 3319 - src/gateway/run-domains.test.ts > run-domains > pipeline domain blocks unhealthy service transitions deterministically # time=0.14ms
ok 3320 - src/gateway/run-domains.test.ts > run-domains > remote MCP domain completes from explicit remote job completion events # time=0.52ms
ok 3321 - src/gateway/run-domains.test.ts > run-domains > remote session domain completes from explicit remote session completion events # time=0.26ms
ok 3322 - src/gateway/runtime-verifier-requirement.test.ts > isRuntimeVerifierRequiredForTurn > returns true only for workflow implementation turns with target artifacts # time=1.20ms
ok 3323 - src/gateway/runtime-verifier-requirement.test.ts > isRuntimeVerifierRequiredForTurn > returns false for dialogue turns even when the runtime flag is enabled # time=0.16ms
ok 3324 - src/gateway/runtime-verifier-requirement.test.ts > isRuntimeVerifierRequiredForTurn > returns false when no target artifacts were declared # time=0.08ms
ok 3325 - src/gateway/sandbox.test.ts > sandbox > defaultSandboxConfig > returns safe defaults # time=1.11ms
ok 3326 - src/gateway/sandbox.test.ts > sandbox > checkDockerAvailable > returns true when Docker responds # time=0.20ms
ok 3327 - src/gateway/sandbox.test.ts > sandbox > checkDockerAvailable > returns false when Docker command fails # time=0.18ms
ok 3328 - src/gateway/sandbox.test.ts > sandbox > checkDockerAvailable > returns false when Docker is not installed (ENOENT) # time=0.14ms
ok 3329 - src/gateway/sandbox.test.ts > sandbox > shouldSandbox > returns false for all scopes when mode is off # time=0.38ms
ok 3330 - src/gateway/sandbox.test.ts > sandbox > shouldSandbox > returns true for all scopes when mode is all # time=0.10ms
ok 3331 - src/gateway/sandbox.test.ts > sandbox > shouldSandbox > returns false for dm and true for group/thread when mode is non-main # time=0.12ms
ok 3332 - src/gateway/sandbox.test.ts > sandbox > isAvailable > returns true when Docker daemon responds # time=0.09ms
ok 3333 - src/gateway/sandbox.test.ts > sandbox > isAvailable > returns false when Docker daemon is unreachable # time=0.35ms
ok 3334 - src/gateway/sandbox.test.ts > sandbox > isAvailable > returns false when Docker is not installed # time=0.10ms
ok 3335 - src/gateway/sandbox.test.ts > sandbox > isAvailable > caches the result after first check # time=0.14ms
ok 3336 - src/gateway/sandbox.test.ts > sandbox > container creation > creates a new container with correct docker run args # time=1.10ms
ok 3337 - src/gateway/sandbox.test.ts > sandbox > container creation > passes --network none when networkAccess is false # time=0.14ms
ok 3338 - src/gateway/sandbox.test.ts > sandbox > container creation > omits --network none when networkAccess is true # time=0.10ms
ok 3339 - src/gateway/sandbox.test.ts > sandbox > container creation > mounts workspace as readonly when configured # time=0.14ms
ok 3340 - src/gateway/sandbox.test.ts > sandbox > container creation > mounts workspace as readwrite when configured # time=0.08ms
ok 3341 - src/gateway/sandbox.test.ts > sandbox > container creation > does not mount workspace when workspaceAccess is none # time=0.06ms
ok 3342 - src/gateway/sandbox.test.ts > sandbox > container creation > uses custom image and resource limits # time=0.09ms
ok 3343 - src/gateway/sandbox.test.ts > sandbox > container creation > runs setup script after container creation # time=0.20ms
ok 3344 - src/gateway/sandbox.test.ts > sandbox > container creation > attempts stale container recovery before docker run # time=0.12ms
ok 3345 - src/gateway/sandbox.test.ts > sandbox > container creation > reuses existing container for same session # time=0.16ms
ok 3346 - src/gateway/sandbox.test.ts > sandbox > container creation > coalesces concurrent getContainer calls (race condition prevention) # time=0.10ms
ok 3347 - src/gateway/sandbox.test.ts > sandbox > container creation > uses correct container naming for session scope # time=0.07ms
ok 3348 - src/gateway/sandbox.test.ts > sandbox > container creation > uses correct container naming for agent scope # time=0.11ms
ok 3349 - src/gateway/sandbox.test.ts > sandbox > container creation > uses correct container naming for shared scope # time=0.06ms
ok 3350 - src/gateway/sandbox.test.ts > sandbox > execute > returns stdout, stderr, exitCode 0 on success # time=0.09ms
ok 3351 - src/gateway/sandbox.test.ts > sandbox > execute > returns non-zero exit code without throwing # time=0.13ms
ok 3352 - src/gateway/sandbox.test.ts > sandbox > execute > forwards env vars via --env flags # time=0.17ms
ok 3353 - src/gateway/sandbox.test.ts > sandbox > execute > forwards cwd via --workdir flag # time=0.09ms
ok 3354 - src/gateway/sandbox.test.ts > sandbox > execute > reports truncation when maxBuffer is exceeded # time=0.09ms
ok 3355 - src/gateway/sandbox.test.ts > sandbox > execute > uses default sessionId when not provided # time=0.06ms
ok 3356 - src/gateway/sandbox.test.ts > sandbox > destroyContainer > removes tracked container # time=0.13ms
ok 3357 - src/gateway/sandbox.test.ts > sandbox > destroyContainer > is idempotent when container does not exist # time=0.03ms
ok 3358 - src/gateway/sandbox.test.ts > sandbox > destroyAll > destroys all tracked containers # time=0.34ms
ok 3359 - src/gateway/sandbox.test.ts > sandbox > listContainers > returns empty array when no containers exist # time=0.05ms
ok 3360 - src/gateway/sandbox.test.ts > sandbox > listContainers > returns container IDs for tracked containers # time=0.07ms
ok 3361 - src/gateway/sandbox.test.ts > sandbox > error classes > SandboxExecutionError has correct code and properties # time=0.19ms
ok 3362 - src/gateway/sandbox.test.ts > sandbox > error classes > SandboxUnavailableError has correct code # time=0.09ms
ok 3363 - src/gateway/sandbox.test.ts > sandbox > error classes > SandboxUnavailableError works without cause # time=0.06ms
ok 3364 - src/gateway/sandbox.test.ts > sandbox > error classes > error classes extend RuntimeError # time=0.07ms
ok 3365 - src/gateway/scheduler.test.ts > parseCron > parses every-30-minutes expression # time=2.04ms
ok 3366 - src/gateway/scheduler.test.ts > parseCron > parses weekday 8am expression # time=0.34ms
ok 3367 - src/gateway/scheduler.test.ts > parseCron > parses first-of-month midnight expression # time=0.18ms
ok 3368 - src/gateway/scheduler.test.ts > parseCron > parses comma-separated minutes # time=0.07ms
ok 3369 - src/gateway/scheduler.test.ts > parseCron > deduplicates values # time=0.07ms
ok 3370 - src/gateway/scheduler.test.ts > parseCron > handles Sunday alias (7 = 0) # time=0.07ms
ok 3371 - src/gateway/scheduler.test.ts > parseCron > handles mixed Sunday representations # time=0.15ms
ok 3372 - src/gateway/scheduler.test.ts > parseCron > parses range with step # time=0.08ms
ok 3373 - src/gateway/scheduler.test.ts > parseCron > collapses extra whitespace # time=0.34ms
ok 3374 - src/gateway/scheduler.test.ts > parseCron > throws on too few fields # time=0.33ms
ok 3375 - src/gateway/scheduler.test.ts > parseCron > throws on too many fields # time=0.14ms
ok 3376 - src/gateway/scheduler.test.ts > parseCron > throws on out-of-range minute # time=0.08ms
ok 3377 - src/gateway/scheduler.test.ts > parseCron > throws on out-of-range hour # time=0.07ms
ok 3378 - src/gateway/scheduler.test.ts > parseCron > throws on out-of-range day-of-month # time=0.10ms
ok 3379 - src/gateway/scheduler.test.ts > parseCron > throws on out-of-range month # time=0.07ms
ok 3380 - src/gateway/scheduler.test.ts > parseCron > throws on out-of-range day-of-week # time=0.07ms
ok 3381 - src/gateway/scheduler.test.ts > parseCron > throws on invalid token # time=0.06ms
ok 3382 - src/gateway/scheduler.test.ts > parseCron > throws on empty expression # time=0.16ms
ok 3383 - src/gateway/scheduler.test.ts > parseCron > throws on invalid range (low > high) # time=0.07ms
ok 3384 - src/gateway/scheduler.test.ts > parseCron > throws on invalid step # time=0.06ms
ok 3385 - src/gateway/scheduler.test.ts > cronMatches > matches when all fields match # time=1.06ms
ok 3386 - src/gateway/scheduler.test.ts > cronMatches > returns false when minute does not match # time=0.09ms
ok 3387 - src/gateway/scheduler.test.ts > cronMatches > returns false when hour does not match # time=0.05ms
ok 3388 - src/gateway/scheduler.test.ts > cronMatches > matches day-of-week restriction # time=0.06ms
ok 3389 - src/gateway/scheduler.test.ts > cronMatches > uses OR logic when both dayOfMonth and dayOfWeek are restricted # time=0.06ms
ok 3390 - src/gateway/scheduler.test.ts > cronMatches > matches month restriction # time=0.10ms
ok 3391 - src/gateway/scheduler.test.ts > nextCronMatch > returns the next matching minute # time=0.20ms
ok 3392 - src/gateway/scheduler.test.ts > nextCronMatch > advances to next hour if past the minute # time=0.06ms
ok 3393 - src/gateway/scheduler.test.ts > nextCronMatch > advances to next day for daily schedule # time=0.06ms
ok 3394 - src/gateway/scheduler.test.ts > nextCronMatch > finds next weekday match # time=0.05ms
ok 3395 - src/gateway/scheduler.test.ts > nextCronMatch > never returns the same minute as after # time=0.06ms
ok 3396 - src/gateway/scheduler.test.ts > CronScheduler > addJob stores a job and listJobs returns it # time=0.55ms
ok 3397 - src/gateway/scheduler.test.ts > CronScheduler > throws on duplicate job name # time=0.24ms
ok 3398 - src/gateway/scheduler.test.ts > CronScheduler > surfaces invalid cron expressions with job context # time=0.08ms
ok 3399 - src/gateway/scheduler.test.ts > CronScheduler > removeJob removes a job # time=0.31ms
ok 3400 - src/gateway/scheduler.test.ts > CronScheduler > removeJob returns false for non-existent job # time=0.04ms
ok 3401 - src/gateway/scheduler.test.ts > CronScheduler > disableJob prevents job from being due # time=0.63ms
ok 3402 - src/gateway/scheduler.test.ts > CronScheduler > enableJob re-enables a disabled job # time=0.58ms
ok 3403 - src/gateway/scheduler.test.ts > CronScheduler > enableJob throws when next run cannot be computed # time=0.40ms
ok 3404 - src/gateway/scheduler.test.ts > CronScheduler > enableJob returns false for non-existent job # time=2.53ms
ok 3405 - src/gateway/scheduler.test.ts > CronScheduler > disableJob returns false for non-existent job # time=0.08ms
ok 3406 - src/gateway/scheduler.test.ts > CronScheduler > getDueJobs returns enabled matching jobs # time=0.34ms
ok 3407 - src/gateway/scheduler.test.ts > CronScheduler > getDueJobs excludes disabled jobs # time=0.23ms
ok 3408 - src/gateway/scheduler.test.ts > CronScheduler > triggerJob runs the action and updates lastRun # time=0.27ms
ok 3409 - src/gateway/scheduler.test.ts > CronScheduler > triggerJob throws for non-existent job # time=0.44ms
ok 3410 - src/gateway/scheduler.test.ts > CronScheduler > start and stop are idempotent # time=0.06ms
ok 3411 - src/gateway/scheduler.test.ts > CronScheduler > tick processes due jobs # time=0.22ms
ok 3412 - src/gateway/scheduler.test.ts > CronScheduler > tick skips job that is still running (concurrency guard) # time=0.20ms
ok 3413 - src/gateway/session-isolation.test.ts > SessionIsolationManager > different workspaces get different memory backends # time=2.53ms
ok 3414 - src/gateway/session-isolation.test.ts > SessionIsolationManager > different workspaces get different policy engines # time=0.82ms
ok 3415 - src/gateway/session-isolation.test.ts > SessionIsolationManager > memory writes in workspace A not visible in workspace B # time=2.15ms
ok 3416 - src/gateway/session-isolation.test.ts > SessionIsolationManager > getContext returns cached context on second call # time=0.19ms
ok 3417 - src/gateway/session-isolation.test.ts > SessionIsolationManager > typed subagent identity returns cached context on second call # time=0.13ms
ok 3418 - src/gateway/session-isolation.test.ts > SessionIsolationManager > typed subagent identities isolate contexts by subagent session # time=0.58ms
ok 3419 - src/gateway/session-isolation.test.ts > SessionIsolationManager > destroyContext removes from cache and closes memory backend # time=0.53ms
ok 3420 - src/gateway/session-isolation.test.ts > SessionIsolationManager > destroyContext for non-existent workspace is no-op # time=0.38ms
ok 3421 - src/gateway/session-isolation.test.ts > SessionIsolationManager > destroyContext accepts typed subagent identity # time=0.41ms
ok 3422 - src/gateway/session-isolation.test.ts > SessionIsolationManager > listActiveContexts tracks created and destroyed # time=0.30ms
ok 3423 - src/gateway/session-isolation.test.ts > SessionIsolationManager > default LLM provider inherited when no createLLMProvider # time=0.18ms
ok 3424 - src/gateway/session-isolation.test.ts > SessionIsolationManager > custom createLLMProvider factory called when provided # time=0.14ms
ok 3425 - src/gateway/session-isolation.test.ts > SessionIsolationManager > NoopLLMProvider throws with workspace ID in error message # time=0.42ms
ok 3426 - src/gateway/session-isolation.test.ts > SessionIsolationManager > workspace toolPermissions deny filters out tools from registry # time=0.27ms
ok 3427 - src/gateway/session-isolation.test.ts > SessionIsolationManager > resolves skills via resolveSkills factory # time=0.30ms
ok 3428 - src/gateway/session-isolation.test.ts > SessionIsolationManager > falls back to defaultSkills when no resolveSkills factory # time=0.08ms
ok 3429 - src/gateway/session-isolation.test.ts > SessionIsolationManager > resolves keypair via resolveKeypair factory # time=0.15ms
ok 3430 - src/gateway/session-isolation.test.ts > SessionIsolationManager > getContext propagates error for nonexistent workspace # time=0.13ms
ok 3431 - src/gateway/session-isolation.test.ts > SessionIsolationManager > concurrent getContext calls for same workspace return same context # time=0.08ms
ok 3432 - src/gateway/session-isolation.test.ts > SessionIsolationManager > default auth when no resolver # time=0.08ms
ok 3433 - src/gateway/session-isolation.test.ts > SessionIsolationManager > default auth uses keypair publicKey as walletAddress # time=0.09ms
ok 3434 - src/gateway/session-isolation.test.ts > SessionIsolationManager > custom resolveAuth provides per-workspace auth # time=0.09ms
ok 3435 - src/gateway/session-isolation.test.ts > SessionIsolationManager > custom createMemoryBackend factory is used # time=0.09ms
ok 3436 - src/gateway/session-isolation.test.ts > SessionIsolationManager > custom createPolicyEngine factory is used # time=0.08ms
ok 3437 - src/gateway/session-isolation.test.ts > SessionIsolationManager > different worldIds get different contexts # time=0.23ms
ok 3438 - src/gateway/session-isolation.test.ts > SessionIsolationManager > same worldId returns cached context # time=0.07ms
ok 3439 - src/gateway/session-isolation.test.ts > SessionIsolationManager > world-specific memory is isolated from default # time=0.16ms
ok 3440 - src/gateway/session-isolation.test.ts > SessionIsolationManager > worldId is exposed on IsolatedSessionContext # time=0.06ms
ok 3441 - src/gateway/session-isolation.test.ts > SessionIsolationManager > createMemoryBackend factory receives worldId # time=0.61ms
ok 3442 - src/gateway/session-isolation.test.ts > SessionIsolationManager > resolveWorldDbPath returns per-world path # time=0.15ms
ok 3443 - src/gateway/session-summary-store.test.ts > SessionSummaryStore > writes, loads, and clears owner-scoped summaries # time=56.32ms
ok 3444 - src/gateway/session-summary-store.test.ts > SessionSummaryStore > garbage-collects orphaned summary directories # time=29.22ms
ok 3445 - src/gateway/session-transcript.test.ts > session transcript adapter > round-trips transcript events through transcript-capable backends # time=2.31ms
ok 3446 - src/gateway/session-transcript.test.ts > session transcript adapter > forks transcript streams without reusing event ids # time=0.41ms
ok 3447 - src/gateway/session-transcript.test.ts > session transcript adapter > replays only the latest whitelisted session metadata projection # time=0.24ms
ok 3448 - src/gateway/session-transcript.test.ts > session transcript adapter > detects interrupted transcript turns and can inject a continuation prompt # time=0.68ms
ok 3449 - src/gateway/session.test.ts > SessionManager > getOrCreate > creates new session when none exists # time=1.73ms
ok 3450 - src/gateway/session.test.ts > SessionManager > getOrCreate > returns existing session for same params # time=0.19ms
ok 3451 - src/gateway/session.test.ts > SessionManager > getOrCreate > assigns the default shell profile and preserves explicit overrides # time=0.18ms
ok 3452 - src/gateway/session.test.ts > SessionManager > getOrCreate > assigns the default workflow state and preserves explicit overrides # time=0.50ms
ok 3453 - src/gateway/session.test.ts > SessionManager > deriveSessionId > 'main' scope returns same ID within a workspace # time=0.23ms
ok 3454 - src/gateway/session.test.ts > SessionManager > deriveSessionId > includes workspace scope in all derived IDs # time=0.15ms
ok 3455 - src/gateway/session.test.ts > SessionManager > deriveSessionId > 'per-peer' groups by senderId # time=0.15ms
ok 3456 - src/gateway/session.test.ts > SessionManager > deriveSessionId > 'per-channel-peer' differentiates by channel+sender # time=0.19ms
ok 3457 - src/gateway/session.test.ts > SessionManager > deriveSessionId > 'per-account-channel-peer' differentiates by all fields # time=0.36ms
ok 3458 - src/gateway/session.test.ts > SessionManager > reset > clears history but preserves metadata # time=0.21ms
ok 3459 - src/gateway/session.test.ts > SessionManager > reset > clears only stateful continuation metadata on reset # time=0.15ms
ok 3460 - src/gateway/session.test.ts > SessionManager > reset > returns false for unknown session # time=0.04ms
ok 3461 - src/gateway/session.test.ts > SessionManager > destroy > removes session completely # time=0.17ms
ok 3462 - src/gateway/session.test.ts > SessionManager > destroy > returns false for unknown session # time=0.04ms
ok 3463 - src/gateway/session.test.ts > SessionManager > appendMessage > adds message to history # time=0.37ms
ok 3464 - src/gateway/session.test.ts > SessionManager > appendMessage > triggers compaction when exceeding maxHistoryLength # time=0.20ms
ok 3465 - src/gateway/session.test.ts > SessionManager > appendMessage > returns false for unknown session # time=0.04ms
ok 3466 - src/gateway/session.test.ts > SessionManager > replaceHistory > clears only stateful continuation metadata when replacing history # time=0.14ms
ok 3467 - src/gateway/session.test.ts > SessionManager > compact > 'truncate' drops oldest messages # time=0.10ms
ok 3468 - src/gateway/session.test.ts > SessionManager > compact > 'sliding-window' keeps last N + summary placeholder # time=2.15ms
ok 3469 - src/gateway/session.test.ts > SessionManager > compact > reconstructs compacted history with preserved multimodal messages # time=0.34ms
ok 3470 - src/gateway/session.test.ts > SessionManager > compact > 'summarize' with summarizer calls callback # time=1.04ms
ok 3471 - src/gateway/session.test.ts > SessionManager > compact > 'summarize' without summarizer still preserves rebuilt compacted history # time=0.39ms
ok 3472 - src/gateway/session.test.ts > SessionManager > compact > dedupes artifact refs across repeated compactions during long sessions # time=1.00ms
ok 3473 - src/gateway/session.test.ts > SessionManager > compact > returns null for unknown session # time=0.06ms
ok 3474 - src/gateway/session.test.ts > SessionManager > compact > propagates summarizer errors # time=0.74ms
ok 3475 - src/gateway/session.test.ts > SessionManager > compact > emits compaction hook events before and after compaction # time=0.19ms
ok 3476 - src/gateway/session.test.ts > SessionManager > compact > emits an error hook event when compaction fails # time=0.24ms
ok 3477 - src/gateway/session.test.ts > SessionManager > checkResets > 'idle' mode resets sessions exceeding idle timeout # time=0.21ms
ok 3478 - src/gateway/session.test.ts > SessionManager > checkResets > 'daily' mode resets sessions after daily hour # time=5.69ms
ok 3479 - src/gateway/session.test.ts > SessionManager > checkResets > 'never' mode never resets # time=0.21ms
ok 3480 - src/gateway/session.test.ts > SessionManager > checkResets > 'weekday' mode resets on new weekday # time=5.95ms
ok 3481 - src/gateway/session.test.ts > SessionManager > listActive > returns all sessions with correct info # time=0.33ms
ok 3482 - src/gateway/session.test.ts > SessionManager > config overrides > per-channel overrides take precedence # time=0.10ms
ok 3483 - src/gateway/session.test.ts > SessionManager > config overrides > per-scope overrides apply for dm/group/thread # time=0.06ms
ok 3484 - src/gateway/session.test.ts > SessionManager > config overrides > channel-level override can replace nested scope overrides # time=0.09ms
ok 3485 - src/gateway/session.test.ts > SessionManager > count > returns correct session count # time=0.09ms
ok 3486 - src/gateway/session.test.ts > SessionManager > summary quality checks > rejects low-information narrative summaries but preserves artifact-backed compaction # time=0.33ms
ok 3487 - src/gateway/session.test.ts > SessionManager > summary quality checks > truncates oversize summaries to bounded length # time=0.24ms
ok 3488 - src/gateway/shell-agent-roles.test.ts > resolveShellAgentRole(verify) > returns the adversarial verifier prompt, not a stub # time=1.17ms
ok 3489 - src/gateway/shell-agent-roles.test.ts > resolveShellAgentRole(verify) > keeps the verify descriptor as read-only and worktree-ineligible # time=0.20ms
ok 3490 - src/gateway/shell-agent-roles.test.ts > verification-probes bundle > includes system.bash so the verifier can run builds and tests # time=0.34ms
ok 3491 - src/gateway/shell-agent-roles.test.ts > verification-probes bundle > includes HTTP probe tools for backend/API verification # time=0.22ms
ok 3492 - src/gateway/shell-agent-roles.test.ts > verification-probes bundle > includes browser + playwright tools when available # time=0.11ms
ok 3493 - src/gateway/shell-agent-roles.test.ts > verification-probes bundle > excludes project-mutating write tools # time=0.32ms
ok 3494 - src/gateway/shell-profile.test.ts > shell-profile > defaults to general when metadata is missing # time=1.66ms
ok 3495 - src/gateway/shell-profile.test.ts > shell-profile > coerces supported profile names and rejects unknown values # time=0.21ms
ok 3496 - src/gateway/shell-profile.test.ts > shell-profile > appends profile-specific prompt guidance # time=0.16ms
ok 3497 - src/gateway/shell-profile.test.ts > shell-profile > selects coding-biased tools without dropping the entire catalog # time=0.59ms
ok 3498 - src/gateway/shell-rollout.test.ts > shell-rollout > allows shell features when autonomy rollout is inactive # time=1.84ms
ok 3499 - src/gateway/shell-rollout.test.ts > shell-rollout > coerces non-general shell profiles when shellProfiles are held back # time=0.36ms
ok 3500 - src/gateway/shell-rollout.test.ts > shell-rollout > preserves non-general shell profiles when rollout allows them # time=0.14ms
ok 3501 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > accumulates tool rounds and reports lastToolName + recentActivities # time=1.34ms
ok 3502 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > caps recentActivities at RECENT_ACTIVITIES_CAP # time=0.61ms
ok 3503 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > computes tokenCount = latestInputTokens + cumulativeOutputTokens # time=0.10ms
ok 3504 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > debounces snapshots by emitIntervalMs # time=0.13ms
ok 3505 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > flushSnapshot bypasses debounce # time=0.10ms
ok 3506 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > detach releases the bucket # time=0.10ms
ok 3507 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > ensures buckets lazily when a tool event arrives without attach # time=0.11ms
ok 3508 - src/gateway/sub-agent-progress.test.ts > SubAgentProgressTracker > elapsedMs reflects startedAt on attach # time=0.12ms
ok 3509 - src/gateway/sub-agent.test.ts > SubAgentManager > constructor > accepts valid config # time=1.27ms
ok 3510 - src/gateway/sub-agent.test.ts > SubAgentManager > constructor > uses default maxConcurrent # time=0.18ms
ok 3511 - src/gateway/sub-agent.test.ts > SubAgentManager > constructor > uses custom maxConcurrent # time=0.47ms
ok 3512 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > returns session ID with subagent prefix # time=9.72ms
ok 3513 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > generates unique session IDs # time=3.24ms
ok 3514 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > starts async execution # time=0.99ms
ok 3515 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > inherits parent transcript history when forkContext is enabled # time=3.66ms
ok 3516 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > passes provider and execution trace callbacks when sub-agent tracing is enabled # time=2.82ms
ok 3517 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > emits execution trace callbacks even when raw provider payload tracing is disabled # time=2.51ms
ok 3518 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > forwards prompt budgeting and compaction controls to child executors # time=0.59ms
ok 3519 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > applies provider-specific execution budgets after child provider selection # time=1.47ms
ok 3520 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > preserves the resolved grok model contract for child route preflight # time=1.37ms
ok 3521 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > advertises the resolved child tool bundle instead of the full executor catalog # time=0.43ms
ok 3522 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > passes workspace override to createContext # time=0.75ms
ok 3523 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > inherits default workspace when none specified # time=0.50ms
ok 3524 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > falls back to "default" workspace when not specified # time=1.54ms
ok 3525 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > throws SubAgentSpawnError on empty parentSessionId # time=0.45ms
ok 3526 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > throws SubAgentSpawnError on empty task # time=0.10ms
ok 3527 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > throws SubAgentSpawnError when max concurrent reached # time=0.14ms
ok 3528 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > enforces max sub-agent depth across parent-child chains # time=1.28ms
ok 3529 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > error has correct code # time=0.54ms
ok 3530 - src/gateway/sub-agent.test.ts > SubAgentManager > spawn > passes tool allowlist via ChatExecutor config # time=1.04ms
ok 3531 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > returns null for unknown session ID # time=0.08ms
ok 3532 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > returns null for running sub-agent # time=0.10ms
ok 3533 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > returns result for completed sub-agent # time=0.84ms
ok 3534 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > returns result for failed sub-agent # time=0.81ms
ok 3535 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > treats non-completed chat executor stop reasons as failed sub-agent results # time=0.35ms
ok 3536 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > passes child-specific toolBudgetPerRequest to ChatExecutor.execute # time=0.33ms
ok 3537 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > preserves explicit unlimited child tool budgets # time=0.31ms
ok 3538 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > preserves delegated validation codes from non-completed chat executor results # time=0.37ms
ok 3539 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > enforces successful tool-call evidence when the sub-agent phase requires tools # time=0.41ms
ok 3540 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > passes system-prompt overrides and explicit required tool evidence into child execution # time=0.37ms
ok 3541 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > honors an explicit child maxToolRounds override # time=0.25ms
ok 3542 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > preserves child completion progress and refuses completion when the workflow state needs verification # time=0.89ms
ok 3543 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > preserves delegated validation codes for low-signal browser evidence # time=0.42ms
ok 3544 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > preserves delegated validation codes for forbidden phase actions # time=2.34ms
ok 3545 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > bypasses delegated contract enforcement but preserves tool evidence in unsafe benchmark mode # time=1.31ms
ok 3546 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > still passes the delegated contract into child execution when tool calls are optional # time=0.68ms
ok 3547 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > passes delegated workspace roots into child execution runtime context # time=0.55ms
ok 3548 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > prefers an explicit child workspace root when working directory is omitted # time=0.34ms
ok 3549 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > accepts scaffold summaries that mention script definitions without claiming forbidden execution # time=0.26ms
ok 3550 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > includes durationMs in result # time=1.67ms
ok 3551 - src/gateway/sub-agent.test.ts > SubAgentManager > getResult > includes toolCalls in result # time=1.35ms
ok 3552 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > returns false for unknown session ID # time=28.78ms
ok 3553 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > returns true and cancels running sub-agent # time=11.36ms
ok 3554 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > returns false for already completed sub-agent # time=0.54ms
ok 3555 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > returns false for already cancelled sub-agent # time=0.14ms
ok 3556 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > triggers abort signal and sets result # time=0.25ms
ok 3557 - src/gateway/sub-agent.test.ts > SubAgentManager > cancel > sets cancelled status # time=0.19ms
ok 3558 - src/gateway/sub-agent.test.ts > SubAgentManager > listActive > returns empty array when no sub-agents # time=0.08ms
ok 3559 - src/gateway/sub-agent.test.ts > SubAgentManager > listActive > returns only running sub-agents # time=0.16ms
ok 3560 - src/gateway/sub-agent.test.ts > SubAgentManager > listAll > returns info for all sub-agents # time=0.14ms
ok 3561 - src/gateway/sub-agent.test.ts > SubAgentManager > listAll > includes correct status fields # time=0.11ms
ok 3562 - src/gateway/sub-agent.test.ts > SubAgentManager > activeCount > reflects running count # time=0.12ms
ok 3563 - src/gateway/sub-agent.test.ts > SubAgentManager > timeout > auto-archives on timeout # time=3.63ms
ok 3564 - src/gateway/sub-agent.test.ts > SubAgentManager > timeout > sets timed_out status # time=0.64ms
ok 3565 - src/gateway/sub-agent.test.ts > SubAgentManager > timeout > does not timeout before deadline # time=0.34ms
ok 3566 - src/gateway/sub-agent.test.ts > SubAgentManager > timeout > does not apply an execution timeout when not specified # time=0.73ms
ok 3567 - src/gateway/sub-agent.test.ts > SubAgentManager > timeout > starts the execution timeout after context startup completes # time=0.95ms
ok 3568 - src/gateway/sub-agent.test.ts > SubAgentManager > destroyAll > cancels all running sub-agents # time=0.28ms
ok 3569 - src/gateway/sub-agent.test.ts > SubAgentManager > destroyAll > clears handles map # time=0.48ms
ok 3570 - src/gateway/sub-agent.test.ts > SubAgentManager > terminal handle retention > prunes oldest completed handles when max retained is exceeded # time=8.19ms
ok 3571 - src/gateway/sub-agent.test.ts > SubAgentManager > terminal handle retention > retains running handles while pruning terminal handles # time=1.28ms
ok 3572 - src/gateway/sub-agent.test.ts > SubAgentManager > terminal handle retention > prunes terminal handles by retention TTL # time=22.84ms
ok 3573 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > passes composed tool handler config for delegated child sessions # time=7.39ms
ok 3574 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > routes nested delegated desktop sessions through the root parent session # time=0.61ms
ok 3575 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > stores child token usage from ChatExecutor results # time=0.36ms
ok 3576 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > selects child provider via selectLLMProvider and records providerName # time=0.36ms
ok 3577 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > calls createContext with unique typed identity per sub-agent # time=0.48ms
ok 3578 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > calls destroyContext after completion # time=0.36ms
ok 3579 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > reuses a terminal child session when continuationSessionId is provided # time=10.34ms
ok 3580 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > reuses a persisted terminal child session after manager restart # time=0.81ms
ok 3581 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > rejects continuation attempts that widen the delegated tool scope # time=0.43ms
ok 3582 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > finds the latest successful child session for a parent # time=1.04ms
ok 3583 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > calls destroyContext after failure # time=0.38ms
ok 3584 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > does not overwrite result when cancelled during execution # time=0.18ms
ok 3585 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > handles createContext failure gracefully # time=0.13ms
ok 3586 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > handles destroyContext failure gracefully # time=0.29ms
ok 3587 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > uses custom system prompt # time=0.32ms
ok 3588 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > passes task as user message content # time=0.37ms
ok 3589 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > prefers prompt over task for user message content when provided # time=0.27ms
ok 3590 - src/gateway/sub-agent.test.ts > SubAgentManager > execution flow > does not call destroyContext when createContext fails # time=0.12ms
ok 3591 - src/gateway/sub-agent.test.ts > SubAgentManager > constants > DEFAULT_SUB_AGENT_TIMEOUT_MS disables execution deadlines by default # time=0.04ms
ok 3592 - src/gateway/sub-agent.test.ts > SubAgentManager > constants > MAX_CONCURRENT_SUB_AGENTS is 16 # time=0.03ms
ok 3593 - src/gateway/sub-agent.test.ts > SubAgentManager > constants > SUB_AGENT_SESSION_PREFIX is "subagent:" # time=0.02ms
ok 3594 - src/gateway/subagent-context-curation.test.ts > subagent-context-curation > does not relativize dependency artifacts against placeholder workspace aliases # time=1.19ms
ok 3595 - src/gateway/subagent-context-curation.test.ts > subagent-context-curation > requires a trusted concrete workspace root before scanning workspace artifacts # time=0.49ms
ok 3596 - src/gateway/subagent-context-curation.test.ts > subagent-context-curation > keeps display redaction and execution sanitization separate # time=0.98ms
ok 3597 - src/gateway/subagent-context-curation.test.ts > subagent-context-curation > preserves only runtime-approved absolute paths in execution-facing text # time=0.27ms
ok 3598 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > refuses execution-envelope workspace aliases as live working-directory inputs # time=0.85ms
ok 3599 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > does not fall back to planner workspace roots when the step lacks an execution envelope # time=0.17ms
ok 3600 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > does not treat raw cwd directives as structured delegated filesystem scope # time=0.13ms
ok 3601 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > drops legacy cwd directives while preserving non-scope context requirements # time=2.06ms
ok 3602 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > distinguishes trusted runtime envelope mismatches from invalid root attempts and informational cwd mentions # time=0.66ms
ok 3603 - src/gateway/subagent-failure-classification.test.ts > subagent-failure-classification > derives a contract-shaped tool budget floor for multi-evidence delegated checks # time=1.16ms
ok 3604 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > falls back to base executor when planner steps are absent # time=2.18ms
ok 3605 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > preserves full webchat session ids when planner pipeline ids include session prefixes # time=42.39ms
ok 3606 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > emits parent pipeline events for delegated DAG steps # time=31.01ms
ok 3607 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > passes working-directory context requirements through planner-emitted subagent spawns # time=28.04ms
ok 3608 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > preserves write and shell tools for planner-emitted web implementation steps # time=28.92ms
ok 3609 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > keeps child tool scope out of the delegated contract spec # time=27.74ms
ok 3610 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > clamps planner-emitted child budget hints to the shared delegation minimum # time=28.19ms
ok 3611 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > derives a larger child tool budget for long delegated steps # time=28.26ms
ok 3612 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > emits normalized child trajectory records when trajectory sink is configured # time=29.30ms
ok 3613 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > supports bounded parallel subagent execution # time=83.00ms
ok 3614 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > supports serial execution when parallel subtasks are disabled # time=105.65ms
ok 3615 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails fast when planner fanout exceeds hard cap # time=0.31ms
ok 3616 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > allows long top-level planner dependency chains because recursive depth is enforced when children spawn # time=54.82ms
ok 3617 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > opens circuit breaker when max spawned children per request is exceeded # time=128.33ms
ok 3618 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > opens circuit breaker when cumulative child tool-call budget is exceeded # time=27.52ms
ok 3619 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > opens circuit breaker when cumulative child token budget is exceeded # time=26.60ms
ok 3620 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > treats maxCumulativeTokensPerRequestTree=0 as unlimited for autonomous request trees # time=54.84ms
ok 3621 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > scales the effective child-token budget with planned subagent count when using the default ceiling # time=53.74ms
ok 3622 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > scales the default child-token budget with planner max_budget_hint durations # time=55.39ms
ok 3623 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > reserves default child-token headroom for one repair attempt per planned subagent step # time=183.54ms
ok 3624 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > honors an explicitly configured child-token ceiling as a hard limit # time=53.75ms
ok 3625 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > returns failed pipeline result when a subagent task fails # time=0.82ms
ok 3626 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > curates child context with targeted history, required memory, and relevant tool outputs # time=28.04ms
ok 3627 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > redacts sensitive artifacts before child prompt assembly # time=27.19ms
ok 3628 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > does not inject planner memory into child prompts unless an explicit memory source is requested # time=27.15ms
ok 3629 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > filters explicit semantic memory requests by delegated step relevance # time=25.83ms
ok 3630 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > emits truncation diagnostics when curated context exceeds section caps # time=35.31ms
ok 3631 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > derives child tools from parent policy intersection and required capabilities # time=29.25ms
ok 3632 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > rejects overloaded subagent steps before spawning a child # time=1.09ms
ok 3633 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > blocks delegation-tool capability expansion from child sessions # time=26.92ms
ok 3634 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > sanitizes parent orchestration plans out of child prompts # time=27.16ms
ok 3635 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > sanitizes compact required-orchestration prompts without parentheses or backticks # time=27.63ms
ok 3636 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds structured shell usage guidance to child prompts when shell tools are allowed # time=0.55ms
ok 3637 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > uses budget-derived caps and structural dependency summaries in child prompts # time=0.94ms
ok 3638 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > prioritizes synthesized dependency feedback ahead of long parent history in downstream writer prompts # time=0.97ms
ok 3639 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > uses dynamically resolved child prompt budgets for context curation diagnostics and caps # time=1.38ms
ok 3640 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > injects dependency-derived file context into child prompts # time=0.71ms
ok 3641 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > injects compacted session artifact refs into child prompts # time=0.82ms
ok 3642 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > deduplicates dependency artifacts across absolute and relative workspace paths # time=1.12ms
ok 3643 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > injects host tooling constraints into npm workspace child prompts # time=0.33ms
ok 3644 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > does not inject node workspace guidance into Rust cargo workspace child prompts # time=0.34ms
ok 3645 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > filters generated rust target artifacts from dependency-derived workspace context # time=0.29ms
ok 3646 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > tells research children to return inline textual artifacts when no file-write tools are allowed # time=0.24ms
ok 3647 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > summarizes dependency results structurally instead of replaying verbose child prose # time=0.43ms
ok 3648 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > keeps dependency verification commands in their final resolved bucket # time=0.20ms
ok 3649 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > uses transitive dependency artifacts to inject host tooling into downstream CLI phases # time=0.37ms
ok 3650 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > falls back to scored live workspace artifacts when dependency results lack file snapshots # time=4.62ms
ok 3651 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > surfaces downstream build and verification contracts in child prompts # time=1.01ms
ok 3652 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds derived pre-install scaffold constraints to child prompts and delegation specs # time=1.24ms
ok 3653 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds derived pre-install constraints to implementation steps that occur before the real install step # time=0.36ms
ok 3654 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > derives multiple downstream root npm scripts from a combined shell-mode verification step # time=0.41ms
ok 3655 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > rejects scaffold child results that run npm install before the downstream install step # time=105.14ms
ok 3656 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > rejects implementation child results that run npm install before the downstream install step # time=106.08ms
ok 3657 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds semantic fallback tools for implementation steps when planner capabilities are unusable # time=26.44ms
ok 3658 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > prunes low-signal browser tab tools from research child scope # time=26.57ms
ok 3659 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails fast when parent policy leaves no permitted child tools # time=0.49ms
ok 3660 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > allows context-only subagent steps to run without tools when policy scope resolves no explicit tools # time=27.01ms
ok 3661 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails fast when browser-grounded work is left with only low-signal tab inspection tools # time=0.62ms
ok 3662 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > retries timeout failures with deterministic backoff and then succeeds # time=132.27ms
ok 3663 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > applies malformed result-contract retry semantics and maps validation stop reason # time=105.43ms
ok 3664 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > carries the last validation code into retried child spawns for routing-aware recovery # time=105.65ms
ok 3665 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adapts low-signal browser retry guidance for host-only localhost validation # time=0.26ms
ok 3666 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds browser-evidence retry guidance when acceptance evidence is missing for browser-required work # time=0.33ms
ok 3667 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > adds trust-aware retry guidance for invalid delegated workspace-root attempts # time=0.09ms
ok 3668 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails blocked successful child outputs without retrying them as completed phases # time=29.06ms
ok 3669 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > does not retry child validation_error results that already carry blocked phase validation codes # time=28.06ms
ok 3670 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails successful child outputs that hide omitted implementation behind code comments # time=105.56ms
ok 3671 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > fails child outputs that report completed transport but still need workflow verification # time=28.03ms
ok 3672 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > spawns delegated local-file steps from canonical execution envelopes, not raw cwd hints # time=604.92ms
ok 3673 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > uses execution-context file tools for planner-owned documentation writes and strips recursive delegation tools # time=33.37ms
ok 3674 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > rejects local-file delegated steps that still rely on raw cwd hints instead of a canonical execution envelope # time=0.86ms
ok 3675 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > rejects downstream children that still try to inherit delegated workspace from planner context via cwd=. # time=0.64ms
ok 3676 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > allows dependent DAG nodes to continue when an upstream delegated step falls back locally # time=215.49ms
ok 3677 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > retries delegated budget exhaustion once with an expanded child tool budget # time=103.99ms
ok 3678 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > retries child validation failures that return non-completed stop reasons without tool evidence # time=110.23ms
ok 3679 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > accepts provider-native search citations for research subagent steps # time=27.49ms
ok 3680 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > preserves non-completed child stop reasons instead of reclassifying them as malformed JSON # time=27.82ms
ok 3681 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > retries and fails when acceptance-count contract checks are violated # time=109.03ms
ok 3682 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > uses parent fallback path after bounded transient-provider retries # time=386.73ms
ok 3683 - src/gateway/subagent-orchestrator.test.ts > SubAgentOrchestrator > does not retry tool-misuse failures and returns tool_error stop reason hint # time=27.94ms
ok 3684 - src/gateway/subagent-query.test.ts > querySubagent (Phase K) > drives executeChat with the subagent spec and forwards events # time=8.46ms
ok 3685 - src/gateway/subagent-query.test.ts > querySubagent (Phase K) > returns the child Terminal with legacyResult carried through # time=1.68ms
ok 3686 - src/gateway/subagent-query.test.ts > runSubagentToLegacyResult (Phase K) > drains the generator and returns the legacy result # time=0.90ms
ok 3687 - src/gateway/subagent-query.test.ts > runSubagentToLegacyResult (Phase K) > rethrows underlying execute() errors when all providers fail # time=1.09ms
ok 3688 - src/gateway/subagent-query.test.ts > runSubagentToLegacyResult (Phase K) > keeps token-budget continuation disabled for subagent turns # time=3.63ms
ok 3689 - src/gateway/subrun-contract.test.ts > subrun-contract > validates durable subrun specs and session ids # time=1.25ms
ok 3690 - src/gateway/subrun-contract.test.ts > subrun-contract > rejects invalid subrun scopes, budgets, and lineage # time=0.49ms
ok 3691 - src/gateway/subrun-contract.test.ts > subrun-contract > checks artifact contract satisfaction and nested budget totals # time=0.37ms
ok 3692 - src/gateway/system-prompt-builder.test.ts > buildBaseSystemPrompt > keeps the core execution-protocol instructions: tool authority, trust prior results, faithful reporting, read-before-write # time=5.14ms
ok 3693 - src/gateway/system-prompt-builder.test.ts > buildBaseSystemPrompt > renders the post-refactor shape: task execution protocol + marketplace rules, no desktop or model disclosure # time=3.66ms
ok 3694 - src/gateway/system-prompt-builder.test.ts > buildBaseSystemPrompt > emits a voice-mode prompt that uses the Execution Style preamble and suppresses the task protocol # time=3.11ms
ok 3695 - src/gateway/system-prompt-builder.test.ts > buildBaseSystemPrompt > stays byte-stable across consecutive calls with the same config (snapshot of trailing injection sections) # time=2.74ms
ok 3696 - src/gateway/system-prompt-routing.test.ts > system prompt routing filter > detects when routed tools still require protocol context # time=1.15ms
ok 3697 - src/gateway/system-prompt-routing.test.ts > system prompt routing filter > removes protocol sections for generic coding turns # time=1.76ms
ok 3698 - src/gateway/system-prompt-routing.test.ts > system prompt routing filter > preserves protocol sections when routed tools include protocol families # time=0.13ms
ok 3699 - src/gateway/task-panel.test.ts > buildTaskPanelView > partitions by status and sorts by updatedAt desc # time=1.31ms
ok 3700 - src/gateway/task-panel.test.ts > buildTaskPanelView > prefers activeForm when in_progress, subject otherwise # time=0.20ms
ok 3701 - src/gateway/task-panel.test.ts > buildTaskPanelView > falls back to summary then kind when neither subject nor activeForm is set # time=0.10ms
ok 3702 - src/gateway/task-panel.test.ts > buildTaskPanelView > passes through recent-completed tail without filtering # time=0.15ms
ok 3703 - src/gateway/task-panel.test.ts > buildTaskPanelView > propagates omittedTaskCount onto the view # time=0.06ms
ok 3704 - src/gateway/task-panel.test.ts > buildTaskPanelViewFromSnapshot > returns undefined when the snapshot is missing # time=0.13ms
ok 3705 - src/gateway/task-panel.test.ts > formatTaskPanelLines > returns an empty array when the panel is empty and no empty message is set # time=0.14ms
ok 3706 - src/gateway/task-panel.test.ts > formatTaskPanelLines > emits a header plus an entry per task with status icons # time=0.21ms
ok 3707 - src/gateway/task-panel.test.ts > formatTaskPanelLines > emits an overflow marker when omittedOpenCount > 0 # time=0.35ms
ok 3708 - src/gateway/task-panel.test.ts > formatTaskPanelLines > emits a recent-completed section when tail entries exist # time=0.42ms
ok 3709 - src/gateway/task-panel.test.ts > formatTaskPanelLines > truncates labels that exceed maxLabelLength # time=0.18ms
ok 3710 - src/gateway/task-panel.test.ts > formatTaskPanelLines > shows [output ready] when the task has finalized output # time=0.07ms
ok 3711 - src/gateway/tool-environment-policy.test.ts > tool-environment-policy > keeps only structured durable host control tools available in desktop mode # time=1.19ms
ok 3712 - src/gateway/tool-environment-policy.test.ts > tool-environment-policy > keeps host-scoped browser session tools available outside desktop-only mode # time=0.16ms
ok 3713 - src/gateway/tool-environment-policy.test.ts > tool-environment-policy > filters llm tools for desktop-only mode # time=0.32ms
ok 3714 - src/gateway/tool-environment-policy.test.ts > tool-environment-policy > filters registry tools for host-only mode # time=0.14ms
ok 3715 - src/gateway/tool-environment-policy.test.ts > tool-environment-policy > filters plain tool-name allowlists # time=0.09ms
ok 3716 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > marks non-zero exitCode tool results as isError in client and subagent lifecycle events # time=3.59ms
ok 3717 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not block duplicate same-turn tool launches after a successful start # time=0.78ms
ok 3718 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > reuses a single toolCallId for tool start/result and callbacks # time=1.06ms
ok 3719 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > attaches hook metadata and toolCallId to tool hook payloads # time=0.48ms
ok 3720 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rebases relative filesystem tool paths under the delegated working directory # time=0.59ms
ok 3721 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > resolves workspace context per call and injects the session root only into path-gated tool executions # time=0.88ms
ok 3722 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > injects the delegated cwd as an allowed filesystem root even without an explicit workspace context callback # time=0.46ms
ok 3723 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > strips spoofed internal allowed-root args from caller-controlled input # time=0.85ms
ok 3724 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > preserves a seeded session id for replayed filesystem mutations when the handler session id is absent # time=1.12ms
ok 3725 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > injects session task-list ids on the gateway path and strips spoofed internal args # time=1.43ms
ok 3726 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rebases relative desktop text editor paths under the delegated working directory # time=0.29ms
ok 3727 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > injects a default cwd for structured shell tools and resolves relative cwd values # time=0.60ms
ok 3728 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > injects the delegated cwd into desktop bash commands # time=0.92ms
ok 3729 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rewrites /workspace aliases in structured tool paths and cwd to the configured host workspace root # time=0.53ms
ok 3730 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > uses the host workspace alias root instead of the delegated cwd when rewriting nested /workspace paths # time=0.89ms
ok 3731 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects leaked /workspace aliases during delegated structured tool execution instead of repairing them on the fly # time=0.51ms
ok 3732 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects leaked /workspace aliases inside delegated shell commands instead of rewriting them at tool time # time=0.45ms
ok 3733 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > omits an auto-injected cwd when bootstrapping a missing delegated workspace via absolute paths # time=0.39ms
ok 3734 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows explicit ancestor cwd during missing-root bootstrap when command paths stay scoped to the delegated workspace # time=0.24ms
ok 3735 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > fails locally when a delegated command needs a missing auto-injected cwd # time=0.29ms
ok 3736 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > passes through filesystem paths outside the delegated workspace root after scoped validation removal # time=0.13ms
ok 3737 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > passes through shell-mode commands that reference absolute paths outside the delegated workspace root after scoped validation removal # time=25.20ms
ok 3738 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rewrites /workspace aliases inside shell-mode commands to the configured host workspace root # time=0.48ms
ok 3739 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not treat shell-mode sed expressions as escaped filesystem paths in delegated bash commands # time=23.85ms
ok 3740 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > passes through shell-mode redirect targets outside the delegated workspace root after scoped validation removal # time=35.30ms
ok 3741 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows shell-mode redirect targets that use /dev/null under a delegated workspace root # time=26.77ms
ok 3742 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not treat sed expressions as escaped filesystem paths in delegated bash commands # time=32.18ms
ok 3743 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > surfaces the blocking reason returned by tool:before hooks # time=0.73ms
ok 3744 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > injects session credentials into structured HTTP tools without exposing the secret in UI events # time=1.20ms
ok 3745 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > reuses toolCallId when approval is denied and tool does not execute # time=0.52ms
ok 3746 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not emit approval.request for system.bash under default approval rules # time=0.67ms
ok 3747 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > requires approval for system.bash in safe local dev mode # time=1.62ms
ok 3748 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > keeps read-only file operations approval-free in safe local dev mode # time=0.29ms
ok 3749 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > blocks destructive desktop automation in unattended background mode # time=0.28ms
ok 3750 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > normalizes known legacy tool aliases before execution # time=0.16ms
ok 3751 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > includes parent subagent context in approval prompts for delegated sessions # time=0.36ms
ok 3752 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > blocks delegated tool execution when action was denied earlier in parent tree # time=0.20ms
ok 3753 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > generates a unique toolCallId for each separate invocation # time=0.26ms
ok 3754 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > skips duplicate desktop GUI launches within the same handler turn # time=0.80ms
ok 3755 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > skips alternate terminal launcher commands within the same handler turn # time=0.33ms
ok 3756 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not skip non-GUI desktop.bash commands # time=0.15ms
ok 3757 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not skip browser launches when target URLs differ # time=0.25ms
ok 3758 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > still skips identical browser launch commands # time=0.10ms
ok 3759 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not treat failed browser launch as seen for duplicate skipping # time=0.13ms
ok 3760 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > emits subagent tool lifecycle events when delegation dependencies are wired # time=0.29ms
ok 3761 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > threads parentToolCallId from SubAgentInfo onto tool lifecycle events # time=0.23ms
ok 3762 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > emits enriched subagents.progress when a progressTracker is wired into delegation context # time=2.26ms
ok 3763 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > executes execute_with_agent via SubAgentManager instead of base handler # time=19.47ms
ok 3764 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > executes execute_with_agent via the shell agent launcher when available # time=2.71ms
ok 3765 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows explicitly scoped nested delegation from a sub-agent session # time=1.60ms
ok 3766 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns a durable task handle for execute_with_agent when async task handles are enabled # time=107.76ms
ok 3767 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns a launcher-backed async handle for execute_with_agent when async task handles are enabled # time=1.19ms
ok 3768 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not surface delegated child success when completion state still needs verification # time=1.15ms
ok 3769 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not block delegated child success on a parent-owned verification requirement # time=0.69ms
ok 3770 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows non-filesystem execute_with_agent delegation without a structured execution envelope # time=0.90ms
ok 3771 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects direct local-file execute_with_agent calls when trusted parent workspace authority is absent # time=0.62ms
ok 3772 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > derives direct child pwd shell scope from the trusted parent workspace root # time=1.65ms
ok 3773 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > derives direct child ls shell scope from the trusted parent workspace root even when legacy cwd hints are present # time=1.16ms
ok 3774 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > applies a public child cwd beneath the trusted parent workspace root # time=0.65ms
ok 3775 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects broken delegated local-file contracts before child spawn # time=0.37ms
ok 3776 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > preserves validated descendant target-artifact scope under the trusted parent workspace root # time=96.35ms
ok 3777 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects public model-authored delegated workspace roots on the direct child path # time=0.38ms
ok 3778 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects public model-authored sibling-repo roots on the direct child path # time=0.22ms
ok 3779 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > blocks delegated child writes outside the execution envelope target artifacts # time=0.43ms
ok 3780 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows delegated child writes inside the workspace even when target artifact contract does not list the path (advisory only) # time=0.86ms
ok 3781 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > blocks delegated child rewrites of repo-local verification harnesses unless explicitly writable # time=0.41ms
ok 3782 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows delegated verification harness rewrites when the harness is explicitly writable # time=0.44ms
ok 3783 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows scaffold flows within the execution envelope for mkdir plus relative file writes # time=0.63ms
ok 3784 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not infer delegated working directory from the most recently read file when local-file delegation omits executionContext # time=1.11ms
ok 3785 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows writeFile overwrites after reading a larger document # time=0.40ms
ok 3786 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > reuses the latest child session and rewrites leaked recall answers into generic recall guidance # time=2.56ms
ok 3787 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not sanitize child store turns that establish the memorized value # time=1.32ms
ok 3788 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > treats memorize-for-recall child-session store turns as store intent instead of recall reuse # time=0.94ms
ok 3789 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > normalizes conflicting raw-JSON child-store contracts back to exact literal output # time=1.09ms
ok 3790 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rewrites delegated structured childSessionId output to the real subagent handle # time=0.57ms
ok 3791 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rewrites embedded childSessionId JSON output to the real subagent handle # time=0.43ms
ok 3792 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns failure when delegated output includes unresolved denied commands # time=0.45ms
ok 3793 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns failure when delegated child violates a JSON output contract # time=0.46ms
ok 3794 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns failure when delegated child violates exact-count acceptance criteria # time=1.13ms
ok 3795 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns failure when delegated child claims created files without file mutation evidence # time=154.59ms
ok 3796 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > accepts delegated explicit file-authoring no-op completions when the target file already satisfies the objective # time=68.49ms
ok 3797 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns failure when delegated research child has no successful tool-grounded evidence # time=0.71ms
ok 3798 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > accepts delegated research when child returns provider-native search citations # time=0.75ms
ok 3799 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > preserves provider-native server-side tool telemetry in delegated child results # time=0.39ms
ok 3800 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > clamps execute_with_agent timeoutMs to a safe minimum # time=0.82ms
ok 3801 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects overloaded execute_with_agent objectives before spawn # time=0.31ms
ok 3802 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows overloaded execute_with_agent objectives in unsafe benchmark mode # time=1.49ms
ok 3803 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > emits an explicit lifecycle event when unsafe benchmark mode bypasses delegation policy # time=2.02ms
ok 3804 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > rejects execute_with_agent browser research when only low-signal tab tools are scoped # time=0.44ms
ok 3805 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > keeps execute_with_agent explicit child tools exact instead of widening them # time=0.32ms
ok 3806 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > keeps the explicit execute_with_agent delegation spec while promoting an objective-rich child prompt # time=76.01ms
ok 3807 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns structured error when execute_with_agent spawn fails # time=0.63ms
ok 3808 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > returns delegation policy error without executing tool when policy blocks # time=0.16ms
ok 3809 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > fails closed when nested delegation is requested without a sub-agent manager # time=0.18ms
ok 3810 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > allows nested delegation from sub-agent sessions in unsafe benchmark mode # time=0.57ms
ok 3811 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > does not veto execute_with_agent calls just because the score is below threshold # time=0.14ms
ok 3812 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > records pre/post mutation state in the effect ledger for managed file writes # time=2.67ms
ok 3813 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > embeds effect metadata in successful shell tool results when target artifacts are tracked # time=1.96ms
ok 3814 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > embeds repo-local behavior verification metadata in successful test commands # time=0.49ms
ok 3815 - src/gateway/tool-handler-factory.test.ts > createSessionToolHandler > marks an effect denied when approval rejects a mutating tool before execution # time=2.49ms
ok 3816 - src/gateway/tool-round-budget.test.ts > resolveTurnMaxToolRounds > keeps the default cap when there is no routing decision # time=0.82ms
ok 3817 - src/gateway/tool-round-budget.test.ts > resolveTurnMaxToolRounds > keeps the default cap for read-only routed tool subsets # time=0.17ms
ok 3818 - src/gateway/tool-round-budget.test.ts > resolveTurnMaxToolRounds > raises the cap for coding and durable-execution routes # time=0.10ms
ok 3819 - src/gateway/tool-round-budget.test.ts > resolveTurnMaxToolRounds > never lowers an explicit higher default cap # time=0.11ms
ok 3820 - src/gateway/tool-round-budget.test.ts > resolveMaxToolRoundsForToolNames > raises the cap for iterative child tool subsets # time=0.07ms
ok 3821 - src/gateway/tool-round-budget.test.ts > resolveMaxToolRoundsForToolNames > keeps the base cap when child tools are read-only # time=0.06ms
ok 3822 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace overview and summarize the available surfaces. # time=1.33ms
ok 3823 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace tasks surface. # time=0.33ms
ok 3824 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace skills surface. # time=0.18ms
ok 3825 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace governance surface. # time=0.08ms
ok 3826 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace disputes surface. # time=0.08ms
ok 3827 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Inspect the marketplace reputation surface. # time=0.11ms
ok 3828 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: List marketplace tasks and summarize their counts. # time=0.10ms
ok 3829 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > routes marketplace surface prompt: Show the top marketplace skills. # time=0.07ms
ok 3830 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Create a marketplace task for transcribing this file. # time=0.34ms
ok 3831 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Claim marketplace task 123. # time=0.07ms
ok 3832 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Complete marketplace task 123 with proof. # time=0.09ms
ok 3833 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Purchase marketplace skill abc. # time=0.49ms
ok 3834 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Rate marketplace skill abc with five stars. # time=0.11ms
ok 3835 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Resolve marketplace dispute def. # time=0.04ms
ok 3836 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > does not route mutation or non-marketplace prompt: Build a local TypeScript workspace with packages/core and packages/web. # time=0.10ms
ok 3837 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > returns undefined when inspectMarketplace is unavailable # time=0.06ms
ok 3838 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > biases default routing toward coding tools for coding sessions # time=0.65ms
ok 3839 - src/gateway/tool-routing.test.ts > buildStaticToolRoutingDecision > expands the coding bundle for mixed-mode browser turns # time=0.31ms
ok 3840 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle > keeps deferred specialist tools out of the default general bundle # time=0.22ms
ok 3841 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle > re-advertises discovered deferred tools on later turns # time=0.06ms
ok 3842 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle — plan-mode filter > hides mutating tools when stage is 'plan' # time=0.94ms
ok 3843 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle — plan-mode filter > leaves mutating tools in when stage is 'implement' # time=0.11ms
ok 3844 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle — plan-mode filter > leaves mutating tools in when workflowStage is omitted # time=0.07ms
ok 3845 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle — plan-mode filter > respects explicit metadata.deferred on catalog entries # time=0.10ms
ok 3846 - src/gateway/tool-routing.test.ts > buildAdvertisedToolBundle — plan-mode filter > keeps the plan-mode allow-list tools present even in plan mode # time=0.11ms
ok 3847 - src/gateway/voice-bridge.test.ts > createVoiceDelegationTool > uses the xAI Voice Agent top-level function tool schema # time=1.62ms
ok 3848 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > sends only xAI-documented session.update fields to the realtime client # time=2.38ms
ok 3849 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > emits rich connection state updates for the watch voice companion # time=0.40ms
ok 3850 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > injects only documented user text history into realtime sessions # time=0.55ms
ok 3851 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > logs direct voice turns under a single trace when trace logging is enabled # time=1.15ms
ok 3852 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > resolves the current chat executor at delegation time # time=1.10ms
ok 3853 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > surfaces the concrete inbound hook block reason # time=0.26ms
ok 3854 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > passes provider trace options to delegated chat execution when enabled # time=0.43ms
ok 3855 - src/gateway/voice-bridge.test.ts > VoiceBridge delegation > uses one trace for voice inbound, delegated tool calls, and the final response # time=3.17ms
ok 3856 - src/gateway/workflow-state.test.ts > workflow-state > defaults missing metadata to the idle workflow state # time=0.92ms
ok 3857 - src/gateway/workflow-state.test.ts > workflow-state > ensures an initial workflow state for new sessions # time=0.27ms
ok 3858 - src/gateway/workflow-state.test.ts > workflow-state > preserves enteredAt when the stage does not change # time=0.12ms
ok 3859 - src/gateway/workflow-state.test.ts > workflow-state > resets enteredAt when the workflow stage changes # time=0.12ms
ok 3860 - src/gateway/workspace-files.test.ts > WORKSPACE_FILES > contains all 13 file names # time=4.91ms
ok 3861 - src/gateway/workspace-files.test.ts > WorkspaceLoader.load > reads all workspace files from directory # time=11.55ms
ok 3862 - src/gateway/workspace-files.test.ts > WorkspaceLoader.load > returns undefined for missing files # time=4.04ms
ok 3863 - src/gateway/workspace-files.test.ts > WorkspaceLoader.load > does not load subdirectory contents # time=3.28ms
ok 3864 - src/gateway/workspace-files.test.ts > WorkspaceLoader.loadFile > reads a specific file # time=5.32ms
ok 3865 - src/gateway/workspace-files.test.ts > WorkspaceLoader.validate > reports missing workspace directory # time=1.96ms
ok 3866 - src/gateway/workspace-files.test.ts > WorkspaceLoader.validate > warns about missing AGENT.md # time=15.75ms
ok 3867 - src/gateway/workspace-files.test.ts > WorkspaceLoader.validate > reports no missing files when all are present # time=27.57ms
ok 3868 - src/gateway/workspace-files.test.ts > assembleSystemPrompt > concatenates files in correct order # time=1.75ms
ok 3869 - src/gateway/workspace-files.test.ts > assembleSystemPrompt > skips undefined files # time=2.61ms
ok 3870 - src/gateway/workspace-files.test.ts > assembleSystemPrompt > appends additional context # time=1.65ms
ok 3871 - src/gateway/workspace-files.test.ts > assembleSystemPrompt > respects maxLength truncation # time=2.23ms
ok 3872 - src/gateway/workspace-files.test.ts > assembleSystemPrompt > returns empty string when maxLength is 0 # time=10.09ms
ok 3873 - src/gateway/workspace-files.test.ts > generateTemplate > returns non-empty template for each file # time=1.94ms
ok 3874 - src/gateway/workspace-files.test.ts > scaffoldWorkspace > creates all template files # time=51.84ms
ok 3875 - src/gateway/workspace-files.test.ts > scaffoldWorkspace > does not overwrite existing files # time=45.01ms
ok 3876 - src/gateway/workspace-files.test.ts > getDefaultWorkspacePath > returns a path under home directory # time=1.75ms
ok 3877 - src/gateway/workspace.test.ts > WorkspaceManager.load > reads workspace from directory # time=35.31ms
ok 3878 - src/gateway/workspace.test.ts > WorkspaceManager.listWorkspaces > returns all workspace IDs # time=57.85ms
ok 3879 - src/gateway/workspace.test.ts > WorkspaceManager.listWorkspaces > returns empty array when base path does not exist # time=4.71ms
ok 3880 - src/gateway/workspace.test.ts > WorkspaceManager.listWorkspaces > ignores directories without workspace.json # time=23.06ms
ok 3881 - src/gateway/workspace.test.ts > WorkspaceManager.createWorkspace > throws when workspace already exists # time=36.30ms
ok 3882 - src/gateway/workspace.test.ts > WorkspaceManager.createWorkspace > scaffolds directory with template # time=25.01ms
ok 3883 - src/gateway/workspace.test.ts > WorkspaceManager.deleteWorkspace > removes workspace directory and returns true # time=8.36ms
ok 3884 - src/gateway/workspace.test.ts > WorkspaceManager.deleteWorkspace > returns false for nonexistent workspace # time=2.25ms
ok 3885 - src/gateway/workspace.test.ts > WorkspaceManager.deleteWorkspace > throws for default workspace # time=8.08ms
ok 3886 - src/gateway/workspace.test.ts > WorkspaceManager.getDefault > returns default workspace ID # time=0.85ms
ok 3887 - src/gateway/workspace.test.ts > workspace memory namespace isolation > two workspaces get different namespaces # time=16.81ms
ok 3888 - src/gateway/workspace.test.ts > workspace memory namespace isolation > explicit namespace override from config # time=7.34ms
ok 3889 - src/gateway/workspace.test.ts > workspace file loading > loads workspace files, undefined for missing # time=6.62ms
ok 3890 - src/gateway/workspace.test.ts > missing workspace directory > throws WorkspaceValidationError with descriptive message # time=0.92ms
ok 3891 - src/gateway/workspace.test.ts > missing workspace directory > throws when directory exists but workspace.json is missing # time=4.81ms
ok 3892 - src/gateway/workspace.test.ts > invalid workspace config handling > invalid JSON throws # time=19.80ms
ok 3893 - src/gateway/workspace.test.ts > invalid workspace config handling > invalid capabilities string throws # time=10.08ms
ok 3894 - src/gateway/workspace.test.ts > invalid workspace config handling > invalid session config throws # time=9.17ms
ok 3895 - src/gateway/workspace.test.ts > invalid workspace config handling > empty memoryNamespace throws # time=7.26ms
ok 3896 - src/gateway/workspace.test.ts > invalid workspace config handling > invalid workspace ID throws # time=1.28ms
ok 3897 - src/gateway/workspace.test.ts > multiple workspaces coexist > independent config, skills, namespaces, and paths # time=27.84ms
ok 3898 - src/gateway/worktree-isolation.test.ts > WorktreeIsolationManager > creates a per-worker worktree and translates repo-local paths # time=366.64ms
ok 3899 - src/gateway/worktree-isolation.test.ts > WorktreeIsolationManager > retains dirty worktrees and removes clean ones # time=673.40ms
ok 3900 - src/reputation/economy.test.ts > parseOnChainReputationStake > parses raw Anchor account data correctly # time=40.18ms
ok 3901 - src/reputation/economy.test.ts > parseOnChainReputationStake > handles zero values # time=0.60ms
ok 3902 - src/reputation/economy.test.ts > parseOnChainReputationDelegation > parses raw Anchor account data correctly # time=0.83ms
ok 3903 - src/reputation/economy.test.ts > parseOnChainReputationDelegation > handles no expiry (0) # time=0.66ms
ok 3904 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > stakeReputation returns StakeResult # time=1.89ms
ok 3905 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > getStake returns null when no stake exists # time=0.88ms
ok 3906 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > getStake returns parsed stake when it exists # time=1.25ms
ok 3907 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > withdrawStake returns WithdrawResult # time=0.71ms
ok 3908 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > stakeReputation wraps RPC errors in ReputationStakeError # time=1.40ms
ok 3909 - src/reputation/economy.test.ts > ReputationEconomyOperations - staking > withdrawStake wraps RPC errors in ReputationWithdrawError # time=0.69ms
ok 3910 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > delegateReputation returns DelegationResult # time=1.42ms
ok 3911 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > delegateReputation with expiresAt # time=1.54ms
ok 3912 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > delegateReputation rejects when the delegation already exists # time=4.82ms
ok 3913 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > getDelegation returns null when not found # time=1.51ms
ok 3914 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > getDelegation returns parsed delegation when found # time=1.83ms
ok 3915 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > getDelegationsFrom returns parsed delegations # time=1.73ms
ok 3916 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > getDelegationsTo returns parsed delegations # time=1.28ms
ok 3917 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > revokeDelegation returns RevokeResult # time=0.97ms
ok 3918 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > delegateReputation wraps RPC errors in ReputationDelegationError # time=0.99ms
ok 3919 - src/reputation/economy.test.ts > ReputationEconomyOperations - delegation > revokeDelegation wraps RPC errors in ReputationDelegationError # time=1.01ms
ok 3920 - src/reputation/economy.test.ts > ReputationEconomyOperations - effective reputation > returns base reputation when no delegations # time=0.74ms
ok 3921 - src/reputation/economy.test.ts > ReputationEconomyOperations - effective reputation > adds non-expired delegation amounts # time=17.12ms
ok 3922 - src/reputation/economy.test.ts > ReputationEconomyOperations - effective reputation > filters out expired delegations # time=1.28ms
ok 3923 - src/reputation/economy.test.ts > ReputationEconomyOperations - effective reputation > caps at REPUTATION_MAX # time=1.22ms
ok 3924 - src/reputation/economy.test.ts > ReputationEconomyOperations - effective reputation > returns 0 when agent not found # time=13.29ms
ok 3925 - src/reputation/economy.test.ts > ReputationEconomyOperations - portability > generates a portable reputation proof with valid structure # time=1.85ms
ok 3926 - src/reputation/economy.test.ts > ReputationEconomyOperations - portability > includes stake amount when stake exists # time=1.21ms
ok 3927 - src/reputation/economy.test.ts > ReputationEconomyOperations - portability > uses configurable chainId # time=0.82ms
ok 3928 - src/reputation/economy.test.ts > ReputationEconomyOperations - portability > throws ReputationPortabilityError when agent not registered # time=0.89ms
ok 3929 - src/reputation/economy.test.ts > Reputation error classes > ReputationStakeError has correct code # time=0.08ms
ok 3930 - src/reputation/economy.test.ts > Reputation error classes > ReputationDelegationError has correct code # time=0.06ms
ok 3931 - src/reputation/economy.test.ts > Reputation error classes > ReputationWithdrawError has correct code # time=0.04ms
ok 3932 - src/reputation/economy.test.ts > Reputation error classes > ReputationPortabilityError has correct code # time=0.04ms
ok 3933 - src/reputation/economy.test.ts > Reputation constants > REPUTATION_MAX is 10000 # time=0.03ms
ok 3934 - src/reputation/economy.test.ts > Reputation constants > MIN_DELEGATION_AMOUNT is 100 # time=0.03ms
ok 3935 - src/reputation/economy.test.ts > Reputation constants > REPUTATION_STAKING_COOLDOWN_SECONDS is 7 days # time=0.03ms
ok 3936 - src/runtime-contract/flags.test.ts > resolveRuntimeContractFlags > defaults core completion-contract flags on when unspecified # time=1.30ms
ok 3937 - src/runtime-contract/flags.test.ts > resolveRuntimeContractFlags > honors explicit false for core rollback flags # time=0.18ms
ok 3938 - src/runtime-contract/types.test.ts > runtime-contract types > keeps the full completion validator snapshot shape # time=6.65ms
ok 3939 - src/runtime-contract/types.test.ts > runtime-contract types > keeps the runtime snapshot order aligned with the remaining completion gates # time=1.52ms
ok 3940 - src/team/engine.test.ts > TeamContractEngine > enforces role eligibility and capacity constraints # time=11.35ms
ok 3941 - src/team/engine.test.ts > TeamContractEngine > freezes roster mutations after start # time=0.91ms
ok 3942 - src/team/engine.test.ts > TeamContractEngine > gates downstream checkpoints by dependency completion # time=0.56ms
ok 3943 - src/team/engine.test.ts > TeamContractEngine > propagates failure and isolates re-entrant hooks # time=0.62ms
ok 3944 - src/team/engine.test.ts > TeamContractEngine > finalize is idempotent and immutable # time=0.75ms
ok 3945 - src/team/engine.test.ts > TeamContractEngine > rejects canonical ID collisions # time=0.11ms
ok 3946 - src/team/engine.test.ts > TeamContractEngine > uses best-effort audit logging and isolates audit hook errors # time=0.74ms
ok 3947 - src/team/engine.test.ts > TeamContractEngine > supports planner-worker-reviewer end-to-end lifecycle # time=0.40ms
ok 3948 - src/team/payout.test.ts > computeTeamPayout > computes fixed splits with partial-failure penalties and redistribution # time=10.50ms
ok 3949 - src/team/payout.test.ts > computeTeamPayout > uses deterministic tie-break ordering for weighted remainders # time=0.28ms
ok 3950 - src/team/payout.test.ts > computeTeamPayout > supports milestone payouts with explicit unallocated remainder # time=0.35ms
ok 3951 - src/team/payout.test.ts > computeTeamPayout > uses checkpoint contribution weights within a role # time=0.13ms
ok 3952 - src/team/payout.test.ts > computeTeamPayout > rejects invalid payout configurations # time=0.57ms
ok 3953 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > builds canonical role-aware workflow definitions # time=10.20ms
ok 3954 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > launches via injected submit callback # time=1.17ms
ok 3955 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > rejects draft contracts # time=0.36ms
ok 3956 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > rejects multi-parent checkpoint graphs # time=0.36ms
ok 3957 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > rejects cyclic checkpoint graphs # time=1.95ms
ok 3958 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > rejects unknown dependencies and duplicate checkpoint ids # time=0.36ms
ok 3959 - src/team/workflow-adapter.test.ts > TeamWorkflowAdapter > keeps existing non-team workflow validation path unchanged # time=0.31ms
ok 3960 - src/skills/catalog.test.ts > PluginCatalog > installs and lists an enabled plugin # time=2.61ms
ok 3961 - src/skills/catalog.test.ts > PluginCatalog > returns failure when installing a duplicate plugin # time=0.96ms
ok 3962 - src/skills/catalog.test.ts > PluginCatalog > disables a plugin # time=0.87ms
ok 3963 - src/skills/catalog.test.ts > PluginCatalog > enables a plugin after disable # time=0.93ms
ok 3964 - src/skills/catalog.test.ts > PluginCatalog > reloads manifest and updates plugin entry # time=0.83ms
ok 3965 - src/skills/catalog.test.ts > PluginCatalog > sorts list by precedence # time=2.01ms
ok 3966 - src/skills/catalog.test.ts > PluginCatalog > blocks slot collisions at the same precedence level # time=0.83ms
ok 3967 - src/skills/catalog.test.ts > PluginCatalog > allows a higher-precedence plugin to take over a slot # time=0.94ms
ok 3968 - src/skills/catalog.test.ts > PluginCatalog > releases slot assignment after disable # time=1.11ms
ok 3969 - src/skills/catalog.test.ts > PluginCatalog > prevents enable when slot becomes occupied # time=0.80ms
ok 3970 - src/skills/catalog.test.ts > PluginCatalog > persists catalog state to disk # time=1.62ms
ok 3971 - src/skills/catalog.test.ts > PluginCatalog > returns empty list for a new catalog # time=0.35ms
ok 3972 - src/skills/catalog.test.ts > PluginCatalog > fails to disable an unknown plugin # time=0.35ms
ok 3973 - src/skills/catalog.test.ts > PluginCatalog > resolves precedence and collisions deterministically # time=7.95ms
ok 3974 - src/skills/manifest.test.ts > validatePluginManifest > passes for a valid manifest # time=1.85ms
ok 3975 - src/skills/manifest.test.ts > validatePluginManifest > reports missing id # time=0.26ms
ok 3976 - src/skills/manifest.test.ts > validatePluginManifest > reports invalid id pattern # time=0.21ms
ok 3977 - src/skills/manifest.test.ts > validatePluginManifest > reports missing version # time=0.14ms
ok 3978 - src/skills/manifest.test.ts > validatePluginManifest > reports invalid schemaVersion # time=0.10ms
ok 3979 - src/skills/manifest.test.ts > validatePluginManifest > reports non-array labels # time=0.08ms
ok 3980 - src/skills/manifest.test.ts > validatePluginManifest > reports invalid permission type # time=0.32ms
ok 3981 - src/skills/manifest.test.ts > validatePluginManifest > reports missing permission scope # time=0.09ms
ok 3982 - src/skills/manifest.test.ts > validatePluginsConfig > passes empty config # time=0.50ms
ok 3983 - src/skills/manifest.test.ts > validatePluginsConfig > reports undeclared allow-list plugin id # time=0.11ms
ok 3984 - src/skills/manifest.test.ts > validatePluginsConfig > reports undeclared deny-list plugin id # time=0.13ms
ok 3985 - src/skills/manifest.test.ts > validatePluginsConfig > reports manifest key mismatch # time=0.09ms
ok 3986 - src/skills/manifest.test.ts > manifest helper behavior > exposes structured errors via PluginManifestError # time=0.14ms
ok 3987 - src/skills/manifest.test.ts > manifest helper behavior > builds plugin config hints # time=0.19ms
ok 3988 - src/skills/manifest.test.ts > manifest helper behavior > captures malformed manifest regression fixture without false positives # time=0.52ms
ok 3989 - src/skills/registry.test.ts > SkillRegistry > register > registers a skill by name # time=1.73ms
ok 3990 - src/skills/registry.test.ts > SkillRegistry > register > throws on duplicate name # time=0.42ms
ok 3991 - src/skills/registry.test.ts > SkillRegistry > register > registers multiple skills # time=0.54ms
ok 3992 - src/skills/registry.test.ts > SkillRegistry > unregister > removes a registered skill # time=0.33ms
ok 3993 - src/skills/registry.test.ts > SkillRegistry > unregister > returns false for unknown skill # time=0.14ms
ok 3994 - src/skills/registry.test.ts > SkillRegistry > get / getOrThrow > returns undefined for unknown skill # time=0.08ms
ok 3995 - src/skills/registry.test.ts > SkillRegistry > get / getOrThrow > throws SkillNotFoundError for unknown skill via getOrThrow # time=0.16ms
ok 3996 - src/skills/registry.test.ts > SkillRegistry > get / getOrThrow > returns the skill if registered # time=0.09ms
ok 3997 - src/skills/registry.test.ts > SkillRegistry > findByCapability > finds skills matching capability bitmask # time=0.78ms
ok 3998 - src/skills/registry.test.ts > SkillRegistry > findByCapability > returns empty array if no skills match # time=0.17ms
ok 3999 - src/skills/registry.test.ts > SkillRegistry > findByTag > finds skills by tag # time=5.65ms
ok 4000 - src/skills/registry.test.ts > SkillRegistry > findByTag > returns empty array for unknown tag # time=0.26ms
ok 4001 - src/skills/registry.test.ts > SkillRegistry > listNames / listAll > lists all registered names # time=0.13ms
ok 4002 - src/skills/registry.test.ts > SkillRegistry > listNames / listAll > listAll returns all skill instances # time=0.11ms
ok 4003 - src/skills/registry.test.ts > SkillRegistry > initializeAll > initializes all registered skills # time=110.39ms
ok 4004 - src/skills/registry.test.ts > SkillRegistry > initializeAll > throws if any skill fails to initialize # time=1.20ms
ok 4005 - src/skills/registry.test.ts > SkillRegistry > initializeAll > still initializes other skills even if one fails # time=4.38ms
ok 4006 - src/skills/registry.test.ts > SkillRegistry > shutdownAll > shuts down all ready skills # time=0.75ms
ok 4007 - src/skills/registry.test.ts > SkillRegistry > shutdownAll > does not throw if a skill fails to shut down # time=0.44ms
ok 4008 - src/skills/registry.test.ts > SkillRegistry > shutdownAll > skips skills not in Ready or Error state # time=0.17ms
ok 4009 - src/skills/registry.test.ts > SkillRegistry > isReady > returns false when empty # time=0.06ms
ok 4010 - src/skills/registry.test.ts > SkillRegistry > isReady > returns true when all skills are Ready # time=3.21ms
ok 4011 - src/skills/registry.test.ts > SkillRegistry > isReady > returns false if any skill is not Ready # time=0.54ms
ok 4012 - src/social/collaboration.test.ts > CollaborationProtocol constructor > creates instance with valid config # time=46.65ms
ok 4013 - src/social/collaboration.test.ts > CollaborationProtocol constructor > uses silentLogger by default # time=1.99ms
ok 4014 - src/social/collaboration.test.ts > CollaborationProtocol constructor > accepts custom collaboration topic # time=1.79ms
ok 4015 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > posts to feed and returns requestId # time=2.59ms
ok 4016 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > passes collaboration topic to feed.post # time=2.12ms
ok 4017 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > stores request state after posting # time=2.43ms
ok 4018 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > generates 32-byte contentHash # time=1.76ms
ok 4019 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > generates 32-byte nonce # time=2.19ms
ok 4020 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on empty title # time=2.06ms
ok 4021 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on title exceeding max length # time=1.38ms
ok 4022 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on empty description # time=1.32ms
ok 4023 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on description exceeding max length # time=1.52ms
ok 4024 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on maxMembers less than 2 # time=1.20ms
ok 4025 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on maxMembers exceeding limit # time=1.19ms
ok 4026 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > throws on zero capabilities # time=2.81ms
ok 4027 - src/social/collaboration.test.ts > CollaborationProtocol.requestCollaboration() > wraps feed.post errors as CollaborationRequestError # time=2.10ms
ok 4028 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > sends message to requester # time=1.81ms
ok 4029 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > sends correct JSON content # time=2.79ms
ok 4030 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > sends decline message when accept is false # time=1.46ms
ok 4031 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > throws on unknown request # time=1.56ms
ok 4032 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > throws on cancelled request # time=2.69ms
ok 4033 - src/social/collaboration.test.ts > CollaborationProtocol.respondToRequest() > wraps messaging errors as CollaborationResponseError # time=2.15ms
ok 4034 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > records accepted response # time=1.42ms
ok 4035 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > records rejected response # time=2.58ms
ok 4036 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > throws on unknown request # time=1.89ms
ok 4037 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > throws on cancelled request # time=5.71ms
ok 4038 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > throws on duplicate response from same agent # time=1.57ms
ok 4039 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > transitions to forming when maxMembers accepted # time=2.12ms
ok 4040 - src/social/collaboration.test.ts > CollaborationProtocol.processResponse() > does not transition to forming on rejections only # time=3.34ms
ok 4041 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > creates team contract via teamEngine # time=3.35ms
ok 4042 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > joins all members to the contract with normalized ID # time=3.41ms
ok 4043 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > returns contract ID # time=1.88ms
ok 4044 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > sets status to formed # time=1.46ms
ok 4045 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > stores teamContractId on state # time=1.33ms
ok 4046 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > throws on unknown request # time=0.84ms
ok 4047 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > throws on already formed request # time=1.62ms
ok 4048 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > throws on unaccepted member # time=1.43ms
ok 4049 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > wraps teamEngine errors as CollaborationFormationError # time=1.41ms
ok 4050 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > passes payout model through to team template # time=1.58ms
ok 4051 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > creates team template with correct role and checkpoints # time=1.57ms
ok 4052 - src/social/collaboration.test.ts > CollaborationProtocol.formTeam() > emits reputation signal on formation # time=2.15ms
ok 4053 - src/social/collaboration.test.ts > CollaborationProtocol.delegateTask() > assigns role via teamEngine # time=0.94ms
ok 4054 - src/social/collaboration.test.ts > CollaborationProtocol.delegateTask() > throws on unknown contract # time=0.82ms
ok 4055 - src/social/collaboration.test.ts > CollaborationProtocol.delegateTask() > wraps teamEngine.assignRole errors # time=1.23ms
ok 4056 - src/social/collaboration.test.ts > CollaborationProtocol.delegateTask() > passes correct memberId as hex # time=0.99ms
ok 4057 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > getRequest returns null for unknown ID # time=0.91ms
ok 4058 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > getRequest returns state for known ID # time=0.95ms
ok 4059 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > getActiveRequests filters by status # time=7.80ms
ok 4060 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > cancelRequest sets status to cancelled # time=1.35ms
ok 4061 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > cancelRequest throws on unknown request # time=1.22ms
ok 4062 - src/social/collaboration.test.ts > CollaborationProtocol getters and cancel > getRequest returns expired state for past-deadline requests # time=1.22ms
ok 4063 - src/social/collaboration.test.ts > CollaborationProtocol.findCollaborators() > delegates to discovery.search # time=1.44ms
ok 4064 - src/social/collaboration.test.ts > CollaborationProtocol.findCollaborators() > passes minReputation to search # time=1.31ms
ok 4065 - src/social/collaboration.test.ts > CollaborationProtocol.findCollaborators() > returns profiles from discovery # time=1.62ms
ok 4066 - src/social/collaboration.test.ts > Collaboration error codes > CollaborationRequestError uses correct code # time=1.51ms
ok 4067 - src/social/collaboration.test.ts > Collaboration error codes > CollaborationResponseError uses correct code # time=0.26ms
ok 4068 - src/social/collaboration.test.ts > Collaboration error codes > CollaborationFormationError uses correct code # time=0.09ms
ok 4069 - src/social/discovery.test.ts > AgentDiscovery > getProfile > returns null when account does not exist # time=39.03ms
ok 4070 - src/social/discovery.test.ts > AgentDiscovery > getProfile > returns parsed profile when account exists # time=3.46ms
ok 4071 - src/social/discovery.test.ts > AgentDiscovery > getProfile > caches profile and returns from cache on second call # time=1.81ms
ok 4072 - src/social/discovery.test.ts > AgentDiscovery > getProfile > throws AgentDiscoveryError on RPC failure # time=1.56ms
ok 4073 - src/social/discovery.test.ts > AgentDiscovery > getProfile > skips cache when cache is disabled # time=1.31ms
ok 4074 - src/social/discovery.test.ts > AgentDiscovery > listByCapability > returns agents matching capability bitmask (AND) # time=2.55ms
ok 4075 - src/social/discovery.test.ts > AgentDiscovery > listByCapability > filters by minimum reputation # time=1.48ms
ok 4076 - src/social/discovery.test.ts > AgentDiscovery > listByCapability > returns results sorted by reputation descending # time=2.02ms
ok 4077 - src/social/discovery.test.ts > AgentDiscovery > listByCapability > returns empty array when no agents match # time=0.70ms
ok 4078 - src/social/discovery.test.ts > AgentDiscovery > listByCapability > falls back to full scan when memcmp fails # time=1.44ms
ok 4079 - src/social/discovery.test.ts > AgentDiscovery > search > returns all active agents with no filters # time=1.51ms
ok 4080 - src/social/discovery.test.ts > AgentDiscovery > search > filters by capabilities # time=1.37ms
ok 4081 - src/social/discovery.test.ts > AgentDiscovery > search > filters by minReputation # time=1.24ms
ok 4082 - src/social/discovery.test.ts > AgentDiscovery > search > filters by onlineOnly (active + non-empty endpoint) # time=1.22ms
ok 4083 - src/social/discovery.test.ts > AgentDiscovery > search > filters by minStake # time=1.14ms
ok 4084 - src/social/discovery.test.ts > AgentDiscovery > search > applies maxResults # time=6.74ms
ok 4085 - src/social/discovery.test.ts > AgentDiscovery > search > sorts by specified field ascending # time=1.58ms
ok 4086 - src/social/discovery.test.ts > AgentDiscovery > search > sorts by lastActive descending # time=1.46ms
ok 4087 - src/social/discovery.test.ts > AgentDiscovery > search > sorts by tasksCompleted # time=1.67ms
ok 4088 - src/social/discovery.test.ts > AgentDiscovery > search > sorts by stake # time=2.12ms
ok 4089 - src/social/discovery.test.ts > AgentDiscovery > search > includes non-active agents when activeOnly is false # time=1.45ms
ok 4090 - src/social/discovery.test.ts > AgentDiscovery > search > combines multiple filters # time=1.40ms
ok 4091 - src/social/discovery.test.ts > AgentDiscovery > listOnlineAgents > returns active agents with endpoints sorted by lastActive # time=3.61ms
ok 4092 - src/social/discovery.test.ts > AgentDiscovery > listOnlineAgents > respects limit parameter # time=8.72ms
ok 4093 - src/social/discovery.test.ts > AgentDiscovery > dispose > clears cache # time=0.80ms
ok 4094 - src/social/discovery.test.ts > AgentDiscovery > dispose > is idempotent # time=0.49ms
ok 4095 - src/social/discovery.test.ts > AgentDiscovery > dispose > works when cache is disabled # time=0.26ms
ok 4096 - src/social/discovery.test.ts > AgentDiscovery > fault tolerance > skips corrupted accounts during bulk queries # time=0.85ms
ok 4097 - src/social/discovery.test.ts > ProfileCache > returns undefined for missing entries # time=0.26ms
ok 4098 - src/social/discovery.test.ts > ProfileCache > stores and retrieves profiles # time=0.59ms
ok 4099 - src/social/discovery.test.ts > ProfileCache > returns undefined for expired entries # time=0.57ms
ok 4100 - src/social/discovery.test.ts > ProfileCache > evicts oldest entry when at capacity # time=1.70ms
ok 4101 - src/social/discovery.test.ts > ProfileCache > promotes entry on access (LRU) # time=1.65ms
ok 4102 - src/social/discovery.test.ts > ProfileCache > clear removes all entries # time=1.09ms
ok 4103 - src/social/discovery.test.ts > ProfileCache > reports size correctly # time=1.09ms
ok 4104 - src/social/discovery.test.ts > agentStateToProfile > maps all AgentState fields to AgentProfile # time=0.64ms
ok 4105 - src/social/discovery.test.ts > AGENT_STATUS_OFFSET > equals 80 (discriminator 8 + agent_id 32 + authority 32 + capabilities 8) # time=0.05ms
ok 4106 - src/social/discovery.test.ts > AgentDiscoveryError > has correct code and message # time=0.09ms
ok 4107 - src/social/feed.test.ts > deriveFeedPostPda > returns deterministic PDA for same inputs # time=95.51ms
ok 4108 - src/social/feed.test.ts > deriveFeedPostPda > returns different PDA for different authors # time=1.53ms
ok 4109 - src/social/feed.test.ts > deriveFeedPostPda > returns different PDA for different nonces # time=1.15ms
ok 4110 - src/social/feed.test.ts > deriveFeedPostPda > accepts number[] as nonce # time=0.73ms
ok 4111 - src/social/feed.test.ts > deriveFeedVotePda > returns deterministic PDA for same inputs # time=11.96ms
ok 4112 - src/social/feed.test.ts > deriveFeedVotePda > returns different PDA for different posts # time=18.64ms
ok 4113 - src/social/feed.test.ts > deriveFeedVotePda > returns different PDA for different voters # time=1.49ms
ok 4114 - src/social/feed.test.ts > AgentFeed.post() > calls postToFeed with correct parameters # time=2.74ms
ok 4115 - src/social/feed.test.ts > AgentFeed.post() > passes parentPost when provided # time=4.04ms
ok 4116 - src/social/feed.test.ts > AgentFeed.post() > maps FeedInvalidContentHash to FeedPostError # time=9.73ms
ok 4117 - src/social/feed.test.ts > AgentFeed.post() > maps FeedInvalidTopic to FeedPostError # time=15.86ms
ok 4118 - src/social/feed.test.ts > AgentFeed.post() > maps AgentNotActive to FeedPostError # time=1.11ms
ok 4119 - src/social/feed.test.ts > AgentFeed.post() > accepts number[] inputs # time=2.33ms
ok 4120 - src/social/feed.test.ts > AgentFeed.upvote() > calls upvotePost with correct accounts # time=10.22ms
ok 4121 - src/social/feed.test.ts > AgentFeed.upvote() > maps FeedSelfUpvote to FeedUpvoteError # time=3.03ms
ok 4122 - src/social/feed.test.ts > AgentFeed.upvote() > maps AgentNotActive to FeedUpvoteError # time=1.45ms
ok 4123 - src/social/feed.test.ts > AgentFeed.upvote() > maps duplicate vote (already in use) to FeedUpvoteError # time=2.84ms
ok 4124 - src/social/feed.test.ts > AgentFeed.getPost() > returns parsed post when found # time=4.26ms
ok 4125 - src/social/feed.test.ts > AgentFeed.getPost() > returns null for non-existent post # time=1.10ms
ok 4126 - src/social/feed.test.ts > AgentFeed.getPost() > throws FeedQueryError on fetch failure # time=2.00ms
ok 4127 - src/social/feed.test.ts > AgentFeed.getPost() > parses parentPost when present # time=5.18ms
ok 4128 - src/social/feed.test.ts > AgentFeed.getPost() > handles numeric createdAt (non-BN) # time=1.18ms
ok 4129 - src/social/feed.test.ts > AgentFeed.getFeed() > returns empty array when no posts exist # time=0.79ms
ok 4130 - src/social/feed.test.ts > AgentFeed.getFeed() > returns all posts sorted by createdAt desc by default # time=2.33ms
ok 4131 - src/social/feed.test.ts > AgentFeed.getFeed() > sorts by upvoteCount when requested # time=22.93ms
ok 4132 - src/social/feed.test.ts > AgentFeed.getFeed() > respects limit parameter # time=7.32ms
ok 4133 - src/social/feed.test.ts > AgentFeed.getFeed() > applies author memcmp filter # time=1.46ms
ok 4134 - src/social/feed.test.ts > AgentFeed.getFeed() > applies topic memcmp filter with correct bytes # time=0.97ms
ok 4135 - src/social/feed.test.ts > AgentFeed.getFeed() > applies both author and topic filters # time=1.08ms
ok 4136 - src/social/feed.test.ts > AgentFeed.getFeed() > throws FeedQueryError on failure # time=0.91ms
ok 4137 - src/social/feed.test.ts > AgentFeed.getPostsByAuthor() > passes author memcmp at correct offset # time=0.97ms
ok 4138 - src/social/feed.test.ts > AgentFeed.getPostsByTopic() > passes topic memcmp at correct offset # time=0.82ms
ok 4139 - src/social/feed.test.ts > AgentFeed.getPostsByTopic() > accepts number[] topic # time=2.10ms
ok 4140 - src/social/feed.test.ts > FeedPostError > has correct code and name # time=0.12ms
ok 4141 - src/social/feed.test.ts > FeedUpvoteError > has correct code and name # time=0.29ms
ok 4142 - src/social/feed.test.ts > FeedQueryError > has correct code and name # time=0.07ms
ok 4143 - src/social/feed.test.ts > Feed constants > FEED_POST_AUTHOR_OFFSET is 8 (after discriminator) # time=0.04ms
ok 4144 - src/social/feed.test.ts > Feed constants > FEED_POST_TOPIC_OFFSET is 72 (8 + 32 author + 32 content_hash) # time=0.03ms
ok 4145 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > round-trips successfully # time=29.83ms
ok 4146 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > starts with MSG_MAGIC # time=0.68ms
ok 4147 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > encodes nonce as big-endian u64 # time=0.40ms
ok 4148 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > handles large nonces # time=0.43ms
ok 4149 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > handles nonce = 0 # time=0.42ms
ok 4150 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > returns null for wrong magic # time=0.09ms
ok 4151 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > returns null for wrong length # time=0.09ms
ok 4152 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > produces different keys for different recipients # time=0.62ms
ok 4153 - src/social/messaging.test.ts > encodeMessageStateKey / decodeMessageStateKey > produces different keys for different nonces # time=0.69ms
ok 4154 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > round-trips ASCII content # time=0.14ms
ok 4155 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > round-trips UTF-8 content # time=0.12ms
ok 4156 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > pads short content with zeros # time=0.53ms
ok 4157 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > throws on content exceeding 64 bytes # time=0.34ms
ok 4158 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > throws on empty content # time=0.07ms
ok 4159 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > validates byte length not string length # time=0.10ms
ok 4160 - src/social/messaging.test.ts > encodeMessageStateValue / decodeMessageStateValue > allows exactly 64 bytes # time=0.04ms
ok 4161 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > round-trips with valid keypair # time=1.72ms
ok 4162 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > rejects wrong public key # time=9.11ms
ok 4163 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > rejects tampered payload # time=2.68ms
ok 4164 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > rejects tampered thread ids # time=0.79ms
ok 4165 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > rejects tampered signature # time=0.76ms
ok 4166 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > produces deterministic signatures # time=0.64ms
ok 4167 - src/social/messaging.test.ts > signAgentMessage / verifyAgentSignature > handles empty content # time=0.66ms
ok 4168 - src/social/messaging.test.ts > buildSigningPayload > has correct layout length # time=0.48ms
ok 4169 - src/social/messaging.test.ts > buildSigningPayload > embeds sender and recipient correctly # time=0.49ms
ok 4170 - src/social/messaging.test.ts > buildSigningPayload > embeds nonce as big-endian u64 # time=0.47ms
ok 4171 - src/social/messaging.test.ts > MessagingSendError > has correct code and properties # time=0.19ms
ok 4172 - src/social/messaging.test.ts > MessagingConnectionError > has correct code and properties # time=0.09ms
ok 4173 - src/social/messaging.test.ts > MessagingSignatureError > has correct code and properties # time=0.08ms
ok 4174 - src/social/messaging.test.ts > AgentMessaging — on-chain send > calls updateState with correct args # time=5.35ms
ok 4175 - src/social/messaging.test.ts > AgentMessaging — on-chain send > calls accountsPartial with correct accounts # time=2.45ms
ok 4176 - src/social/messaging.test.ts > AgentMessaging — on-chain send > rejects content > 64 bytes # time=1.51ms
ok 4177 - src/social/messaging.test.ts > AgentMessaging — on-chain send > rejects empty content # time=1.08ms
ok 4178 - src/social/messaging.test.ts > AgentMessaging — on-chain send > validates byte length not string length # time=1.08ms
ok 4179 - src/social/messaging.test.ts > AgentMessaging — on-chain send > maps RateLimitExceeded to MessagingSendError # time=1.91ms
ok 4180 - src/social/messaging.test.ts > AgentMessaging — on-chain send > retries on VersionMismatch (nonce collision) # time=2.53ms
ok 4181 - src/social/messaging.test.ts > AgentMessaging — on-chain send > throws after max nonce collision retries # time=3.06ms
ok 4182 - src/social/messaging.test.ts > AgentMessaging — on-chain send > increments nonce on each send # time=2.60ms
ok 4183 - src/social/messaging.test.ts > AgentMessaging — on-chain send > expected_version is always 0 (new account per message) # time=1.61ms
ok 4184 - src/social/messaging.test.ts > AgentMessaging — on-chain send > returns a signed message # time=1.53ms
ok 4185 - src/social/messaging.test.ts > AgentMessaging — on-chain history > queries with correct memcmp filters # time=24.74ms
ok 4186 - src/social/messaging.test.ts > AgentMessaging — on-chain history > filters by MSG_MAGIC prefix at offset 40 # time=1.08ms
ok 4187 - src/social/messaging.test.ts > AgentMessaging — on-chain history > returns bidirectional messages sorted by nonce # time=1.19ms
ok 4188 - src/social/messaging.test.ts > AgentMessaging — on-chain history > applies limit parameter # time=1.15ms
ok 4189 - src/social/messaging.test.ts > AgentMessaging — on-chain history > ignores entries with wrong magic # time=0.89ms
ok 4190 - src/social/messaging.test.ts > AgentMessaging — off-chain send > throws MessagingConnectionError when no endpoint found # time=1.02ms
ok 4191 - src/social/messaging.test.ts > AgentMessaging — off-chain send > resolves endpoint via discovery # time=1.50ms
ok 4192 - src/social/messaging.test.ts > AgentMessaging — off-chain send > rejects content exceeding maxOffChainSize # time=1.29ms
ok 4193 - src/social/messaging.test.ts > AgentMessaging — off-chain send > normalizes http endpoints to ws transport # time=39.43ms
ok 4194 - src/social/messaging.test.ts > AgentMessaging — off-chain send > resolves endpoint by authority alias when recipient is not an agent PDA # time=1.88ms
ok 4195 - src/social/messaging.test.ts > AgentMessaging — off-chain send > normalizes https endpoints to wss transport # time=1.16ms
ok 4196 - src/social/messaging.test.ts > AgentMessaging — off-chain send > includes signed thread ids in off-chain envelopes # time=1.06ms
ok 4197 - src/social/messaging.test.ts > AgentMessaging — off-chain send > logs off-chain retry metadata and final delivery details # time=1.52ms
ok 4198 - src/social/messaging.test.ts > AgentMessaging — off-chain send > stores successful outbound messages in recent history # time=1.16ms
ok 4199 - src/social/messaging.test.ts > AgentMessaging — off-chain send > filters recent outbound history by thread id # time=1.12ms
ok 4200 - src/social/messaging.test.ts > AgentMessaging — off-chain listener > throws if listener already started # time=0.68ms
ok 4201 - src/social/messaging.test.ts > AgentMessaging — off-chain listener > stores inbound messages in recent history # time=1.27ms
ok 4202 - src/social/messaging.test.ts > AgentMessaging — off-chain listener > treats messages addressed to the local agent PDA as incoming # time=1.10ms
ok 4203 - src/social/messaging.test.ts > AgentMessaging — off-chain listener > rejects inbound messages with tampered thread ids # time=1.02ms
ok 4204 - src/social/messaging.test.ts > AgentMessaging — off-chain listener > hydrates recent messages from the durable mailbox store across instances # time=1.49ms
ok 4205 - src/social/messaging.test.ts > AgentMessaging — message handlers > registers and unregisters handlers # time=0.76ms
ok 4206 - src/social/messaging.test.ts > AgentMessaging — auto mode > falls back to on-chain when no endpoint # time=1.29ms
ok 4207 - src/social/messaging.test.ts > AgentMessaging — auto mode > surfaces rate limit error from on-chain fallback # time=1.58ms
ok 4208 - src/social/messaging.test.ts > AgentMessaging — auto mode > rejects large content on auto fallback to on-chain # time=0.88ms
ok 4209 - src/social/messaging.test.ts > AgentMessaging — verifySignature > verifies a valid signed message # time=1.62ms
ok 4210 - src/social/messaging.test.ts > AgentMessaging — verifySignature > rejects tampered content # time=29.57ms
ok 4211 - src/social/messaging.test.ts > AgentMessaging — verifySignature > rejects tampered signature # time=1.75ms
ok 4212 - src/social/messaging.test.ts > AgentMessaging — dispose > prevents send after dispose # time=0.95ms
ok 4213 - src/social/messaging.test.ts > AgentMessaging — dispose > is idempotent # time=0.57ms
ok 4214 - src/social/messaging.test.ts > AgentMessaging — dispose > clears handlers on dispose # time=0.61ms
ok 4215 - src/social/messaging.test.ts > AgentMessaging — default PeerResolver > falls back to on-chain endpoint lookup # time=0.56ms
ok 4216 - src/social/messaging.test.ts > AgentMessaging — default PeerResolver > returns null for agents without endpoint # time=1.21ms
ok 4217 - src/social/reputation.test.ts > ReputationReason constants > matches on-chain values # time=1.77ms
ok 4218 - src/social/reputation.test.ts > ReputationReason constants > has expected bound constants # time=0.19ms
ok 4219 - src/social/reputation.test.ts > ReputationReason constants > has reasonable default weights # time=0.19ms
ok 4220 - src/social/reputation.test.ts > ReputationScoringError > has correct code and message # time=0.16ms
ok 4221 - src/social/reputation.test.ts > ReputationTrackingError > has correct code and message # time=0.10ms
ok 4222 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scorePost > returns upvoteWeight * upvotes + postWeight # time=0.60ms
ok 4223 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scorePost > accepts postId for identification # time=0.17ms
ok 4224 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scorePost > throws on negative upvotes # time=0.16ms
ok 4225 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreCollaboration > returns a map splitting reputation among participants # time=0.44ms
ok 4226 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreCollaboration > splits reputation equally among multiple participants # time=0.24ms
ok 4227 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreCollaboration > guarantees at least 1 point per participant # time=0.36ms
ok 4228 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreCollaboration > throws on empty participants # time=0.13ms
ok 4229 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreMessage > returns messageWeight # time=31.52ms
ok 4230 - src/social/reputation.test.ts > ReputationScorer — signal scoring > scoreMessage > accepts AgentMessage for identification # time=0.89ms
ok 4231 - src/social/reputation.test.ts > ReputationScorer — signal scoring > penalizeSpam > returns negative spamPenaltyBase * severity # time=0.18ms
ok 4232 - src/social/reputation.test.ts > ReputationScorer — signal scoring > penalizeSpam > throws on negative severity # time=0.09ms
ok 4233 - src/social/reputation.test.ts > ReputationScorer — custom weights > uses custom weights when provided # time=0.84ms
ok 4234 - src/social/reputation.test.ts > ReputationScorer — custom weights > clamps onChainWeight to [0,1] # time=0.10ms
ok 4235 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeSocialScore > returns 0 for zero signals # time=0.08ms
ok 4236 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeSocialScore > sums weighted signal counts # time=0.06ms
ok 4237 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeSocialScore > subtracts spam penalty # time=0.05ms
ok 4238 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeSocialScore > clamps to zero floor # time=0.05ms
ok 4239 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeCompositeScore > returns on-chain reputation when social is 0 # time=0.04ms
ok 4240 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeCompositeScore > blends on-chain and social scores # time=0.04ms
ok 4241 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeCompositeScore > clamps to REPUTATION_MAX # time=0.06ms
ok 4242 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeCompositeScore > clamps to REPUTATION_MIN # time=0.04ms
ok 4243 - src/social/reputation.test.ts > ReputationScorer — aggregate scoring > computeCompositeScore > caps social score at REPUTATION_MAX before blending # time=0.04ms
ok 4244 - src/social/reputation.test.ts > ReputationScorer — rankPosts > returns posts sorted by score descending # time=2.67ms
ok 4245 - src/social/reputation.test.ts > ReputationScorer — rankPosts > weights posts by author reputation # time=8.41ms
ok 4246 - src/social/reputation.test.ts > ReputationScorer — rankPosts > uses 0 reputation for unknown authors # time=0.60ms
ok 4247 - src/social/reputation.test.ts > ReputationScorer — rankPosts > returns empty for empty input # time=0.30ms
ok 4248 - src/social/reputation.test.ts > ReputationScorer — rankAgents > sorts by composite score descending # time=1.58ms
ok 4249 - src/social/reputation.test.ts > ReputationScorer — rankAgents > incorporates social signals when provided # time=1.09ms
ok 4250 - src/social/reputation.test.ts > ReputationScorer — rankAgents > uses zero social score for agents not in signals map # time=0.53ms
ok 4251 - src/social/reputation.test.ts > ReputationScorer — rankAgents > returns empty for empty input # time=0.06ms
ok 4252 - src/social/reputation.test.ts > ReputationScorer — event tracking > starts tracking and records events # time=0.84ms
ok 4253 - src/social/reputation.test.ts > ReputationScorer — event tracking > throws when starting tracking twice # time=0.11ms
ok 4254 - src/social/reputation.test.ts > ReputationScorer — event tracking > records reputation change events in history # time=0.26ms
ok 4255 - src/social/reputation.test.ts > ReputationScorer — event tracking > filters history by agentId # time=0.28ms
ok 4256 - src/social/reputation.test.ts > ReputationScorer — event tracking > returns history newest-first # time=0.25ms
ok 4257 - src/social/reputation.test.ts > ReputationScorer — event tracking > stopTracking unsubscribes # time=0.11ms
ok 4258 - src/social/reputation.test.ts > ReputationScorer — event tracking > stopTracking is idempotent # time=0.05ms
ok 4259 - src/social/reputation.test.ts > ReputationScorer — event tracking > dispose stops tracking # time=0.07ms
ok 4260 - src/social/reputation.test.ts > ReputationScorer — event tracking > returns empty history when no events received # time=0.06ms
ok 4261 - src/social/reputation.test.ts > ReputationScorer — edge cases > handles max reputation values # time=0.05ms
ok 4262 - src/social/reputation.test.ts > ReputationScorer — edge cases > handles min reputation values # time=0.04ms
ok 4263 - src/social/reputation.test.ts > ReputationScorer — edge cases > handles very large social scores # time=0.06ms
ok 4264 - src/social/reputation.test.ts > ReputationScorer — edge cases > rankPosts with zero-upvote posts still produces valid scores # time=0.90ms
ok 4265 - src/social/reputation.test.ts > ReputationScorer — maxHistoryEntries > evicts oldest entries when capacity is exceeded # time=0.13ms
ok 4266 - src/social/reputation.test.ts > ReputationScorer — maxHistoryEntries > does not evict when maxHistoryEntries is 0 (unlimited) # time=0.13ms
ok 4267 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > executes a web research brief through compiled job runtime tooling # time=114.44ms
ok 4268 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > fails closed when required scoped tools are missing # time=3.46ms
ok 4269 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > fails closed when L0 runtime detects blocked side-effect tools # time=2.25ms
ok 4270 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > executes launch-ready L0 job type 'lead_list_building' through the compiled runner # time=9.09ms
ok 4271 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > executes launch-ready L0 job type 'product_comparison_report' through the compiled runner # time=9.14ms
ok 4272 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > executes launch-ready L0 job type 'spreadsheet_cleanup_classification' through the compiled runner # time=13.93ms
ok 4273 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > executes launch-ready L0 job type 'transcript_to_deliverables' through the compiled runner # time=3.88ms
ok 4274 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > fails closed when a workspace-bound L0 job is missing execution context # time=1.93ms
ok 4275 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > includes trusted execution context details in prompt sections for workspace jobs # time=2.09ms
ok 4276 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > honors the global compiled-job pause switch # time=2.07ms
ok 4277 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when launch controls block a compiled job # time=2.65ms
ok 4278 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when version controls block a compiled job # time=1.94ms
ok 4279 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > honors per-job launch allowlists from env # time=1.67ms
ok 4280 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > enforces execution concurrency limits before dispatching the model # time=59.38ms
ok 4281 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when execution governor blocks a run # time=1.72ms
ok 4282 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > fails closed when a runtime dependency check denies execution # time=1.32ms
ok 4283 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when dependency preflight denies execution # time=1.44ms
ok 4284 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when dependency preflight throws # time=1.39ms
ok 4285 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records policy-failure and domain-denial telemetry for blocked domains # time=3.33ms
ok 4286 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records domain-denial telemetry when a tool blocks a redirect target # time=2.95ms
ok 4287 - src/task/compiled-job-chat-handler.test.ts > compiled job chat task handler > records telemetry when L0 runtime blocks side-effect tools # time=1.66ms
ok 4288 - src/task/compiled-job-enforcement.test.ts > compiled job enforcement > maps web research jobs into network-limited chat enforcement # time=132.90ms
ok 4289 - src/task/compiled-job-enforcement.test.ts > compiled job enforcement > maps workspace jobs into read/write envelopes rooted at the workspace # time=2.68ms
ok 4290 - src/task/compiled-job-enforcement.test.ts > compiled job enforcement > keeps network-based L0 jobs free of accidental workspace tooling # time=2.11ms
ok 4291 - src/task/compiled-job-enforcement.test.ts > compiled job enforcement > uses execution context embedded in the compiled job when present # time=8.71ms
ok 4292 - src/task/compiled-job-enforcement.test.ts > compiled job enforcement > creates a policy engine that enforces domain and tool restrictions # time=4.12ms
ok 4293 - src/task/compiled-job-execution-governor.test.ts > compiled job execution governor > reads concurrency and rate limits from env # time=2.24ms
ok 4294 - src/task/compiled-job-execution-governor.test.ts > compiled job execution governor > enforces global concurrency and releases slots # time=0.52ms
ok 4295 - src/task/compiled-job-execution-governor.test.ts > compiled job execution governor > enforces per-job rate limits with a sliding window # time=0.24ms
ok 4296 - src/task/compiled-job-launch-controls.test.ts > compiled job launch controls > defaults to launch-enabled execution with no per-job overrides # time=1.34ms
ok 4297 - src/task/compiled-job-launch-controls.test.ts > compiled job launch controls > reads global pause and job lists from env # time=0.30ms
ok 4298 - src/task/compiled-job-launch-controls.test.ts > compiled job launch controls > rejects execution when the global kill switch is off # time=0.18ms
ok 4299 - src/task/compiled-job-launch-controls.test.ts > compiled job launch controls > rejects execution when a job type is not in the enabled launch set # time=0.17ms
ok 4300 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps hostile user prose in untrusted prompt sections only for web_research_brief # time=88.62ms
ok 4301 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps hostile user prose in untrusted prompt sections only for lead_list_building # time=7.28ms
ok 4302 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps hostile user prose in untrusted prompt sections only for product_comparison_report # time=2.00ms
ok 4303 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps hostile user prose in untrusted prompt sections only for spreadsheet_cleanup_classification # time=4.59ms
ok 4304 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps hostile user prose in untrusted prompt sections only for transcript_to_deliverables # time=6.55ms
ok 4305 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > keeps workspace execution context in trusted prompt sections # time=5.32ms
ok 4306 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > does not grant mutating tools when a hostile webpage asks for file writes # time=46.05ms
ok 4307 - src/task/compiled-job-red-team.test.ts > compiled job hostile-content red-team > blocks hostile localhost fetch attempts and records the denial # time=12.26ms
ok 4308 - src/task/compiled-job-runtime.test.ts > compiled job execution runtime > builds a scoped tool runtime from compiled-job enforcement # time=66.19ms
ok 4309 - src/task/compiled-job-runtime.test.ts > compiled job execution runtime > applies compiled-job chat limits and preserves caller-specific evidence # time=1.37ms
ok 4310 - src/task/compiled-job-runtime.test.ts > compiled job execution runtime > blocks external side-effect tools from L0 execution even if they leak into the runtime allowlist # time=12.32ms
ok 4311 - src/task/compiled-job-runtime.test.ts > compiled job execution runtime > keeps explicit local workspace mutations available for workspace_only jobs # time=2.53ms
ok 4312 - src/task/compiled-job-version-controls.test.ts > compiled job version controls > defaults to no version restrictions # time=1.14ms
ok 4313 - src/task/compiled-job-version-controls.test.ts > compiled job version controls > reads compiler and policy version lists from env # time=0.30ms
ok 4314 - src/task/compiled-job-version-controls.test.ts > compiled job version controls > rejects compiler versions outside the enabled allowlist # time=0.12ms
ok 4315 - src/task/compiled-job-version-controls.test.ts > compiled job version controls > rejects disabled policy versions # time=0.12ms
ok 4316 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles bounded task template web_research_brief into a canonical runtime plan # time=1.59ms
ok 4317 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles bounded task template lead_list_building into a canonical runtime plan # time=0.30ms
ok 4318 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles bounded task template product_comparison_report into a canonical runtime plan # time=0.17ms
ok 4319 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles bounded task template spreadsheet_cleanup_classification into a canonical runtime plan # time=0.36ms
ok 4320 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles bounded task template transcript_to_deliverables into a canonical runtime plan # time=0.16ms
ok 4321 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > compiles approved templates into the same canonical runtime plan shape # time=0.22ms
ok 4322 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > rejects execution context artifacts outside the declared workspace root # time=0.41ms
ok 4323 - src/task/compiled-job.test.ts > compileResolvedMarketplaceTaskJob > fails closed on unsupported compiled job types # time=0.10ms
ok 4324 - src/task/discovery.test.ts > TaskDiscovery > Poll Mode > discovers tasks on interval # time=52.78ms
ok 4325 - src/task/discovery.test.ts > TaskDiscovery > Poll Mode > deduplicates: same task not discovered twice # time=21.98ms
ok 4326 - src/task/discovery.test.ts > TaskDiscovery > Poll Mode > filters tasks by agent capabilities # time=7.22ms
ok 4327 - src/task/discovery.test.ts > TaskDiscovery > Poll Mode > continues polling after fetch error # time=9.42ms
ok 4328 - src/task/discovery.test.ts > TaskDiscovery > Poll Mode > applies filter config # time=4.33ms
ok 4329 - src/task/discovery.test.ts > TaskDiscovery > Event Mode > discovers tasks via TaskCreated events # time=5.50ms
ok 4330 - src/task/discovery.test.ts > TaskDiscovery > Event Mode > deduplicates: same task from event not discovered twice # time=4.80ms
ok 4331 - src/task/discovery.test.ts > TaskDiscovery > Event Mode > filters events by capabilities # time=32.77ms
ok 4332 - src/task/discovery.test.ts > TaskDiscovery > Event Mode > handles fetch failure gracefully # time=28.70ms
ok 4333 - src/task/discovery.test.ts > TaskDiscovery > Event Mode > handles null task from fetchTask # time=13.98ms
ok 4334 - src/task/discovery.test.ts > TaskDiscovery > Hybrid Mode > runs both poll and event sources # time=7.02ms
ok 4335 - src/task/discovery.test.ts > TaskDiscovery > Hybrid Mode > cross-source deduplication: poll-discovered task not rediscovered via event # time=4.20ms
ok 4336 - src/task/discovery.test.ts > TaskDiscovery > Listeners > multiple listeners all notified # time=4.36ms
ok 4337 - src/task/discovery.test.ts > TaskDiscovery > Listeners > exception in one listener does not break others # time=4.34ms
ok 4338 - src/task/discovery.test.ts > TaskDiscovery > Listeners > unsubscribe removes listener # time=4.79ms
ok 4339 - src/task/discovery.test.ts > TaskDiscovery > Lifecycle > start() is idempotent # time=1.69ms
ok 4340 - src/task/discovery.test.ts > TaskDiscovery > Lifecycle > stop() is idempotent # time=0.49ms
ok 4341 - src/task/discovery.test.ts > TaskDiscovery > Lifecycle > stop() cleans up timer and subscriptions # time=0.45ms
ok 4342 - src/task/discovery.test.ts > TaskDiscovery > Lifecycle > isRunning() reflects state # time=0.37ms
ok 4343 - src/task/discovery.test.ts > TaskDiscovery > Lifecycle > can restart after stop # time=3.62ms
ok 4344 - src/task/discovery.test.ts > TaskDiscovery > Monitoring > getDiscoveredCount() is accurate # time=1.94ms
ok 4345 - src/task/discovery.test.ts > TaskDiscovery > Monitoring > clearSeen() resets deduplication # time=1.92ms
ok 4346 - src/task/discovery.test.ts > TaskDiscovery > Manual poll() > returns discovered tasks # time=2.92ms
ok 4347 - src/task/discovery.test.ts > TaskDiscovery > Manual poll() > deduplicates with previously seen tasks # time=2.40ms
ok 4348 - src/task/discovery.test.ts > TaskDiscovery > Manual poll() > applies filters # time=1.04ms
ok 4349 - src/task/discovery.test.ts > TaskDiscovery > Manual poll() > notifies listeners during manual poll # time=0.91ms
ok 4350 - src/task/discovery.test.ts > TaskDiscovery > Manual poll() > returns empty on error # time=0.59ms
ok 4351 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > isPaused() returns false by default # time=0.38ms
ok 4352 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > pause() suppresses poll cycles # time=3.74ms
ok 4353 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > resume() re-enables poll cycles # time=4.56ms
ok 4354 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > pause() suppresses event-mode discovery # time=3.78ms
ok 4355 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > pause() is idempotent # time=0.45ms
ok 4356 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > resume() is idempotent when not paused # time=0.31ms
ok 4357 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > pause() is a no-op when not running # time=0.27ms
ok 4358 - src/task/discovery.test.ts > TaskDiscovery > Pause / Resume > stop() clears paused state # time=0.29ms
ok 4359 - src/task/dlq.test.ts > DeadLetterQueue > add() > adds an entry to the queue # time=2.16ms
ok 4360 - src/task/dlq.test.ts > DeadLetterQueue > add() > preserves insertion order # time=2.93ms
ok 4361 - src/task/dlq.test.ts > DeadLetterQueue > getAll() > returns empty array when queue is empty # time=0.33ms
ok 4362 - src/task/dlq.test.ts > DeadLetterQueue > getAll() > returns a copy (not the internal array) # time=1.87ms
ok 4363 - src/task/dlq.test.ts > DeadLetterQueue > getAll() > returns all entries ordered oldest to newest # time=4.24ms
ok 4364 - src/task/dlq.test.ts > DeadLetterQueue > getByTaskId() > returns matching entry # time=0.89ms
ok 4365 - src/task/dlq.test.ts > DeadLetterQueue > getByTaskId() > returns undefined for non-existent entry # time=0.82ms
ok 4366 - src/task/dlq.test.ts > DeadLetterQueue > getByTaskId() > returns undefined when queue is empty # time=0.06ms
ok 4367 - src/task/dlq.test.ts > DeadLetterQueue > retry() > removes and returns entry by taskPda # time=3.66ms
ok 4368 - src/task/dlq.test.ts > DeadLetterQueue > retry() > returns undefined for non-existent entry # time=0.96ms
ok 4369 - src/task/dlq.test.ts > DeadLetterQueue > retry() > only removes the matching entry # time=2.92ms
ok 4370 - src/task/dlq.test.ts > DeadLetterQueue > remove() > removes entry and returns true # time=0.92ms
ok 4371 - src/task/dlq.test.ts > DeadLetterQueue > remove() > returns false for non-existent entry # time=0.06ms
ok 4372 - src/task/dlq.test.ts > DeadLetterQueue > size() > returns 0 for empty queue # time=0.04ms
ok 4373 - src/task/dlq.test.ts > DeadLetterQueue > size() > tracks additions # time=1.25ms
ok 4374 - src/task/dlq.test.ts > DeadLetterQueue > size() > tracks removals # time=1.22ms
ok 4375 - src/task/dlq.test.ts > DeadLetterQueue > clear() > removes all entries # time=5.92ms
ok 4376 - src/task/dlq.test.ts > DeadLetterQueue > maxSize eviction (FIFO) > evicts oldest entry when at capacity # time=2.17ms
ok 4377 - src/task/dlq.test.ts > DeadLetterQueue > maxSize eviction (FIFO) > evicts multiple oldest entries as needed # time=2.34ms
ok 4378 - src/task/dlq.test.ts > DeadLetterQueue > maxSize eviction (FIFO) > defaults to maxSize 1000 # time=480.82ms
ok 4379 - src/task/dlq.test.ts > DeadLetterQueue > maxSize eviction (FIFO) > respects custom maxSize # time=4.21ms
ok 4380 - src/task/dlq.test.ts > SqliteDeadLetterQueue > persists entries across queue instances # time=22.83ms
ok 4381 - src/task/dlq.test.ts > TaskExecutor DLQ integration > exposes DLQ via getDeadLetterQueue() # time=2.78ms
ok 4382 - src/task/dlq.test.ts > TaskExecutor DLQ integration > sends handler failure to DLQ # time=102.68ms
ok 4383 - src/task/dlq.test.ts > TaskExecutor DLQ integration > sends claim retry exhaustion to DLQ with stage=claim # time=202.39ms
ok 4384 - src/task/dlq.test.ts > TaskExecutor DLQ integration > sends submit retry exhaustion to DLQ with stage=submit # time=201.83ms
ok 4385 - src/task/dlq.test.ts > TaskExecutor DLQ integration > sends timeout failure to DLQ with stage=execute # time=202.65ms
ok 4386 - src/task/dlq.test.ts > TaskExecutor DLQ integration > does not send to DLQ on graceful shutdown abort # time=102.14ms
ok 4387 - src/task/dlq.test.ts > TaskExecutor DLQ integration > respects deadLetterQueue.maxSize config # time=4.83ms
ok 4388 - src/task/dlq.test.ts > TaskExecutor DLQ integration > accumulates multiple failures in DLQ # time=101.47ms
ok 4389 - src/task/dlq.test.ts > TaskExecutor DLQ integration > includes errorCode from RuntimeError in DLQ entry # time=100.75ms
ok 4390 - src/task/dlq.test.ts > TaskExecutor DLQ integration > DLQ entry includes task context from discovery result # time=100.97ms
ok 4391 - src/task/dlq.test.ts > TaskExecutor DLQ integration > preserves DLQ entries across executor restarts with sqlite storage # time=4.77ms
ok 4392 - src/task/executor.test.ts > TaskExecutor > autonomous mode > starts discovery and enters processing loop # time=106.49ms
ok 4393 - src/task/executor.test.ts > TaskExecutor > autonomous mode > full pipeline: discover → claim → execute → submit # time=101.64ms
ok 4394 - src/task/executor.test.ts > TaskExecutor > autonomous mode > provides correct TaskExecutionContext to handler # time=101.57ms
ok 4395 - src/task/executor.test.ts > TaskExecutor > autonomous mode > threads compiled marketplace jobs into the execution context # time=102.09ms
ok 4396 - src/task/executor.test.ts > TaskExecutor > autonomous mode > throws if discovery is not provided for autonomous mode # time=1.72ms
ok 4397 - src/task/executor.test.ts > TaskExecutor > autonomous mode > throws if already running # time=101.12ms
ok 4398 - src/task/executor.test.ts > TaskExecutor > batch mode > processes all specified batch tasks # time=54.99ms
ok 4399 - src/task/executor.test.ts > TaskExecutor > batch mode > resolves start() promise when batch is complete # time=53.43ms
ok 4400 - src/task/executor.test.ts > TaskExecutor > batch mode > handles mix of taskPda and creator+taskId batch items # time=56.02ms
ok 4401 - src/task/executor.test.ts > TaskExecutor > batch mode > handles empty batch gracefully # time=0.77ms
ok 4402 - src/task/executor.test.ts > TaskExecutor > batch mode > handles batch task not found on-chain # time=1.02ms
ok 4403 - src/task/executor.test.ts > TaskExecutor > error handling > continues processing on claim failure # time=101.59ms
ok 4404 - src/task/executor.test.ts > TaskExecutor > error handling > increments tasksFailed on handler failure # time=101.23ms
ok 4405 - src/task/executor.test.ts > TaskExecutor > error handling > increments submitsFailed on submit failure # time=101.02ms
ok 4406 - src/task/executor.test.ts > TaskExecutor > status and metrics > getStatus() returns correct initial state # time=0.62ms
ok 4407 - src/task/executor.test.ts > TaskExecutor > status and metrics > isRunning() reflects state correctly # time=0.48ms
ok 4408 - src/task/executor.test.ts > TaskExecutor > status and metrics > getStatus() computes uptimeMs from startedAt # time=100.74ms
ok 4409 - src/task/executor.test.ts > TaskExecutor > status and metrics > tracks metrics across multiple tasks # time=102.21ms
ok 4410 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onTaskDiscovered when task enters pipeline # time=101.21ms
ok 4411 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onTaskClaimed after successful claim # time=101.42ms
ok 4412 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onTaskExecutionStarted when handler begins # time=102.84ms
ok 4413 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onTaskCompleted after successful submission # time=100.88ms
ok 4414 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onClaimFailed when claim fails # time=100.94ms
ok 4415 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onTaskFailed when handler throws # time=101.11ms
ok 4416 - src/task/executor.test.ts > TaskExecutor > event callbacks > emits onSubmitFailed when submit fails # time=102.31ms
ok 4417 - src/task/executor.test.ts > TaskExecutor > concurrency > handler receives AbortSignal in context # time=101.04ms
ok 4418 - src/task/executor.test.ts > TaskExecutor > concurrency > AbortSignal fires on stop() # time=100.46ms
ok 4419 - src/task/executor.test.ts > TaskExecutor > concurrency > respects maxConcurrentTasks limit # time=104.00ms
ok 4420 - src/task/executor.test.ts > TaskExecutor > concurrency > queues tasks beyond limit (not dropped) # time=102.89ms
ok 4421 - src/task/executor.test.ts > TaskExecutor > private tasks > calls completeTaskPrivate for PrivateTaskExecutionResult # time=101.98ms
ok 4422 - src/task/executor.test.ts > TaskExecutor > private tasks > calls completeTask for TaskExecutionResult # time=101.37ms
ok 4423 - src/task/executor.test.ts > TaskExecutor > private tasks > isPrivateExecutionResult correctly routes result type # time=0.16ms
ok 4424 - src/task/executor.test.ts > TaskExecutor > lifecycle > stop() is idempotent when not running # time=0.43ms
ok 4425 - src/task/executor.test.ts > TaskExecutor > lifecycle > stop() clears queue and stops discovery # time=0.38ms
ok 4426 - src/task/executor.test.ts > TaskExecutor > lifecycle > on() registers multiple event callback sets # time=100.64ms
ok 4427 - src/task/executor.test.ts > TaskExecutor > task timeout > times out handler that exceeds taskTimeoutMs # time=100.32ms
ok 4428 - src/task/executor.test.ts > TaskExecutor > task timeout > does not timeout handler that completes within taskTimeoutMs # time=102.95ms
ok 4429 - src/task/executor.test.ts > TaskExecutor > task timeout > propagates abort signal to handler on timeout # time=102.26ms
ok 4430 - src/task/executor.test.ts > TaskExecutor > task timeout > releases concurrency slot on timeout so queued tasks run # time=101.14ms
ok 4431 - src/task/executor.test.ts > TaskExecutor > task timeout > taskTimeoutMs=0 disables timeout # time=203.50ms
ok 4432 - src/task/executor.test.ts > TaskExecutor > task timeout > defaults to 300_000ms timeout # time=0.55ms
ok 4433 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > aborts immediately when remaining claim time < buffer # time=100.90ms
ok 4434 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > aborts mid-execution when claim deadline timer fires # time=101.79ms
ok 4435 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > does not abort when claim has plenty of time remaining # time=103.13ms
ok 4436 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > claimExpiryBufferMs=0 disables claim deadline monitoring # time=102.39ms
ok 4437 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > coexists with taskTimeoutMs (shorter timeout fires first) # time=101.34ms
ok 4438 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > skips deadline check when fetchClaim returns null # time=100.87ms
ok 4439 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > defaults to 30_000ms claim expiry buffer # time=0.88ms
ok 4440 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > increments claimsExpired metric on claim deadline abort # time=102.36ms
ok 4441 - src/task/executor.test.ts > TaskExecutor > claim deadline monitoring > releases concurrency slot on claim deadline abort # time=102.74ms
ok 4442 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > retries claim on transient failure and succeeds on second attempt # time=102.15ms
ok 4443 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > retries submit on transient failure and succeeds on second attempt # time=101.81ms
ok 4444 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > throws RetryExhaustedError when all claim attempts fail # time=207.33ms
ok 4445 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > throws RetryExhaustedError when all submit attempts fail # time=202.03ms
ok 4446 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > does not retry handler execution failures # time=100.95ms
ok 4447 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > respects abort signal during retry backoff wait # time=101.72ms
ok 4448 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > logs retry attempts # time=101.72ms
ok 4449 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > applies exponential backoff delays (no jitter) # time=207.26ms
ok 4450 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > retryPolicy maxAttempts=1 disables retries # time=202.21ms
ok 4451 - src/task/executor.test.ts > TaskExecutor > retry with exponential backoff > uses default retry policy when none is provided # time=102.04ms
ok 4452 - src/task/executor.test.ts > TaskExecutor > backpressure > pauses discovery when queue reaches highWaterMark # time=101.53ms
ok 4453 - src/task/executor.test.ts > TaskExecutor > backpressure > resumes discovery when queue drains to lowWaterMark # time=102.27ms
ok 4454 - src/task/executor.test.ts > TaskExecutor > backpressure > hysteresis prevents rapid pause/resume oscillation # time=100.32ms
ok 4455 - src/task/executor.test.ts > TaskExecutor > backpressure > emits onBackpressureActivated and onBackpressureReleased events # time=102.39ms
ok 4456 - src/task/executor.test.ts > TaskExecutor > backpressure > getQueueSize() returns current queue length # time=101.53ms
ok 4457 - src/task/executor.test.ts > TaskExecutor > backpressure > does not pause discovery when pauseDiscovery is false # time=100.99ms
ok 4458 - src/task/executor.test.ts > TaskExecutor > backpressure > getStatus() includes queueSize and backpressureActive # time=0.94ms
ok 4459 - src/task/executor.test.ts > TaskExecutor > backpressure > stop() clears backpressure state # time=101.12ms
ok 4460 - src/task/filters.test.ts > hasRequiredCapabilities > returns true when agent has all required capabilities # time=0.86ms
ok 4461 - src/task/filters.test.ts > hasRequiredCapabilities > returns false when agent lacks required capability # time=0.18ms
ok 4462 - src/task/filters.test.ts > hasRequiredCapabilities > returns true when no capabilities required # time=0.08ms
ok 4463 - src/task/filters.test.ts > hasRequiredCapabilities > returns true when agent has superset of required capabilities # time=0.21ms
ok 4464 - src/task/filters.test.ts > hasRequiredCapabilities > handles full bitmask (all capabilities set) # time=0.10ms
ok 4465 - src/task/filters.test.ts > matchesFilter > happy path: task passes all filters # time=36.86ms
ok 4466 - src/task/filters.test.ts > matchesFilter > rejects Completed tasks # time=0.73ms
ok 4467 - src/task/filters.test.ts > matchesFilter > rejects Cancelled tasks # time=0.74ms
ok 4468 - src/task/filters.test.ts > matchesFilter > rejects Disputed tasks # time=0.86ms
ok 4469 - src/task/filters.test.ts > matchesFilter > accepts InProgress tasks # time=0.80ms
ok 4470 - src/task/filters.test.ts > matchesFilter > rejects task when agent lacks required capabilities # time=0.59ms
ok 4471 - src/task/filters.test.ts > matchesFilter > rejects task when slots are full # time=0.49ms
ok 4472 - src/task/filters.test.ts > matchesFilter > rejects task below minRewardLamports # time=0.49ms
ok 4473 - src/task/filters.test.ts > matchesFilter > accepts task at exactly minRewardLamports # time=0.52ms
ok 4474 - src/task/filters.test.ts > matchesFilter > rejects task above maxRewardLamports # time=0.49ms
ok 4475 - src/task/filters.test.ts > matchesFilter > accepts task at exactly maxRewardLamports # time=0.47ms
ok 4476 - src/task/filters.test.ts > matchesFilter > rejects task with wrong task type # time=0.52ms
ok 4477 - src/task/filters.test.ts > matchesFilter > accepts task matching one of multiple task types # time=6.59ms
ok 4478 - src/task/filters.test.ts > matchesFilter > passes when taskTypes is empty array # time=0.68ms
ok 4479 - src/task/filters.test.ts > matchesFilter > rejects task without sufficient deadline buffer # time=0.60ms
ok 4480 - src/task/filters.test.ts > matchesFilter > accepts task with sufficient deadline buffer # time=0.49ms
ok 4481 - src/task/filters.test.ts > matchesFilter > skips deadline buffer check for tasks with no deadline # time=0.48ms
ok 4482 - src/task/filters.test.ts > matchesFilter > privateOnly rejects public tasks # time=0.54ms
ok 4483 - src/task/filters.test.ts > matchesFilter > privateOnly accepts private tasks # time=0.54ms
ok 4484 - src/task/filters.test.ts > matchesFilter > publicOnly rejects private tasks # time=0.50ms
ok 4485 - src/task/filters.test.ts > matchesFilter > publicOnly accepts public tasks # time=1.39ms
ok 4486 - src/task/filters.test.ts > matchesFilter > custom filter is called and respected # time=0.59ms
ok 4487 - src/task/filters.test.ts > matchesFilter > custom filter passes when returning true # time=0.49ms
ok 4488 - src/task/filters.test.ts > matchesFilter > no filters configured accepts all claimable tasks # time=0.55ms
ok 4489 - src/task/filters.test.ts > defaultTaskScorer > scores higher for higher reward # time=0.96ms
ok 4490 - src/task/filters.test.ts > defaultTaskScorer > scores higher for more urgent tasks # time=16.74ms
ok 4491 - src/task/filters.test.ts > defaultTaskScorer > uses 86400 default for tasks with no deadline # time=0.52ms
ok 4492 - src/task/filters.test.ts > defaultTaskScorer > handles past-deadline edge case # time=1.14ms
ok 4493 - src/task/filters.test.ts > rankTasks > returns new array in descending score order # time=3.00ms
ok 4494 - src/task/filters.test.ts > rankTasks > does not mutate the input array # time=0.93ms
ok 4495 - src/task/filters.test.ts > rankTasks > updates relevanceScore on ranked results # time=0.46ms
ok 4496 - src/task/filters.test.ts > rankTasks > accepts custom scorer # time=0.91ms
ok 4497 - src/task/filters.test.ts > rankTasks > handles empty array # time=0.28ms
ok 4498 - src/task/filters.test.ts > rankTasks > handles single task # time=0.48ms
ok 4499 - src/task/filters.test.ts > filterAndRank > filters then ranks correctly # time=1.33ms
ok 4500 - src/task/filters.test.ts > filterAndRank > produces same results as filter then rank separately # time=31.26ms
ok 4501 - src/task/filters.test.ts > filterAndRank > returns empty array when all tasks filtered out # time=0.49ms
ok 4502 - src/task/filters.test.ts > filterAndRank > accepts custom scorer # time=0.72ms
ok 4503 - src/task/metrics.test.ts > DefaultMetricsCollector > counter() > should increment by 1 by default # time=1.76ms
ok 4504 - src/task/metrics.test.ts > DefaultMetricsCollector > counter() > should increment by custom value # time=0.32ms
ok 4505 - src/task/metrics.test.ts > DefaultMetricsCollector > counter() > should support multiple counter names # time=0.21ms
ok 4506 - src/task/metrics.test.ts > DefaultMetricsCollector > histogram() > should record histogram values # time=0.64ms
ok 4507 - src/task/metrics.test.ts > DefaultMetricsCollector > histogram() > should record timestamps on entries # time=0.20ms
ok 4508 - src/task/metrics.test.ts > DefaultMetricsCollector > histogram() > should store labels on histogram entries # time=0.35ms
ok 4509 - src/task/metrics.test.ts > DefaultMetricsCollector > gauge() > should set gauge value # time=0.11ms
ok 4510 - src/task/metrics.test.ts > DefaultMetricsCollector > gauge() > should overwrite gauge value # time=0.10ms
ok 4511 - src/task/metrics.test.ts > DefaultMetricsCollector > recordTaskDuration() > should record duration in agenc.task.<stage>.duration_ms histogram # time=0.47ms
ok 4512 - src/task/metrics.test.ts > DefaultMetricsCollector > incrementCounter() > should increment counter via incrementCounter alias # time=0.09ms
ok 4513 - src/task/metrics.test.ts > DefaultMetricsCollector > recordHistogram() > should record histogram via recordHistogram alias # time=0.16ms
ok 4514 - src/task/metrics.test.ts > DefaultMetricsCollector > getSnapshot() > should return a point-in-time snapshot with timestamp # time=0.07ms
ok 4515 - src/task/metrics.test.ts > DefaultMetricsCollector > getSnapshot() > should return empty collections when no data recorded # time=0.08ms
ok 4516 - src/task/metrics.test.ts > DefaultMetricsCollector > getSnapshot() > should return copies (not references) of internal data # time=0.11ms
ok 4517 - src/task/metrics.test.ts > NoopMetrics > should not throw on any method call # time=0.45ms
ok 4518 - src/task/metrics.test.ts > NoopTracing > should return a NoopSpan # time=0.08ms
ok 4519 - src/task/metrics.test.ts > NoopTracing > should return a span that does not throw on any method # time=0.27ms
ok 4520 - src/task/metrics.test.ts > METRIC_NAMES > should have agenc.task.* prefix on all names # time=0.27ms
ok 4521 - src/task/metrics.test.ts > METRIC_NAMES > should include all expected metric names # time=0.18ms
ok 4522 - src/task/metrics.test.ts > TaskExecutor metrics integration > should record pipeline stage durations on successful task # time=104.23ms
ok 4523 - src/task/metrics.test.ts > TaskExecutor metrics integration > should emit counter metrics for discovered/claimed/completed # time=103.09ms
ok 4524 - src/task/metrics.test.ts > TaskExecutor metrics integration > should emit failure counter on handler error # time=104.61ms
ok 4525 - src/task/metrics.test.ts > TaskExecutor metrics integration > should update queue size and active count gauges # time=101.67ms
ok 4526 - src/task/metrics.test.ts > TaskExecutor metrics integration > should call tracing provider with span lifecycle # time=102.50ms
ok 4527 - src/task/metrics.test.ts > TaskExecutor metrics integration > should set span error status on failure # time=101.17ms
ok 4528 - src/task/metrics.test.ts > TaskExecutor metrics integration > should return metrics snapshot via getMetricsSnapshot() # time=103.02ms
ok 4529 - src/task/metrics.test.ts > TaskExecutor metrics integration > should return null from getMetricsSnapshot() when using NoopMetrics # time=2.26ms
ok 4530 - src/task/metrics.test.ts > TaskExecutor metrics integration > should work with custom MetricsProvider implementation # time=102.76ms
ok 4531 - src/task/metrics.test.ts > TaskExecutor metrics integration > should record submit failure counter on submit error # time=103.16ms
ok 4532 - src/task/metrics.test.ts > TaskExecutor metrics integration > should record claim failure counter on claim error # time=100.87ms
ok 4533 - src/task/operations.test.ts > TaskOperations > constructor > initializes with program and agentId # time=2.37ms
ok 4534 - src/task/operations.test.ts > TaskOperations > constructor > accepts optional logger # time=0.97ms
ok 4535 - src/task/operations.test.ts > TaskOperations > fetchTask > returns parsed OnChainTask when found # time=2.43ms
ok 4536 - src/task/operations.test.ts > TaskOperations > fetchTask > returns null for non-existent PDA # time=0.98ms
ok 4537 - src/task/operations.test.ts > TaskOperations > fetchTask > returns null for could not find error # time=0.89ms
ok 4538 - src/task/operations.test.ts > TaskOperations > fetchTask > throws on unexpected errors # time=1.64ms
ok 4539 - src/task/operations.test.ts > TaskOperations > fetchAllTasks > returns all tasks from chain # time=3.45ms
ok 4540 - src/task/operations.test.ts > TaskOperations > fetchAllTasks > returns empty array when no tasks # time=0.88ms
ok 4541 - src/task/operations.test.ts > TaskOperations > fetchClaimableTasks > issues two memcmp-filtered queries for Open and InProgress # time=3.41ms
ok 4542 - src/task/operations.test.ts > TaskOperations > fetchClaimableTasks > uses correct offset 186 for status field # time=0.73ms
ok 4543 - src/task/operations.test.ts > TaskOperations > fetchClaimableTasks > returns empty array when no claimable tasks exist # time=0.75ms
ok 4544 - src/task/operations.test.ts > TaskOperations > fetchClaimableTasks > falls back to fetchAllTasks on memcmp filter failure # time=2.55ms
ok 4545 - src/task/operations.test.ts > TaskOperations > fetchClaimableTasks > combines results from both filtered queries # time=4.17ms
ok 4546 - src/task/operations.test.ts > TaskOperations > fetchClaim > returns this agent's claim when found # time=17.43ms
ok 4547 - src/task/operations.test.ts > TaskOperations > fetchClaim > returns null for non-existent claim # time=2.45ms
ok 4548 - src/task/operations.test.ts > TaskOperations > fetchActiveClaims > returns only uncompleted claims for this agent # time=3.68ms
ok 4549 - src/task/operations.test.ts > TaskOperations > claimTask > calls claimTask with correct accounts # time=2.68ms
ok 4550 - src/task/operations.test.ts > TaskOperations > claimTask > uses claimTaskWithJobSpec when verified job spec metadata exists # time=49.69ms
ok 4551 - src/task/operations.test.ts > TaskOperations > claimTask > rejects marketplace claims when on-chain jobSpec metadata cannot be verified # time=8.70ms
ok 4552 - src/task/operations.test.ts > TaskOperations > claimTask > does not fetch remote jobSpec URIs during claim-time verification # time=2.09ms
ok 4553 - src/task/operations.test.ts > TaskOperations > claimTask > throws TaskNotClaimableError on TaskFullyClaimed # time=1.85ms
ok 4554 - src/task/operations.test.ts > TaskOperations > claimTask > throws TaskNotClaimableError on TaskExpired # time=2.06ms
ok 4555 - src/task/operations.test.ts > TaskOperations > claimTask > throws TaskNotClaimableError on InsufficientCapabilities # time=2.14ms
ok 4556 - src/task/operations.test.ts > TaskOperations > claimTask > throws TaskNotClaimableError on TaskNotOpen # time=1.81ms
ok 4557 - src/task/operations.test.ts > TaskOperations > claimTask > throws TaskNotClaimableError on AlreadyClaimed # time=9.44ms
ok 4558 - src/task/operations.test.ts > TaskOperations > completeTask > calls completeTask with correct arguments # time=1.66ms
ok 4559 - src/task/operations.test.ts > TaskOperations > completeTask > handles null resultData # time=1.50ms
ok 4560 - src/task/operations.test.ts > TaskOperations > completeTask > routes manual validation tasks to submitTaskResult # time=1.52ms
ok 4561 - src/task/operations.test.ts > TaskOperations > completeTask > appends parent and accepted-bid settlement accounts when provided # time=2.84ms
ok 4562 - src/task/operations.test.ts > TaskOperations > completeTask > throws TaskSubmissionError on failure # time=31.74ms
ok 4563 - src/task/operations.test.ts > TaskOperations > completeTaskPrivate > calls completeTaskPrivate with correct arguments # time=3.19ms
ok 4564 - src/task/operations.test.ts > TaskOperations > completeTaskPrivate > appends accepted-bid settlement accounts with explicit bidder authority # time=3.22ms
ok 4565 - src/task/operations.test.ts > TaskOperations > completeTaskPrivate > throws TaskSubmissionError on failure # time=2.67ms
ok 4566 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > configures task validation with creator review mode # time=11.42ms
ok 4567 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > submits a task result for creator review # time=1.95ms
ok 4568 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > accepts a reviewed task result using the worker authority wallet # time=26.84ms
ok 4569 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > rejects a reviewed task result # time=2.63ms
ok 4570 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > auto-accepts a timed-out reviewed task result # time=3.02ms
ok 4571 - src/task/operations.test.ts > TaskOperations > Task Validation V2 > records a validator vote for a reviewed task result # time=3.54ms
ok 4572 - src/task/operations.test.ts > TaskOperations > protocol treasury caching > caches treasury address across multiple calls # time=2.45ms
ok 4573 - src/task/operations.test.ts > TaskOperations > agent PDA caching > reuses cached agent PDA across operations # time=2.29ms
ok 4574 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTask rejects proofHash shorter than 32 bytes # time=0.64ms
ok 4575 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTask rejects all-zero proofHash # time=0.55ms
ok 4576 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTask rejects resultData shorter than 64 bytes # time=54.69ms
ok 4577 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTaskPrivate rejects sealBytes shorter than expected # time=1.12ms
ok 4578 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTaskPrivate rejects all-zero imageId # time=0.55ms
ok 4579 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTaskPrivate rejects all-zero bindingSeed # time=2.19ms
ok 4580 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTaskPrivate rejects all-zero nullifierSeed # time=0.75ms
ok 4581 - src/task/operations.test.ts > TaskOperations > Input validation (\#963) > completeTaskPrivate rejects untrusted seal selector # time=0.56ms
ok 4582 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > derives deterministic PDA from creator + taskId # time=111.61ms
ok 4583 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > different creator produces different PDA # time=23.26ms
ok 4584 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > different taskId produces different PDA # time=6.61ms
ok 4585 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > returns consistent bump # time=1.73ms
ok 4586 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > uses default PROGRAM_ID when not specified # time=1.07ms
ok 4587 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > uses custom programId when provided # time=0.75ms
ok 4588 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > throws for taskId shorter than 32 bytes # time=0.77ms
ok 4589 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > throws for taskId longer than 32 bytes # time=0.53ms
ok 4590 - src/task/pda.test.ts > Task PDA derivation helpers > deriveTaskPda > throws for empty taskId # time=0.75ms
ok 4591 - src/task/pda.test.ts > Task PDA derivation helpers > deriveClaimPda > derives deterministic PDA from taskPda + workerPda # time=0.97ms
ok 4592 - src/task/pda.test.ts > Task PDA derivation helpers > deriveClaimPda > different worker produces different PDA # time=27.30ms
ok 4593 - src/task/pda.test.ts > Task PDA derivation helpers > deriveClaimPda > returns consistent bump # time=0.78ms
ok 4594 - src/task/pda.test.ts > Task PDA derivation helpers > deriveClaimPda > uses correct seeds # time=13.30ms
ok 4595 - src/task/pda.test.ts > Task PDA derivation helpers > deriveEscrowPda > derives deterministic PDA from taskPda # time=0.72ms
ok 4596 - src/task/pda.test.ts > Task PDA derivation helpers > deriveEscrowPda > different taskPda produces different PDA # time=9.11ms
ok 4597 - src/task/pda.test.ts > Task PDA derivation helpers > deriveEscrowPda > returns consistent bump # time=0.55ms
ok 4598 - src/task/pda.test.ts > Task PDA derivation helpers > deriveEscrowPda > uses correct seeds # time=0.86ms
ok 4599 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidBookPda > derives deterministic PDA from taskPda # time=0.65ms
ok 4600 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidBookPda > uses correct seeds # time=6.45ms
ok 4601 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidPda > derives deterministic PDA from taskPda + bidderAgentPda # time=5.40ms
ok 4602 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidPda > uses correct seeds # time=20.41ms
ok 4603 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidderMarketStatePda > derives deterministic PDA from bidderAgentPda # time=3.60ms
ok 4604 - src/task/pda.test.ts > Task PDA derivation helpers > deriveBidderMarketStatePda > uses correct seeds # time=0.96ms
ok 4605 - src/task/pda.test.ts > Task PDA derivation helpers > findTaskPda > returns address only (no bump) # time=0.46ms
ok 4606 - src/task/pda.test.ts > Task PDA derivation helpers > findTaskPda > matches deriveTaskPda().address # time=0.63ms
ok 4607 - src/task/pda.test.ts > Task PDA derivation helpers > findTaskPda > accepts custom programId # time=0.48ms
ok 4608 - src/task/pda.test.ts > Task PDA derivation helpers > findTaskPda > throws for invalid taskId length # time=0.32ms
ok 4609 - src/task/pda.test.ts > Task PDA derivation helpers > findClaimPda > returns address only (no bump) # time=0.66ms
ok 4610 - src/task/pda.test.ts > Task PDA derivation helpers > findClaimPda > matches deriveClaimPda().address # time=1.02ms
ok 4611 - src/task/pda.test.ts > Task PDA derivation helpers > findEscrowPda > returns address only (no bump) # time=0.73ms
ok 4612 - src/task/pda.test.ts > Task PDA derivation helpers > findEscrowPda > matches deriveEscrowPda().address # time=0.45ms
ok 4613 - src/task/pda.test.ts > Task PDA derivation helpers > findBidBookPda > matches deriveBidBookPda().address # time=1.63ms
ok 4614 - src/task/pda.test.ts > Task PDA derivation helpers > findBidPda > matches deriveBidPda().address # time=0.94ms
ok 4615 - src/task/pda.test.ts > Task PDA derivation helpers > findBidderMarketStatePda > matches deriveBidderMarketStatePda().address # time=0.54ms
ok 4616 - src/task/pda.test.ts > Task PDA derivation helpers > PdaWithBump type > satisfies interface contract # time=3.64ms
ok 4617 - src/task/priority-queue.test.ts > PriorityQueue > push and pop > pops items in descending score order # time=1.02ms
ok 4618 - src/task/priority-queue.test.ts > PriorityQueue > push and pop > returns undefined when popping an empty queue # time=0.09ms
ok 4619 - src/task/priority-queue.test.ts > PriorityQueue > push and pop > handles single element # time=0.12ms
ok 4620 - src/task/priority-queue.test.ts > PriorityQueue > push and pop > handles duplicate scores # time=0.64ms
ok 4621 - src/task/priority-queue.test.ts > PriorityQueue > push and pop > handles many items correctly # time=0.31ms
ok 4622 - src/task/priority-queue.test.ts > PriorityQueue > peek > returns the highest-scored item without removing it # time=0.07ms
ok 4623 - src/task/priority-queue.test.ts > PriorityQueue > peek > returns undefined for an empty queue # time=0.10ms
ok 4624 - src/task/priority-queue.test.ts > PriorityQueue > size > returns 0 for new queue # time=0.05ms
ok 4625 - src/task/priority-queue.test.ts > PriorityQueue > size > tracks push and pop # time=0.34ms
ok 4626 - src/task/priority-queue.test.ts > PriorityQueue > clear > removes all items # time=0.09ms
ok 4627 - src/task/priority-queue.test.ts > PriorityQueue > getTopN > returns top N items sorted by descending score # time=0.16ms
ok 4628 - src/task/priority-queue.test.ts > PriorityQueue > getTopN > returns all items if n exceeds size # time=0.10ms
ok 4629 - src/task/priority-queue.test.ts > PriorityQueue > getTopN > returns empty array for empty queue # time=0.04ms
ok 4630 - src/task/priority-queue.test.ts > PriorityQueue > getTopN > does not modify the queue # time=0.04ms
ok 4631 - src/task/priority-queue.test.ts > PriorityQueue > rescore > reorders items based on new scores # time=0.07ms
ok 4632 - src/task/priority-queue.test.ts > PriorityQueue > rescore > handles empty queue gracefully # time=0.03ms
ok 4633 - src/task/priority-queue.test.ts > PriorityQueue > rescore > maintains correct ordering after rescore # time=0.11ms
ok 4634 - src/task/priority-queue.test.ts > PriorityQueue > capacity > evicts lowest-scored item when at capacity # time=0.21ms
ok 4635 - src/task/priority-queue.test.ts > PriorityQueue > capacity > drops new item if its score does not exceed min # time=0.06ms
ok 4636 - src/task/priority-queue.test.ts > PriorityQueue > capacity > allows unbounded queue by default # time=19.85ms
ok 4637 - src/task/priority-queue.test.ts > PriorityQueue > getScores > returns all scores # time=0.15ms
ok 4638 - src/task/priority-queue.test.ts > PriorityQueue > getScores > returns empty array for empty queue # time=0.11ms
ok 4639 - src/task/priority-queue.test.ts > PriorityQueue > edge cases > handles negative scores # time=0.06ms
ok 4640 - src/task/priority-queue.test.ts > PriorityQueue > edge cases > handles interleaved push and pop # time=0.06ms
ok 4641 - src/task/priority-queue.test.ts > PriorityQueue > edge cases > push after clear works correctly # time=0.04ms
ok 4642 - src/task/types.test.ts > OnChainTaskStatus enum > has correct numeric values # time=1.21ms
ok 4643 - src/task/types.test.ts > OnChainTaskStatus enum > has all 6 variants # time=0.15ms
ok 4644 - src/task/types.test.ts > parseTaskStatus > parses numeric values (0-5) # time=0.22ms
ok 4645 - src/task/types.test.ts > parseTaskStatus > parses Anchor enum objects # time=0.12ms
ok 4646 - src/task/types.test.ts > parseTaskStatus > throws on invalid numeric input # time=0.51ms
ok 4647 - src/task/types.test.ts > parseTaskStatus > throws on invalid object input # time=0.14ms
ok 4648 - src/task/types.test.ts > parseTaskType > parses numeric values (0-3) # time=0.19ms
ok 4649 - src/task/types.test.ts > parseTaskType > parses Anchor enum objects # time=0.10ms
ok 4650 - src/task/types.test.ts > parseTaskType > throws on invalid input # time=0.45ms
ok 4651 - src/task/types.test.ts > parseOnChainTask > converts BN fields to bigint # time=142.18ms
ok 4652 - src/task/types.test.ts > parseOnChainTask > converts BN timestamp fields to number # time=0.80ms
ok 4653 - src/task/types.test.ts > parseOnChainTask > converts number[] to Uint8Array # time=0.75ms
ok 4654 - src/task/types.test.ts > parseOnChainTask > preserves Uint8Array passthrough # time=0.72ms
ok 4655 - src/task/types.test.ts > parseOnChainTask > preserves PublicKey passthrough # time=3.70ms
ok 4656 - src/task/types.test.ts > parseOnChainTask > handles zero deadline (no deadline) # time=0.74ms
ok 4657 - src/task/types.test.ts > parseOnChainTask > handles zero constraintHash (not private) # time=0.53ms
ok 4658 - src/task/types.test.ts > parseOnChainTask > parses status enum from Anchor object format # time=0.62ms
ok 4659 - src/task/types.test.ts > parseOnChainTask > parses taskType enum from Anchor object format # time=0.61ms
ok 4660 - src/task/types.test.ts > parseOnChainTask > preserves numeric fields # time=0.54ms
ok 4661 - src/task/types.test.ts > parseOnChainTask > throws on invalid data # time=0.23ms
ok 4662 - src/task/types.test.ts > parseOnChainTaskClaim > converts all fields correctly # time=2.13ms
ok 4663 - src/task/types.test.ts > parseOnChainTaskClaim > handles uncompleted claim # time=0.59ms
ok 4664 - src/task/types.test.ts > parseOnChainTaskClaim > converts proofHash and resultData byte arrays # time=0.57ms
ok 4665 - src/task/types.test.ts > parseOnChainTaskClaim > preserves PublicKey fields # time=5.42ms
ok 4666 - src/task/types.test.ts > parseOnChainTaskClaim > throws on invalid data # time=0.34ms
ok 4667 - src/task/types.test.ts > isPrivateTask > returns true when constraintHash has any non-zero byte # time=0.63ms
ok 4668 - src/task/types.test.ts > isPrivateTask > returns false when constraintHash is all zeros # time=0.87ms
ok 4669 - src/task/types.test.ts > isPrivateTask > returns false for manual validation sentinel tasks # time=0.68ms
ok 4670 - src/task/types.test.ts > isManualValidationTask > returns true for the manual validation sentinel # time=0.52ms
ok 4671 - src/task/types.test.ts > isManualValidationTask > returns false for other non-zero constraint hashes # time=0.51ms
ok 4672 - src/task/types.test.ts > isTaskExpired > returns false when deadline is 0 (no deadline) # time=0.52ms
ok 4673 - src/task/types.test.ts > isTaskExpired > returns false when deadline is in the future # time=0.47ms
ok 4674 - src/task/types.test.ts > isTaskExpired > returns true when deadline has passed # time=0.48ms
ok 4675 - src/task/types.test.ts > isTaskExpired > accepts optional nowUnix parameter for deterministic testing # time=0.50ms
ok 4676 - src/task/types.test.ts > isTaskClaimable > returns true for Open task with available slots and not expired # time=0.49ms
ok 4677 - src/task/types.test.ts > isTaskClaimable > returns false for Completed status # time=0.46ms
ok 4678 - src/task/types.test.ts > isTaskClaimable > returns false for Cancelled status # time=0.43ms
ok 4679 - src/task/types.test.ts > isTaskClaimable > returns false for Disputed status # time=0.44ms
ok 4680 - src/task/types.test.ts > isTaskClaimable > returns false for InProgress status # time=5.98ms
ok 4681 - src/task/types.test.ts > isTaskClaimable > returns false when currentWorkers >= maxWorkers # time=0.62ms
ok 4682 - src/task/types.test.ts > isPrivateExecutionResult > identifies PrivateTaskExecutionResult by RISC0 payload fields # time=0.08ms
ok 4683 - src/task/types.test.ts > isPrivateExecutionResult > identifies TaskExecutionResult as non-private # time=0.04ms
ok 4684 - src/task/types.test.ts > isPrivateExecutionResult > does not match object with only seal bytes (missing journal fields) # time=0.04ms
ok 4685 - src/task/types.test.ts > taskStatusToString > converts all status values to strings # time=0.12ms
ok 4686 - src/task/types.test.ts > taskStatusToString > returns Unknown for invalid values # time=0.03ms
ok 4687 - src/task/types.test.ts > taskTypeToString > converts all type values to strings # time=0.08ms
ok 4688 - src/task/types.test.ts > taskTypeToString > returns Unknown for invalid values # time=0.03ms
ok 4689 - src/telemetry/collector.test.ts > buildKey > returns name when no labels # time=6.05ms
ok 4690 - src/telemetry/collector.test.ts > buildKey > returns name when labels are empty # time=0.18ms
ok 4691 - src/telemetry/collector.test.ts > buildKey > appends sorted labels # time=0.09ms
ok 4692 - src/telemetry/collector.test.ts > buildKey > handles single label # time=8.77ms
ok 4693 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > increments counter without labels # time=1.74ms
ok 4694 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > increments counter with labels (composite key) # time=0.25ms
ok 4695 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > incrementCounter is an alias for counter # time=0.09ms
ok 4696 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > sets and overwrites gauge # time=0.16ms
ok 4697 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > gauge with labels uses composite key # time=0.31ms
ok 4698 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > records bigint gauge # time=0.12ms
ok 4699 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > bigint gauge with labels # time=0.12ms
ok 4700 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > getSnapshot omits bigintGauges # time=0.05ms
ok 4701 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > records histogram entries # time=0.47ms
ok 4702 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > recordHistogram is an alias for histogram # time=0.09ms
ok 4703 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > recordTaskDuration prefixes with agenc.task. # time=0.10ms
ok 4704 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > evicts oldest histogram entries at max # time=0.16ms
ok 4705 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > getSnapshot includes timestamp # time=0.06ms
ok 4706 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > getFullSnapshot includes all types # time=0.12ms
ok 4707 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > reset clears all data # time=0.31ms
ok 4708 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > flush sends snapshot to all sinks # time=0.14ms
ok 4709 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > sink error does not throw from flush # time=0.32ms
ok 4710 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > sinks from config are registered # time=0.08ms
ok 4711 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > auto-flush timer fires and can be destroyed # time=1.17ms
ok 4712 - src/telemetry/collector.test.ts > UnifiedTelemetryCollector > flush with no sinks is a no-op # time=0.07ms
ok 4713 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > emits a total blocked-run spike alert when the threshold is exceeded # time=2.36ms
ok 4714 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > emits per-reason alerts when a single denial reason spikes # time=0.24ms
ok 4715 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > surfaces dependency failure spikes through the same blocked-run alerts # time=0.18ms
ok 4716 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > emits alerts for compiled-job policy failure spikes # time=0.20ms
ok 4717 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > emits alerts for compiled-job domain denial spikes # time=0.12ms
ok 4718 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > dedupes repeated alerts inside the dedupe window # time=0.55ms
ok 4719 - src/telemetry/compiled-job-alerts.test.ts > CompiledJobAlertSink > emits fresh alerts again after the dedupe window passes # time=0.36ms
ok 4720 - src/telemetry/incident-diagnostics.test.ts > RuntimeIncidentDiagnostics > tracks degraded and safe-mode dependencies and clears them # time=18.60ms
ok 4721 - src/telemetry/incident-diagnostics.test.ts > RuntimeIncidentDiagnostics > increments repeated incident counts per dependency code # time=0.49ms
ok 4722 - src/telemetry/sinks.test.ts > ConsoleSink > logs formatted output via logger.info # time=2.43ms
ok 4723 - src/telemetry/sinks.test.ts > ConsoleSink > handles empty snapshot # time=2.64ms
ok 4724 - src/telemetry/sinks.test.ts > CallbackSink > invokes callback with snapshot # time=0.25ms
ok 4725 - src/telemetry/sinks.test.ts > CallbackSink > accepts custom name # time=0.06ms
ok 4726 - src/telemetry/sinks.test.ts > CallbackSink > callback error propagates (sinks are wrapped in collector) # time=0.41ms
ok 4727 - src/telemetry/slo.test.ts > computeRuntimeSloSnapshot > derives runtime SLOs from telemetry and pipeline artifacts # time=1.44ms
ok 4728 - src/tools/registry.test.ts > ToolRegistry > registers and retrieves a tool # time=9.29ms
ok 4729 - src/tools/registry.test.ts > ToolRegistry > throws on duplicate registration # time=0.25ms
ok 4730 - src/tools/registry.test.ts > ToolRegistry > registerAll registers multiple tools # time=0.09ms
ok 4731 - src/tools/registry.test.ts > ToolRegistry > unregister removes a tool # time=0.15ms
ok 4732 - src/tools/registry.test.ts > ToolRegistry > unregister returns false for unknown tool # time=0.06ms
ok 4733 - src/tools/registry.test.ts > ToolRegistry > get returns undefined for unknown tool # time=0.09ms
ok 4734 - src/tools/registry.test.ts > ToolRegistry > getOrThrow throws for unknown tool # time=0.13ms
ok 4735 - src/tools/registry.test.ts > ToolRegistry > listNames returns all names # time=0.30ms
ok 4736 - src/tools/registry.test.ts > ToolRegistry > listAll returns all tools # time=0.40ms
ok 4737 - src/tools/registry.test.ts > ToolRegistry > toLLMTools maps tools correctly # time=0.48ms
ok 4738 - src/tools/registry.test.ts > ToolRegistry > toLLMTools returns empty array when no tools # time=0.14ms
ok 4739 - src/tools/registry.test.ts > ToolRegistry > createToolHandler dispatches to correct tool # time=0.77ms
ok 4740 - src/tools/registry.test.ts > ToolRegistry > createToolHandler returns error JSON for unknown tool # time=0.10ms
ok 4741 - src/tools/registry.test.ts > ToolRegistry > createToolHandler catches thrown errors # time=0.09ms
ok 4742 - src/tools/registry.test.ts > ToolRegistry > createToolHandler returns error content from tool # time=0.06ms
ok 4743 - src/tools/registry.test.ts > ToolRegistry > createToolHandler wraps plain-text tool errors as JSON # time=0.12ms
ok 4744 - src/tools/registry.test.ts > ToolRegistry > createToolHandler blocks denied tools via policy engine # time=1.03ms
ok 4745 - src/tools/registry.test.ts > ToolRegistry > createToolHandler allows read tools in safe mode and blocks writes # time=0.54ms
ok 4746 - src/tools/skill-adapter.test.ts > skillToTools > creates namespaced tools from skill actions # time=1.59ms
ok 4747 - src/tools/skill-adapter.test.ts > skillToTools > uses custom namespace # time=0.18ms
ok 4748 - src/tools/skill-adapter.test.ts > skillToTools > skips actions without schema # time=0.24ms
ok 4749 - src/tools/skill-adapter.test.ts > skillToTools > throws on non-Ready skill # time=0.22ms
ok 4750 - src/tools/skill-adapter.test.ts > skillToTools > execute wraps result with safeStringify (handles bigint) # time=0.25ms
ok 4751 - src/tools/skill-adapter.test.ts > skillToTools > catches action errors and returns ToolResult.isError # time=0.36ms
ok 4752 - src/tools/skill-adapter.test.ts > JUPITER_ACTION_SCHEMAS > has entries for all 7 Jupiter actions # time=0.21ms
ok 4753 - src/tools/skill-adapter.test.ts > JUPITER_ACTION_SCHEMAS > each schema has type: object # time=0.15ms
ok 4754 - src/voice/stt.test.ts > WhisperAPIProvider > has correct name # time=2.33ms
ok 4755 - src/voice/stt.test.ts > WhisperAPIProvider > transcribes audio and returns text # time=10.41ms
ok 4756 - src/voice/stt.test.ts > WhisperAPIProvider > parses verbose response with language and duration # time=16.95ms
ok 4757 - src/voice/stt.test.ts > WhisperAPIProvider > passes language and prompt options # time=0.29ms
ok 4758 - src/voice/stt.test.ts > WhisperAPIProvider > passes signal for cancellation # time=0.42ms
ok 4759 - src/voice/stt.test.ts > WhisperAPIProvider > wraps API errors in VoiceTranscriptionError # time=3.18ms
ok 4760 - src/voice/stt.test.ts > WhisperAPIProvider > fails loudly when pointed at xAI's undocumented OpenAI transcription surface # time=7.89ms
ok 4761 - src/voice/stt.test.ts > WhisperAPIProvider > handles string response # time=0.45ms
ok 4762 - src/voice/stt.test.ts > toTranscriptionProvider > bridges SpeechToTextProvider to TranscriptionProvider # time=1.60ms
ok 4763 - src/voice/stt.test.ts > toTranscriptionProvider > maps unknown MIME types to ogg # time=0.28ms
ok 4764 - src/voice/stt.test.ts > toTranscriptionProvider > maps audio/mpeg to mp3 # time=0.15ms
ok 4765 - src/voice/tts.test.ts > ElevenLabsProvider > has correct name # time=1.10ms
ok 4766 - src/voice/tts.test.ts > ElevenLabsProvider > synthesizes text to audio # time=4.68ms
ok 4767 - src/voice/tts.test.ts > ElevenLabsProvider > uses custom voice # time=0.30ms
ok 4768 - src/voice/tts.test.ts > ElevenLabsProvider > passes speed as voice_settings # time=0.81ms
ok 4769 - src/voice/tts.test.ts > ElevenLabsProvider > wraps HTTP errors in VoiceSynthesisError # time=8.31ms
ok 4770 - src/voice/tts.test.ts > ElevenLabsProvider > lists voices from API # time=0.75ms
ok 4771 - src/voice/tts.test.ts > OpenAITTSProvider > has correct name # time=0.10ms
ok 4772 - src/voice/tts.test.ts > OpenAITTSProvider > synthesizes text to audio # time=6.26ms
ok 4773 - src/voice/tts.test.ts > OpenAITTSProvider > passes voice and speed options # time=0.52ms
ok 4774 - src/voice/tts.test.ts > OpenAITTSProvider > passes format option # time=0.75ms
ok 4775 - src/voice/tts.test.ts > OpenAITTSProvider > passes signal for cancellation # time=0.31ms
ok 4776 - src/voice/tts.test.ts > OpenAITTSProvider > wraps errors in VoiceSynthesisError # time=0.23ms
ok 4777 - src/voice/tts.test.ts > OpenAITTSProvider > fails loudly when pointed at xAI's undocumented OpenAI audio surface # time=0.75ms
ok 4778 - src/voice/tts.test.ts > OpenAITTSProvider > returns static voice list # time=0.24ms
ok 4779 - src/voice/tts.test.ts > OpenAITTSProvider > fails loudly for voice listing when pointed at xAI # time=0.14ms
ok 4780 - src/voice/tts.test.ts > EdgeTTSProvider > has correct name # time=0.06ms
ok 4781 - src/voice/tts.test.ts > EdgeTTSProvider > synthesizes text by streaming chunks # time=13.16ms
ok 4782 - src/voice/tts.test.ts > EdgeTTSProvider > uses custom voice # time=8.07ms
ok 4783 - src/voice/tts.test.ts > EdgeTTSProvider > wraps errors in VoiceSynthesisError # time=2.23ms
ok 4784 - src/voice/tts.test.ts > EdgeTTSProvider > lists voices from edge-tts module # time=5.90ms
ok 4785 - src/types/config-migration.test.ts > parseConfigVersion > parses valid version string # time=1.00ms
ok 4786 - src/types/config-migration.test.ts > parseConfigVersion > parses zero version # time=0.15ms
ok 4787 - src/types/config-migration.test.ts > parseConfigVersion > throws on invalid version string # time=0.15ms
ok 4788 - src/types/config-migration.test.ts > parseConfigVersion > throws on incomplete version # time=0.10ms
ok 4789 - src/types/config-migration.test.ts > parseConfigVersion > throws on negative version component # time=0.07ms
ok 4790 - src/types/config-migration.test.ts > parseConfigVersion > throws on non-integer version component # time=0.06ms
ok 4791 - src/types/config-migration.test.ts > configVersionToString > serializes version to string # time=0.13ms
ok 4792 - src/types/config-migration.test.ts > compareVersions > returns 0 for equal versions # time=0.07ms
ok 4793 - src/types/config-migration.test.ts > compareVersions > compares major versions # time=0.41ms
ok 4794 - src/types/config-migration.test.ts > compareVersions > compares minor versions when major is equal # time=0.08ms
ok 4795 - src/types/config-migration.test.ts > compareVersions > compares patch versions when major and minor are equal # time=0.08ms
ok 4796 - src/types/config-migration.test.ts > migrateConfig > migrates v0 to v1 and adds configVersion field # time=0.09ms
ok 4797 - src/types/config-migration.test.ts > migrateConfig > no-op when already at current version # time=0.05ms
ok 4798 - src/types/config-migration.test.ts > migrateConfig > throws when no migration path exists # time=0.30ms
ok 4799 - src/types/config-migration.test.ts > validateConfigStrict > rejects unknown key in strict mode # time=0.43ms
ok 4800 - src/types/config-migration.test.ts > validateConfigStrict > warns for unknown key in lenient mode # time=0.07ms
ok 4801 - src/types/config-migration.test.ts > validateConfigStrict > warns for deprecated key # time=0.06ms
ok 4802 - src/types/config-migration.test.ts > validateConfigStrict > migrates config from v0 to current # time=0.07ms
ok 4803 - src/types/config-migration.test.ts > validateConfigStrict > does not migrate config already at current version # time=0.14ms
ok 4804 - src/types/config-migration.test.ts > validateConfigStrict > validates nested known keys # time=0.10ms
ok 4805 - src/types/config-migration.test.ts > validateConfigStrict > rejects unknown nested keys in strict mode # time=0.06ms
ok 4806 - src/types/config-migration.test.ts > buildConfigSchemaSnapshot > produces deterministic hash for same version # time=0.30ms
ok 4807 - src/types/config-migration.test.ts > buildConfigSchemaSnapshot > keys are sorted # time=0.06ms
ok 4808 - src/types/config-migration.test.ts > buildConfigSchemaSnapshot > includes version and profile # time=0.06ms
ok 4809 - src/types/config-migration.test.ts > buildConfigSchemaSnapshot > hash is a valid hex string # time=0.10ms
ok 4810 - src/types/config-migration.test.ts > migration fixture round-trip > v0 config migrates and validates without errors # time=0.11ms
ok 4811 - src/types/config.test.ts > isKeypair > returns true for Keypair instances # time=131.80ms
ok 4812 - src/types/config.test.ts > isKeypair > returns false for Wallet interface objects # time=0.54ms
ok 4813 - src/types/config.test.ts > isKeypair > returns true for objects with secretKey property # time=0.37ms
ok 4814 - src/types/config.test.ts > AgentRuntimeConfig interface > allows minimal valid config # time=0.39ms
ok 4815 - src/types/config.test.ts > AgentRuntimeConfig interface > allows all optional fields # time=0.81ms
ok 4816 - src/types/config.test.ts > AgentRuntimeConfig interface > allows all log levels # time=0.40ms
ok 4817 - src/types/config.test.ts > AgentRuntimeConfig interface > allows Wallet interface as wallet # time=0.37ms
ok 4818 - src/types/errors.test.ts > RuntimeErrorCodes > has all expected error codes # time=1.01ms
ok 4819 - src/types/errors.test.ts > RuntimeErrorCodes > has exactly 97 error codes # time=0.42ms
ok 4820 - src/types/errors.test.ts > AnchorErrorCodes > has sequential codes (no gaps) # time=1.49ms
ok 4821 - src/types/errors.test.ts > AnchorErrorCodes > matches IDL error count # SKIP
ok 4822 - src/types/errors.test.ts > AnchorErrorCodes > matches IDL code range # SKIP
ok 4823 - src/types/errors.test.ts > AnchorErrorCodes > has exact name->code parity with IDL # SKIP
ok 4824 - src/types/errors.test.ts > AnchorErrorCodes > includes new private verification error codes # SKIP
ok 4825 - src/types/errors.test.ts > RuntimeError > has correct properties # time=0.11ms
ok 4826 - src/types/errors.test.ts > RuntimeError > is instanceof Error # time=0.07ms
ok 4827 - src/types/errors.test.ts > RuntimeError > has stack trace # time=2.17ms
ok 4828 - src/types/errors.test.ts > AgentNotRegisteredError > has correct message and code # time=0.14ms
ok 4829 - src/types/errors.test.ts > AgentNotRegisteredError > is instanceof RuntimeError # time=0.07ms
ok 4830 - src/types/errors.test.ts > AgentAlreadyRegisteredError > has correct message, code, and agentId # time=0.36ms
ok 4831 - src/types/errors.test.ts > AgentAlreadyRegisteredError > is instanceof RuntimeError # time=0.08ms
ok 4832 - src/types/errors.test.ts > ValidationError > has correct message and code # time=0.12ms
ok 4833 - src/types/errors.test.ts > RateLimitError > has correct properties # time=9.88ms
ok 4834 - src/types/errors.test.ts > InsufficientStakeError > has correct properties with bigint values # time=0.69ms
ok 4835 - src/types/errors.test.ts > InsufficientStakeError > handles large bigint values correctly # time=0.11ms
ok 4836 - src/types/errors.test.ts > ActiveTasksError > has correct properties # time=1.97ms
ok 4837 - src/types/errors.test.ts > ActiveTasksError > handles singular correctly # time=0.10ms
ok 4838 - src/types/errors.test.ts > PendingDisputeVotesError > has correct properties # time=0.10ms
ok 4839 - src/types/errors.test.ts > PendingDisputeVotesError > handles singular correctly # time=0.05ms
ok 4840 - src/types/errors.test.ts > RecentVoteActivityError > has correct properties # time=0.14ms
ok 4841 - src/types/errors.test.ts > isAnchorError > returns true for direct code property # time=0.08ms
ok 4842 - src/types/errors.test.ts > isAnchorError > returns false for wrong code # time=0.03ms
ok 4843 - src/types/errors.test.ts > isAnchorError > handles Anchor SDK errorCode format # time=0.04ms
ok 4844 - src/types/errors.test.ts > isAnchorError > handles nested error.error format # time=0.03ms
ok 4845 - src/types/errors.test.ts > isAnchorError > handles transaction logs # time=0.04ms
ok 4846 - src/types/errors.test.ts > isAnchorError > handles hex error code in message # time=0.03ms
ok 4847 - src/types/errors.test.ts > isAnchorError > handles decimal error code in message # time=0.03ms
ok 4848 - src/types/errors.test.ts > isAnchorError > returns false for null # time=0.03ms
ok 4849 - src/types/errors.test.ts > isAnchorError > returns false for undefined # time=0.03ms
ok 4850 - src/types/errors.test.ts > isAnchorError > returns false for non-object # time=0.04ms
ok 4851 - src/types/errors.test.ts > isAnchorError > returns false for empty object # time=0.03ms
ok 4852 - src/types/errors.test.ts > parseAnchorError > parses direct code property # time=0.13ms
ok 4853 - src/types/errors.test.ts > parseAnchorError > parses Anchor SDK errorCode format # time=0.06ms
ok 4854 - src/types/errors.test.ts > parseAnchorError > parses nested error.error format # time=1.34ms
ok 4855 - src/types/errors.test.ts > parseAnchorError > parses transaction logs # time=0.23ms
ok 4856 - src/types/errors.test.ts > parseAnchorError > parses hex error code in message # time=0.08ms
ok 4857 - src/types/errors.test.ts > parseAnchorError > parses decimal error code in message # time=0.09ms
ok 4858 - src/types/errors.test.ts > parseAnchorError > returns null for unknown error code # time=0.04ms
ok 4859 - src/types/errors.test.ts > parseAnchorError > returns null for code outside range # time=0.83ms
ok 4860 - src/types/errors.test.ts > parseAnchorError > returns null for null/undefined # time=0.09ms
ok 4861 - src/types/errors.test.ts > parseAnchorError > returns null for non-object # time=0.05ms
ok 4862 - src/types/errors.test.ts > parseAnchorError > returns correct message for all error codes # time=0.11ms
ok 4863 - src/types/errors.test.ts > getAnchorErrorName > returns correct name for valid code # time=0.06ms
ok 4864 - src/types/errors.test.ts > getAnchorErrorName > returns undefined for invalid code # time=0.06ms
ok 4865 - src/types/errors.test.ts > getAnchorErrorName > returns name for all IDL Anchor codes # SKIP
ok 4866 - src/types/errors.test.ts > getAnchorErrorMessage > returns correct message for valid code # time=0.05ms
ok 4867 - src/types/errors.test.ts > getAnchorErrorMessage > returns message for all IDL Anchor codes # SKIP
ok 4868 - src/types/errors.test.ts > isRuntimeError > returns true for RuntimeError instance # time=0.06ms
ok 4869 - src/types/errors.test.ts > isRuntimeError > returns true for subclasses # time=0.17ms
ok 4870 - src/types/errors.test.ts > isRuntimeError > returns false for regular Error # time=0.03ms
ok 4871 - src/types/errors.test.ts > isRuntimeError > returns false for non-errors # time=0.16ms
ok 4872 - src/types/errors.test.ts > isRuntimeError > provides type guard functionality # time=0.06ms
ok 4873 - src/types/errors.test.ts > Error inheritance chain > all specific errors extend RuntimeError # time=0.19ms
ok 4874 - src/types/errors.test.ts > Error inheritance chain > error names are distinct # time=0.09ms
ok 4875 - src/types/errors.test.ts > Type exports > RuntimeErrorCode is assignable from RuntimeErrorCodes values # time=0.03ms
ok 4876 - src/types/errors.test.ts > Type exports > AnchorErrorCode is assignable from AnchorErrorCodes values # time=0.03ms
ok 4877 - src/types/errors.test.ts > Type exports > AnchorErrorName is assignable from AnchorErrorCodes keys # time=0.03ms
ok 4878 - src/types/errors.test.ts > Type exports > ParsedAnchorError has correct shape # time=0.05ms
ok 4879 - src/types/errors.test.ts > validateByteLength > returns Uint8Array for valid input # time=0.11ms
ok 4880 - src/types/errors.test.ts > validateByteLength > throws ValidationError for wrong length # time=0.11ms
ok 4881 - src/types/errors.test.ts > validateNonZeroBytes > passes for non-zero bytes # time=0.29ms
ok 4882 - src/types/errors.test.ts > validateNonZeroBytes > throws ValidationError for all-zero bytes # time=0.05ms
ok 4883 - src/types/protocol.test.ts > MAX_MULTISIG_OWNERS > equals 5 # time=0.75ms
ok 4884 - src/types/protocol.test.ts > ProtocolConfig interface > accepts valid structure # time=1.52ms
ok 4885 - src/types/protocol.test.ts > parseProtocolConfig > success cases > parses valid mock data # time=0.88ms
ok 4886 - src/types/protocol.test.ts > parseProtocolConfig > success cases > correctly converts u64 fields to bigint # time=0.21ms
ok 4887 - src/types/protocol.test.ts > parseProtocolConfig > success cases > correctly converts i64 duration fields to number # time=2.53ms
ok 4888 - src/types/protocol.test.ts > parseProtocolConfig > success cases > parses legacy protocol config shape with compatibility defaults # time=0.51ms
ok 4889 - src/types/protocol.test.ts > parseProtocolConfig > success cases > correctly slices multisigOwners to actual length # time=0.69ms
ok 4890 - src/types/protocol.test.ts > parseProtocolConfig > success cases > handles empty multisig owners (length 0) # time=0.14ms
ok 4891 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws on null input # time=0.55ms
ok 4892 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws on undefined input # time=0.11ms
ok 4893 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws on empty object # time=0.13ms
ok 4894 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when authority is missing # time=0.11ms
ok 4895 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when authority is not a PublicKey # time=0.10ms
ok 4896 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when treasury is missing # time=0.09ms
ok 4897 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when disputeThreshold is not a number # time=0.12ms
ok 4898 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when protocolFeeBps is not a number # time=0.09ms
ok 4899 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when bump is not a number # time=0.16ms
ok 4900 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when multisigThreshold is not a number # time=0.09ms
ok 4901 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when multisigOwnersLen is not a number # time=0.07ms
ok 4902 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when BN fields are missing toNumber/toString # time=0.07ms
ok 4903 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when multisigOwners is not an array # time=0.07ms
ok 4904 - src/types/protocol.test.ts > parseProtocolConfig > error cases - missing required fields > throws when multisigOwners contains non-PublicKey elements # time=0.13ms
ok 4905 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > throws when disputeThreshold is 0 # time=0.11ms
ok 4906 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > throws when disputeThreshold exceeds 100 # time=0.10ms
ok 4907 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > throws when protocolFeeBps exceeds 10000 # time=0.11ms
ok 4908 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > allows protocolFeeBps at max (10000 = 100%) # time=0.06ms
ok 4909 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > throws when slashPercentage exceeds 100 # time=0.10ms
ok 4910 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > allows slashPercentage at boundary values (0 and 100) # time=0.08ms
ok 4911 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > throws when multisigOwnersLen exceeds MAX_MULTISIG_OWNERS # time=0.10ms
ok 4912 - src/types/protocol.test.ts > parseProtocolConfig > error cases - range validation > allows multisigOwnersLen at MAX_MULTISIG_OWNERS # time=0.14ms
ok 4913 - src/types/protocol.test.ts > parseProtocolConfig > edge cases > handles zero values for optional fields # time=0.10ms
ok 4914 - src/types/protocol.test.ts > parseProtocolConfig > edge cases > handles maximum u8 values # time=0.09ms
ok 4915 - src/types/protocol.test.ts > parseProtocolConfig > edge cases > handles minimum valid disputeThreshold (1) # time=0.05ms
ok 4916 - src/types/wallet.test.ts > keypairToWallet > returns wallet with correct publicKey # time=82.97ms
ok 4917 - src/types/wallet.test.ts > keypairToWallet > signTransaction signs legacy Transaction # time=3.32ms
ok 4918 - src/types/wallet.test.ts > keypairToWallet > signTransaction signs VersionedTransaction # time=2.44ms
ok 4919 - src/types/wallet.test.ts > keypairToWallet > signAllTransactions signs multiple transactions # time=3.34ms
ok 4920 - src/types/wallet.test.ts > keypairToWallet > implements Wallet interface # time=0.41ms
ok 4921 - src/types/wallet.test.ts > loadKeypairFromFile > loads valid keypair file # time=21.59ms
ok 4922 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for missing file # time=7.70ms
ok 4923 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for invalid JSON # time=5.48ms
ok 4924 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for wrong array size # time=1.65ms
ok 4925 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for invalid byte value # time=0.71ms
ok 4926 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for non-array JSON # time=1.59ms
ok 4927 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for negative byte value # time=0.60ms
ok 4928 - src/types/wallet.test.ts > loadKeypairFromFile > throws KeypairFileError for float byte value # time=0.57ms
ok 4929 - src/types/wallet.test.ts > loadKeypairFromFileSync > loads valid keypair file synchronously # time=13.16ms
ok 4930 - src/types/wallet.test.ts > loadKeypairFromFileSync > throws KeypairFileError for missing file # time=0.30ms
ok 4931 - src/types/wallet.test.ts > loadKeypairFromFileSync > throws KeypairFileError for invalid JSON # time=0.10ms
ok 4932 - src/types/wallet.test.ts > loadKeypairFromFileSync > behaves identically to async version # time=2.83ms
ok 4933 - src/types/wallet.test.ts > getDefaultKeypairPath > returns correct format # time=0.20ms
ok 4934 - src/types/wallet.test.ts > getDefaultKeypairPath > returns path under home directory # time=0.05ms
ok 4935 - src/types/wallet.test.ts > loadDefaultKeypair > attempts to load from default path # time=2.90ms
ok 4936 - src/types/wallet.test.ts > loadDefaultKeypair > uses the same path as getDefaultKeypairPath # time=1.55ms
ok 4937 - src/types/wallet.test.ts > KeypairFileError > has correct name and message # time=0.15ms
ok 4938 - src/types/wallet.test.ts > KeypairFileError > preserves cause error # time=0.05ms
ok 4939 - src/types/wallet.test.ts > KeypairFileError > is instanceof Error # time=0.06ms
ok 4940 - src/utils/delegated-contract-normalization.test.ts > delegated-contract-normalization > sanitizes delegated recall contracts without dropping extra fields # time=2.34ms
ok 4941 - src/utils/delegated-contract-normalization.test.ts > delegated-contract-normalization > normalizes contradictory raw-json literal-output contracts # time=1.08ms
ok 4942 - src/utils/delegated-contract-normalization.test.ts > delegated-contract-normalization > parses embedded json objects from mixed delegated output # time=0.17ms
ok 4943 - src/utils/delegated-contract-normalization.test.ts > delegated-contract-normalization > matches exact-output expectations with memorized-token placeholders # time=0.31ms
ok 4944 - src/utils/encoding.test.ts > generateAgentId > produces 32-byte Uint8Array # time=1.91ms
ok 4945 - src/utils/encoding.test.ts > generateAgentId > produces different results on each call # time=0.27ms
ok 4946 - src/utils/encoding.test.ts > generateAgentId > produces cryptographically random bytes # time=0.41ms
ok 4947 - src/utils/encoding.test.ts > hexToBytes > converts hex strings without prefix # time=0.50ms
ok 4948 - src/utils/encoding.test.ts > hexToBytes > converts hex strings with 0x prefix # time=0.11ms
ok 4949 - src/utils/encoding.test.ts > hexToBytes > handles lowercase hex # time=0.17ms
ok 4950 - src/utils/encoding.test.ts > hexToBytes > handles uppercase hex # time=0.11ms
ok 4951 - src/utils/encoding.test.ts > hexToBytes > handles mixed case hex # time=0.07ms
ok 4952 - src/utils/encoding.test.ts > hexToBytes > handles empty string # time=0.32ms
ok 4953 - src/utils/encoding.test.ts > hexToBytes > handles 0x prefix only # time=0.08ms
ok 4954 - src/utils/encoding.test.ts > hexToBytes > throws on odd-length hex string # time=0.40ms
ok 4955 - src/utils/encoding.test.ts > hexToBytes > throws on odd-length hex string with prefix # time=0.07ms
ok 4956 - src/utils/encoding.test.ts > hexToBytes > throws on invalid hex characters # time=0.16ms
ok 4957 - src/utils/encoding.test.ts > hexToBytes > handles full byte range # time=0.05ms
ok 4958 - src/utils/encoding.test.ts > bytesToHex > converts bytes to hex without prefix by default # time=0.04ms
ok 4959 - src/utils/encoding.test.ts > bytesToHex > converts bytes to hex with prefix when requested # time=0.03ms
ok 4960 - src/utils/encoding.test.ts > bytesToHex > pads single-digit bytes with leading zero # time=0.03ms
ok 4961 - src/utils/encoding.test.ts > bytesToHex > handles empty array # time=0.11ms
ok 4962 - src/utils/encoding.test.ts > bytesToHex > handles empty array with prefix # time=0.03ms
ok 4963 - src/utils/encoding.test.ts > bytesToHex > handles full byte range # time=0.03ms
ok 4964 - src/utils/encoding.test.ts > bytesToHex > produces lowercase hex # time=0.03ms
ok 4965 - src/utils/encoding.test.ts > hexToBytes and bytesToHex roundtrip > roundtrips correctly # time=0.03ms
ok 4966 - src/utils/encoding.test.ts > hexToBytes and bytesToHex roundtrip > roundtrips from bytes # time=0.06ms
ok 4967 - src/utils/encoding.test.ts > agentIdFromString > converts short string to 32-byte array (padded with zeros) # time=0.14ms
ok 4968 - src/utils/encoding.test.ts > agentIdFromString > handles exactly 32-byte string # time=0.05ms
ok 4969 - src/utils/encoding.test.ts > agentIdFromString > hashes strings longer than 32 bytes # time=0.81ms
ok 4970 - src/utils/encoding.test.ts > agentIdFromString > produces different IDs for different long strings with repeating patterns # time=0.25ms
ok 4971 - src/utils/encoding.test.ts > agentIdFromString > handles empty string # time=0.05ms
ok 4972 - src/utils/encoding.test.ts > agentIdFromString > handles unicode characters # time=0.03ms
ok 4973 - src/utils/encoding.test.ts > agentIdFromString > produces deterministic output # time=0.03ms
ok 4974 - src/utils/encoding.test.ts > agentIdFromString > produces different output for different strings # time=0.04ms
ok 4975 - src/utils/encoding.test.ts > agentIdToString > converts to full hex representation # time=0.05ms
ok 4976 - src/utils/encoding.test.ts > agentIdToString > produces 64-character hex string # time=0.09ms
ok 4977 - src/utils/encoding.test.ts > agentIdToString > handles all-zero ID # time=0.04ms
ok 4978 - src/utils/encoding.test.ts > agentIdToString > handles all-0xff ID # time=0.03ms
ok 4979 - src/utils/encoding.test.ts > agentIdToShortString > produces correct format with default chars # time=0.09ms
ok 4980 - src/utils/encoding.test.ts > agentIdToShortString > respects custom char count # time=0.05ms
ok 4981 - src/utils/encoding.test.ts > agentIdToShortString > handles 1-char count # time=0.05ms
ok 4982 - src/utils/encoding.test.ts > agentIdToShortString > handles large char count # time=0.05ms
ok 4983 - src/utils/encoding.test.ts > agentIdToShortString > clamps chars to max of 32 for 32-byte ID # time=0.04ms
ok 4984 - src/utils/encoding.test.ts > agentIdToShortString > clamps chars to minimum of 1 # time=0.05ms
ok 4985 - src/utils/encoding.test.ts > agentIdToShortString > handles negative chars by clamping to 1 # time=0.04ms
ok 4986 - src/utils/encoding.test.ts > agentIdToShortString > shows correct prefix and suffix # time=0.05ms
ok 4987 - src/utils/encoding.test.ts > agentIdsEqual > returns true for identical IDs # time=0.04ms
ok 4988 - src/utils/encoding.test.ts > agentIdsEqual > returns false for different IDs # time=0.03ms
ok 4989 - src/utils/encoding.test.ts > agentIdsEqual > returns false for different lengths # time=0.03ms
ok 4990 - src/utils/encoding.test.ts > agentIdsEqual > returns false when only one byte differs # time=0.03ms
ok 4991 - src/utils/encoding.test.ts > agentIdsEqual > handles empty arrays # time=0.12ms
ok 4992 - src/utils/encoding.test.ts > agentIdsEqual > works with generated IDs # time=0.04ms
ok 4993 - src/utils/encoding.test.ts > lamportsToSol > converts 1 SOL correctly # time=0.06ms
ok 4994 - src/utils/encoding.test.ts > lamportsToSol > converts 1.5 SOL correctly # time=0.04ms
ok 4995 - src/utils/encoding.test.ts > lamportsToSol > converts small amounts correctly # time=0.03ms
ok 4996 - src/utils/encoding.test.ts > lamportsToSol > converts zero correctly # time=0.03ms
ok 4997 - src/utils/encoding.test.ts > lamportsToSol > converts 1 lamport correctly # time=0.03ms
ok 4998 - src/utils/encoding.test.ts > lamportsToSol > removes trailing zeros # time=0.05ms
ok 4999 - src/utils/encoding.test.ts > lamportsToSol > handles large amounts # time=0.04ms
ok 5000 - src/utils/encoding.test.ts > lamportsToSol > handles fractional SOL amounts # time=0.03ms
ok 5001 - src/utils/encoding.test.ts > solToLamports > converts number input correctly # time=0.13ms
ok 5002 - src/utils/encoding.test.ts > solToLamports > converts string input correctly # time=0.06ms
ok 5003 - src/utils/encoding.test.ts > solToLamports > converts zero correctly # time=0.04ms
ok 5004 - src/utils/encoding.test.ts > solToLamports > handles very small amounts # time=0.03ms
ok 5005 - src/utils/encoding.test.ts > solToLamports > handles large amounts # time=0.04ms
ok 5006 - src/utils/encoding.test.ts > solToLamports > rounds correctly for precision edge cases # time=0.03ms
ok 5007 - src/utils/encoding.test.ts > solToLamports > throws on invalid string input # time=0.28ms
ok 5008 - src/utils/encoding.test.ts > solToLamports > throws on NaN input # time=0.08ms
ok 5009 - src/utils/encoding.test.ts > solToLamports > throws on Infinity input # time=0.11ms
ok 5010 - src/utils/encoding.test.ts > solToLamports > throws on negative number input # time=2.93ms
ok 5011 - src/utils/encoding.test.ts > solToLamports > throws on negative string input # time=0.12ms
ok 5012 - src/utils/encoding.test.ts > lamportsToSol and solToLamports roundtrip > roundtrips common values # time=0.10ms
ok 5013 - src/utils/keyed-async-queue.test.ts > KeyedAsyncQueue > serializes operations for the same key # time=55.24ms
ok 5014 - src/utils/keyed-async-queue.test.ts > KeyedAsyncQueue > allows operations on different keys to proceed independently # time=0.25ms
ok 5015 - src/utils/logger.test.ts > Logger > createLogger > should create a logger with default settings # time=4.22ms
ok 5016 - src/utils/logger.test.ts > Logger > createLogger > should use default minLevel of info # time=1.68ms
ok 5017 - src/utils/logger.test.ts > Logger > createLogger > should use default prefix of [AgenC Runtime] # time=1.27ms
ok 5018 - src/utils/logger.test.ts > Logger > createLogger > should accept custom minLevel # time=0.20ms
ok 5019 - src/utils/logger.test.ts > Logger > createLogger > should accept custom prefix # time=0.17ms
ok 5020 - src/utils/logger.test.ts > Logger > log level filtering > should filter logs below minimum level # time=0.21ms
ok 5021 - src/utils/logger.test.ts > Logger > log level filtering > should output all logs at minimum level and above # time=0.27ms
ok 5022 - src/utils/logger.test.ts > Logger > log level filtering > should only output error when minLevel is error # time=0.13ms
ok 5023 - src/utils/logger.test.ts > Logger > log message format > should include ISO timestamp # time=0.44ms
ok 5024 - src/utils/logger.test.ts > Logger > log message format > should include padded level (5 chars) # time=0.21ms
ok 5025 - src/utils/logger.test.ts > Logger > log message format > should include prefix # time=0.15ms
ok 5026 - src/utils/logger.test.ts > Logger > log message format > should include the message # time=0.08ms
ok 5027 - src/utils/logger.test.ts > Logger > log message format > should format message as: timestamp level prefix message # time=0.09ms
ok 5028 - src/utils/logger.test.ts > Logger > console method mapping > should use console.debug for debug level # time=0.10ms
ok 5029 - src/utils/logger.test.ts > Logger > console method mapping > should use console.info for info level # time=0.11ms
ok 5030 - src/utils/logger.test.ts > Logger > console method mapping > should use console.warn for warn level # time=0.18ms
ok 5031 - src/utils/logger.test.ts > Logger > console method mapping > should use console.error for error level # time=0.10ms
ok 5032 - src/utils/logger.test.ts > Logger > variadic arguments > should pass additional arguments to console methods # time=0.47ms
ok 5033 - src/utils/logger.test.ts > Logger > variadic arguments > should work with no additional arguments # time=0.11ms
ok 5034 - src/utils/logger.test.ts > Logger > variadic arguments > should pass arguments for all log levels # time=0.36ms
ok 5035 - src/utils/logger.test.ts > Logger > setLevel > should change filtering behavior dynamically # time=0.09ms
ok 5036 - src/utils/logger.test.ts > Logger > setLevel > should allow increasing log level # time=0.16ms
ok 5037 - src/utils/logger.test.ts > Logger > setLevel > should allow decreasing log level # time=0.07ms
ok 5038 - src/utils/logger.test.ts > Logger > silentLogger > should have all required methods # time=0.11ms
ok 5039 - src/utils/logger.test.ts > Logger > silentLogger > should not output anything for debug # time=0.07ms
ok 5040 - src/utils/logger.test.ts > Logger > silentLogger > should not output anything for info # time=0.06ms
ok 5041 - src/utils/logger.test.ts > Logger > silentLogger > should not output anything for warn # time=0.06ms
ok 5042 - src/utils/logger.test.ts > Logger > silentLogger > should not output anything for error # time=0.06ms
ok 5043 - src/utils/logger.test.ts > Logger > silentLogger > should accept setLevel without error # time=0.35ms
ok 5044 - src/utils/logger.test.ts > Logger > silentLogger > should accept variadic arguments without error # time=0.19ms
ok 5045 - src/utils/logger.test.ts > Logger > silentLogger > should implement Logger interface # time=0.06ms
ok 5046 - src/utils/logger.test.ts > Logger > type exports > should export LogLevel type # time=0.19ms
ok 5047 - src/utils/logger.test.ts > Logger > type exports > should export Logger interface # time=0.07ms
ok 5048 - src/utils/overescaped-text.test.ts > normalizeOverescapedToolText > decodes over-escaped multiline source blobs # time=1.07ms
ok 5049 - src/utils/overescaped-text.test.ts > normalizeOverescapedToolText > decodes over-escaped quote-only single-line text # time=0.17ms
ok 5050 - src/utils/overescaped-text.test.ts > normalizeOverescapedToolText > preserves legitimate in-code newline escapes # time=0.07ms
ok 5051 - src/utils/overescaped-text.test.ts > normalizeOverescapedToolText > decodes over-escaped json text without breaking inner escaped newlines # time=0.39ms
ok 5052 - src/utils/token.test.ts > isTokenTask > returns false for null # time=0.81ms
ok 5053 - src/utils/token.test.ts > isTokenTask > returns false for undefined # time=0.13ms
ok 5054 - src/utils/token.test.ts > isTokenTask > returns true for a PublicKey # time=0.06ms
ok 5055 - src/utils/token.test.ts > buildCompleteTaskTokenAccounts > returns all nulls for SOL task (null mint) # time=0.17ms
ok 5056 - src/utils/token.test.ts > buildCompleteTaskTokenAccounts > returns all nulls for SOL task (undefined mint) # time=0.13ms
ok 5057 - src/utils/token.test.ts > buildCompleteTaskTokenAccounts > returns correct ATAs for token task # time=4.50ms
ok 5058 - src/utils/token.test.ts > buildCompleteTaskTokenAccounts > escrow ATA uses allowOwnerOffCurve # time=1.52ms
ok 5059 - src/utils/token.test.ts > buildResolveDisputeTokenAccounts > returns all nulls for SOL task # time=0.14ms
ok 5060 - src/utils/token.test.ts > buildResolveDisputeTokenAccounts > returns correct ATAs for token task with worker # time=3.40ms
ok 5061 - src/utils/token.test.ts > buildResolveDisputeTokenAccounts > returns null workerTokenAccountAta when worker is null # time=0.89ms
ok 5062 - src/utils/token.test.ts > buildExpireDisputeTokenAccounts > returns all nulls for SOL task # time=0.15ms
ok 5063 - src/utils/token.test.ts > buildExpireDisputeTokenAccounts > does NOT include treasuryTokenAccount # time=0.87ms
ok 5064 - src/utils/token.test.ts > buildExpireDisputeTokenAccounts > returns correct ATAs for token task # time=1.56ms
ok 5065 - src/utils/token.test.ts > buildExpireDisputeTokenAccounts > returns null workerTokenAccountAta when worker is null # time=0.44ms
ok 5066 - src/utils/token.test.ts > buildApplyDisputeSlashTokenAccounts > returns all nulls for SOL task # time=0.09ms
ok 5067 - src/utils/token.test.ts > buildApplyDisputeSlashTokenAccounts > returns escrow + ATAs for token task # time=1.17ms
ok 5068 - src/utils/token.test.ts > buildCreateTaskTokenAccounts > returns all nulls for SOL task # time=0.09ms
ok 5069 - src/utils/token.test.ts > buildCreateTaskTokenAccounts > returns correct ATAs and programs for token task # time=1.06ms
ok 5070 - src/utils/token.test.ts > buildCreateTaskTokenAccounts > includes associatedTokenProgram (unlike other builders) # time=0.65ms
ok 5071 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > preserves repeated references in preview mode and only marks true cycles # time=1.93ms
ok 5072 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > keeps artifact sanitization aligned with preview-safe cycle handling # time=0.33ms
ok 5073 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > formats preview payloads as JSON with externalized binary summaries # time=0.42ms
ok 5074 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > summarizes large ANSI terminal captures instead of logging raw escape sequences # time=0.31ms
ok 5075 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > summarizes binary-like text dumps instead of logging replacement noise # time=0.10ms
ok 5076 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > summarizes multiline source text instead of logging escaped newline blobs # time=0.17ms
ok 5077 - src/utils/trace-payload-serialization.test.ts > trace-payload-serialization > strips ANSI from short inline snippets while preserving the readable text # time=0.12ms
ok 5078 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > returns an anchored ref path with sha256 fragment # time=5.51ms
ok 5079 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > round-trips a single payload through the JSONL line # time=0.85ms
ok 5080 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > preserves repeated array references and replaces true cycles # time=0.67ms
ok 5081 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > appends multiple events for the same traceId into one JSONL file # time=1.00ms
ok 5082 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > serializes 5 concurrent writes to the same traceId without interleaving # time=1.73ms
ok 5083 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > isolates distinct traceIds into separate JSONL files # time=7.62ms
ok 5084 - src/utils/trace-payload-store.test.ts > persistTracePayloadArtifact (per-traceId JSONL) > drains the per-traceId chain map after writes complete # time=0.39ms
ok 5085 - src/utils/validation.test.ts > validationResult > returns valid when no errors # time=1.73ms
ok 5086 - src/utils/validation.test.ts > validationResult > returns invalid when errors present # time=0.39ms
ok 5087 - src/utils/validation.test.ts > requireNonEmptyString > accepts a non-empty string # time=0.16ms
ok 5088 - src/utils/validation.test.ts > requireNonEmptyString > rejects empty string # time=0.17ms
ok 5089 - src/utils/validation.test.ts > requireNonEmptyString > rejects non-string # time=0.08ms
ok 5090 - src/utils/validation.test.ts > requireNonEmptyString > rejects undefined # time=0.13ms
ok 5091 - src/utils/validation.test.ts > requireFiniteNumber > accepts a finite number # time=0.96ms
ok 5092 - src/utils/validation.test.ts > requireFiniteNumber > rejects NaN # time=0.12ms
ok 5093 - src/utils/validation.test.ts > requireFiniteNumber > rejects Infinity # time=0.35ms
ok 5094 - src/utils/validation.test.ts > requireFiniteNumber > rejects non-number # time=0.16ms
ok 5095 - src/utils/validation.test.ts > requireOneOf > accepts allowed value # time=0.15ms
ok 5096 - src/utils/validation.test.ts > requireOneOf > rejects disallowed value # time=0.05ms
ok 5097 - src/utils/validation.test.ts > requireOneOf > rejects non-string # time=0.08ms
ok 5098 - src/utils/validation.test.ts > requireIntRange > accepts integer in range # time=0.07ms
ok 5099 - src/utils/validation.test.ts > requireIntRange > rejects below min # time=0.04ms
ok 5100 - src/utils/validation.test.ts > requireIntRange > rejects above max # time=0.05ms
ok 5101 - src/utils/validation.test.ts > requireIntRange > rejects float # time=0.05ms
ok 5102 - src/utils/validation.test.ts > requireIntRange > rejects non-number # time=0.13ms
ok 5103 - src/workflow/compiler.test.ts > GoalCompiler > compiles planner output into a valid workflow definition and dry-run estimate # time=29.19ms
ok 5104 - src/workflow/compiler.test.ts > GoalCompiler > parses required capabilities from symbolic names # time=0.33ms
ok 5105 - src/workflow/compiler.test.ts > GoalCompiler > rejects unknown capability names # time=0.70ms
ok 5106 - src/workflow/compiler.test.ts > GoalCompiler > enforces budget limits from compile request # time=0.30ms
ok 5107 - src/workflow/compiler.test.ts > GoalCompiler > treats budgetLamports=0 as an explicit budget constraint # time=0.24ms
ok 5108 - src/workflow/compiler.test.ts > GoalCompiler > rejects proof dependencies when explicitly disabled # time=0.15ms
ok 5109 - src/workflow/compiler.test.ts > GoalCompiler > parses constraint hash hex and counts private tasks in dry-run stats # time=0.34ms
ok 5110 - src/workflow/compiler.test.ts > GoalCompiler > normalizes confidence and emits warnings # time=0.31ms
ok 5111 - src/workflow/compiler.test.ts > GoalCompiler > generates and deduplicates task names when planner output is missing/duplicated # time=0.53ms
ok 5112 - src/workflow/compiler.test.ts > GoalCompiler > computes stable workflow plan hashes for equivalent definitions # time=0.30ms
ok 5113 - src/workflow/completion-progress.test.ts > completion-progress > derives reusable verification evidence without adding verifier-only requirements # time=5.26ms
ok 5114 - src/workflow/completion-progress.test.ts > completion-progress > merges resumable progress without silently upgrading partial work to completed # time=0.60ms
ok 5115 - src/workflow/completion-progress.test.ts > completion-progress > produces the same progress requirements for equivalent direct and planner implementation contracts # time=0.17ms
ok 5116 - src/workflow/completion-progress.test.ts > completion-progress > reuses progress across equivalent direct and planner contracts even when step metadata differs # time=0.47ms
ok 5117 - src/workflow/completion-progress.test.ts > completion-progress > drops prior verifier evidence when a new contract fingerprint targets a different task family # time=0.28ms
ok 5118 - src/workflow/completion-progress.test.ts > completion-progress > does not reuse verifier evidence when either snapshot is missing a contract fingerprint # time=0.20ms
ok 5119 - src/workflow/completion-progress.test.ts > completion-progress > keeps reusable evidence but does not preserve verifier-only carryover when a later snapshot blocks # time=0.17ms
ok 5120 - src/workflow/completion-progress.test.ts > completion-progress > tracks remaining request milestones separately from local verification requirements # time=0.28ms
ok 5121 - src/workflow/completion-progress.test.ts > completion-progress > downgrades strict workflow completion when required milestones remain # time=0.37ms
ok 5122 - src/workflow/completion-state.test.ts > completion-state > marks failed pipelines with completed work as partial # time=0.80ms
ok 5123 - src/workflow/completion-state.test.ts > completion-state > marks halted pipelines as blocked # time=0.13ms
ok 5124 - src/workflow/completion-state.test.ts > completion-state > marks partial progress honestly when execution stops after grounded work # time=0.14ms
ok 5125 - src/workflow/completion-state.test.ts > completion-state > marks missing behavior harness as partial when implementation progress exists # time=0.11ms
ok 5126 - src/workflow/completion-state.test.ts > completion-state > uses the same completion semantics for planner and direct implementation when verification is not required # time=0.09ms
ok 5127 - src/workflow/completion-state.test.ts > completion-state > returns needs_verification when an implementation turn still requires verifier confirmation # time=0.06ms
ok 5128 - src/workflow/completion-state.test.ts > completion-state > keeps behavior-required work completed when verification is skipped on a normal turn # time=0.10ms
ok 5129 - src/workflow/completion-state.test.ts > completion-state > keeps runtime-required work completed when verifier is skipped on a normal turn # time=0.12ms
ok 5130 - src/workflow/completion-state.test.ts > completion-state > keeps request-level multi-phase work completed when planner milestones remain advisory # time=0.53ms
ok 5131 - src/workflow/completion-state.test.ts > completion-state > does not downgrade a completed turn when verifier telemetry is red # time=0.08ms
ok 5132 - src/workflow/delegated-filesystem-scope.test.ts > buildCanonicalDelegatedFilesystemScope > canonicalizes alias placeholders only when a trusted host root is supplied # time=138.86ms
ok 5133 - src/workflow/delegated-filesystem-scope.test.ts > buildCanonicalDelegatedFilesystemScope > does not use inherited planner or host roots as structured fallback inputs # time=0.39ms
ok 5134 - src/workflow/delegated-filesystem-scope.test.ts > buildCanonicalDelegatedFilesystemScope > resolves required source artifacts to existing workspace casing # time=3.90ms
ok 5135 - src/workflow/effect-ledger.test.ts > EffectLedger > reuses a single effect record across attempts with the same idempotency key # time=3.38ms
ok 5136 - src/workflow/execution-kernel.test.ts > CanonicalExecutionKernel > allows parent fallback to satisfy downstream dependencies for read-only delegated review work # time=2.06ms
ok 5137 - src/workflow/feature-extractor.test.ts > extractWorkflowFeatureVector > extracts deterministic feature vectors independent of map insertion order # time=8.48ms
ok 5138 - src/workflow/feature-extractor.test.ts > extractWorkflowFeatureVector > ingests workflow telemetry metrics with workflow_id filtering # time=0.55ms
ok 5139 - src/workflow/feature-extractor.test.ts > extractWorkflowFeatureVector > supports team adapter workflows with role-aware metadata # time=1.51ms
ok 5140 - src/workflow/migrations.test.ts > delegated workspace migration compatibility > does not promote legacy planner cwd hints into live execution envelopes # time=1.16ms
ok 5141 - src/workflow/migrations.test.ts > delegated workspace migration compatibility > does not upgrade legacy checkpoint planner steps into structured execution envelopes # time=2.54ms
ok 5142 - src/workflow/migrations.test.ts > delegated workspace migration compatibility > marks migrated legacy execution envelopes as needing resume revalidation # time=1.61ms
ok 5143 - src/workflow/mutations.test.ts > generateWorkflowMutationCandidates > produces deterministic candidates for a fixed seed # time=8.66ms
ok 5144 - src/workflow/mutations.test.ts > generateWorkflowMutationCandidates > ensures all generated variants pass workflow validation # time=1.14ms
ok 5145 - src/workflow/mutations.test.ts > generateWorkflowMutationCandidates > covers the expected mutation operator families and enforces max candidate limit # time=6.43ms
ok 5146 - src/workflow/optimizer-types.test.ts > workflow optimizer objective contracts > builds default objective schema with safe weighted metrics # time=2.31ms
ok 5147 - src/workflow/optimizer-types.test.ts > workflow optimizer objective contracts > validates objective schema invariants # time=0.84ms
ok 5148 - src/workflow/optimizer-types.test.ts > workflow optimizer objective contracts > scores improved outcomes higher under default objective # time=0.19ms
ok 5149 - src/workflow/optimizer-types.test.ts > workflow feature schema parsing and migration > parses v1 feature vectors # time=0.50ms
ok 5150 - src/workflow/optimizer-types.test.ts > workflow feature schema parsing and migration > migrates legacy feature vectors with missing schemaVersion # time=0.13ms
ok 5151 - src/workflow/optimizer-types.test.ts > workflow feature schema parsing and migration > projects objective outcome from feature outputs # time=0.15ms
ok 5152 - src/workflow/optimizer.test.ts > WorkflowOptimizer > generates, scores, and selects deterministic workflow variants with audit metadata # time=9.81ms
ok 5153 - src/workflow/optimizer.test.ts > WorkflowOptimizer > ensures every candidate is validation-safe before selection # time=31.85ms
ok 5154 - src/workflow/optimizer.test.ts > WorkflowOptimizer > returns baseline-only plan when optimizer feature flag is disabled # time=0.55ms
ok 5155 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects empty task array # time=1.25ms
ok 5156 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects duplicate task names # time=0.22ms
ok 5157 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects empty task name # time=0.11ms
ok 5158 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects whitespace-only task name # time=0.15ms
ok 5159 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects edge with unknown "from" reference # time=0.11ms
ok 5160 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects edge with unknown "to" reference # time=0.09ms
ok 5161 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects self-loop # time=0.16ms
ok 5162 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects multi-parent node # time=0.17ms
ok 5163 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects cycle (A -> B -> A) # time=0.45ms
ok 5164 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects dependency type None (0) # time=0.13ms
ok 5165 - src/workflow/orchestrator.test.ts > validateWorkflow > rejects invalid dependency type (99) # time=0.15ms
ok 5166 - src/workflow/orchestrator.test.ts > validateWorkflow > accepts valid linear chain # time=0.09ms
ok 5167 - src/workflow/orchestrator.test.ts > validateWorkflow > accepts valid tree (one parent branches to two children) # time=0.07ms
ok 5168 - src/workflow/orchestrator.test.ts > validateWorkflow > accepts single task with no edges # time=0.15ms
ok 5169 - src/workflow/orchestrator.test.ts > validateWorkflow > accepts forest (multiple disconnected roots) # time=0.07ms
ok 5170 - src/workflow/orchestrator.test.ts > topologicalSort > returns single task # time=0.31ms
ok 5171 - src/workflow/orchestrator.test.ts > topologicalSort > returns linear chain in order # time=6.15ms
ok 5172 - src/workflow/orchestrator.test.ts > topologicalSort > places parent before children in tree # time=0.46ms
ok 5173 - src/workflow/orchestrator.test.ts > topologicalSort > handles forest with all roots # time=0.37ms
ok 5174 - src/workflow/orchestrator.test.ts > topologicalSort > handles diamond-ish tree (deep chain) # time=0.11ms
ok 5175 - src/workflow/orchestrator.test.ts > Workflow error classes > WorkflowValidationError has correct code # time=0.08ms
ok 5176 - src/workflow/orchestrator.test.ts > Workflow error classes > WorkflowSubmissionError includes node name # time=0.09ms
ok 5177 - src/workflow/orchestrator.test.ts > Workflow error classes > WorkflowStateError has correct code # time=0.06ms
ok 5178 - src/workflow/orchestrator.test.ts > DAGSubmitter > submits root tasks via createTask # time=38.13ms
ok 5179 - src/workflow/orchestrator.test.ts > DAGSubmitter > submits dependent tasks via createDependentTask # time=2.78ms
ok 5180 - src/workflow/orchestrator.test.ts > DAGSubmitter > sets taskId and taskPda on created nodes # time=1.49ms
ok 5181 - src/workflow/orchestrator.test.ts > DAGSubmitter > cascade-cancels descendants on failure when cancelOnFailure is true # time=2.09ms
ok 5182 - src/workflow/orchestrator.test.ts > DAGSubmitter > does not cascade-cancel when cancelOnFailure is false # time=1.83ms
ok 5183 - src/workflow/orchestrator.test.ts > DAGSubmitter > retries on transient errors # time=7.66ms
ok 5184 - src/workflow/orchestrator.test.ts > DAGSubmitter > passes correct accounts to createTask # time=2.22ms
ok 5185 - src/workflow/orchestrator.test.ts > DAGSubmitter > submits tree with multiple children # time=1.93ms
ok 5186 - src/workflow/orchestrator.test.ts > DAGSubmitter > applies workflow defaultRewardMint when node rewardMint is omitted # time=1.68ms
ok 5187 - src/workflow/orchestrator.test.ts > DAGSubmitter > prefers node rewardMint over workflow defaultRewardMint # time=1.49ms
ok 5188 - src/workflow/orchestrator.test.ts > DAGMonitor > detects terminal state when all nodes completed # time=0.40ms
ok 5189 - src/workflow/orchestrator.test.ts > DAGMonitor > registers event listeners on startMonitoring # time=0.84ms
ok 5190 - src/workflow/orchestrator.test.ts > DAGMonitor > throws when waitForTerminal on unknown workflow # time=0.46ms
ok 5191 - src/workflow/orchestrator.test.ts > DAGMonitor > resolves immediately if already terminal # time=0.60ms
ok 5192 - src/workflow/orchestrator.test.ts > DAGOrchestrator > validate() delegates to validateWorkflow # time=43.45ms
ok 5193 - src/workflow/orchestrator.test.ts > DAGOrchestrator > submit() creates tasks and returns Running state # time=2.67ms
ok 5194 - src/workflow/orchestrator.test.ts > DAGOrchestrator > submit() fires onNodeCreated callbacks # time=8.44ms
ok 5195 - src/workflow/orchestrator.test.ts > DAGOrchestrator > submit() rejects duplicate workflow ID # time=1.10ms
ok 5196 - src/workflow/orchestrator.test.ts > DAGOrchestrator > getState() returns null for unknown workflow # time=0.52ms
ok 5197 - src/workflow/orchestrator.test.ts > DAGOrchestrator > getState() returns submitted workflow # time=1.02ms
ok 5198 - src/workflow/orchestrator.test.ts > DAGOrchestrator > getStats() returns null for unknown workflow # time=0.54ms
ok 5199 - src/workflow/orchestrator.test.ts > DAGOrchestrator > getStats() returns correct counts # time=1.60ms
ok 5200 - src/workflow/orchestrator.test.ts > DAGOrchestrator > waitForCompletion() rejects for unknown workflow # time=22.36ms
ok 5201 - src/workflow/orchestrator.test.ts > DAGOrchestrator > shutdown() does not throw # time=0.74ms
ok 5202 - src/workflow/orchestrator.test.ts > DAGOrchestrator > submit() marks workflow Failed on submission error # time=3.48ms
ok 5203 - src/workflow/orchestrator.test.ts > DAGOrchestrator > handles Proof dependency type correctly # time=4.65ms
ok 5204 - src/workflow/orchestrator.test.ts > DAGOrchestrator > handles all three dependency types in one workflow # time=2.06ms
ok 5205 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > executes all steps and returns completed # time=2.34ms
ok 5206 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > uses per-execution tool handler override when provided # time=0.89ms
ok 5207 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > emits step execution events for deterministic observability # time=0.71ms
ok 5208 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > returns failed on tool error with abort policy # time=0.41ms
ok 5209 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > returns failed when a resolved tool result reports a timeout # time=0.29ms
ok 5210 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > emits raw result and semantic error when a deterministic step fails # time=0.25ms
ok 5211 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > skips failed step with skip policy # time=0.50ms
ok 5212 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > retries on failure with retry policy # time=0.30ms
ok 5213 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > fails after exhausting retries # time=0.63ms
ok 5214 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > rejects concurrent execution of same pipeline # time=15.14ms
ok 5215 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > halts when step requires approval and rule matches # time=0.57ms
ok 5216 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > continues when requiresApproval but no matching rule # time=0.20ms
ok 5217 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > saves checkpoints during execution # time=0.38ms
ok 5218 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > starts from a given step index # time=0.21ms
ok 5219 - src/workflow/pipeline.test.ts > PipelineExecutor > execute() > tracks progress when progressTracker is provided # time=0.70ms
ok 5220 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > resumes from checkpoint # time=0.45ms
ok 5221 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > migrates legacy unversioned checkpoints during listing and rewrites them with schema versions # time=3.76ms
ok 5222 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > rejects migrated checkpoints before resume and persists revalidation provenance # time=1.66ms
ok 5223 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > fails loudly when a persisted checkpoint uses an unsupported schema version # time=0.46ms
ok 5224 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > throws WorkflowStateError when no checkpoint found # time=0.19ms
ok 5225 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > uses per-execution tool handler override during resume # time=0.45ms
ok 5226 - src/workflow/pipeline.test.ts > PipelineExecutor > resume() > emits resumed lifecycle state when continuing from a checkpoint # time=0.35ms
ok 5227 - src/workflow/pipeline.test.ts > PipelineExecutor > listActive() > returns empty when no pipelines active # time=0.14ms
ok 5228 - src/workflow/pipeline.test.ts > PipelineExecutor > remove() > removes checkpoint and clears from active set # time=12.43ms
ok 5229 - src/workflow/rollout.test.ts > WorkflowCanaryRollout > routes deterministically by request key while canarying # time=2.15ms
ok 5230 - src/workflow/rollout.test.ts > WorkflowCanaryRollout > automatically rolls back on stop-loss regression and keeps rollback idempotent # time=1.25ms
ok 5231 - src/workflow/rollout.test.ts > WorkflowCanaryRollout > uses policy hooks to deny promotion and trigger rollback # time=0.85ms
ok 5232 - src/workflow/validation.test.ts > topologicalSort determinism > returns identical order across repeated invocations # time=9.29ms
ok 5233 - src/workflow/validation.test.ts > topologicalSort determinism > orders same-depth siblings lexicographically # time=0.37ms
ok 5234 - src/workflow/validation.test.ts > topologicalSort determinism > produces same result for equivalent definitions with different array ordering # time=0.12ms
ok 5235 - src/workflow/validation.test.ts > topologicalSort determinism > computes a stable workflow plan hash for the same definition # time=0.66ms
ok 5236 - src/workflow/validation.test.ts > topologicalSort determinism > handles a single-node workflow deterministically # time=0.08ms
ok 5237 - src/channels/discord/plugin.test.ts > DiscordChannel > stores config and has name "discord" # time=1.03ms
ok 5238 - src/channels/discord/plugin.test.ts > DiscordChannel > start() logs in with bot token # time=5.16ms
ok 5239 - src/channels/discord/plugin.test.ts > DiscordChannel > stop() destroys client and sets healthy to false # time=0.52ms
ok 5240 - src/channels/discord/plugin.test.ts > DiscordChannel > DM message produces session ID discord:dm:<userId> # time=0.46ms
ok 5241 - src/channels/discord/plugin.test.ts > DiscordChannel > server message produces correct session ID # time=0.28ms
ok 5242 - src/channels/discord/plugin.test.ts > DiscordChannel > thread message produces scope "thread" and correct session ID # time=0.19ms
ok 5243 - src/channels/discord/plugin.test.ts > DiscordChannel > rejects messages from non-allowed guilds # time=0.23ms
ok 5244 - src/channels/discord/plugin.test.ts > DiscordChannel > rejects messages from non-allowed channels # time=0.12ms
ok 5245 - src/channels/discord/plugin.test.ts > DiscordChannel > send() resolves channel and sends content # time=0.68ms
ok 5246 - src/channels/discord/plugin.test.ts > DiscordChannel > send() splits long messages at line boundaries # time=0.30ms
ok 5247 - src/channels/discord/plugin.test.ts > DiscordChannel > forwards reaction events with metadata # time=0.29ms
ok 5248 - src/channels/discord/plugin.test.ts > DiscordChannel > reaction senderName falls back to "unknown" # time=0.15ms
ok 5249 - src/channels/discord/plugin.test.ts > DiscordChannel > normalizes image attachments correctly # time=0.33ms
ok 5250 - src/channels/discord/plugin.test.ts > DiscordChannel > isHealthy() reflects connection state # time=0.13ms
ok 5251 - src/channels/discord/plugin.test.ts > DiscordChannel > blocks DM messages when allowDMs is false # time=0.11ms
ok 5252 - src/channels/discord/plugin.test.ts > DiscordChannel > registers slash commands on ready event # time=1.03ms
ok 5253 - src/channels/discord/plugin.test.ts > DiscordChannel > filters oversized attachments # time=0.21ms
ok 5254 - src/channels/discord/plugin.test.ts > DiscordChannel > handles /ask interaction by forwarding input as message # time=0.28ms
ok 5255 - src/channels/discord/plugin.test.ts > DiscordChannel > handles /status interaction by forwarding as /status command # time=0.24ms
ok 5256 - src/channels/discord/plugin.test.ts > DiscordChannel > stop() clears session channel mappings # time=0.28ms
ok 5257 - src/channels/discord/plugin.test.ts > DiscordChannel > cleans up client if login fails # time=0.63ms
ok 5258 - src/channels/discord/plugin.test.ts > DiscordChannel > handles client error events # time=0.29ms
ok 5259 - src/channels/discord/plugin.test.ts > DiscordChannel > shardDisconnect sets healthy to false # time=0.17ms
ok 5260 - src/channels/discord/plugin.test.ts > DiscordChannel > send() warns when client is not connected # time=0.21ms
ok 5261 - src/channels/discord/plugin.test.ts > DiscordChannel > send() catches channel.send() failure and logs error # time=0.24ms
ok 5262 - src/channels/discord/plugin.test.ts > DiscordChannel > logs errors from event handlers instead of swallowing # time=54.77ms
ok 5263 - src/channels/discord/plugin.test.ts > DiscordChannel > falls back to global command registration when guild cache empty # time=0.69ms
ok 5264 - src/channels/matrix/plugin.test.ts > MatrixChannel > stores config and has name "matrix" # time=0.94ms
ok 5265 - src/channels/matrix/plugin.test.ts > MatrixChannel > start() creates client and starts sync # time=2.01ms
ok 5266 - src/channels/matrix/plugin.test.ts > MatrixChannel > sets healthy when sync state is PREPARED # time=0.33ms
ok 5267 - src/channels/matrix/plugin.test.ts > MatrixChannel > sets healthy when sync state is SYNCING # time=0.34ms
ok 5268 - src/channels/matrix/plugin.test.ts > MatrixChannel > sets unhealthy when sync state is ERROR # time=0.19ms
ok 5269 - src/channels/matrix/plugin.test.ts > MatrixChannel > stop() stops client and sets healthy to false # time=0.20ms
ok 5270 - src/channels/matrix/plugin.test.ts > MatrixChannel > room message produces correct session ID # time=0.53ms
ok 5271 - src/channels/matrix/plugin.test.ts > MatrixChannel > detects DM rooms via member count <= 2 # time=0.14ms
ok 5272 - src/channels/matrix/plugin.test.ts > MatrixChannel > skips messages from the bot itself # time=0.44ms
ok 5273 - src/channels/matrix/plugin.test.ts > MatrixChannel > skips non-message events # time=0.24ms
ok 5274 - src/channels/matrix/plugin.test.ts > MatrixChannel > rejects messages from non-allowed rooms # time=0.22ms
ok 5275 - src/channels/matrix/plugin.test.ts > MatrixChannel > allows messages from allowed rooms # time=0.17ms
ok 5276 - src/channels/matrix/plugin.test.ts > MatrixChannel > send() sends text to the correct room # time=0.27ms
ok 5277 - src/channels/matrix/plugin.test.ts > MatrixChannel > send() warns when client is not connected # time=0.59ms
ok 5278 - src/channels/matrix/plugin.test.ts > MatrixChannel > send() warns when room cannot be resolved from session # time=0.17ms
ok 5279 - src/channels/matrix/plugin.test.ts > MatrixChannel > auto-joins room on invite when autoJoin is enabled # time=0.16ms
ok 5280 - src/channels/matrix/plugin.test.ts > MatrixChannel > ignores non-invite membership events # time=0.14ms
ok 5281 - src/channels/matrix/plugin.test.ts > MatrixChannel > ignores membership events for other users # time=0.09ms
ok 5282 - src/channels/matrix/plugin.test.ts > MatrixChannel > does not register membership handler when autoJoin is disabled # time=0.09ms
ok 5283 - src/channels/matrix/plugin.test.ts > MatrixChannel > logs E2EE warning when enableE2ee is set # time=4.36ms
ok 5284 - src/channels/matrix/plugin.test.ts > MatrixChannel > normalizes image attachments from m.image events # time=0.64ms
ok 5285 - src/channels/matrix/plugin.test.ts > MatrixChannel > cleans up if startClient() fails # time=1.46ms
ok 5286 - src/channels/matrix/plugin.test.ts > MatrixChannel > send() catches sendTextMessage failure and logs error # time=0.41ms
ok 5287 - src/channels/matrix/plugin.test.ts > MatrixChannel > includes Matrix-specific metadata in gateway message # time=0.23ms
ok 5288 - src/channels/matrix/plugin.test.ts > MatrixChannel > isHealthy() returns false before start # time=0.07ms
ok 5289 - src/channels/matrix/plugin.test.ts > MatrixChannel > logs errors from timeline handler instead of crashing # time=67.57ms
ok 5290 - src/channels/signal/plugin.test.ts > SignalChannel > stores config and has name "signal" # time=0.92ms
ok 5291 - src/channels/signal/plugin.test.ts > SignalChannel > isHealthy() returns false before start # time=0.19ms
ok 5292 - src/channels/signal/plugin.test.ts > SignalChannel > start() validates signal-cli binary exists # time=0.86ms
ok 5293 - src/channels/signal/plugin.test.ts > SignalChannel > start() sets healthy to true after spawning # time=0.47ms
ok 5294 - src/channels/signal/plugin.test.ts > SignalChannel > incoming message produces correct session ID # time=0.81ms
ok 5295 - src/channels/signal/plugin.test.ts > SignalChannel > group message produces scope "group" # time=0.27ms
ok 5296 - src/channels/signal/plugin.test.ts > SignalChannel > rejects messages from non-allowed numbers # time=21.80ms
ok 5297 - src/channels/signal/plugin.test.ts > SignalChannel > allows messages from allowed numbers # time=1.92ms
ok 5298 - src/channels/signal/plugin.test.ts > SignalChannel > send() writes JSON-RPC message to stdin # time=4.32ms
ok 5299 - src/channels/signal/plugin.test.ts > SignalChannel > send() warns when process is not running # time=0.93ms
ok 5300 - src/channels/signal/plugin.test.ts > SignalChannel > send() warns when phone cannot be extracted from session # time=0.25ms
ok 5301 - src/channels/signal/plugin.test.ts > SignalChannel > stop() terminates the process and sets healthy to false # time=10.94ms
ok 5302 - src/channels/signal/plugin.test.ts > SignalChannel > process exit sets healthy to false # time=0.32ms
ok 5303 - src/channels/signal/plugin.test.ts > SignalChannel > handles non-JSON stdout lines gracefully # time=0.25ms
ok 5304 - src/channels/signal/plugin.test.ts > SignalChannel > logs stderr output as warnings # time=0.15ms
ok 5305 - src/channels/signal/plugin.test.ts > SignalChannel > ignores messages without dataMessage # time=21.63ms
ok 5306 - src/channels/signal/plugin.test.ts > SignalChannel > includes Signal-specific metadata in gateway message # time=0.48ms
ok 5307 - src/channels/signal/plugin.test.ts > SignalChannel > logs errors from message handler instead of crashing # time=53.36ms
ok 5308 - src/channels/signal/plugin.test.ts > SignalChannel > handles process error events # time=0.86ms
ok 5309 - src/channels/telegram/plugin.test.ts > TelegramChannel > initialize() extracts and merges config from context.config # time=3.87ms
ok 5310 - src/channels/telegram/plugin.test.ts > TelegramChannel > start() in polling mode begins update polling # time=1.93ms
ok 5311 - src/channels/telegram/plugin.test.ts > TelegramChannel > start() in webhook mode calls setWebhook with correct URL # time=0.53ms
ok 5312 - src/channels/telegram/plugin.test.ts > TelegramChannel > stop() stops polling, clears timer, clears maps # time=1.50ms
ok 5313 - src/channels/telegram/plugin.test.ts > TelegramChannel > inbound text creates correct GatewayMessage with senderName, sessionId, scope # time=1.01ms
ok 5314 - src/channels/telegram/plugin.test.ts > TelegramChannel > inbound voice → audio attachment # time=1.18ms
ok 5315 - src/channels/telegram/plugin.test.ts > TelegramChannel > inbound photo → image attachment (uses largest size) # time=0.55ms
ok 5316 - src/channels/telegram/plugin.test.ts > TelegramChannel > inbound document → file attachment with mimeType and filename # time=0.58ms
ok 5317 - src/channels/telegram/plugin.test.ts > TelegramChannel > allowed users filter rejects unauthorized user # time=0.95ms
ok 5318 - src/channels/telegram/plugin.test.ts > TelegramChannel > empty/undefined allowedUsers allows all # time=0.54ms
ok 5319 - src/channels/telegram/plugin.test.ts > TelegramChannel > send() delivers text to correct chatId # time=0.67ms
ok 5320 - src/channels/telegram/plugin.test.ts > TelegramChannel > send() with image attachment calls sendPhoto # time=1.14ms
ok 5321 - src/channels/telegram/plugin.test.ts > TelegramChannel > rate limiting: rapid sends are rate-limited # time=1.42ms
ok 5322 - src/channels/telegram/plugin.test.ts > TelegramChannel > isHealthy() returns false after getUpdates error # time=0.64ms
ok 5323 - src/channels/telegram/plugin.test.ts > TelegramChannel > message starting with / forwarded via onMessage as-is # time=0.45ms
ok 5324 - src/channels/telegram/plugin.test.ts > TelegramChannel > session ID is deterministic via deriveSessionId with per-channel-peer scope # time=0.39ms
ok 5325 - src/channels/telegram/plugin.test.ts > TelegramChannel > maxAttachmentBytes enforcement: oversized file is skipped # time=1.57ms
ok 5326 - src/channels/telegram/plugin.test.ts > TelegramChannel > maxAttachmentBytes enforcement: file within limit passes through # time=0.37ms
ok 5327 - src/channels/telegram/plugin.test.ts > TelegramChannel > send() with audio attachment calls sendVoice # time=0.25ms
ok 5328 - src/channels/telegram/plugin.test.ts > TelegramChannel > send() with content and attachments sends text then attachment # time=1054.55ms
ok 5329 - src/channels/telegram/plugin.test.ts > TelegramChannel > initialize() throws on missing botToken # time=0.37ms
ok 5330 - src/channels/telegram/plugin.test.ts > TelegramChannel > send() propagates Telegram API errors # time=0.73ms
ok 5331 - src/channels/telegram/plugin.test.ts > TelegramChannel > registerWebhooks > registers POST /update and GET /verify routes # time=0.75ms
ok 5332 - src/channels/telegram/plugin.test.ts > TelegramChannel > registerWebhooks > POST /update handler processes update and delivers to gateway # time=0.46ms
ok 5333 - src/channels/telegram/plugin.test.ts > TelegramChannel > registerWebhooks > POST /update handler rejects invalid secret token # time=0.47ms
ok 5334 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > stores config and has name "whatsapp" # time=1.21ms
ok 5335 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > isHealthy() returns false before start # time=0.18ms
ok 5336 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys start() wires event handlers # time=5.83ms
ok 5337 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys sets healthy when connection opens # time=0.34ms
ok 5338 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys sets unhealthy when connection closes # time=0.34ms
ok 5339 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys message produces correct session ID # time=0.77ms
ok 5340 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys skips own messages # time=10.95ms
ok 5341 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys rejects messages from non-allowed numbers # time=11.04ms
ok 5342 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys allows messages from allowed numbers # time=0.61ms
ok 5343 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys send() sends message via socket # time=0.84ms
ok 5344 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > stop() ends socket and sets healthy to false # time=0.25ms
ok 5345 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys normalizes image attachments # time=0.41ms
ok 5346 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys handles extendedTextMessage # time=0.19ms
ok 5347 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > send() warns when session cannot be resolved # time=0.64ms
ok 5348 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys logs errors from message handler # time=52.53ms
ok 5349 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api start() sets healthy immediately # time=0.29ms
ok 5350 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api throws when phoneNumberId is missing # time=0.68ms
ok 5351 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api webhook verification succeeds with correct token # time=0.21ms
ok 5352 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api webhook rejects incorrect verify token # time=0.11ms
ok 5353 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api processes incoming webhook messages # time=0.23ms
ok 5354 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api send() calls the WhatsApp API # time=7.63ms
ok 5355 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > business-api filters messages by allowedNumbers # time=0.33ms
ok 5356 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys mode does not register webhooks # time=0.20ms
ok 5357 - src/channels/whatsapp/plugin.test.ts > WhatsAppChannel > baileys skips messages without message content # time=12.09ms
ok 5358 - src/channels/webchat/handlers.test.ts > handleTasksList > lists tasks even when signer enrichment is unavailable # time=2.77ms
ok 5359 - src/channels/webchat/handlers.test.ts > handleTasksList > enriches the task list with signer ownership metadata when the signer agent is available # time=15.47ms
ok 5360 - src/channels/webchat/operator-events.test.ts > operator event normalization > unwraps wrapped planner events # time=6.53ms
ok 5361 - src/channels/webchat/operator-events.test.ts > operator event normalization > normalizes direct and wrapped subagent events to the same semantic shape # time=0.73ms
ok 5362 - src/channels/webchat/operator-events.test.ts > operator event normalization > keeps tool events intact # time=0.16ms
ok 5363 - src/channels/webchat/operator-events.test.ts > operator event normalization > uses parent session ids for delegated events # time=0.32ms
ok 5364 - src/channels/webchat/operator-events.test.ts > operator event normalization > treats chat.usage as a session-scoped event when a session id is present # time=0.15ms
ok 5365 - src/channels/webchat/operator-events.test.ts > operator event normalization > does not ignore shared session command results during bootstrap # time=0.12ms
ok 5366 - src/channels/webchat/operator-events.test.ts > operator event normalization > tolerates wrapped events without eventType # time=0.15ms
ok 5367 - src/channels/webchat/operator-events.test.ts > operator event normalization > tolerates wrapped events with non-object payloads # time=0.09ms
ok 5368 - src/channels/webchat/operator-events.test.ts > operator event normalization > tolerates wrapped events missing data # time=0.33ms
ok 5369 - src/channels/webchat/operator-events.test.ts > operator event normalization > projects semantic surface-event families for control-plane and lifecycle messages # time=3.55ms
ok 5370 - src/channels/webchat/operator-events.test.ts > operator event normalization > classifies marketplace and task events into the market family # time=2.21ms
ok 5371 - src/channels/webchat/operator-events.test.ts > operator event normalization > preserves top-level error strings on normalized messages and surface events # time=1.11ms
ok 5372 - src/channels/webchat/plugin.test.ts > WebChatChannel > session command bus > returns structured command results when a handler calls replyResult # time=55.51ms
ok 5373 - src/channels/webchat/plugin.test.ts > WebChatChannel > session command bus > rebinds a stale implicit session before executing commands # time=52.62ms
ok 5374 - src/channels/webchat/plugin.test.ts > WebChatChannel > session command bus > builds the command catalog with session policy scope and effective profile coercion # time=4.93ms
ok 5375 - src/channels/webchat/plugin.test.ts > WebChatChannel > lifecycle > should report name as "webchat" # time=0.19ms
ok 5376 - src/channels/webchat/plugin.test.ts > WebChatChannel > lifecycle > should be healthy after start # time=0.15ms
ok 5377 - src/channels/webchat/plugin.test.ts > WebChatChannel > lifecycle > should not be healthy after stop # time=0.14ms
ok 5378 - src/channels/webchat/plugin.test.ts > WebChatChannel > social.message bridge > pushes peer messages to active sessions without polluting chat history # time=52.48ms
ok 5379 - src/channels/webchat/plugin.test.ts > WebChatChannel > social.message bridge > logs outbound social.message frames # time=0.68ms
ok 5380 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should deliver chat message to gateway pipeline # time=0.55ms
ok 5381 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > includes a usage snapshot in the session payload when available # time=0.21ms
ok 5382 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should forward and persist policy context for the session # time=152.68ms
ok 5383 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should reject empty content # time=0.26ms
ok 5384 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > accepts inline base64 attachments on chat.message # time=0.50ms
ok 5385 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should reject missing content # time=0.09ms
ok 5386 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should create consistent session for same client # time=0.13ms
ok 5387 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should create different sessions for different clients # time=0.16ms
ok 5388 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should dedupe replayed chat.message by request id # time=0.14ms
ok 5389 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should not dedupe the same request id across different durable owners # time=3.14ms
ok 5390 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should dedupe the same request id across reconnects for the same durable owner # time=3.06ms
ok 5391 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.message > should not reuse the same first session ID after channel restart # time=0.24ms
ok 5392 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.new > should create a fresh session for the same client # time=0.27ms
ok 5393 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.new > should reset backend context for the previous session # time=0.23ms
ok 5394 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.cancel > should report cancelled=true when an in-flight execution is aborted # time=0.29ms
ok 5395 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.cancel > should report cancelled=false when there is nothing active to abort # time=0.20ms
ok 5396 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.cancel > reports cancelled=true when a background run is cancelled # time=51.72ms
ok 5397 - src/channels/webchat/plugin.test.ts > WebChatChannel > send() > should route outbound message to the correct client # time=0.44ms
ok 5398 - src/channels/webchat/plugin.test.ts > WebChatChannel > send() > logs outbound chat.message frames # time=0.24ms
ok 5399 - src/channels/webchat/plugin.test.ts > WebChatChannel > send() > does not trace outbound chat.stream frames # time=0.16ms
ok 5400 - src/channels/webchat/plugin.test.ts > WebChatChannel > send() > should not throw for unmapped session # time=0.34ms
ok 5401 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.history > should return empty history for new client # time=0.14ms
ok 5402 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.history > should return chat history after messages # time=1.36ms
ok 5403 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > should reject missing sessionId # time=0.11ms
ok 5404 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > should reject unknown session # time=1.45ms
ok 5405 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > should resume an existing session by same client # time=2.04ms
ok 5406 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > accepts canonical chat.session.resume requests # time=0.56ms
ok 5407 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > should reject resume from different client (session hijacking prevention) # time=1.75ms
ok 5408 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > lists and resumes durable sessions across plugin restart with a server-issued owner token # time=9.14ms
ok 5409 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > revalidates persisted ownership when the in-memory owner cache is stale # time=3.36ms
ok 5410 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > persists workspace roots and keeps session affinity when later requests arrive from another project # time=27.20ms
ok 5411 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > returns continuity records and inspect detail for owned sessions # time=74.78ms
ok 5412 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > forks an owned session from persisted runtime state when no checkpoint exists # time=39.02ms
ok 5413 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.session.resume > backfills root-less durable sessions with the first valid resumed workspace root # time=2.69ms
ok 5414 - src/channels/webchat/plugin.test.ts > WebChatChannel > status.get > should return gateway status # time=0.33ms
ok 5415 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle tools.list # time=0.17ms
ok 5416 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should keep the legacy skills.list alias working # time=0.14ms
ok 5417 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should expose runtime hook metadata via hooks.list # time=6.63ms
ok 5418 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle tasks.list with informative error (no Solana connection) # time=0.15ms
ok 5419 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle tasks.detail with informative error (no Solana connection) # time=0.13ms
ok 5420 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle task mutations with informative errors when no Solana connection # time=0.23ms
ok 5421 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle memory.sessions with error when no backend # time=0.09ms
ok 5422 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle maintenance.status without a memory backend # time=0.27ms
ok 5423 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle memory.search with missing query # time=0.12ms
ok 5424 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > memory handlers only return sessions owned by the requesting client # time=104.10ms
ok 5425 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > maintenance.status aggregates only owned session memory # time=52.56ms
ok 5426 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle policy.simulate against the active owned session # time=50.81ms
ok 5427 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle approval.respond with a server-authenticated actor identity # time=52.73ms
ok 5428 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > lists only runs owned by the requesting client # time=50.70ms
ok 5429 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > inspects and controls only owned runs # time=104.65ms
ok 5430 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > returns structured durable-run availability on inspect misses # time=0.36ms
ok 5431 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle events.subscribe # time=0.17ms
ok 5432 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle marketplace reads with informative errors when no Solana connection # time=0.23ms
ok 5433 - src/channels/webchat/plugin.test.ts > WebChatChannel > subsystem handlers > should handle dispute resolution with informative error when no Solana connection # time=0.12ms
ok 5434 - src/channels/webchat/plugin.test.ts > WebChatChannel > event subscriptions > broadcasts only to clients whose filters match the event # time=0.22ms
ok 5435 - src/channels/webchat/plugin.test.ts > WebChatChannel > event subscriptions > stops delivering events after events.unsubscribe # time=0.11ms
ok 5436 - src/channels/webchat/plugin.test.ts > WebChatChannel > event subscriptions > surfaces trace correlation fields separately from event data # time=0.15ms
ok 5437 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > returns summary, trace list, trace detail, artifact, and logs for operator clients # time=261.97ms
ok 5438 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > allows observability access for traces from other sessions # time=51.49ms
ok 5439 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > returns observability results for clients without owned sessions # time=102.54ms
ok 5440 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > allows explicit session filters for observability trace listings # time=52.20ms
ok 5441 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > requires traceId for observability logs # time=0.32ms
ok 5442 - src/channels/webchat/plugin.test.ts > WebChatChannel > observability handlers > returns observability logs for traces from other sessions # time=54.29ms
ok 5443 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.create binds to the client's active session when sessionId is omitted # time=0.99ms
ok 5444 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.create forwards maxMemory/maxCpu overrides # time=0.29ms
ok 5445 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.create accepts an owned explicit sessionId # time=0.31ms
ok 5446 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.create normalizes bare integer maxMemory to gigabytes # time=0.23ms
ok 5447 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.create rejects foreign sessionId values # time=0.20ms
ok 5448 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.attach binds container to the client's active session # time=0.25ms
ok 5449 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.attach rejects containers not owned by the client # time=0.19ms
ok 5450 - src/channels/webchat/plugin.test.ts > WebChatChannel > desktop handlers > desktop.destroy rejects containers not owned by the client # time=0.21ms
ok 5451 - src/channels/webchat/plugin.test.ts > WebChatChannel > error handling > should return error for unknown dotted-namespace type # time=0.07ms
ok 5452 - src/channels/webchat/plugin.test.ts > WebChatChannel > removeClient > should clean up client mappings # time=0.15ms
ok 5453 - src/channels/webchat/plugin.test.ts > WebChatChannel > chat.typing > should silently accept typing indicators # time=0.07ms
ok 5454 - src/channels/webchat/session-store.test.ts > WebChatSessionStore > creates a durable session record and indexes it by owner # time=2.15ms
ok 5455 - src/channels/webchat/session-store.test.ts > WebChatSessionStore > tracks label, activity time, and message count across user/agent turns # time=0.41ms
ok 5456 - src/channels/webchat/session-store.test.ts > WebChatSessionStore > persists fork lineage and label updates without incrementing message count # time=0.26ms
ok 5457 - src/channels/webchat/session-store.test.ts > WebChatSessionStore > persists policy context metadata for durable session scope # time=0.19ms
ok 5458 - src/channels/webchat/session-store.test.ts > WebChatSessionStore > issues and resolves server-owned webchat owner credentials # time=0.41ms
ok 5459 - src/channels/webchat/socket-client-core.test.ts > socket-client-core > computes exponential reconnect delay with jitter bounds # time=3.02ms
ok 5460 - src/channels/webchat/socket-client-core.test.ts > socket-client-core > maintains bounded queue size # time=0.45ms
ok 5461 - src/channels/webchat/socket-client-core.test.ts > socket-client-core > flushes queue only when socket is open # time=0.14ms
ok 5462 - src/channels/webchat/socket-client-core.test.ts > socket-client-core > serializes ping/auth payloads consistently # time=0.16ms
ok 5463 - src/channels/webchat/socket-client-core.test.ts > socket-client-core > parses JSON strings and passes through non-strings # time=0.11ms
ok 5464 - src/memory/in-memory/backend.test.ts > InMemoryBackend > addEntry > creates an entry with UUID id and timestamp # time=3.04ms
ok 5465 - src/memory/in-memory/backend.test.ts > InMemoryBackend > addEntry > stores optional fields # time=0.93ms
ok 5466 - src/memory/in-memory/backend.test.ts > InMemoryBackend > getThread > returns entries in chronological order # time=0.60ms
ok 5467 - src/memory/in-memory/backend.test.ts > InMemoryBackend > getThread > returns empty array for unknown session # time=0.19ms
ok 5468 - src/memory/in-memory/backend.test.ts > InMemoryBackend > getThread > respects limit parameter (returns most recent) # time=0.37ms
ok 5469 - src/memory/in-memory/backend.test.ts > InMemoryBackend > getThread > isolates sessions # time=0.17ms
ok 5470 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > filters by sessionId # time=1.02ms
ok 5471 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > filters by taskPda # time=0.32ms
ok 5472 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > filters by role # time=0.51ms
ok 5473 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > filters by time range (after/before) # time=0.22ms
ok 5474 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > supports desc order # time=0.19ms
ok 5475 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > supports limit # time=0.18ms
ok 5476 - src/memory/in-memory/backend.test.ts > InMemoryBackend > query > returns all entries when no filters provided # time=0.13ms
ok 5477 - src/memory/in-memory/backend.test.ts > InMemoryBackend > deleteThread > deletes thread and returns count # time=0.09ms
ok 5478 - src/memory/in-memory/backend.test.ts > InMemoryBackend > deleteThread > returns 0 for nonexistent session # time=0.04ms
ok 5479 - src/memory/in-memory/backend.test.ts > InMemoryBackend > listSessions > lists all session IDs # time=0.22ms
ok 5480 - src/memory/in-memory/backend.test.ts > InMemoryBackend > listSessions > filters by prefix # time=0.07ms
ok 5481 - src/memory/in-memory/backend.test.ts > InMemoryBackend > transcript capability > advertises transcript support # time=0.05ms
ok 5482 - src/memory/in-memory/backend.test.ts > InMemoryBackend > transcript capability > round-trips transcript events in sequence order # time=0.22ms
ok 5483 - src/memory/in-memory/backend.test.ts > InMemoryBackend > transcript capability > deduplicates repeated transcript appends by event id # time=0.16ms
ok 5484 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > set and get # time=0.14ms
ok 5485 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > get returns undefined for missing key # time=0.05ms
ok 5486 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > delete returns true for existing key # time=0.05ms
ok 5487 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > delete returns false for missing key # time=0.04ms
ok 5488 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > has returns correct state # time=0.06ms
ok 5489 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > listKeys returns all keys # time=0.07ms
ok 5490 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > listKeys filters by prefix # time=0.05ms
ok 5491 - src/memory/in-memory/backend.test.ts > InMemoryBackend > key-value operations > stores various value types # time=0.10ms
ok 5492 - src/memory/in-memory/backend.test.ts > InMemoryBackend > TTL expiry > expires entries after ttlMs # time=0.18ms
ok 5493 - src/memory/in-memory/backend.test.ts > InMemoryBackend > TTL expiry > expires KV entries after ttlMs # time=0.26ms
ok 5494 - src/memory/in-memory/backend.test.ts > InMemoryBackend > TTL expiry > uses defaultTtlMs when entry ttlMs not specified # time=0.14ms
ok 5495 - src/memory/in-memory/backend.test.ts > InMemoryBackend > TTL expiry > expires KV entries from listKeys # time=0.10ms
ok 5496 - src/memory/in-memory/backend.test.ts > InMemoryBackend > capacity limits > evicts oldest entry when session hits maxEntriesPerSession # time=0.09ms
ok 5497 - src/memory/in-memory/backend.test.ts > InMemoryBackend > capacity limits > evicts globally when maxTotalEntries is reached # time=0.14ms
ok 5498 - src/memory/in-memory/backend.test.ts > InMemoryBackend > lifecycle > clear removes all data # time=0.10ms
ok 5499 - src/memory/in-memory/backend.test.ts > InMemoryBackend > lifecycle > close prevents further operations # time=0.49ms
ok 5500 - src/memory/in-memory/backend.test.ts > InMemoryBackend > lifecycle > healthCheck returns true when open # time=0.05ms
ok 5501 - src/memory/in-memory/backend.test.ts > InMemoryBackend > lifecycle > healthCheck returns false when closed # time=0.04ms
ok 5502 - src/memory/in-memory/backend.test.ts > InMemoryBackend > edge cases > handles empty content # time=0.04ms
ok 5503 - src/memory/in-memory/backend.test.ts > InMemoryBackend > edge cases > returned entries do not expose internal _expiresAt # time=0.24ms
ok 5504 - src/memory/in-memory/backend.test.ts > InMemoryBackend > edge cases > query respects expired entries # time=0.15ms
ok 5505 - src/memory/sqlite/backend.test.ts > SqliteBackend > lazy loading > creates database on first operation # time=14.36ms
ok 5506 - src/memory/sqlite/backend.test.ts > SqliteBackend > lazy loading > does not enable WAL for :memory: databases # time=0.36ms
ok 5507 - src/memory/sqlite/backend.test.ts > SqliteBackend > lazy loading > enables WAL for file-based databases # time=0.14ms
ok 5508 - src/memory/sqlite/backend.test.ts > SqliteBackend > lazy loading > memoizes init across concurrent ensureDb callers # time=0.27ms
ok 5509 - src/memory/sqlite/backend.test.ts > SqliteBackend > missing dependency > throws MemoryConnectionError when better-sqlite3 is missing # time=1.37ms
ok 5510 - src/memory/sqlite/backend.test.ts > SqliteBackend > schema creation > creates tables and indexes on first connect # time=0.50ms
ok 5511 - src/memory/sqlite/backend.test.ts > SqliteBackend > cleanupOnConnect > deletes expired rows on connect when enabled # time=0.27ms
ok 5512 - src/memory/sqlite/backend.test.ts > SqliteBackend > cleanupOnConnect > skips cleanup when disabled # time=0.18ms
ok 5513 - src/memory/sqlite/backend.test.ts > SqliteBackend > addEntry > inserts entry with correct parameters # time=0.78ms
ok 5514 - src/memory/sqlite/backend.test.ts > SqliteBackend > addEntry > passes TTL as expires_at # time=0.19ms
ok 5515 - src/memory/sqlite/backend.test.ts > SqliteBackend > addEntry > passes null expires_at when no TTL # time=0.15ms
ok 5516 - src/memory/sqlite/backend.test.ts > SqliteBackend > getThread > queries by session_id with expiry filter # time=0.35ms
ok 5517 - src/memory/sqlite/backend.test.ts > SqliteBackend > getThread > applies limit as subquery # time=0.08ms
ok 5518 - src/memory/sqlite/backend.test.ts > SqliteBackend > query > builds query with all filters # time=0.23ms
ok 5519 - src/memory/sqlite/backend.test.ts > SqliteBackend > deleteThread > deletes entries and returns count # time=0.08ms
ok 5520 - src/memory/sqlite/backend.test.ts > SqliteBackend > listSessions > returns distinct session IDs # time=0.10ms
ok 5521 - src/memory/sqlite/backend.test.ts > SqliteBackend > listSessions > filters by prefix using LIKE # time=0.08ms
ok 5522 - src/memory/sqlite/backend.test.ts > SqliteBackend > transcript capability > advertises transcript support # time=0.06ms
ok 5523 - src/memory/sqlite/backend.test.ts > SqliteBackend > transcript capability > round-trips transcript events # time=0.58ms
ok 5524 - src/memory/sqlite/backend.test.ts > SqliteBackend > transcript capability > deduplicates transcript events by event id # time=0.18ms
ok 5525 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > set uses INSERT OR REPLACE # time=0.12ms
ok 5526 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > get deserializes JSON value # time=0.09ms
ok 5527 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > get returns undefined for missing key # time=0.07ms
ok 5528 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > delete returns true when row deleted # time=0.15ms
ok 5529 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > delete returns false when no row # time=0.06ms
ok 5530 - src/memory/sqlite/backend.test.ts > SqliteBackend > KV operations > has checks existence with expiry filter # time=0.07ms
ok 5531 - src/memory/sqlite/backend.test.ts > SqliteBackend > lifecycle > clear deletes from both tables # time=0.11ms
ok 5532 - src/memory/sqlite/backend.test.ts > SqliteBackend > lifecycle > close calls db.close() # time=0.10ms
ok 5533 - src/memory/sqlite/backend.test.ts > SqliteBackend > lifecycle > operations throw after close # time=0.20ms
ok 5534 - src/memory/sqlite/backend.test.ts > SqliteBackend > lifecycle > healthCheck returns false when closed # time=0.05ms
ok 5535 - src/memory/sqlite/backend.test.ts > SqliteBackend > lifecycle > healthCheck returns true when db responds # time=0.06ms
ok 5536 - src/memory/sqlite/backend.test.ts > SqliteBackend > serialization errors > throws MemorySerializationError for non-serializable metadata # time=0.15ms
ok 5537 - src/memory/sqlite/backend.test.ts > SqliteBackend > serialization errors > throws MemorySerializationError for non-serializable KV value # time=0.08ms
ok 5538 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > stores and retrieves vectors via cosine similarity # time=8.20ms
ok 5539 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > infers dimension from first embedding # time=0.59ms
ok 5540 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > gracefully handles dimension mismatch (stores entry without vector) # time=0.54ms
ok 5541 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > skips vector storage for empty embeddings (noop provider) # time=0.51ms
ok 5542 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > performs hybrid vector + BM25 search # time=0.88ms
ok 5543 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > filters by sessionId # time=0.64ms
ok 5544 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > filters by time range using after parameter # time=0.50ms
ok 5545 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > filters by memory roles # time=0.40ms
ok 5546 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > persists vectors across close and reopen # time=5.21ms
ok 5547 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > cleans up vectors on deleteThread # time=1.79ms
ok 5548 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > clears all vectors on clear() # time=0.99ms
ok 5549 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > reports sync durability # time=0.10ms
ok 5550 - src/memory/sqlite/vector-backend.test.ts > SqliteVectorBackend > delegates KV operations to underlying SqliteBackend # time=0.77ms
ok 5551 - src/memory/benchmarks/locomo-bench.test.ts > LOCOMO Benchmark > runs all LOCOMO dimensions and produces results # time=20.08ms
ok 5552 - src/memory/benchmarks/locomo-bench.test.ts > LOCOMO Benchmark > achieves > 60% overall accuracy (competitive with Zep) # time=27.39ms
ok 5553 - src/memory/benchmarks/locomo-bench.test.ts > LOCOMO Benchmark > QA accuracy is non-zero (limited by NoopEmbedding; real embeddings target > 60%) # time=8.04ms
ok 5554 - src/memory/benchmarks/locomo-bench.test.ts > LOCOMO Benchmark > temporal ordering is maintained # time=4.96ms
ok 5555 - src/memory/benchmarks/locomo-bench.test.ts > LOCOMO Benchmark > session boundaries are respected # time=30.02ms
ok 5556 - src/memory/benchmarks/memory-agent-bench.test.ts > MemoryAgentBench > runs all benchmark dimensions and produces results # time=17.12ms
ok 5557 - src/memory/benchmarks/memory-agent-bench.test.ts > MemoryAgentBench > achieves > 70% pass rate on memory dimensions # time=22.41ms
ok 5558 - src/memory/benchmarks/memory-agent-bench.test.ts > MemoryAgentBench > accurate retrieval dimension passes # time=7.83ms
ok 5559 - src/memory/benchmarks/memory-agent-bench.test.ts > MemoryAgentBench > cross-session persistence dimension passes # time=8.25ms
ok 5560 - src/memory/redis/backend.test.ts > RedisBackend > lazy loading > connects on first operation # time=35.52ms
ok 5561 - src/memory/redis/backend.test.ts > RedisBackend > lazy loading > reuses existing client # time=2.05ms
ok 5562 - src/memory/redis/backend.test.ts > RedisBackend > lazy loading > passes URL when configured # time=4.55ms
ok 5563 - src/memory/redis/backend.test.ts > RedisBackend > lazy loading > passes host/port when no URL # time=0.63ms
ok 5564 - src/memory/redis/backend.test.ts > RedisBackend > missing dependency > throws MemoryConnectionError when ioredis is missing # time=9.84ms
ok 5565 - src/memory/redis/backend.test.ts > RedisBackend > connection error > throws MemoryConnectionError when connect fails # time=10.43ms
ok 5566 - src/memory/redis/backend.test.ts > RedisBackend > addEntry > uses ZADD with timestamp score # time=0.83ms
ok 5567 - src/memory/redis/backend.test.ts > RedisBackend > addEntry > sets PEXPIRE when ttlMs specified # time=0.20ms
ok 5568 - src/memory/redis/backend.test.ts > RedisBackend > addEntry > does not set PEXPIRE when no TTL # time=0.46ms
ok 5569 - src/memory/redis/backend.test.ts > RedisBackend > getThread > uses ZRANGEBYSCORE for full thread # time=0.47ms
ok 5570 - src/memory/redis/backend.test.ts > RedisBackend > getThread > uses ZREVRANGEBYSCORE with LIMIT for bounded query # time=0.25ms
ok 5571 - src/memory/redis/backend.test.ts > RedisBackend > query > queries single session by sessionId # time=0.18ms
ok 5572 - src/memory/redis/backend.test.ts > RedisBackend > query > queries all sessions when no sessionId # time=0.14ms
ok 5573 - src/memory/redis/backend.test.ts > RedisBackend > query > filters by role # time=0.10ms
ok 5574 - src/memory/redis/backend.test.ts > RedisBackend > query > filters by taskPda # time=0.13ms
ok 5575 - src/memory/redis/backend.test.ts > RedisBackend > query > supports time range and desc order # time=0.08ms
ok 5576 - src/memory/redis/backend.test.ts > RedisBackend > query > supports limit # time=0.10ms
ok 5577 - src/memory/redis/backend.test.ts > RedisBackend > deleteThread > deletes sorted set and removes from sessions # time=0.32ms
ok 5578 - src/memory/redis/backend.test.ts > RedisBackend > deleteThread > returns 0 for empty thread # time=0.08ms
ok 5579 - src/memory/redis/backend.test.ts > RedisBackend > listSessions > returns all sessions from set # time=0.13ms
ok 5580 - src/memory/redis/backend.test.ts > RedisBackend > listSessions > filters by prefix # time=0.13ms
ok 5581 - src/memory/redis/backend.test.ts > RedisBackend > transcript capability > advertises transcript support # time=0.05ms
ok 5582 - src/memory/redis/backend.test.ts > RedisBackend > transcript capability > round-trips transcript events # time=0.41ms
ok 5583 - src/memory/redis/backend.test.ts > RedisBackend > transcript capability > deduplicates transcript events by event id # time=0.24ms
ok 5584 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > set with TTL uses PX flag # time=0.14ms
ok 5585 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > set without TTL omits PX flag # time=0.08ms
ok 5586 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > get parses JSON value # time=0.08ms
ok 5587 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > get returns undefined for missing key # time=0.06ms
ok 5588 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > delete returns true when key deleted # time=0.06ms
ok 5589 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > delete returns false when no key # time=0.05ms
ok 5590 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > has uses EXISTS # time=0.05ms
ok 5591 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > listKeys strips prefix # time=0.09ms
ok 5592 - src/memory/redis/backend.test.ts > RedisBackend > KV operations > listKeys with prefix filters pattern # time=0.07ms
ok 5593 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > clear deletes all thread and KV keys # time=0.22ms
ok 5594 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > close calls quit # time=0.07ms
ok 5595 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > operations throw after close # time=0.14ms
ok 5596 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > healthCheck returns true on PONG # time=0.07ms
ok 5597 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > healthCheck returns false when closed # time=0.04ms
ok 5598 - src/memory/redis/backend.test.ts > RedisBackend > lifecycle > healthCheck returns false on ping failure # time=0.06ms
ok 5599 - src/memory/redis/backend.test.ts > RedisBackend > serialization errors > throws MemorySerializationError for non-serializable entry # time=0.13ms
ok 5600 - src/memory/redis/backend.test.ts > RedisBackend > serialization errors > throws MemorySerializationError for non-serializable KV value # time=0.08ms
ok 5601 - src/llm/compact/attachment-preservation.test.ts > preserved attachments > preserves attachments from snipped multimodal messages # time=1.65ms
ok 5602 - src/llm/compact/attachment-preservation.test.ts > preserved attachments > preserves attachments from reactive trims # time=0.36ms
ok 5603 - src/llm/compact/context-window.test.ts > context-window helpers > reserves output headroom before computing autocompact thresholds # time=0.86ms
ok 5604 - src/llm/compact/context-window.test.ts > context-window helpers > assesses pressure from current-view tokens instead of cumulative session totals # time=0.47ms
ok 5605 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > noops on first call (all layers see lastTouchMs=0) # time=1.39ms
ok 5606 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > noops inside a single active iteration when nothing is idle # time=0.22ms
ok 5607 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > snips after the snip gap elapses on a long history # time=0.31ms
ok 5608 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > surfaces preserved attachments when snip drops a multimodal message # time=1.12ms
ok 5609 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > microcompacts cold tool results after the microcompact gap # time=0.27ms
ok 5610 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > runs the collapse hook before autocompact # time=0.47ms
ok 5611 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > flags autocompact as decision-only (messages unchanged) # time=0.16ms
ok 5612 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > threads state forward across calls (second call sees first call's touches) # time=0.13ms
ok 5613 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > invokes the optional consolidation hook when supplied (Phase N) # time=0.42ms
ok 5614 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > skips consolidation when the hook reports noop # time=0.13ms
ok 5615 - src/llm/compact/per-iteration-compaction.test.ts > applyPerIterationCompaction > accumulates boundaries in layer order (snip before microcompact before autocompact) # time=0.29ms
ok 5616 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > noops when the gap has not elapsed # time=0.07ms
ok 5617 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > noops on first touch (lastTouchMs=0) # time=0.04ms
ok 5618 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > noops when there are fewer compactable results than keepRecent # time=0.05ms
ok 5619 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > clears all-but-keepRecent when gap exceeded # time=0.21ms
ok 5620 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > does not touch non-compactable tool results # time=0.05ms
ok 5621 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > uses TIME_BASED_MC_CLEARED_MESSAGE placeholder verbatim # time=0.03ms
ok 5622 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > COMPACTABLE_TOOL_NAMES includes the expected tools # time=0.10ms
ok 5623 - src/llm/compact/per-iteration-compaction.test.ts > applyMicrocompact (time-based) > is idempotent on a previously microcompacted history # time=0.07ms
ok 5624 - src/llm/compact/post-compact-attachments.test.ts > post-compact-attachments > returns an empty list when the session has no recent reads # time=3.26ms
ok 5625 - src/llm/compact/post-compact-attachments.test.ts > post-compact-attachments > emits an anchor-file system message per top-N most-recent file # time=32.45ms
ok 5626 - src/llm/compact/post-compact-attachments.test.ts > post-compact-attachments > clears the in-memory read cache so a later read returns full content, not a stub # time=2.47ms
ok 5627 - src/llm/compact/post-compact-attachments.test.ts > post-compact-attachments > buildAnchorFileMessage wraps content verbatim in the anchor-file tag # time=0.41ms
ok 5628 - src/llm/compact/post-compact-attachments.test.ts > post-compact-attachments > exposes the shared budget constants expected by callers # time=0.19ms
ok 5629 - src/llm/compact/prompt.test.ts > getCompactPrompt > includes all 9 summary sections # time=1.00ms
ok 5630 - src/llm/compact/prompt.test.ts > getCompactPrompt > includes the no-tools preamble and trailer # time=0.20ms
ok 5631 - src/llm/compact/prompt.test.ts > getCompactPrompt > appends custom instructions when provided # time=0.07ms
ok 5632 - src/llm/compact/prompt.test.ts > formatCompactSummary > strips analysis blocks # time=0.18ms
ok 5633 - src/llm/compact/prompt.test.ts > formatCompactSummary > formats summary tags into readable headers # time=0.16ms
ok 5634 - src/llm/compact/prompt.test.ts > formatCompactSummary > handles plain text without XML tags # time=0.09ms
ok 5635 - src/llm/compact/prompt.test.ts > getCompactUserSummaryMessage > wraps summary with continuation preamble # time=0.12ms
ok 5636 - src/llm/compact/prompt.test.ts > getCompactUserSummaryMessage > appends continuation instruction when suppressFollowUpQuestions is set # time=0.10ms
ok 5637 - src/llm/hooks/executors.test.ts > defaultHookExecutor command path > writes upstream-compatible stdin JSON to the shell # time=22.81ms
ok 5638 - src/llm/hooks/executors.test.ts > defaultHookExecutor command path > maps exit code 2 to deny with the stderr message # time=11.22ms
ok 5639 - src/llm/hooks/executors.test.ts > defaultHookExecutor command path > treats other non-zero exit codes as non-blocking noop # time=9.11ms
ok 5640 - src/llm/hooks/executors.test.ts > defaultHookExecutor command path > includes error + is_interrupt for PostToolUseFailure payloads # time=14.45ms
ok 5641 - src/llm/hooks/stop-hooks.test.ts > stop-hooks > builds the builtin stop-hook runtime by default and disables only on explicit false # time=1.36ms
ok 5642 - src/llm/hooks/stop-hooks.test.ts > stop-hooks > runs the built-in stop hook and preserves the stop-gate reason # time=2.79ms
ok 5643 - src/llm/hooks/stop-hooks.test.ts > stop-hooks > blocks completion when the latest verification probe still failed # time=2.02ms
ok 5644 - src/llm/hooks/stop-hooks.test.ts > stop-hooks > honors configured hook ordering and merges evidence by hook id # time=99.71ms
ok 5645 - src/llm/hooks/stop-hooks.test.ts > stop-hooks > treats hook timeouts as blocking errors # time=2.82ms
ok 5646 - src/llm/hooks/user-config.test.ts > buildUserHookDefinitions > returns an empty set when the config is missing # time=2.06ms
ok 5647 - src/llm/hooks/user-config.test.ts > buildUserHookDefinitions > warns when the config is not an object # time=0.62ms
ok 5648 - src/llm/hooks/user-config.test.ts > buildUserHookDefinitions > parses the reference-runtime matcher-group shape for commands # time=0.25ms
ok 5649 - src/llm/hooks/user-config.test.ts > buildUserHookDefinitions > parses http handler entries and drops unsupported handler types # time=0.35ms
ok 5650 - src/llm/hooks/user-config.test.ts > buildUserHookDefinitions > warns and skips invalid entries instead of rejecting the config # time=0.17ms
ok 5651 - src/llm/ollama/adapter.test.ts > OllamaProvider > sends messages in correct format # time=4.76ms
ok 5652 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps tool result messages with tool_call_id # time=0.40ms
ok 5653 - src/llm/ollama/adapter.test.ts > OllamaProvider > passes options for temperature and context # time=0.23ms
ok 5654 - src/llm/ollama/adapter.test.ts > OllamaProvider > uses custom model # time=0.17ms
ok 5655 - src/llm/ollama/adapter.test.ts > OllamaProvider > reports execution profile from explicit num_ctx configuration # time=1.15ms
ok 5656 - src/llm/ollama/adapter.test.ts > OllamaProvider > parses tool calls # time=3.06ms
ok 5657 - src/llm/ollama/adapter.test.ts > OllamaProvider > assigns unique IDs to duplicate-named tool calls (non-streaming) # time=0.49ms
ok 5658 - src/llm/ollama/adapter.test.ts > OllamaProvider > assigns unique IDs to duplicate-named tool calls (streaming) # time=0.38ms
ok 5659 - src/llm/ollama/adapter.test.ts > OllamaProvider > handles streaming via async iterable # time=6.01ms
ok 5660 - src/llm/ollama/adapter.test.ts > OllamaProvider > returns usage information # time=1.50ms
ok 5661 - src/llm/ollama/adapter.test.ts > OllamaProvider > records request metrics for routed Ollama tools # time=0.66ms
ok 5662 - src/llm/ollama/adapter.test.ts > OllamaProvider > treats an empty routed allowlist as no attached tools # time=0.15ms
ok 5663 - src/llm/ollama/adapter.test.ts > OllamaProvider > emits provider request and response trace events when enabled # time=0.35ms
ok 5664 - src/llm/ollama/adapter.test.ts > OllamaProvider > suppresses tools when routed Ollama allowlist resolves to zero matches (fail-closed) # time=6.16ms
ok 5665 - src/llm/ollama/adapter.test.ts > OllamaProvider > healthCheck returns true when server is running # time=0.19ms
ok 5666 - src/llm/ollama/adapter.test.ts > OllamaProvider > healthCheck returns false when server is not running # time=0.29ms
ok 5667 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps ECONNREFUSED to descriptive error # time=0.68ms
ok 5668 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps general errors to LLMProviderError # time=0.53ms
ok 5669 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps 500 errors to LLMServerError # time=0.30ms
ok 5670 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps 401 to LLMAuthenticationError # time=0.17ms
ok 5671 - src/llm/ollama/adapter.test.ts > OllamaProvider > maps AbortError to LLMTimeoutError # time=0.15ms
ok 5672 - src/llm/ollama/adapter.test.ts > OllamaProvider > uses the per-call timeout override and forwards the abort signal # time=8.97ms
ok 5673 - src/llm/ollama/adapter.test.ts > OllamaProvider > returns partial streamed content on mid-stream failure # time=0.26ms
ok 5674 - src/llm/ollama/adapter.test.ts > OllamaProvider > throws when stream fails before any content is received # time=5.04ms
ok 5675 - src/llm/ollama/adapter.test.ts > OllamaProvider > passes keepAlive configuration # time=0.23ms
ok 5676 - src/llm/ollama/adapter.test.ts > OllamaProvider > passes tools in OpenAI-compatible format # time=0.21ms
ok 5677 - src/llm/ollama/adapter.test.ts > OllamaProvider > repairs orphan tool messages and sends to Ollama # time=0.16ms
ok 5678 - src/llm/ollama/adapter.test.ts > OllamaProvider > repairs mixed valid/invalid tool history and sends to Ollama # time=0.20ms
ok 5679 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > extracts trace tool names from mixed provider tool shapes # time=0.99ms
ok 5680 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > keeps reconciliation hashes stable across tool-call order changes # time=16.28ms
ok 5681 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > ignores dynamic system injections when hashing reconciliation state # time=0.29ms
ok 5682 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > ignores assistant commentary phase when hashing reconciliation state # time=0.21ms
ok 5683 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > keeps recent anchors matchable after the reconciliation window shifts # time=0.76ms
ok 5684 - src/llm/grok/adapter-utils.test.ts > grok adapter utils > passes long descriptions and large schemas through intact and strips nested metadata # time=14.19ms
ok 5685 - src/llm/grok/adapter.test.ts > GrokProvider > applies a default request timeout when timeoutMs is omitted # time=6.16ms
ok 5686 - src/llm/grok/adapter.test.ts > GrokProvider > reports execution profile from explicit context window overrides # time=0.75ms
ok 5687 - src/llm/grok/adapter.test.ts > GrokProvider > retrieves a stored xAI response using the documented Responses API method # time=0.94ms
ok 5688 - src/llm/grok/adapter.test.ts > GrokProvider > deletes a stored xAI response using the documented Responses API method # time=0.33ms
ok 5689 - src/llm/grok/adapter.test.ts > GrokProvider > treats timeoutMs=0 as unlimited instead of restoring the default timeout # time=0.34ms
ok 5690 - src/llm/grok/adapter.test.ts > GrokProvider > sends messages in Responses-compatible format # time=0.61ms
ok 5691 - src/llm/grok/adapter.test.ts > GrokProvider > includes tool schema diagnostics in requestMetrics # time=0.41ms
ok 5692 - src/llm/grok/adapter.test.ts > GrokProvider > applies per-call routed tool subset when provided # time=0.55ms
ok 5693 - src/llm/grok/adapter.test.ts > GrokProvider > preserves documented required single-tool choice for the Responses API # time=0.76ms
ok 5694 - src/llm/grok/adapter.test.ts > GrokProvider > captures selected tools and tool_choice in request metrics # time=0.32ms
ok 5695 - src/llm/grok/adapter.test.ts > GrokProvider > treats an empty routed allowlist as no attached tools # time=0.78ms
ok 5696 - src/llm/grok/adapter.test.ts > GrokProvider > suppresses tools when toolChoice none is set without an explicit allowlist # time=0.30ms
ok 5697 - src/llm/grok/adapter.test.ts > GrokProvider > normalizes forced function tool_choice for the Responses API # time=0.24ms
ok 5698 - src/llm/grok/adapter.test.ts > GrokProvider > emits raw provider request and response trace events when enabled # time=0.38ms
ok 5699 - src/llm/grok/adapter.test.ts > GrokProvider > captures provider request IDs and response headers in non-stream traces when exposed by the SDK # time=22.93ms
ok 5700 - src/llm/grok/adapter.test.ts > GrokProvider > records provider-default timeout provenance in request traces # time=0.50ms
ok 5701 - src/llm/grok/adapter.test.ts > GrokProvider > preserves unlimited timeout provenance for streamed requests # time=0.55ms
ok 5702 - src/llm/grok/adapter.test.ts > GrokProvider > emits a stream-open trace and raw stream events with provider request metadata # time=1.39ms
ok 5703 - src/llm/grok/adapter.test.ts > GrokProvider > records per-call timeout overrides in request traces # time=0.42ms
ok 5704 - src/llm/grok/adapter.test.ts > GrokProvider > suppresses tools when routed allowlist resolves to zero matches (fail-closed) # time=0.47ms
ok 5705 - src/llm/grok/adapter.test.ts > GrokProvider > preserves explicitly routed tools even when they were dropped from the slimmed full catalog # time=15.42ms
ok 5706 - src/llm/grok/adapter.test.ts > GrokProvider > parses tool calls from response # time=0.41ms
ok 5707 - src/llm/grok/adapter.test.ts > GrokProvider > preserves provider function calls whose JSON arguments contain HTML entities inside string values # time=5.81ms
ok 5708 - src/llm/grok/adapter.test.ts > GrokProvider > emits a trace when a provider function call is rejected during normalization # time=1.09ms
ok 5709 - src/llm/grok/adapter.test.ts > GrokProvider > surfaces provider citations as provider evidence # time=0.27ms
ok 5710 - src/llm/grok/adapter.test.ts > GrokProvider > injects web_search tool when webSearch is true # time=0.18ms
ok 5711 - src/llm/grok/adapter.test.ts > GrokProvider > injects documented xAI provider-native tools from the capability surface # time=0.32ms
ok 5712 - src/llm/grok/adapter.test.ts > GrokProvider > does not inject web_search tool for unsupported Grok models # time=0.64ms
ok 5713 - src/llm/grok/adapter.test.ts > GrokProvider > captures documented server-side tool calls and usage in provider evidence # time=0.51ms
ok 5714 - src/llm/grok/adapter.test.ts > GrokProvider > wires max_turns, reasoning effort, and encrypted reasoning include from config # time=1.08ms
ok 5715 - src/llm/grok/adapter.test.ts > GrokProvider > sends documented xAI text.format requests and parses structured output payloads # time=0.64ms
ok 5716 - src/llm/grok/adapter.test.ts > GrokProvider > rejects structured outputs with tools on non-Grok-4 models instead of silently degrading # time=13.19ms
ok 5717 - src/llm/grok/adapter.test.ts > GrokProvider > rejects malformed structured output payloads instead of treating them as success # time=8.40ms
ok 5718 - src/llm/grok/adapter.test.ts > GrokProvider > disables parallel tool calls by default when tools are present # time=0.30ms
ok 5719 - src/llm/grok/adapter.test.ts > GrokProvider > honors parallelToolCalls override when enabled # time=0.16ms
ok 5720 - src/llm/grok/adapter.test.ts > GrokProvider > preserves full tool descriptions and strips nested schema metadata Grok rejects # time=0.16ms
ok 5721 - src/llm/grok/adapter.test.ts > GrokProvider > keeps tools on follow-up turns even when tool payload is large # time=29.40ms
ok 5722 - src/llm/grok/adapter.test.ts > GrokProvider > auto-trims tool catalog to documented xAI 128-tool maximum # time=2.09ms
ok 5723 - src/llm/grok/adapter.test.ts > GrokProvider > prioritizes critical AgenC task tools before trimming over-limit xAI catalogs # time=1.04ms
ok 5724 - src/llm/grok/adapter.test.ts > GrokProvider > does NOT trim when tool catalog is exactly at the 128 limit # time=0.74ms
ok 5725 - src/llm/grok/adapter.test.ts > GrokProvider > passes usage information # time=0.20ms
ok 5726 - src/llm/grok/adapter.test.ts > GrokProvider > handles streaming # time=0.75ms
ok 5727 - src/llm/grok/adapter.test.ts > GrokProvider > maps 429 error to LLMRateLimitError # time=0.27ms
ok 5728 - src/llm/grok/adapter.test.ts > GrokProvider > surfaces provider error details on non-stream failed responses # time=0.38ms
ok 5729 - src/llm/grok/adapter.test.ts > GrokProvider > maps 500 errors to LLMServerError # time=0.31ms
ok 5730 - src/llm/grok/adapter.test.ts > GrokProvider > maps 401 to LLMAuthenticationError # time=0.21ms
ok 5731 - src/llm/grok/adapter.test.ts > GrokProvider > maps AbortError to LLMTimeoutError # time=0.21ms
ok 5732 - src/llm/grok/adapter.test.ts > GrokProvider > uses the per-call timeout override and forwards the abort signal # time=5.82ms
ok 5733 - src/llm/grok/adapter.test.ts > GrokProvider > returns partial streamed content on mid-stream failure # time=0.38ms
ok 5734 - src/llm/grok/adapter.test.ts > GrokProvider > surfaces provider error details on response.failed stream events # time=0.38ms
ok 5735 - src/llm/grok/adapter.test.ts > GrokProvider > stops on response.completed even if trailing stream noise follows # time=0.43ms
ok 5736 - src/llm/grok/adapter.test.ts > GrokProvider > times out stalled streaming responses and returns partial output # time=30.49ms
ok 5737 - src/llm/grok/adapter.test.ts > GrokProvider > suppresses async cleanup rejections from streamIterator.return # time=0.50ms
ok 5738 - src/llm/grok/adapter.test.ts > GrokProvider > enforces an absolute stream timeout even when chunks keep arriving # time=43.92ms
ok 5739 - src/llm/grok/adapter.test.ts > GrokProvider > throws when stream fails before any content is received # time=5.74ms
ok 5740 - src/llm/grok/adapter.test.ts > GrokProvider > healthCheck returns true on success # time=0.25ms
ok 5741 - src/llm/grok/adapter.test.ts > GrokProvider > healthCheck returns false on failure # time=2.36ms
ok 5742 - src/llm/grok/adapter.test.ts > GrokProvider > uses custom model # time=0.41ms
ok 5743 - src/llm/grok/adapter.test.ts > GrokProvider > formats tool result messages correctly # time=0.18ms
ok 5744 - src/llm/grok/adapter.test.ts > GrokProvider > formats assistant tool_calls for follow-up turns # time=0.15ms
ok 5745 - src/llm/grok/adapter.test.ts > GrokProvider > drops undocumented assistant phase metadata from Responses API assistant input items # time=0.14ms
ok 5746 - src/llm/grok/adapter.test.ts > GrokProvider > never emits assistant phase metadata in xAI Responses requests # time=0.18ms
ok 5747 - src/llm/grok/adapter.test.ts > GrokProvider > repairs orphan tool messages and sends to provider instead of rejecting # time=0.28ms
ok 5748 - src/llm/grok/adapter.test.ts > GrokProvider > rejects non-tool messages before pending tool results are resolved # time=3.10ms
ok 5749 - src/llm/grok/adapter.test.ts > GrokProvider > repairs two orphan tool-result pairs and sends them to the provider # time=0.54ms
ok 5750 - src/llm/grok/adapter.test.ts > GrokProvider > repairs mixed valid/invalid tool-turn history and sends to provider # time=0.19ms
ok 5751 - src/llm/grok/adapter.test.ts > GrokProvider > retries reasoning-only completed tool followups with tool_choice none # time=0.60ms
ok 5752 - src/llm/grok/adapter.test.ts > GrokProvider > does not emit undocumented server-side compaction fields when local compaction is configured # time=0.16ms
ok 5753 - src/llm/grok/adapter.test.ts > GrokProvider > emits only xAI-documented top-level Responses fields # time=0.17ms
ok 5754 - src/llm/grok/adapter.test.ts > GrokProvider > does not emit undocumented assistant phase metadata into xAI response input items # time=0.11ms
ok 5755 - src/llm/grok/pricing.test.ts > getGrokModelPricing > returns the catalog price for a canonical 4.20 model # time=2.25ms
ok 5756 - src/llm/grok/pricing.test.ts > getGrokModelPricing > returns the catalog price for a 4-1-fast model # time=0.28ms
ok 5757 - src/llm/grok/pricing.test.ts > getGrokModelPricing > resolves legacy beta-infixed IDs through the canonical alias map # time=0.11ms
ok 5758 - src/llm/grok/pricing.test.ts > getGrokModelPricing > returns undefined for unpriced or unknown models # time=0.15ms
ok 5759 - src/llm/grok/pricing.test.ts > computeGrokCallCostUsd > splits input and output pricing for a 4.20 model # time=0.19ms
ok 5760 - src/llm/grok/pricing.test.ts > computeGrokCallCostUsd > uses fast pricing for 4-1-fast models # time=0.06ms
ok 5761 - src/llm/grok/pricing.test.ts > computeGrokCallCostUsd > returns undefined for unpriced models (callers should skip, not show $0) # time=0.10ms
ok 5762 - src/llm/grok/pricing.test.ts > computeGrokCallCostUsd > treats missing/negative tokens as zero # time=0.06ms
ok 5763 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > returns canonical ID for known catalog entries # time=0.96ms
ok 5764 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > resolves bare-name aliases to canonical # time=0.18ms
ok 5765 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > resolves -latest aliases to canonical # time=0.07ms
ok 5766 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > resolves legacy beta-infixed 4.20 IDs to current non-beta canonical IDs # time=0.15ms
ok 5767 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > returns null for undocumented IDs # time=0.09ms
ok 5768 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > accepts legacy Grok variants that are still in the xAI catalog # time=0.09ms
ok 5769 - src/llm/grok/xai-strict-filter.test.ts > resolveDocumentedXaiModel > rejects non-string input gracefully # time=0.09ms
ok 5770 - src/llm/grok/xai-strict-filter.test.ts > model capability flags > modelSupportsFunctionCalling: text models yes, imagine-* no # time=0.08ms
ok 5771 - src/llm/grok/xai-strict-filter.test.ts > model capability flags > modelSupportsReasoningEffort: only multi-agent # time=0.35ms
ok 5772 - src/llm/grok/xai-strict-filter.test.ts > model capability flags > modelIsReasoningVariant catches reasoning + multi-agent # time=0.11ms
ok 5773 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts a plain text request with no tools # time=0.46ms
ok 5774 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts a tool-followup request with non-empty tools # time=0.10ms
ok 5775 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts multi-agent with reasoning.effort: high # time=0.06ms
ok 5776 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts multi-agent with reasoning.effort: low/medium/xhigh # time=0.19ms
ok 5777 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts a request with all documented top-level fields populated # time=0.08ms
ok 5778 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (pass cases) > accepts tool_choice in all four documented forms # time=0.26ms
ok 5779 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUnknownModelError for unknown Grok variants # time=0.10ms
ok 5780 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUnknownModelError for missing model # time=0.05ms
ok 5781 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUnknownModelError for empty model string # time=0.04ms
ok 5782 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUnknownModelError for OpenAI / Anthropic / unknown IDs # time=0.10ms
ok 5783 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError when reasoning.effort sent on a non-multi-agent model # time=0.13ms
ok 5784 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError when presence_penalty sent on a reasoning model # time=0.09ms
ok 5785 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError when frequency_penalty sent on a reasoning model # time=0.05ms
ok 5786 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError when stop sent on a reasoning model # time=0.04ms
ok 5787 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError on undocumented top-level fields (legacy chat-completions style) # time=0.05ms
ok 5788 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError on response_format (legacy chat-completions field) # time=0.05ms
ok 5789 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError on legacy nested {function:{...}} tool shape # time=0.05ms
ok 5790 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError when a function tool has no name # time=0.05ms
ok 5791 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (reject cases) > throws XaiUndocumentedFieldError on invalid tool_choice # time=0.15ms
ok 5792 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (clean cases) > returns no anomalies when no tools were sent # time=0.65ms
ok 5793 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (clean cases) > returns no anomalies when tools were sent and a function_call came back # time=0.10ms
ok 5794 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (clean cases) > returns no anomalies when tools were sent, no function_call, but message text has no promise language # time=0.08ms
ok 5795 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (clean cases) > returns no anomaly when response.model is the documented alias of the requested model # time=0.04ms
ok 5796 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (model aliasing) > detects a true model mismatch after canonical normalization # time=0.63ms
ok 5797 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (model aliasing) > does NOT flag canonical alias-equivalent model IDs as silent aliasing # time=0.06ms
ok 5798 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (model aliasing) > does NOT flag documented bare-name alias as silent aliasing # time=0.11ms
ok 5799 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (incomplete responses) > detects status: incomplete with reason: max_output_tokens # time=0.24ms
ok 5800 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (incomplete responses) > detects status: incomplete with reason: content_filter # time=0.15ms
ok 5801 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (incomplete responses) > does NOT flag status: completed # time=0.05ms
ok 5802 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > detects truncation matching the live xAI decoder bug # time=0.15ms
ok 5803 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > detects reasoning-only completed responses with no visible assistant text # time=0.13ms
ok 5804 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when text ends with a period # time=0.04ms
ok 5805 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when text ends with a closing code fence # time=0.04ms
ok 5806 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when tool_choice is 'none' (mitigation path output) # time=0.04ms
ok 5807 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when input has no prior function_call_output items # time=0.04ms
ok 5808 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when the response contains a function_call block # time=0.04ms
ok 5809 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when tools array is empty # time=0.04ms
ok 5810 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when status is not 'completed' # time=0.14ms
ok 5811 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > does NOT flag when incomplete_details is populated # time=0.04ms
ok 5812 - src/llm/grok/xai-strict-filter.test.ts > validateXaiResponsePostFlight (mid-sentence truncation bug) > detects truncation at mid-word (no punctuation at all) # time=0.07ms
ok 5813 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (documented 128-tool limit) > accepts exactly 128 tools # time=0.11ms
ok 5814 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (documented 128-tool limit) > rejects 129 tools (the count we were previously sending) # time=0.08ms
ok 5815 - src/llm/grok/xai-strict-filter.test.ts > validateXaiRequestPreFlight (documented 128-tool limit) > rejects 200 tools with a clear error message # time=0.14ms
ok 5816 - src/llm/grok/xai-strict-filter.test.ts > DOCUMENTED_XAI_RESPONSES_REQUEST_FIELDS > exposes the canonical field allowlist # time=0.09ms
ok 5817 - src/llm/grok/xai-strict-filter.test.ts > multi-agent specific restrictions > rejects max_output_tokens on grok-4.20-multi-agent-beta-0309 # time=0.05ms
ok 5818 - src/llm/grok/xai-strict-filter.test.ts > multi-agent specific restrictions > allows max_output_tokens on non-multi-agent models # time=0.05ms
ok 5819 - src/llm/grok/xai-strict-filter.test.ts > multi-agent specific restrictions > rejects client-side function tools on multi-agent # time=0.05ms
ok 5820 - src/llm/grok/xai-strict-filter.test.ts > multi-agent specific restrictions > allows server-side built-in tools on multi-agent # time=0.07ms
ok 5821 - src/llm/grok/xai-strict-filter.test.ts > built-in tool type allowlist > accepts every documented built-in server-side tool type # time=0.24ms
ok 5822 - src/llm/grok/xai-strict-filter.test.ts > built-in tool type allowlist > rejects unknown tool type strings (typo guard) # time=0.15ms
ok 5823 - src/llm/grok/xai-strict-filter.test.ts > built-in tool type allowlist > rejects tool entries with no type field # time=0.05ms
ok 5824 - src/llm/grok/xai-strict-filter.test.ts > image/video models reject tools[] > throws when tools are passed to grok-imagine-image # time=0.05ms
ok 5825 - src/llm/grok/xai-strict-filter.test.ts > image/video models reject tools[] > allows grok-imagine-image with no tools # time=0.06ms
ok 5826 - src/llm/grok/xai-strict-filter.test.ts > post-flight: failed_response anomaly > emits failed_response severity=error when status is 'failed' # time=0.07ms
ok 5827 - src/llm/grok/xai-strict-filter.test.ts > post-flight: failed_response anomaly > uses a sane default message when error.message is missing # time=0.05ms
ok 5828 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > flags the captured grok-code-fast-1 degenerate summary # time=0.14ms
ok 5829 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > does NOT flag clean multi-paragraph reasoning summaries # time=0.04ms
ok 5830 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > does NOT flag tool-call argument strings that contain '//' legitimately # time=0.03ms
ok 5831 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > does NOT flag short summaries that mention '//TODO' legitimately # time=0.03ms
ok 5832 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > surfaces the anomaly through validateXaiResponsePostFlight as warn severity # time=0.09ms
ok 5833 - src/llm/grok/xai-strict-filter.test.ts > detectCorruptReasoningSummary > does not fire on empty or non-array outputs # time=0.05ms
ok 5834 - src/llm/openai-compat/adapter.live.test.ts > OpenAICompatProvider — live server > basic round-trip returns a non-empty content string # SKIP
ok 5835 - src/llm/openai-compat/adapter.live.test.ts > OpenAICompatProvider — live server > chatStream: streams chunks and assembles full content # SKIP
ok 5836 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > sends messages in OpenAI chat format (role + content) # time=2.96ms
ok 5837 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > sets model from config in request params # time=0.27ms
ok 5838 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > returns finishReason 'stop' when no tool calls # time=0.28ms
ok 5839 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > returns content from the response message # time=0.19ms
ok 5840 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > maps usage fields correctly # time=0.30ms
ok 5841 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — basic response > reports model from response # time=0.11ms
ok 5842 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > returns finishReason 'tool_calls' when tool calls are present # time=1.15ms
ok 5843 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > parses tool call name and arguments from response # time=2.00ms
ok 5844 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > assigns UUID IDs to tool calls — never the server-provided id # time=2.41ms
ok 5845 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > assigns unique UUID IDs when the same tool is called twice in one turn # time=0.44ms
ok 5846 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > includes tools array in request params when provider has tools # time=0.21ms
ok 5847 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool calls > does not include tools in params when provider has no tools # time=0.10ms
ok 5848 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool routing > all_tools_no_filter: sends all tools when allowedToolNames is undefined # time=0.16ms
ok 5849 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool routing > all_tools_empty_filter: sends empty tools array when allowedToolNames is [] # time=0.09ms
ok 5850 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool routing > subset_exact: sends only the requested tools when all names match # time=0.11ms
ok 5851 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool routing > subset_partial: sends resolved tools when some requested names are missing from catalog # time=0.08ms
ok 5852 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — tool routing > subset_no_resolved_matches: sends empty tools array when no requested names match catalog # time=1.69ms
ok 5853 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — error mapping > ECONNREFUSED → LLMProviderError # time=2.47ms
ok 5854 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — error mapping > ECONNREFUSED error message includes the server URL # time=16.88ms
ok 5855 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — error mapping > AbortError → LLMTimeoutError # time=1.17ms
ok 5856 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — error mapping > HTTP 401 → LLMAuthenticationError # time=1.71ms
ok 5857 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — error mapping > HTTP 500 → LLMServerError # time=0.56ms
ok 5858 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chat() — timeout > does not throw when timeoutMs option is provided (honored by withTimeout) # time=0.26ms
ok 5859 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > accumulates content chunks and returns full content # time=0.36ms
ok 5860 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > calls onChunk with done:true at end # time=0.11ms
ok 5861 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > returns finishReason 'stop' when no tool call deltas # time=0.09ms
ok 5862 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > accumulates tool_call deltas and assigns UUID IDs # time=0.23ms
ok 5863 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > returns finishReason 'tool_calls' when tool call deltas are present # time=0.10ms
ok 5864 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > chatStream() > maps usage from final chunk # time=0.09ms
ok 5865 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > healthCheck() > returns true when models.list() succeeds # time=0.58ms
ok 5866 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > healthCheck() > returns false when models.list() throws # time=0.22ms
ok 5867 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > returns contextWindowTokens from config # time=0.09ms
ok 5868 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > reports contextWindowSource as 'explicit_config' # time=0.05ms
ok 5869 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > returns maxOutputTokens when maxTokens is set in config # time=0.05ms
ok 5870 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > returns undefined maxOutputTokens when maxTokens is not set # time=0.04ms
ok 5871 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > reports provider name as 'openai-compat' # time=0.04ms
ok 5872 - src/llm/openai-compat/adapter.test.ts > OpenAICompatProvider > getExecutionProfile() > reports model from config # time=0.04ms
ok 5873 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts 127.0.0.1 (loopback) # time=1.68ms
ok 5874 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts localhost # time=0.18ms
ok 5875 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts 192.168.x.x (RFC-1918 class C) # time=0.10ms
ok 5876 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts 10.x.x.x (RFC-1918 class A) # time=0.10ms
ok 5877 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts 172.16.x.x (lower bound of RFC-1918 class B) # time=0.09ms
ok 5878 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts 172.31.x.x (upper bound of RFC-1918 class B) # time=0.07ms
ok 5879 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > accepts local and LAN addresses > accepts ::1 (IPv6 loopback) # time=0.11ms
ok 5880 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > rejects a public domain # time=0.14ms
ok 5881 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > rejects a public IP # time=0.34ms
ok 5882 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > rejects 172.15.x.x (just below RFC-1918 class B range) # time=0.10ms
ok 5883 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > rejects 172.32.x.x (just above RFC-1918 class B range) # time=0.10ms
ok 5884 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > rejects an invalid URL string # time=0.06ms
ok 5885 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > error message includes the offending hostname for public IP # time=0.09ms
ok 5886 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > error message includes the offending hostname for public domain # time=0.16ms
ok 5887 - src/llm/openai-compat/openai-compat-filter.test.ts > validateBaseUrl > rejects public and invalid addresses > does not throw OpenAICompatServerUnreachableError — plain Error only # time=0.10ms
ok 5888 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > success cases > returns model ID list from a valid /v1/models response # time=0.72ms
ok 5889 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > success cases > returns empty array when data array is empty # time=0.09ms
ok 5890 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > success cases > strips trailing slash from baseUrl before appending /models # time=0.12ms
ok 5891 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > success cases > skips entries with non-string id fields # time=0.08ms
ok 5892 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when fetch throws ECONNREFUSED # time=0.43ms
ok 5893 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when fetch throws AbortError (timeout) # time=0.11ms
ok 5894 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > AbortError message mentions timeout # time=0.12ms
ok 5895 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when server returns HTTP 500 # time=0.08ms
ok 5896 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when server returns HTTP 404 # time=0.28ms
ok 5897 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when response body is not valid JSON # time=0.13ms
ok 5898 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when response body has no data array # time=0.15ms
ok 5899 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > when response body is a plain string # time=0.11ms
ok 5900 - src/llm/openai-compat/openai-compat-filter.test.ts > validateServerReachable > throws OpenAICompatServerUnreachableError > error includes the baseUrl in the message # time=0.21ms
ok 5901 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > passes without throwing > when model is in availableModels # time=0.07ms
ok 5902 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > passes without throwing > when model is the only entry in the list # time=0.05ms
ok 5903 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > when model is not in availableModels # time=0.07ms
ok 5904 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > when availableModels is empty # time=0.05ms
ok 5905 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > when model is a substring but not an exact match # time=0.05ms
ok 5906 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > when model is a superstring of an available model # time=0.04ms
ok 5907 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > error includes the requested model name # time=0.14ms
ok 5908 - src/llm/openai-compat/openai-compat-filter.test.ts > validateModelPresent > throws OpenAICompatUnknownModelError > error includes the baseUrl # time=0.06ms
ok 5909 - src/llm/openai-compat/openai-compat-filter.test.ts > validateOpenAICompatConfig > throws on invalid baseUrl before hitting the network # time=0.22ms
ok 5910 - src/llm/openai-compat/openai-compat-filter.test.ts > validateOpenAICompatConfig > throws OpenAICompatServerUnreachableError when server unreachable # time=0.09ms
ok 5911 - src/llm/openai-compat/openai-compat-filter.test.ts > validateOpenAICompatConfig > throws OpenAICompatUnknownModelError when model not in list # time=0.13ms
ok 5912 - src/llm/openai-compat/openai-compat-filter.test.ts > validateOpenAICompatConfig > passes when all three checks succeed # time=0.15ms
ok 5913 - src/llm/openai-compat/openai-compat-filter.test.ts > live server > validateServerReachable returns model list from real server # SKIP
ok 5914 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getQuote > returns parsed quote from Jupiter API # time=1.61ms
ok 5915 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getQuote > includes onlyDirectRoutes param when set # time=0.27ms
ok 5916 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getQuote > throws JupiterApiError on non-ok response # time=0.52ms
ok 5917 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getQuote > throws on fetch timeout # time=13.48ms
ok 5918 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getSwapTransaction > returns serialized transaction bytes # time=2.55ms
ok 5919 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getSwapTransaction > throws if swapTransaction field is missing # time=0.35ms
ok 5920 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getSwapTransaction > throws on non-ok response # time=0.16ms
ok 5921 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getPrice > returns price map for requested mints # time=0.21ms
ok 5922 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getPrice > returns empty map for empty mints array # time=0.44ms
ok 5923 - src/skills/jupiter/jupiter-client.test.ts > JupiterClient > getPrice > throws on non-ok response # time=0.28ms
ok 5924 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > metadata > has correct metadata # time=1.71ms
ok 5925 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > lifecycle > starts in Created state # time=0.12ms
ok 5926 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > lifecycle > transitions to Ready after initialize # time=82.02ms
ok 5927 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > lifecycle > transitions to Stopped after shutdown # time=0.61ms
ok 5928 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > action registry > exposes 7 actions # time=0.93ms
ok 5929 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > action registry > getAction returns correct action by name # time=0.11ms
ok 5930 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > action registry > getAction returns undefined for unknown name # time=0.13ms
ok 5931 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > ensureReady guard > throws SkillNotReadyError when not initialized # time=0.49ms
ok 5932 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > ensureReady guard > throws SkillNotReadyError after shutdown # time=0.83ms
ok 5933 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getSolBalance > returns SOL balance for wallet # time=1.23ms
ok 5934 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getSolBalance > returns balance for a specific address # time=0.80ms
ok 5935 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getTokenBalance > returns zero balance when no token accounts exist # time=0.46ms
ok 5936 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getQuote > calls Jupiter API and returns parsed quote # time=0.74ms
ok 5937 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getQuote > applies default slippage when not specified # time=0.48ms
ok 5938 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > getTokenPrice > returns prices for requested mints # time=0.43ms
ok 5939 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > side-effect review gate > fails closed for executeSwap when no reviewer is configured # time=0.58ms
ok 5940 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > side-effect review gate > routes SOL transfers through the review broker before signing # time=2.19ms
ok 5941 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > side-effect review gate > blocks token transfers when review is denied # time=1.08ms
ok 5942 - src/skills/jupiter/jupiter-skill.test.ts > JupiterSkill > custom config > accepts custom slippage and timeout # time=0.07ms
ok 5943 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > record + getAnalytics > returns null for unknown skill # time=5.41ms
ok 5944 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > record + getAnalytics > records a single event and computes analytics # time=0.42ms
ok 5945 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > record + getAnalytics > aggregates multiple events # time=0.19ms
ok 5946 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > record + getAnalytics > FIFO eviction at max entries # time=0.10ms
ok 5947 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > getAgentUsage > returns null for unknown skill # time=0.08ms
ok 5948 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > getAgentUsage > returns null for unknown agent # time=0.06ms
ok 5949 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > getAgentUsage > returns per-agent summary # time=0.15ms
ok 5950 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > listAgents > returns empty array for unknown skill # time=0.29ms
ok 5951 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > listAgents > returns unique agent IDs # time=0.75ms
ok 5952 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > getTopSkills > returns skills sorted by invocation count # time=0.19ms
ok 5953 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > getTopSkills > defaults to limit of 10 # time=0.20ms
ok 5954 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > addRevenue > accumulates revenue for a skill # time=0.10ms
ok 5955 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > addRevenue > creates entry if skill not yet tracked # time=0.04ms
ok 5956 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > reset > clears data for a single skill # time=0.06ms
ok 5957 - src/skills/monetization/analytics.test.ts > SkillUsageTracker > resetAll > clears all data # time=0.05ms
ok 5958 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > model management > registers and retrieves a subscription model # time=2.84ms
ok 5959 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > model management > returns undefined for unregistered model # time=0.43ms
ok 5960 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > throws when no model registered # time=40.83ms
ok 5961 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > free tier — instant access, no payment # time=2.02ms
ok 5962 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > paid monthly subscription # time=1.33ms
ok 5963 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > paid yearly subscription # time=2.14ms
ok 5964 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > trial period — no payment # time=0.81ms
ok 5965 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > second subscribe after trial goes to paid # time=1.17ms
ok 5966 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > renewal extends time from current expiry # time=0.93ms
ok 5967 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > renewal on expired subscription extends from now # time=0.67ms
ok 5968 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > passes targetPath to purchase # time=1.29ms
ok 5969 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > subscribe > cancelled subscription re-subscribe goes to paid purchase # time=0.85ms
ok 5970 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > unsubscribe > cancels an active subscription # time=0.53ms
ok 5971 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > unsubscribe > throws for non-existent subscription # time=0.24ms
ok 5972 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > returns true for free tier # time=0.21ms
ok 5973 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > returns true for active subscription # time=0.49ms
ok 5974 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > returns false for expired subscription # time=0.48ms
ok 5975 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > falls back to isPurchased for expired subscription # time=0.64ms
ok 5976 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > returns false for unknown skill with no subscription # time=0.42ms
ok 5977 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > returns true for trial subscription # time=0.56ms
ok 5978 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > cancelled subscription retains access until expiresAt # time=0.45ms
ok 5979 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > checkAccess > cancelled subscription loses access after expiresAt # time=3.94ms
ok 5980 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > getActiveSubscriptions > returns only active/trial subscriptions that are not expired # time=1.46ms
ok 5981 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > getAllSubscriptions > returns all subscriptions regardless of status # time=0.96ms
ok 5982 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > revenue delegation > delegates to computeRevenueShare # time=0.25ms
ok 5983 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > usage analytics delegation > records and retrieves usage # time=0.58ms
ok 5984 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > usage analytics delegation > getTopSkills delegates to tracker # time=0.22ms
ok 5985 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > usage analytics delegation > usageTracker getter exposes tracker # time=0.15ms
ok 5986 - src/skills/monetization/manager.test.ts > SkillMonetizationManager > injectable clock > uses clock for subscription timing # time=0.40ms
ok 5987 - src/skills/monetization/revenue.test.ts > computeRevenueShare > uses default 80/20 split # time=0.89ms
ok 5988 - src/skills/monetization/revenue.test.ts > computeRevenueShare > accepts custom BPS split # time=0.24ms
ok 5989 - src/skills/monetization/revenue.test.ts > computeRevenueShare > returns zero shares for zero reward # time=0.09ms
ok 5990 - src/skills/monetization/revenue.test.ts > computeRevenueShare > throws on negative reward # time=0.15ms
ok 5991 - src/skills/monetization/revenue.test.ts > computeRevenueShare > throws when BPS do not sum to denominator # time=0.07ms
ok 5992 - src/skills/monetization/revenue.test.ts > computeRevenueShare > throws on negative developerBps # time=0.06ms
ok 5993 - src/skills/monetization/revenue.test.ts > computeRevenueShare > throws on non-integer protocolBps # time=0.10ms
ok 5994 - src/skills/monetization/revenue.test.ts > computeRevenueShare > remainder goes to developer (favor creator) # time=0.07ms
ok 5995 - src/skills/monetization/revenue.test.ts > computeRevenueShare > handles remainder for non-trivial amounts # time=0.33ms
ok 5996 - src/skills/monetization/revenue.test.ts > computeRevenueShare > handles large amounts correctly # time=0.09ms
ok 5997 - src/skills/monetization/revenue.test.ts > computeRevenueShare > preserves author and treasury fields # time=0.10ms
ok 5998 - src/skills/monetization/revenue.test.ts > computeRevenueShare > 100% developer / 0% protocol # time=0.05ms
ok 5999 - src/skills/monetization/revenue.test.ts > computeRevenueShare > 0% developer / 100% protocol # time=0.04ms
ok 6000 - src/skills/markdown/compat.test.ts > detectNamespace > detects openclaw namespace # time=0.91ms
ok 6001 - src/skills/markdown/compat.test.ts > detectNamespace > detects agenc namespace # time=0.16ms
ok 6002 - src/skills/markdown/compat.test.ts > detectNamespace > returns unknown for no metadata block # time=0.08ms
ok 6003 - src/skills/markdown/compat.test.ts > detectNamespace > returns agenc when both namespaces present (precedence) # time=0.10ms
ok 6004 - src/skills/markdown/compat.test.ts > detectNamespace > returns unknown for non-SKILL.md content # time=0.08ms
ok 6005 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > maps openclaw: to agenc: in YAML frontmatter # time=0.23ms
ok 6006 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > preserves markdown body verbatim # time=0.19ms
ok 6007 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > returns unchanged content for already-agenc skills # time=0.06ms
ok 6008 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > returns unchanged content for non-SKILL.md content # time=0.31ms
ok 6009 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > handles 4-space indentation # time=0.10ms
ok 6010 - src/skills/markdown/compat.test.ts > convertOpenClawSkill > preserves all frontmatter fields # time=0.18ms
ok 6011 - src/skills/markdown/compat.test.ts > convertOpenClawSkill round-trip > converted skill parses correctly via parseSkillContent # time=1.32ms
ok 6012 - src/skills/markdown/compat.test.ts > mapOpenClawMetadata > maps all known fields # time=0.28ms
ok 6013 - src/skills/markdown/compat.test.ts > mapOpenClawMetadata > leaves AgenC-only fields undefined when absent # time=0.11ms
ok 6014 - src/skills/markdown/compat.test.ts > mapOpenClawMetadata > handles empty/missing fields gracefully # time=0.11ms
ok 6015 - src/skills/markdown/compat.test.ts > mapOpenClawMetadata > maps install instructions correctly # time=0.11ms
ok 6016 - src/skills/markdown/compat.test.ts > mapOpenClawMetadata > preserves requirements structure # time=0.08ms
ok 6017 - src/skills/markdown/compat.test.ts > importSkill > imports and converts an openclaw skill from local path # time=14.93ms
ok 6018 - src/skills/markdown/compat.test.ts > importSkill > imports an agenc skill without conversion # time=9.00ms
ok 6019 - src/skills/markdown/compat.test.ts > importSkill > throws for non-existent file # time=7.75ms
ok 6020 - src/skills/markdown/compat.test.ts > importSkill > sanitizes unsafe skill names # time=15.51ms
ok 6021 - src/skills/markdown/compat.test.ts > importSkill > rejects skill names with path traversal # time=10.53ms
ok 6022 - src/skills/markdown/compat.test.ts > importSkill > rejects skill names with path separators # time=12.18ms
ok 6023 - src/skills/markdown/compat.test.ts > importSkill > creates target directory if missing # time=12.15ms
ok 6024 - src/skills/markdown/compat.test.ts > importSkill > URL fetch > fetches and imports from URL # time=23.60ms
ok 6025 - src/skills/markdown/compat.test.ts > importSkill > URL fetch > throws on fetch failure (404) # time=2.33ms
ok 6026 - src/skills/markdown/compat.test.ts > importSkill > URL fetch > throws when content-length exceeds limit # time=5.42ms
ok 6027 - src/skills/markdown/discovery.test.ts > SkillDiscovery > discoverAll > finds skills across all tiers # time=16.26ms
ok 6028 - src/skills/markdown/discovery.test.ts > SkillDiscovery > discoverAll > higher-tier skill shadows lower-tier with same name # time=5.28ms
ok 6029 - src/skills/markdown/discovery.test.ts > SkillDiscovery > validateRequirements > passes when all requirements met # time=29.98ms
ok 6030 - src/skills/markdown/discovery.test.ts > SkillDiscovery > validateRequirements > reports missing binary # time=24.69ms
ok 6031 - src/skills/markdown/discovery.test.ts > SkillDiscovery > validateRequirements > reports missing env var # time=7.55ms
ok 6032 - src/skills/markdown/discovery.test.ts > SkillDiscovery > validateRequirements > reports OS mismatch # time=5.15ms
ok 6033 - src/skills/markdown/discovery.test.ts > SkillDiscovery > validateRequirements > skill with no requirements is always available # time=3.10ms
ok 6034 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkBinary > returns true for existing binary (node) # time=15.95ms
ok 6035 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkBinary > returns false for non-existent binary # time=12.95ms
ok 6036 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkEnv > returns true for set variable # time=0.23ms
ok 6037 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkEnv > returns false for unset variable # time=0.16ms
ok 6038 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkOs > matches current platform # time=0.06ms
ok 6039 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkOs > maps macos to darwin # time=0.05ms
ok 6040 - src/skills/markdown/discovery.test.ts > SkillDiscovery > checkOs > empty list allows any OS # time=0.03ms
ok 6041 - src/skills/markdown/discovery.test.ts > SkillDiscovery > getAvailable > filters out unavailable skills # time=13.22ms
ok 6042 - src/skills/markdown/discovery.test.ts > SkillDiscovery > discoverInDirectory > empty directory returns empty array # time=2.33ms
ok 6043 - src/skills/markdown/discovery.test.ts > SkillDiscovery > discoverInDirectory > missing directory returns empty array # time=0.30ms
ok 6044 - src/skills/markdown/discovery.test.ts > SkillDiscovery > discoverInDirectory > non-SKILL.md files are skipped # time=38.73ms
ok 6045 - src/skills/markdown/injector.test.ts > estimateTokens > returns ceil(length / 4) # time=1.17ms
ok 6046 - src/skills/markdown/injector.test.ts > scoreRelevance > returns higher score for matching tags # time=0.38ms
ok 6047 - src/skills/markdown/injector.test.ts > scoreRelevance > returns 1.0 for explicit /skill command # time=0.43ms
ok 6048 - src/skills/markdown/injector.test.ts > scoreRelevance > returns 0 for no match # time=0.25ms
ok 6049 - src/skills/markdown/injector.test.ts > scoreRelevance > returns 0 for empty message # time=0.10ms
ok 6050 - src/skills/markdown/injector.test.ts > scoreRelevance > is case-insensitive # time=0.40ms
ok 6051 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > returns metadata-only summaries for matching skills # time=2.22ms
ok 6052 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > returns undefined when no skills match # time=0.62ms
ok 6053 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > filters by capability bitmask # time=0.53ms
ok 6054 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > requires ALL capability bits, not just any overlap # time=0.44ms
ok 6055 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > handles hex requiredCapabilities strings # time=0.25ms
ok 6056 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > skills with no requiredCapabilities always pass filter # time=0.21ms
ok 6057 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > respects token budget # time=0.50ms
ok 6058 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > does not inject unrelated available skills # time=0.24ms
ok 6059 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > inject > prioritizes higher-scoring skills # time=0.31ms
ok 6060 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > cache > caches discovery results per session # time=0.22ms
ok 6061 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > cache > refreshes cache after TTL expires # time=0.28ms
ok 6062 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > cache > clearCache invalidates specific session # time=0.13ms
ok 6063 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > cache > clearCache with no arg clears all sessions # time=0.12ms
ok 6064 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > injectDetailed > returns injected/excluded lists and token count # time=0.32ms
ok 6065 - src/skills/markdown/injector.test.ts > MarkdownSkillInjector > injectDetailed > returns empty result when nothing matches # time=0.36ms
ok 6066 - src/skills/markdown/parser.test.ts > isSkillMarkdown > returns true for content with frontmatter # time=0.87ms
ok 6067 - src/skills/markdown/parser.test.ts > isSkillMarkdown > returns false for plain markdown # time=0.18ms
ok 6068 - src/skills/markdown/parser.test.ts > parseSkillContent > parses valid SKILL.md with all fields # time=1.56ms
ok 6069 - src/skills/markdown/parser.test.ts > parseSkillContent > parses minimal frontmatter (name, description, version only) # time=0.23ms
ok 6070 - src/skills/markdown/parser.test.ts > parseSkillContent > parses metadata.openclaw namespace and normalizes # time=0.14ms
ok 6071 - src/skills/markdown/parser.test.ts > parseSkillContent > parses metadata.agenc namespace (takes precedence over openclaw) # time=0.10ms
ok 6072 - src/skills/markdown/parser.test.ts > parseSkillContent > body preserves markdown formatting # time=0.22ms
ok 6073 - src/skills/markdown/parser.test.ts > parseSkillContent > parses install instructions # time=0.24ms
ok 6074 - src/skills/markdown/parser.test.ts > parseSkillContent > parses requirements (binaries, env, os) # time=0.38ms
ok 6075 - src/skills/markdown/parser.test.ts > parseSkillContent > parses AgenC extensions (requiredCapabilities, onChainAuthor) # time=0.13ms
ok 6076 - src/skills/markdown/parser.test.ts > parseSkillContent > empty body returns empty string # time=1.29ms
ok 6077 - src/skills/markdown/parser.test.ts > parseSkillContent > unknown fields do not error (lenient) # time=0.13ms
ok 6078 - src/skills/markdown/parser.test.ts > parseSkillContent > URL-like array items are not misidentified as objects # time=0.08ms
ok 6079 - src/skills/markdown/parser.test.ts > parseSkillFile > reads and parses from filesystem # time=2.76ms
ok 6080 - src/skills/markdown/parser.test.ts > validateSkillMetadata > missing name produces error # time=0.14ms
ok 6081 - src/skills/markdown/parser.test.ts > validateSkillMetadata > missing description produces error # time=0.05ms
ok 6082 - src/skills/markdown/parser.test.ts > validateSkillMetadata > missing version produces error # time=0.04ms
ok 6083 - src/skills/markdown/parser.test.ts > validateSkillMetadata > valid skill produces no errors # time=0.05ms
ok 6084 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > constructor > accepts config and stores connection # time=1.19ms
ok 6085 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > constructor > sets defaults for contentGateway and logger # time=0.21ms
ok 6086 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > search > returns matching skills by query # time=55.94ms
ok 6087 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > search > filters by tags # time=1.78ms
ok 6088 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > search > respects default limit of 10 # time=36.34ms
ok 6089 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > search > clamps limit to MAX_SEARCH_LIMIT (100) # time=0.34ms
ok 6090 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > search > returns empty array for no matches # time=0.95ms
ok 6091 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > get > returns full SkillListing for existing skill # time=1.53ms
ok 6092 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > get > throws SkillRegistryNotFoundError for non-existent skill # time=0.92ms
ok 6093 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > get > derives PDA using skill seed and skillId # time=1.98ms
ok 6094 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > install > downloads from gateway and saves to targetPath # time=2.00ms
ok 6095 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > install > creates parent directories # time=0.97ms
ok 6096 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > install > throws SkillDownloadError on fetch failure # time=0.92ms
ok 6097 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > install > throws SkillDownloadError on HTTP non-OK response # time=0.58ms
ok 6098 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > install > throws SkillVerificationError on hash mismatch # time=0.73ms
ok 6099 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > publish > reads SKILL.md and computes hash # time=0.48ms
ok 6100 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > publish > returns hash as skillId # time=0.18ms
ok 6101 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > publish > validates SKILL.md format # time=0.20ms
ok 6102 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > publish > throws SkillPublishError when file cannot be read # time=0.12ms
ok 6103 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > rate > validates rating is between 1 and 5 # time=0.60ms
ok 6104 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > rate > throws ValidationError without wallet # time=0.18ms
ok 6105 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > rate > accepts valid rating with wallet # time=0.43ms
ok 6106 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > listByAuthor > returns skills by author # time=0.74ms
ok 6107 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > listByAuthor > returns empty for unknown author # time=0.47ms
ok 6108 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > listByAuthor > validates pubkey format # time=0.13ms
ok 6109 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > verify > returns true for matching hash # time=0.55ms
ok 6110 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > verify > returns false for mismatched hash # time=0.49ms
ok 6111 - src/skills/registry/client.test.ts > OnChainSkillRegistryClient > verify > throws for non-existent skillId # time=0.37ms
ok 6112 - src/skills/registry/payment.test.ts > SkillPurchaseManager > constructor > caches buyerAgentPda and protocolPda # time=59.07ms
ok 6113 - src/skills/registry/payment.test.ts > SkillPurchaseManager > isPurchased > returns true when purchase record exists # time=2.96ms
ok 6114 - src/skills/registry/payment.test.ts > SkillPurchaseManager > isPurchased > returns false when purchase record is absent # time=2.33ms
ok 6115 - src/skills/registry/payment.test.ts > SkillPurchaseManager > fetchPurchaseRecord > returns null when not found # time=1.64ms
ok 6116 - src/skills/registry/payment.test.ts > SkillPurchaseManager > fetchPurchaseRecord > parses raw record correctly # time=2.37ms
ok 6117 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > purchases paid skill (SOL) and returns correct result # time=3.71ms
ok 6118 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > purchases free skill — tx sent, paid=false, pricePaid=0 # time=2.16ms
ok 6119 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > computes correct protocol fee # time=2.70ms
ok 6120 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > re-purchase skips tx and re-downloads content # time=2.62ms
ok 6121 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > SPL token payment — token accounts passed correctly # time=6.19ms
ok 6122 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > SOL payment — token accounts are null # time=2.18ms
ok 6123 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > download failure after tx — partial result with empty contentPath # time=2.16ms
ok 6124 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > inactive skill → SkillPurchaseError # time=2.77ms
ok 6125 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > self-purchase → SkillPurchaseError # time=1.77ms
ok 6126 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > insufficient balance → SkillPurchaseError # time=7.66ms
ok 6127 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > missing token accounts → SkillPurchaseError # time=2.25ms
ok 6128 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > token mint mismatch → SkillPurchaseError # time=1.60ms
ok 6129 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > inactive buyer agent → SkillPurchaseError # time=2.37ms
ok 6130 - src/skills/registry/payment.test.ts > SkillPurchaseManager > purchase > unknown error is re-thrown as-is # time=2.33ms
ok 6131 - src/skills/registry/payment.test.ts > SkillPurchaseManager > getPurchaseHistory > returns parsed records sorted by timestamp desc # time=2.45ms
ok 6132 - src/skills/registry/payment.test.ts > SkillPurchaseManager > getPurchaseHistory > returns empty array when no purchases # time=1.12ms
ok 6133 - src/skills/registry/payment.test.ts > SkillPurchaseManager > getPurchaseHistory > uses memcmp filter on buyer field # time=1.65ms
ok 6134 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.claimTask returns a signer error when the program context is read-only # time=2.70ms
ok 6135 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.claimTask tells the caller to register an agent when auto-discovery finds none # time=1.95ms
ok 6136 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.claimTask lists signer agent choices when auto-discovery finds multiple registrations # time=7.27ms
ok 6137 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.claimTask auto-selects the single active agent when only one of multiple registrations is active # time=0.89ms
ok 6138 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.claimTask includes only active agents in the ambiguity error when multiple are active # time=0.52ms
ok 6139 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.completeTask validates proofHash length # time=0.40ms
ok 6140 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.completeTask derives accepted-bid settlement accounts for bid-exclusive tasks # time=43.29ms
ok 6141 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.registerSkill returns the derived skill payload on success # time=12.95ms
ok 6142 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.createProposal maps proposalType strings and returns a success payload # time=106.52ms
ok 6143 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.purchaseSkill returns the purchase payload on success # time=6.00ms
ok 6144 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.initiateDispute auto-discovers the sole worker claim for creator-initiated disputes # time=2.05ms
ok 6145 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.resolveDispute returns transaction details when the dispute resolves # time=6.00ms
ok 6146 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.resolveDispute derives accepted-bid settlement accounts for bid-exclusive disputes # time=12.14ms
ok 6147 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.delegateReputation resolves delegatee ids and returns a success payload # time=1.11ms
ok 6148 - src/tools/agenc/mutation-tools.test.ts > agenc mutation tools > agenc.stakeReputation returns the stake payload on success # time=0.85ms
ok 6149 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > blocks raw agenc.createTask by default # time=2.27ms
ok 6150 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > preserves task creation when devnet does not support job spec metadata publishing # time=59.00ms
ok 6151 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > accepts a valid verified storefront attestation and persists verified task metadata # time=245.48ms
ok 6152 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > uses taskDescription (not description) as the input schema property name # time=1.18ms
ok 6153 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > requires taskDescription (not description) in the input schema # time=0.60ms
ok 6154 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > lists approved task templates # time=0.37ms
ok 6155 - src/tools/agenc/tools-task-templates.test.ts > agenc task template tools > fetches a selected approved task template # time=0.29ms
ok 6156 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getTask does not fetch remote job specs by default # time=31.70ms
ok 6157 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getJobSpec fails closed without fetching remote job specs by default # time=18.41ms
ok 6158 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getJobSpec resolves remote job specs when explicitly allowed # time=22.29ms
ok 6159 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getJobSpec normalizes trusted remote URIs that end with a stale hash segment # time=25.99ms
ok 6160 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.listTasks payload enrichment does not fetch remote job specs by default # time=8.71ms
ok 6161 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.listSkills filters and sorts marketplace skills # time=0.89ms
ok 6162 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getSkill returns serialized skill detail # time=0.37ms
ok 6163 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.listGovernanceProposals filters normalized proposal status # time=2.87ms
ok 6164 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getGovernanceProposal returns serialized vote detail # time=2.83ms
ok 6165 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.listDisputes returns enriched dispute summaries # time=1.97ms
ok 6166 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getDispute returns enriched dispute detail with related task context # time=1.22ms
ok 6167 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.getReputationSummary returns an unregistered summary when no agent registration exists # time=0.32ms
ok 6168 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace returns a reputation placeholder when no subject or signer is available # time=0.70ms
ok 6169 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace returns an unregistered signer summary when no signer registration exists # time=5.87ms
ok 6170 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace lists signer agent choices when multiple registrations exist # time=6.63ms
ok 6171 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace overview reports signer reputation as not found without a registration # time=3.72ms
ok 6172 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace tasks surface preserves total count when limit truncates items # time=1.51ms
ok 6173 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace overview uses total task count even when task items are limited # time=5.77ms
ok 6174 - src/tools/agenc/tools.test.ts > agenc query tools > agenc.inspectMarketplace returns disputes surfaces with enriched dispute aliases intact # time=1.23ms
ok 6175 - src/tools/social/tools.test.ts > Social Tools > creates 6 tools # time=2.47ms
ok 6176 - src/tools/social/tools.test.ts > Social Tools > social.searchAgents > returns not-enabled when discovery is null # time=0.50ms
ok 6177 - src/tools/social/tools.test.ts > Social Tools > social.searchAgents > calls discovery.search with correct filters # time=0.58ms
ok 6178 - src/tools/social/tools.test.ts > Social Tools > social.searchAgents > returns error for invalid capabilities # time=0.28ms
ok 6179 - src/tools/social/tools.test.ts > Social Tools > social.searchAgents > serializes profiles correctly # time=0.99ms
ok 6180 - src/tools/social/tools.test.ts > Social Tools > social.sendMessage > returns not-enabled when messaging is null # time=0.27ms
ok 6181 - src/tools/social/tools.test.ts > Social Tools > social.sendMessage > validates recipient as base58 # time=0.33ms
ok 6182 - src/tools/social/tools.test.ts > Social Tools > social.sendMessage > calls messaging.send with correct args # time=0.53ms
ok 6183 - src/tools/social/tools.test.ts > Social Tools > social.sendMessage > resolves configured peer aliases and reports the resolution # time=0.84ms
ok 6184 - src/tools/social/tools.test.ts > Social Tools > social.getRecentMessages > returns not-enabled when messaging is null # time=0.26ms
ok 6185 - src/tools/social/tools.test.ts > Social Tools > social.getRecentMessages > calls messaging.getRecentMessages with parsed filters # time=0.49ms
ok 6186 - src/tools/social/tools.test.ts > Social Tools > social.getRecentMessages > adds peer labels to recent messages when the directory is configured # time=0.24ms
ok 6187 - src/tools/social/tools.test.ts > Social Tools > social.getRecentMessages > returns thread ids with recent messages # time=0.13ms
ok 6188 - src/tools/social/tools.test.ts > Social Tools > social.postToFeed > returns not-enabled when feed is null # time=0.13ms
ok 6189 - src/tools/social/tools.test.ts > Social Tools > social.postToFeed > validates hex format # time=0.11ms
ok 6190 - src/tools/social/tools.test.ts > Social Tools > social.postToFeed > calls feed.post with Uint8Array args # time=0.31ms
ok 6191 - src/tools/social/tools.test.ts > Social Tools > social.getReputation > returns error when profile not found # time=0.15ms
ok 6192 - src/tools/social/tools.test.ts > Social Tools > social.getReputation > returns on-chain reputation # time=0.14ms
ok 6193 - src/tools/social/tools.test.ts > Social Tools > social.getReputation > resolves peer aliases for reputation lookups # time=43.36ms
ok 6194 - src/tools/social/tools.test.ts > Social Tools > social.requestCollaboration > returns not-enabled when collab is null # time=3.73ms
ok 6195 - src/tools/social/tools.test.ts > Social Tools > social.requestCollaboration > calls with correct CollaborationRequest shape # time=0.33ms
ok 6196 - src/tools/system/bash.test.ts > system.bash tool > executes allowed command and returns stdout/stderr/exitCode # time=2.15ms
ok 6197 - src/tools/system/bash.test.ts > system.bash tool > passes command and args to execFile correctly # time=0.70ms
ok 6198 - src/tools/system/bash.test.ts > system.bash tool > returns durationMs and truncated fields # time=0.17ms
ok 6199 - src/tools/system/bash.test.ts > system.bash tool > rejects command on default deny list # time=0.88ms
ok 6200 - src/tools/system/bash.test.ts > system.bash tool > rejects command on custom deny list # time=0.17ms
ok 6201 - src/tools/system/bash.test.ts > system.bash tool > merges custom deny list with default deny list # time=0.09ms
ok 6202 - src/tools/system/bash.test.ts > system.bash tool > blocks /usr/bin/sudo via basename check # time=0.14ms
ok 6203 - src/tools/system/bash.test.ts > system.bash tool > allows /usr/bin/bash via basename check # time=52.36ms
ok 6204 - src/tools/system/bash.test.ts > system.bash tool > allows /usr/local/bin/python3 — script interpreters are no longer blocked # time=0.57ms
ok 6205 - src/tools/system/bash.test.ts > system.bash tool > allows bash, sh, zsh, dash shell invocation # time=204.61ms
ok 6206 - src/tools/system/bash.test.ts > system.bash tool > runs builtin-plus-chaining invocations in shell mode with the full command # time=52.26ms
ok 6207 - src/tools/system/bash.test.ts > system.bash tool > rejects direct-mode args that contain shell separators for non-builtin commands # time=0.29ms
ok 6208 - src/tools/system/bash.test.ts > system.bash tool > allows shell wrapper commands in direct mode # time=50.01ms
ok 6209 - src/tools/system/bash.test.ts > system.bash tool > allows shell wrapper inline scripts with shell syntax in direct mode # time=52.77ms
ok 6210 - src/tools/system/bash.test.ts > system.bash tool > blocks sudo and su # time=0.21ms
ok 6211 - src/tools/system/bash.test.ts > system.bash tool > allows curl and wget — needed for fetching docs and testing API endpoints # time=0.20ms
ok 6212 - src/tools/system/bash.test.ts > system.bash tool > allows python, node, perl, ruby — agent must be able to run scripts it writes # time=0.33ms
ok 6213 - src/tools/system/bash.test.ts > system.bash tool > allows version-specific python binaries (no more prefix matching) # time=0.13ms
ok 6214 - src/tools/system/bash.test.ts > system.bash tool > blocks nc, netcat, ncat, socat — reverse shell vectors # time=0.12ms
ok 6215 - src/tools/system/bash.test.ts > system.bash tool > blocks dd, mkfs, mount, umount — disk-level destructive ops # time=0.11ms
ok 6216 - src/tools/system/bash.test.ts > system.bash tool > blocks shutdown, reboot, halt, poweroff, init # time=0.15ms
ok 6217 - src/tools/system/bash.test.ts > system.bash tool > allows command on allow list # time=0.08ms
ok 6218 - src/tools/system/bash.test.ts > system.bash tool > rejects command not on allow list when allow list is non-empty # time=0.06ms
ok 6219 - src/tools/system/bash.test.ts > system.bash tool > deny list takes precedence over allow list # time=0.19ms
ok 6220 - src/tools/system/bash.test.ts > system.bash tool > passes minimal environment by default (PATH + HOME only) # time=0.12ms
ok 6221 - src/tools/system/bash.test.ts > system.bash tool > uses custom env when provided in config # time=0.07ms
ok 6222 - src/tools/system/bash.test.ts > system.bash tool > uses config cwd when no per-call cwd # time=0.05ms
ok 6223 - src/tools/system/bash.test.ts > system.bash tool > uses per-call cwd override # time=0.06ms
ok 6224 - src/tools/system/bash.test.ts > system.bash tool > rejects per-call cwd override when lockCwd is enabled # time=0.08ms
ok 6225 - src/tools/system/bash.test.ts > system.bash tool > allows execution with default cwd when lockCwd is enabled and no per-call override # time=0.05ms
ok 6226 - src/tools/system/bash.test.ts > system.bash tool > enforces timeout on execFile error with killed flag # time=0.13ms
ok 6227 - src/tools/system/bash.test.ts > system.bash tool > uses default timeout when none specified # time=0.05ms
ok 6228 - src/tools/system/bash.test.ts > system.bash tool > uses per-call timeout override when within maxTimeoutMs # time=0.05ms
ok 6229 - src/tools/system/bash.test.ts > system.bash tool > caps per-call timeout at maxTimeoutMs # time=0.05ms
ok 6230 - src/tools/system/bash.test.ts > system.bash tool > caps default timeout at maxTimeoutMs when maxTimeoutMs equals timeoutMs # time=0.04ms
ok 6231 - src/tools/system/bash.test.ts > system.bash tool > truncates stdout exceeding maxOutputBytes and sets truncated flag # time=0.11ms
ok 6232 - src/tools/system/bash.test.ts > system.bash tool > truncates stderr exceeding maxOutputBytes # time=0.60ms
ok 6233 - src/tools/system/bash.test.ts > system.bash tool > returns error for empty command # time=0.20ms
ok 6234 - src/tools/system/bash.test.ts > system.bash tool > returns error for non-string command # time=0.10ms
ok 6235 - src/tools/system/bash.test.ts > system.bash tool > returns error for non-array args # time=0.06ms
ok 6236 - src/tools/system/bash.test.ts > system.bash tool > routes shell-like command strings to shell mode # time=52.33ms
ok 6237 - src/tools/system/bash.test.ts > system.bash tool > rejects shell-like command strings when shellMode is disabled # time=0.16ms
ok 6238 - src/tools/system/bash.test.ts > system.bash tool > normalizes safe direct-mode command lines when args are present # time=0.24ms
ok 6239 - src/tools/system/bash.test.ts > system.bash tool > promotes builtin chaining requests into shell mode instead of failing direct execution # time=51.64ms
ok 6240 - src/tools/system/bash.test.ts > system.bash tool > applies shell safety guards to inline shell wrapper scripts # time=0.18ms
ok 6241 - src/tools/system/bash.test.ts > system.bash tool > rejects shell builtin commands with actionable guidance # time=0.09ms
ok 6242 - src/tools/system/bash.test.ts > system.bash tool > returns error for non-string elements in args array # time=0.06ms
ok 6243 - src/tools/system/bash.test.ts > system.bash tool > returns correct inputSchema # time=0.11ms
ok 6244 - src/tools/system/bash.test.ts > system.bash tool > returns isError true with exit code on command failure # time=0.11ms
ok 6245 - src/tools/system/bash.test.ts > system.bash tool > falls back to error.message when stderr is empty # time=0.07ms
ok 6246 - src/tools/system/bash.test.ts > system.bash tool > returns an explicit cwd error when the working directory does not exist # time=0.14ms
ok 6247 - src/tools/system/bash.test.ts > system.bash tool > logs denials via warn # time=0.11ms
ok 6248 - src/tools/system/bash.test.ts > system.bash tool > logs successful execution via debug # time=0.10ms
ok 6249 - src/tools/system/bash.test.ts > system.bash tool > logs timeout via warn # time=0.10ms
ok 6250 - src/tools/system/bash.test.ts > system.bash tool > shell mode > executes pipe commands via spawn with temp script # time=52.08ms
ok 6251 - src/tools/system/bash.test.ts > system.bash tool > shell mode > executes redirect commands via spawn with temp script # time=52.14ms
ok 6252 - src/tools/system/bash.test.ts > system.bash tool > shell mode > executes backgrounded commands via spawn with temp script # time=51.57ms
ok 6253 - src/tools/system/bash.test.ts > system.bash tool > shell mode > executes chained commands via spawn with temp script # time=50.74ms
ok 6254 - src/tools/system/bash.test.ts > system.bash tool > shell mode > handles exit code from shell commands # time=50.65ms
ok 6255 - src/tools/system/bash.test.ts > system.bash tool > shell mode > handles timeout in shell mode # time=101.92ms
ok 6256 - src/tools/system/bash.test.ts > system.bash tool > shell mode > handles timeout for direct shell-wrapper scripts via spawned process groups # time=101.86ms
ok 6257 - src/tools/system/bash.test.ts > system.bash tool > shell mode > truncates shell mode output exceeding maxOutputBytes # time=50.55ms
ok 6258 - src/tools/system/bash.test.ts > system.bash tool > shell mode > fails closed when direct-mode args contain shell separators # time=0.33ms
ok 6259 - src/tools/system/bash.test.ts > system.bash tool > shell mode > treats an explicit empty args array as direct mode and rejects shell-shaped commands # time=0.17ms
ok 6260 - src/tools/system/bash.test.ts > system.bash tool > shell mode > does NOT use shell mode for single-token commands without args # time=0.13ms
ok 6261 - src/tools/system/bash.test.ts > system.bash tool > shell mode > applies cwd override in shell mode # time=50.64ms
ok 6262 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks sudo in shell mode # time=0.21ms
ok 6263 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks rm -rf / in shell mode # time=0.08ms
ok 6264 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks rm -rf ~/ in shell mode # time=0.06ms
ok 6265 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks reverse shell patterns # time=0.06ms
ok 6266 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks /dev/tcp reverse shell # time=0.06ms
ok 6267 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks curl piped to bash # time=0.05ms
ok 6268 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks wget piped to sh # time=0.05ms
ok 6269 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks shutdown command # time=0.05ms
ok 6270 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks dd writes to devices # time=0.05ms
ok 6271 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > fails closed on indeterminate workspace writes # time=0.15ms
ok 6272 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks shell writes into the workspace root # time=0.60ms
ok 6273 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows mkdir scaffolding in the workspace root # time=51.36ms
ok 6274 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks dangerous inline shell wrapper scripts # time=0.23ms
ok 6275 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > enforces deny list in shell mode (issue \#1321 regression) # time=0.21ms
ok 6276 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks variable-expanded executables in shell mode # time=0.11ms
ok 6277 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks command-substitution executables in shell mode (issue \#1334 regression): $(printf socat) - # time=0.11ms
ok 6278 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > blocks command-substitution executables in shell mode (issue \#1334 regression): `printf socat` - # time=0.12ms
ok 6279 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > enforces allow list in shell mode # time=50.80ms
ok 6280 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows rm in shell mode (deny list pruned to real threats) # time=51.05ms
ok 6281 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows curl in shell mode (deny list pruned) # time=50.59ms
ok 6282 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows python3 in shell mode (script interpreters re-enabled) # time=51.11ms
ok 6283 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows pkill in shell mode (process management re-enabled) # time=50.49ms
ok 6284 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > still blocks sudo in shell mode (privilege escalation stays blocked) # time=0.23ms
ok 6285 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows cat with wc pipe # time=50.76ms
ok 6286 - src/tools/system/bash.test.ts > system.bash tool > shell safety guards > allows backgrounded sleep command # time=50.11ms
ok 6287 - src/tools/system/bash.test.ts > system.bash tool > shellMode: false > rejects shell-like commands when shell mode is disabled # time=0.24ms
ok 6288 - src/tools/system/bash.test.ts > system.bash tool > shellMode: false > still allows direct-mode execution when shell mode is disabled # time=0.13ms
ok 6289 - src/tools/system/bash.test.ts > validateShellCommand > allows safe commands # time=0.08ms
ok 6290 - src/tools/system/bash.test.ts > validateShellCommand > blocks all dangerous patterns # time=0.18ms
ok 6291 - src/tools/system/bash.test.ts > validateShellCommand > allows rm on non-root paths # time=0.08ms
ok 6292 - src/tools/system/bash.test.ts > validateShellCommand > blocks rm -rf / # time=0.04ms
ok 6293 - src/tools/system/bash.test.ts > validateShellCommand > blocks rm -rf /* # time=0.03ms
ok 6294 - src/tools/system/bash.test.ts > isCommandAllowed > allows command not in deny list and no allow list # time=0.05ms
ok 6295 - src/tools/system/bash.test.ts > isCommandAllowed > denies command in deny list # time=0.03ms
ok 6296 - src/tools/system/bash.test.ts > isCommandAllowed > denies command by basename when given absolute path # time=0.03ms
ok 6297 - src/tools/system/bash.test.ts > isCommandAllowed > denies /usr/bin/bash by basename # time=0.03ms
ok 6298 - src/tools/system/bash.test.ts > isCommandAllowed > allows command on allow list # time=0.03ms
ok 6299 - src/tools/system/bash.test.ts > isCommandAllowed > denies command not on allow list # time=0.03ms
ok 6300 - src/tools/system/bash.test.ts > isCommandAllowed > deny list takes precedence over allow list # time=0.04ms
ok 6301 - src/tools/system/bash.test.ts > isCommandAllowed > allows version-specific python now that DEFAULT_DENY_PREFIXES is empty # time=0.03ms
ok 6302 - src/tools/system/bash.test.ts > isCommandAllowed > allows pypy3 now that the prefix list is empty # time=0.03ms
ok 6303 - src/tools/system/bash.test.ts > isCommandAllowed > allows absolute path to version-specific binary # time=0.03ms
ok 6304 - src/tools/system/bash.test.ts > isCommandAllowed > denies variable-expanded executable names # time=0.04ms
ok 6305 - src/tools/system/bash.test.ts > isCommandAllowed > exact excluded command still bypasses any explicit deny entry # time=0.03ms
ok 6306 - src/tools/system/bash.test.ts > isCommandAllowed > allows commands that do not match any deny prefix # time=0.05ms
ok 6307 - src/tools/system/bash.test.ts > isCommandAllowed > allows ls even though it starts with "l" (no prefix match) # time=0.03ms
ok 6308 - src/tools/system/browser.test.ts > createBrowserTools > basic mode creates 3 tools # time=3.12ms
ok 6309 - src/tools/system/browser.test.ts > createBrowserTools > advanced mode creates 15 tools # time=0.73ms
ok 6310 - src/tools/system/browser.test.ts > createBrowserTools > defaults to basic mode # time=0.56ms
ok 6311 - src/tools/system/browser.test.ts > createBrowserTools > throws on invalid mode # time=0.86ms
ok 6312 - src/tools/system/browser.test.ts > createBrowserTools > throws on invalid maxResponseBytes # time=0.26ms
ok 6313 - src/tools/system/browser.test.ts > createBrowserTools > throws on invalid timeoutMs # time=0.20ms
ok 6314 - src/tools/system/browser.test.ts > system.browse > fetches and extracts text from HTML # time=19.37ms
ok 6315 - src/tools/system/browser.test.ts > system.browse > respects domain blocklist # time=0.48ms
ok 6316 - src/tools/system/browser.test.ts > system.browse > rejects invalid URL # time=0.77ms
ok 6317 - src/tools/system/browser.test.ts > system.browse > rejects missing URL # time=0.23ms
ok 6318 - src/tools/system/browser.test.ts > system.browse > handles timeout errors # time=1.60ms
ok 6319 - src/tools/system/browser.test.ts > system.browse > handles connection errors # time=0.37ms
ok 6320 - src/tools/system/browser.test.ts > system.browse > truncates at maxResponseBytes # time=0.90ms
ok 6321 - src/tools/system/browser.test.ts > system.browse > notes non-HTML content type # time=0.47ms
ok 6322 - src/tools/system/browser.test.ts > system.browse > includes links when requested # time=0.55ms
ok 6323 - src/tools/system/browser.test.ts > system.browse > returns empty text for empty page # time=0.38ms
ok 6324 - src/tools/system/browser.test.ts > system.browse > renders 404 page content without error # time=0.62ms
ok 6325 - src/tools/system/browser.test.ts > system.extractLinks > extracts links from a page # time=0.70ms
ok 6326 - src/tools/system/browser.test.ts > system.extractLinks > filters links by text # time=0.48ms
ok 6327 - src/tools/system/browser.test.ts > system.extractLinks > rejects blocked domains # time=0.16ms
ok 6328 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts headings to markdown # time=0.62ms
ok 6329 - src/tools/system/browser.test.ts > system.htmlToMarkdown > handles empty input # time=0.20ms
ok 6330 - src/tools/system/browser.test.ts > system.htmlToMarkdown > rejects missing html # time=0.65ms
ok 6331 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts list items # time=0.56ms
ok 6332 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts code blocks # time=0.46ms
ok 6333 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts blockquotes # time=0.31ms
ok 6334 - src/tools/system/browser.test.ts > system.htmlToMarkdown > extracts page title # time=0.29ms
ok 6335 - src/tools/system/browser.test.ts > system.htmlToMarkdown > renders inline links as markdown # time=0.31ms
ok 6336 - src/tools/system/browser.test.ts > system.htmlToMarkdown > renders strong/bold as markdown # time=0.31ms
ok 6337 - src/tools/system/browser.test.ts > system.htmlToMarkdown > renders emphasis/italic as markdown # time=0.33ms
ok 6338 - src/tools/system/browser.test.ts > system.htmlToMarkdown > sanitizes javascript: links in inline markdown # time=0.31ms
ok 6339 - src/tools/system/browser.test.ts > system.htmlToMarkdown > preserves document order for mixed heading levels # time=0.43ms
ok 6340 - src/tools/system/browser.test.ts > system.htmlToMarkdown > does not duplicate paragraphs nested inside blockquotes # time=0.75ms
ok 6341 - src/tools/system/browser.test.ts > system.htmlToMarkdown > does not duplicate paragraphs nested inside list items # time=0.40ms
ok 6342 - src/tools/system/browser.test.ts > system.htmlToMarkdown > handles single-quoted href in inline links # time=0.27ms
ok 6343 - src/tools/system/browser.test.ts > system.htmlToMarkdown > numbers ordered list items # time=0.52ms
ok 6344 - src/tools/system/browser.test.ts > system.htmlToMarkdown > distinguishes ordered and unordered lists # time=0.39ms
ok 6345 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts simple table to markdown # time=0.83ms
ok 6346 - src/tools/system/browser.test.ts > system.htmlToMarkdown > converts table with inline formatting # time=0.44ms
ok 6347 - src/tools/system/browser.test.ts > system.htmlToMarkdown > pads table rows with empty cells # time=0.47ms
ok 6348 - src/tools/system/browser.test.ts > sanitizeHref > allows http links # time=0.10ms
ok 6349 - src/tools/system/browser.test.ts > sanitizeHref > allows https links # time=0.07ms
ok 6350 - src/tools/system/browser.test.ts > sanitizeHref > allows mailto links # time=0.06ms
ok 6351 - src/tools/system/browser.test.ts > sanitizeHref > allows relative links # time=0.07ms
ok 6352 - src/tools/system/browser.test.ts > sanitizeHref > strips javascript: hrefs # time=0.06ms
ok 6353 - src/tools/system/browser.test.ts > sanitizeHref > strips data: hrefs # time=0.06ms
ok 6354 - src/tools/system/browser.test.ts > sanitizeHref > strips vbscript: hrefs # time=0.06ms
ok 6355 - src/tools/system/browser.test.ts > sanitizeHref > strips case-insensitive dangerous schemes # time=0.09ms
ok 6356 - src/tools/system/browser.test.ts > sanitizeHref > returns empty string for empty input # time=0.06ms
ok 6357 - src/tools/system/browser.test.ts > sanitizeHref > strips control characters in scheme position # time=0.08ms
ok 6358 - src/tools/system/browser.test.ts > sanitizeHref > strips file: scheme # time=0.06ms
ok 6359 - src/tools/system/browser.test.ts > sanitizeHref > allows fragment-only links # time=0.06ms
ok 6360 - src/tools/system/browser.test.ts > redirect handling > follows redirects # time=0.77ms
ok 6361 - src/tools/system/browser.test.ts > redirect handling > redirect to blocked domain is stopped # time=0.20ms
ok 6362 - src/tools/system/browser.test.ts > redirect handling > stops after max redirects # time=3.52ms
ok 6363 - src/tools/system/browser.test.ts > redirect handling > errors on redirect without Location header # time=0.46ms
ok 6364 - src/tools/system/browser.test.ts > redirect handling > redirect to hostname resolving privately is stopped # time=0.33ms
ok 6365 - src/tools/system/browser.test.ts > domain validation > respects allowed domains # time=0.20ms
ok 6366 - src/tools/system/browser.test.ts > domain validation > blocks SSRF targets # time=0.15ms
ok 6367 - src/tools/system/browser.test.ts > domain validation > blocks hostnames when DNS resolves to a private IP # time=0.13ms
ok 6368 - src/tools/system/browser.test.ts > domain validation > blocks non-HTTP schemes # time=0.09ms
ok 6369 - src/tools/system/browser.test.ts > system.screenshot > captures a screenshot # time=4.02ms
ok 6370 - src/tools/system/browser.test.ts > system.screenshot > sets custom viewport # time=0.52ms
ok 6371 - src/tools/system/browser.test.ts > system.screenshot > supports fullPage option # time=0.25ms
ok 6372 - src/tools/system/browser.test.ts > system.screenshot > rejects blocked domains # time=0.12ms
ok 6373 - src/tools/system/browser.test.ts > system.browserAction > clicks an element # time=0.26ms
ok 6374 - src/tools/system/browser.test.ts > system.browserAction > types text into element # time=0.16ms
ok 6375 - src/tools/system/browser.test.ts > system.browserAction > scrolls the page # time=0.14ms
ok 6376 - src/tools/system/browser.test.ts > system.browserAction > waits for selector # time=0.23ms
ok 6377 - src/tools/system/browser.test.ts > system.browserAction > returnScreenshot includes image # time=0.17ms
ok 6378 - src/tools/system/browser.test.ts > system.browserAction > rejects click without selector before opening page # time=0.11ms
ok 6379 - src/tools/system/browser.test.ts > system.browserAction > rejects type without selector before opening page # time=0.10ms
ok 6380 - src/tools/system/browser.test.ts > system.browserAction > rejects type without text before opening page # time=0.11ms
ok 6381 - src/tools/system/browser.test.ts > system.browserAction > rejects unknown action before opening page # time=0.10ms
ok 6382 - src/tools/system/browser.test.ts > system.evaluateJs > evaluates JS and returns result # time=0.19ms
ok 6383 - src/tools/system/browser.test.ts > system.evaluateJs > handles eval errors # time=0.14ms
ok 6384 - src/tools/system/browser.test.ts > system.evaluateJs > rejects missing code # time=0.10ms
ok 6385 - src/tools/system/browser.test.ts > system.evaluateJs > rejects empty code string # time=0.09ms
ok 6386 - src/tools/system/browser.test.ts > system.evaluateJs > rejects blocked domains # time=0.08ms
ok 6387 - src/tools/system/browser.test.ts > system.exportPdf > generates a PDF # time=0.16ms
ok 6388 - src/tools/system/browser.test.ts > system.exportPdf > supports landscape option # time=0.43ms
ok 6389 - src/tools/system/browser.test.ts > system.exportPdf > supports margin option # time=0.31ms
ok 6390 - src/tools/system/browser.test.ts > system.exportPdf > rejects blocked domains # time=0.11ms
ok 6391 - src/tools/system/browser.test.ts > getBrowser sandbox protection > strips --no-sandbox from launch args # time=0.33ms
ok 6392 - src/tools/system/browser.test.ts > getBrowser sandbox protection > strips --disable-setuid-sandbox from launch args # time=0.18ms
ok 6393 - src/tools/system/browser.test.ts > closeBrowser > closes the browser instance # time=0.16ms
ok 6394 - src/tools/system/browser.test.ts > closeBrowser > is safe to call when no browser is running # time=0.08ms
ok 6395 - src/tools/system/browser.test.ts > closeBrowser > nulls the reference even if close() throws # time=0.43ms
ok 6396 - src/tools/system/browser.test.ts > closeBrowser > closes active browser session contexts too # time=14.84ms
ok 6397 - src/tools/system/browser.test.ts > durable browser session tools > durable handle contract > reuses duplicate idempotent starts # time=14.44ms
ok 6398 - src/tools/system/browser.test.ts > durable browser session tools > durable handle contract > persists the shared resource envelope when provided # time=23.72ms
ok 6399 - src/tools/system/browser.test.ts > durable browser session tools > durable handle contract > resolves status by idempotencyKey when label differs # time=42.48ms
ok 6400 - src/tools/system/browser.test.ts > durable browser session tools > durable handle contract > keeps stop idempotent after terminal transition # time=31.54ms
ok 6401 - src/tools/system/browser.test.ts > durable browser session tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=3.31ms
ok 6402 - src/tools/system/browser.test.ts > durable browser session tools > reports durable session status and current page state # time=58.36ms
ok 6403 - src/tools/system/browser.test.ts > durable browser session tools > resumes a durable browser session with actions and persists artifacts # time=93.68ms
ok 6404 - src/tools/system/browser.test.ts > durable browser session tools > captures browser downloads as durable session artifacts # time=93.85ms
ok 6405 - src/tools/system/browser.test.ts > durable browser session tools > creates durable upload transfer handles with idempotent replay semantics # time=98.84ms
ok 6406 - src/tools/system/browser.test.ts > durable browser session tools > keeps browser transfer cancellation idempotent after terminal completion # time=106.18ms
ok 6407 - src/tools/system/browser.test.ts > durable browser session tools > rejects browser upload paths outside configured allowed roots # time=17.08ms
ok 6408 - src/tools/system/browser.test.ts > durable browser session tools > releases runtime resources when a browser session is stopped # time=15.07ms
ok 6409 - src/tools/system/browser.test.ts > AbortError handling > handles AbortError from fetch # time=1.40ms
ok 6410 - src/tools/system/calendar.test.ts > system.calendar tools > creates the typed calendar tools # time=1.70ms
ok 6411 - src/tools/system/calendar.test.ts > system.calendar tools > returns calendar metadata and sample events # time=8.67ms
ok 6412 - src/tools/system/calendar.test.ts > system.calendar tools > returns structured events with truncation # time=9.07ms
ok 6413 - src/tools/system/calendar.test.ts > system.calendar tools > rejects unsupported formats # time=3.16ms
ok 6414 - src/tools/system/calendar.test.ts > system.calendar tools > blocks calendar paths outside the allowlist # time=3.16ms
ok 6415 - src/tools/system/coding.test.ts > createCodingTools > exposes a searchable coding catalog through system.searchTools # time=241.60ms
ok 6416 - src/tools/system/coding.test.ts > createCodingTools > returns git summaries, creates worktrees, and resolves semantic symbol lookups # time=821.73ms
ok 6417 - src/tools/system/coding.test.ts > createCodingTools > supports grep and glob outside git repositories # time=39.97ms
ok 6418 - src/tools/system/coding.test.ts > createCodingTools > keeps grep scoped to the requested subpath # time=141.74ms
ok 6419 - src/tools/system/coding.test.ts > createCodingTools > supports additive grep output modes and structured regex failures # time=33.40ms
ok 6420 - src/tools/system/command-line.test.ts > command-line > tokenizes quoted arguments without shell operators # time=1.60ms
ok 6421 - src/tools/system/command-line.test.ts > command-line > parses direct command lines into command plus args # time=0.35ms
ok 6422 - src/tools/system/command-line.test.ts > command-line > rejects shell-style command lines # time=0.17ms
ok 6423 - src/tools/system/email-message.test.ts > system.emailMessage tools > creates the typed email message tools # time=1.45ms
ok 6424 - src/tools/system/email-message.test.ts > system.emailMessage tools > returns message metadata and attachment summary # time=77.47ms
ok 6425 - src/tools/system/email-message.test.ts > system.emailMessage tools > extracts plain text body from the message # time=61.87ms
ok 6426 - src/tools/system/email-message.test.ts > system.emailMessage tools > rejects unsupported formats # time=93.69ms
ok 6427 - src/tools/system/email-message.test.ts > system.emailMessage tools > blocks email message paths outside the allowlist # time=12.28ms
ok 6428 - src/tools/system/filesystem.test.ts > safePath > accepts paths within allowed directories # time=1.31ms
ok 6429 - src/tools/system/filesystem.test.ts > safePath > expands ~ in target paths before allowlist validation # time=0.26ms
ok 6430 - src/tools/system/filesystem.test.ts > safePath > expands ~ in allowed path prefixes # time=0.12ms
ok 6431 - src/tools/system/filesystem.test.ts > safePath > rejects paths outside allowed directories # time=0.22ms
ok 6432 - src/tools/system/filesystem.test.ts > safePath > detects path traversal with .. # time=0.21ms
ok 6433 - src/tools/system/filesystem.test.ts > safePath > allows filenames containing double dots (e.g. file..txt) # time=0.21ms
ok 6434 - src/tools/system/filesystem.test.ts > safePath > rejects empty paths # time=0.06ms
ok 6435 - src/tools/system/filesystem.test.ts > safePath > rejects when no allowed paths configured # time=0.07ms
ok 6436 - src/tools/system/filesystem.test.ts > safePath > rejects null-byte paths # time=0.31ms
ok 6437 - src/tools/system/filesystem.test.ts > safePath > canonicalizes paths with multiple non-existent parent levels # time=0.20ms
ok 6438 - src/tools/system/filesystem.test.ts > safePath > resolves symlinks before allowlist check # time=0.14ms
ok 6439 - src/tools/system/filesystem.test.ts > isPathAllowed > returns true for allowed paths # time=0.11ms
ok 6440 - src/tools/system/filesystem.test.ts > isPathAllowed > returns false for disallowed paths # time=0.08ms
ok 6441 - src/tools/system/filesystem.test.ts > createFilesystemTools > returns all 9 filesystem tools # time=0.95ms
ok 6442 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on allowedPaths as string (not array) # time=0.27ms
ok 6443 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on empty allowedPaths # time=0.06ms
ok 6444 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on allowedPaths with empty string entry # time=0.06ms
ok 6445 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on allowedPaths with non-string entry # time=0.05ms
ok 6446 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on null allowedPaths # time=0.05ms
ok 6447 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on NaN maxReadBytes # time=0.06ms
ok 6448 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on Infinity maxWriteBytes # time=0.06ms
ok 6449 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on negative maxReadBytes # time=0.11ms
ok 6450 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on zero maxWriteBytes # time=0.12ms
ok 6451 - src/tools/system/filesystem.test.ts > createFilesystemTools > throws on non-boolean allowDelete # time=0.06ms
ok 6452 - src/tools/system/filesystem.test.ts > system.readFile > reads a text file # time=0.52ms
ok 6453 - src/tools/system/filesystem.test.ts > system.readFile > reads a targeted text window via offset and limit # time=1.42ms
ok 6454 - src/tools/system/filesystem.test.ts > system.readFile > accepts compatibility startLine/endLine arguments on the main read tool # time=0.19ms
ok 6455 - src/tools/system/filesystem.test.ts > system.readFile > auto-detects binary content # time=0.10ms
ok 6456 - src/tools/system/filesystem.test.ts > system.readFile > rejects line-window arguments for binary reads # time=0.16ms
ok 6457 - src/tools/system/filesystem.test.ts > system.readFile > rejects files exceeding size limit # time=0.17ms
ok 6458 - src/tools/system/filesystem.test.ts > system.readFile > rejects paths outside allowlist # time=0.08ms
ok 6459 - src/tools/system/filesystem.test.ts > system.readFile > returns error for non-regular files # time=0.13ms
ok 6460 - src/tools/system/filesystem.test.ts > system.readFile > returns error for missing files # time=0.15ms
ok 6461 - src/tools/system/filesystem.test.ts > system.readFile > returns error instead of throwing on null-byte path # time=0.06ms
ok 6462 - src/tools/system/filesystem.test.ts > system.readFile > rejects invalid encoding parameter # time=0.06ms
ok 6463 - src/tools/system/filesystem.test.ts > system.readFile > catches file that grew between stat and readFile (TOCTOU) # time=0.08ms
ok 6464 - src/tools/system/filesystem.test.ts > system.readFile > persists a bounded local history snapshot outside the repo tree # time=2.83ms
ok 6465 - src/tools/system/filesystem.test.ts > system.writeFile > writes a text file and creates parent dirs # time=0.84ms
ok 6466 - src/tools/system/filesystem.test.ts > system.writeFile > decodes over-escaped multiline content before writing new files # time=0.49ms
ok 6467 - src/tools/system/filesystem.test.ts > system.writeFile > decodes over-escaped single-line quote content before writing # time=0.13ms
ok 6468 - src/tools/system/filesystem.test.ts > system.writeFile > rejects writing an existing file when not previously read in session # time=1.19ms
ok 6469 - src/tools/system/filesystem.test.ts > system.writeFile > allows writing an existing file when previously read in same session # time=1.81ms
ok 6470 - src/tools/system/filesystem.test.ts > system.writeFile > rejects partial snapshots for existing-file writes # time=1.21ms
ok 6471 - src/tools/system/filesystem.test.ts > system.writeFile > rejects legacy_unknown snapshots for existing-file writes # time=0.92ms
ok 6472 - src/tools/system/filesystem.test.ts > system.writeFile > rejects writing an existing file when no session id is provided # time=0.14ms
ok 6473 - src/tools/system/filesystem.test.ts > system.writeFile > allows writing a new (non-existent) file without a prior read # time=0.97ms
ok 6474 - src/tools/system/filesystem.test.ts > system.writeFile > rehydrates read state from the local history cache after an in-memory reset # time=1.08ms
ok 6475 - src/tools/system/filesystem.test.ts > system.writeFile > accepts an explicit seeded snapshot for an existing file # time=0.74ms
ok 6476 - src/tools/system/filesystem.test.ts > system.writeFile > rejects content exceeding size limit # time=2.78ms
ok 6477 - src/tools/system/filesystem.test.ts > system.writeFile > rejects invalid encoding parameter # time=0.13ms
ok 6478 - src/tools/system/filesystem.test.ts > system.writeFile > rejects malformed base64 content # time=0.11ms
ok 6479 - src/tools/system/filesystem.test.ts > system.writeFile > writes base64 content # time=0.16ms
ok 6480 - src/tools/system/filesystem.test.ts > system.editFile > replaces a unique substring on first call after read # time=1.29ms
ok 6481 - src/tools/system/filesystem.test.ts > system.editFile > matches decoded old_string variants and writes decoded new_string content # time=0.47ms
ok 6482 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when file has not been read in this session # time=0.21ms
ok 6483 - src/tools/system/filesystem.test.ts > system.editFile > accepts edit after a partial read snapshot whose window is still present # time=0.66ms
ok 6484 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when the partial window is no longer present in the file (external drift) # time=1.30ms
ok 6485 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when no session id is provided # time=0.24ms
ok 6486 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when file does not exist # time=0.22ms
ok 6487 - src/tools/system/filesystem.test.ts > system.editFile > rejects empty old_string # time=0.28ms
ok 6488 - src/tools/system/filesystem.test.ts > system.editFile > rejects identical old_string and new_string (no-op edit) # time=0.37ms
ok 6489 - src/tools/system/filesystem.test.ts > system.editFile > rejects when old_string is not unique without replace_all # time=0.67ms
ok 6490 - src/tools/system/filesystem.test.ts > system.editFile > replace_all replaces every occurrence # time=0.86ms
ok 6491 - src/tools/system/filesystem.test.ts > system.editFile > rejects when old_string does not appear in the file # time=0.59ms
ok 6492 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when the file contents changed after it was read # time=0.51ms
ok 6493 - src/tools/system/filesystem.test.ts > system.editFile > normalizes curly quotes before matching and preserves quote style # time=1.49ms
ok 6494 - src/tools/system/filesystem.test.ts > system.editFile > desanitizes old_string before matching and applies the same replacements to new_string # time=1.15ms
ok 6495 - src/tools/system/filesystem.test.ts > system.editFile > strips trailing whitespace from new_string for non-markdown files # time=1.59ms
ok 6496 - src/tools/system/filesystem.test.ts > system.editFile > preserves trailing whitespace in markdown replacements # time=0.73ms
ok 6497 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit on a binary file # time=0.76ms
ok 6498 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when target path is a directory # time=0.12ms
ok 6499 - src/tools/system/filesystem.test.ts > system.editFile > post-edit content is auto-recorded as read so chained edits work # time=1.84ms
ok 6500 - src/tools/system/filesystem.test.ts > system.editFile > rejects edit when result exceeds max write size # time=28.36ms
ok 6501 - src/tools/system/filesystem.test.ts > system.editFile > respects path allowlist # time=0.16ms
ok 6502 - src/tools/system/filesystem.test.ts > system.editFile > session isolation: read in session-A does NOT satisfy edit in session-B # time=1.11ms
ok 6503 - src/tools/system/filesystem.test.ts > system.appendFile > appends content to a file # time=0.24ms
ok 6504 - src/tools/system/filesystem.test.ts > system.appendFile > allows appending to an existing file after a full read # time=0.91ms
ok 6505 - src/tools/system/filesystem.test.ts > system.appendFile > rejects appending to an existing file after a partial read # time=0.45ms
ok 6506 - src/tools/system/filesystem.test.ts > system.listDir > lists directory contents with types and sizes # time=0.45ms
ok 6507 - src/tools/system/filesystem.test.ts > system.listDir > returns error for non-existent directory # time=0.08ms
ok 6508 - src/tools/system/filesystem.test.ts > system.listDir > truncates results and reports metadata when entries exceed cap # time=25.12ms
ok 6509 - src/tools/system/filesystem.test.ts > system.stat > returns file metadata # time=2.52ms
ok 6510 - src/tools/system/filesystem.test.ts > system.stat > returns error for non-existent paths # time=0.16ms
ok 6511 - src/tools/system/filesystem.test.ts > system.mkdir > creates nested directories # time=0.30ms
ok 6512 - src/tools/system/filesystem.test.ts > system.delete > rejects when allowDelete is false (default) # time=0.16ms
ok 6513 - src/tools/system/filesystem.test.ts > system.delete > deletes a file when allowDelete is true # time=0.19ms
ok 6514 - src/tools/system/filesystem.test.ts > system.delete > rejects directory deletion without recursive flag # time=0.08ms
ok 6515 - src/tools/system/filesystem.test.ts > system.delete > deletes directory when recursive is true # time=0.11ms
ok 6516 - src/tools/system/filesystem.test.ts > system.delete > rejects deletion of sandbox root directory # time=0.07ms
ok 6517 - src/tools/system/filesystem.test.ts > system.delete > rejects paths outside allowlist even when delete is enabled # time=0.06ms
ok 6518 - src/tools/system/filesystem.test.ts > system.move > moves a file within allowed paths # time=0.12ms
ok 6519 - src/tools/system/filesystem.test.ts > system.move > rejects when destination is outside allowed paths # time=0.07ms
ok 6520 - src/tools/system/filesystem.test.ts > system.move > rejects when source is outside allowed paths # time=0.05ms
ok 6521 - src/tools/system/filesystem.test.ts > safePath PATH_MAX enforcement > rejects paths exceeding MAX_PATH_LENGTH (4096) # time=0.08ms
ok 6522 - src/tools/system/filesystem.test.ts > system.readFile device file protection > rejects device files (isFile returns false) # time=0.08ms
ok 6523 - src/tools/system/filesystem.test.ts > error message sanitization > does not leak resolved path in fallback error messages # time=0.13ms
ok 6524 - src/tools/system/filesystem.test.ts > error message sanitization > safePath does not leak host paths on unexpected errors # time=0.11ms
ok 6525 - src/tools/system/filesystem.test.ts > system.appendFile TOCTOU growth race > catches file that grew between stat and appendFile # time=0.95ms
ok 6526 - src/tools/system/filesystem.test.ts > system.listDir type accuracy > reports symlinks and other special types correctly # time=0.27ms
ok 6527 - src/tools/system/filesystem.test.ts > safePath denied-path leak prevention > does not expose canonical path when access is denied # time=0.08ms
ok 6528 - src/tools/system/filesystem.test.ts > safePath URL-encoded traversal defense > rejects %2f (URL-encoded forward slash) # time=0.06ms
ok 6529 - src/tools/system/filesystem.test.ts > safePath URL-encoded traversal defense > rejects %5c (URL-encoded backslash) # time=0.05ms
ok 6530 - src/tools/system/filesystem.test.ts > safePath URL-encoded traversal defense > rejects %00 (URL-encoded null byte) # time=0.05ms
ok 6531 - src/tools/system/filesystem.test.ts > system.writeFile base64 size pre-check > rejects oversized base64 string before regex/decode # time=0.14ms
ok 6532 - src/tools/system/filesystem.test.ts > system.delete recursive parameter strictness > rejects directory deletion when recursive is string "true" (not boolean) # time=0.09ms
ok 6533 - src/tools/system/filesystem.test.ts > multiple allowedPaths > allows reads from either allowed path # time=0.11ms
ok 6534 - src/tools/system/filesystem.test.ts > multiple allowedPaths > rejects paths outside all allowed paths # time=0.05ms
ok 6535 - src/tools/system/filesystem.test.ts > overlapping allowedPaths > allows access to nested path within overlapping allowed paths # time=0.07ms
ok 6536 - src/tools/system/filesystem.test.ts > system.appendFile parent directory creation > creates parent directories before appending # time=0.16ms
ok 6537 - src/tools/system/filesystem.test.ts > safePath dangling-symlink ancestor walk > allows new file under existing sandbox parent (ancestor walk) # time=0.10ms
ok 6538 - src/tools/system/filesystem.test.ts > safePath dangling-symlink ancestor walk > rejects new file when ancestor walk resolves outside sandbox via symlink # time=0.06ms
ok 6539 - src/tools/system/filesystem.test.ts > inferToolAccess classification via tool naming > classifies system.readFile as read (prefix match) # time=0.08ms
ok 6540 - src/tools/system/filesystem.test.ts > inferToolAccess classification via tool naming > classifies system.stat as read (exact match) # time=0.04ms
ok 6541 - src/tools/system/filesystem.test.ts > inferToolAccess classification via tool naming > would NOT classify system.statusSet as read (no false positive) # time=0.05ms
ok 6542 - src/tools/system/filesystem.test.ts > inferToolAccess classification via tool naming > would NOT classify system.statisticsUpdate as read # time=0.05ms
ok 6543 - src/tools/system/filesystem.test.ts > system.readFile FILE_UNCHANGED_STUB > returns FILE_UNCHANGED_STUB on a repeat read with unchanged mtime # time=0.79ms
ok 6544 - src/tools/system/filesystem.test.ts > system.readFile FILE_UNCHANGED_STUB > re-reads when mtime changes between reads # time=0.65ms
ok 6545 - src/tools/system/filesystem.test.ts > system.readFile FILE_UNCHANGED_STUB > skips the stub for partial reads (offset/limit) # time=0.57ms
ok 6546 - src/tools/system/filesystem.test.ts > system.readFile FILE_UNCHANGED_STUB > skips the stub when no session id is provided # time=0.10ms
ok 6547 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > returns top-N by most recent timestamp, newest first # time=0.67ms
ok 6548 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > truncates any single file to the per-file budget # time=1.61ms
ok 6549 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > stops adding files once the total budget is exhausted # time=0.99ms
ok 6550 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > skips entries with missing content or timestamp # time=0.87ms
ok 6551 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > returns empty array for an unknown or empty session # time=0.34ms
ok 6552 - src/tools/system/filesystem.test.ts > snapshotTopRecentReads > preserves viewKind in the exported snapshot # time=0.23ms
ok 6553 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > normalizes label/idempotencyKey aliases when they match # time=1.13ms
ok 6554 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > preserves separate label and idempotencyKey values # time=0.16ms
ok 6555 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > emits structured handle error envelopes # time=0.34ms
ok 6556 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > emits safe JSON success envelopes # time=0.10ms
ok 6557 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > normalizes resource envelopes # time=0.21ms
ok 6558 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > rejects invalid resource envelopes # time=0.27ms
ok 6559 - src/tools/system/handle-contract.test.ts > structured handle contract helpers > maps the shared structured error taxonomy consistently across families # time=0.33ms
ok 6560 - src/tools/system/http.test.ts > isDomainAllowed > accepts allowed domain # time=1.73ms
ok 6561 - src/tools/system/http.test.ts > isDomainAllowed > rejects blocked domain # time=0.48ms
ok 6562 - src/tools/system/http.test.ts > isDomainAllowed > supports wildcard patterns # time=0.29ms
ok 6563 - src/tools/system/http.test.ts > isDomainAllowed > blocked takes precedence over allowed # time=0.24ms
ok 6564 - src/tools/system/http.test.ts > isDomainAllowed > rejects non-HTTP URLs # time=0.19ms
ok 6565 - src/tools/system/http.test.ts > isDomainAllowed > rejects invalid URLs # time=0.22ms
ok 6566 - src/tools/system/http.test.ts > isDomainAllowed > allows public domains when no lists configured # time=0.14ms
ok 6567 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks localhost # time=0.11ms
ok 6568 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 127.0.0.1 # time=0.54ms
ok 6569 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks ::1 (IPv6 loopback) # time=0.13ms
ok 6570 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 10.0.0.0/8 (private class A) # time=0.17ms
ok 6571 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 172.16.0.0/12 (private class B) # time=0.10ms
ok 6572 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 192.168.0.0/16 (private class C) # time=0.13ms
ok 6573 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 169.254.169.254 (AWS IMDS) # time=0.05ms
ok 6574 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 169.254.0.0/16 (link-local) # time=0.05ms
ok 6575 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks metadata.google.internal (GCP) # time=0.05ms
ok 6576 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks 0.0.0.0 # time=0.05ms
ok 6577 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks *.localhost wildcard # time=0.05ms
ok 6578 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks *.internal wildcard # time=0.05ms
ok 6579 - src/tools/system/http.test.ts > isDomainAllowed > SSRF protection > blocks IPv4-mapped IPv6 private addresses # time=0.07ms
ok 6580 - src/tools/system/http.test.ts > system.httpGet > makes GET request and returns response # time=10.78ms
ok 6581 - src/tools/system/http.test.ts > system.httpGet > rejects empty URL # time=0.18ms
ok 6582 - src/tools/system/http.test.ts > system.httpGet > rejects missing URL # time=0.08ms
ok 6583 - src/tools/system/http.test.ts > system.httpPost > sends POST with JSON body # time=1.80ms
ok 6584 - src/tools/system/http.test.ts > system.httpPost > supports custom content type # time=0.31ms
ok 6585 - src/tools/system/http.test.ts > system.httpFetch > supports DELETE method # time=0.21ms
ok 6586 - src/tools/system/http.test.ts > system.httpFetch > defaults to GET when no method specified # time=0.33ms
ok 6587 - src/tools/system/http.test.ts > system.httpFetch > rejects disallowed methods # time=0.11ms
ok 6588 - src/tools/system/http.test.ts > system.httpFetch > rejects TRACE method # time=0.09ms
ok 6589 - src/tools/system/http.test.ts > system.httpFetch > respects custom allowedMethods config # time=0.30ms
ok 6590 - src/tools/system/http.test.ts > response handling > truncates at maxResponseBytes via streaming # time=0.31ms
ok 6591 - src/tools/system/http.test.ts > response handling > does not truncate small responses # time=0.32ms
ok 6592 - src/tools/system/http.test.ts > timeout > timeout enforcement returns error # time=0.29ms
ok 6593 - src/tools/system/http.test.ts > redirects > redirect to blocked domain is stopped # time=0.41ms
ok 6594 - src/tools/system/http.test.ts > redirects > redirect to SSRF target is stopped # time=0.19ms
ok 6595 - src/tools/system/http.test.ts > redirects > 302 redirect changes method to GET and drops body # time=0.31ms
ok 6596 - src/tools/system/http.test.ts > redirects > 307 redirect preserves original method and body # time=0.26ms
ok 6597 - src/tools/system/http.test.ts > redirects > stops after maxRedirects # time=0.30ms
ok 6598 - src/tools/system/http.test.ts > redirects > blocks hostnames when any resolved IP is private # time=0.22ms
ok 6599 - src/tools/system/http.test.ts > redirects > blocks redirects when redirect target resolves to a private IP # time=0.20ms
ok 6600 - src/tools/system/http.test.ts > auth headers > injected for matching domains # time=0.14ms
ok 6601 - src/tools/system/http.test.ts > auth headers > auth headers cannot be overridden by caller # time=0.12ms
ok 6602 - src/tools/system/http.test.ts > default headers > default headers are merged into every request # time=0.16ms
ok 6603 - src/tools/system/http.test.ts > error handling > connection error returns isError: true # time=0.13ms
ok 6604 - src/tools/system/http.test.ts > error handling > SSRF blocked via tool execute returns isError: true # time=0.11ms
ok 6605 - src/tools/system/macos.test.ts > system.macos tools > surfaces actionable Accessibility guidance for blocked AppleScript keystrokes # time=1.83ms
ok 6606 - src/tools/system/office-document.test.ts > system.officeDocument tools > creates the typed office document tools # time=1.25ms
ok 6607 - src/tools/system/office-document.test.ts > system.officeDocument tools > returns DOCX metadata # time=143.42ms
ok 6608 - src/tools/system/office-document.test.ts > system.officeDocument tools > extracts DOCX text # time=126.04ms
ok 6609 - src/tools/system/office-document.test.ts > system.officeDocument tools > extracts ODT text # time=112.68ms
ok 6610 - src/tools/system/office-document.test.ts > system.officeDocument tools > rejects unsupported formats # time=118.64ms
ok 6611 - src/tools/system/office-document.test.ts > system.officeDocument tools > blocks office document paths outside the allowlist # time=64.78ms
ok 6612 - src/tools/system/pdf.test.ts > system.pdf tools > creates the typed PDF tools # time=1.26ms
ok 6613 - src/tools/system/pdf.test.ts > system.pdf tools > returns PDF metadata # SKIP
ok 6614 - src/tools/system/pdf.test.ts > system.pdf tools > extracts PDF text # SKIP
ok 6615 - src/tools/system/pdf.test.ts > system.pdf tools > rejects invalid PDF files # time=4.90ms
ok 6616 - src/tools/system/pdf.test.ts > system.pdf tools > blocks PDF paths outside the allowlist # time=2.91ms
ok 6617 - src/tools/system/process.test.ts > system.process tools > durable handle contract > reuses duplicate idempotent starts # time=29.49ms
ok 6618 - src/tools/system/process.test.ts > system.process tools > durable handle contract > persists the shared resource envelope when provided # time=15.40ms
ok 6619 - src/tools/system/process.test.ts > system.process tools > durable handle contract > resolves status by idempotencyKey when label differs # time=15.39ms
ok 6620 - src/tools/system/process.test.ts > system.process tools > durable handle contract > keeps stop idempotent after terminal transition # time=73.16ms
ok 6621 - src/tools/system/process.test.ts > system.process tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=0.90ms
ok 6622 - src/tools/system/process.test.ts > system.process tools > creates the five structured process tools # time=0.43ms
ok 6623 - src/tools/system/process.test.ts > system.process tools > starts, inspects, and stops a managed host process # time=81.56ms
ok 6624 - src/tools/system/process.test.ts > system.process tools > captures persisted log output for short-lived commands # time=97.97ms
ok 6625 - src/tools/system/process.test.ts > system.process tools > emits lifecycle callbacks when a managed host process exits # time=114.51ms
ok 6626 - src/tools/system/process.test.ts > system.process tools > surfaces immediate output for fast-exit commands without an external sleep # time=46.52ms
ok 6627 - src/tools/system/process.test.ts > system.process tools > migrates persisted stopped state to exited on load # time=2.24ms
ok 6628 - src/tools/system/process.test.ts > system.process tools > fails closed for persisted running handles that lack identity metadata # time=30.42ms
ok 6629 - src/tools/system/process.test.ts > system.process tools > does not treat a mismatched live pid as the original managed process # time=34.45ms
ok 6630 - src/tools/system/process.test.ts > system.process tools > rejects denied commands # time=1.72ms
ok 6631 - src/tools/system/process.test.ts > system.process tools > bypasses deny-prefix enforcement in unrestricted trusted mode # time=86.30ms
ok 6632 - src/tools/system/process.test.ts > system.process tools > allows python3 when explicitly excluded from the structured process deny list # time=94.45ms
ok 6633 - src/tools/system/process.test.ts > system.process tools > reclaims a label once the previous process has exited # time=148.46ms
ok 6634 - src/tools/system/remote-job.test.ts > system.remoteJob tools > durable handle contract > reuses duplicate idempotent starts # time=6.57ms
ok 6635 - src/tools/system/remote-job.test.ts > system.remoteJob tools > durable handle contract > persists the shared resource envelope when provided # time=4.05ms
ok 6636 - src/tools/system/remote-job.test.ts > system.remoteJob tools > durable handle contract > resolves status by idempotencyKey when label differs # time=2.37ms
ok 6637 - src/tools/system/remote-job.test.ts > system.remoteJob tools > durable handle contract > keeps stop idempotent after terminal transition # time=5.08ms
ok 6638 - src/tools/system/remote-job.test.ts > system.remoteJob tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=1.15ms
ok 6639 - src/tools/system/remote-job.test.ts > system.remoteJob tools > creates the five structured remote job tools # time=0.42ms
ok 6640 - src/tools/system/remote-job.test.ts > system.remoteJob tools > accepts authenticated webhook callbacks and rejects replayed duplicates # time=10.58ms
ok 6641 - src/tools/system/remote-job.test.ts > system.remoteJob tools > refreshes poll-mode handles from the configured status endpoint # time=32.51ms
ok 6642 - src/tools/system/remote-job.test.ts > system.remoteJob tools > rejects webhook callbacks with invalid auth tokens # time=13.15ms
ok 6643 - src/tools/system/remote-job.test.ts > system.remoteJob tools > blocks disallowed poll URLs with a structured permission error # time=5.60ms
ok 6644 - src/tools/system/remote-session.test.ts > system.remoteSession tools > durable handle contract > reuses duplicate idempotent starts # time=14.19ms
ok 6645 - src/tools/system/remote-session.test.ts > system.remoteSession tools > durable handle contract > persists the shared resource envelope when provided # time=20.35ms
ok 6646 - src/tools/system/remote-session.test.ts > system.remoteSession tools > durable handle contract > resolves status by idempotencyKey when label differs # time=4.76ms
ok 6647 - src/tools/system/remote-session.test.ts > system.remoteSession tools > durable handle contract > keeps stop idempotent after terminal transition # time=5.25ms
ok 6648 - src/tools/system/remote-session.test.ts > system.remoteSession tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=1.25ms
ok 6649 - src/tools/system/remote-session.test.ts > system.remoteSession tools > creates the six structured remote session tools # time=0.38ms
ok 6650 - src/tools/system/remote-session.test.ts > system.remoteSession tools > accepts authenticated webhook callbacks and rejects replayed duplicates # time=14.50ms
ok 6651 - src/tools/system/remote-session.test.ts > system.remoteSession tools > refreshes poll-mode handles from the configured status endpoint # time=12.95ms
ok 6652 - src/tools/system/remote-session.test.ts > system.remoteSession tools > sends remote session messages through the configured message endpoint # time=13.82ms
ok 6653 - src/tools/system/remote-session.test.ts > system.remoteSession tools > rejects outbound messages for viewer-only sessions # time=5.41ms
ok 6654 - src/tools/system/remote-session.test.ts > system.remoteSession tools > blocks disallowed session URLs with a structured permission error # time=1.78ms
ok 6655 - src/tools/system/research.test.ts > system.research tools > durable handle contract > reuses duplicate idempotent starts # time=8.78ms
ok 6656 - src/tools/system/research.test.ts > system.research tools > durable handle contract > persists the shared resource envelope when provided # time=40.35ms
ok 6657 - src/tools/system/research.test.ts > system.research tools > durable handle contract > resolves status by idempotencyKey when label differs # time=16.55ms
ok 6658 - src/tools/system/research.test.ts > system.research tools > durable handle contract > keeps stop idempotent after terminal transition # time=10.30ms
ok 6659 - src/tools/system/research.test.ts > system.research tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=1.46ms
ok 6660 - src/tools/system/research.test.ts > system.research tools > creates the eight structured research tools # time=2.90ms
ok 6661 - src/tools/system/research.test.ts > system.research tools > tracks research progress, block state, and final artifacts # time=12.11ms
ok 6662 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > durable handle contract > reuses duplicate idempotent starts # time=28.46ms
ok 6663 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > durable handle contract > persists the shared resource envelope when provided # time=5.60ms
ok 6664 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > durable handle contract > resolves status by idempotencyKey when label differs # time=6.05ms
ok 6665 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > durable handle contract > keeps stop idempotent after terminal transition # time=10.08ms
ok 6666 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=2.36ms
ok 6667 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > creates the nine structured sandbox tools # time=0.56ms
ok 6668 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > starts sandbox jobs and maps them to durable process-backed job handles # time=30.64ms
ok 6669 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > promotes sandbox job logs to exited once the linked process has finished # time=26.19ms
ok 6670 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > respects a configurable tracked-job ceiling # time=27.21ms
ok 6671 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > resolves label-shaped model retries when sandboxId carries the sandbox label # time=16.49ms
ok 6672 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > treats start-time sandboxId placeholders as durable idempotency tokens # time=19.55ms
ok 6673 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > recovers persisted sandboxes across manager restart # time=2.68ms
ok 6674 - src/tools/system/sandbox-handle.test.ts > system.sandbox tools > rejects shell-style sandbox job commands with a structured validation error # time=3.56ms
ok 6675 - src/tools/system/server.test.ts > system.server tools > durable handle contract > reuses duplicate idempotent starts # time=314.70ms
ok 6676 - src/tools/system/server.test.ts > system.server tools > durable handle contract > persists the shared resource envelope when provided # time=320.55ms
ok 6677 - src/tools/system/server.test.ts > system.server tools > durable handle contract > resolves status by idempotencyKey when label differs # time=300.69ms
ok 6678 - src/tools/system/server.test.ts > system.server tools > durable handle contract > keeps stop idempotent after terminal transition # time=355.84ms
ok 6679 - src/tools/system/server.test.ts > system.server tools > durable handle contract > returns a structured not_found error envelope for missing handles # time=3.37ms
ok 6680 - src/tools/system/server.test.ts > system.server tools > creates the five structured server tools # time=0.48ms
ok 6681 - src/tools/system/server.test.ts > system.server tools > starts, monitors, and stops a managed server handle # time=337.76ms
ok 6682 - src/tools/system/server.test.ts > system.server tools > returns a structured timeout when the server never becomes ready # time=524.79ms
ok 6683 - src/tools/system/server.test.ts > system.server tools > blocks unsafe external health URLs # time=4.17ms
ok 6684 - src/tools/system/server.test.ts > system.server tools > allows python3 servers when python3 is explicitly excluded from the structured deny list # time=383.57ms
ok 6685 - src/tools/system/server.test.ts > system.server tools > reattaches to a running server after manager restart # time=396.86ms
ok 6686 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > creates the typed spreadsheet tools # time=3.01ms
ok 6687 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > returns spreadsheet info for CSV files # time=101.22ms
ok 6688 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > reads structured rows from CSV files # time=99.14ms
ok 6689 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > supports XLSX workbook inspection and sheet reads # time=157.58ms
ok 6690 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > rejects unknown sheet names # time=236.15ms
ok 6691 - src/tools/system/spreadsheet.test.ts > system.spreadsheet tools > blocks spreadsheet paths outside the allowlist # time=5.36ms
ok 6692 - src/tools/system/sqlite.test.ts > system.sqlite tools > creates the typed SQLite tools # time=1.14ms
ok 6693 - src/tools/system/sqlite.test.ts > system.sqlite tools > returns typed schema information # time=11.79ms
ok 6694 - src/tools/system/sqlite.test.ts > system.sqlite tools > executes read-only queries and returns structured rows # time=7.26ms
ok 6695 - src/tools/system/sqlite.test.ts > system.sqlite tools > caps row output deterministically # time=8.54ms
ok 6696 - src/tools/system/sqlite.test.ts > system.sqlite tools > rejects mutating statements # time=16.21ms
ok 6697 - src/tools/system/sqlite.test.ts > system.sqlite tools > blocks paths outside the allowlist # time=4.71ms
ok 6698 - src/tools/system/task-tracker.test.ts > task-tracker > registration metadata > exposes the four public session task tools # time=1.65ms
ok 6699 - src/tools/system/task-tracker.test.ts > task-tracker > registration metadata > each tool has a non-trivial description and an inputSchema # time=0.61ms
ok 6700 - src/tools/system/task-tracker.test.ts > task-tracker > registration metadata > TASK_TRACKER_TOOL_NAMES matches the registered tool names # time=0.18ms
ok 6701 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > creates a task with id \#1, persists to the store # time=0.76ms
ok 6702 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > auto-increments task ids per list # time=0.21ms
ok 6703 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > rejects empty subject # time=0.11ms
ok 6704 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > falls back to the subject when description is omitted # time=0.21ms
ok 6705 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > falls back to the subject when description is empty # time=0.09ms
ok 6706 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > preserves activeForm and metadata when provided # time=0.46ms
ok 6707 - src/tools/system/task-tracker.test.ts > task-tracker > task.create > keeps metadata on the stored task without exposing runtime payloads # time=0.18ms
ok 6708 - src/tools/system/task-tracker.test.ts > task-tracker > task.list > returns all visible tasks by default # time=0.31ms
ok 6709 - src/tools/system/task-tracker.test.ts > task-tracker > task.list > hides blockers that are already completed # time=0.45ms
ok 6710 - src/tools/system/task-tracker.test.ts > task-tracker > task.list > ignores deleted tasks # time=0.15ms
ok 6711 - src/tools/system/task-tracker.test.ts > task-tracker > task.list > returns empty for an unknown task list # time=0.09ms
ok 6712 - src/tools/system/task-tracker.test.ts > task-tracker > runtime claim semantics > claims pending worker assignments for a specific owner # time=0.48ms
ok 6713 - src/tools/system/task-tracker.test.ts > task-tracker > runtime claim semantics > releases claimed worker assignments back to pending # time=0.23ms
ok 6714 - src/tools/system/task-tracker.test.ts > task-tracker > runtime claim semantics > requeues in-flight worker assignments during runtime repair # time=0.45ms
ok 6715 - src/tools/system/task-tracker.test.ts > task-tracker > task.get > returns the lightweight public task view # time=0.16ms
ok 6716 - src/tools/system/task-tracker.test.ts > task-tracker > task.get > returns null when the task does not exist # time=0.08ms
ok 6717 - src/tools/system/task-tracker.test.ts > task-tracker > task.get > rejects empty taskId # time=0.06ms
ok 6718 - src/tools/system/task-tracker.test.ts > task-tracker > task.get > treats deleted tasks as not found # time=0.15ms
ok 6719 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > transitions through pending -> in_progress -> completed # time=2.40ms
ok 6720 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > auto-claims an in-progress task for a subagent actor when no owner is set # time=0.14ms
ok 6721 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > merges metadata shallowly and deletes keys set to null # time=0.33ms
ok 6722 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > preserves malformed runtime metadata on the stored task without exposing it publicly # time=0.16ms
ok 6723 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > appends unique blockedBy ids # time=0.15ms
ok 6724 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects invalid status # time=0.07ms
ok 6725 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects updates to non-existent task # time=0.07ms
ok 6726 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects updates to deleted tasks # time=0.07ms
ok 6727 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects non-array addBlocks # time=0.06ms
ok 6728 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects metadata that is not a plain object # time=0.05ms
ok 6729 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > invokes the completion guard on every completion transition # time=0.12ms
ok 6730 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > invokes the completion guard for tasks with unresolved blockedBy entries # time=0.12ms
ok 6731 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > lets the completion guard block ordinary (non-verification) completions # time=0.14ms
ok 6732 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > still blocks explicit verification tasks when the completion guard rejects them # time=0.11ms
ok 6733 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > rejects stale completion when an explicit verification task changes during the guard # time=0.13ms
ok 6734 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > appends a verification nudge when the main actor closes 3+ tasks without a verification step # time=0.30ms
ok 6735 - src/tools/system/task-tracker.test.ts > task-tracker > task.update > does not append the verification nudge for subagent actors # time=0.13ms
ok 6736 - src/tools/system/task-tracker.test.ts > task-tracker > task.wait and task.output > returns terminal state and persisted output for runtime-managed tasks # time=21.77ms
ok 6737 - src/tools/system/task-tracker.test.ts > task-tracker > task.wait and task.output > clamps a model-supplied timeoutMs to the handle-tool cap # time=0.55ms
ok 6738 - src/tools/system/task-tracker.test.ts > task-tracker > task.wait and task.output > returns not found when a task belongs to a different session listId # time=8.09ms
ok 6739 - src/tools/system/task-tracker.test.ts > task-tracker > task.wait and task.output > exports stable handle tool names matching the registered tools # time=0.30ms
ok 6740 - src/tools/system/task-tracker.test.ts > task-tracker > session isolation via TASK_LIST_ARG > scopes tasks by task list id # time=0.20ms
ok 6741 - src/tools/system/task-tracker.test.ts > task-tracker > session isolation via TASK_LIST_ARG > uses DEFAULT_TASK_LIST_ID when no list id is provided # time=0.12ms
ok 6742 - src/tools/system/task-tracker.test.ts > task-tracker > session isolation via TASK_LIST_ARG > dropList removes all tasks for a session id # time=0.20ms
ok 6743 - src/tools/system/task-tracker.test.ts > task-tracker > session isolation via TASK_LIST_ARG > persists session task lists to a dedicated file-backed store # time=3.92ms
ok 6744 - src/tools/system/task-tracker.test.ts > task-tracker > runtime tracing hooks > emits lifecycle notifications including task_created for runtime tasks # time=0.19ms
ok 6745 - src/tools/system/task-tracker.test.ts > task-tracker > runtime tracing hooks > emits bounded task.wait and task.output access events once per tool call # time=0.38ms
ok 6746 - src/tools/system/task-tracker.test.ts > task-tracker > listOpenTasksForSession > returns only pending and in_progress tasks # time=0.26ms
ok 6747 - src/tools/system/task-tracker.test.ts > task-tracker > listOpenTasksForSession > respects the limit parameter # time=0.10ms
ok 6748 - src/tools/system/task-tracker.test.ts > task-tracker > listOpenTasksForSession > returns an empty array when the session has no tasks # time=0.05ms
ok 6749 - src/tools/system/task-tracker.test.ts > task-tracker > listOpenTasksForSession > returns OpenTaskSummary shape (id, status, subject only) # time=0.09ms
ok 6750 - src/tools/system/task-tracker.test.ts > task-tracker > isOpenTaskStatus > treats pending and in_progress as open # time=0.06ms
ok 6751 - src/tools/system/task-tracker.test.ts > task-tracker > isOpenTaskStatus > treats terminal statuses as closed # time=0.06ms
ok 6752 - src/tools/system/task-tracker.test.ts > task-tracker > metadata._internal invariant > rejects task.create with metadata._internal set # time=0.08ms
ok 6753 - src/tools/system/task-tracker.test.ts > task-tracker > metadata._internal invariant > rejects task.update metadata patches that include _internal # time=0.08ms
ok 6754 - src/tools/system/task-tracker.test.ts > task-tracker > block cycle detection > rejects a self-block via addBlocks # time=0.13ms
ok 6755 - src/tools/system/task-tracker.test.ts > task-tracker > block cycle detection > rejects a self-block via addBlockedBy # time=0.08ms
ok 6756 - src/tools/system/task-tracker.test.ts > task-tracker > block cycle detection > rejects a direct 2-task cycle # time=0.24ms
ok 6757 - src/tools/system/task-tracker.test.ts > task-tracker > block cycle detection > rejects an indirect 3-task cycle # time=0.11ms
ok 6758 - src/tools/system/task-tracker.test.ts > task-tracker > block cycle detection > allows non-cyclic additions # time=0.09ms
ok 6759 - src/tools/system/task-tracker.test.ts > task-tracker > pruneTaskEventsInPlace > is a no-op when events are below the retention cap # time=0.12ms
ok 6760 - src/tools/system/task-tracker.test.ts > task-tracker > pruneTaskEventsInPlace > preserves the created event and all transition events when pruning # time=0.27ms
ok 6761 - src/tools/system/task-tracker.test.ts > task-tracker > pruneTaskEventsInPlace > inserts a single truncation marker event when pruning happens # time=0.22ms
ok 6762 - src/tools/system/task-tracker.test.ts > task-tracker > compactDeletedTasksInPlace > removes only deleted entries and preserves order # time=0.10ms
ok 6763 - src/tools/system/task-tracker.test.ts > task-tracker > compactDeletedTasksInPlace > is a no-op when nothing is deleted # time=0.04ms
ok 6764 - src/tools/system/task-tracker.test.ts > task-tracker > detectBlockCycleForPatch helper > flags direct self-blocks # time=0.06ms
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment