[INFO] cloning repository https://github.com/joshjab/Agent_L
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/joshjab/Agent_L" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoshjab%2FAgent_L", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoshjab%2FAgent_L'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] fb52300c66201591e88bb99d08b8c4597d9431e1
[INFO] testing joshjab/Agent_L against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoshjab%2FAgent_L" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/joshjab/Agent_L
[INFO] removed 0 missing tests
[INFO] finished tweaking git repo https://github.com/joshjab/Agent_L
[INFO] tweaked toml for git repo https://github.com/joshjab/Agent_L written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/joshjab/Agent_L on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/joshjab/Agent_L 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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] ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec
[INFO] running `Command { std: "docker" "start" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", 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" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", 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" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling aws-lc-rs v1.15.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.115
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling deranged v0.5.6
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling urlencoding v2.1.3
[INFO] [stderr]    Compiling aws-lc-sys v0.37.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[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 tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[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 ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.13
[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 rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling agent_l v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 36s
[INFO] running `Command { std: "docker" "inspect" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", 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" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[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 deadpool v0.12.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hyper-util v0.1.20
[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 regex v1.12.3
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling agent_l v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 27s
[INFO] running `Command { std: "docker" "inspect" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", 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" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/agent_l-39cf8ffb8d46a204)
[INFO] [stdout] 
[INFO] [stdout] running 280 tests
[INFO] [stdout] test agents::compression::tests::above_threshold_calls_post_and_compresses ... ok
[INFO] [stdout] test agents::compression::tests::actual_tokens_overrides_estimate_for_threshold ... ok
[INFO] [stdout] test agents::compression::tests::below_threshold_returns_history_unchanged ... ok
[INFO] [stdout] test agents::compression::tests::empty_history_returns_empty ... ok
[INFO] [stdout] test agents::compression::tests::actual_tokens_below_threshold_skips_compression ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_counts_chars_over_four ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_empty_returns_zero ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_ignores_non_content_fields ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_ignores_think_blocks ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_no_think_blocks_unchanged ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_sums_all_content_fields ... ok
[INFO] [stdout] test agents::compression::tests::new_uses_default_params ... ok
[INFO] [stdout] test agents::compression::tests::post_error_returns_agent_error ... ok
[INFO] [stdout] test agents::compression::tests::build_summary_prompt_messages_is_nonempty ... ok
[INFO] [stdout] test agents::compression::tests::remaining_turns_preserved_after_compression ... ok
[INFO] [stdout] test agents::compression::tests::with_params_stores_given_values ... ok
[INFO] [stdout] test agents::compression::tests::compressed_output_starts_with_summary_tag ... ok
[INFO] [stdout] test agents::compression::tests::summary_content_appears_in_output ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_serializes_to_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::agent_kind_deserializes_from_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_code_fenced_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_plan_field_alias ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_content_has_unknown_intent_type ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_message_content_is_missing ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_plan_fails_validation ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_response_is_not_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_succeeds_on_valid_envelope ... ok
[INFO] [stdout] test agents::orchestrator::tests::plan_step_omits_depends_on_when_none ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_content_is_missing_required_field ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_envelope_has_no_message_key ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_appends_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_includes_all_turns_when_fewer_than_limit ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_no_error_feedback_on_first_attempt ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_trims_context_to_last_n_turns ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_no_fence_unchanged ... ok
[INFO] [stdout] test agents::compression::tests::build_summary_prompt_contains_model_and_no_stream ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_instruction_field_alias ... ok
[INFO] [stdout] test agents::orchestrator::tests::agent_kind_serializes_to_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_deserializes_from_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_contains_model_stream_false_and_format ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_rejects_unknown_string ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_first_message_is_system_prompt ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_empty_steps ... ok
[INFO] [stdout] test agents::orchestrator::tests::task_plan_roundtrips_through_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_valid_single_step_plan ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_self_referencing_depends_on ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_valid_depends_on ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_includes_all_history ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_injects_reminder_before_last_when_due ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_prepends_system_prompt ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_no_reminder_when_not_due ... ok
[INFO] [stdout] test agents::persona::tests::from_prompt_stores_given_prompt ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_absent_between_intervals ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_present_at_interval ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_forward_depends_on ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_present_at_multiples_of_interval ... ok
[INFO] [stdout] test agents::persona::tests::new_uses_default_prompt_when_env_var_absent ... ok
[INFO] [stdout] test agents::persona::tests::new_uses_env_var_when_set ... ok
[INFO] [stdout] test agents::persona::tests::system_message_content_matches_prompt ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_removes_json_fence ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_removes_plain_fence ... ok
[INFO] [stdout] test agents::schema::tests::require_field_returns_error_when_missing ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_max_steps_exactly ... ok
[INFO] [stdout] test agents::schema::tests::require_str_returns_str_for_string_field ... ok
[INFO] [stdout] test agents::persona::tests::system_message_has_system_role ... ok
[INFO] [stdout] test agents::schema::tests::require_str_returns_error_for_non_string_field ... ok
[INFO] [stdout] test agents::schema::tests::require_field_returns_value_when_present ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_more_than_max_steps ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_empty_history_returns_just_system ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_absent_at_turn_zero ... ok
[INFO] [stdout] test agents::specialists::code::tests::exhausted_retries_returns_agent_error ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_file_path_is_project ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_toml_file_is_project ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_write_script_is_one_off ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_ambiguous_returns_none ... ok
[INFO] [stdout] test agents::specialists::chat::tests::injects_context_as_user_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_on_invalid_json ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_on_unknown_scope_value ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_when_message_content_missing ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_when_scope_field_missing ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_one_off_returns_one_off ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_project_returns_project ... ok
[INFO] [stdout] test agents::specialists::chat::tests::returns_accumulated_text ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_scope_sends_limitation_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_scope_via_heuristic_sends_limitation_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_appends_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_first_message_is_system_prompt ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_includes_context_after_system_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_sets_model_stream_false_and_format ... ok
[INFO] [stdout] test agents::specialists::code::tests::retry_on_invalid_response_then_succeeds ... ok
[INFO] [stdout] test agents::specialists::chat::tests::does_not_send_stream_done ... ok
[INFO] [stdout] test agents::specialists::code::tests::task_scope_deserializes_snake_case ... ok
[INFO] [stdout] test agents::specialists::code::tests::task_scope_serializes_snake_case ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_handles_empty_input ... ok
[INFO] [stdout] test agents::specialists::chat::tests::streams_tokens_to_tx ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_preserves_unique_sentences ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_removes_exact_duplicates ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_is_case_insensitive ... ok
[INFO] [stdout] test agents::specialists::chat::tests::connection_error_returns_specialist_error ... ok
[INFO] [stdout] test agents::specialists::code::tests::failing_invocation_returns_err ... ok
[INFO] [stdout] test agents::specialists::code::tests::one_off_returns_output ... ok
[INFO] [stdout] test agents::specialists::code::tests::one_off_runs_in_temp_dir_not_project_dir ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_sends_limitation_message_not_subprocess_output ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_forbids_answering_without_tool_call ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_includes_react_format_diagram ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_requires_observation_only_grounding ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_empty_returns_empty_string ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_multiple_outputs_separated_by_blank_line ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_tags_code_output ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_tags_search_output ... ok
[INFO] [stdout] test agents::specialists::tests::concurrency_safe_flags_are_correct ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_example_uses_observation_placeholder ... ok
[INFO] [stdout] test agents::specialists::tests::empty_steps_sends_stream_done ... ok
[INFO] [stdout] test agents::specialists::tests::make_filtering_tx_drops_token_events ... ok
[INFO] [stdout] test agents::specialists::tests::make_filtering_tx_forwards_tool_call_events ... ok
[INFO] [stdout] test agents::specialists::code::tests::scope_detection_failure_returns_err ... ok
[INFO] [stdout] test agents::specialists::tests::connection_error_returns_err ... ok
[INFO] [stdout] test agents::specialists::tests::single_chat_step_streams_tokens ... ok
[INFO] [stdout] test agents::tests::http_error_stops_immediately_without_retrying ... ok
[INFO] [stdout] test agents::tests::injects_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::tests::returns_error_after_all_attempts_exhausted ... ok
[INFO] [stdout] test agents::tests::succeeds_on_first_attempt ... ok
[INFO] [stdout] test app::tests::content_before_think_preserved ... ok
[INFO] [stdout] test app::tests::route_decision_event_replaces_previous_plan ... ok
[INFO] [stdout] test app::tests::route_decision_event_stores_plan ... ok
[INFO] [stdout] test app::tests::route_decision_resets_code_scope ... ok
[INFO] [stdout] test app::tests::route_decision_starts_as_none ... ok
[INFO] [stdout] test app::tests::scope_decision_event_stores_scope ... ok
[INFO] [stdout] test app::tests::scope_decision_starts_as_none ... ok
[INFO] [stdout] test app::tests::stream_done_flushes_partial_non_think_buffer ... ok
[INFO] [stdout] test app::tests::strip_think_empty_string ... ok
[INFO] [stdout] test app::tests::strip_think_multiple_blocks_removed ... ok
[INFO] [stdout] test app::tests::strip_think_no_tags_unchanged ... ok
[INFO] [stdout] test app::tests::strip_think_single_block_removed ... ok
[INFO] [stdout] test app::tests::strip_think_unclosed_discards_tail ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_empty_input ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_loading ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_not_ready ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_double_call_blocked ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_pushes_messages ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_content_fits ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_off ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_on ... ok
[INFO] [stdout] test app::tests::test_enforce_content_equals_viewport ... ok
[INFO] [stdout] test app::tests::test_initial_state ... ok
[INFO] [stdout] test app::tests::test_multiple_tokens_concatenate ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_equal ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_when_fits ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_when_taller ... ok
[INFO] [stdout] test app::tests::test_startup_update_transitions_state ... ok
[INFO] [stdout] test app::tests::test_stream_done_clears_loading ... ok
[INFO] [stdout] test app::tests::test_tick_increments_each_update ... ok
[INFO] [stdout] test app::tests::test_tick_wraps_at_max ... ok
[INFO] [stdout] test app::tests::test_token_appends_to_last_message ... ok
[INFO] [stdout] test app::tests::test_token_discarded_with_empty_history ... ok
[INFO] [stdout] test app::tests::think_block_hidden_from_content ... ok
[INFO] [stdout] test app::tests::think_block_split_across_tokens ... ok
[INFO] [stdout] test app::tests::thinking_tokens_accumulates_across_events ... ok
[INFO] [stdout] test app::tests::unclosed_think_at_stream_end_discarded ... ok
[INFO] [stdout] test config::tests::search_provider_brave_from_env ... ok
[INFO] [stdout] test config::tests::search_provider_defaults_to_duckduckgo ... ok
[INFO] [stdout] test config::tests::search_provider_tavily_from_env ... ok
[INFO] [stdout] test config::tests::search_provider_unknown_falls_back_to_duckduckgo ... ok
[INFO] [stdout] test config::tests::test_custom_env_vars ... ok
[INFO] [stdout] test config::tests::test_defaults ... ok
[INFO] [stdout] test config::tests::test_new_constructor ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_returns_err_when_ollama_unreachable ... ok
[INFO] [stdout] test agents::specialists::tests::unknown_specialist_falls_back_to_chat ... ok
[INFO] [stdout] test ollama::tests::post_json_errors_on_connection_failure ... ok
[INFO] [stdout] test prompts::tests::load_returns_fallback_when_dir_missing ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_injects_context_as_user_message ... ok
[INFO] [stdout] test prompts::tests::load_strips_html_comments ... ok
[INFO] [stdout] test prompts::tests::load_returns_file_content_when_present ... ok
[INFO] [stdout] test prompts::tests::load_with_substitutes_placeholders ... ok
[INFO] [stdout] test startup::tests::test_both_empty ... ok
[INFO] [stdout] test startup::tests::test_exact_match ... ok
[INFO] [stdout] test startup::tests::test_exact_with_colon ... ok
[INFO] [stdout] test startup::tests::test_multiple_tag_variants ... ok
[INFO] [stdout] test startup::tests::test_no_match_different_name ... ok
[INFO] [stdout] test startup::tests::test_no_match_prefix_without_colon ... ok
[INFO] [stdout] test startup::tests::test_nonempty_vs_empty ... ok
[INFO] [stdout] test startup::tests::test_tag_suffix_match ... ok
[INFO] [stdout] test tools::claude_code::tests::run_captures_stdout ... ok
[INFO] [stdout] test tools::claude_code::tests::run_returns_err_on_missing_binary ... ok
[INFO] [stdout] test tools::claude_code::tests::run_returns_err_on_nonzero_exit ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_returns_err_on_nonzero_exit ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_sends_tokens ... ok
[INFO] [stdout] test prompts::tests::load_with_substitutes_in_fallback_when_file_missing ... ok
[INFO] [stdout] test ollama::tests::post_json_returns_body_on_http_error ... ok
[INFO] [stdout] test tools::claude_code::tests::run_uses_specified_working_dir ... ok
[INFO] [stdout] test tools::executor::tests::always_failing_tool_returns_error_observation ... ok
[INFO] [stdout] test tools::executor::tests::bare_final_answer_before_any_tool_call_is_rejected ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_handles_grep_style_output ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_returns_none_when_absent ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_returns_snippet_line ... ok
[INFO] [stdout] test tools::executor::tests::loop_appends_observation_after_tool_call ... ok
[INFO] [stdout] test tools::executor::tests::loop_captures_multiline_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::loop_executes_tool_then_gets_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::loop_hard_stops_at_step_limit ... ok
[INFO] [stdout] test tools::executor::tests::loop_returns_error_observation_for_invalid_args ... ok
[INFO] [stdout] test tools::executor::tests::loop_returns_final_answer_on_success ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_error_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_failed_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_panic_keyword ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_timeout_fires ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_warn_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_includes_exit_code ... ok
[INFO] [stdout] test tools::executor::tests::observation_no_warning_for_clean_output ... ok
[INFO] [stdout] test tools::executor::tests::observation_zero_exit_with_panic_keyword_warns ... ok
[INFO] [stdout] test tools::executor::tests::parse_final_answer_line ... ok
[INFO] [stdout] test tools::executor::tests::parse_thought_line ... ok
[INFO] [stdout] test tools::executor::tests::parse_tool_call_line ... ok
[INFO] [stdout] test agents::specialists::tests::two_steps_with_depends_on_both_called ... ok
[INFO] [stdout] test tools::claude_code::tests::run_timeout_fires ... ok
[INFO] [stdout] test tools::executor::tests::observation_trims_long_output ... ok
[INFO] [stdout] test tools::executor::tests::parse_unknown_line_returns_none ... ok
[INFO] [stdout] test tools::executor::tests::tool_call_takes_priority_over_same_turn_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_passes_when_required_fields_present ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_passes_with_no_required_fields ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_fails_when_required_field_missing ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_includes_directory_listing ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_returns_matches ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_schema_requires_query_and_path ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_no_matches_returns_placeholder ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_abstract_becomes_result ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_empty_response_returns_no_results ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_filters_abstract_with_non_https_url ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_filters_non_https_urls_from_related_topics ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_invalid_json_returns_no_results ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_no_abstract_uses_related_topics ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_results_field_takes_priority_over_abstract ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_caps_related_topics_at_three ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_trims_long_output ... ok
[INFO] [stdout] test ollama::tests::post_json_returns_body_on_success ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_schema_requires_query ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_returns_final_answer_after_tool_call ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_calls_ddg_at_least_once ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_http_error_returns_err ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_empty_results_returns_placeholder ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_missing_api_key_returns_clear_error ... ok
[INFO] [stdout] test tools::tests::always_fail_tool_returns_err ... ok
[INFO] [stdout] test tools::tests::always_ok_tool_name_and_execute ... ok
[INFO] [stdout] test ui::tests::bare_url_gets_linkified ... ok
[INFO] [stdout] test ui::tests::bold_markers_inside_code_block_are_not_processed ... ok
[INFO] [stdout] test ui::tests::code_block_with_language_produces_label_and_code_lines ... ok
[INFO] [stdout] test ui::tests::code_block_without_language_produces_generic_label ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_answer_field_prepended ... ok
[INFO] [stdout] test ui::tests::multiple_code_blocks_both_render ... ok
[INFO] [stdout] test ui::tests::non_url_prose_unchanged ... ok
[INFO] [stdout] test ui::tests::route_code_with_one_off_scope ... ok
[INFO] [stdout] test ui::tests::route_code_with_project_scope ... ok
[INFO] [stdout] test ui::tests::route_code_without_scope_shows_plain_code ... ok
[INFO] [stdout] test ui::tests::route_conversational_shows_no_intent_suffix ... ok
[INFO] [stdout] test ui::tests::route_creative_shows_creative_suffix ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_returns_human_readable_text ... ok
[INFO] [stdout] test ui::tests::route_factual_shows_factual_suffix ... ok
[INFO] [stdout] test ui::tests::prose_around_code_block_renders_correctly ... ok
[INFO] [stdout] test ui::tests::route_deduplicates_repeated_agents ... ok
[INFO] [stdout] test ui::tests::route_task_multi_step_joins_with_plus ... ok
[INFO] [stdout] test ui::tests::source_prefix_is_stripped_with_url ... ok
[INFO] [stdout] test ui::tests::route_preserves_agent_order ... ok
[INFO] [stdout] test ui::tests::test_adjacent_markers ... ok
[INFO] [stdout] test ui::tests::status_shows_think_count_when_nonzero ... ok
[INFO] [stdout] test ui::tests::status_hides_think_count_when_zero ... ok
[INFO] [stdout] test ui::tests::test_bold_multiple_pairs ... ok
[INFO] [stdout] test ui::tests::test_bold_single_pair ... ok
[INFO] [stdout] test ui::tests::test_empty_string ... ok
[INFO] [stdout] test ui::tests::test_multiline ... ok
[INFO] [stdout] test ui::tests::test_only_bold ... ok
[INFO] [stdout] test ui::tests::test_plain_text ... ok
[INFO] [stdout] test ui::tests::test_spinner_has_10_frames ... ok
[INFO] [stdout] test ui::tests::test_unclosed_bold ... ok
[INFO] [stdout] test ui::tests::unclosed_code_block_renders_without_panic ... ok
[INFO] [stdout] test ui::tests::url_at_end_of_line_linkified ... ok
[INFO] [stdout] test ui::tests::url_inside_bold_not_linkified ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_no_results_returns_placeholder ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_parses_ddg_response ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_happy_path_formats_results ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_http_error_returns_err ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_circuit_breaker_fires_when_model_loops ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 280 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.60s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/agent_l-7e040b2d74c48cc7)
[INFO] [stdout] 
[INFO] [stdout] running 280 tests
[INFO] [stdout] test agents::compression::tests::above_threshold_calls_post_and_compresses ... ok
[INFO] [stdout] test agents::compression::tests::actual_tokens_below_threshold_skips_compression ... ok
[INFO] [stdout] test agents::compression::tests::actual_tokens_overrides_estimate_for_threshold ... ok
[INFO] [stdout] test agents::compression::tests::build_summary_prompt_messages_is_nonempty ... ok
[INFO] [stdout] test agents::compression::tests::empty_history_returns_empty ... ok
[INFO] [stdout] test agents::compression::tests::compressed_output_starts_with_summary_tag ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_counts_chars_over_four ... ok
[INFO] [stdout] test agents::compression::tests::below_threshold_returns_history_unchanged ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_ignores_non_content_fields ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_ignores_think_blocks ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_no_think_blocks_unchanged ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_sums_all_content_fields ... ok
[INFO] [stdout] test agents::compression::tests::build_summary_prompt_contains_model_and_no_stream ... ok
[INFO] [stdout] test agents::compression::tests::new_uses_default_params ... ok
[INFO] [stdout] test agents::compression::tests::post_error_returns_agent_error ... ok
[INFO] [stdout] test agents::compression::tests::remaining_turns_preserved_after_compression ... ok
[INFO] [stdout] test agents::compression::tests::estimate_tokens_empty_returns_zero ... ok
[INFO] [stdout] test agents::orchestrator::tests::agent_kind_deserializes_from_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_deserializes_from_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::agent_kind_serializes_to_pascal_case ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_serializes_to_pascal_case ... ok
[INFO] [stdout] test agents::compression::tests::summary_content_appears_in_output ... ok
[INFO] [stdout] test agents::compression::tests::with_params_stores_given_values ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_envelope_has_no_message_key ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_content_has_unknown_intent_type ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_plan_field_alias ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_message_content_is_missing ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_code_fenced_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_content_is_missing_required_field ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_accepts_instruction_field_alias ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_plan_fails_validation ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_appends_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_fails_when_response_is_not_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_contains_model_stream_false_and_format ... ok
[INFO] [stdout] test agents::orchestrator::tests::plan_step_omits_depends_on_when_none ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_includes_all_turns_when_fewer_than_limit ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_first_message_is_system_prompt ... ok
[INFO] [stdout] test agents::orchestrator::tests::parse_succeeds_on_valid_envelope ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_trims_context_to_last_n_turns ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_no_fence_unchanged ... ok
[INFO] [stdout] test agents::orchestrator::tests::prompt_no_error_feedback_on_first_attempt ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_removes_json_fence ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_max_steps_exactly ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_valid_single_step_plan ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_accepts_valid_depends_on ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_empty_steps ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_forward_depends_on ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_more_than_max_steps ... ok
[INFO] [stdout] test agents::orchestrator::tests::strip_code_fence_removes_plain_fence ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_injects_reminder_before_last_when_due ... ok
[INFO] [stdout] test agents::orchestrator::tests::task_plan_roundtrips_through_json ... ok
[INFO] [stdout] test agents::orchestrator::tests::validate_rejects_self_referencing_depends_on ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_no_reminder_when_not_due ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_prepends_system_prompt ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_empty_history_returns_just_system ... ok
[INFO] [stdout] test agents::persona::tests::from_prompt_stores_given_prompt ... ok
[INFO] [stdout] test agents::persona::tests::build_messages_includes_all_history ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_absent_between_intervals ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_absent_at_turn_zero ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_present_at_interval ... ok
[INFO] [stdout] test agents::persona::tests::new_uses_default_prompt_when_env_var_absent ... ok
[INFO] [stdout] test agents::persona::tests::new_uses_env_var_when_set ... ok
[INFO] [stdout] test agents::persona::tests::goal_reminder_present_at_multiples_of_interval ... ok
[INFO] [stdout] test agents::persona::tests::system_message_content_matches_prompt ... ok
[INFO] [stdout] test agents::persona::tests::system_message_has_system_role ... ok
[INFO] [stdout] test agents::schema::tests::require_field_returns_value_when_present ... ok
[INFO] [stdout] test agents::schema::tests::require_str_returns_str_for_string_field ... ok
[INFO] [stdout] test agents::schema::tests::require_str_returns_error_for_non_string_field ... ok
[INFO] [stdout] test agents::orchestrator::tests::intent_type_rejects_unknown_string ... ok
[INFO] [stdout] test agents::specialists::code::tests::exhausted_retries_returns_agent_error ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_ambiguous_returns_none ... ok
[INFO] [stdout] test agents::schema::tests::require_field_returns_error_when_missing ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_file_path_is_project ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_toml_file_is_project ... ok
[INFO] [stdout] test agents::specialists::code::tests::heuristic_write_script_is_one_off ... ok
[INFO] [stdout] test agents::specialists::chat::tests::does_not_send_stream_done ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_on_invalid_json ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_on_unknown_scope_value ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_when_message_content_missing ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_fails_when_scope_field_missing ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_one_off_returns_one_off ... ok
[INFO] [stdout] test agents::specialists::code::tests::parse_project_returns_project ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_scope_sends_limitation_message ... ok
[INFO] [stdout] test agents::specialists::chat::tests::injects_context_as_user_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_scope_via_heuristic_sends_limitation_message ... ok
[INFO] [stdout] test agents::specialists::chat::tests::connection_error_returns_specialist_error ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_first_message_is_system_prompt ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_includes_context_after_system_message ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_appends_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::specialists::code::tests::prompt_sets_model_stream_false_and_format ... ok
[INFO] [stdout] test agents::specialists::code::tests::retry_on_invalid_response_then_succeeds ... ok
[INFO] [stdout] test agents::specialists::code::tests::task_scope_deserializes_snake_case ... ok
[INFO] [stdout] test agents::specialists::code::tests::one_off_runs_in_temp_dir_not_project_dir ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_handles_empty_input ... ok
[INFO] [stdout] test agents::specialists::code::tests::task_scope_serializes_snake_case ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_preserves_unique_sentences ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_is_case_insensitive ... ok
[INFO] [stdout] test agents::specialists::chat::tests::streams_tokens_to_tx ... ok
[INFO] [stdout] test agents::specialists::chat::tests::returns_accumulated_text ... ok
[INFO] [stdout] test agents::specialists::search::tests::deduplicate_sentences_removes_exact_duplicates ... ok
[INFO] [stdout] test agents::specialists::code::tests::failing_invocation_returns_err ... ok
[INFO] [stdout] test agents::specialists::code::tests::one_off_returns_output ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_example_uses_observation_placeholder ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_forbids_answering_without_tool_call ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_includes_react_format_diagram ... ok
[INFO] [stdout] test agents::specialists::search::tests::system_prompt_requires_observation_only_grounding ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_empty_returns_empty_string ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_multiple_outputs_separated_by_blank_line ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_tags_code_output ... ok
[INFO] [stdout] test agents::specialists::tests::build_synthesis_context_tags_search_output ... ok
[INFO] [stdout] test agents::specialists::tests::concurrency_safe_flags_are_correct ... ok
[INFO] [stdout] test agents::specialists::code::tests::scope_detection_failure_returns_err ... ok
[INFO] [stdout] test agents::specialists::tests::empty_steps_sends_stream_done ... ok
[INFO] [stdout] test agents::specialists::tests::make_filtering_tx_drops_token_events ... ok
[INFO] [stdout] test agents::specialists::tests::make_filtering_tx_forwards_tool_call_events ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_returns_err_when_ollama_unreachable ... ok
[INFO] [stdout] test agents::specialists::code::tests::project_sends_limitation_message_not_subprocess_output ... ok
[INFO] [stdout] test agents::specialists::tests::connection_error_returns_err ... ok
[INFO] [stdout] test agents::tests::http_error_stops_immediately_without_retrying ... ok
[INFO] [stdout] test agents::tests::injects_error_feedback_on_retry ... ok
[INFO] [stdout] test agents::tests::returns_error_after_all_attempts_exhausted ... ok
[INFO] [stdout] test agents::tests::succeeds_on_first_attempt ... ok
[INFO] [stdout] test app::tests::content_before_think_preserved ... ok
[INFO] [stdout] test app::tests::route_decision_event_replaces_previous_plan ... ok
[INFO] [stdout] test app::tests::route_decision_event_stores_plan ... ok
[INFO] [stdout] test app::tests::route_decision_resets_code_scope ... ok
[INFO] [stdout] test app::tests::route_decision_starts_as_none ... ok
[INFO] [stdout] test app::tests::scope_decision_event_stores_scope ... ok
[INFO] [stdout] test app::tests::scope_decision_starts_as_none ... ok
[INFO] [stdout] test app::tests::stream_done_flushes_partial_non_think_buffer ... ok
[INFO] [stdout] test app::tests::strip_think_empty_string ... ok
[INFO] [stdout] test app::tests::strip_think_multiple_blocks_removed ... ok
[INFO] [stdout] test app::tests::strip_think_no_tags_unchanged ... ok
[INFO] [stdout] test app::tests::strip_think_single_block_removed ... ok
[INFO] [stdout] test app::tests::strip_think_unclosed_discards_tail ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_empty_input ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_loading ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_blocked_when_not_ready ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_double_call_blocked ... ok
[INFO] [stdout] test app::tests::test_ask_ollama_pushes_messages ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_content_fits ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_off ... ok
[INFO] [stdout] test app::tests::test_enforce_auto_scroll_on ... ok
[INFO] [stdout] test app::tests::test_enforce_content_equals_viewport ... ok
[INFO] [stdout] test app::tests::test_initial_state ... ok
[INFO] [stdout] test app::tests::test_multiple_tokens_concatenate ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_equal ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_when_fits ... ok
[INFO] [stdout] test app::tests::test_scroll_to_bottom_when_taller ... ok
[INFO] [stdout] test app::tests::test_startup_update_transitions_state ... ok
[INFO] [stdout] test agents::specialists::tests::single_chat_step_streams_tokens ... ok
[INFO] [stdout] test app::tests::test_tick_increments_each_update ... ok
[INFO] [stdout] test app::tests::test_stream_done_clears_loading ... ok
[INFO] [stdout] test app::tests::test_token_appends_to_last_message ... ok
[INFO] [stdout] test app::tests::test_token_discarded_with_empty_history ... ok
[INFO] [stdout] test app::tests::think_block_hidden_from_content ... ok
[INFO] [stdout] test app::tests::test_tick_wraps_at_max ... ok
[INFO] [stdout] test app::tests::think_block_split_across_tokens ... ok
[INFO] [stdout] test app::tests::thinking_tokens_accumulates_across_events ... ok
[INFO] [stdout] test app::tests::unclosed_think_at_stream_end_discarded ... ok
[INFO] [stdout] test config::tests::search_provider_defaults_to_duckduckgo ... ok
[INFO] [stdout] test config::tests::search_provider_brave_from_env ... ok
[INFO] [stdout] test config::tests::search_provider_unknown_falls_back_to_duckduckgo ... ok
[INFO] [stdout] test config::tests::test_custom_env_vars ... ok
[INFO] [stdout] test config::tests::search_provider_tavily_from_env ... ok
[INFO] [stdout] test config::tests::test_defaults ... ok
[INFO] [stdout] test config::tests::test_new_constructor ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_injects_context_as_user_message ... ok
[INFO] [stdout] test agents::specialists::tests::unknown_specialist_falls_back_to_chat ... ok
[INFO] [stdout] test prompts::tests::load_returns_fallback_when_dir_missing ... ok
[INFO] [stdout] test prompts::tests::load_returns_file_content_when_present ... ok
[INFO] [stdout] test prompts::tests::load_strips_html_comments ... ok
[INFO] [stdout] test prompts::tests::load_with_substitutes_in_fallback_when_file_missing ... ok
[INFO] [stdout] test prompts::tests::load_with_substitutes_placeholders ... ok
[INFO] [stdout] test startup::tests::test_both_empty ... ok
[INFO] [stdout] test startup::tests::test_exact_match ... ok
[INFO] [stdout] test startup::tests::test_exact_with_colon ... ok
[INFO] [stdout] test startup::tests::test_multiple_tag_variants ... ok
[INFO] [stdout] test startup::tests::test_no_match_different_name ... ok
[INFO] [stdout] test startup::tests::test_no_match_prefix_without_colon ... ok
[INFO] [stdout] test startup::tests::test_nonempty_vs_empty ... ok
[INFO] [stdout] test startup::tests::test_tag_suffix_match ... ok
[INFO] [stdout] test tools::claude_code::tests::run_captures_stdout ... ok
[INFO] [stdout] test tools::claude_code::tests::run_returns_err_on_missing_binary ... ok
[INFO] [stdout] test tools::claude_code::tests::run_returns_err_on_nonzero_exit ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_returns_err_on_nonzero_exit ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_sends_tokens ... ok
[INFO] [stdout] test ollama::tests::post_json_returns_body_on_success ... ok
[INFO] [stdout] test tools::claude_code::tests::run_streaming_timeout_fires ... ok
[INFO] [stdout] test tools::claude_code::tests::run_uses_specified_working_dir ... ok
[INFO] [stdout] test tools::executor::tests::always_failing_tool_returns_error_observation ... ok
[INFO] [stdout] test tools::executor::tests::bare_final_answer_before_any_tool_call_is_rejected ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_handles_grep_style_output ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_returns_none_when_absent ... ok
[INFO] [stdout] test tools::executor::tests::extract_first_snippet_returns_snippet_line ... ok
[INFO] [stdout] test tools::executor::tests::loop_appends_observation_after_tool_call ... ok
[INFO] [stdout] test tools::executor::tests::loop_captures_multiline_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::loop_executes_tool_then_gets_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::loop_hard_stops_at_step_limit ... ok
[INFO] [stdout] test tools::executor::tests::loop_returns_error_observation_for_invalid_args ... ok
[INFO] [stdout] test tools::executor::tests::loop_returns_final_answer_on_success ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_error_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_failed_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_panic_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_adds_warning_for_warn_keyword ... ok
[INFO] [stdout] test tools::executor::tests::observation_includes_exit_code ... ok
[INFO] [stdout] test tools::executor::tests::observation_no_warning_for_clean_output ... ok
[INFO] [stdout] test tools::executor::tests::observation_trims_long_output ... ok
[INFO] [stdout] test ollama::tests::post_json_returns_body_on_http_error ... ok
[INFO] [stdout] test tools::executor::tests::parse_final_answer_line ... ok
[INFO] [stdout] test tools::executor::tests::parse_thought_line ... ok
[INFO] [stdout] test tools::executor::tests::parse_tool_call_line ... ok
[INFO] [stdout] test tools::claude_code::tests::run_timeout_fires ... ok
[INFO] [stdout] test tools::executor::tests::tool_call_takes_priority_over_same_turn_final_answer ... ok
[INFO] [stdout] test tools::executor::tests::parse_unknown_line_returns_none ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_fails_when_required_field_missing ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_passes_when_required_fields_present ... ok
[INFO] [stdout] test tools::executor::tests::validate_args_passes_with_no_required_fields ... ok
[INFO] [stdout] test tools::executor::tests::observation_zero_exit_with_panic_keyword_warns ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_no_matches_returns_placeholder ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_schema_requires_query_and_path ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_returns_matches ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_abstract_becomes_result ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_caps_related_topics_at_three ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_empty_response_returns_no_results ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_filters_abstract_with_non_https_url ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_filters_non_https_urls_from_related_topics ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_invalid_json_returns_no_results ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_no_abstract_uses_related_topics ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_includes_directory_listing ... ok
[INFO] [stdout] test tools::search_tools::tests::parse_ddg_results_field_takes_priority_over_abstract ... ok
[INFO] [stdout] test tools::search_tools::tests::local_search_trims_long_output ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_returns_final_answer_after_tool_call ... ok
[INFO] [stdout] test ollama::tests::post_json_errors_on_connection_failure ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_schema_requires_query ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_http_error_returns_err ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_parses_ddg_response ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_no_results_returns_placeholder ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_answer_field_prepended ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_missing_api_key_returns_clear_error ... ok
[INFO] [stdout] test tools::tests::always_fail_tool_returns_err ... ok
[INFO] [stdout] test tools::tests::always_ok_tool_name_and_execute ... ok
[INFO] [stdout] test ui::tests::bare_url_gets_linkified ... ok
[INFO] [stdout] test ui::tests::bold_markers_inside_code_block_are_not_processed ... ok
[INFO] [stdout] test ui::tests::code_block_with_language_produces_label_and_code_lines ... ok
[INFO] [stdout] test ui::tests::code_block_without_language_produces_generic_label ... ok
[INFO] [stdout] test ui::tests::multiple_code_blocks_both_render ... ok
[INFO] [stdout] test ui::tests::non_url_prose_unchanged ... ok
[INFO] [stdout] test ui::tests::prose_around_code_block_renders_correctly ... ok
[INFO] [stdout] test ui::tests::route_code_with_one_off_scope ... ok
[INFO] [stdout] test ui::tests::route_code_with_project_scope ... ok
[INFO] [stdout] test ui::tests::route_code_without_scope_shows_plain_code ... ok
[INFO] [stdout] test ui::tests::route_conversational_shows_no_intent_suffix ... ok
[INFO] [stdout] test ui::tests::route_creative_shows_creative_suffix ... ok
[INFO] [stdout] test ui::tests::route_deduplicates_repeated_agents ... ok
[INFO] [stdout] test ui::tests::route_factual_shows_factual_suffix ... ok
[INFO] [stdout] test ui::tests::route_preserves_agent_order ... ok
[INFO] [stdout] test ui::tests::route_task_multi_step_joins_with_plus ... ok
[INFO] [stdout] test ui::tests::source_prefix_is_stripped_with_url ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_http_error_returns_err ... ok
[INFO] [stdout] test ui::tests::status_hides_think_count_when_zero ... ok
[INFO] [stdout] test ui::tests::test_adjacent_markers ... ok
[INFO] [stdout] test ui::tests::status_shows_think_count_when_nonzero ... ok
[INFO] [stdout] test ui::tests::test_bold_multiple_pairs ... ok
[INFO] [stdout] test ui::tests::test_bold_single_pair ... ok
[INFO] [stdout] test ui::tests::test_empty_string ... ok
[INFO] [stdout] test ui::tests::test_only_bold ... ok
[INFO] [stdout] test ui::tests::test_multiline ... ok
[INFO] [stdout] test ui::tests::test_plain_text ... ok
[INFO] [stdout] test ui::tests::test_unclosed_bold ... ok
[INFO] [stdout] test ui::tests::unclosed_code_block_renders_without_panic ... ok
[INFO] [stdout] test ui::tests::url_at_end_of_line_linkified ... ok
[INFO] [stdout] test ui::tests::url_inside_bold_not_linkified ... ok
[INFO] [stdout] test ui::tests::test_spinner_has_10_frames ... ok
[INFO] [stdout] test tools::search_tools::tests::web_search_returns_human_readable_text ... ok
[INFO] [stdout] test agents::specialists::search::tests::search_calls_ddg_at_least_once ... ok
[INFO] [stdout] test agents::specialists::tests::two_steps_with_depends_on_both_called ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_happy_path_formats_results ... ok
[INFO] [stdout] test tools::tavily_search::tests::tavily_empty_results_returns_placeholder ... ok
[INFO] [stderr]      Running tests/live.rs (/opt/rustwide/target/debug/deps/live-d0c4e2164ec1b8b6)
[INFO] [stdout] test agents::specialists::search::tests::search_circuit_breaker_fires_when_model_loops ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 280 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.60s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test live_factual_review::debug_tavily_raw_observation ... ignored
[INFO] [stdout] test live_factual_review::review_current_uk_pm ... ignored
[INFO] [stdout] test live_factual_review::review_current_us_president ... ignored
[INFO] [stdout] test live_factual_review::review_routing_current_president_goes_to_search ... ignored
[INFO] [stdout] test live_pipeline::live_agent_l_routes_math_to_conversational ... ignored
[INFO] [stdout] test live_pipeline::live_chat_does_not_refuse_conversational_query ... ignored
[INFO] [stdout] test live_pipeline::live_code_project_scope_shows_limitation_message ... ignored
[INFO] [stdout] test live_pipeline::live_code_task_routes_to_code_specialist ... ignored
[INFO] [stdout] test live_pipeline::live_conversational_produces_response ... ignored
[INFO] [stdout] test live_pipeline::live_creative_routes_to_chat_not_factual ... ignored
[INFO] [stdout] test live_pipeline::live_factual_returns_cited_answer ... ignored
[INFO] [stdout] test live_pipeline::live_file_search_routes_to_search_not_code ... ignored
[INFO] [stdout] test live_pipeline::live_local_search_returns_file_paths ... ignored
[INFO] [stdout] test live_pipeline::live_search_does_not_duplicate_sentences ... ignored
[INFO] [stdout] test live_pipeline::live_search_response_includes_url ... ignored
[INFO] [stdout] test live_synthesis_review::review_synthesis_consistent_voice ... ignored
[INFO] [stdout] test live_synthesis_review::review_synthesis_voice_for_factual_query ... ignored
[INFO] [stdout] test live_synthesis_review::review_synthesis_voice_no_raw_tags ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 18 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ollama_integration.rs (/opt/rustwide/target/debug/deps/ollama_integration-20232b1b25d91cf4)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test done_chunk_emits_token_stats ... ok
[INFO] [stdout] test invalid_json_body_sends_parse_error ... ok
[INFO] [stdout] test dropped_receiver_does_not_panic ... ok
[INFO] [stdout] test connection_refused_returns_err ... ok
[INFO] [stdout] test empty_content_field_does_not_send_token ... ok
[INFO] [stdout] test missing_content_field_no_token ... ok
[INFO] [stdout] test http_404_sends_error_token_and_done ... ok
[INFO] [stdout] test http_500_sends_error_token_and_done ... ok
[INFO] [stdout] test empty_messages_vec_ok ... ok
[INFO] [stdout] test single_chunk_produces_token_and_done ... ok
[INFO] [stderr]      Running tests/orchestrator_integration.rs (/opt/rustwide/target/debug/deps/orchestrator_integration-5217c0f5199e3743)
[INFO] [stdout] test request_payload_correct ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test unknown_intent_fallback_returns_plan ... ok
[INFO] [stdout] test multistep_task_with_depends_on ... ok
[INFO] [stdout] test conversational_intent_routes_to_chat ... ok
[INFO] [stdout] test factual_intent_routes_to_search ... ok
[INFO] [stdout] test retry_prompt_embeds_error_from_previous_attempt ... ok
[INFO] [stdout] test over_five_steps_exhausts_retries_and_returns_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.77s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pipeline_integration.rs (/opt/rustwide/target/debug/deps/pipeline_integration-1a78bd36bde8676b)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test chat_plan_streams_response ... ok
[INFO] [stdout] test unknown_specialist_falls_back_to_chat ... ok
[INFO] [stdout] test chat_plan_sends_stream_done ... ok
[INFO] [stdout] test chat_plan_uses_provided_messages ... ok
[INFO] [stdout] test search_only_plan_calls_search_specialist ... ok
[INFO] [stderr]      Running tests/search_integration.rs (/opt/rustwide/target/debug/deps/search_integration-ce2c473946714727)
[INFO] [stdout] test multistep_plan_with_depends_on_runs_all_steps ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.49s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test conversational_query_uses_chat_not_search ... ok
[INFO] [stdout] test local_search_finds_content_in_project_files ... ok
[INFO] [stdout] test search_returns_accurate_answer_from_observation ... ok
[INFO] [stdout] test search_always_calls_ddg_tool ... ok
[INFO] [stdout] test run_plan_search_step_produces_tokens ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/startup_integration.rs (/opt/rustwide/target/debug/deps/startup_integration-43736b9458801d6d)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test model_not_found ... ok
[INFO] [stdout] test tags_empty_models_array ... ok
[INFO] [stdout] test ollama_unreachable ... ok
[INFO] [stdout] test tags_invalid_json ... ok
[INFO] [stdout] test connecting_event_on_each_retry ... ok
[INFO] [stdout] test load_timeout_sends_ready ... ok
[INFO] [stdout] test happy_path_model_already_loaded ... ok
[INFO] [stdout] test model_loads_after_polling ... ok
[INFO] [stdout] test tags_null_models_field ... ok
[INFO] [stdout] test tags_returns_500 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.74s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/synthesis_integration.rs (/opt/rustwide/target/debug/deps/synthesis_integration-5052ba8ef1267be0)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test short_search_output_still_synthesizes ... ok
[INFO] [stdout] test search_result_goes_through_synthesis ... ok
[INFO] [stdout] test raw_search_tokens_do_not_reach_ui ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.15s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests agent_l
[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" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec", kill_on_drop: false }`
[INFO] [stdout] ed1926cf8857e7828da935b8a917e9134fe634ee15d8c254f69aa6d473f90dec
