[INFO] cloning repository https://github.com/PandhuWibowo/anveesa-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/PandhuWibowo/anveesa-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPandhuWibowo%2Fanveesa-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FPandhuWibowo%2Fanveesa-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 325452fe9e0cf21a70cb4043be51f8ad1dfc4a17
[INFO] testing PandhuWibowo/anveesa-cli 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%2FPandhuWibowo%2Fanveesa-cli" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/PandhuWibowo/anveesa-cli
[INFO] finished tweaking git repo https://github.com/PandhuWibowo/anveesa-cli
[INFO] tweaked toml for git repo https://github.com/PandhuWibowo/anveesa-cli written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/PandhuWibowo/anveesa-cli 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/PandhuWibowo/anveesa-cli 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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2
[INFO] running `Command { std: "docker" "start" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", 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" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2" "/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" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", 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" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling compact_str v0.8.2
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling glob v0.3.3
[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 displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling clap_derive v4.6.1
[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 icu_locale_core v2.2.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling anveesa v0.7.12 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 30s
[INFO] running `Command { std: "docker" "inspect" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", 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" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2" "/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 getrandom v0.3.4
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling anveesa v0.7.12 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 25.09s
[INFO] running `Command { std: "docker" "inspect" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", 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" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2" "/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.35s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/anveesa-04c2b93f8e555bb6)
[INFO] [stdout] 
[INFO] [stdout] running 689 tests
[INFO] [stdout] test config::tests::built_in_has_core_providers ... ok
[INFO] [stdout] test config_tests::app_config_built_in_has_providers ... ok
[INFO] [stdout] test config_tests::app_config_built_in_mcp_empty ... ok
[INFO] [stdout] test config_tests::app_config_built_in_has_sumopod_default ... ok
[INFO] [stdout] test config_tests::app_config_clone ... ok
[INFO] [stdout] test config_tests::app_config_built_in_provider_count ... ok
[INFO] [stdout] test config_tests::app_config_debug_contains_provider ... ok
[INFO] [stdout] test config_tests::app_config_empty ... ok
[INFO] [stdout] test config::tests::merge_keeps_existing_default_when_user_omits_it ... ok
[INFO] [stdout] test config_tests::app_config_merge_mcp_servers ... ok
[INFO] [stdout] test config_tests::app_config_merge_preserves_existing_providers ... ok
[INFO] [stdout] test config_tests::app_config_merge_user_adds_providers ... ok
[INFO] [stdout] test config_tests::app_config_merge_user_empty_does_nothing ... ok
[INFO] [stdout] test config_tests::app_config_merge_user_keeps_default_when_omitted ... ok
[INFO] [stdout] test config_tests::app_config_multiple_merges ... ok
[INFO] [stdout] test config_tests::app_config_provider_name_default ... ok
[INFO] [stdout] test config_tests::app_config_provider_name_explicit ... ok
[INFO] [stdout] test config_tests::app_config_provider_name_no_default ... ok
[INFO] [stdout] test config_tests::app_config_merge_user_overrides_default ... ok
[INFO] [stdout] test config_tests::built_in_all_command_providers_have_command ... ok
[INFO] [stdout] test config_tests::app_config_merge_user_overrides_providers ... ok
[INFO] [stdout] test config_tests::built_in_all_openai_providers_have_base_url ... ok
[INFO] [stdout] test config_tests::built_in_claude_code_is_command ... ok
[INFO] [stdout] test config_tests::built_in_codex_is_command ... ok
[INFO] [stdout] test config_tests::built_in_copilot_is_command ... ok
[INFO] [stdout] test config_tests::app_config_serialize_deserialize ... ok
[INFO] [stdout] test config_tests::built_in_gemini_provider ... ok
[INFO] [stdout] test config::tests::merge_overrides_default_and_adds_providers ... ok
[INFO] [stdout] test config_tests::built_in_ollama_no_key_env ... ok
[INFO] [stdout] test config_tests::built_in_local_providers_no_auth ... ok
[INFO] [stdout] test config_tests::built_in_claude_code_command_args ... ok
[INFO] [stdout] test config_tests::built_in_deepseek_provider ... ok
[INFO] [stdout] test config_tests::built_in_openai_has_key_env ... ok
[INFO] [stdout] test config_tests::built_in_provider_extended_thinking_default_none ... ok
[INFO] [stdout] test config_tests::built_in_provider_fast_model_default_none ... ok
[INFO] [stdout] test config_tests::built_in_provider_pricing_default_none ... ok
[INFO] [stdout] test config_tests::command_clone ... ok
[INFO] [stdout] test config_tests::built_in_sumopod_provider_exists ... ok
[INFO] [stdout] test config::tests::sample_config_parses ... ok
[INFO] [stdout] test config_tests::command_full ... ok
[INFO] [stdout] test config_tests::command_minimal ... ok
[INFO] [stdout] test config_tests::command_serialize_roundtrip ... ok
[INFO] [stdout] test config_tests::config_path_in_config_dir ... ok
[INFO] [stdout] test config_tests::config_path_returns_path ... ok
[INFO] [stdout] test config_tests::command_env_map ... ok
[INFO] [stdout] test config_tests::command_debug_output ... ok
[INFO] [stdout] test config_tests::built_in_provider_prompt_cache_default_none ... ok
[INFO] [stdout] test config_tests::built_in_github_models_has_headers ... ok
[INFO] [stdout] test config_tests::command_unicode_command_name ... ok
[INFO] [stdout] test config_tests::mcp_server_config_serialize ... ok
[INFO] [stdout] test config_tests::command_empty_args ... ok
[INFO] [stdout] test config_tests::mcp_server_config_clone ... ok
[INFO] [stdout] test config_tests::mcp_server_env_multiple ... ok
[INFO] [stdout] test config_tests::mcp_server_config_serialize_roundtrip ... ok
[INFO] [stdout] test config_tests::mcp_server_config_debug ... ok
[INFO] [stdout] test config_tests::mcp_server_config_full ... ok
[INFO] [stdout] test config_tests::mcp_server_config_minimal ... ok
[INFO] [stdout] test config_tests::mcp_unicode_env_key ... ok
[INFO] [stdout] test config_tests::openai_all_fields_set ... ok
[INFO] [stdout] test config_tests::openai_debug_output_contains_url ... ok
[INFO] [stdout] test config_tests::openai_clone_works ... ok
[INFO] [stdout] test config_tests::openai_empty_base_url_is_valid ... ok
[INFO] [stdout] test config_tests::openai_headers_multiple ... ok
[INFO] [stdout] test config_tests::openai_pricing_default_none ... ok
[INFO] [stdout] test config_tests::openai_minimal_has_correct_fields ... ok
[INFO] [stdout] test config_tests::openai_extended_thinking_budget ... ok
[INFO] [stdout] test config_tests::openai_serialize_roundtrip ... ok
[INFO] [stdout] test config_tests::openai_unicode_model_name ... ok
[INFO] [stdout] test config_tests::provider_config_clone_openai ... ok
[INFO] [stdout] test config_tests::full_config_toml_roundtrip ... ok
[INFO] [stdout] test config_tests::provider_config_clone_command ... ok
[INFO] [stdout] test config_tests::provider_config_no_default_model ... ok
[INFO] [stdout] test config_tests::openai_max_tokens_set ... ok
[INFO] [stdout] test config_tests::provider_config_openai_kind ... ok
[INFO] [stdout] test config_tests::provider_config_serialize_command ... ok
[INFO] [stdout] test config_tests::provider_config_debug_openai ... ok
[INFO] [stdout] test config_tests::provider_config_set_default_model_command ... ok
[INFO] [stdout] test config_tests::provider_config_set_default_model_openai ... ok
[INFO] [stdout] test config_tests::provider_config_set_model_overwrites ... ok
[INFO] [stdout] test config_tests::provider_config_toml_serialize_openai ... ok
[INFO] [stdout] test config_tests::provider_config_toml_serialize_command ... ok
[INFO] [stdout] test config_tests::openai_prompt_cache_enabled ... ok
[INFO] [stdout] test config_tests::provider_config_command_kind ... ok
[INFO] [stdout] test display::tests::format_duration_millis ... ok
[INFO] [stdout] test display::tests::format_duration_seconds ... ok
[INFO] [stdout] test display::tests::format_elapsed_minutes ... ok
[INFO] [stdout] test config_tests::sample_config_is_valid_toml ... ok
[INFO] [stdout] test config_tests::sample_config_github_headers ... ok
[INFO] [stdout] test display::tests::format_elapsed_sub_minute ... ok
[INFO] [stdout] test config_tests::sample_config_has_default_provider ... ok
[INFO] [stdout] test config_tests::sample_config_command_providers_count ... ok
[INFO] [stdout] test display::tests::truncate_for_status_exact_limit ... ok
[INFO] [stdout] test display::tests::truncate_for_status_short ... ok
[INFO] [stdout] test display::tests::truncate_for_status_over_limit ... ok
[INFO] [stdout] test image::tests::detects_image_mime_from_path ... ok
[INFO] [stdout] test image::tests::parses_attach_commands ... ok
[INFO] [stdout] test image_tests::image_fingerprint_basic ... ok
[INFO] [stdout] test image_tests::image_fingerprint_64_bytes_exact ... ok
[INFO] [stdout] test image_tests::image_fingerprint_empty_data ... ok
[INFO] [stdout] test image_tests::image_fingerprint_long_data ... ok
[INFO] [stdout] test image_tests::image_fingerprint_max_data ... ok
[INFO] [stdout] test image_tests::image_fingerprint_different_mime_same_data ... ok
[INFO] [stdout] test image_tests::image_mime_bmp ... ok
[INFO] [stdout] test config_tests::sample_config_has_command_providers ... ok
[INFO] [stdout] test image_tests::image_fingerprint_unicode_data ... ok
[INFO] [stdout] test image_tests::image_mime_empty_path ... ok
[INFO] [stdout] test image_tests::image_mime_gif ... ok
[INFO] [stdout] test config_tests::sample_config_claude_code_args ... ok
[INFO] [stdout] test image_tests::image_mime_hidden_file ... ok
[INFO] [stdout] test image_tests::image_mime_for_path_with_dot_in_name ... ok
[INFO] [stdout] test image_tests::image_mime_jpeg ... ok
[INFO] [stdout] test image_tests::image_mime_jpg ... ok
[INFO] [stdout] test image_tests::image_mime_mixed_case ... ok
[INFO] [stdout] test image_tests::image_mime_no_ext ... ok
[INFO] [stdout] test image_tests::image_mime_pdf ... ok
[INFO] [stdout] test image_tests::image_mime_png ... ok
[INFO] [stdout] test image_tests::image_mime_nested_path ... ok
[INFO] [stdout] test image_tests::image_mime_tiff ... ok
[INFO] [stdout] test image_tests::image_mime_txt ... ok
[INFO] [stdout] test image_tests::image_mime_uppercase_ext ... ok
[INFO] [stdout] test image_tests::image_mime_webp ... ok
[INFO] [stdout] test config_tests::sample_config_openai_providers_count ... ok
[INFO] [stdout] test image_tests::parse_attach_command_empty_after_space ... ok
[INFO] [stdout] test image_tests::parse_attach_command_multiple_spaces ... ok
[INFO] [stdout] test image_tests::parse_attach_command_no_space ... ok
[INFO] [stdout] test image_tests::parse_attach_command_not_command ... ok
[INFO] [stdout] test image_tests::parse_attach_command_path_only ... ok
[INFO] [stdout] test image_tests::parse_attach_command_partial_match ... ok
[INFO] [stdout] test image_tests::parse_attach_command_single_quoted ... ok
[INFO] [stdout] test image_tests::parse_attach_command_slash_attach ... ok
[INFO] [stdout] test image_tests::parse_attach_command_slash_image ... ok
[INFO] [stdout] test image_tests::parse_attach_command_slash_img ... ok
[INFO] [stdout] test image_tests::parse_attach_command_tabs ... ok
[INFO] [stdout] test image_tests::parse_attach_command_with_path ... ok
[INFO] [stdout] test image_tests::parse_attach_command_with_path_and_spaces ... ok
[INFO] [stdout] test image_tests::parse_attach_command_with_quoted_path ... ok
[INFO] [stdout] test image_tests::unquote_path_double_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_empty ... ok
[INFO] [stdout] test image_tests::unquote_path_leading_quote_only ... ok
[INFO] [stdout] test image_tests::unquote_path_mismatched_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_nested_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_no_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_only_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_one_char ... ok
[INFO] [stdout] test image_tests::unquote_path_spaces ... ok
[INFO] [stdout] test image_tests::unquote_path_trailing_quote_only ... ok
[INFO] [stdout] test image_tests::unquote_path_single_only_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_two_chars_same_quote ... ok
[INFO] [stdout] test image_tests::unquote_path_with_spaces_inside ... ok
[INFO] [stdout] test image_tests::unquote_path_single_quotes ... ok
[INFO] [stdout] test image_tests::unquote_path_with_unicode ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_empty_schema ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_long_description ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_complex_schema ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_basic ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_unicode_in_name ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_clone ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_empty_description ... ok
[INFO] [stdout] test mcp_tests::mcp_to_definition_server_name_in_description ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_construct ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_nested_schema ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_empty_server_name ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_server_with_dashes ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_debug ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_server_with_dots ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_special_chars_in_server ... ok
[INFO] [stdout] test image_tests::image_fingerprint_short_data ... ok
[INFO] [stdout] test permissions::tests::exact_rule_matches_only_exact ... ok
[INFO] [stdout] test permissions::tests::load_rules_missing_file_is_empty ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_very_long_name ... ok
[INFO] [stdout] test permissions::tests::derive_rule_for_run_command_uses_program_prefix ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_schema_with_defaults ... ok
[INFO] [stdout] test permissions::tests::primary_arg_extracts_command_and_path ... ok
[INFO] [stdout] test mcp_tests::mcp_tool_special_chars_in_description ... ok
[INFO] [stdout] test prompt::tests::pasted_input_screen_rows_accounts_for_prompt_and_wrapping ... ok
[INFO] [stdout] test permissions::tests::star_rule_is_prefix_match ... ok
[INFO] [stdout] test image_tests::image_fingerprint_prefix_is_64_chars ... ok
[INFO] [stdout] test prompt::tests::pasted_text_placeholder_does_not_look_like_a_prompt ... ok
[INFO] [stdout] test prompt::tests::prompt_buffer_hidden_paste_preserves_full_text ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_at_segment_boundary ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_empty ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_hidden_unicode_display ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_segments ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_moved ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_unicode ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_simple ... ok
[INFO] [stdout] test prompt_tests::display_cursor_char_with_hidden ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_cursor_at_zero ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_default ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_is_not_empty_after_push ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_cursor_past_end ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_is_empty ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_rebuild_flat ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_multiple_pushes ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_segments_count ... ok
[INFO] [stdout] test prompt_tests::prompt_buffer_multiple_hidden ... ok
[INFO] [stdout] test prompt_tests::prompt_segment_hidden ... ok
[INFO] [stdout] test prompt_tests::prompt_segment_visible ... ok
[INFO] [stdout] test prompt_tests::push_hidden_changes_display ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_empty ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_then_cursor_back ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_unicode ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_then_more_text ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_after_text ... ok
[INFO] [stdout] test prompt_tests::push_hidden_paste_basic ... ok
[INFO] [stdout] test permissions::tests::save_and_load_roundtrip_preserves_other_keys ... ok
[INFO] [stdout] test prompt_tests::push_text_after_cursor_move ... ok
[INFO] [stdout] test prompt_tests::push_text_at_end ... ok
[INFO] [stdout] test prompt_tests::push_text_backspace_simulation ... ok
[INFO] [stdout] test prompt_tests::push_text_empty ... ok
[INFO] [stdout] test prompt_tests::push_text_multiple_unicode ... ok
[INFO] [stdout] test prompt_tests::push_text_newlines ... ok
[INFO] [stdout] test prompt_tests::push_text_preserves_display ... ok
[INFO] [stdout] test prompt_tests::push_text_null_bytes ... ok
[INFO] [stdout] test prompt_tests::push_text_at_start ... ok
[INFO] [stdout] test prompt_tests::push_text_many_segments ... ok
[INFO] [stdout] test prompt_tests::push_text_repeated_unicode ... ok
[INFO] [stdout] test prompt_tests::push_text_special_chars ... ok
[INFO] [stdout] test prompt_tests::push_text_tab ... ok
[INFO] [stdout] test permissions::tests::malformed_rules_never_match ... ok
[INFO] [stdout] test prompt_tests::push_text_then_hidden_then_text ... ok
[INFO] [stdout] test prompt_tests::push_text_twice ... ok
[INFO] [stdout] test prompt_tests::push_text_unicode ... ok
[INFO] [stdout] test provider::command::tests::expands_model_args_with_model ... ok
[INFO] [stdout] test provider::command::tests::omits_model_args_without_model ... ok
[INFO] [stdout] test provider::command::tests::plain_prompt_when_no_context ... ok
[INFO] [stdout] test prompt_tests::push_text_simple ... ok
[INFO] [stdout] test provider::command::tests::prepends_history_and_context ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::apply_chunk_handles_empty_choices_array ... ok
[INFO] [stdout] test permissions::tests::path_star_rule_matches_directory ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::apply_chunk_handles_finish_reason_stop ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::apply_chunk_handles_missing_choices ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::apply_chunk_handles_null_delta ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::apply_chunk_handles_content_only_no_tool_calls ... ok
[INFO] [stdout] test prompt_tests::push_text_very_long ... ok
[INFO] [stdout] test prompt_tests::push_text_with_cursor_in_middle ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_chmod_777 ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::assistant_tool_message_filters_empty_names ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_dd ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_allows_safe_commands ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_dev_sda ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_fork_bomb ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_mkfs ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_pipe_to_shell ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_rm_rf_root ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::denied_message_format ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_adds_context_hint ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_blocks_wget_pipe_bash ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::dangerous_command_returns_none_for_invalid_json ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_adds_rate_limit_hint ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_adds_model_hint ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_falls_back_to_raw_body ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_multiline_takes_first_line ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_no_hint_for_unknown_error ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_parses_json_error ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_anthropic_message_delta_with_usage ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_anthropic_message_stop ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_strips_litellm_prefix ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::extract_api_error_truncates_long_errors ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_anthropic_text_delta ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_emoji_in_content ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_anthropic_thinking_delta ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_multiple_tool_calls ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_malformed_json ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_tool_call_only_chunks ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_truncated_data ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_handles_unicode_content ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_stops_after_done ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::is_anthropic_url_rejects_non_anthropic ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_result_status_pub_matches_internal ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_round_limit_handles_empty_string ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_round_limit_handles_only_spaces ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_round_limit_clamps_to_hard_max ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_round_limit_handles_whitespace ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::is_anthropic_url_detects_anthropic ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_tool_round_limit_rejects_zero_and_negative ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_usage_anthropic_format ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::tool_intent_reprompt_asks_to_use_tools ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_usage_returns_none_for_invalid ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::unfinished_tool_intent_rejects_long_responses ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::ingest_line_ignores_non_sse_lines ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::unfinished_tool_intent_rejects_without_intent_words ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::unfinished_tool_intent_requires_ending_punctuation ... ok
[INFO] [stdout] test provider::openai_compatible::tests::accumulates_content_tokens ... ok
[INFO] [stdout] test provider::openai_compatible::tests::detects_parameter_errors ... ok
[INFO] [stdout] test provider::openai_compatible::tests::detects_unfinished_tool_intent ... ok
[INFO] [stdout] test provider::openai_compatible::tests::captures_finish_reason_from_final_chunk ... ok
[INFO] [stdout] test provider::openai_compatible::tests::ignores_empty_content_delta ... ok
[INFO] [stdout] test provider::openai_compatible::tests::ingest_line_handles_sse_framing ... ok
[INFO] [stdout] test provider::openai_compatible::tests::length_continuation_message_asks_to_resume_without_repeating ... ok
[INFO] [stdout] test provider::openai_compatible::tests::merges_fragmented_tool_call_deltas ... ok
[INFO] [stdout] test provider::openai_compatible::tests::parses_tool_round_limit ... ok
[INFO] [stdout] test provider::openai_compatible::tests::parses_tool_result_status ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_allow_for_turn_eq ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_allow_once_eq ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_clone ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_copy ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_debug ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_deny_eq ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_ne ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_all_variants ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_allow_allows_write_tools ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_allow_eq ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_clone ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_copy ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_debug ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_deny_eq ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_deny_no_write_tools ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_ne ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_prompt_allows_write_tools ... ok
[INFO] [stdout] test provider_mod_tests::approval_policy_prompt_eq ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_assistant ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_clone ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_debug ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_usage_defaults_to_zero ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::parse_usage_openai_format ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_deserialize_user ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_deserialize_assistant ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_empty ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_null_byte ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_multiline ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_long_content ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_partial_eq_different_content ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_partial_eq_different_role ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_serialize_assistant ... ok
[INFO] [stdout] test provider::openai_compatible::tests::parses_usage_chunk ... ok
[INFO] [stdout] test provider::openai_compatible::tests::tool_limit_message_forces_final_answer ... ok
[INFO] [stdout] test provider_mod_tests::approval_decision_all_variants ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_serialize_user ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_special_chars ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_all_variants ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_assistant_eq ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_clone ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_debug ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_deserialize ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_user_eq ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_user_ne_assistant ... ok
[INFO] [stdout] test provider_mod_tests::diff_kind_add_eq ... ok
[INFO] [stdout] test provider_mod_tests::diff_kind_debug_add ... ok
[INFO] [stdout] test provider_mod_tests::diff_kind_debug_remove ... ok
[INFO] [stdout] test provider_mod_tests::diff_kind_ne ... ok
[INFO] [stdout] test provider_mod_tests::diff_kind_remove_eq ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_add ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_unicode ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_partial_eq_same ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_roundtrip ... ok
[INFO] [stdout] test provider_mod_tests::chat_message_user ... ok
[INFO] [stdout] test provider_mod_tests::chat_role_serialize ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_empty_text ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_large_line_no ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_remove ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_debug ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_multiline_text ... ok
[INFO] [stdout] test provider_mod_tests::image_attachment_clone ... ok
[INFO] [stdout] test provider_mod_tests::image_attachment_debug ... ok
[INFO] [stdout] test provider_mod_tests::image_attachment_png ... ok
[INFO] [stdout] test provider_mod_tests::image_attachment_jpeg ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_basic ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_debug ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_clone ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_with_history ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_with_images ... ok
[INFO] [stdout] test provider_mod_tests::prompt_request_with_model ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_debug_token ... ok
[INFO] [stdout] test provider_mod_tests::diff_line_unicode ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_confirm ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_file_op ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_debug_status ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_plan_set_empty ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_plan_task_done ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_plan_task_done_last ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_status ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_thinking ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_token_empty ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_tool_call ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_tool_result_failure ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_plan_set ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_token ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_tool_result_success ... ok
[INFO] [stdout] test provider_mod_tests::tool_confirm_preview_empty_path ... ok
[INFO] [stdout] test provider_mod_tests::stream_event_usage ... ok
[INFO] [stdout] test provider_mod_tests::tool_confirm_preview_file_op ... ok
[INFO] [stdout] test provider_mod_tests::tool_confirm_preview_create_dir ... ok
[INFO] [stdout] test provider_mod_tests::tool_confirm_preview_file_op_truncated ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_clone ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_debug ... ok
[INFO] [stdout] test provider_mod_tests::tool_confirm_preview_generic ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_empty_text_with_model ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_default ... ok
[INFO] [stdout] test provider_mod_tests::usage_cache_read_only ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_with_full_usage ... ok
[INFO] [stdout] test provider_mod_tests::usage_cache_write_only ... ok
[INFO] [stdout] test provider_mod_tests::turn_result_custom ... ok
[INFO] [stdout] test provider_mod_tests::usage_copy ... ok
[INFO] [stdout] test provider_mod_tests::usage_custom ... ok
[INFO] [stdout] test provider_mod_tests::usage_debug ... ok
[INFO] [stdout] test provider_mod_tests::usage_max_values ... ok
[INFO] [stdout] test provider_mod_tests::usage_default ... ok
[INFO] [stdout] test provider_mod_tests::usage_only_completion ... ok
[INFO] [stdout] test session::tests::cwd_hash_differs_for_different_paths ... ok
[INFO] [stdout] test session::tests::cwd_hash_is_16_hex_chars ... ok
[INFO] [stdout] test provider_mod_tests::usage_clone ... ok
[INFO] [stdout] test provider_mod_tests::usage_only_prompt ... ok
[INFO] [stdout] test session::tests::cwd_hash_is_deterministic ... ok
[INFO] [stdout] test session::tests::format_age_hours ... ok
[INFO] [stdout] test session::tests::format_age_minutes ... ok
[INFO] [stdout] test session::tests::format_age_just_now ... ok
[INFO] [stdout] test session::tests::format_age_none_returns_unknown ... ok
[INFO] [stdout] test session::tests::interactive_session_matches_cwd_only ... ok
[INFO] [stdout] test session::tests::format_age_days ... ok
[INFO] [stdout] test session::tests::mismatched_cwd_returns_none ... ok
[INFO] [stdout] test session::tests::purge_removes_unparseable_json_files ... ok
[INFO] [stdout] test session::tests::expired_session_is_deleted_on_load ... ok
[INFO] [stdout] test session::tests::saves_and_loads_interactive_session ... ok
[INFO] [stdout] test session_tests::append_repl_history_appends ... ok
[INFO] [stdout] test session::tests::non_expired_session_loads_normally ... ok
[INFO] [stdout] test session_tests::append_repl_history_empty_prompt ... ok
[INFO] [stdout] test session::tests::purge_removes_old_files_but_keeps_recent_ones ... ok
[INFO] [stdout] test session_tests::append_repl_history_multiline ... ok
[INFO] [stdout] test session_tests::append_repl_history_creates_file ... ok
[INFO] [stdout] test session_tests::append_repl_history_multiple_entries ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_basic ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_consistent ... ok
[INFO] [stdout] test session_tests::append_repl_history_special_chars ... ok
[INFO] [stdout] test session_tests::append_repl_history_quotes ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_current_dir ... ok
[INFO] [stdout] test session_tests::append_repl_history_unicode ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_deeply_nested ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_different_paths ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_empty ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_home_expanded ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_fstab_prefix ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_long_path ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_hidden_dir ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_null_byte ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_root ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_special_chars ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_percent_encoding ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_newlines ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_symlink_not_followed ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_tabs ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_unicode_path ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_url_like ... ok
[INFO] [stdout] test session_tests::format_session_age_1000_days ... ok
[INFO] [stdout] test session_tests::format_session_age_1_day ... ok
[INFO] [stdout] test session_tests::format_session_age_1_minute ... ok
[INFO] [stdout] test session_tests::format_session_age_1_hour ... ok
[INFO] [stdout] test session_tests::format_session_age_23_hours ... ok
[INFO] [stdout] test session_tests::format_session_age_2_days ... ok
[INFO] [stdout] test session_tests::format_session_age_2_hours ... ok
[INFO] [stdout] test session_tests::format_session_age_2_minutes ... ok
[INFO] [stdout] test session_tests::format_session_age_30_minutes ... ok
[INFO] [stdout] test session_tests::format_session_age_30_days ... ok
[INFO] [stdout] test session_tests::format_session_age_30_seconds ... ok
[INFO] [stdout] test session_tests::format_session_age_365_days ... ok
[INFO] [stdout] test session_tests::format_session_age_59_minutes ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_23h ... ok
[INFO] [stdout] test session_tests::format_session_age_59_seconds ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_24h ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_59_min ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_59_sec ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_60_min ... ok
[INFO] [stdout] test session_tests::format_session_age_boundary_60_sec ... ok
[INFO] [stdout] test session_tests::format_session_age_epoch ... ok
[INFO] [stdout] test session_tests::format_session_age_none ... ok
[INFO] [stdout] test session_tests::cwd_session_hash_with_dots ... ok
[INFO] [stdout] test session_tests::format_session_age_future_huge ... ok
[INFO] [stdout] test session_tests::format_session_age_future ... ok
[INFO] [stdout] test session_tests::format_session_age_very_old ... ok
[INFO] [stdout] test session_tests::format_session_age_zero ... ok
[INFO] [stdout] test session_tests::interactive_session_debug ... ok
[INFO] [stdout] test session_tests::interactive_session_deserialize ... ok
[INFO] [stdout] test session_tests::interactive_session_deserialize_no_saved_at ... ok
[INFO] [stdout] test session_tests::interactive_session_empty ... ok
[INFO] [stdout] test session_tests::interactive_session_serialize_null_model ... ok
[INFO] [stdout] test session_tests::interactive_session_roundtrip ... ok
[INFO] [stdout] test session_tests::interactive_session_large_messages ... ok
[INFO] [stdout] test session_tests::interactive_session_serialize ... ok
[INFO] [stdout] test session_tests::interactive_session_serialize_with_system ... ok
[INFO] [stdout] test session_tests::interactive_session_with_both_messages ... ok
[INFO] [stdout] test session_tests::purge_stale_sessions_noop_when_no_dir ... ok
[INFO] [stdout] test tests::build_prompt_joins_parts ... ok
[INFO] [stdout] test session_tests::purge_stale_sessions_safe ... ok
[INFO] [stdout] test tests::one_shot_policy_prompts_only_when_terminal_can_answer ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_multiple_distinct ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_basic ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_idempotent ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_error_on_existing_file ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_nested ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_basic ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_sensitive_blocked ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_bytes_written_accuracy ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_creates_parents ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_unicode_name ... ok
[INFO] [stdout] test tools::scenarios::s10_create_dir_deep_nesting ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_created_flag_semantics ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_empty_content ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_unicode ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_multiline ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_overwrite ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_sensitive_blocked ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_basic_replace ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_error_empty_old_string ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_error_identical_strings ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_error_duplicate_match ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_error_not_found ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_error_missing_file ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_multiline_replacement ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_all_lines ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_preserves_other_content ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_directory_error ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_sensitive_blocked ... ok
[INFO] [stdout] test tools::scenarios::s12_edit_file_unicode_content ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_single_line ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_sensitive_blocked ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_start_and_max ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_max_lines_cap ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_missing_file_error ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_start_beyond_eof ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_unicode_content ... ok
[INFO] [stdout] test tools::scenarios::s13_read_file_start_line ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_both_streams ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_empty_command_error ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_basic_success ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_custom_timeout ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_multiline_output ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_file_operations ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_env_var ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_whitespace_command_error ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_stderr_capture ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_basic ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_pipe ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_error_nonexistent ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_empty_directory ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_error_not_a_directory ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_kinds ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_arithmetic ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_basic ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_invalid_root ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_case_insensitive ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_no_results ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_skips_git ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_kind_field ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_recursive ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_skips_node_modules ... ok
[INFO] [stdout] test tools::scenarios::s14_run_command_exit_codes ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_all_occurrences_in_file ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_basic ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_error_invalid_root ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_error_empty_query ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_case_insensitive ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_no_results ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_multiple_files ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_preview_trimmed ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_sensitive_file_skipped ... ok
[INFO] [stdout] test tools::scenarios::s1_aws_paths ... ok
[INFO] [stdout] test tools::scenarios::s1_credential_files ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_skips_target_dir ... ok
[INFO] [stdout] test tools::scenarios::s1_env_files ... ok
[INFO] [stdout] test tools::scenarios::s1_false_positives_must_pass ... ok
[INFO] [stdout] test tools::scenarios::s1_docker_paths ... ok
[INFO] [stdout] test tools::scenarios::s1_gnupg_paths ... ok
[INFO] [stdout] test tools::scenarios::s1_kube_paths ... ok
[INFO] [stdout] test tools::scenarios::s1_ssh_directory_paths ... ok
[INFO] [stdout] test tools::scenarios::s1_secret_patterns ... ok
[INFO] [stdout] test tools::scenarios::s1_ssh_standalone_key_filenames ... ok
[INFO] [stdout] test tools::scenarios::s1_system_files ... ok
[INFO] [stdout] test tools::scenarios::s2_percent_encode_mixed ... ok
[INFO] [stdout] test tools::scenarios::s2_percent_encode_reserved ... ok
[INFO] [stdout] test tools::scenarios::s2_percent_encode_unreserved ... ok
[INFO] [stdout] test tools::scenarios::s3_truncate_cut ... ok
[INFO] [stdout] test tools::scenarios::s3_truncate_within_limit ... ok
[INFO] [stdout] test tools::scenarios::s4_normalized_query_errors ... ok
[INFO] [stdout] test tools::scenarios::s4_normalized_query_ok ... ok
[INFO] [stdout] test tools::scenarios::s5_skip_name_allowed ... ok
[INFO] [stdout] test tools::scenarios::s5_skip_name_blocked ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_find_files ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_list_dir ... ok
[INFO] [stdout] test tools::scenarios::s3_truncate_unicode_char_boundary ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_read_file ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_search_text ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_unknown_and_plan_tools ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_web_search ... ok
[INFO] [stdout] test tools::scenarios::s6_describe_write_tools ... ok
[INFO] [stdout] test tools::scenarios::s7_is_write_tool ... ok
[INFO] [stdout] test tools::scenarios::s8_cap_output_within_limit ... ok
[INFO] [stdout] test tools::scenarios::s9_definitions ... ok
[INFO] [stdout] test tools::scenarios::s9_guidance ... ok
[INFO] [stdout] test tools::tests::classifies_write_tools ... ok
[INFO] [stdout] test tools::scenarios::s16_find_files_truncation ... ok
[INFO] [stdout] test tools::scenarios::s15_list_dir_truncation ... ok
[INFO] [stdout] test tools::tests::create_dir_creates_nested_directory ... ok
[INFO] [stdout] test tools::tests::describes_calls_for_confirmation ... ok
[INFO] [stdout] test tools::tests::flags_sensitive_paths ... ok
[INFO] [stdout] test tools::tests::percent_encodes_reserved_characters ... ok
[INFO] [stdout] test tools::tests::edit_file_requires_unique_match ... ok
[INFO] [stdout] test tools::tests::guidance_mentions_writes_only_when_enabled ... ok
[INFO] [stdout] test tools::scenarios::s8_cap_output_over_limit ... ok
[INFO] [stdout] test tools::tests::truncates_long_values ... ok
[INFO] [stdout] test tools::tests::write_file_refuses_sensitive_paths ... ok
[INFO] [stdout] test tools::tests::write_then_edit_file ... ok
[INFO] [stdout] test tui::format::tests::prev_next_char_len_ascii ... ok
[INFO] [stdout] test tui::format::tests::prev_next_char_len_boundary ... ok
[INFO] [stdout] test tui::format::tests::wrap_text_fits_width ... ok
[INFO] [stdout] test tui::format::tests::wrap_text_preserves_empty_lines ... ok
[INFO] [stdout] test tools::tests::write_tools_only_when_permitted ... ok
[INFO] [stdout] test tui::format::tests::wrap_text_splits_at_word_boundary ... ok
[INFO] [stdout] test tui::format::tests::wrap_text_zero_width_passthrough ... ok
[INFO] [stdout] test tui::input::tests::no_completion_for_empty_slash ... ok
[INFO] [stdout] test tui::input::tests::provider_completion ... ok
[INFO] [stdout] test tui::input::tests::provider_completion_exact ... ok
[INFO] [stdout] test tui::input::tests::slash_command_completion ... ok
[INFO] [stdout] test tui::render::tests::format_message_user_has_header_body_blank ... ok
[INFO] [stdout] test tui::render::tests::hash_changes_with_focus ... ok
[INFO] [stdout] test tui::render::tests::hash_changes_with_width_and_content ... ok
[INFO] [stdout] test tui::stream::tests::cancel_turn_aborts_task_and_resets_state ... ok
[INFO] [stdout] test tui::stream::tests::cancel_without_active_turn_is_noop ... ok
[INFO] [stdout] test tui::stream::tests::compact_done_skips_when_history_changed ... ok
[INFO] [stdout] test tui::render::tests::hash_changes_when_fileop_collapse_toggles ... ok
[INFO] [stdout] test tui::stream::tests::compact_done_splices_summary_into_history ... ok
[INFO] [stdout] test tui::stream::tests::concurrent_tools_finish_out_of_order ... ok
[INFO] [stdout] test tui::stream::tests::error_mid_stream_commits_pending_tools_as_failed ... ok
[INFO] [stdout] test tui::stream::tests::fileop_records_correct_undo_snapshot ... ok
[INFO] [stdout] test tui::stream::tests::note_with_summary_embeds_it ... ok
[INFO] [stdout] test tui::stream::tests::note_without_summary_is_plain_breadcrumb ... ok
[INFO] [stdout] test tui::stream::tests::stray_events_after_cancel_are_dropped ... ok
[INFO] [stdout] test tui::stream::tests::thinking_flushes_to_collapsed_block_on_first_token ... ok
[INFO] [stdout] test tui::stream::tests::token_events_accumulate_in_streaming_buf ... ok
[INFO] [stdout] test tui::stream::tests::transcript_handles_multibyte_truncation ... ok
[INFO] [stdout] test tui::stream::tests::transcript_labels_roles ... ok
[INFO] [stdout] test tui::stream::tests::transcript_caps_total_size ... ok
[INFO] [stdout] test tui::stream::tests::turn_done_after_error_is_noop ... ok
[INFO] [stdout] test tui::stream::tests::turn_done_finishes_turn_and_saves_history ... ok
[INFO] [stdout] test tui::stream::tests::usage_accumulates_tokens_without_finishing ... ok
[INFO] [stdout] test workspace_tests::directory_entries_all_have_kind ... ok
[INFO] [stdout] test tui::stream::tests::transcript_truncates_long_messages ... ok
[INFO] [stdout] test workspace_tests::directory_entries_dots_first ... ok
[INFO] [stdout] test workspace_tests::directory_entries_empty_string_not_present ... ok
[INFO] [stdout] test workspace_tests::directory_entries_format_dir ... ok
[INFO] [stdout] test workspace_tests::directory_entries_format_file ... ok
[INFO] [stdout] test tools::tests::run_command_reports_failure ... ok
[INFO] [stdout] test workspace_tests::directory_entries_no_git_folder ... ok
[INFO] [stdout] test workspace_tests::directory_entries_nonexistent ... ok
[INFO] [stdout] test workspace_tests::directory_entries_current_dir ... ok
[INFO] [stdout] test workspace_tests::directory_entries_max_40 ... ok
[INFO] [stdout] test workspace_tests::directory_entries_parent_dir ... ok
[INFO] [stdout] test tools::tests::run_command_captures_output ... ok
[INFO] [stdout] test tools::scenarios::s17_search_text_truncation ... ok
[INFO] [stdout] test workspace_tests::directory_entries_sorted ... ok
[INFO] [stdout] test workspace_tests::directory_entries_temp_dir ... ok
[INFO] [stdout] test workspace_tests::directory_entries_src_dir ... ok
[INFO] [stdout] test workspace_tests::git_output_empty_args ... ok
[INFO] [stdout] test workspace_tests::git_output_branch_show_current ... ok
[INFO] [stdout] test workspace_tests::git_output_nonexistent_dir ... ok
[INFO] [stdout] test workspace_tests::git_output_multiple_args ... ok
[INFO] [stdout] test workspace_tests::git_output_returns_trimmed ... ok
[INFO] [stdout] test workspace_tests::git_output_rev_parse_short ... ok
[INFO] [stdout] test workspace_tests::git_output_ls_files ... ok
[INFO] [stdout] test workspace_tests::git_output_log_oneline ... ok
[INFO] [stdout] test workspace_tests::git_output_stderr_not_in_output ... ok
[INFO] [stdout] test workspace_tests::git_output_version ... ok
[INFO] [stdout] test workspace_tests::git_output_with_special_chars_in_path ... ok
[INFO] [stdout] test workspace_tests::git_output_bad_command ... ok
[INFO] [stdout] test workspace_tests::workspace_context_for_root ... ok
[INFO] [stdout] test workspace_tests::git_output_show_short_in_clean_repo ... ok
[INFO] [stdout] test workspace_tests::workspace_context_contains_workspace_header ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_cwd ... ok
[INFO] [stdout] test workspace_tests::workspace_context_for_src_dir ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_header ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_directory_entries ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_parent ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_no_binary_garbage ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_anveesa_md ... ok
[INFO] [stdout] test workspace_tests::workspace_context_has_readme ... ok
[INFO] [stdout] test tools::scenarios::s11_write_file_large_content ... ok
[INFO] [stdout] test workspace_tests::workspace_context_is_string ... ok
[INFO] [stdout] test workspace_tests::workspace_context_cargo_toml ... ok
[INFO] [stdout] test workspace_tests::git_output_show_toplevel_in_git_repo ... FAILED
[INFO] [stdout] test workspace_tests::workspace_context_has_repo_files ... ok
[INFO] [stdout] test workspace_tests::workspace_context_no_panic_on_any_path ... ok
[INFO] [stdout] test workspace_tests::workspace_context_in_git_repo ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::backoff_has_short_delay ... ok
[INFO] [stdout] test workspace_tests::workspace_context_unicode_cwd ... ok
[INFO] [stdout] test workspace_tests::workspace_context_non_git_dir ... ok
[INFO] [stdout] test workspace_tests::workspace_context_recent_commits ... ok
[INFO] [stdout] test workspace_tests::workspace_context_package_json ... ok
[INFO] [stdout] test workspace_tests::workspace_context_readme_capped ... ok
[INFO] [stdout] test workspace_tests::workspace_context_is_deterministic ... ok
[INFO] [stdout] test provider::openai_compatible::openai_compatible_tests::backoff_increases_with_attempt ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- workspace_tests::git_output_show_toplevel_in_git_repo stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'workspace_tests::git_output_show_toplevel_in_git_repo' (2646) panicked at src/workspace_tests.rs:48:5:
[INFO] [stdout] assertion failed: out.as_ref().unwrap().ends_with("anveesa-cli")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d1947a570d1 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d1947a570d1 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d1947a570d1 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d1947a570d1 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d1947a6f76a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d1947a6f76a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5d1947a5c88c - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5d1947a5c88c - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5d1947a315b6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d1947a315b6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d1947a4da69 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d19474cf6f0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5d19474cf6f0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d1947a4dd92 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5d1947a4dd92 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5d1947a31694 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:681:13
[INFO] [stdout]   16:     0x5d1947a283e9 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d1947a325dd - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5d1947a6ff6c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d1947a6ff32 - core[6883ba1bc0fe4ed1]::panicking::panic
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5d194721d1d6 - anveesa[9891a6d77b7c05a2]::workspace_tests::git_output_show_toplevel_in_git_repo
[INFO] [stdout]                                at /opt/rustwide/workdir/src/workspace_tests.rs:48:5
[INFO] [stdout]   21:     0x5d19471f9057 - anveesa[9891a6d77b7c05a2]::workspace_tests::git_output_show_toplevel_in_git_repo::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/workspace_tests.rs:45:42
[INFO] [stdout]   22:     0x5d19472713c6 - <anveesa[9891a6d77b7c05a2]::workspace_tests::git_output_show_toplevel_in_git_repo::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5d19474c2a2b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d19474c2a2b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5d19474d0075 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5d19474d0075 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5d19474d0075 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   28:     0x5d19474d0075 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5d19474d0075 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5d19474d0075 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5d19474d0075 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5d19474cab24 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5d19474cab24 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5d19474d31c2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5d19474d31c2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5d19474d31c2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   37:     0x5d19474d31c2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5d19474d31c2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5d19474d31c2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5d19474d31c2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5d1947a5603f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   42:     0x5d1947a5603f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   43:     0x7914af5fdaa4 - <unknown>
[INFO] [stdout]   44:     0x7914af68aa64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     workspace_tests::git_output_show_toplevel_in_git_repo
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 688 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2", kill_on_drop: false }`
[INFO] [stdout] 30a9013f4c524372582296287807caee1cd12beea62ea05ea6a42a24e13631c2
