[INFO] cloning repository https://github.com/joshrotenberg/claude-wrapper
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/joshrotenberg/claude-wrapper" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoshrotenberg%2Fclaude-wrapper", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjoshrotenberg%2Fclaude-wrapper'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d3d5c47f8d7f2ada7af094ac3a3501bb88734ce6
[INFO] testing joshrotenberg/claude-wrapper 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%2Fjoshrotenberg%2Fclaude-wrapper" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/joshrotenberg/claude-wrapper
[INFO] removed 0 missing examples
[INFO] finished tweaking git repo https://github.com/joshrotenberg/claude-wrapper
[INFO] tweaked toml for git repo https://github.com/joshrotenberg/claude-wrapper written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/joshrotenberg/claude-wrapper 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/joshrotenberg/claude-wrapper 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-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a
[INFO] running `Command { std: "docker" "start" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", 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" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a" "/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" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", 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" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a" "/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.183
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling which v8.0.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling claude-wrapper v0.13.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.50s
[INFO] running `Command { std: "docker" "inspect" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", 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" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a" "/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 socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling claude-wrapper v0.13.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 49.09s
[INFO] running `Command { std: "docker" "inspect" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", 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" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a" "/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.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/claude_wrapper-7198119a4983c5fb)
[INFO] [stdout] 
[INFO] [stdout] running 483 tests
[INFO] [stdout] test artifacts::tests::delete_rejects_path_traversal ... ok
[INFO] [stdout] test artifacts::tests::empty_value_keys_dont_overwrite_defaults ... ok
[INFO] [stdout] test artifacts::tests::delete_removes_file ... ok
[INFO] [stdout] test artifacts::tests::delete_unknown_stem_errors ... ok
[INFO] [stdout] test artifacts::tests::extra_keys_round_trip_as_strings ... ok
[INFO] [stdout] test artifacts::tests::get_no_frontmatter_returns_full_body ... ok
[INFO] [stdout] test artifacts::tests::get_returns_full_agent_with_body ... ok
[INFO] [stdout] test artifacts::tests::render_orders_canonical_keys_before_extras ... ok
[INFO] [stdout] test artifacts::tests::split_frontmatter_no_block ... ok
[INFO] [stdout] test artifacts::tests::split_frontmatter_open_no_close_returns_full ... ok
[INFO] [stdout] test artifacts::tests::split_frontmatter_with_block ... ok
[INFO] [stdout] test artifacts::tests::get_unknown_id_errors ... ok
[INFO] [stdout] test artifacts::tests::write_creates_new_agent_round_trips_via_get ... ok
[INFO] [stdout] test artifacts::tests::list_missing_root_returns_empty ... ok
[INFO] [stdout] test artifacts::tests::write_defaults_name_to_file_stem_when_absent ... ok
[INFO] [stdout] test artifacts::tests::write_creates_root_directory_if_missing ... ok
[INFO] [stdout] test artifacts::tests::write_omits_optional_keys_when_unset ... ok
[INFO] [stdout] test artifacts::tests::write_rejects_path_traversal ... ok
[INFO] [stdout] test auth::tests::api_key_takes_precedence_over_oauth_token ... ok
[INFO] [stdout] test auth::tests::as_str_matches_serde_repr ... ok
[INFO] [stdout] test artifacts::tests::write_new_succeeds_for_fresh_stem ... ok
[INFO] [stdout] test auth::tests::auth_error_kind_as_str_matches_serde_repr ... ok
[INFO] [stdout] test auth::tests::bedrock_overrides_api_key ... ok
[INFO] [stdout] test auth::tests::bedrock_takes_precedence_over_vertex_when_both_set ... ok
[INFO] [stdout] test auth::tests::classify_does_not_match_auth_in_stdout_only ... ok
[INFO] [stdout] test artifacts::tests::list_no_frontmatter_falls_back_to_stem ... ok
[INFO] [stdout] test auth::tests::classify_examines_stdout_for_specific_patterns ... ok
[INFO] [stdout] test auth::tests::classify_falls_back_to_other_for_bare_auth_mention ... ok
[INFO] [stdout] test auth::tests::classify_invalid_api_key ... ok
[INFO] [stdout] test auth::tests::classify_model_access_403_is_not_auth ... ok
[INFO] [stdout] test auth::tests::classify_model_not_found_is_not_auth ... ok
[INFO] [stdout] test artifacts::tests::write_preserves_extra_keys ... ok
[INFO] [stdout] test auth::tests::classify_not_authenticated_from_stderr_hint ... ok
[INFO] [stdout] test artifacts::tests::write_new_errors_when_already_exists ... ok
[INFO] [stdout] test auth::tests::classify_not_logged_in_bare_is_not_authenticated ... ok
[INFO] [stdout] test artifacts::tests::write_overwrites_existing_agent ... ok
[INFO] [stdout] test artifacts::tests::list_typed_metadata ... ok
[INFO] [stdout] test auth::tests::classify_rate_limit_takes_precedence_over_invalid_creds ... ok
[INFO] [stdout] test auth::tests::empty_string_does_not_count_as_set ... ok
[INFO] [stdout] test auth::tests::classify_provider_error_when_bedrock_plus_auth_signal ... ok
[INFO] [stdout] test auth::tests::classify_returns_none_for_unrelated_failure ... ok
[INFO] [stdout] test auth::tests::classify_expired_session ... ok
[INFO] [stdout] test auth::tests::empty_env_is_subscription ... ok
[INFO] [stdout] test auth::tests::falsy_values_recognized ... ok
[INFO] [stdout] test auth::tests::oauth_token_alone_picks_oauth ... ok
[INFO] [stdout] test auth::tests::explicit_falsy_disables_provider_flag ... ok
[INFO] [stdout] test auth::tests::truthy_values_recognized ... ok
[INFO] [stdout] test budget::tests::check_errors_once_over_max ... ok
[INFO] [stdout] test budget::tests::clones_share_state ... ok
[INFO] [stdout] test budget::tests::check_noop_without_max ... ok
[INFO] [stdout] test auth::tests::vertex_overrides_oauth_token ... ok
[INFO] [stdout] test budget::tests::concurrent_record_preserves_total ... ok
[INFO] [stdout] test budget::tests::exceeded_callback_fires_once_at_threshold ... ok
[INFO] [stdout] test budget::tests::record_accumulates ... ok
[INFO] [stdout] test budget::tests::record_ignores_non_positive_and_non_finite ... ok
[INFO] [stdout] test budget::tests::remaining_usd_clamps_at_zero ... ok
[INFO] [stdout] test budget::tests::warn_callback_fires_once_at_threshold ... ok
[INFO] [stdout] test budget::tests::remaining_usd_none_without_max ... ok
[INFO] [stdout] test budget::tests::reset_clears_total_and_rearms_callbacks ... ok
[INFO] [stdout] test command::agents::tests::test_agents_default ... ok
[INFO] [stdout] test command::agents::tests::test_agents_with_sources ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_console_with_email ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_default ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_with_email ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_with_force_sso ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_deprecated_sso_emits_boolean_only ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_with_mode_claudeai ... ok
[INFO] [stdout] test command::auth::tests::test_auth_login_with_mode_console ... ok
[INFO] [stdout] test command::auth::tests::test_auth_logout ... ok
[INFO] [stdout] test command::auth::tests::test_auth_status_args ... ok
[INFO] [stdout] test command::auth::tests::test_setup_token ... ok
[INFO] [stdout] test command::auth::tests::test_auth_status_text ... ok
[INFO] [stdout] test command::auto_mode::tests::critique_command_defaults_omit_model ... ok
[INFO] [stdout] test command::install::tests::install_command_defaults ... ok
[INFO] [stdout] test command::install::tests::install_command_with_target_and_force ... ok
[INFO] [stdout] test command::auto_mode::tests::config_command_args ... ok
[INFO] [stdout] test command::auto_mode::tests::critique_command_with_model ... ok
[INFO] [stdout] test command::auto_mode::tests::defaults_command_args ... ok
[INFO] [stdout] test command::doctor::tests::test_doctor_args ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_add ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_add_sparse ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_list ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_remove ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_json_client_secret ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_from_desktop ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_http ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_json_basic ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_update_all ... ok
[INFO] [stdout] test command::marketplace::tests::test_marketplace_update_specific ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_json_no_client_secret_by_default ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_oauth_flags ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_add_stdio_with_env ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_get_args ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_list_args ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_login_args ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_reset_project_choices ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_logout_args ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_login_no_browser ... ok
[INFO] [stdout] test command::plugin::tests::plugin_tag_defaults_to_just_subcommand ... ok
[INFO] [stdout] test command::plugin::tests::plugin_tag_with_all_options ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_disable_specific ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_details ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_remove_args ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_disable_all ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_list ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_enable ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_serve_default ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_prune_all_flags ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_uninstall ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_uninstall_with_all_flags ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_uninstall_yes_alone ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_validate ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_update ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_prune_default ... ok
[INFO] [stdout] test command::plugin::tests::test_scope_managed_renders_as_arg ... ok
[INFO] [stdout] test command::project::tests::purge_all_emits_flag ... ok
[INFO] [stdout] test artifacts::tests::list_returns_only_md_files_sorted ... ok
[INFO] [stdout] test command::project::tests::purge_defaults_to_bare_subcommand ... ok
[INFO] [stdout] test command::project::tests::purge_with_path_passes_positional ... ok
[INFO] [stdout] test command::project::tests::purge_dry_run_with_yes_is_safe_preview ... ok
[INFO] [stdout] test command::query::tests::build_args_with_forced_json_inserts_flag_before_separator ... ok
[INFO] [stdout] test command::project::tests::purge_path_lands_last_so_positional_is_unambiguous ... ok
[INFO] [stdout] test command::query::tests::disallowed_tool_singular_appends ... ok
[INFO] [stdout] test command::query::tests::mixed_string_and_typed_patterns_both_accepted ... ok
[INFO] [stdout] test command::query::tests::name_flag_renders_with_value ... ok
[INFO] [stdout] test command::query::tests::from_pr_flag_renders_with_value ... ok
[INFO] [stdout] test command::query::tests::build_args_with_forced_json_respects_explicit_format ... ok
[INFO] [stdout] test command::query::tests::new_bool_flags_emit_correct_cli_args ... ok
[INFO] [stdout] test command::query::tests::new_bool_flags_default_to_off ... ok
[INFO] [stdout] test command::query::tests::prompt_suggestions_absent_by_default_and_when_false ... ok
[INFO] [stdout] test command::query::tests::prompt_via_stdin_integration ... ignored, requires a real claude binary
[INFO] [stdout] test command::query::tests::prompt_via_stdin_omits_prompt_from_args ... ok
[INFO] [stdout] test command::query::tests::prompt_suggestions_flag_emitted_when_set ... ok
[INFO] [stdout] test command::query::tests::prompt_via_stdin_false_keeps_prompt_in_args ... ok
[INFO] [stdout] test command::query::tests::shell_quote_metacharacters_get_quoted ... ok
[INFO] [stdout] test command::query::tests::shell_quote_double_quote_gets_single_quoted ... ok
[INFO] [stdout] test command::query::tests::replay_user_messages_flag_emitted_when_set ... ok
[INFO] [stdout] test command::query::tests::replay_user_messages_absent_by_default_and_when_false ... ok
[INFO] [stdout] test command::query::tests::shell_quote_whitespace_gets_single_quoted ... ok
[INFO] [stdout] test command::query::tests::test_basic_query_args ... ok
[INFO] [stdout] test command::query::tests::shell_quote_plain_word_is_unchanged ... ok
[INFO] [stdout] test command::query::tests::shell_quote_embedded_single_quote_is_escaped ... ok
[INFO] [stdout] test command::query::tests::test_betas ... ok
[INFO] [stdout] test command::project::tests::purge_all_flags ... ok
[INFO] [stdout] test command::query::tests::test_debug_file ... ok
[INFO] [stdout] test command::query::tests::test_full_query_args ... ok
[INFO] [stdout] test command::query::tests::test_brief_flag ... ok
[INFO] [stdout] test command::query::tests::test_plugin_dir_multiple ... ok
[INFO] [stdout] test command::mcp::tests::test_mcp_serve_with_flags ... ok
[INFO] [stdout] test command::plugin::tests::test_plugin_install ... ok
[INFO] [stdout] test command::query::tests::test_debug_filter ... ok
[INFO] [stdout] test command::query::tests::test_plugin_dir_single ... ok
[INFO] [stdout] test command::query::tests::test_plugin_url_multiple ... ok
[INFO] [stdout] test command::query::tests::test_plugin_url_single ... ok
[INFO] [stdout] test command::query::tests::test_safe_mode_absent_by_default ... ok
[INFO] [stdout] test command::query::tests::test_safe_mode_flag ... ok
[INFO] [stdout] test command::query::tests::test_separator_before_prompt_prevents_greedy_flag_parsing ... ok
[INFO] [stdout] test command::query::tests::test_stream_json_includes_verbose ... ok
[INFO] [stdout] test command::query::tests::test_setting_sources ... ok
[INFO] [stdout] test command::query::tests::test_tmux_flag ... ok
[INFO] [stdout] test command::query::tests::test_to_command_string_simple ... ok
[INFO] [stdout] test command::query::tests::test_to_command_string_with_spaces ... ok
[INFO] [stdout] test command::query::tests::test_to_command_string_with_special_chars ... ok
[INFO] [stdout] test command::query::tests::test_to_command_string_with_single_quotes ... ok
[INFO] [stdout] test command::query::tests::test_worktree_flag ... ok
[INFO] [stdout] test command::query::tests::typed_patterns_render_in_allowed_tools ... ok
[INFO] [stdout] test command::query::tests::test_worktree_named ... ok
[INFO] [stdout] test command::query::tests::verbose_not_duplicated_with_stream_json ... ok
[INFO] [stdout] test command::query::tests::verbose_absent_by_default_and_when_false ... ok
[INFO] [stdout] test command::query::tests::verbose_flag_emitted_when_set ... ok
[INFO] [stdout] test command::raw::tests::test_raw_command_args ... ok
[INFO] [stdout] test command::raw::tests::test_raw_command_with_args ... ok
[INFO] [stdout] test command::spawn_args::tests::bare_flags_emit_without_values ... ok
[INFO] [stdout] test command::spawn_args::tests::default_emits_nothing ... ok
[INFO] [stdout] test command::spawn_args::tests::tool_patterns_join_comma_separated ... ok
[INFO] [stdout] test command::spawn_args::tests::worktree_name_follows_flag ... ok
[INFO] [stdout] test command::spawn_args::tests::repeatable_flags_emit_once_per_value ... ok
[INFO] [stdout] test command::ultrareview::tests::ultrareview_target_only ... ok
[INFO] [stdout] test command::version::tests::test_version_args ... ok
[INFO] [stdout] test command::ultrareview::tests::ultrareview_json_only ... ok
[INFO] [stdout] test command::ultrareview::tests::ultrareview_defaults ... ok
[INFO] [stdout] test command::spawn_args::tests::scalar_flags_carry_their_values ... ok
[INFO] [stdout] test command::ultrareview::tests::ultrareview_with_target_json_timeout ... ok
[INFO] [stdout] test command::update::tests::update_command_args ... ok
[INFO] [stdout] test commands::tests::list_missing_root_returns_empty ... ok
[INFO] [stdout] test commands::tests::disable_model_invocation_parses_bool ... ok
[INFO] [stdout] test commands::tests::get_no_frontmatter_returns_full_body ... ok
[INFO] [stdout] test commands::tests::get_unknown_id_errors ... ok
[INFO] [stdout] test conversation::tests::budget_check_blocks_before_send ... ok
[INFO] [stdout] test commands::tests::extras_round_trip ... ok
[INFO] [stdout] test conversation::tests::last_returns_most_recent ... ok
[INFO] [stdout] test conversation::tests::record_accumulates_across_turns ... ok
[INFO] [stdout] test conversation::tests::record_forwards_cost_to_budget ... ok
[INFO] [stdout] test commands::tests::list_returns_only_md_files_sorted ... ok
[INFO] [stdout] test conversation::tests::record_pushes_turn_and_updates_counters ... ok
[INFO] [stdout] test conversation::tests::record_treats_missing_cost_as_zero ... ok
[INFO] [stdout] test commands::tests::list_typed_metadata ... ok
[INFO] [stdout] test dangerous::tests::error_message_names_the_env_var ... ok
[INFO] [stdout] test commands::tests::project_helper_appends_dot_claude_commands ... ok
[INFO] [stdout] test commands::tests::get_returns_full_command_with_body ... ok
[INFO] [stdout] test commands::tests::list_no_frontmatter_parses_clean ... ok
[INFO] [stdout] test dangerous::tests::new_accepts_with_allow_env_set_to_one ... ok
[INFO] [stdout] test dangerous::tests::new_refuses_with_wrong_value ... ok
[INFO] [stdout] test dangerous::tests::new_refuses_without_env ... ok
[INFO] [stdout] test duplex::tests::agent_and_agents_json_compose ... ok
[INFO] [stdout] test duplex::tests::agent_lands_before_additional_args ... ok
[INFO] [stdout] test conversation::tests::session_id_pulled_from_last_turn ... ok
[INFO] [stdout] test duplex::tests::classify_system_init_pulls_session_id ... ok
[INFO] [stdout] test duplex::tests::classify_system_init_without_session_id_is_other ... ok
[INFO] [stdout] test duplex::tests::classify_system_without_init_subtype_is_other ... ok
[INFO] [stdout] test duplex::tests::classify_assistant_stream_event_user ... ok
[INFO] [stdout] test duplex::tests::agents_json_lands_before_additional_args ... ok
[INFO] [stdout] test duplex::tests::classify_unknown_type_is_other ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_broadcasts_classified_event ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_appends_non_result_to_pending_events ... ok
[INFO] [stdout] test duplex::tests::exit_status_reflects_completed ... ok
[INFO] [stdout] test duplex::tests::exit_status_reports_running_initially ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_returns_control_response_action ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_drops_orphans_without_pending_turn ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_returns_permission_for_can_use_tool ... ok
[INFO] [stdout] test duplex::tests::exit_status_reflects_failed_with_message ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_resolves_pending_on_result ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_does_not_broadcast_result ... ok
[INFO] [stdout] test duplex::tests::into_args_emits_plan_mode ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_treats_malformed_control_response_as_other ... ok
[INFO] [stdout] test duplex::tests::handle_inbound_treats_unknown_control_request_as_other ... ok
[INFO] [stdout] test duplex::tests::into_args_appends_raw_args_last ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_agent_when_set ... ok
[INFO] [stdout] test duplex::tests::into_args_default_includes_required_flags ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_continue_when_set ... ok
[INFO] [stdout] test duplex::tests::into_args_does_not_emit_subscriber_capacity_flag ... ok
[INFO] [stdout] test duplex::tests::into_args_emits_dangerously_skip_permissions_flag ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_fallback_model_and_effort ... ok
[INFO] [stdout] test duplex::tests::into_args_emits_permission_mode_flag ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_json_schema ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_agents_json_when_set ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_caps ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_model ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_no_session_persistence ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_permission_prompt_tool_when_handler_set ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_resume_when_set ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_session_id ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_system_prompts ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_worktree_flag_with_name ... ok
[INFO] [stdout] test duplex::tests::into_args_joins_allowed_tools_comma_separated ... ok
[INFO] [stdout] test duplex::tests::into_args_joins_disallowed_tools_comma_separated ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_agents_json_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_agent_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_permission_prompt_tool_without_handler ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_resume_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_worktree_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_dangerously_skip_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_parity_flags_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_permission_mode_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_omits_continue_by_default ... ok
[INFO] [stdout] test duplex::tests::into_args_repeats_add_dir_and_mcp_config ... ok
[INFO] [stdout] test duplex::tests::into_args_includes_worktree_flag_without_name ... ok
[INFO] [stdout] test duplex::tests::parse_control_response_returns_none_on_missing_request_id ... ok
[INFO] [stdout] test duplex::tests::parse_control_response_extracts_success ... ok
[INFO] [stdout] test duplex::tests::is_alive_false_after_completed ... ok
[INFO] [stdout] test duplex::tests::is_alive_false_after_failed ... ok
[INFO] [stdout] test duplex::tests::parse_control_response_returns_none_on_unknown_subtype ... ok
[INFO] [stdout] test duplex::tests::parse_permission_request_extracts_fields ... ok
[INFO] [stdout] test duplex::tests::parse_permission_request_returns_none_when_missing_request_id ... ok
[INFO] [stdout] test duplex::tests::is_alive_true_while_running ... ok
[INFO] [stdout] test duplex::tests::parse_permission_request_handles_missing_input ... ok
[INFO] [stdout] test duplex::tests::parity_flags_land_before_additional_args ... ok
[INFO] [stdout] test duplex::tests::parse_control_response_extracts_error_with_message ... ok
[INFO] [stdout] test duplex::tests::parse_permission_request_returns_none_when_missing_tool_name ... ok
[INFO] [stdout] test duplex::tests::permission_handler_invokes_closure_async ... ok
[INFO] [stdout] test duplex::tests::permission_handler_clones_arc ... ok
[INFO] [stdout] test duplex::tests::turn_result_accessors_return_none_when_missing ... ok
[INFO] [stdout] test duplex::tests::worktree_lands_before_additional_args ... ok
[INFO] [stdout] test duplex::tests::wait_for_exit_returns_immediately_when_already_terminal ... ok
[INFO] [stdout] test duplex::tests::turn_result_accessors_pull_from_result ... ok
[INFO] [stdout] test error::tests::auth_kind_inspects_command_failed_for_missed_classifications ... ok
[INFO] [stdout] test error::tests::auth_kind_returns_none_for_non_command_errors ... ok
[INFO] [stdout] test duplex::tests::resume_lands_before_additional_args ... ok
[INFO] [stdout] test duplex::tests::turn_result_total_cost_falls_back_to_legacy_field ... ok
[INFO] [stdout] test error::tests::command_failed_display_includes_both_streams_when_present ... ok
[INFO] [stdout] test error::tests::command_failed_display_includes_nonempty_stderr ... ok
[INFO] [stdout] test error::tests::command_failed_display_includes_command_and_exit_code ... ok
[INFO] [stdout] test error::tests::command_failed_display_includes_working_dir_when_present ... ok
[INFO] [stdout] test error::tests::command_failed_display_includes_nonempty_stdout ... ok
[INFO] [stdout] test error::tests::from_command_failure_auth_stderr_yields_auth_variant ... ok
[INFO] [stdout] test error::tests::command_failed_display_omits_working_dir_when_absent ... ok
[INFO] [stdout] test error::tests::from_command_failure_max_budget_yields_typed_variant ... ok
[INFO] [stdout] test error::tests::command_failed_display_omits_empty_stdout_and_stderr ... ok
[INFO] [stdout] test error::tests::from_command_failure_max_turns_yields_typed_variant ... ok
[INFO] [stdout] test error::tests::io_error_display_includes_working_dir_when_present ... ok
[INFO] [stdout] test error::tests::from_command_failure_uses_stdout_message_when_stderr_empty ... ok
[INFO] [stdout] test error::tests::max_budget_display_includes_cap ... ok
[INFO] [stdout] test error::tests::max_budget_check_does_not_swallow_auth ... ok
[INFO] [stdout] test error::tests::from_command_failure_unrelated_stderr_yields_command_failed ... ok
[INFO] [stdout] test error::tests::max_turns_detected_without_parseable_cap ... ok
[INFO] [stdout] test error::tests::max_turns_check_does_not_swallow_auth ... ok
[INFO] [stdout] test error::tests::max_turns_display_includes_cap ... ok
[INFO] [stdout] test error::tests::max_budget_detected_without_parseable_cap ... ok
[INFO] [stdout] test error::tests::non_max_budget_failure_stays_command_failed ... ok
[INFO] [stdout] test error::tests::parse_max_budget_cap_variants ... ok
[INFO] [stdout] test error::tests::parse_max_turns_cap_variants ... ok
[INFO] [stdout] test error::tests::parse_result_string_variants ... ok
[INFO] [stdout] test error::tests::timeout_display_formats_seconds ... ok
[INFO] [stdout] test error::tests::non_max_turns_failure_stays_command_failed ... ok
[INFO] [stdout] test error::tests::parse_result_number_variants ... ok
[INFO] [stdout] test exec::tests::async_applies_working_dir ... ok
[INFO] [stdout] test exec::tests::async_allow_exit_codes_permits_listed_code ... ok
[INFO] [stdout] test exec::tests::async_allow_exit_codes_still_errors_on_unlisted_code ... ok
[INFO] [stdout] test exec::tests::async_spawn_failure_maps_io ... ok
[INFO] [stdout] test exec::tests::async_nonzero_exit_maps_command_failed ... ok
[INFO] [stdout] test exec::tests::async_auth_shaped_stderr_maps_auth ... ok
[INFO] [stdout] test exec::tests::async_rail_stop_maps_max_turns ... ok
[INFO] [stdout] test exec::tests::async_scrubs_claude_env_vars ... ok
[INFO] [stdout] test exec::tests::async_success_maps_output ... ok
[INFO] [stdout] test exec::tests::async_stdin_prompt_round_trips ... ok
[INFO] [stdout] test exec::tests::async_stdin_with_timeout_round_trips ... ok
[INFO] [stdout] test history::tests::decode_slug_anchored_fallback_when_nothing_exists ... ok
[INFO] [stdout] test history::tests::decode_slug_anchored_multiple_hyphenated_segments ... ok
[INFO] [stdout] test history::tests::decode_slug_anchored_no_hyphens_in_components ... ok
[INFO] [stdout] test history::tests::decode_slug_anchored_real_world_issue_example ... ok
[INFO] [stdout] test history::tests::decode_slug_anchored_single_hyphenated_segment ... ok
[INFO] [stdout] test history::tests::encode_path_slug_encodes_slash_and_dot ... ok
[INFO] [stdout] test exec::tests::async_timeout_path_maps_command_failed ... ok
[INFO] [stdout] test history::tests::find_session_locates_real_session ... ok
[INFO] [stdout] test history::tests::find_session_returns_none_for_unknown_id ... ok
[INFO] [stdout] test exec::tests::async_timeout_path_returns_output_when_fast ... ok
[INFO] [stdout] test history::tests::list_projects_counts_sessions ... ok
[INFO] [stdout] test duplex::tests::wait_for_exit_returns_last_value_when_sender_dropped ... ok
[INFO] [stdout] test duplex::tests::wait_for_exit_supports_multiple_observers ... ok
[INFO] [stdout] test history::tests::list_projects_decodes_slug_to_filesystem_path ... ok
[INFO] [stdout] test history::tests::list_projects_returns_empty_when_root_missing ... ok
[INFO] [stdout] test history::tests::list_projects_returns_directories_sorted_by_slug ... ok
[INFO] [stdout] test history::tests::list_projects_with_include_empty_false_filters_them_out ... ok
[INFO] [stdout] test history::tests::list_projects_with_limit_caps_results ... ok
[INFO] [stdout] test history::tests::list_projects_with_offset_past_end_returns_empty ... ok
[INFO] [stdout] test history::tests::list_projects_zero_arg_preserves_legacy_inclusion ... ok
[INFO] [stdout] test history::tests::list_sessions_unfiltered_returns_union ... ok
[INFO] [stdout] test history::tests::list_sessions_with_default_returns_orphans_for_bc ... ok
[INFO] [stdout] test duplex::tests::wait_for_exit_blocks_until_state_transitions ... ok
[INFO] [stdout] test history::tests::list_projects_with_default_includes_empty_for_bc ... ok
[INFO] [stdout] test history::tests::list_sessions_with_include_empty_false_filters_zero_message ... ok
[INFO] [stdout] test history::tests::project_slug_canonicalizes_and_encodes_dot ... ok
[INFO] [stdout] test history::tests::list_sessions_with_recency_desc_sort ... ok
[INFO] [stdout] test history::tests::project_slug_canonicalizes_and_encodes_underscore ... ok
[INFO] [stdout] test history::tests::read_session_other_entry_preserves_type_tag_and_raw ... ok
[INFO] [stdout] test history::tests::read_session_returns_typed_entries_and_skips_malformed_lines ... ok
[INFO] [stdout] test history::tests::read_session_unknown_id_errors ... ok
[INFO] [stdout] test history::tests::read_session_user_entry_carries_metadata ... ok
[INFO] [stdout] test history::tests::list_projects_with_recency_desc_sort ... ok
[INFO] [stdout] test history::tests::session_summary_counts_only_user_and_assistant ... ok
[INFO] [stdout] test history::tests::session_summary_legacy_title_field_still_works ... ok
[INFO] [stdout] test history::tests::list_sessions_with_limit_and_offset_combine ... ok
[INFO] [stdout] test history::tests::list_sessions_filtered_by_slug ... ok
[INFO] [stdout] test history::tests::list_projects_with_offset_skips ... ok
[INFO] [stdout] test history::tests::session_summary_parses_ai_title_camelcase ... ok
[INFO] [stdout] test jobs::tests::get_no_timeline_returns_empty_vec ... ok
[INFO] [stdout] test jobs::tests::get_unknown_id_errors ... ok
[INFO] [stdout] test history::tests::sessions_for_path_finds_session_under_dotted_symlinked_cwd ... ok
[INFO] [stdout] test jobs::tests::live_list_real_jobs_dir ... ignored, reads the user's real ~/.claude/jobs; may be empty
[INFO] [stdout] test jobs::tests::get_returns_full_record_with_timeline ... ok
[INFO] [stdout] test jobs::tests::list_missing_root_returns_empty ... ok
[INFO] [stdout] test jobs::tests::missing_state_field_defaults_to_unknown ... ok
[INFO] [stdout] test jobs::tests::raw_state_preserves_unknown_fields ... ok
[INFO] [stdout] test mcp_config::tests::build_temp_roundtrips_to_parsed_servers ... ok
[INFO] [stdout] test mcp_config::tests::http_server_with_headers_serializes_headers ... ok
[INFO] [stdout] test mcp_config::tests::raw_server_config_serializes ... ok
[INFO] [stdout] test mcp_config::tests::stdio_server_with_env_serializes_env ... ok
[INFO] [stdout] test mcp_config::tests::test_build_temp ... ok
[INFO] [stdout] test mcp_config::tests::test_http_server_config ... ok
[INFO] [stdout] test mcp_config::tests::test_multiple_servers ... ok
[INFO] [stdout] test mcp_config::tests::test_stdio_server_config ... ok
[INFO] [stdout] test mcp_config::tests::write_to_creates_parent_dirs_and_roundtrips ... ok
[INFO] [stdout] test retry::tests::test_builder ... ok
[INFO] [stdout] test retry::tests::test_default_policy ... ok
[INFO] [stdout] test retry::tests::test_exponential_delay ... ok
[INFO] [stdout] test retry::tests::test_fixed_delay ... ok
[INFO] [stdout] test retry::tests::test_should_not_retry_other_errors ... ok
[INFO] [stdout] test jobs::tests::list_returns_only_well_formed_jobs_sorted_by_short_id ... ok
[INFO] [stdout] test retry::tests::test_should_retry_timeout ... ok
[INFO] [stdout] test retry::tests::test_with_retry_exhausts_attempts ... ok
[INFO] [stdout] test retry::tests::test_with_retry_no_retry_on_non_retryable ... ok
[INFO] [stdout] test retry::tests::test_should_retry_exit_code ... ok
[INFO] [stdout] test retry::tests::test_with_retry_succeeds_first_try ... ok
[INFO] [stdout] test session::tests::budget_pre_check_would_block_next_turn ... ok
[INFO] [stdout] test session::tests::new_session_has_no_id ... ok
[INFO] [stdout] test session::tests::record_accumulates_across_turns ... ok
[INFO] [stdout] test session::tests::record_forwards_cost_to_budget ... ok
[INFO] [stdout] test session::tests::record_updates_state ... ok
[INFO] [stdout] test session::tests::replace_session_clears_conflicting_flags ... ok
[INFO] [stdout] test session::tests::resume_session_has_preset_id ... ok
[INFO] [stdout] test settings::tests::get_indexes_by_layer ... ok
[INFO] [stdout] test jobs::tests::list_running_job_has_no_first_terminal_at ... ok
[INFO] [stdout] test jobs::tests::list_summary_carries_typed_fields ... ok
[INFO] [stdout] test retry::tests::test_with_retry_succeeds_after_failures ... ok
[INFO] [stdout] test settings::tests::load_with_only_user_layer_present ... ok
[INFO] [stdout] test settings::tests::malformed_json_returns_error ... ok
[INFO] [stdout] test settings::tests::load_with_all_four_layers ... ok
[INFO] [stdout] test settings::tests::redact_env_noop_on_non_object_root ... ok
[INFO] [stdout] test settings::tests::missing_root_dir_treated_as_empty_not_error ... ok
[INFO] [stdout] test settings::tests::redact_env_noop_when_no_env_field ... ok
[INFO] [stdout] test settings::tests::redact_env_replaces_values_keeps_keys ... ok
[INFO] [stdout] test skills::tests::empty_value_keys_dont_overwrite_defaults ... ok
[INFO] [stdout] test skills::tests::extra_keys_round_trip_as_strings ... ok
[INFO] [stdout] test settings::tests::paths_reflect_configured_roots ... ok
[INFO] [stdout] test settings::tests::project_root_unset_means_no_project_layers ... ok
[INFO] [stdout] test skills::tests::get_no_frontmatter_returns_full_body ... ok
[INFO] [stdout] test settings::tests::redact_env_noop_when_env_not_object ... ok
[INFO] [stdout] test skills::tests::get_returns_full_skill_with_body ... ok
[INFO] [stdout] test skills::tests::list_missing_root_returns_empty ... ok
[INFO] [stdout] test skills::tests::list_ignores_dirs_without_skill_md ... ok
[INFO] [stdout] test skills::tests::list_no_frontmatter_falls_back_to_stem ... ok
[INFO] [stdout] test skills::tests::list_detects_bundled_assets ... ok
[INFO] [stdout] test skills::tests::get_unknown_id_errors ... ok
[INFO] [stdout] test slash::tests::compact_empty_string_collapses_to_bare ... ok
[INFO] [stdout] test slash::tests::compact_trims_surrounding_whitespace ... ok
[INFO] [stdout] test slash::tests::compact_with_instructions_appends_them ... ok
[INFO] [stdout] test slash::tests::compact_without_instructions_is_bare ... ok
[INFO] [stdout] test streaming::tests::partial_message_accepts_unwrapped_event ... ok
[INFO] [stdout] test streaming::tests::partial_message_returns_none_for_non_partial_events ... ok
[INFO] [stdout] test streaming::tests::partial_message_text_block_lifecycle ... ok
[INFO] [stdout] test streaming::tests::partial_message_thinking_block_lifecycle ... ok
[INFO] [stdout] test streaming::tests::partial_message_tool_use_block_carries_id_and_name ... ok
[INFO] [stdout] test tests::test_builder_debug ... ok
[INFO] [stdout] test streaming::tests::partial_message_unknown_kinds_fall_through_to_other ... ok
[INFO] [stdout] test tests::test_builder_global_args ... ok
[INFO] [stdout] test tests::test_builder_verbose ... ok
[INFO] [stdout] test tests::test_builder_with_binary ... ok
[INFO] [stdout] test tool_pattern::tests::all_wildcards_args ... ok
[INFO] [stdout] test tool_pattern::tests::display_matches_as_str ... ok
[INFO] [stdout] test tool_pattern::tests::from_str_is_loose ... ok
[INFO] [stdout] test tool_pattern::tests::mcp_patterns ... ok
[INFO] [stdout] test tool_pattern::tests::parse_accepts_mcp ... ok
[INFO] [stdout] test tool_pattern::tests::parse_accepts_bare_name ... ok
[INFO] [stdout] test tool_pattern::tests::parse_accepts_name_with_args ... ok
[INFO] [stdout] test tool_pattern::tests::parse_rejects_comma ... ok
[INFO] [stdout] test tool_pattern::tests::parse_rejects_empty ... ok
[INFO] [stdout] test tool_pattern::tests::parse_rejects_control_chars ... ok
[INFO] [stdout] test tool_pattern::tests::parse_rejects_missing_name ... ok
[INFO] [stdout] test tool_pattern::tests::parse_trims_whitespace ... ok
[INFO] [stdout] test tool_pattern::tests::parse_rejects_unbalanced_parens ... ok
[INFO] [stdout] test tool_pattern::tests::tool_with_args_renders_parens ... ok
[INFO] [stdout] test tool_pattern::tests::tool_strips_whitespace ... ok
[INFO] [stdout] test types::tests::query_result_deserializes_num_turns ... ok
[INFO] [stdout] test types::tests::query_result_deserializes_cost_usd_alias ... ok
[INFO] [stdout] test types::tests::query_result_deserializes_total_cost_usd ... ok
[INFO] [stdout] test skills::tests::list_typed_metadata ... ok
[INFO] [stdout] test types::tests::query_result_missing_cost_defaults_to_none ... ok
[INFO] [stdout] test types::tests::query_result_from_stream_result_event ... ok
[INFO] [stdout] test types::tests::query_result_serializes_as_total_cost_usd ... ok
[INFO] [stdout] test types::transport_tests::from_str_returns_error_for_unknown ... ok
[INFO] [stdout] test types::transport_tests::from_str_accepts_known_variants ... ok
[INFO] [stdout] test types::transport_tests::try_from_str_returns_error_for_unknown ... ok
[INFO] [stdout] test version::tests::status_newer_untested_above_max ... ok
[INFO] [stdout] test version::tests::status_older_than_minimum ... ok
[INFO] [stdout] test version::tests::status_tested_at_max ... ok
[INFO] [stdout] test version::tests::status_serializes_to_tagged_json ... ok
[INFO] [stdout] test version::tests::status_tested_at_min ... ok
[INFO] [stdout] test version::tests::status_tested_in_middle ... ok
[INFO] [stdout] test version::tests::test_ordering ... ok
[INFO] [stdout] test version::tests::test_display ... ok
[INFO] [stdout] test version::tests::test_parse_invalid ... ok
[INFO] [stdout] test version::tests::test_parse_simple ... ok
[INFO] [stdout] test skills::tests::list_returns_only_skill_dirs_sorted ... ok
[INFO] [stdout] test version::tests::test_parse_version_output ... ok
[INFO] [stdout] test version::tests::test_parse_version_output_trimmed ... ok
[INFO] [stdout] test version::tests::test_satisfies_minimum ... ok
[INFO] [stdout] test worktrees::tests::parse_bare_worktree ... ok
[INFO] [stdout] test worktrees::tests::parse_empty_input_returns_empty ... ok
[INFO] [stdout] test worktrees::tests::parse_handles_trailing_block_without_blank_line ... ok
[INFO] [stdout] test worktrees::tests::parse_locked_with_reason ... ok
[INFO] [stdout] test worktrees::tests::parse_locked_without_reason ... ok
[INFO] [stdout] test worktrees::tests::parse_detached_head ... ok
[INFO] [stdout] test worktrees::tests::parse_multiple_worktrees_marks_first_as_main ... ok
[INFO] [stdout] test worktrees::tests::parse_prunable_with_reason ... ok
[INFO] [stdout] test worktrees::tests::list_errors_on_non_git_path ... ok
[INFO] [stdout] test worktrees::tests::parse_single_main_worktree ... ok
[INFO] [stdout] test worktrees::tests::parse_strips_refs_heads_prefix ... ok
[INFO] [stdout] test worktrees::tests::parse_unknown_keys_are_ignored ... ok
[INFO] [stdout] test worktrees::tests::live_lists_at_least_the_main_worktree ... ok
[INFO] [stdout] test jobs::tests::timeline_skips_malformed_lines_without_failing ... ok
[INFO] [stdout] test jobs::tests::unknown_state_string_passes_through ... ok
[INFO] [stdout] test exec::tests::async_stdin_timeout_fires_on_slow_child ... ok
[INFO] [stdout] test exec::tests::async_timeout_fires_on_slow_child ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 481 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.77s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/fake_claude.rs (/opt/rustwide/target/debug/deps/fake_claude-9f056e0034b15e10)
[INFO] [stdout] 
[INFO] [stdout] running 31 tests
[INFO] [stdout] test binary_not_found_returns_error ... ok
[INFO] [stdout] test command_failed_without_working_dir_is_none ... ok
[INFO] [stdout] test doctor_executes ... ok
[INFO] [stdout] test auth_status_executes ... ok
[INFO] [stdout] test agents_executes ... ok
[INFO] [stdout] test fake_claude_basic_execution ... ok
[INFO] [stdout] test fake_claude_non_zero_exit_is_error ... ok
[INFO] [stdout] test io_error_includes_working_dir ... ok
[INFO] [stdout] test command_failed_error_message_includes_working_dir ... ok
[INFO] [stdout] test command_failed_includes_working_dir ... ok
[INFO] [stdout] test mcp_list_executes ... ok
[INFO] [stdout] test mcp_config_builder_roundtrip ... ok
[INFO] [stdout] test env_vars_passed_to_subprocess ... ok
[INFO] [stdout] test no_retry_fails_immediately ... ok
[INFO] [stdout] test raw_command_executes ... ok
[INFO] [stdout] test fake_claude_stream_json_output ... ok
[INFO] [stdout] test session_is_send_and_sync ... ok
[INFO] [stdout] test session_resume_uses_preset_id ... ok
[INFO] [stdout] test per_command_retry_override ... ok
[INFO] [stdout] test retry_on_exit_code_with_fake_binary ... ok
[INFO] [stdout] test session_execute_overrides_conflicting_flags ... ok
[INFO] [stdout] test session_stream_captures_session_id ... ok
[INFO] [stdout] test streaming_ndjson_parsed_correctly ... ok
[INFO] [stdout] test streaming_extracts_cost_and_session ... ok
[INFO] [stdout] test session_send_accumulates_across_turns ... ok
[INFO] [stdout] test working_dir_set_on_subprocess ... ok
[INFO] [stdout] test session_stream_then_send_resumes ... ok
[INFO] [stdout] test client_reusable_after_timeout ... ok
[INFO] [stdout] test streaming_timeout_returns_promptly ... ok
[INFO] [stdout] test exec_timeout_returns_promptly ... ok
[INFO] [stderr]      Running tests/fake_claude_sync.rs (/opt/rustwide/target/debug/deps/fake_claude_sync-701d19823131ba6e)
[INFO] [stdout] test fake_claude_timeout_fires ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-3e860591d84ab99a)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.42s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test test_auth_status ... ignored, requires claude binary and auth
[INFO] [stdout] test test_cli_version_parses ... ignored, requires claude binary
[INFO] [stdout] test test_conversation_three_turns_track_history_and_cost ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_health_primitives_lifecycle ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_interrupt_closes_in_flight_turn ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_multiple_subscribers_see_same_events ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_permission_handler_does_not_break_session ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_send_and_close ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_send_while_turn_in_flight_returns_error ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_slow_subscriber_lags_without_blocking ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_subscribe_sees_assistant_before_result ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_three_turns_subscribe_drains ... ignored, requires claude binary and auth
[INFO] [stdout] test test_duplex_two_turns_share_session ... ignored, requires claude binary and auth
[INFO] [stdout] test test_mcp_add_get_remove_roundtrip ... ignored, requires claude binary
[INFO] [stdout] test test_mcp_config_builder ... ignored, requires claude binary
[INFO] [stdout] test test_mcp_list ... ignored, requires claude binary
[INFO] [stdout] test test_plugin_list ... ignored, requires claude binary
[INFO] [stdout] test test_query_effort_accepted ... ignored, requires claude binary and auth
[INFO] [stderr]    Doc-tests claude_wrapper
[INFO] [stdout] test test_query_json_output ... ignored, requires claude binary and auth
[INFO] [stdout] test test_query_options_accepted_together ... ignored, requires claude binary and auth
[INFO] [stdout] test test_query_prompt_suggestions_accepted ... ignored, requires claude binary and auth
[INFO] [stdout] test test_query_system_prompt_is_honored ... ignored, requires claude binary and auth
[INFO] [stdout] test test_query_verbose_accepted ... ignored, requires claude binary and auth
[INFO] [stdout] test test_session_two_turns_resume_and_track ... ignored, requires claude binary and auth
[INFO] [stdout] test test_simple_query ... ignored, requires claude binary and auth
[INFO] [stdout] test test_stream_query_emits_result_event ... ignored, requires claude binary and auth
[INFO] [stdout] test test_version ... ignored, requires claude binary
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 27 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 80 tests
[INFO] [stdout] test src/budget.rs - budget (line 19) - compile ... ok
[INFO] [stdout] test src/artifacts.rs - artifacts (line 44) - compile ... ok
[INFO] [stdout] test src/command/auth.rs - command::auth::AuthLogoutCommand (line 255) - compile ... ok
[INFO] [stdout] test src/command/auth.rs - command::auth::AuthStatusCommand (line 17) - compile ... ok
[INFO] [stdout] test src/command/auto_mode.rs - command::auto_mode::AutoModeConfigCommand (line 28) - compile ... ok
[INFO] [stdout] test src/command/auto_mode.rs - command::auto_mode::AutoModeCritiqueCommand (line 98) - compile ... ok
[INFO] [stdout] test src/command/doctor.rs - command::doctor::DoctorCommand (line 20) - compile ... ok
[INFO] [stdout] test src/command/install.rs - command::install::InstallCommand (line 19) - compile ... ok
[INFO] [stdout] test src/command/mcp.rs - command::mcp::McpAddCommand (line 87) - compile ... ok
[INFO] [stdout] test src/command/marketplace.rs - command::marketplace::MarketplaceAddCommand (line 76) - compile ... ok
[INFO] [stdout] test src/command/mcp.rs - command::mcp::McpListCommand (line 22) - compile ... ok
[INFO] [stdout] test src/command/marketplace.rs - command::marketplace::MarketplaceListCommand (line 21) - compile ... ok
[INFO] [stdout] test src/command/plugin.rs - command::plugin::PluginInstallCommand (line 84) - compile ... ok
[INFO] [stdout] test src/command/mcp.rs - command::mcp::McpServeCommand (line 412) - compile ... ok
[INFO] [stdout] test src/command/plugin.rs - command::plugin::PluginListCommand (line 22) - compile ... ok
[INFO] [stdout] test src/command/project.rs - command::project::ProjectPurgeCommand (line 34) - compile ... ok
[INFO] [stdout] test src/command/plugin.rs - command::plugin::PluginTagCommand (line 418) - compile ... ok
[INFO] [stdout] test src/command/auth.rs - command::auth::SetupTokenCommand (line 292) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand (line 26) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand::retry (line 612) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand::to_command_string (line 644) - compile ... ok
[INFO] [stdout] test src/command/raw.rs - command::raw::RawCommand (line 22) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand::prompt_via_stdin (line 737) - compile ... ok
[INFO] [stdout] test src/auth.rs - auth (line 26) ... ok
[INFO] [stdout] test src/command/ultrareview.rs - command::ultrareview::UltrareviewCommand (line 25) - compile ... ok
[INFO] [stdout] test src/command/update.rs - command::update::UpdateCommand (line 18) - compile ... ok
[INFO] [stdout] test src/command/version.rs - command::version::VersionCommand (line 21) - compile ... ok
[INFO] [stdout] test src/commands.rs - commands (line 65) - compile ... ok
[INFO] [stdout] test src/command/auth.rs - command::auth::AuthLoginCommand (line 131) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand::worktree_named (line 411) - compile ... ok
[INFO] [stdout] test src/conversation.rs - conversation (line 29) - compile ... ok
[INFO] [stdout] test src/conversation.rs - conversation (line 62) - compile ... ok
[INFO] [stdout] test src/dangerous.rs - dangerous (line 14) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex (line 115) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex (line 162) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex (line 44) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex::DuplexSession::respond_to_permission (line 1056) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex (line 74) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex::DuplexSession::subscribe (line 965) - compile ... ok
[INFO] [stdout] test src/jobs.rs - jobs (line 28) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex::DuplexSession::interrupt (line 1125) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 152) - compile ... ok
[INFO] [stdout] test src/history.rs - history (line 43) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 122) - compile ... ok
[INFO] [stdout] test src/command/query.rs - command::query::QueryCommand::allowed_tools (line 162) ... ok
[INFO] [stdout] test src/lib.rs - (line 178) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 223) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 246) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 26) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 276) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 206) ... ok
[INFO] [stdout] test src/lib.rs - (line 304) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 45) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 64) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 89) - compile ... ok
[INFO] [stdout] test src/lib.rs - Claude::cli_version (line 455) - compile ... ok
[INFO] [stdout] test src/lib.rs - Claude::check_version (line 480) - compile ... ok
[INFO] [stdout] test src/lib.rs - ClaudeBuilder (line 599) - compile ... ok
[INFO] [stdout] test src/mcp_config.rs - mcp_config::McpConfigBuilder::build_temp (line 218) - compile ... ok
[INFO] [stdout] test src/lib.rs - ClaudeBuilder::tested_cli_version_range (line 744) - compile ... ok
[INFO] [stdout] test src/mcp_config.rs - mcp_config::McpConfigBuilder (line 23) - compile ... ok
[INFO] [stdout] test src/duplex.rs - duplex::PermissionHandler::new (line 290) ... ok
[INFO] [stdout] test src/history.rs - history::ProjectSummary::is_decode_verified (line 402) ... ok
[INFO] [stdout] test src/lib.rs - ClaudeBuilder::retry (line 702) - compile ... ok
[INFO] [stdout] test src/session.rs - session (line 44) - compile ... ok
[INFO] [stdout] test src/session.rs - session (line 70) - compile ... ok
[INFO] [stdout] test src/skills.rs - skills (line 44) - compile ... ok
[INFO] [stdout] test src/settings.rs - settings (line 47) - compile ... ok
[INFO] [stdout] test src/streaming.rs - streaming::stream_query (line 277) - compile ... ok
[INFO] [stdout] test src/retry.rs - retry::RetryPolicy (line 20) ... ok
[INFO] [stdout] test src/types.rs - types::AuthStatus (line 247) - compile ... ok
[INFO] [stdout] test src/tool_pattern.rs - tool_pattern::ToolPattern::all (line 97) ... ok
[INFO] [stdout] test src/worktrees.rs - worktrees (line 26) - compile ... ok
[INFO] [stdout] test src/types.rs - types::Transport (line 17) ... ok
[INFO] [stdout] test src/version.rs - version::CliVersion (line 15) ... ok
[INFO] [stdout] test src/tool_pattern.rs - tool_pattern (line 23) ... ok
[INFO] [stdout] test src/slash.rs - slash (line 17) ... ok
[INFO] [stdout] test src/tool_pattern.rs - tool_pattern::ToolPattern::tool_with_args (line 81) ... ok
[INFO] [stdout] test src/tool_pattern.rs - tool_pattern::ToolPattern::mcp (line 108) ... ok
[INFO] [stdout] test src/streaming.rs - streaming::StreamEvent::partial_message (line 92) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.51s; merged doctests compilation took 1.48s
[INFO] running `Command { std: "docker" "inspect" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a", kill_on_drop: false }`
[INFO] [stdout] c021899bb31608b91e8d39980b761ecc47166004d2a24ee48f823d5dd792f16a
