[INFO] fetching crate vtcode-commons 0.171.5...
[INFO] testing vtcode-commons-0.171.5 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate vtcode-commons 0.171.5 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate vtcode-commons 0.171.5
[INFO] finished tweaking crates.io crate vtcode-commons 0.171.5
[INFO] tweaked toml for crates.io crate vtcode-commons 0.171.5 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate vtcode-commons 0.171.5 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate vtcode-commons 0.171.5 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:198:12
[INFO] [stderr]     |
[INFO] [stderr] 198 | homepage = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 203 | repository = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |              ----------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `vtcode-commons` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183
[INFO] running `Command { std: "docker" "start" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", 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" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", 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" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:198:12
[INFO] [stderr]     |
[INFO] [stderr] 198 | homepage = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 203 | repository = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |              ----------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `vtcode-commons` (manifest) generated 1 warning
[INFO] [stderr]    Compiling smallvec v1.16.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling rustls v0.23.42
[INFO] [stderr]    Compiling bstr v1.13.0
[INFO] [stderr]    Compiling twox-hash v2.1.3
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling similar v3.2.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling chacha20 v0.10.2
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling ruzstd v0.9.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling rand v0.10.3
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling dirs v7.0.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling send_wrapper v0.6.0
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling left-right v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling regex-automata v0.4.18
[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 rustls-webpki v0.103.13
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.21
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling thiserror v2.0.21
[INFO] [stderr]    Compiling globset v0.4.19
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tiktoken v4.1.2
[INFO] [stderr]    Compiling ignore v0.4.33
[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 serde v1.0.229
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling compact_str v0.10.0
[INFO] [stderr]    Compiling vtcode-diff v0.171.5
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.34
[INFO] [stderr]    Compiling futures v0.3.34
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling vtcode-commons v0.171.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.51s
[INFO] running `Command { std: "docker" "inspect" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", 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" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:198:12
[INFO] [stderr]     |
[INFO] [stderr] 198 | homepage = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 203 | repository = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |              ----------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `vtcode-commons` (manifest) generated 1 warning
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling vtcode-commons v0.171.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.14s
[INFO] running `Command { std: "docker" "inspect" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", 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" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:198:12
[INFO] [stderr]     |
[INFO] [stderr] 198 | homepage = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 203 | repository = "https://github.com/vinhnx/vtcode"
[INFO] [stderr]     |              ----------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `vtcode-commons` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.32s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/vtcode-commons/2972fc43b25d44d9/out/vtcode_commons-2972fc43b25d44d9)
[INFO] [stdout] 
[INFO] [stdout] running 375 tests
[INFO] [stdout] test ansi::tests::osc_aborts_on_esc_non_st ... ok
[INFO] [stdout] test ansi::tests::ascii_only_incomplete_sequence_keeps_tail ... ok
[INFO] [stdout] test ansi::tests::csi_respects_parameter_intermediate_final_grammar ... ok
[INFO] [stdout] test ansi::tests::malformed_csi_does_not_consume_following_text ... ok
[INFO] [stdout] test ansi::tests::strips_esc_csi_sequences ... ok
[INFO] [stdout] test ansi::tests::incomplete_sequence_drops_tail ... ok
[INFO] [stdout] test ansi::tests::strips_three_byte_esc_sequences ... ok
[INFO] [stdout] test ansi::tests::strip_ansi_bytes_supports_raw_c1_csi ... ok
[INFO] [stdout] test ansi::tests::utf8_encoded_c1_is_not_reprocessed_as_control ... ok
[INFO] [stdout] test ansi_codes::redraw_tests::osc_payload_format_is_stable ... ok
[INFO] [stdout] test ansi_codes::redraw_tests::terminal_mapping_is_deterministic ... ok
[INFO] [stdout] test ansi_codes::tests::iterm2_profile_switch_uses_proprietary_sequence ... ok
[INFO] [stdout] test ansi::tests::csi_aborts_on_can_and_sub ... ok
[INFO] [stdout] test ansi::tests::strips_dec_private_mode_csi ... ok
[INFO] [stdout] test ansi::tests::strips_wikipedia_osc8_hyperlink_pattern ... ok
[INFO] [stdout] test ansi::tests::strips_wikipedia_sgr_8bit_color_pattern ... ok
[INFO] [stdout] test ansi::tests::strips_wikipedia_sgr_truecolor_pattern ... ok
[INFO] [stdout] test ansi_codes::redraw_tests::notification_sanitization_does_not_split_utf8 ... ok
[INFO] [stdout] test ansi_codes::tests::icon_and_title_payloads_use_distinct_osc_codes ... ok
[INFO] [stdout] test ansi::tests::strips_common_progress_redraw_sequences ... ok
[INFO] [stdout] test ansi::tests::strips_cursor_navigation_sequences ... ok
[INFO] [stdout] test ansi::tests::strip_ansi_bytes_supports_raw_c1_osc_and_st ... ok
[INFO] [stdout] test ansi::tests::csi_aborts_on_esc_then_new_sequence_parses ... ok
[INFO] [stdout] test ansi::tests::strip_removes_ascii_del_control ... ok
[INFO] [stdout] test ansi::tests::incomplete_three_byte_esc_sequence_drops_tail ... ok
[INFO] [stdout] test ansi_codes::tests::redraw_line_formats_expected_sequence ... ok
[INFO] [stdout] test color_policy::tests::no_color_requires_non_empty_value ... ok
[INFO] [stdout] test colors::tests::non_ascii_hex_is_rejected_without_panicking ... ok
[INFO] [stdout] test diff_paths::tests::avoids_false_positive_for_plus_minus_logs ... ok
[INFO] [stdout] test ansi_codes::tests::redraw_prefix_matches_cli_pattern ... ok
[INFO] [stdout] test async_utils::tests::read_exact_uninit_zero_len_returns_empty_vec ... ok
[INFO] [stdout] test diff_paths::tests::avoids_false_positive_for_regular_code ... ok
[INFO] [stdout] test async_utils::tests::read_exact_uninit_round_trips_known_payload ... ok
[INFO] [stdout] test diff_paths::tests::detects_marker_and_apply_patch_header_lines ... ok
[INFO] [stdout] test color256_theme::tests::rgb_to_ansi256_applies_theme_adjustment ... ok
[INFO] [stdout] test color256_theme::tests::non_harmonious_gray_and_cube_reflect ... ok
[INFO] [stdout] test diff_paths::tests::parses_git_diff_path ... ok
[INFO] [stdout] test async_utils::tests::read_exact_uninit_returns_unexpected_eof_on_empty_reader ... ok
[INFO] [stdout] test diff_paths::tests::classifies_apply_patch_content ... ok
[INFO] [stdout] test diff_paths::tests::classifies_git_diff_content ... ok
[INFO] [stdout] test diff_paths::tests::detects_prose_language_hints ... ok
[INFO] [stdout] test async_utils::tests::read_exact_uninit_reads_across_multiple_poll_reads ... ok
[INFO] [stdout] test diff_theme::tests::base_level_detects_ansi256_from_term ... ok
[INFO] [stdout] test diff_theme::tests::base_level_detects_truecolor_from_colorterm ... ok
[INFO] [stdout] test ansi_codes::tests::terminal_title_and_icon_emits_both_sequences_in_order ... ok
[INFO] [stdout] test color256_theme::tests::harmonious_indices_are_identity ... ok
[INFO] [stdout] test diff_paths::tests::detects_diff_add_remove_lines ... ok
[INFO] [stdout] test diff_theme::tests::base_level_falls_back_to_ansi16 ... ok
[INFO] [stdout] test async_utils::tests::read_exact_uninit_returns_unexpected_eof_on_short_read ... ok
[INFO] [stdout] test diff_theme::tests::backgrounds_follow_terminal_capability ... ok
[INFO] [stdout] test diff_theme::tests::dark_del_bg_is_subtle_red_tint ... ok
[INFO] [stdout] test color256_theme::tests::non_harmonious_adjusts_existing_indices ... ok
[INFO] [stdout] test color256_theme::tests::resolve_harmony_precedence_is_env_then_runtime_then_default ... ok
[INFO] [stdout] test diff_theme::tests::non_windows_terminal_keeps_ansi16 ... ok
[INFO] [stdout] test diff_theme::tests::windows_terminal_term_program_promotes_ansi16_to_truecolor ... ok
[INFO] [stdout] test diff_paths::tests::parses_marker_path ... ok
[INFO] [stdout] test diff::tests::legacy_options_struct_literals_remain_supported ... ok
[INFO] [stdout] test diff_paths::tests::parses_hunk_starts ... ok
[INFO] [stdout] test diff_paths::tests::detects_diff_header_lines ... ok
[INFO] [stdout] test editor::tests::parses_hash_location_suffix ... ok
[INFO] [stdout] test editor::tests::hash_ranges_preserve_suffix_but_not_point ... ok
[INFO] [stdout] test diff_theme::tests::dark_add_bg_is_subtle_green_tint ... ok
[INFO] [stdout] test editor::tests::file_urls_are_supported ... ok
[INFO] [stdout] test diff_theme::tests::force_color_keeps_ansi16_when_wt_session_exists ... ok
[INFO] [stdout] test editor::tests::non_file_urls_are_rejected ... ok
[INFO] [stdout] test diff_theme::tests::force_color_keeps_ansi256_when_wt_session_exists ... ok
[INFO] [stdout] test editor::tests::normalizes_hash_location_ranges ... ok
[INFO] [stdout] test diff_theme::tests::light_add_bg_is_subtle_green_tint ... ok
[INFO] [stdout] test diff_theme::tests::light_del_bg_is_subtle_red_tint ... ok
[INFO] [stdout] test diff_theme::tests::wt_session_promotes_ansi16_to_truecolor ... ok
[INFO] [stdout] test error_category::tests::auth_recovery_guidance_non_auth_category_returns_empty ... ok
[INFO] [stdout] test error_category::tests::authentication_errors ... ok
[INFO] [stdout] test error_category::tests::billing_errors_are_resource_exhausted ... ok
[INFO] [stdout] test editor::tests::resolves_relative_paths_against_base ... ok
[INFO] [stdout] test error_category::tests::context_capacity_markers_are_specific ... ok
[INFO] [stdout] test env_lock::tests::restore_var_removes_when_previous_is_none ... ok
[INFO] [stdout] test env_lock::tests::restore_var_restores_previous_value ... ok
[INFO] [stdout] test env_lock::tests::set_and_remove_roundtrip ... ok
[INFO] [stdout] test error_category::tests::context_capacity_markers_cover_gateway_variants ... ok
[INFO] [stdout] test error_category::tests::llm_error_authentication_converts ... ok
[INFO] [stdout] test error_category::tests::llm_error_network_converts ... ok
[INFO] [stdout] test error_category::tests::llm_error_provider_with_status_code ... ok
[INFO] [stdout] test editor::tests::parses_colon_location_suffix ... ok
[INFO] [stdout] test editor::tests::parses_paren_location_suffix ... ok
[INFO] [stdout] test diff_paths::tests::infers_language_hint_from_extension ... ok
[INFO] [stdout] test error_category::tests::display_matches_user_label ... ok
[INFO] [stdout] test error_category::tests::follow_up_stream_failures_are_retryable ... ok
[INFO] [stdout] test error_category::tests::invalid_parameters ... ok
[INFO] [stdout] test error_category::tests::network_errors ... ok
[INFO] [stdout] test error_category::tests::non_retryable_categories ... ok
[INFO] [stdout] test error_category::tests::cancelled_operations ... ok
[INFO] [stdout] test error_category::tests::auth_recovery_guidance_no_credential_mentions_secret_add ... ok
[INFO] [stdout] test error_category::tests::minimax_invalid_response_is_service_unavailable ... ok
[INFO] [stdout] test error_category::tests::auth_recovery_guidance_credential_stored_mentions_overwrite ... ok
[INFO] [stdout] test error_category::tests::patch_format_errors_are_invalid_parameters ... ok
[INFO] [stdout] test error_category::tests::auth_recovery_guidance_managed_auth_provider_mentions_login ... ok
[INFO] [stdout] test editor::tests::bare_percent_encoded_paths_are_decoded ... ok
[INFO] [stdout] test error_category::tests::sandbox_failure ... ok
[INFO] [stdout] test error_category::tests::rate_limit_classified_correctly ... ok
[INFO] [stdout] test error_category::tests::recovery_suggestions_non_empty ... ok
[INFO] [stdout] test error_category::tests::llm_error_rate_limit_converts ... ok
[INFO] [stdout] test error_category::tests::timeout_errors ... ok
[INFO] [stdout] test error_category::tests::retryable_llm_messages ... ok
[INFO] [stdout] test error_category::tests::llm_mistake_detection ... ok
[INFO] [stdout] test error_category::tests::tool_not_found ... ok
[INFO] [stdout] test error_category::tests::non_retryable_llm_messages ... ok
[INFO] [stdout] test error_category::tests::unknown_error_is_execution_error ... ok
[INFO] [stdout] test errors::tests::multi_errors_collect_result_ok ... ok
[INFO] [stdout] test errors::tests::multi_errors_display_empty ... ok
[INFO] [stdout] test error_category::tests::service_unavailable_is_classified ... ok
[INFO] [stdout] test error_category::tests::planning_policy_violation ... ok
[INFO] [stdout] test error_category::tests::policy_violation_takes_priority_over_permission ... ok
[INFO] [stdout] test error_category::tests::permanent_error_detection ... ok
[INFO] [stdout] test error_category::tests::resource_not_found ... ok
[INFO] [stdout] test error_category::tests::retryable_categories ... ok
[INFO] [stdout] test errors::tests::multi_errors_collect_result_err ... ok
[INFO] [stdout] test error_category::tests::user_labels_are_non_empty ... ok
[INFO] [stdout] test error_category::tests::permission_denied ... ok
[INFO] [stdout] test errors::tests::formatter_uses_display ... ok
[INFO] [stdout] test errors::tests::multi_errors_display_multiple ... ok
[INFO] [stdout] test errors::tests::multi_errors_display_single ... ok
[INFO] [stdout] test errors::tests::multi_errors_extend ... ok
[INFO] [stdout] test errors::tests::multi_errors_into_iterator ... ok
[INFO] [stdout] test errors::tests::multi_errors_new_is_empty ... ok
[INFO] [stdout] test errors::tests::multi_errors_from_vec ... ok
[INFO] [stdout] test errors::tests::multi_errors_into_inner ... ok
[INFO] [stdout] test file_input::tests::decoded_base64_size_supports_data_url_prefix ... ok
[INFO] [stdout] test errors::tests::noop_reporter_drops_errors ... ok
[INFO] [stdout] test exclusions::tests::sensitive_file_matching_is_case_insensitive ... ok
[INFO] [stdout] test errors::tests::multi_errors_slice_access ... ok
[INFO] [stdout] test errors::tests::multi_errors_to_anyhow ... ok
[INFO] [stdout] test file_input::tests::max_input_file_bytes_matches_openai_limit ... ok
[INFO] [stdout] test formatting::tests::format_float_display_keeps_plain_floats ... ok
[INFO] [stdout] test formatting::tests::compact_reasoning_text_collapses_blank_runs ... ok
[INFO] [stdout] test formatting::tests::format_float_display_snaps_stepper_artifacts_to_grid ... ok
[INFO] [stdout] test formatting::tests::compact_reasoning_text_preserves_single_paragraph_breaks ... ok
[INFO] [stdout] test formatting::tests::format_float_display_collapses_f32_widening ... ok
[INFO] [stdout] test exclusions::tests::ssh_private_key_basenames_are_sensitive ... ok
[INFO] [stdout] test errors::tests::multi_errors_ok_fails_when_not_empty ... ok
[INFO] [stdout] test formatting::tests::head_tail_truncate_passes_through_when_short ... ok
[INFO] [stdout] test formatting::tests::head_tail_truncate_small_budget_falls_back_to_prefix ... ok
[INFO] [stdout] test formatting::tests::truncate_byte_budget_emoji ... ok
[INFO] [stdout] test formatting::tests::head_tail_truncate_keeps_both_ends ... ok
[INFO] [stdout] test formatting::tests::truncate_byte_budget_cjk_no_panic ... ok
[INFO] [stdout] test formatting::tests::truncate_byte_budget_mixed_ascii_cjk ... ok
[INFO] [stdout] test formatting::tests::truncate_byte_budget_zero ... ok
[INFO] [stdout] test formatting::tests::truncate_within_counts_chars ... ok
[INFO] [stdout] test formatting::tests::truncate_within_reserves_ellipsis_budget ... ok
[INFO] [stdout] test formatting::tests::wrap_shell_command_keeps_screenshot_pipeline_in_full ... ok
[INFO] [stdout] test errors::tests::multi_errors_ok_succeeds_when_empty ... ok
[INFO] [stdout] test file_input::tests::decoded_base64_size_supports_raw_base64 ... ok
[INFO] [stdout] test formatting::tests::truncate_byte_budget_ascii ... ok
[INFO] [stdout] test errors::tests::multi_errors_push_and_len ... ok
[INFO] [stdout] test formatting::tests::wrap_shell_command_splits_overlong_token_at_width ... ok
[INFO] [stdout] test formatting::tests::compact_reasoning_text_strips_leading_trailing_blanks ... ok
[INFO] [stdout] test formatting::tests::wrap_text_words_blank_and_unicode ... ok
[INFO] [stdout] test formatting::tests::compact_reasoning_text_trims_trailing_whitespace ... ok
[INFO] [stdout] test image::tests::only_provider_supported_extensions_count_as_images ... ok
[INFO] [stdout] test image::tests::detect_mime_type_from_data_recognizes_png_magic ... ok
[INFO] [stdout] test image::tests::extension_mime_detection_rejects_formats_providers_refuse ... ok
[INFO] [stdout] test fs::bound_file::tests::bound_read_rejects_parent_final_links_and_traversal ... ok
[INFO] [stdout] test image::tests::only_provider_supported_mimes_pass_the_allowlist ... ok
[INFO] [stdout] test formatting::tests::wrap_shell_command_narrow_continuation_never_overflows ... ok
[INFO] [stdout] test formatting::tests::truncate_path_middle_breaks_at_separator ... ok
[INFO] [stdout] test formatting::tests::truncate_middle_keeps_both_ends ... ok
[INFO] [stdout] test formatting::tests::truncate_text_counts_chars_not_bytes ... ok
[INFO] [stdout] test formatting::tests::wrap_shell_command_breaks_only_at_unquoted_spaces ... ok
[INFO] [stdout] test interjection::buffer::tests::drain_formatted_sanitizes_wraps_and_preserves_order ... ok
[INFO] [stdout] test formatting::tests::wrap_shell_command_with_continuations_marks_wrapped_lines ... ok
[INFO] [stdout] test interjection::events::tests::clear_discards_all ... ok
[INFO] [stdout] test formatting::tests::wrap_text_words_basic_and_continuation_width ... ok
[INFO] [stdout] test interjection::events::tests::clones_share_one_queue ... ok
[INFO] [stdout] test interjection::events::tests::drain_all_empties_in_fifo_order ... ok
[INFO] [stdout] test image::tests::read_image_file_any_path_rejects_svg_and_bmp ... ok
[INFO] [stdout] test interjection::events::tests::push_capped_drops_oldest ... ok
[INFO] [stdout] test interjection::events::tests::drain_matching_none_match_retains_all ... ok
[INFO] [stdout] test interjection::events::tests::drain_matching_on_empty_is_empty ... ok
[INFO] [stdout] test interjection::events::tests::push_capped_under_limit_keeps_all ... ok
[INFO] [stdout] test interjection::events::tests::push_and_len ... ok
[INFO] [stdout] test file_input::tests::read_input_file_any_path_round_trips_bytes ... ok
[INFO] [stdout] test interjection::events::tests::snapshot_reads_without_draining ... ok
[INFO] [stdout] test interjection::format::tests::wraps_in_user_query_with_midturn_note ... ok
[INFO] [stdout] test interner::tests::test_basic_interning ... ok
[INFO] [stdout] test interjection::events::tests::drain_matching_returns_matched_retains_rest_fifo ... ok
[INFO] [stdout] test interjection::format::tests::short_text_untouched ... ok
[INFO] [stdout] test llm::tests::parsed_arguments_recovers_truncated_minimax_markup ... ok
[INFO] [stdout] test llm::tests::parsed_arguments_rejects_incomplete_json ... ok
[INFO] [stdout] test interner::tests::test_bytes_interning ... ok
[INFO] [stdout] test error_category::tests::llm_error_quota_exhaustion_converts ... ok
[INFO] [stdout] test image::tests::read_image_file_any_path_rejects_unsupported_extension ... ok
[INFO] [stdout] test interjection::format::tests::truncates_at_utf8_boundary ... ok
[INFO] [stdout] test lr_map::tests::clear_removes_all ... ok
[INFO] [stdout] test llm::usage_tests::cache_helpers_preserve_unknown_without_metrics ... ok
[INFO] [stdout] test lr_map::tests::overwrite_key ... ok
[INFO] [stdout] test llm::tests::custom_tool_call_exposes_raw_execution_arguments ... ok
[INFO] [stdout] test llm::tests::function_call_serializes_optional_namespace ... ok
[INFO] [stdout] test interner::tests::test_get_id ... ok
[INFO] [stdout] test llm::usage_tests::billable_totals_aggregate_recognized_iterations ... ok
[INFO] [stdout] test llm::usage_tests::billable_totals_fall_back_to_top_level_without_known_iterations ... ok
[INFO] [stdout] test image::tests::read_image_file_returns_encoded_bytes_and_mime ... ok
[INFO] [stdout] test file_input::tests::read_input_file_any_path_rejects_directory ... ok
[INFO] [stdout] test lr_map::tests::insert_and_get ... ok
[INFO] [stdout] test llm::tests::parsed_arguments_accepts_trailing_characters ... ok
[INFO] [stdout] test llm::tests::parsed_arguments_recovers_truncated_json_missing_closing_brace ... ok
[INFO] [stdout] test llm::usage_tests::cache_helpers_fall_back_to_cached_prompt_tokens ... ok
[INFO] [stdout] test llm::tests::parsed_arguments_accepts_code_fenced_json ... ok
[INFO] [stdout] test lr_map::tests::concurrent_reads ... ok
[INFO] [stdout] test image::tests::read_image_file_rejects_oversized_file_before_encoding ... ok
[INFO] [stdout] test llm::tests::llm_error_debug_and_json_redact_provider_secrets ... ok
[INFO] [stdout] test message_metadata::tests::test_compression_status_serde_roundtrip ... ok
[INFO] [stdout] test message_metadata::tests::test_create_llm_response_metadata ... ok
[INFO] [stdout] test message_metadata::tests::test_create_user_metadata ... ok
[INFO] [stdout] test message_metadata::tests::test_intent_id_is_optional_and_serde_compatible ... ok
[INFO] [stdout] test message_metadata::tests::test_mark_compressed ... ok
[INFO] [stdout] test misconfiguration::tests::auth_text_inside_generic_error_is_misconfiguration ... ok
[INFO] [stdout] test misconfiguration::tests::model_vs_file_not_found_boundary ... ok
[INFO] [stdout] test message_metadata::tests::test_set_importance_clamps ... ok
[INFO] [stdout] test misconfiguration::tests::llm_mistakes_are_not_misconfiguration ... ok
[INFO] [stdout] test modal_hints::tests::choose_handling_line_interpolates_object_as_sentence ... ok
[INFO] [stdout] test model_family::tests::test_gpt5_family_detection ... ok
[INFO] [stdout] test modal_hints::tests::approval_hints_share_navigation_prefix_but_differ_by_exit_verb ... ok
[INFO] [stdout] test modal_hints::tests::truncate_modal_text_marks_truncation_with_ellipsis_only_when_shortened ... ok
[INFO] [stdout] test model_family::tests::test_claude_family_detection ... ok
[INFO] [stdout] test misconfiguration::tests::base_url_and_key_env_markers ... ok
[INFO] [stdout] test message_metadata::tests::test_mark_summarized ... ok
[INFO] [stdout] test misconfiguration::tests::guidance_never_echoes_secrets ... ok
[INFO] [stdout] test misconfiguration::tests::mcp_and_sampling_boundaries ... ok
[INFO] [stdout] test modal_hints::tests::model_picker_hints_share_navigation_prefix ... ok
[INFO] [stdout] test paths::tests::expand_tilde_passes_through_relative_paths ... ok
[INFO] [stdout] test model_family::tests::test_opencode_zen_family_detection_preserves_provider ... ok
[INFO] [stdout] test paths::tests::ensures_path_within_workspace_rejects_escape ... ok
[INFO] [stdout] test model_family::tests::test_opencode_go_family_detection_preserves_provider ... ok
[INFO] [stdout] test paths::tests::expand_tilde_resolves_bare_tilde_to_home ... ok
[INFO] [stdout] test misconfiguration::tests::auth_category_is_always_misconfiguration ... ok
[INFO] [stdout] test paths::tests::expand_tilde_passes_through_absolute_paths ... ok
[INFO] [stdout] test paths::tests::expand_tilde_resolves_tilde_slash_prefix ... ok
[INFO] [stdout] test misconfiguration::tests::provider_and_config_markers ... ok
[INFO] [stdout] test misconfiguration::tests::typed_llm_metadata_overrides_generic_provider_text ... ok
[INFO] [stdout] test paths::tests::resolved_check_rejects_lexical_escape ... ok
[INFO] [stdout] test paths::tests::resolves_relative_paths ... ok
[INFO] [stdout] test model_family::tests::test_supports_feature ... ok
[INFO] [stdout] test misconfiguration::tests::misconfiguration_check_is_fail_closed ... ok
[INFO] [stdout] test paths::tests::resolved_check_accepts_missing_tail_components ... ok
[INFO] [stdout] test paths::tests::resolved_check_accepts_symlink_within_workspace ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_fails_closed_for_dangling_symlink ... ok
[INFO] [stdout] test paths::tests::test_canonicalize_existing_file ... ok
[INFO] [stdout] test paths::tests::resolved_check_rejects_symlink_escape ... ok
[INFO] [stdout] test paths::tests::resolved_check_accepts_nested_existing_path ... ok
[INFO] [stdout] test paths::tests::ensures_path_within_workspace_accepts_nested_path ... ok
[INFO] [stdout] test model_family::tests::test_gemini_family_detection ... ok
[INFO] [stdout] test model_family::tests::test_auto_compact_limit_requires_explicit_value ... ok
[INFO] [stdout] test misconfiguration::tests::transient_without_markers_is_not_misconfiguration ... ok
[INFO] [stdout] test paths::tests::test_canonicalize_deeply_missing_path ... ok
[INFO] [stdout] test preview::tests::split_head_tail_preview_with_limit_preserves_total_and_gap ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_preserves_external_paths ... ok
[INFO] [stdout] test preview::tests::condense_text_bytes_respects_utf8_boundaries ... ok
[INFO] [stdout] test preview::tests::pad_to_display_width_handles_wide_chars ... ok
[INFO] [stdout] test preview::tests::hidden_lines_summary_matches_existing_copy ... ok
[INFO] [stdout] test preview::tests::truncate_to_display_width_respects_wide_chars ... ok
[INFO] [stdout] test preview::tests::tail_preview_text_keeps_last_lines_only ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_handles_canonical_workspace_paths ... ok
[INFO] [stdout] test preview::tests::truncate_with_ellipsis_respects_width_budget ... ok
[INFO] [stdout] test paths::tests::test_canonicalize_missing_file ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_resolves_workspace_aliases ... ok
[INFO] [stdout] test paths::tests::resolved_check_rejects_traversal_through_file ... ok
[INFO] [stdout] test preview::tests::split_head_tail_preview_keeps_short_input_intact ... ok
[INFO] [stdout] test preview::tests::split_head_tail_preview_preserves_hidden_count ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_preserves_symlink_escape ... ok
[INFO] [stdout] test paths::tests::workspace_relative_display_uses_workspace_relative_paths ... ok
[INFO] [stdout] test preview::tests::suffix_for_display_width_preserves_tail ... ok
[INFO] [stdout] test reasoning::tests::parseable_levels_match_the_parser_in_both_directions ... ok
[INFO] [stdout] test preview::tests::excerpt_text_lines_builds_head_tail_vectors ... ok
[INFO] [stdout] test reasoning::tests::test_reasoning_effort_parse_and_allowed_values_include_max ... ok
[INFO] [stdout] test reasoning::tests::allowed_levels_are_parseable_levels_without_none ... ok
[INFO] [stdout] test reference::tests::static_paths_exposes_optional_directories ... ok
[INFO] [stdout] test retry::tests::classify_anyhow_network_error ... ok
[INFO] [stdout] test paths::tests::test_canonicalize_missing_file_with_existing_parent ... ok
[INFO] [stdout] test retry::tests::classify_status_auth_not_retryable ... ok
[INFO] [stdout] test retry::tests::classify_status_server_error ... ok
[INFO] [stdout] test retry::tests::decision_for_category_prefers_retry_after ... ok
[INFO] [stdout] test retry::tests::default_policy_allows_two_retries ... ok
[INFO] [stdout] test retry::tests::delay_for_attempt_ignores_non_finite_jitter ... ok
[INFO] [stdout] test retry::tests::delay_for_attempt_clamps_overflowing_backoff_to_max_delay ... ok
[INFO] [stdout] test retry::tests::simple_policy_matches_bit_shift_doubling ... ok
[INFO] [stdout] test reference::tests::memory_telemetry_records_events ... ok
[INFO] [stdout] test runtime_diagnostics::tests::absent_env_flag_is_disabled ... ok
[INFO] [stdout] test runtime_diagnostics::tests::absent_worker_override_uses_default ... ok
[INFO] [stdout] test retry::tests::classify_status_rate_limit ... ok
[INFO] [stdout] test runtime_diagnostics::tests::log_snapshot_is_quiet_when_disabled ... ok
[INFO] [stdout] test sanitizer::tests::load_regex ... ok
[INFO] [stdout] test retry::tests::delay_for_attempt_handles_huge_finite_jitter ... ok
[INFO] [stdout] test runtime_diagnostics::tests::reporter_spawns_outside_ambient_runtime_context ... ok
[INFO] [stdout] test retry::tests::decision_for_category_respects_attempt_budget ... ok
[INFO] [stdout] test runtime_diagnostics::tests::snapshot_reflects_current_runtime ... ok
[INFO] [stdout] test sanitizer::tests::preserves_non_secret_text ... ok
[INFO] [stdout] test sanitizer::tests::redacts_openai_key ... ok
[INFO] [stdout] test sanitizer::tests::preserves_short_values ... ok
[INFO] [stdout] test sanitizer::tests::redacts_aws_access_key ... ok
[INFO] [stdout] test sanitizer::tests::redacts_secrets_split_across_stream_chunks ... ok
[INFO] [stdout] test project::tests::overview_keeps_metadata_only_projects ... ok
[INFO] [stdout] test slug::tests::test_create_slug ... ok
[INFO] [stdout] test slug::tests::test_create_timestamped ... ok
[INFO] [stdout] test slug::tests::test_create_with_prefix ... ok
[INFO] [stdout] test slug::tests::test_is_humanized_codename_detects_generated_names ... ok
[INFO] [stdout] test sanitizer::tests::redacts_bearer_token ... ok
[INFO] [stdout] test slug::tests::test_uniqueness ... ok
[INFO] [stdout] test sanitizer::tests::redacts_multiple_secrets ... ok
[INFO] [stdout] test sanitizer::tests::redacts_password_assignment ... ok
[INFO] [stdout] test task_guard::tests::disarm_lets_task_complete ... ok
[INFO] [stdout] test sanitizer::tests::redacts_api_key_assignment ... ok
[INFO] [stdout] test sanitizer::tests::redacts_token_in_quotes ... ok
[INFO] [stdout] test task_guard::tests::label_defaults_and_debug_render ... ok
[INFO] [stdout] test sanitizer::tests::provider_diagnostic_is_bounded_utf8_safe_and_redacted ... ok
[INFO] [stdout] test terminal_detection::tests::ghostty_helper_matches_term_program_or_term ... ok
[INFO] [stdout] test task_guard::tests::is_finished_distinguishes_completed_and_pending_tasks ... ok
[INFO] [stdout] test terminal_detection::tests::iterm2_profile_paths_stay_under_dynamic_profiles ... ok
[INFO] [stdout] test terminal_detection::tests::iterm2_profile_switch_requires_session_without_tmux_and_installed_profile ... ok
[INFO] [stdout] test terminal_detection::tests::manual_setup_detection_matches_offer_state ... ok
[INFO] [stdout] test terminal_detection::tests::original_iterm2_profile_name_returns_session_profile ... ok
[INFO] [stdout] test terminal_detection::tests::native_multiline_terminals_are_not_offered_setup ... ok
[INFO] [stdout] test terminal_detection::tests::terminal_feature_support_matches_expectations ... ok
[INFO] [stdout] test terminal_detection::tests::original_iterm2_profile_name_skips_shipped_profile ... ok
[INFO] [stdout] test terminal_detection::tests::supported_setup_terminals_are_offered_setup ... ok
[INFO] [stdout] test terminal_detection::tests::terminal_names_match_current_labels ... ok
[INFO] [stdout] test text_fence::tests::unfenced_ranges_exclude_fence_bodies ... ok
[INFO] [stdout] test text_fence::tests::clean_and_dispatchable_name_rules ... ok
[INFO] [stdout] test text_fence::tests::find_unfenced_skips_matches_inside_fences ... ok
[INFO] [stdout] test thread_safety::tests::try_new_returns_some_after_designation_on_same_thread ... ok
[INFO] [stdout] test thread_safety::tests::worker_thread_never_obtains_token ... ok
[INFO] [stdout] test tokens::tests::empty_string_returns_zero ... ok
[INFO] [stdout] test tokens::tests::truncate_zero_returns_empty ... ok
[INFO] [stdout] test ui_protocol::activity::tests::idle_has_no_status_and_is_not_busy_or_stage ... ok
[INFO] [stdout] test ui_protocol::activity::tests::mode_switch_is_locked_for_active_build_recovery_and_blocked_states ... ok
[INFO] [stdout] test utils::tests::readme_excerpt_does_not_split_utf8 ... ok
[INFO] [stdout] test ui_protocol::activity::tests::stages_are_not_busy_but_keep_a_status ... ok
[INFO] [stdout] test validation::tests::non_empty_string_accepts_valid ... ok
[INFO] [stdout] test validation::tests::non_empty_string_deref ... ok
[INFO] [stdout] test validation::tests::non_empty_string_from_owned ... ok
[INFO] [stdout] test validation::tests::non_empty_string_rejects_empty ... ok
[INFO] [stdout] test ui_protocol::activity::tests::transient_handoffs_are_busy_but_not_stages ... ok
[INFO] [stdout] test ui_protocol::types::tests::parses_sparse_summary_section_without_displaying_section_label ... ok
[INFO] [stdout] test ui_protocol::tool_summary::tests::compact_activity_display_includes_single_command_output_count ... ok
[INFO] [stdout] test ui_protocol::tool_summary::tests::compact_activity_display_collapses_grouped_commands ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_reports_conflicts_and_excludes_tmp ... ok
[INFO] [stdout] test preview::tests::summary_window_reserves_gap_row ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_skips_symlinks_and_special_files_without_traversing_them ... ok
[INFO] [stdout] test vtcode_paths::tests::private_file_lock_releases_after_operation ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_copies_user_guidance_and_prompt_configuration_to_config ... ok
[INFO] [stdout] test vtcode_paths::tests::private_file_writer_if_absent_does_not_replace_existing_file ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_copies_legacy_installer_backoff_caches ... ok
[INFO] [stdout] test vtcode_paths::tests::resolver_defaults_are_absolute_and_categories_are_separate ... ok
[INFO] [stdout] test vtcode_paths::tests::resolver_honors_explicit_overrides ... ok
[INFO] [stdout] test vtcode_paths::tests::resolver_ignores_relative_xdg_inputs ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_does_not_trust_legacy_migration_metadata ... ok
[INFO] [stdout] test vtcode_paths::tests::resolver_preserves_xdg_search_order_and_defaults_empty_values ... ok
[INFO] [stdout] test vtcode_paths::tests::system_config_paths_convert_xdg_preference_order_to_layer_order ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_copies_explicit_categories_once_and_preserves_sources ... ok
[INFO] [stdout] test vtcode_paths::tests::runtime_and_auth_storage_are_private ... ok
[INFO] [stdout] test walk::tests::default_walker_respects_vtcodegitignore ... ok
[INFO] [stdout] test walk::tests::default_walker_vtcodegitignore_negation_reincludes ... ok
[INFO] [stdout] test workspace_snapshot::tests::json_round_trips ... ok
[INFO] [stdout] test workspace_snapshot::tests::capture_and_diff_detects_changes ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_copies_pre_xdg_config_root_cache_and_state ... ok
[INFO] [stdout] test validation::tests::test_validate_all_non_empty ... ok
[INFO] [stdout] test reference::tests::memory_error_reporter_captures_messages ... ok
[INFO] [stdout] test vtcode_paths::tests::newly_created_user_directories_are_private_but_existing_modes_are_preserved ... ok
[INFO] [stdout] test vtcode_paths::tests::private_file_writer_rejects_symlink_escape_and_final_symlink ... ok
[INFO] [stdout] test validation::tests::test_validate_non_empty ... ok
[INFO] [stdout] test vtcode_paths::tests::migration_retries_destination_failures_before_writing_marker ... ok
[INFO] [stdout] test vtcode_paths::tests::private_file_lock_serializes_concurrent_operations ... ok
[INFO] [stdout] test task_guard::tests::abort_on_drop_prevents_completion ... ok
[INFO] [stdout] test tokens::tests::count_is_reasonable ... ok
[INFO] [stdout] test tokens::tests::code_and_prose_tokenize ... ok
[INFO] [stdout] test tokens::tests::json_tokenizes ... ok
[INFO] [stdout] test tokens::tests::truncate_respects_limit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 375 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests vtcode_commons
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test src/cgp.rs - cgp (line 10) ... ignored
[INFO] [stdout] test src/cgp.rs - cgp::delegate_components (line 42) ... ignored
[INFO] [stdout] test src/env_lock.rs - env_lock (line 16) - compile ... ok
[INFO] [stdout] test src/formatting.rs - formatting::lowercase_leading_word (line 658) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::wrap_text_words (line 218) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::collapse_whitespace (line 684) ... ok
[INFO] [stdout] test src/errors.rs - errors::MultiErrors (line 143) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::compact_reasoning_text (line 731) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::is_markdown_fence_delimiter (line 636) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::wrap_shell_command (line 358) ... ok
[INFO] [stdout] test src/interner.rs - interner (line 14) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::wrap_shell_command_with_continuations (line 436) ... ok
[INFO] [stdout] test src/thread_safety.rs - thread_safety (line 53) ... ignored
[INFO] [stdout] test src/thread_safety.rs - thread_safety (line 79) ... ignored
[INFO] [stdout] test src/thread_safety.rs - thread_safety (line 96) ... ignored
[INFO] [stdout] test src/thread_safety.rs - thread_safety::RelaxedAtomic<T> (line 264) ... ignored
[INFO] [stdout] test src/walk.rs - walk::is_excluded_dir (line 77) ... ignored
[INFO] [stdout] test src/task_guard.rs - task_guard (line 13) - compile ... ok
[INFO] [stdout] test src/formatting.rs - formatting::head_tail_truncate (line 171) ... ok
[INFO] [stdout] test src/thread_safety.rs - thread_safety (line 34) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::truncate_within (line 62) ... ok
[INFO] [stdout] test src/paths.rs - paths::PathExt (line 567) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::format_float_display (line 584) ... ok
[INFO] [stdout] test src/slug.rs - slug::create_timestamped (line 54) ... ok
[INFO] [stdout] test src/paths.rs - paths::StrPathExt (line 609) ... ok
[INFO] [stdout] test src/thread_safety.rs - thread_safety::RelaxedAtomic (line 177) ... ok
[INFO] [stdout] test src/formatting.rs - formatting::clean_reasoning_text (line 710) ... ok
[INFO] [stdout] test src/thread_safety.rs - thread_safety (line 25) ... ok
[INFO] [stdout] test src/validation.rs - validation::NonEmptyString (line 99) ... ok
[INFO] [stdout] test src/slug.rs - slug::create (line 33) ... ok
[INFO] [stdout] test src/slug.rs - slug::create_with_prefix (line 73) ... ok
[INFO] [stdout] test src/sanitizer.rs - sanitizer::redact_secrets (line 43) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 7 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.34s; merged doctests compilation took 1.26s
[INFO] running `Command { std: "docker" "inspect" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183", kill_on_drop: false }`
[INFO] [stdout] 2b44623a2f63139a0e1bad34db11009ba3961dceda0a1f46a282c740b250c183
