[INFO] cloning repository https://github.com/arcat0v0/nano-assistant [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/arcat0v0/nano-assistant" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] e06bb05c63c0b9263c491518d857d387fbc179f0 [INFO] testing arcat0v0/nano-assistant against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Farcat0v0%2Fnano-assistant" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/arcat0v0/nano-assistant [INFO] finished tweaking git repo https://github.com/arcat0v0/nano-assistant [INFO] tweaked toml for git repo https://github.com/arcat0v0/nano-assistant written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/arcat0v0/nano-assistant on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/arcat0v0/nano-assistant 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" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded crokey v1.4.0 [INFO] [stderr] Downloaded strict v0.2.0 [INFO] [stderr] Downloaded minimad v0.14.0 [INFO] [stderr] Downloaded crokey-proc_macros v1.4.0 [INFO] [stderr] Downloaded fastrand v2.4.0 [INFO] [stderr] Downloaded scraper v0.22.0 [INFO] [stderr] Downloaded ego-tree v0.10.0 [INFO] [stderr] Downloaded fd-lock v4.0.4 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded coolor v1.1.0 [INFO] [stderr] Downloaded rustyline v14.0.0 [INFO] [stderr] Downloaded termimad v0.34.1 [INFO] [stderr] Downloaded tokio v1.51.0 [INFO] [stderr] Downloaded web_atoms v0.1.3 [INFO] [stderr] Downloaded html2text v0.14.4 [INFO] [stderr] Downloaded markup5ever v0.16.2 [INFO] [stderr] Downloaded html5ever v0.31.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a [INFO] running `Command { std: "docker" "start" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling cc v1.2.59 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling openssl v0.10.76 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Compiling string_cache_codegen v0.5.4 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling match_token v0.1.0 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling dtoa v1.0.11 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling dtoa-short v0.3.5 [INFO] [stderr] Compiling web_atoms v0.1.3 [INFO] [stderr] Compiling markup5ever v0.14.1 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling phf v0.11.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling strict v0.2.0 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling cssparser v0.34.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling servo_arc v0.4.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tokio v1.51.0 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling nibble_vec v0.1.0 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling endian-type v0.1.2 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling bumpalo v3.20.2 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling crokey-proc_macros v1.4.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling string_cache v0.8.9 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling zopfli v0.8.3 [INFO] [stderr] Compiling coolor v1.1.0 [INFO] [stderr] Compiling crokey v1.4.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling radix_trie v0.2.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling markup5ever v0.16.2 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling html5ever v0.31.0 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling html5ever v0.29.1 [INFO] [stderr] Compiling fd-lock v4.0.4 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling minimad v0.14.0 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling home v0.5.12 [INFO] [stderr] Compiling ego-tree v0.10.0 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling html2text v0.14.4 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling zip v2.4.2 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling directories v5.0.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling scraper v0.22.0 [INFO] [stderr] Compiling lazy-regex-proc_macros v3.6.0 [INFO] [stderr] Compiling rustyline v14.0.0 [INFO] [stderr] Compiling lazy-regex v3.6.0 [INFO] [stderr] Compiling termimad v0.34.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling nano-assistant v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used [INFO] [stdout] --> src/mcp/transport.rs:463:8 [INFO] [stdout] | [INFO] [stdout] 291 | impl SseTransport { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 463 | fn maybe_try_alternate_message_url( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 51s [INFO] running `Command { std: "docker" "inspect" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling fastrand v2.4.0 [INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used [INFO] [stdout] --> src/mcp/transport.rs:463:8 [INFO] [stdout] | [INFO] [stdout] 291 | impl SseTransport { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 463 | fn maybe_try_alternate_message_url( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling nano-assistant v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: struct `EchoTool` is never constructed [INFO] [stdout] --> src/agent/loop_.rs:1010:12 [INFO] [stdout] | [INFO] [stdout] 1010 | struct EchoTool; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `maybe_try_alternate_message_url` is never used [INFO] [stdout] --> src/mcp/transport.rs:463:8 [INFO] [stdout] | [INFO] [stdout] 291 | impl SseTransport { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 463 | fn maybe_try_alternate_message_url( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 25.22s [INFO] running `Command { std: "docker" "inspect" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: method `maybe_try_alternate_message_url` is never used [INFO] [stderr] --> src/mcp/transport.rs:463:8 [INFO] [stderr] | [INFO] [stderr] 291 | impl SseTransport { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 463 | fn maybe_try_alternate_message_url( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `nano-assistant` (lib) generated 1 warning [INFO] [stderr] warning: struct `EchoTool` is never constructed [INFO] [stderr] --> src/agent/loop_.rs:1010:12 [INFO] [stderr] | [INFO] [stderr] 1010 | struct EchoTool; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: method `maybe_try_alternate_message_url` is never used [INFO] [stderr] --> src/mcp/transport.rs:463:8 [INFO] [stderr] | [INFO] [stderr] 291 | impl SseTransport { [INFO] [stderr] | ----------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 463 | fn maybe_try_alternate_message_url( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `nano-assistant` (lib test) generated 2 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.55s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nano_assistant-cf7c604c7c8e39a3) [INFO] [stdout] [INFO] [stdout] running 439 tests [INFO] [stdout] test agent::dispatcher::tests::create_dispatcher_selects_native ... ok [INFO] [stdout] test agent::dispatcher::tests::native_parses_tool_calls_from_response ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_extracts_text_around_tool_calls ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_strips_think_tags ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_parses_single_tool_call ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_format_results_includes_error_status ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_malformed_json_defaults_to_empty_args ... ok [INFO] [stdout] test agent::dispatcher::tests::create_dispatcher_selects_xml ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_no_calls_returns_full_text ... ok [INFO] [stdout] test agent::dispatcher::tests::xml_format_results_contains_tool_result_tags ... ok [INFO] [stdout] test agent::dispatcher::tests::native_format_results_returns_tool_message ... ok [INFO] [stdout] test agent::loop_::tests::agent_creates_with_native_dispatcher_for_native ... ok [INFO] [stdout] test agent::loop_::tests::agent_creates_with_xml_dispatcher_for_non_native ... ok [INFO] [stdout] test agent::loop_::tests::conversation_history_clear ... ok [INFO] [stdout] test agent::loop_::tests::agent_builds_system_prompt_on_first_turn ... ok [INFO] [stdout] test agent::loop_::tests::conversation_history_push_and_len ... ok [INFO] [stdout] test agent::loop_::tests::conversation_history_trim_preserves_system ... ok [INFO] [stdout] test agent::loop_::tests::conversation_history_trim_without_system ... ok [INFO] [stdout] test agent::prompt::tests::days_to_date_epoch ... ok [INFO] [stdout] test agent::prompt::tests::days_to_date_recent ... ok [INFO] [stdout] test agent::loop_::tests::trailing_tool_prefix_ignores_normal_text ... ok [INFO] [stdout] test agent::loop_::tests::trailing_tool_prefix_detects_partial_tool_markup ... ok [INFO] [stdout] test agent::loop_::tests::file_edit_mcp_changes_trigger_auto_reload_notice ... ok [INFO] [stdout] test agent::prompt::tests::prompt_system_info_preserves_multiline_content ... ok [INFO] [stdout] test agent::prompt::tests::prompt_contains_datetime ... ok [INFO] [stdout] test agent::prompt::tests::prompt_includes_skills_section ... ok [INFO] [stdout] test agent::prompt::tests::prompt_includes_system_info_when_provided ... ok [INFO] [stdout] test agent::prompt::tests::prompt_mentions_windows_interactive_limit ... ok [INFO] [stdout] hello worldtest agent::prompt::tests::prompt_runtime_context_section_placed_after_system_info ... ok [INFO] [stdout] test agent::prompt::tests::prompt_empty_when_no_tools_and_native ... ok [INFO] [stdout] test agent::prompt::tests::prompt_contains_system_steward_policy_section ... ok [INFO] [stdout] test agent::streaming::tests::stream_printer_accumulates_content ... ok [INFO] [stdout] visible texttest agent::prompt::tests::prompt_command_execution_enforces_execution_first_and_brief_reporting ... ok [INFO] [stdout] test agent::prompt::tests::prompt_system_steward_policy_includes_privilege_preferences ... ok [INFO] [stdout] testtest agent::prompt::tests::prompt_system_steward_policy_includes_environment_rules ... ok [INFO] [stdout] test agent::prompt::tests::prompt_includes_runtime_context ... ok [INFO] [stdout] test agent::prompt::tests::prompt_contains_self_management_section ... ok [INFO] [stdout] test agent::streaming::tests::stream_printer_ignores_progress_for_accumulation ... ok [INFO] [stdout] firsttest agent::streaming::tests::stream_printer_writes_content ... ok [INFO] [stdout] test agent::streaming::tests::stream_printer_writes_progress ... ok [INFO] [stdout] Hello world! This is a test.test agent::prompt::tests::prompt_contains_tools_section ... ok [INFO] [stdout] test agent::streaming::tests::stream_printer_take_accumulated_clears ... ok [INFO] [stdout] test cli::commands::tests::cli_chat_config_flag ... ok [INFO] [stdout] test agent::prompt::tests::prompt_omits_system_info_when_none ... ok [INFO] [stdout] test agent::prompt::tests::prompt_includes_xml_protocol_for_non_native ... ok [INFO] [stdout] test cli::commands::tests::cli_chat_mode_flag ... ok [INFO] [stdout] test agent::prompt::tests::prompt_omits_protocol_for_native ... ok [INFO] [stdout] test agent::streaming::tests::stream_printer_accumulates_multiple_chunks ... ok [INFO] [stdout] test cli::commands::tests::cli_chat_debug_flag ... ok [INFO] [stdout] test cli::commands::tests::load_config_nonexistent_returns_default ... ok [INFO] [stdout] test cli::commands::tests::cli_chat_config_path_flag ... ok [INFO] [stdout] test agent::streaming::tests::loading_indicator_transitions_cleanly ... ok [INFO] [stdout] test cli::commands::tests::cli_skills_subcommand_parses ... ok [INFO] [stdout] test agent::prompt::tests::prompt_contains_safety_section ... ok [INFO] [stdout] test cli::commands::tests::cli_chat_verbose_flag ... ok [INFO] [stdout] test cli::commands::tests::load_config_invalid_toml_returns_default ... ok [INFO] [stdout] test cli::commands::tests::cli_none_command_is_interactive ... ok [INFO] [stdout] test agent::prompt::tests::prompt_system_info_section_placed_after_datetime ... ok [INFO] [stdout] test cli::commands::tests::memory_md_path_returns_config_dir ... ok [INFO] [stdout] test cli::commands::tests::resolve_api_key_config_key_takes_precedence ... ok [INFO] [stdout] test cli::commands::tests::prompt_text_multiple_words_joined_with_space ... ok [INFO] [stdout] test cli::commands::tests::prompt_text_empty_returns_none ... ok [INFO] [stdout] test cli::commands::tests::prompt_text_single_word_returns_some ... ok [INFO] [stdout] test cli::commands::tests::resolve_api_key_falls_back_to_env_var ... ok [INFO] [stdout] test config::schema::tests::default_config_path_contains_expected_segments ... ok [INFO] [stdout] test config::schema::tests::mcp_config_default ... ok [INFO] [stdout] test cli::commands::tests::resolve_security_mode_invalid_cli_falls_back_to_config ... ok [INFO] [stdout] test cli::commands::tests::resolve_security_mode_cli_override_precedence ... ok [INFO] [stdout] test cli::commands::tests::resolve_debug_mode_uses_config_when_cli_off ... ok [INFO] [stdout] test config::schema::tests::mcp_transport_default_is_stdio ... ok [INFO] [stdout] test config::schema::tests::behavior_config_default ... ok [INFO] [stdout] test cli::commands::tests::resolve_security_mode_no_cli_uses_config_mode ... ok [INFO] [stdout] test cli::commands::tests::resolve_debug_mode_cli_takes_precedence ... ok [INFO] [stdout] test config::schema::tests::config_default_verifies_all_nested_defaults ... ok [INFO] [stdout] test config::schema::tests::security_config_default ... ok [INFO] [stdout] test config::schema::tests::provider_config_default ... ok [INFO] [stdout] test config::schema::tests::skills_config_extra_paths_default_empty ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_empty_config_gives_all_defaults ... ok [INFO] [stdout] test config::schema::tests::skills_config_default ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_full_config ... ok [INFO] [stdout] test console::tests::args_summary_empty ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_skills_extra_paths ... ok [INFO] [stdout] test console::tests::args_summary_shell ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_partial_config_merges_with_defaults ... ok [INFO] [stdout] test console::tests::format_tool_pending_no_args ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_mcp_server_with_env ... ok [INFO] [stdout] test console::tests::args_summary_file_read ... ok [INFO] [stdout] test config::schema::tests::toml_deserialization_mcp_config ... ok [INFO] [stdout] test config::schema::tests::memory_config_default ... ok [INFO] [stdout] test console::tests::format_tool_summary_contains_count ... ok [INFO] [stdout] test console::tests::format_tool_call_line_success ... ok [INFO] [stdout] test knowledge::mediawiki::tests::wikitext_skips_templates ... ok [INFO] [stdout] test knowledge::mediawiki::tests::wikitext_links ... ok [INFO] [stdout] test knowledge::moinmoin::tests::extract_section_not_found_returns_full ... ok [INFO] [stdout] test knowledge::mediawiki::tests::wikitext_bold_italic ... ok [INFO] [stdout] test knowledge::mediawiki::tests::wikitext_headings ... ok [INFO] [stdout] test knowledge::moinmoin::tests::extract_section_basic ... ok [INFO] [stdout] test knowledge::mediawiki::tests::strip_html_tags_basic ... ok [INFO] [stdout] test knowledge::tool::tests::truncate_falls_back_to_newline ... ok [INFO] [stdout] test knowledge::tool::tests::truncate_at_paragraph_boundary ... ok [INFO] [stdout] test knowledge::types::tests::config_defaults ... ok [INFO] [stdout] test knowledge::tool::tests::truncate_short_text_unchanged ... ok [INFO] [stdout] test knowledge::types::tests::search_result_roundtrip ... ok [INFO] [stdout] test knowledge::types::tests::page_content_roundtrip ... ok [INFO] [stdout] test mcp::client::tests::connect_all_empty_gives_zero_servers ... ok [INFO] [stdout] test mcp::client::tests::empty_registry_call_tool_unknown_name_returns_error ... ok [INFO] [stdout] test mcp::client::tests::connect_all_nonfatal_on_single_failure ... ok [INFO] [stdout] test mcp::client::tests::empty_registry_get_tool_def_returns_none ... ok [INFO] [stdout] test mcp::client::tests::empty_registry_tool_names_is_empty ... ok [INFO] [stdout] test mcp::client::tests::empty_registry_is_empty ... ok [INFO] [stdout] test mcp::client::tests::connect_nonexistent_command_fails_cleanly ... ok [INFO] [stdout] test mcp::client::tests::http_transport_requires_url ... ok [INFO] [stdout] test mcp::client::tests::tool_name_prefix_format ... ok [INFO] [stdout] test mcp::deferred::tests::activated_set_rejects_ambiguous_suffix ... ok [INFO] [stdout] test mcp::client::tests::sse_transport_requires_url ... ok [INFO] [stdout] test mcp::deferred::tests::activated_set_resolves_unique_suffix ... ok [INFO] [stdout] test mcp::deferred::tests::activated_set_tracks_activation ... ok [INFO] [stdout] test mcp::deferred::tests::build_deferred_section_includes_tool_search_instruction ... ok [INFO] [stdout] test mcp::deferred::tests::build_deferred_section_lists_names ... ok [INFO] [stdout] test mcp::deferred::tests::build_deferred_section_empty_when_no_stubs ... ok [INFO] [stdout] test mcp::deferred::tests::get_by_name_returns_correct_stub ... ok [INFO] [stdout] test mcp::deferred::tests::stub_defaults_description_when_none ... ok [INFO] [stdout] test mcp::deferred::tests::build_deferred_section_multiple_servers ... ok [INFO] [stdout] test mcp::deferred::tests::stub_uses_description_from_def ... ok [INFO] [stdout] test mcp::protocol::tests::error_response_deserializes_with_code_and_message ... ok [INFO] [stdout] test mcp::protocol::tests::error_response_with_data_field ... ok [INFO] [stdout] test mcp::protocol::tests::jsonrpc_error_codes_match_spec ... ok [INFO] [stdout] test mcp::protocol::tests::notification_has_no_id_field_in_serialized_json ... ok [INFO] [stdout] test mcp::deferred::tests::keyword_search_ranks_by_hits ... ok [INFO] [stdout] test mcp::protocol::tests::request_new_produces_numeric_id ... ok [INFO] [stdout] test mcp::protocol::tests::request_params_included_when_present ... ok [INFO] [stdout] test mcp::protocol::tests::request_serializes_with_id ... ok [INFO] [stdout] test mcp::protocol::tests::mcp_protocol_version_constant_is_correct ... ok [INFO] [stdout] test mcp::protocol::tests::notification_omits_id ... ok [INFO] [stdout] test mcp::protocol::tests::response_deserializes ... ok [INFO] [stdout] test mcp::protocol::tests::tool_def_deserializes_input_schema ... ok [INFO] [stdout] test mcp::protocol::tests::tool_def_description_is_optional ... ok [INFO] [stdout] test mcp::protocol::tests::response_round_trip_via_serde ... ok [INFO] [stdout] test mcp::deferred::tests::search_across_multiple_servers ... ok [INFO] [stdout] test mcp::protocol::tests::tools_list_result_with_empty_tools_array ... ok [INFO] [stdout] test mcp::protocol::tests::tools_list_result_deserializes_multiple_tools ... ok [INFO] [stdout] test mcp::tool::tests::description_falls_back_to_mcp_tool_when_none ... ok [INFO] [stdout] test mcp::tool::tests::execute_returns_non_fatal_error_for_unknown_tool ... ok [INFO] [stdout] test mcp::tool::tests::execute_handles_non_object_args_without_panic ... ok [INFO] [stdout] test mcp::tool::tests::execute_success_sets_success_true_and_output ... ok [INFO] [stdout] test mcp::tool::tests::name_returns_prefixed_name ... ok [INFO] [stdout] test mcp::tool::tests::description_returns_def_description ... ok [INFO] [stdout] test mcp::tool::tests::parameters_schema_returns_input_schema ... ok [INFO] [stdout] test mcp::tool::tests::spec_returns_all_three_fields ... ok [INFO] [stdout] test mcp::tool_search::tests::empty_query_returns_error ... ok [INFO] [stdout] test mcp::tool_search::tests::keyword_search_no_matches ... ok [INFO] [stdout] test mcp::tool_search::tests::multiple_servers_stubs_all_searchable ... ok [INFO] [stdout] test mcp::tool_search::tests::keyword_search_finds_match ... ok [INFO] [stdout] test mcp::tool_search::tests::select_activates_and_persists_across_calls ... ok [INFO] [stdout] test mcp::tool_search::tests::reactivation_is_idempotent ... ok [INFO] [stdout] test mcp::tool_search::tests::select_nonexistent_tool_reports_not_found ... ok [INFO] [stdout] test mcp::tool_search::tests::tool_metadata ... ok [INFO] [stdout] test mcp::tool::tests::execute_strips_approved_field_from_object_args ... ok [INFO] [stdout] test mcp::transport::tests::create_transport_http_without_url_fails ... ok [INFO] [stdout] test mcp::transport::tests::create_transport_sse_without_url_fails ... ok [INFO] [stdout] test mcp::transport::tests::create_transport_stdio_fails_without_valid_command ... ok [INFO] [stdout] test mcp::transport::tests::derive_message_url_appends_when_no_sse_segment ... ok [INFO] [stdout] test mcp::transport::tests::derive_message_url_message_path_variant ... ok [INFO] [stdout] test mcp::transport::tests::derive_message_url_replaces_sse_segment_with_messages ... ok [INFO] [stdout] test mcp::transport::tests::derive_message_url_returns_none_for_invalid_url ... ok [INFO] [stdout] test mcp::transport::tests::extract_json_empty_input_returns_empty_trimmed ... ok [INFO] [stdout] test mcp::transport::tests::extract_json_plain_json_returned_unchanged ... ok [INFO] [stdout] test mcp::transport::tests::extract_json_skips_comment_lines ... ok [INFO] [stdout] test mcp::transport::tests::create_transport_sse_with_url_succeeds ... ok [INFO] [stdout] test mcp::transport::tests::create_transport_http_with_url_succeeds ... ok [INFO] [stdout] test mcp::transport::tests::http_transport_ignores_empty_session_id_header ... ok [INFO] [stdout] test knowledge::tests::create_moinmoin_source ... ok [INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_data_prefix ... ok [INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_embedded_data_line ... ok [INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_detects_event_prefix ... ok [INFO] [stdout] test mcp::transport::tests::looks_like_sse_text_plain_json_is_not_sse ... ok [INFO] [stdout] test mcp::transport::tests::parse_endpoint_absolute_http_url_returned_as_is ... ok [INFO] [stdout] test mcp::transport::tests::parse_endpoint_absolute_https_url_returned_as_is ... ok [INFO] [stdout] test mcp::transport::tests::parse_endpoint_json_object_with_endpoint_key ... ok [INFO] [stdout] test mcp::transport::tests::parse_endpoint_relative_path_resolved_against_base ... ok [INFO] [stdout] test mcp::transport::tests::parse_jsonrpc_response_rejects_whitespace_only ... ok [INFO] [stdout] test mcp::transport::tests::parse_jsonrpc_response_with_error_result ... ok [INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_data_no_space ... ok [INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_multiline_data ... ok [INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_skips_bom_and_leading_whitespace ... ok [INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_uses_last_event_with_data ... ok [INFO] [stdout] test mcp::transport::tests::test_extract_json_from_sse_with_event_and_id ... ok [INFO] [stdout] test mcp::transport::tests::test_http_transport_requires_url ... ok [INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_handles_plain_json ... ok [INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_handles_sse_framed_json ... ok [INFO] [stdout] test mcp::transport::tests::test_parse_jsonrpc_response_text_rejects_empty_payload ... ok [INFO] [stdout] test mcp::transport::tests::test_sse_transport_requires_url ... ok [INFO] [stdout] test mcp::transport::tests::test_transport_default_is_stdio ... ok [INFO] [stdout] test memory::markdown::tests::test_add_and_get ... ok [INFO] [stdout] test memory::markdown::tests::test_add_multiple ... ok [INFO] [stdout] test knowledge::web::tests::web_source_name ... ok [INFO] [stdout] test memory::markdown::tests::test_chrono_now_format ... ok [INFO] [stdout] test memory::markdown::tests::test_custom_category ... ok [INFO] [stdout] test memory::markdown::tests::test_delete_nonexistent ... ok [INFO] [stdout] test memory::markdown::tests::test_empty_count ... ok [INFO] [stdout] test memory::markdown::tests::test_empty_query ... ok [INFO] [stdout] test knowledge::moinmoin::tests::moinmoin_source_name ... ok [INFO] [stdout] test memory::markdown::tests::test_delete ... ok [INFO] [stdout] test memory::markdown::tests::test_name ... ok [INFO] [stdout] test memory::markdown::tests::test_health_check ... ok [INFO] [stdout] test memory::markdown::tests::test_persist_creates_file ... ok [INFO] [stdout] test memory::markdown::tests::test_persist_noop_when_exists ... ok [INFO] [stdout] test knowledge::mediawiki::tests::mediawiki_source_name ... ok [INFO] [stdout] test memory::markdown::tests::test_file_is_valid_markdown ... ok [INFO] [stdout] test memory::markdown::tests::test_query_by_key ... ok [INFO] [stdout] test memory::markdown::tests::test_query_no_match ... ok [INFO] [stdout] test memory::traits::tests::memory_category_display ... ok [INFO] [stdout] test memory::traits::tests::memory_category_serde_roundtrip ... ok [INFO] [stdout] test memory::traits::tests::memory_entry_roundtrip ... ok [INFO] [stdout] test platform::tests::config_path_ends_with_config_toml ... ok [INFO] [stdout] test platform::tests::current_platform_returns_consistent_reference ... ok [INFO] [stdout] test platform::tests::expand_tilde_absolute_path_unchanged ... ok [INFO] [stdout] test platform::tests::memory_dir_ends_with_memory ... ok [INFO] [stdout] test memory::markdown::tests::test_query_keyword ... ok [INFO] [stdout] test platform::tests::memory_md_path_ends_with_memory_md ... ok [INFO] [stdout] test platform::tests::skills_dir_ends_with_skills ... ok [INFO] [stdout] test platform::unix::tests::agents_skills_dir_contains_agents_skills ... ok [INFO] [stdout] test platform::unix::tests::config_dir_contains_nano_assistant ... ok [INFO] [stdout] test platform::unix::tests::expand_tilde_absolute_path_unchanged ... ok [INFO] [stdout] test platform::unix::tests::expand_tilde_relative_path_unchanged ... ok [INFO] [stdout] test memory::markdown::tests::test_query_limit ... ok [INFO] [stdout] test platform::unix::tests::shell_command_is_sh ... ok [INFO] [stdout] test memory::markdown::tests::test_query_by_session ... ok [INFO] [stdout] test platform::windows::tests::agents_skills_dir_uses_home_agents_layout ... ok [INFO] [stdout] test platform::windows::tests::config_dir_uses_roaming_appdata_layout ... ok [INFO] [stdout] test platform::windows::tests::expand_tilde_resolves_home_prefix ... ok [INFO] [stdout] test platform::windows::tests::pipe_process_supports_prompt_response ... ok [INFO] [stdout] test platform::windows::tests::shell_command_uses_cmd ... ok [INFO] [stdout] test providers::traits::tests::chat_message_constructors ... ok [INFO] [stdout] test providers::traits::tests::chat_response_helpers ... ok [INFO] [stdout] test providers::traits::tests::provider_capabilities_default ... ok [INFO] [stdout] test providers::traits::tests::stream_chunk_constructors ... ok [INFO] [stdout] test providers::traits::tests::tool_call_serialization ... ok [INFO] [stdout] test render::tests::test_count_rendered_lines_basic ... ok [INFO] [stdout] test render::tests::test_count_rendered_lines_empty ... ok [INFO] [stdout] test render::tests::test_count_rendered_lines_from_render ... ok [INFO] [stdout] test render::tests::test_render_code_block_only_response ... ok [INFO] [stdout] test render::tests::test_render_contains_ansi ... ok [INFO] [stdout] test render::tests::test_render_deeply_nested_formatting ... ok [INFO] [stdout] test render::tests::test_render_empty_input ... ok [INFO] [stdout] test render::tests::test_render_large_response ... ok [INFO] [stdout] test render::tests::test_render_markdown_basic ... ok [INFO] [stdout] test render::tests::test_render_markdown_code_blocks ... ok [INFO] [stdout] test render::tests::test_render_markdown_fallback_malformed ... ok [INFO] [stdout] test render::tests::test_render_markdown_fallback_no_panic ... ok [INFO] [stdout] test render::tests::test_render_markdown_lists ... ok [INFO] [stdout] test render::tests::test_render_markdown_tables ... ok [INFO] [stdout] test render::tests::test_render_markdown_to_stdout_empty ... ok [INFO] [stdout] test render::tests::test_render_table_wider_than_terminal ... ok [INFO] [stdout] test security::tests::check_confirm_allows_everything ... ok [INFO] [stdout] test security::tests::check_direct_allows_everything ... ok [INFO] [stdout] test security::tests::check_whitelist_allows_matching ... ok [INFO] [stdout] test security::tests::check_whitelist_denies_missing_command ... ok [INFO] [stdout] test security::tests::check_whitelist_denies_non_matching ... ok [INFO] [stdout] test security::tests::confirm_mode_allows_when_user_accepts ... ok [INFO] [stdout] test security::tests::confirm_mode_denies_when_user_rejects ... ok [INFO] [stdout] test security::tests::direct_mode_executes_immediately ... ok [INFO] [stdout] test security::tests::from_config_override_none_uses_config ... ok [INFO] [stdout] test security::tests::from_config_parses_mode ... ok [INFO] [stdout] test security::tests::from_config_with_override ... ok [INFO] [stdout] test security::tests::mode_display_roundtrip ... ok [INFO] [stdout] test security::tests::mode_from_str_invalid ... ok [INFO] [stdout] test security::tests::mode_from_str_valid ... ok [INFO] [stdout] test security::tests::secure_tool_delegates_to_inner ... ok [INFO] [stdout] test security::tests::secure_tool_whitelist_blocks ... ok [INFO] [stdout] test security::tests::whitelist_mode_allows_matching_command ... ok [INFO] [stdout] test security::tests::whitelist_mode_blocks_denied_command ... ok [INFO] [stdout] test security::whitelist::tests::empty_pattern ... ok [INFO] [stdout] test security::whitelist::tests::empty_whitelist_denies_all ... ok [INFO] [stdout] test security::whitelist::tests::exact_match ... ok [INFO] [stdout] test security::whitelist::tests::glob_token_matching ... ok [INFO] [stdout] test security::whitelist::tests::multiple_wildcards ... ok [INFO] [stdout] test security::whitelist::tests::whitelist_check_allows_matching ... ok [INFO] [stdout] test security::whitelist::tests::whitelist_check_denies_non_matching ... ok [INFO] [stdout] test security::whitelist::tests::wildcard_at_end ... ok [INFO] [stdout] test security::whitelist::tests::wildcard_in_middle ... ok [INFO] [stdout] test mcp::transport::tests::http_transport_no_session_header_leaves_none ... ok [INFO] [stdout] test skills::audit::tests::audit_accepts_safe_skill ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_existing_cross_skill_reference ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_bare_filename ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_dot_slash ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_missing_cross_skill_reference_with_parent_dir ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_python_shebang_file_when_early_text_contains_sh ... ok [INFO] [stdout] test skills::audit::tests::audit_allows_shell_script_files_when_enabled ... ok [INFO] [stdout] test skills::audit::tests::audit_rejects_chained_commands_in_manifest ... ok [INFO] [stdout] test skills::audit::tests::audit_rejects_markdown_escape_links ... ok [INFO] [stdout] test skills::audit::tests::audit_rejects_missing_local_markdown_file ... ok [INFO] [stdout] test skills::audit::tests::audit_rejects_high_risk_patterns ... ok [INFO] [stdout] test skills::audit::tests::is_cross_skill_reference_detection ... ok [INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_merges_directories ... ok [INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_primary_wins_on_duplicate ... ok [INFO] [stdout] test skills::multi_dir_tests::load_skills_multi_skips_nonexistent_dirs ... ok [INFO] [stdout] test skills::testing::tests::parse_comment_and_empty_lines ... ok [INFO] [stdout] test skills::testing::tests::parse_invalid_line_missing_parts ... ok [INFO] [stdout] test skills::testing::tests::parse_line_with_spaces_in_pattern ... ok [INFO] [stdout] test skills::testing::tests::parse_valid_test_line ... ok [INFO] [stdout] test skills::testing::tests::pattern_matches_empty ... ok [INFO] [stdout] test mcp::transport::tests::http_transport_updates_session_id_from_response_headers ... ok [INFO] [stdout] test skills::testing::tests::pattern_matches_substring ... ok [INFO] [stdout] test skills::testing::tests::pattern_matches_regex ... ok [INFO] [stdout] test skills::testing::tests::test_result_aggregation ... ok [INFO] [stdout] test skills::testing::tests::test_all_skills_finds_skills_with_tests ... ok [INFO] [stdout] test skills::testing::tests::test_skill_exit_code_mismatch ... ok [INFO] [stdout] test skills::testing::tests::test_skill_with_echo ... ok [INFO] [stdout] test skills::testing::tests::test_skill_without_test_file ... ok [INFO] [stdout] test skills::testing::tests::test_truncate_output ... ok [INFO] [stdout] test skills::testing::tests::test_skill_with_failing_test ... ok [INFO] [stdout] test skills::tests::clawhub_download_url_building ... ok [INFO] [stdout] test skills::tests::builtin_knowledge_sources_include_linux_wikis ... ok [INFO] [stdout] test skills::audit::tests::audit_rejects_shell_script_files ... ok [INFO] [stdout] test skills::tests::is_clawhub_source_detection ... ok [INFO] [stdout] test skills::tests::is_git_scp_source_detection ... ok [INFO] [stdout] test skills::tests::extract_description_finds_first_non_heading ... ok [INFO] [stdout] test skills::tests::load_skill_md_with_frontmatter ... ok [INFO] [stdout] test skills::tests::is_git_source_detection ... ok [INFO] [stdout] test skills::tests::load_skill_md_with_temp_file ... ok [INFO] [stdout] test skills::tests::load_skill_toml_with_temp_file ... ok [INFO] [stdout] test skills::tests::load_skills_from_directory_empty ... ok [INFO] [stdout] test skills::tests::load_skills_from_directory_ignores_files ... ok [INFO] [stdout] test skills::tests::load_skills_from_directory_nonexistent ... ok [INFO] [stdout] test skills::tests::normalize_skill_name_converts_dashes ... ok [INFO] [stdout] test skills::tests::parse_simple_frontmatter_empty ... ok [INFO] [stdout] test skills::tests::parse_simple_frontmatter_inline_tags ... ok [INFO] [stdout] test skills::tests::parse_simple_frontmatter_with_all_fields ... ok [INFO] [stdout] test skills::tests::skills_to_prompt_empty ... ok [INFO] [stdout] test skills::tests::skills_to_prompt_escapes_xml ... ok [INFO] [stdout] test skills::tests::skills_to_prompt_generates_valid_xml ... ok [INFO] [stdout] test skills::tests::split_skill_frontmatter_with_frontmatter ... ok [INFO] [stdout] test skills::tests::split_skill_frontmatter_without_frontmatter ... ok [INFO] [stdout] test system_info::tests::detect_installed_tools_has_many_entries ... ok [INFO] [stdout] test system_info::tests::format_as_markdown_includes_all_sections ... ok [INFO] [stdout] test system_info::tests::format_as_markdown_includes_tool_path ... ok [INFO] [stdout] test system_info::tests::format_for_prompt_respects_limit_with_many_tools ... ok [INFO] [stdout] test mcp::transport::tests::http_transport_apply_session_header_noop_when_no_session ... ok [INFO] [stdout] test system_info::tests::detect_single_tool_returns_path ... ok [INFO] [stdout] test system_info::tests::test_detect_single_tool_timeout ... ok [INFO] [stdout] test system_info::tests::test_format_as_markdown_empty_tools ... ok [INFO] [stdout] test system_info::tests::test_format_as_markdown_has_all_sections ... ok [INFO] [stdout] test system_info::tests::test_format_as_markdown_includes_key_fields ... ok [INFO] [stdout] test system_info::tests::test_format_as_markdown_starts_with_header ... ok [INFO] [stdout] test system_info::tests::test_format_as_markdown_tools_are_sorted ... ok [INFO] [stdout] test system_info::tests::test_format_for_prompt_contains_key_info ... ok [INFO] [stdout] test system_info::tests::test_format_for_prompt_minimal ... ok [INFO] [stdout] test system_info::tests::test_format_for_prompt_no_tools_line_when_empty ... ok [INFO] [stdout] test system_info::tests::test_format_for_prompt_truncation ... ok [INFO] [stdout] test system_info::tests::test_format_for_prompt_within_char_limit ... ok [INFO] [stdout] test system_info::tests::test_parse_os_release ... ok [INFO] [stdout] test system_info::tests::test_parse_os_release_minimal ... ok [INFO] [stdout] test system_info::tests::tool_info_stores_version_and_path ... ok [INFO] [stdout] test tools::content_search::tests::case_insensitive ... ok [INFO] [stdout] test system_info::tests::test_detect_single_tool_missing ... ok [INFO] [stdout] test tools::content_search::tests::finds_matches ... ok [INFO] [stdout] test tools::content_search::tests::empty_pattern_rejected ... ok [INFO] [stdout] test tools::content_search::tests::missing_param ... ok [INFO] [stdout] test tools::content_search::tests::include_filter ... ok [INFO] [stdout] test tools::content_search::tests::no_matches ... ok [INFO] [stdout] test tools::file_edit::tests::empty_old_string_rejected ... ok [INFO] [stdout] test tools::file_edit::tests::multiple_matches_rejected ... ok [INFO] [stdout] test tools::file_edit::tests::delete_via_empty_new_string ... ok [INFO] [stdout] test tools::file_edit::tests::not_found ... ok [INFO] [stdout] test tools::file_edit::tests::rejects_builtin_skill_edits ... ok [INFO] [stdout] test tools::file_edit::tests::replaces_single_match ... ok [INFO] [stdout] test tools::file_read::tests::missing_path_param ... ok [INFO] [stdout] test tools::file_read::tests::offset_and_limit ... ok [INFO] [stdout] test tools::file_read::tests::reads_existing_file ... ok [INFO] [stdout] test tools::file_write::tests::creates_parent_dirs ... ok [INFO] [stdout] test tools::file_write::tests::missing_params ... ok [INFO] [stdout] test tools::file_write::tests::writes_file ... ok [INFO] [stdout] test tools::glob_search::tests::finds_files ... ok [INFO] [stdout] test tools::glob_search::tests::invalid_pattern ... ok [INFO] [stdout] test tools::glob_search::tests::missing_param ... ok [INFO] [stdout] test tools::glob_search::tests::no_matches ... ok [INFO] [stdout] test tools::pty_shell::tests::executes_simple_echo ... ok [INFO] [stdout] test tools::pty_shell::tests::handles_interaction ... ok [INFO] [stdout] test tools::pty_shell::tests::missing_command_param ... ok [INFO] [stdout] test knowledge::tests::create_web_source_for_unknown_engine ... ok [INFO] [stdout] test tools::pty_shell::tests::tool_metadata ... ok [INFO] [stdout] test tools::shell::tests::captures_exit_code ... ok [INFO] [stdout] test tools::shell::tests::captures_stderr ... ok [INFO] [stdout] test tools::shell::tests::executes_simple_command ... ok [INFO] [stdout] test tools::shell::tests::missing_command_param ... ok [INFO] [stdout] test cli::commands::tests::load_memory_md_handles_readonly_fs ... ok [INFO] [stdout] test knowledge::tool::tests::search_tool_metadata ... ok [INFO] [stdout] test tools::skill_http::tests::parameters_schema_empty_when_no_args ... ok [INFO] [stdout] test knowledge::tests::create_mediawiki_source ... ok [INFO] [stdout] test tools::skill_http::tests::tool_name_is_dotted ... ok [INFO] [stdout] test knowledge::tool::tests::read_tool_metadata ... ok [INFO] [stdout] test knowledge::tests::source_to_tools_produces_two_tools ... ok [INFO] [stdout] test tools::skill_tool::tests::command_with_no_substitution_works ... ok [INFO] [stdout] test tools::skill_http::tests::non_http_url_rejected ... ok [INFO] [stdout] test tools::skill_http::tests::parameters_schema_includes_args ... ok [INFO] [stdout] test tools::skill_http::tests::url_parameter_substitution ... ok [INFO] [stdout] test tools::skill_tool::tests::parameters_schema_includes_args ... ok [INFO] [stdout] test tools::skill_tool::tests::parameters_schema_empty_when_no_args ... ok [INFO] [stdout] test tools::file_read::tests::nonexistent_file ... ok [INFO] [stdout] test tools::skill_tool::tests::timeout_triggers_error ... ok [INFO] [stdout] test tools::traits::tests::spec_uses_tool_metadata_and_schema ... ok [INFO] [stdout] test tools::traits::tests::execute_returns_expected_output ... ok [INFO] [stdout] test tools::skill_tool::tests::tool_name_is_dotted ... ok [INFO] [stdout] test tools::web_fetch::tests::is_binary_detects_binary_content_types ... ok [INFO] [stdout] test tools::web_fetch::tests::is_html_detects_html_content_types ... ok [INFO] [stdout] test tools::traits::tests::tool_result_serialization_roundtrip ... ok [INFO] [stdout] test tools::web_fetch::tests::truncate_noop_when_under_limit ... ok [INFO] [stdout] test tools::web_fetch::tests::truncate_respects_limit ... ok [INFO] [stdout] test tools::web_search::tests::clean_ddg_url_extracts_target ... ok [INFO] [stdout] test tools::web_search::tests::clean_ddg_url_passthrough_normal_url ... ok [INFO] [stdout] test tools::skill_tool::tests::failing_command_returns_error ... ok [INFO] [stdout] test tools::web_search::tests::format_results_empty ... ok [INFO] [stdout] test tools::web_search::tests::format_results_with_items ... ok [INFO] [stdout] test tools::web_search::tests::html_decode_handles_entities ... ok [INFO] [stdout] test tools::web_search::tests::parse_ddg_results_extracts_from_sample_html ... ok [INFO] [stdout] test tools::web_search::tests::parse_ddg_results_respects_max ... ok [INFO] [stdout] test tools::web_search::tests::strip_html_tags_removes_tags ... ok [INFO] [stdout] test tools::web_search::tests::url_decode_handles_common_encodings ... ok [INFO] [stdout] test tui::tests::memory_command_is_recognized ... ok [INFO] [stdout] test tui::tests::plain_prompt_is_passed_through ... ok [INFO] [stdout] test tui::tests::rescan_is_recognized ... ok [INFO] [stdout] test tui::tests::slash_quit_is_recognized ... ok [INFO] [stdout] test tui::tests::unknown_slash_command_is_handled ... ok [INFO] [stdout] test mcp::transport::tests::http_transport_injects_session_id_header_when_available ... ok [INFO] [stdout] test tools::skill_tool::tests::echo_command_with_arg_substitution ... ok [INFO] [stdout] test cli::commands::tests::load_or_create_memory_md_creates_file ... ok [INFO] [stdout] test platform::unix::tests::default_methods_derive_from_config_dir ... ok [INFO] [stdout] test platform::unix::tests::expand_tilde_with_home_prefix ... ok [INFO] [stdout] test platform::unix::tests::unix_paths_do_not_fall_back_to_literal_tilde ... ok [INFO] [stdout] test skills::tests::init_skills_creates_readme ... ok [INFO] [stdout] test cli::commands::tests::memory_md_lifecycle_read_existing_returns_content ... ok [INFO] [stdout] test tools::web_fetch::tests::missing_url_param_returns_error ... ok [INFO] [stdout] test tools::web_search::tests::spec_metadata ... ok [INFO] [stdout] test tools::web_fetch::tests::spec_metadata ... ok [INFO] [stdout] test tools::web_search::tests::missing_query_param_returns_error ... ok [INFO] [stdout] test system_info::tests::test_detect_installed_tools_graceful_on_missing ... ok [INFO] [stdout] test tools::shell::tests::timeout_kills_command ... ok [INFO] [stdout] test tools::pty_shell::tests::timeout_kills_process has been running for over 60 seconds [INFO] [stdout] test tools::pty_shell::tests::timeout_kills_process ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 439 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 61.27s [INFO] [stdout] [INFO] [stderr] tool: running...tool: doneprogress ⏳ thinking...  Running unittests src/bin/na.rs (/opt/rustwide/target/debug/deps/na-c6f7f5766fcbf5fd) [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-cb94f3cd7ffadbb3) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 40 tests [INFO] [stdout] test config_deserializes_from_empty_toml ... ok [INFO] [stdout] test config_default_deserializes_with_all_defaults ... ok [INFO] [stdout] test agent_creates_with_mock_provider ... ok [INFO] [stdout] test config_deserializes_partial_toml ... ok [INFO] [stdout] test config_deserializes_full_toml ... ok [INFO] [stdout] test cli_prompt_text_joins_words ... ok [INFO] [stdout] test cli_parses_no_prompt_interactive ... ok [INFO] [stdout] test cli_parses_config_flag ... ok [INFO] [stdout] test cli_parses_long_verbose_flag ... ok [INFO] [stdout] test cli_parses_mode_flag ... ok [INFO] [stdout] test cli_parses_prompt_only ... ok [INFO] [stdout] test cli_parses_combined_flags_and_prompt ... ok [INFO] [stdout] test cli_parses_verbose_flag ... ok [INFO] [stdout] test cli_parses_config_path_flag ... ok [INFO] [stdout] test security_manager_from_config_cli_override_none_uses_config ... ok [INFO] [stdout] test security_manager_from_config_no_override ... ok [INFO] [stdout] test secure_tool_confirm_mode_allows_when_user_accepts ... ok [INFO] [stdout] test secure_tool_direct_mode_allows_execution ... ok [INFO] [stdout] test secure_tool_whitelist_mode_allows_matching ... ok [INFO] [stdout] test security_mode_resolves_from_config_default ... ok [INFO] [stdout] test secure_tool_whitelist_mode_blocks_non_matching ... ok [INFO] [stdout] test secure_tool_preserves_name_and_description ... ok [INFO] [stdout] test secure_tool_confirm_mode_denies_when_user_rejects ... ok [INFO] [stdout] test security_manager_from_config_with_cli_override ... ok [INFO] [stdout] test security_mode_case_insensitive_parsing ... ok [INFO] [stdout] test security_mode_resolves_from_config_whitelist ... ok [INFO] [stdout] test memory_persist_creates_file_when_empty ... ok [INFO] [stdout] test skill_name_normalization ... ok [INFO] [stdout] test skill_source_detection ... ok [INFO] [stdout] test memory_add_query_delete_persist_flow ... ok [INFO] [stdout] test agent_turn_returns_mock_response ... ok [INFO] [stdout] test agent_turn_accumulates_history ... ok [INFO] [stdout] test memory_query_by_session_id ... ok [INFO] [stdout] test agent_clear_history_resets_state ... ok [INFO] [stdout] test skill_lifecycle_toml ... ok [INFO] [stdout] test skill_lifecycle_md ... ok [INFO] [stdout] test skill_audit_rejects_unsafe ... ok [INFO] [stdout] test default_tools_have_valid_specs ... ok [INFO] [stdout] test default_tools_returns_nine_tools_with_correct_names ... ok [INFO] [stdout] test agent_creates_with_tools_and_memory ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s [INFO] [stdout] [INFO] [stderr] Doc-tests nano_assistant [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a", kill_on_drop: false }` [INFO] [stdout] c1fa5090e6332887413bda4f326acef16b57ec4dffad7897bc7aa334abb3817a