[INFO] fetching crate soul-core 0.12.4... [INFO] testing soul-core-0.12.4 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate soul-core 0.12.4 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate soul-core 0.12.4 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate soul-core 0.12.4 [INFO] tweaked toml for crates.io crate soul-core 0.12.4 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate soul-core 0.12.4 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate soul-core 0.12.4 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.109 [INFO] [stderr] Downloaded assert-json-diff v2.0.2 [INFO] [stderr] Downloaded deadpool-runtime v0.1.4 [INFO] [stderr] Downloaded wiremock v0.6.5 [INFO] [stderr] Downloaded env_home v0.1.0 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.109 [INFO] [stderr] Downloaded tracing-test-macro v0.2.6 [INFO] [stderr] Downloaded tracing-test v0.2.6 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.59 [INFO] [stderr] Downloaded deadpool v0.12.3 [INFO] [stderr] Downloaded which v8.0.0 [INFO] [stderr] Downloaded mlua-sys v0.10.0 [INFO] [stderr] Downloaded tempfile v3.25.0 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.109 [INFO] [stderr] Downloaded wasm-bindgen v0.2.109 [INFO] [stderr] Downloaded reqwest-eventsource v0.6.0 [INFO] [stderr] Downloaded js-sys v0.3.86 [INFO] [stderr] Downloaded mlua v0.11.6 [INFO] [stderr] Downloaded winsafe v0.0.19 [INFO] [stderr] Downloaded web-sys v0.3.86 [INFO] [stderr] Downloaded lua-src v550.0.0 [INFO] [stderr] Downloaded luajit-src v210.6.6+707c12b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b58ca432b8f886e691a3ba64d0409dcdbdf312f9659dd0d992a7c5f294d5f27a [INFO] running `Command { std: "docker" "start" "-a" "b58ca432b8f886e691a3ba64d0409dcdbdf312f9659dd0d992a7c5f294d5f27a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b58ca432b8f886e691a3ba64d0409dcdbdf312f9659dd0d992a7c5f294d5f27a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b58ca432b8f886e691a3ba64d0409dcdbdf312f9659dd0d992a7c5f294d5f27a", kill_on_drop: false }` [INFO] [stdout] b58ca432b8f886e691a3ba64d0409dcdbdf312f9659dd0d992a7c5f294d5f27a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 72fb60bd290da8afa00f4f51ce00aa8e8cfebbc174bc3a412b3a4ba059ff4200 [INFO] running `Command { std: "docker" "start" "-a" "72fb60bd290da8afa00f4f51ce00aa8e8cfebbc174bc3a412b3a4ba059ff4200", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling lua-src v550.0.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling ed25519 v2.2.3 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling which v8.0.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling eventsource-stream v0.2.3 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling luajit-src v210.6.6+707c12b [INFO] [stderr] Compiling mlua-sys v0.10.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling ed25519-dalek v2.2.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling mlua v0.11.6 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling reqwest-eventsource v0.6.0 [INFO] [stderr] Compiling soul-core v0.12.4 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 11s [INFO] running `Command { std: "docker" "inspect" "72fb60bd290da8afa00f4f51ce00aa8e8cfebbc174bc3a412b3a4ba059ff4200", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "72fb60bd290da8afa00f4f51ce00aa8e8cfebbc174bc3a412b3a4ba059ff4200", kill_on_drop: false }` [INFO] [stdout] 72fb60bd290da8afa00f4f51ce00aa8e8cfebbc174bc3a412b3a4ba059ff4200 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f8d5acf3af37b24ec9ade38be8047ca172ee72de8703afea2d1ce744585c470d [INFO] running `Command { std: "docker" "start" "-a" "f8d5acf3af37b24ec9ade38be8047ca172ee72de8703afea2d1ce744585c470d", kill_on_drop: false }` [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling tracing-test-macro v0.2.6 [INFO] [stderr] Compiling assert_matches v1.5.0 [INFO] [stderr] Compiling tracing-test v0.2.6 [INFO] [stderr] Compiling deadpool v0.12.3 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling which v8.0.0 [INFO] [stderr] Compiling luajit-src v210.6.6+707c12b [INFO] [stderr] Compiling mlua-sys v0.10.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling mlua v0.11.6 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling wiremock v0.6.5 [INFO] [stderr] Compiling reqwest-eventsource v0.6.0 [INFO] [stderr] Compiling soul-core v0.12.4 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `JsonRpcId` [INFO] [stdout] --> src/mcp/transport.rs:26:34 [INFO] [stdout] | [INFO] [stdout] 26 | use super::super::protocol::{JsonRpcId, JsonRpcResponse}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `text` [INFO] [stdout] --> src/context/mod.rs:303:17 [INFO] [stdout] | [INFO] [stdout] 303 | let text = msg.text_content(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t2` [INFO] [stdout] --> src/planner/mod.rs:1121:13 [INFO] [stdout] | [INFO] [stdout] 1121 | let t2 = planner.add_task("B", None::); [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `resp` [INFO] [stdout] --> src/semantic_recursion/context_engine.rs:612:13 [INFO] [stdout] | [INFO] [stdout] 612 | let resp = engine.ingest_llm_response( [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_resp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `call_id` [INFO] [stdout] --> src/semantic_recursion/context_engine.rs:630:14 [INFO] [stdout] | [INFO] [stdout] 630 | let (call_id, result_id) = engine.ingest_tool_interaction( [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `result_id` [INFO] [stdout] --> src/semantic_recursion/context_engine.rs:630:23 [INFO] [stdout] | [INFO] [stdout] 630 | let (call_id, result_id) = engine.ingest_tool_interaction( [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 52.30s [INFO] running `Command { std: "docker" "inspect" "f8d5acf3af37b24ec9ade38be8047ca172ee72de8703afea2d1ce744585c470d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8d5acf3af37b24ec9ade38be8047ca172ee72de8703afea2d1ce744585c470d", kill_on_drop: false }` [INFO] [stdout] f8d5acf3af37b24ec9ade38be8047ca172ee72de8703afea2d1ce744585c470d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 9195bb993943adec8776c74f5037fa40b7c13b594d35da8db302af6de7b0811e [INFO] running `Command { std: "docker" "start" "-a" "9195bb993943adec8776c74f5037fa40b7c13b594d35da8db302af6de7b0811e", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `JsonRpcId` [INFO] [stderr] --> src/mcp/transport.rs:26:34 [INFO] [stderr] | [INFO] [stderr] 26 | use super::super::protocol::{JsonRpcId, JsonRpcResponse}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `text` [INFO] [stderr] --> src/context/mod.rs:303:17 [INFO] [stderr] | [INFO] [stderr] 303 | let text = msg.text_content(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_text` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `t2` [INFO] [stderr] --> src/planner/mod.rs:1121:13 [INFO] [stderr] | [INFO] [stderr] 1121 | let t2 = planner.add_task("B", None::); [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_t2` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `resp` [INFO] [stderr] --> src/semantic_recursion/context_engine.rs:612:13 [INFO] [stderr] | [INFO] [stderr] 612 | let resp = engine.ingest_llm_response( [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_resp` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `call_id` [INFO] [stderr] --> src/semantic_recursion/context_engine.rs:630:14 [INFO] [stderr] | [INFO] [stderr] 630 | let (call_id, result_id) = engine.ingest_tool_interaction( [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_call_id` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `result_id` [INFO] [stderr] --> src/semantic_recursion/context_engine.rs:630:23 [INFO] [stderr] | [INFO] [stderr] 630 | let (call_id, result_id) = engine.ingest_tool_interaction( [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_result_id` [INFO] [stderr] [INFO] [stderr] warning: `soul-core` (lib test) generated 6 warnings (run `cargo fix --lib -p soul-core --tests` to apply 6 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/soul_core-2e79878f8f2d0462) [INFO] [stdout] [INFO] [stdout] running 841 tests [INFO] [stdout] test agent::tests::agent_loop_exhausts_retries ... ok [INFO] [stdout] test agent::tests::structural_detector_catches_empty ... ok [INFO] [stdout] test agent::tests::agent_loop_retries_structural_failure ... ok [INFO] [stdout] test agent::tests::agent_loop_unknown_tool ... ok [INFO] [stdout] test agent::tests::agent_loop_with_tool_call ... ok [INFO] [stdout] test agent::tests::agent_loop_rlm_strategy_simple ... ok [INFO] [stdout] test agent::tests::structural_detector_catches_no_tools_turn_0 ... ok [INFO] [stdout] test agent::tests::structural_detector_passes_valid_tool_call ... ok [INFO] [stdout] test agent::tests::agent_loop_simple_response ... ok [INFO] [stdout] test agent::tests::agent_loop_semantic_graph_strategy ... ok [INFO] [stdout] test agent::tests::agent_loop_rlm_with_tools ... ok [INFO] [stdout] test agent::tests::structural_detector_catches_degenerate_short ... ok [INFO] [stdout] test context::tests::compact_preserves_structured_state ... ok [INFO] [stdout] test agent::tests::agent_loop_max_turns ... ok [INFO] [stdout] test context::tests::estimate_tokens_basic ... ok [INFO] [stdout] test context::tests::estimate_tokens_empty ... ok [INFO] [stdout] test context::tests::offload_skips_errors ... ok [INFO] [stdout] test context::tests::needs_compaction_above_threshold ... ok [INFO] [stdout] test context::tests::offload_tool_results_large ... ok [INFO] [stdout] test context::tests::needs_compaction_below_threshold ... ok [INFO] [stdout] test context::tests::utilization_calculation ... ok [INFO] [stdout] test agent::tests::structural_detector_passes_text_only_no_tools_available ... ok [INFO] [stdout] test context::tests::prune_preserves_minimum ... ok [INFO] [stdout] test context::tests::prune_small_list_unchanged ... ok [INFO] [stdout] test cost::budget::tests::budget_policy_serializes ... ok [INFO] [stdout] test cost::budget::tests::cost_exceeded_beats_warning ... ok [INFO] [stdout] test cost::budget::tests::budget_status_serializes ... ok [INFO] [stdout] test cost::budget::tests::exceeded_on_cost ... ok [INFO] [stdout] test cost::budget::tests::exceeded_on_tokens ... ok [INFO] [stdout] test cost::budget::tests::no_limits_always_ok ... ok [INFO] [stdout] test cost::budget::tests::ok_when_under_all_limits ... ok [INFO] [stdout] test cost::budget::tests::policy_accessor ... ok [INFO] [stdout] test cost::budget::tests::warning_on_threshold ... ok [INFO] [stdout] test cost::pricing::tests::compute_cost_with_cache ... ok [INFO] [stdout] test context::tests::compact_result_strategy ... ok [INFO] [stdout] test cost::pricing::tests::compute_cost_basic ... ok [INFO] [stdout] test context::tests::offload_skips_small_results ... ok [INFO] [stdout] test context::tests::would_overflow ... ok [INFO] [stdout] test context::tests::compact_circuit_breaker_resets ... ok [INFO] [stdout] test cost::pricing::tests::compute_cost_zero_tokens ... ok [INFO] [stdout] test cost::pricing::tests::gemini_pricing ... ok [INFO] [stdout] test cost::pricing::tests::haiku_pricing ... ok [INFO] [stdout] test cost::pricing::tests::known_model_pricing ... ok [INFO] [stdout] test cost::pricing::tests::model_info_pricing_overrides_table ... ok [INFO] [stdout] test cost::pricing::tests::unknown_model_fallback ... ok [INFO] [stdout] test cost::tests::by_model_breakdown ... ok [INFO] [stdout] test cost::tests::by_tool_breakdown ... ok [INFO] [stdout] test agent::tests::agent_loop_steering_interrupts ... ok [INFO] [stdout] test context::tests::compact_circuit_breaker ... ok [INFO] [stdout] test cost::budget::tests::exceeded_on_turns ... ok [INFO] [stdout] test cost::pricing::tests::openai_pricing ... ok [INFO] [stdout] test cost::pricing::tests::sonnet_pricing ... ok [INFO] [stdout] test agent::tests::structural_detector_catches_json_as_text ... ok [INFO] [stdout] test error::tests::io_error_converts ... ok [INFO] [stdout] test cost::tests::multi_turn_accumulation ... ok [INFO] [stdout] test cost::tests::record_single_turn ... ok [INFO] [stdout] test cost::tests::session_id_accessor ... ok [INFO] [stdout] test cost::tests::total_tokens_accessor ... ok [INFO] [stdout] test cost::tests::cost_summary_serializes ... ok [INFO] [stdout] test executor::direct::tests::executor_name_is_direct ... ok [INFO] [stdout] test executor::direct::tests::unknown_tool_errors ... ok [INFO] [stdout] test executor::http::tests::executor_name ... ok [INFO] [stdout] test executor::http::tests::is_send_sync ... ok [INFO] [stdout] test error::tests::error_display_formats ... ok [INFO] [stdout] test executor::http::tests::missing_url_errors ... ok [INFO] [stdout] test cost::tests::cost_event_serializes ... ok [INFO] [stdout] test executor::direct::tests::is_send_sync ... ok [INFO] [stdout] test error::tests::json_error_converts ... ok [INFO] [stdout] test executor::direct::tests::delegates_to_tool_registry ... ok [INFO] [stdout] test executor::http::tests::unsupported_method_errors ... ok [INFO] [stdout] test executor::http::tests::with_custom_client ... ok [INFO] [stdout] test executor::llm::tests::executes_with_text_argument ... ok [INFO] [stdout] test cost::tests::summary_matches_totals ... ok [INFO] [stdout] test error::tests::error_is_send_sync ... ok [INFO] [stdout] test executor::llm::tests::executes_without_text_argument ... ok [INFO] [stdout] test executor::shell::tests::custom_timeout ... ok [INFO] [stdout] test executor::llm::tests::executor_name ... ok [INFO] [stdout] test executor::tests::has_tool_checks_config_and_fallback ... ok [INFO] [stdout] test executor::tests::fallback_executor ... ok [INFO] [stdout] test executor::shell::tests::executor_name ... ok [INFO] [stdout] test executor::shell::tests::echo_command ... ok [INFO] [stdout] test executor::tests::missing_executor_errors ... ok [INFO] [stdout] test executor::tests::multiple_executors ... ok [INFO] [stdout] test executor::llm::tests::is_send_sync ... ok [INFO] [stdout] test gateway::tests::gateway_event_serializes ... ok [INFO] [stdout] test executor::tests::unknown_tool_errors ... ok [INFO] [stdout] test executor::llm::tests::passes_model_and_system_prompt ... ok [INFO] [stdout] test executor::shell::tests::missing_command_errors ... ok [INFO] [stdout] test executor::tests::routes_to_correct_executor ... ok [INFO] [stdout] test executor::shell::tests::failing_command ... ok [INFO] [stdout] test executor::mcp::tests::executor_name ... ok [INFO] [stdout] test executor::mcp::tests::delegates_to_mcp_client ... ok [INFO] [stdout] test executor::tests::definitions_returns_config_tools ... ok [INFO] [stdout] test gateway::tests::gateway_message_text ... ok [INFO] [stdout] test gateway::tests::gateway_trait_is_object_safe ... ok [INFO] [stdout] test gateway::tests::gateway_registry_empty ... ok [INFO] [stdout] test harness::store::tests::store_adds_and_selects_candidates ... ok [INFO] [stdout] test executor::shell::tests::native_echo ... ok [INFO] [stdout] test harness::store::tests::store_clear_failures ... ok [INFO] [stdout] test harness::store::tests::store_recent_failures_returns_last_n ... ok [INFO] [stdout] test harness::store::tests::store_records_failures ... ok [INFO] [stdout] test harness::store::tests::store_all_failures_across_tools ... ok [INFO] [stdout] test harness::thompson::tests::sample_beta_skewed_low ... ok [INFO] [stdout] test harness::thompson::tests::sample_beta_uniform_prior ... ok [INFO] [stdout] test harness::store::tests::store_thompson_favors_better_candidate ... ok [INFO] [stdout] test harness::thompson::tests::beta_arms_start_at_uniform ... ok [INFO] [stdout] test harness::thompson::tests::beta_arms_update_correctly ... ok [INFO] [stdout] test harness::thompson::tests::sample_beta_skewed_high ... ok [INFO] [stdout] test harness::thompson::tests::thompson_empty_sampler ... ok [INFO] [stdout] test harness::thompson::tests::thompson_sampler_add_arm ... ok [INFO] [stdout] test harness::thompson::tests::thompson_sampler_best_arm ... ok [INFO] [stdout] test harness::thompson::tests::thompson_sampler_selects_best_arm ... ok [INFO] [stdout] test harness::verifier::tests::failure_threshold_triggers_synthesis ... ok [INFO] [stdout] test harness::verifier::tests::no_synthesis_below_threshold ... ok [INFO] [stdout] test harness::verifier::tests::hook_stores_failure_records ... ok [INFO] [stdout] test harness::verifier::tests::hook_is_send_sync ... ok [INFO] [stdout] test harness::verifier::tests::synthesize_empty_string_check ... ok [INFO] [stdout] test harness::verifier::tests::no_harness_passes_through ... ok [INFO] [stdout] test harness::store::tests::harness_candidate_validate_fail ... ok [INFO] [stdout] test harness::verifier::tests::synthesize_from_empty_failures_returns_passthrough ... ok [INFO] [stdout] test hook::tests::empty_pipeline_passthrough ... ok [INFO] [stdout] test hook::tests::modifying_hooks_chain ... ok [INFO] [stdout] test harness::store::tests::harness_candidate_validate_pass ... ok [INFO] [stdout] test hook::tests::persist_hook_transforms ... ok [INFO] [stdout] test harness::verifier::tests::always_allow_harness_passes ... ok [INFO] [stdout] test hook::tests::modifying_hook_allows ... ok [INFO] [stdout] test hook::tests::void_hooks_fire_parallel ... ok [INFO] [stdout] test hook::tests::modifying_hook_cancels ... ok [INFO] [stdout] test lua::crypto::tests::base64_roundtrip ... ok [INFO] [stdout] test harness::verifier::tests::harness_with_arg_check_blocks_empty ... ok [INFO] [stdout] test executor::tests::config_tool_takes_priority_over_fallback ... ok [INFO] [stdout] test harness::verifier::tests::harness_with_arg_check_allows_valid ... ok [INFO] [stdout] test executor::mcp::tests::propagates_mcp_errors ... ok [INFO] [stdout] test lua::crypto::tests::ed25519_keygen ... ok [INFO] [stdout] test lua::crypto::tests::timestamp_format ... ok [INFO] [stdout] test lua::functions::tests::chunk_by_lines_content ... ok [INFO] [stdout] test lua::crypto::tests::hex_roundtrip ... ok [INFO] [stdout] test lua::functions::tests::chunk_by_lines_basic ... ok [INFO] [stdout] test lua::crypto::tests::random_bytes_length ... ok [INFO] [stdout] test lua::crypto::tests::timestamp_unix_reasonable ... ok [INFO] [stdout] test lua::functions::tests::json_decode_array ... ok [INFO] [stdout] test lua::functions::tests::chunk_by_chars_basic ... ok [INFO] [stdout] test lua::crypto::tests::sha256_known_vector ... ok [INFO] [stdout] test lua::functions::tests::json_decode_invalid ... ok [INFO] [stdout] test lua::functions::tests::json_decode_object ... ok [INFO] [stdout] test lua::functions::tests::json_encode_decode_roundtrip ... ok [INFO] [stdout] test lua::functions::tests::percent_encode_passthrough ... ok [INFO] [stdout] test harness::verifier::tests::always_block_harness_cancels ... ok [INFO] [stdout] test lua::functions::tests::json_encode_table ... ok [INFO] [stdout] test harness::verifier::tests::synthesized_empty_check_blocks_empty_arg ... ok [INFO] [stdout] test lua::crypto::tests::ed25519_pem_format ... ok [INFO] [stdout] test lua::functions::tests::chunk_by_regex_basic ... ok [INFO] [stdout] test lua::crypto::tests::ed25519_sign_verify_roundtrip ... ok [INFO] [stdout] test lua::functions::tests::percent_encode_spaces_and_specials ... ok [INFO] [stdout] test lua::functions::tests::search_basic_keyword ... ok [INFO] [stdout] test lua::functions::tests::search_empty_query ... ok [INFO] [stdout] test lua::functions::tests::search_returns_scored_results ... ok [INFO] [stdout] test lua::functions::tests::url_encode_special_chars ... ok [INFO] [stdout] test lua::tests::extract_lua_blocks_multiple ... ok [INFO] [stdout] test lua::tests::exec_with_timeout_succeeds ... ok [INFO] [stdout] test lua::functions::tests::slice_out_of_bounds ... ok [INFO] [stdout] test lua::tests::extract_lua_blocks_basic ... ok [INFO] [stdout] test lua::tests::exec_error_returns_soul_error ... ok [INFO] [stdout] test lua::tests::extract_lua_blocks_ignores_other_languages ... ok [INFO] [stdout] test lua::functions::tests::search_result_has_line_numbers ... ok [INFO] [stdout] test lua::functions::tests::search_no_matches ... ok [INFO] [stdout] test lua::functions::tests::url_encode_basic ... ok [INFO] [stdout] test lua::crypto::tests::ed25519_verify_bad_signature ... ok [INFO] [stdout] test harness::store::tests::harness_candidate_validate_with_args ... ok [INFO] [stdout] test lua::functions::tests::search_respects_top_k ... ok [INFO] [stdout] test lua::functions::tests::slice_basic ... ok [INFO] [stdout] test lua::tests::set_json_array ... ok [INFO] [stdout] test lua::tests::sandbox_creation ... ok [INFO] [stdout] test lua::tests::set_json_nested ... ok [INFO] [stdout] test lua::tests::sandbox_removes_dangerous_modules ... ok [INFO] [stdout] test lua::tests::extract_lua_blocks_none ... ok [INFO] [stdout] test lua::tests::lua_to_json_array ... ok [INFO] [stdout] test lua::tests::lua_to_json_object ... ok [INFO] [stdout] test lua::tests::final_answer_captures ... ok [INFO] [stdout] test lua::tests::lua_table_operations ... ok [INFO] [stdout] test lua::tests::print_captures_output ... ok [INFO] [stdout] test lua::tests::lua_string_operations ... ok [INFO] [stdout] test mcp::bridge::tests::definition_uses_prefix ... ok [INFO] [stdout] test lua::tests::set_json_object ... ok [INFO] [stdout] test mcp::bridge::tests::execute_propagates_error ... ok [INFO] [stdout] test mcp::bridge::tests::execute_calls_mcp_client ... ok [INFO] [stdout] test mcp::bridge::tests::prefixed_name_with_prefix ... ok [INFO] [stdout] test lua::tests::json_to_lua_roundtrip_object ... ok [INFO] [stdout] test lua::tests::json_to_lua_null ... ok [INFO] [stdout] test mcp::protocol::tests::id_from_number ... ok [INFO] [stdout] test mcp::bridge::tests::prefixed_name_without_prefix ... ok [INFO] [stdout] test mcp::protocol::tests::id_from_string ... ok [INFO] [stdout] test lua::tests::print_var_captures_output ... ok [INFO] [stdout] test mcp::protocol::tests::notification_serializes ... ok [INFO] [stdout] test mcp::protocol::tests::request_serializes ... ok [INFO] [stdout] test mcp::protocol::tests::response_error ... ok [INFO] [stdout] test mcp::protocol::tests::request_with_params ... ok [INFO] [stdout] test mcp::protocol::tests::response_success ... ok [INFO] [stdout] test mcp::tests::close_succeeds ... ok [INFO] [stdout] test mcp::tests::call_tool_returns_result ... ok [INFO] [stdout] test mcp::tests::initialize_error_returns_err ... ok [INFO] [stdout] test mcp::tests::initialize_handshake ... ok [INFO] [stdout] test mcp::tests::list_tools_returns_definitions ... ok [INFO] [stdout] test mcp::types::tests::content_image_serializes ... ok [INFO] [stdout] test mcp::transport::tests::mock_transport_empty_returns_error ... ok [INFO] [stdout] test mcp::types::tests::server_capabilities_default ... ok [INFO] [stdout] test mcp::transport::tests::mock_transport_returns_response ... ok [INFO] [stdout] test mcp::types::tests::content_text_serializes ... ok [INFO] [stdout] test mcp::tests::register_tools_into_registry ... ok [INFO] [stdout] test mcp::types::tests::resource_serializes ... ok [INFO] [stdout] test mcp::tests::read_resource ... ok [INFO] [stdout] test mcp::tests::list_resources ... ok [INFO] [stdout] test mcp::transport::tests::mock_transport_tracks_requests ... ok [INFO] [stdout] test mcp::transport::tests::mock_transport_notification ... ok [INFO] [stdout] test mcp::types::tests::server_info_serializes ... ok [INFO] [stdout] test mcp::tests::server_info_before_init ... ok [INFO] [stdout] test memory::tests::memory_store_delete_nonexistent ... ok [INFO] [stdout] test memory::tests::memory_store_build_prompt_section ... ok [INFO] [stdout] test memory::tests::bootstrap_files_reads_existing ... ok [INFO] [stdout] test mcp::types::tests::tool_def_roundtrip ... ok [INFO] [stdout] test mcp::protocol::tests::response_roundtrip ... ok [INFO] [stdout] test mcp::types::tests::tool_def_serializes ... ok [INFO] [stdout] test memory::tests::memory_store_empty_prompt_section ... ok [INFO] [stdout] test mcp::types::tests::tool_result_serializes ... ok [INFO] [stdout] test memory::tests::bootstrap_build_prompt_section ... ok [INFO] [stdout] test memory::tests::bootstrap_files_empty ... ok [INFO] [stdout] test memory::tests::memory_store_delete_topic ... ok [INFO] [stdout] test mcp::protocol::tests::request_roundtrip ... ok [INFO] [stdout] test observation::tests::build_context_block_empty ... ok [INFO] [stdout] test observation::tests::kind_labels_and_emojis ... ok [INFO] [stdout] test memory::tests::memory_store_topics ... ok [INFO] [stdout] test observation::tests::build_context_block_with_data ... ok [INFO] [stdout] test observation::tests::builder_pattern_with_facts ... ok [INFO] [stdout] test memory::tests::memory_store_write_and_read_main ... ok [INFO] [stdout] test observation::tests::load_recent_limit ... ok [INFO] [stdout] test memory::tests::memory_store_read_nonexistent ... ok [INFO] [stdout] test observation::tests::load_by_kind ... ok [INFO] [stdout] test observation::tests::count_observations ... ok [INFO] [stdout] test observation::tests::load_recent_most_recent_first ... ok [INFO] [stdout] test lua::tests::set_string_variable ... ok [INFO] [stdout] test observation::tests::load_recent_project_filter ... ok [INFO] [stdout] test observation::tests::observation_new_has_id ... ok [INFO] [stdout] test observation::tests::save_and_load_project ... ok [INFO] [stdout] test observation::tests::observation_render_contains_kind ... ok [INFO] [stdout] test permission::hook::tests::custom_ask_handler ... ok [INFO] [stdout] test permission::hook::tests::hook_name ... ok [INFO] [stdout] test permission::hook::tests::permission_hook_is_send_sync ... ok [INFO] [stdout] test observation::tests::search_by_keyword_narrative ... ok [INFO] [stdout] test observation::tests::search_by_keyword_facts ... ok [INFO] [stdout] test observation::tests::search_case_insensitive ... ok [INFO] [stdout] test observation::tests::search_by_keyword_title ... ok [INFO] [stdout] test permission::hook::tests::ask_with_allow_handler_continues ... ok [INFO] [stdout] test observation::tests::search_project_filter ... ok [INFO] [stdout] test permission::hook::tests::ask_with_deny_handler_cancels ... ok [INFO] [stdout] test observation::tests::load_session_filtered ... ok [INFO] [stdout] test permission::manager::tests::allow_rule_passes ... ok [INFO] [stdout] test permission::hook::tests::deny_cancels ... ok [INFO] [stdout] test permission::manager::tests::argument_pattern_matching ... ok [INFO] [stdout] test permission::manager::tests::default_policy_ask ... ok [INFO] [stdout] test permission::manager::tests::ask_includes_risk_level ... ok [INFO] [stdout] test permission::manager::tests::default_policy_deny ... ok [INFO] [stdout] test permission::manager::tests::deny_rule_blocks ... ok [INFO] [stdout] test permission::manager::tests::deny_wins_over_allow_same_priority ... ok [INFO] [stdout] test permission::manager::tests::higher_priority_wins ... ok [INFO] [stdout] test permission::manager::tests::glob_pattern_matches ... ok [INFO] [stdout] test permission::manager::tests::multiple_argument_patterns_all_must_match ... ok [INFO] [stdout] test permission::manager::tests::risk_classification ... ok [INFO] [stdout] test permission::manager::tests::wildcard_allows_all ... ok [INFO] [stdout] test permission::pattern::tests::argument_missing_path ... ok [INFO] [stdout] test permission::manager::tests::permission_gate_trait ... ok [INFO] [stdout] test permission::manager::tests::ask_rule_prompts ... ok [INFO] [stdout] test permission::manager::tests::default_policy_allow ... ok [INFO] [stdout] test permission::pattern::tests::argument_bool_match ... ok [INFO] [stdout] test permission::hook::tests::ask_without_handler_denies ... ok [INFO] [stdout] test permission::pattern::tests::argument_array_no_match ... ok [INFO] [stdout] test permission::pattern::tests::argument_nested_path ... ok [INFO] [stdout] test observation::tests::load_by_kind_project_filter ... ok [INFO] [stdout] test permission::pattern::tests::argument_null_match ... ok [INFO] [stdout] test permission::pattern::tests::argument_object_no_match ... ok [INFO] [stdout] test permission::pattern::tests::argument_number_match ... ok [INFO] [stdout] test permission::pattern::tests::empty_pattern_empty_name ... ok [INFO] [stdout] test permission::pattern::tests::empty_pattern_nonempty_name ... ok [INFO] [stdout] test permission::pattern::tests::exact_match ... ok [INFO] [stdout] test permission::pattern::tests::exact_no_match ... ok [INFO] [stdout] test permission::pattern::tests::nonempty_pattern_empty_name ... ok [INFO] [stdout] test permission::pattern::tests::question_mark_at_end ... ok [INFO] [stdout] test permission::pattern::tests::question_mark_single_char ... ok [INFO] [stdout] test permission::pattern::tests::star_and_question ... ok [INFO] [stdout] test permission::pattern::tests::star_matches_empty ... ok [INFO] [stdout] test permission::pattern::tests::star_matches_everything ... ok [INFO] [stdout] test permission::pattern::tests::star_middle ... ok [INFO] [stdout] test permission::pattern::tests::star_prefix ... ok [INFO] [stdout] test permission::pattern::tests::star_suffix ... ok [INFO] [stdout] test permission::tests::permission_decision_serializes ... ok [INFO] [stdout] test permission::tests::rule_action_serializes ... ok [INFO] [stdout] test planner::tests::add_dependency ... ok [INFO] [stdout] test planner::tests::add_and_get_task ... ok [INFO] [stdout] test planner::tests::add_question ... ok [INFO] [stdout] test planner::tests::all_questions ... ok [INFO] [stdout] test permission::pattern::tests::argument_string_match ... ok [INFO] [stdout] test permission::tests::risk_level_ordering ... ok [INFO] [stdout] test planner::tests::add_task_with_description ... ok [INFO] [stdout] test permission::pattern::tests::double_star ... ok [INFO] [stdout] test permission::tests::risk_level_display ... ok [INFO] [stdout] test planner::tests::add_question_with_options ... ok [INFO] [stdout] test planner::tests::all_tasks_creation_order ... ok [INFO] [stdout] test planner::tests::blocked_by_annotation_none ... ok [INFO] [stdout] test planner::tests::blocked_by_annotation_single ... ok [INFO] [stdout] test planner::tests::answer_nonexistent_question_fails ... ok [INFO] [stdout] test planner::tests::blocked_task_not_ready ... ok [INFO] [stdout] test permission::hook::tests::allow_continues ... ok [INFO] [stdout] test planner::tests::blocked_tasks ... ok [INFO] [stdout] test planner::tests::checkpoint_survives_snapshot ... ok [INFO] [stdout] test planner::tests::can_retry_check ... ok [INFO] [stdout] test planner::tests::blocked_by_annotation_multiple ... ok [INFO] [stdout] test planner::tests::auto_incrementing_ids ... ok [INFO] [stdout] test planner::tests::cannot_start_completed_task ... ok [INFO] [stdout] test planner::tests::cannot_start_nonexistent_task ... ok [INFO] [stdout] test planner::tests::checkpoint_nonexistent_task_fails ... ok [INFO] [stdout] test planner::tests::answer_question ... ok [INFO] [stdout] test planner::tests::checkpoint_preserved_across_retry ... ok [INFO] [stdout] test planner::tests::checkpoint_overwrites_previous ... ok [INFO] [stdout] test planner::tests::checkpoint_stores_output ... ok [INFO] [stdout] test planner::tests::fail_task ... ok [INFO] [stdout] test planner::tests::failed_dep_unblocks_downstream ... ok [INFO] [stdout] test planner::tests::format_duration_minutes ... ok [INFO] [stdout] test planner::tests::format_duration_hours ... ok [INFO] [stdout] test planner::tests::format_duration_seconds ... ok [INFO] [stdout] test planner::tests::in_progress_tasks ... ok [INFO] [stdout] test planner::tests::is_done ... ok [INFO] [stdout] test planner::tests::link_nonexistent_question_fails ... ok [INFO] [stdout] test planner::tests::empty_planner ... ok [INFO] [stdout] test planner::tests::link_question_to_task ... ok [INFO] [stdout] test planner::tests::fail_with_error_records_message ... ok [INFO] [stdout] test planner::tests::multiple_dependencies ... ok [INFO] [stdout] test planner::tests::cycle_detection ... ok [INFO] [stdout] test planner::tests::no_questions_means_ready ... ok [INFO] [stdout] test planner::tests::next_task_skips_blocked ... ok [INFO] [stdout] test planner::tests::next_task_returns_first_ready ... ok [INFO] [stdout] test planner::tests::ready_tasks ... ok [INFO] [stdout] test planner::tests::remove_task_cleans_edges ... ok [INFO] [stdout] test planner::tests::render_basic ... ok [INFO] [stdout] test planner::tests::render_completed_tasks ... ok [INFO] [stdout] test planner::tests::nonexistent_dependency_rejected ... ok [INFO] [stdout] test planner::tests::render_hides_answered_questions ... ok [INFO] [stdout] test planner::tests::open_questions_filters_answered ... ok [INFO] [stdout] test planner::tests::questions_survive_snapshot ... ok [INFO] [stdout] test planner::tests::question_ids_increment ... ok [INFO] [stdout] test planner::tests::render_with_blocked_tasks ... ok [INFO] [stdout] test planner::tests::resume_no_in_progress_returns_empty ... ok [INFO] [stdout] test planner::tests::resume_resets_in_progress_to_pending ... ok [INFO] [stdout] test planner::tests::render_shows_options ... ok [INFO] [stdout] test planner::tests::retry_all_retries_eligible ... ok [INFO] [stdout] test planner::tests::resume_after_snapshot_roundtrip ... ok [INFO] [stdout] test planner::tests::retry_exhausted ... ok [INFO] [stdout] test planner::tests::retry_non_failed_task_fails ... ok [INFO] [stdout] test planner::tests::render_shows_open_questions ... ok [INFO] [stdout] test planner::tests::remove_nonexistent_returns_none ... ok [INFO] [stdout] test planner::tests::retry_failed_task ... ok [INFO] [stdout] test planner::tests::render_shows_retry_count ... ok [INFO] [stdout] test planner::tests::skipped_dep_unblocks_downstream ... ok [INFO] [stdout] test planner::tests::retry_preserves_last_error ... ok [INFO] [stdout] test planner::tests::status_symbols ... ok [INFO] [stdout] test planner::tests::snapshot_equality ... ok [INFO] [stdout] test planner::tests::status_terminal ... ok [INFO] [stdout] test planner::tests::task_metadata ... ok [INFO] [stdout] test planner::tests::task_becomes_ready_when_deps_complete ... ok [INFO] [stdout] test planner::tests::self_dependency_rejected ... ok [INFO] [stdout] test planner::tests::topological_order_diamond ... ok [INFO] [stdout] test planner::tests::skip_task ... ok [INFO] [stdout] test planner::tests::set_max_retries ... ok [INFO] [stdout] test planner::tests::topological_order_independent ... ok [INFO] [stdout] test planner::tests::snapshot_roundtrip ... ok [INFO] [stdout] test planner::tests::status_lifecycle ... ok [INFO] [stdout] test planner::tests::task_count ... ok [INFO] [stdout] test planner::tests::retry_without_max_retries_fails ... ok [INFO] [stdout] test planner::tests::set_max_retries_nonexistent_fails ... ok [INFO] [stdout] test policy::distiller::tests::distillation_not_repeated ... ok [INFO] [stdout] test policy::distiller::tests::generate_policy_empty_returns_none ... ok [INFO] [stdout] test policy::distiller::tests::fingerprint_includes_tool_and_sorted_keys ... ok [INFO] [stdout] test policy::distiller::tests::fingerprint_empty_args ... ok [INFO] [stdout] test policy::registry::tests::policy_registry_all_as_tools ... ok [INFO] [stdout] test policy::registry::tests::policy_registry_missing_returns_none ... ok [INFO] [stdout] test planner::tests::render_with_active_task ... ok [INFO] [stdout] test planner::tests::topological_order_linear ... ok [INFO] [stdout] test policy::distiller::tests::generate_policy_identity ... ok [INFO] [stdout] test policy::registry::tests::policy_registry_register_and_retrieve ... ok [INFO] [stdout] test policy::registry::tests::policy_tool_definition_has_schema ... ok [INFO] [stdout] test planner::tests::counts ... ok [INFO] [stdout] test policy::distiller::tests::generate_policy_static ... ok [INFO] [stdout] test policy::distiller::tests::no_distillation_below_threshold ... ok [INFO] [stdout] test policy::distiller::tests::observe_ignores_failures ... ok [INFO] [stdout] test policy::distiller::tests::observe_tracks_successes ... ok [INFO] [stdout] test policy::distiller::tests::static_policy_distilled_after_threshold ... ok [INFO] [stdout] test policy::registry::tests::policy_tool_execute_returns_output ... ok [INFO] [stdout] test policy::distiller::tests::varying_output_non_distillable ... ok [INFO] [stdout] test policy::registry::tests::distilled_policy_new ... ok [INFO] [stdout] test planner::tests::snapshot_json_pretty ... ok [INFO] [stdout] test provider::anthropic::tests::detects_oauth_token ... ok [INFO] [stdout] test provider::anthropic::tests::builds_messages_body_without_tools ... ok [INFO] [stdout] test provider::anthropic::tests::inject_oauth_fields_skips_api_key ... ok [INFO] [stdout] test provider::anthropic::tests::inject_oauth_fields_adds_metadata ... ok [INFO] [stdout] test provider::anthropic::tests::custom_base_url ... ok [INFO] [stdout] test provider::anthropic::tests::detects_api_key ... ok [INFO] [stdout] test provider::anthropic::tests::inject_oauth_fields_preserves_existing_metadata ... ok [INFO] [stdout] test provider::anthropic::tests::oauth_user_id_hash_is_64_hex_chars ... ok [INFO] [stdout] test provider::anthropic::tests::parse_sse_text_delta ... ok [INFO] [stdout] test provider::anthropic::tests::oauth_user_id_is_deterministic ... ok [INFO] [stdout] test provider::anthropic::tests::parse_sse_thinking_delta ... ok [INFO] [stdout] test provider::anthropic::tests::message_to_api_tool_result ... ok [INFO] [stdout] test provider::anthropic::tests::parse_sse_unknown_event ... ok [INFO] [stdout] test provider::anthropic::tests::message_to_api_user ... ok [INFO] [stdout] test provider::anthropic::tests::message_to_api_assistant_with_tool_call ... ok [INFO] [stdout] test provider::anthropic::tests::no_remap_preserves_tool_names ... ok [INFO] [stdout] test provider::anthropic::tests::oauth_url_has_beta_param ... ok [INFO] [stdout] test provider::anthropic::tests::builds_messages_body_with_tools ... ok [INFO] [stdout] test provider::anthropic::tests::oauth_user_id_differs_per_token ... ok [INFO] [stdout] test policy::registry::tests::policy_tool_name_prefixed ... ok [INFO] [stdout] test policy::registry::tests::distilled_policy_execute_failure ... ok [INFO] [stdout] test policy::registry::tests::distilled_policy_execute_static ... ok [INFO] [stdout] test provider::anthropic::tests::provider_kind_is_anthropic ... ok [INFO] [stdout] test provider::anthropic::tests::remap_renames_tools_in_body ... ok [INFO] [stdout] test provider::anthropic::tests::remap_renames_tool_calls_in_messages ... ok [INFO] [stdout] test provider::anthropic::tests::remap_restores_name_from_sse_content_block ... ok [INFO] [stdout] test policy::registry::tests::distilled_policy_execute_with_arg ... ok [INFO] [stdout] test provider::balanced::intent::tests::intent_display ... ok [INFO] [stdout] test provider::balanced::intent::tests::intent_roundtrip ... ok [INFO] [stdout] test provider::balanced::rate_limit::tests::status_snapshot ... ok [INFO] [stdout] test provider::balanced::rate_limit::tests::failure_tracking ... ok [INFO] [stdout] test provider::balanced::rate_limit::tests::unlimited_always_accepts ... ok [INFO] [stdout] test provider::balanced::tests::balanced_status ... ok [INFO] [stdout] test provider::ollama::tests::custom_base_url ... ok [INFO] [stdout] test provider::ollama::tests::builds_body_without_tools ... ok [INFO] [stdout] test provider::ollama::tests::default_base_url ... ok [INFO] [stdout] test provider::ollama::tests::message_to_api_assistant_with_tool_calls ... ok [INFO] [stdout] test provider::ollama::tests::message_to_api_tool_result ... ok [INFO] [stdout] test provider::ollama::tests::message_to_api_user ... ok [INFO] [stdout] test provider::ollama::tests::provider_kind_is_ollama ... ok [INFO] [stdout] test provider::ollama::tests::qwen3_base_enables_thinking ... ok [INFO] [stdout] test provider::balanced::rate_limit::tests::cooldown_blocks ... ok [INFO] [stdout] test provider::ollama::tests::strip_think_tags_basic ... ok [INFO] [stdout] test provider::balanced::rate_limit::tests::rpm_blocks_when_exhausted ... ok [INFO] [stdout] test provider::ollama::tests::qwen3_coder_no_thinking ... ok [INFO] [stdout] test provider::balanced::intent::tests::intent_serializes ... ok [INFO] [stdout] test provider::openai::tests::builds_body_with_tools ... ok [INFO] [stdout] test provider::openai::tests::custom_base_url ... ok [INFO] [stdout] test provider::balanced::tests::failover_uses_first ... ok [INFO] [stdout] test provider::balanced::tests::intent_prefers_mapped_providers ... ok [INFO] [stdout] test provider::balanced::tests::round_robin_cycles ... ok [INFO] [stdout] test provider::balanced::tests::skips_rate_limited ... ok [INFO] [stdout] test provider::openai::tests::builds_body_without_tools ... ok [INFO] [stdout] test provider::balanced::tests::no_providers_returns_error ... ok [INFO] [stdout] test provider::balanced::tests::stream_failover_on_error ... ok [INFO] [stdout] test provider::balanced::tests::probe_healthy_when_available ... ok [INFO] [stdout] test provider::balanced::tests::stream_with_intent_selects_correctly ... ok [INFO] [stdout] test provider::balanced::tests::weighted_distributes ... ok [INFO] [stdout] test provider::ollama::tests::builds_body_with_tools ... ok [INFO] [stdout] test provider::openai::tests::message_to_api_assistant_with_tool_calls ... ok [INFO] [stdout] test provider::openai::tests::message_to_api_tool_result ... ok [INFO] [stdout] test provider::openai::tests::provider_kind_is_openai ... ok [INFO] [stdout] test provider::openai::tests::message_to_api_user ... ok [INFO] [stdout] test provider::openai_codex::tests::auth_profile_oauth_new ... ok [INFO] [stdout] test provider::openai_codex::tests::custom_base_url ... ok [INFO] [stdout] test provider::openai_codex::tests::gpt_5_3_codex_model_info ... ok [INFO] [stdout] test provider::openai_codex::tests::auth_mode_oauth_serializes ... ok [INFO] [stdout] test provider::openai_codex::tests::model_id_prefix_stripped_in_body ... ok [INFO] [stdout] test provider::openai_codex::tests::auth_mode_is_api_key_skip_serialization ... ok [INFO] [stdout] test provider::openai_codex::tests::provider_kind_deserializes_from_kebab_case ... ok [INFO] [stdout] test provider::openai_codex::tests::auth_mode_api_key_never_expires ... ok [INFO] [stdout] test provider::openai_codex::tests::model_id_without_prefix_passes_through ... ok [INFO] [stdout] test policy::registry::tests::policy_tool_is_a_tool_trait_object ... ok [INFO] [stdout] test provider::openai_codex::tests::provider_kind_is_openai_codex ... ok [INFO] [stdout] test provider::openai_codex::tests::provider_kind_serializes_as_kebab_case ... ok [INFO] [stdout] test provider::openai_codex::tests::provider_kind_display ... ok [INFO] [stdout] test provider::openai_codex::tests::auth_mode_expired_token ... ok [INFO] [stdout] test provider::registry::tests::registry_register_and_get ... ok [INFO] [stdout] test provider::remap::tests::no_blocked_names_in_output ... ok [INFO] [stdout] test provider::remap::tests::none_is_empty ... ok [INFO] [stdout] test provider::remap::tests::restore_name_maps_back ... ok [INFO] [stdout] test provider::remap::tests::first_tool_gets_alpha_river ... ok [INFO] [stdout] test provider::remap::tests::handles_many_tools ... ok [INFO] [stdout] test provider::registry::tests::registry_lists_providers ... ok [INFO] [stdout] test provider::registry::tests::registry_empty ... ok [INFO] [stdout] test provider::traits::tests::provider_is_object_safe ... ok [INFO] [stdout] test provider::remap::tests::roundtrip_outbound_inbound ... ok [INFO] [stdout] test provider::remap::tests::second_tool_gets_beta_river ... ok [INFO] [stdout] test provider::remap::tests::wildcard_creates_unique_names ... ok [INFO] [stdout] test provider::remap::tests::wildcard_is_active ... ok [INFO] [stdout] test provider::remap::tests::tool_24_wraps_to_next_suffix ... ok [INFO] [stdout] test provider::traits::tests::probe_result_creates ... ok [INFO] [stdout] test provider::traits::tests::proxy_config_passthrough ... ok [INFO] [stdout] test provider::remap::tests::restore_name_passes_through_unknown ... ok [INFO] [stdout] test provider::traits::tests::proxy_config_default_prefixes ... ok [INFO] [stdout] test provider::remap::tests::wildcard_is_deterministic ... ok [INFO] [stdout] test rlm::dsl::tests::extract_no_blocks ... ok [INFO] [stdout] test provider::traits::tests::proxy_config_trailing_slash_preserved ... ok [INFO] [stdout] test rlm::dsl::tests::extract_ignores_non_rlm_blocks ... ok [INFO] [stdout] test rlm::dsl::tests::extract_multiple_blocks ... ok [INFO] [stdout] test rlm::dsl::tests::extract_single_block ... ok [INFO] [stdout] test rlm::dsl::tests::parse_chunk_by_chars ... ok [INFO] [stdout] test rlm::dsl::tests::parse_chunk_by_lines ... ok [INFO] [stdout] test rlm::dsl::tests::parse_empty_lines_skipped ... ok [INFO] [stdout] test rlm::dsl::tests::parse_error_bad_let ... ok [INFO] [stdout] test rlm::dsl::tests::parse_chunk_by_regex ... ok [INFO] [stdout] test rlm::dsl::tests::parse_concat ... ok [INFO] [stdout] test rlm::dsl::tests::parse_final ... ok [INFO] [stdout] test rlm::dsl::tests::parse_error_unknown_command ... ok [INFO] [stdout] test rlm::dsl::tests::parse_final_text ... ok [INFO] [stdout] test rlm::dsl::tests::parse_filter ... ok [INFO] [stdout] test rlm::dsl::tests::parse_comments_skipped ... ok [INFO] [stdout] test rlm::dsl::tests::parse_get ... ok [INFO] [stdout] test rlm::dsl::tests::parse_join ... ok [INFO] [stdout] test rlm::dsl::tests::parse_index ... ok [INFO] [stdout] test rlm::dsl::tests::parse_len ... ok [INFO] [stdout] test rlm::dsl::tests::parse_map ... ok [INFO] [stdout] test rlm::dsl::tests::parse_multi_line_program ... ok [INFO] [stdout] test rlm::dsl::tests::parse_print ... ok [INFO] [stdout] test rlm::dsl::tests::parse_query ... ok [INFO] [stdout] test rlm::dsl::tests::parse_show_vars ... ok [INFO] [stdout] test rlm::dsl::tests::parse_slice ... ok [INFO] [stdout] test rlm::dsl::tests::tokenize_simple ... ok [INFO] [stdout] test rlm::dsl::tests::tokenize_with_quotes ... ok [INFO] [stdout] test rlm::engine::tests::build_context_window_full_budget ... ok [INFO] [stdout] test rlm::engine::tests::build_context_window_with_doc_matches_original ... ok [INFO] [stdout] test rlm::engine::tests::context_metadata_counts ... ok [INFO] [stdout] test rlm::engine::tests::context_window_never_starts_with_tool_result ... ok [INFO] [stdout] test rlm::engine::tests::count_turns_works ... ok [INFO] [stdout] test rlm::engine::tests::rlm_config_output_cap ... ok [INFO] [stdout] test rlm::engine::tests::rlm_iteration_fields ... ok [INFO] [stdout] test rlm::engine::tests::rlm_config_sub_model_tiering ... ok [INFO] [stdout] test rlm::engine::tests::rlm_result_fields ... ok [INFO] [stdout] test rlm::engine::tests::serialize_empty_conversation ... ok [INFO] [stdout] test rlm::engine::tests::serialization_preserves_turn_structure ... ok [INFO] [stdout] test rlm::engine::tests::rlm_config_defaults ... ok [INFO] [stdout] test rlm::engine::tests::incremental_with_tool_errors ... ok [INFO] [stdout] test rlm::engine::tests::incremental_matches_full_serialization ... ok [INFO] [stdout] test rlm::engine::tests::system_prompt_contains_lua_docs ... ok [INFO] [stdout] test rlm::engine::tests::system_prompt_describes_context_as_document ... ok [INFO] [stdout] test rlm::environment::tests::final_text ... ok [INFO] [stdout] test rlm::environment::tests::get_copies_var ... ok [INFO] [stdout] test rlm::environment::tests::chunk_by_lines ... ok [INFO] [stdout] test rlm::engine::tests::serialize_with_tool_calls ... ok [INFO] [stdout] test rlm::environment::tests::index_list ... ok [INFO] [stdout] test rlm::environment::tests::len_text ... ok [INFO] [stdout] test rlm::engine::tests::serialize_simple_conversation ... ok [INFO] [stdout] test rlm::engine::tests::serialize_with_tool_error ... ok [INFO] [stdout] test rlm::environment::tests::index_out_of_bounds ... ok [INFO] [stdout] test rlm::environment::tests::chunk_by_chars ... ok [INFO] [stdout] test rlm::environment::tests::concat_texts ... ok [INFO] [stdout] test rlm::environment::tests::load_list_context ... ok [INFO] [stdout] test rlm::environment::tests::load_text_context ... ok [INFO] [stdout] test rlm::engine::tests::context_window_keeps_tool_use_and_result_together ... ok [INFO] [stdout] test rlm::environment::tests::missing_var_error ... ok [INFO] [stdout] test rlm::environment::tests::print_truncates_long ... ok [INFO] [stdout] test rlm::environment::tests::len_list ... ok [INFO] [stdout] test rlm::environment::tests::map_returns_request ... ok [INFO] [stdout] test rlm::environment::tests::join_list ... ok [INFO] [stdout] test rlm::environment::tests::final_answer ... ok [INFO] [stdout] test rlm::environment::tests::query_returns_request ... ok [INFO] [stdout] test rlm::environment::tests::show_vars ... ok [INFO] [stdout] test rlm::environment::tests::slice_text ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::expand_symlink_refs_in_text ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::compact_preserves_originals ... ok [INFO] [stdout] test rlm::recall_tool::tests::recall_tool_definition ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::ingest_external_context ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::ingest_conversation ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::recursive_compaction_ancestry ... ok [INFO] [stdout] test rlm::engine::tests::build_context_window_respects_budget ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::retrieve_respects_token_budget ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::retrieve_symlinked_window ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::retrieve_relevant_context ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::ingest_tool_interaction ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_stats_tracked ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::retrieve_with_graph_neighbors ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_single_node ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::stats_complete ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::agglomerative_cluster_all_merge ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::agglomerative_cluster_basic ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::agglomerative_cluster_single ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::compute_centroid_basic ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_with_fragment_config ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_fragmented_creates_graph_edges ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_fragmented_multi_topic ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_fragmented_short_message ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_node_idempotent ... ok [INFO] [stdout] test semantic_recursion::context_engine::tests::symlink_nonexistent_node ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::compute_centroid_empty ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::cosine_sim_orthogonal ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::cosine_sim_identical ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::cosine_sim_empty ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::determine_k_medium ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_config_min_fragments ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::split_sentences_empty ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::split_sentences_no_breaks ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_multi_topic_message ... ok [INFO] [stdout] test semantic_recursion::graph::tests::active_token_estimate ... ok [INFO] [stdout] test semantic_recursion::graph::tests::add_edge_and_query ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::determine_k_clamped ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_preserves_all_text ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_has_summaries ... ok [INFO] [stdout] test semantic_recursion::graph::tests::add_node_and_get ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::determine_k_small ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_short_message ... ok [INFO] [stdout] test semantic_recursion::graph::tests::compact_nodes ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::split_sentences_basic ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::fragment_config_max_fragments ... ok [INFO] [stdout] test semantic_recursion::fragment::tests::split_sentences_newlines ... ok [INFO] [stdout] test semantic_recursion::graph::tests::full_ancestry_recursive ... ok [INFO] [stdout] test semantic_recursion::graph::tests::node_metadata ... ok [INFO] [stdout] test semantic_recursion::graph::tests::neighbors ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::auto_summary_empty ... ok [INFO] [stdout] test semantic_recursion::graph::tests::score_relevance ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::auto_summary_short ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::auto_summary_truncates ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::all_symlinks ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::auto_summary_first_line ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::create_idempotent_same_node ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::collision_handling ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::create_symlink ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::empty_store ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::create_different_nodes_different_hashes ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::expand_refs_in_text ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::expand_refs_no_refs ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::tokens_saved ... ok [INFO] [stdout] test semantic_recursion::graph::tests::edge_count ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::expand_refs_unknown_hash ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::total_tokens_saved ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::extract_refs_case_normalized ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::extract_refs_from_text ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::extract_refs_no_matches ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::format_ref ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::hash_for_node ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::list_empty_store ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::list_all_symlinks ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::resolve_batch ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::resolve_case_insensitive ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::resolve_existing ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::resolve_nonexistent ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::search_by_original_content ... ok [INFO] [stdout] test semantic_recursion::symlink::tests::search_by_summary ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_empty_hashes ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_mixed_found_and_not ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_multiple_hashes ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_not_found ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_single_hash ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::tokenize_empty ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::search_bad_arguments ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::search_no_matches ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::search_finds_matches ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::tokenize_simple ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::tokenize_with_punctuation ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::vocabulary_builds ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::reverse_vocab ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::embedding_cosine_orthogonal ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::embedding_cosine_zero ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_empty_search ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::frequencies_correct ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_get_by_id ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::embedding_cosine_identical ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::tf_vector ... ok [INFO] [stdout] test session::tests::session_store_delete ... ok [INFO] [stdout] test session::tests::session_store_append_and_load ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_with_metadata ... ok [INFO] [stdout] test session::tests::session_serializes ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::resolve_bad_arguments ... ok [INFO] [stdout] test session::tests::lane_serialization ... ok [INFO] [stdout] test semantic_recursion::tokenizer::tests::same_word_same_id ... ok [INFO] [stdout] test semantic_recursion::symlink_tool::tests::tool_definitions_valid ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_len ... ok [INFO] [stdout] test session::tests::session_append ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_insert_and_search ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_search_relevance ... ok [INFO] [stdout] test session::tests::session_new ... ok [INFO] [stdout] test session::tests::session_store_load_nonexistent ... ok [INFO] [stdout] test skill::bridge::tests::name_returns_skill_name ... ok [INFO] [stdout] test session::tests::session_store_save_and_list ... ok [INFO] [stdout] test skill::executor::tests::execute_echo_command ... ok [INFO] [stdout] test session::tests::session_store_with_base_dir ... ok [INFO] [stdout] test session::tests::session_with_lane ... ok [INFO] [stdout] test skill::bridge::tests::definition_maps_correctly ... ok [INFO] [stdout] test skill::executor::tests::lua_execute_print_output ... ok [INFO] [stdout] test skill::bridge::tests::execute_delegates_to_executor ... ok [INFO] [stdout] test skill::executor::tests::lua_execute_with_args ... ok [INFO] [stdout] test skill::executor::tests::lua_execute_with_json_functions ... ok [INFO] [stdout] test skill::bridge::tests::execute_without_input ... ok [INFO] [stdout] test skill::executor::tests::render_multiple_placeholders ... ok [INFO] [stdout] test skill::bridge::tests::skill_tool_bridge_is_send_sync ... ok [INFO] [stdout] test skill::executor::tests::lua_executor_rejects_shell_skill ... ok [INFO] [stdout] test skill::executor::tests::render_simple_template ... ok [INFO] [stdout] test skill::executor::tests::render_number_value ... ok [INFO] [stdout] test skill::executor::tests::render_unresolved_placeholder_errors ... ok [INFO] [stdout] test skill::executor::tests::execute_failing_command ... ok [INFO] [stdout] test skill::executor::tests::lua_execute_simple_return ... ok [INFO] [stdout] test skill::executor::tests::native_execute_echo ... ok [INFO] [stdout] test semantic_recursion::vector_store::tests::vector_store_many_entries ... ok [INFO] [stdout] test skill::executor::tests::lua_execute_error ... ok [INFO] [stdout] test skill::loader::tests::load_single_file ... ok [INFO] [stdout] test skill::loader::tests::concurrent_access ... ok [INFO] [stdout] test skill::parser::tests::missing_frontmatter_errors ... ok [INFO] [stdout] test skill::loader::tests::names_and_definitions ... ok [INFO] [stdout] test skill::parser::tests::empty_body ... ok [INFO] [stdout] test skill::parser::tests::lua_missing_code_errors ... ok [INFO] [stdout] test skill::parser::tests::missing_required_field_errors ... ok [INFO] [stdout] test skill::parser::tests::parse_llm_skill ... ok [INFO] [stdout] test skill::parser::tests::parse_custom_skill ... ok [INFO] [stdout] test skill::parser::tests::parse_lua_skill ... ok [INFO] [stdout] test skill::parser::tests::parse_with_input_schema ... ok [INFO] [stdout] test skill::parser::tests::parse_default_input_schema ... ok [INFO] [stdout] test skill::loader::tests::get_by_name ... ok [INFO] [stdout] test skill::parser::tests::parse_shell_skill ... ok [INFO] [stdout] test skill::parser::tests::parse_mcp_skill ... ok [INFO] [stdout] test skill::parser::tests::shell_missing_template_errors ... ok [INFO] [stdout] test skill::loader::tests::malformed_skill_skipped ... ok [INFO] [stdout] test snapshot::tests::load_latest_empty_log ... ok [INFO] [stdout] test skill::parser::tests::unknown_execution_type_errors ... ok [INFO] [stdout] test skill::loader::tests::nonexistent_directory_errors ... ok [INFO] [stdout] test skill::parser::tests::extract_frontmatter_works ... ok [INFO] [stdout] test skill::parser::tests::malformed_yaml_errors ... ok [INFO] [stdout] test snapshot::tests::history_empty_log ... ok [INFO] [stdout] test snapshot::tests::load_missing_version ... ok [INFO] [stdout] test snapshot::tests::history_returns_version_info ... ok [INFO] [stdout] test skill::loader::tests::empty_directory ... ok [INFO] [stdout] test skill::loader::tests::load_all_from_directory ... ok [INFO] [stdout] test skill::tests::skill_definition_serializes ... ok [INFO] [stdout] test skill::parser::tests::extract_frontmatter_no_delimiters ... ok [INFO] [stdout] test skill::tests::skill_execution_variants_serialize ... ok [INFO] [stdout] test snapshot::tests::load_specific_version ... ok [INFO] [stdout] test snapshot::tests::multiple_rollbacks_build_history ... ok [INFO] [stdout] test snapshot::tests::rollback_appends_old_version ... ok [INFO] [stdout] test snapshot::tests::works_with_simple_string ... ok [INFO] [stdout] test snapshot::tests::versions_increment ... ok [INFO] [stdout] test soullog::tests::callback_sink_invokes ... ok [INFO] [stdout] test snapshot::tests::works_with_custom_struct ... ok [INFO] [stdout] test snapshot::tests::rollback_nonexistent_version_fails ... ok [INFO] [stdout] test soullog::tests::log_entry_format_line_with_session ... ok [INFO] [stdout] test snapshot::tests::works_with_nested_option ... ok [INFO] [stdout] test snapshot::tests::save_and_load_latest ... ok [INFO] [stdout] test soullog::tests::log_entry_format_line ... ok [INFO] [stdout] test snapshot::tests::save_with_label ... ok [INFO] [stdout] test soullog::tests::log_entry_with_payload ... ok [INFO] [stdout] test soullog::tests::log_entry_serializes_roundtrip ... ok [INFO] [stdout] test soullog::tests::log_entry_with_session ... ok [INFO] [stdout] test soullog::tests::log_level_ordering ... ok [INFO] [stdout] test snapshot::tests::snapshot_roundtrip_preserves_data ... ok [INFO] [stdout] test soullog::tests::log_level_display ... ok [INFO] [stdout] test soullog::tests::log_level_serializes ... ok [INFO] [stdout] test soullog::tests::log_entry_creates ... ok [INFO] [stdout] test soullog::tests::memory_sink_collects ... ok [INFO] [stdout] test soullog::tests::soul_logger_convenience_methods ... ok [INFO] [stdout] test soullog::tests::memory_sink_clear ... ok [INFO] [stdout] test snapshot::tests::version_count ... ok [INFO] [stdout] test soullog::tests::soul_logger_multiple_sinks ... ok [INFO] [stdout] test soullog::tests::soul_logger_dispatches ... ok [INFO] [stdout] test soullog::tests::soul_logger_sink_count ... ok [INFO] [stdout] test subagent::tests::subagent_config_creates ... ok [INFO] [stdout] test soullog::tests::soul_logger_level_filter ... ok [INFO] [stdout] test subagent::tests::subagent_result_creates ... ok [INFO] [stdout] test subagent::tests::role_display ... ok [INFO] [stdout] test subagent::tests::subagent_role_eq ... ok [INFO] [stdout] test subagent::tests::subagent_spawner_add_provider ... ok [INFO] [stdout] test tool::tests::registry_definitions ... ok [INFO] [stdout] test subagent::tests::subagent_spawner_empty ... ok [INFO] [stdout] test tool::tests::tool_execute ... ok [INFO] [stdout] test types::tests::auth_profile_not_in_cooldown_by_default ... ok [INFO] [stdout] test tool::tests::registry_register_and_lookup ... ok [INFO] [stdout] test tool::tests::registry_names ... ok [INFO] [stdout] test tool::tests::tool_is_object_safe ... ok [INFO] [stdout] test tool::tests::tool_output_error ... ok [INFO] [stdout] test types::tests::context_strategy_serde_names ... ok [INFO] [stdout] test types::tests::context_strategy_serde_roundtrip ... ok [INFO] [stdout] test types::tests::message_assistant_creates_text ... ok [INFO] [stdout] test types::tests::message_system_creates_text ... ok [INFO] [stdout] test types::tests::message_token_estimation ... ok [INFO] [stdout] test types::tests::message_token_estimation_uses_actual_usage ... ok [INFO] [stdout] test types::tests::message_serializes_roundtrip ... ok [INFO] [stdout] test types::tests::message_token_estimation_fallback_without_usage ... ok [INFO] [stdout] test tool::tests::tool_output_success ... ok [INFO] [stdout] test tool::tests::tool_output_with_metadata ... ok [INFO] [stdout] test types::tests::agent_config_defaults ... ok [INFO] [stdout] test types::tests::agent_config_effective_tokens ... ok [INFO] [stdout] test types::tests::agent_event_serializes_tagged ... ok [INFO] [stdout] test types::tests::auth_profile_cooldown_expired ... ok [INFO] [stdout] test types::tests::auth_profile_in_cooldown ... ok [INFO] [stdout] test types::tests::content_block_serializes_tagged ... ok [INFO] [stdout] test skill::executor::tests::render_no_placeholders ... ok [INFO] [stdout] test types::tests::context_strategy_default_is_classic ... ok [INFO] [stdout] test types::tests::message_tool_result_creates ... ok [INFO] [stdout] test types::tests::message_with_tool_calls ... ok [INFO] [stdout] test types::tests::message_without_tool_calls ... ok [INFO] [stdout] test types::tests::provider_kind_display ... ok [INFO] [stdout] test types::tests::provider_kind_serializes ... ok [INFO] [stdout] test types::tests::role_serializes_lowercase ... ok [INFO] [stdout] test types::tests::stream_delta_serializes_tagged ... ok [INFO] [stdout] test types::tests::structured_state_lifecycle ... ok [INFO] [stdout] test types::tests::structured_state_serializes ... ok [INFO] [stdout] test types::tests::token_estimation_empty ... ok [INFO] [stdout] test types::tests::message_user_creates_text ... ok [INFO] [stdout] test types::tests::token_estimation_code ... ok [INFO] [stdout] test types::tests::token_estimation_text ... ok [INFO] [stdout] test types::tests::token_estimation_json ... ok [INFO] [stdout] test types::tests::token_usage_serialization ... ok [INFO] [stdout] test types::tests::token_usage_total ... ok [INFO] [stdout] test types::tests::tool_definition_serializes ... ok [INFO] [stdout] test vexec::tests::exec_output_success_check ... ok [INFO] [stdout] test vexec::tests::mock_executor_drains ... ok [INFO] [stdout] test vexec::tests::mock_always_ok ... ok [INFO] [stdout] test types::tests::tool_definition_creates ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_equality ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_file_count_and_size ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_restore ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_json_pretty ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_roundtrip_bytes ... ok [INFO] [stdout] test vexec::tests::native_executor_stderr ... ok [INFO] [stdout] test vfs::memory::tests::empty_snapshot ... ok [INFO] [stdout] test vexec::tests::native_executor_echo ... ok [INFO] [stdout] test vexec::tests::mock_executor_returns_canned ... ok [INFO] [stdout] test vexec::tests::noop_executor_returns_error ... ok [INFO] [stdout] test vexec::tests::native_executor_exit_code ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_roundtrip_json ... ok [INFO] [stdout] test vfs::tests::memory_fs_exists ... ok [INFO] [stdout] test vfs::memory::tests::snapshot_serde_roundtrip ... ok [INFO] [stdout] test vfs::tests::memory_fs_metadata_dir ... ok [INFO] [stdout] test vfs::tests::memory_fs_metadata_nonexistent_errors ... ok [INFO] [stdout] test vfs::tests::memory_fs_metadata_file ... ok [INFO] [stdout] test vfs::tests::memory_fs_overwrite ... ok [INFO] [stdout] test vexec::tests::native_executor_cwd ... ok [INFO] [stdout] test vfs::tests::memory_fs_create_dir_all ... ok [INFO] [stdout] test vfs::tests::memory_fs_append ... ok [INFO] [stdout] test vfs::tests::memory_fs_read_dir ... ok [INFO] [stdout] test vfs::tests::memory_fs_read_nonexistent_errors ... ok [INFO] [stdout] test vfs::tests::memory_fs_read_dir_empty ... ok [INFO] [stdout] test vfs::tests::memory_fs_remove_file ... ok [INFO] [stdout] test vfs::tests::memory_fs_remove_nonexistent_ok ... ok [INFO] [stdout] test vfs::tests::memory_fs_write_and_read ... ok [INFO] [stdout] test vfs::tests::native_fs_metadata ... ok [INFO] [stdout] test vfs::tests::native_fs_exists ... ok [INFO] [stdout] test vfs::tests::native_fs_remove_file ... ok [INFO] [stdout] test vfs::tests::native_fs_create_dir_and_read_dir ... ok [INFO] [stdout] test vfs::tests::native_fs_append ... ok [INFO] [stdout] test vfs::tests::native_fs_write_and_read ... ok [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-be6d4467cdf1765e) [INFO] [stdout] test vexec::tests::native_executor_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 841 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.36s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test compaction_circuit_breaker_integration ... ok [INFO] [stdout] test hook_blocks_dangerous_tool ... ok [INFO] [stdout] test agent_with_hooks ... ok [INFO] [stdout] test persist_hook_transforms_results ... ok [INFO] [stdout] test context_compaction_integration ... ok [INFO] [stdout] test full_agent_loop_with_tools ... ok [INFO] [stdout] test agent_loop_multi_tool_calls ... ok [INFO] [stdout] test event_stream_completeness ... ok [INFO] [stdout] test subagent_spawner_no_provider ... ok [INFO] [stdout] test structured_state_survives_compaction ... ok [INFO] [stdout] test session_persistence_roundtrip ... ok [INFO] [stdout] test memory_hierarchy_integration ... ok [INFO] [stdout] test skills_agent_loop_with_skill_tools ... ok [INFO] [stdout] test skills_load_and_register_as_tools ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests soul_core [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test src/lib.rs - (line 8) - compile ... ok [INFO] [stdout] test src/snapshot.rs - snapshot::SnapshotLog (line 50) - compile ... ok [INFO] [stdout] test src/cost/mod.rs - cost (line 7) ... ok [INFO] [stdout] test src/provider/traits.rs - provider::traits::ProxyConfig (line 72) ... ok [INFO] [stdout] test src/harness/mod.rs - harness::store (line 26) ... ok [INFO] [stdout] test src/planner/mod.rs - planner (line 7) ... ok [INFO] [stdout] test src/vfs/memory.rs - vfs::memory::MemoryFsSnapshot (line 20) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.25s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "9195bb993943adec8776c74f5037fa40b7c13b594d35da8db302af6de7b0811e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9195bb993943adec8776c74f5037fa40b7c13b594d35da8db302af6de7b0811e", kill_on_drop: false }` [INFO] [stdout] 9195bb993943adec8776c74f5037fa40b7c13b594d35da8db302af6de7b0811e