[INFO] cloning repository https://github.com/daaquan/aish
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/daaquan/aish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaaquan%2Faish", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaaquan%2Faish'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a8c3ef76670840231f5e9e5737deb2e67870f78a
[INFO] testing daaquan/aish against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdaaquan%2Faish" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/daaquan/aish
[INFO] finished tweaking git repo https://github.com/daaquan/aish
[INFO] tweaked toml for git repo https://github.com/daaquan/aish written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/daaquan/aish on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/daaquan/aish already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serial_test v3.5.0
[INFO] [stderr]   Downloaded wiremock v0.6.5
[INFO] [stderr]   Downloaded deadpool-runtime v0.1.4
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.122
[INFO] [stderr]   Downloaded deadpool v0.12.3
[INFO] [stderr]   Downloaded http v1.4.1
[INFO] [stderr]   Downloaded serial_test_derive v3.5.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.122
[INFO] [stderr]   Downloaded predicates-core v1.0.10
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.72
[INFO] [stderr]   Downloaded clap_complete v4.6.5
[INFO] [stderr]   Downloaded predicates-tree v1.0.13
[INFO] [stderr]   Downloaded rtoolbox v0.0.5
[INFO] [stderr]   Downloaded predicates v3.1.4
[INFO] [stderr]   Downloaded rpassword v7.5.4
[INFO] [stderr]   Downloaded assert_cmd v2.2.2
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.122
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.50
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.122
[INFO] [stderr]   Downloaded js-sys v0.3.99
[INFO] [stderr]   Downloaded tower-http v0.6.11
[INFO] [stderr]   Downloaded zerocopy v0.8.50
[INFO] [stderr]   Downloaded web-sys v0.3.99
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985
[INFO] running `Command { std: "docker" "start" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", 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" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", 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" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling aish v0.13.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling http v1.4.1
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rtoolbox v0.0.5
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling rpassword v7.5.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling clap_complete v4.6.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.60s
[INFO] running `Command { std: "docker" "inspect" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", 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" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling bitflags v2.12.1
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling serial_test_derive v3.5.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling serial_test v3.5.0
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling aish v0.13.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 42.12s
[INFO] running `Command { std: "docker" "inspect" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", 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" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.36s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/aish-f9b2b7abc6861598)
[INFO] [stdout] 
[INFO] [stdout] running 124 tests
[INFO] [stdout] test cache::tests::clear_removes_all_entries_and_reports_count ... ok
[INFO] [stdout] test cache::tests::key_is_deterministic_for_identical_requests ... ok
[INFO] [stdout] test cache::tests::key_changes_with_diff_model_or_provider ... ok
[INFO] [stdout] test cache::tests::length_prefix_prevents_field_boundary_collisions ... ok
[INFO] [stdout] test commands::setup::tests::build_config_single_provider ... ok
[INFO] [stdout] test cache::tests::put_then_get_roundtrips ... ok
[INFO] [stdout] test config::resolve::tests::alias_pointing_at_missing_provider_errors ... ok
[INFO] [stdout] test config::resolve::tests::unknown_alias_errors ... ok
[INFO] [stdout] test config::tests::expands_env_vars_in_secrets ... ok
[INFO] [stdout] test commands::setup::tests::build_config_round_trips_and_validates ... ok
[INFO] [stdout] test cache::tests::stats_empty_for_missing_or_empty_dir ... ok
[INFO] [stdout] test cache::tests::stats_counts_entries_and_bytes ... ok
[INFO] [stdout] test audit::tests::appends_jsonl_line_without_secrets ... ok
[INFO] [stdout] test config::tests::missing_env_var_expands_to_empty_not_error ... ok
[INFO] [stdout] test config::tests::empty_expanded_key_normalized_to_none ... ok
[INFO] [stdout] test config::tests::template_loads_even_when_provider_keys_unset ... ok
[INFO] [stdout] test editor::tests::resolve_prefers_visual_over_editor ... ok
[INFO] [stdout] test config::tests::validate_flags_commit_model_not_an_alias ... ok
[INFO] [stdout] test config::tests::parses_minimal_config ... ok
[INFO] [stdout] test config::resolve::tests::resolves_known_alias ... ok
[INFO] [stdout] test config::tests::validate_accepts_sound_config ... ok
[INFO] [stdout] test config::tests::validate_flags_alias_with_missing_provider ... ok
[INFO] [stdout] test config::tests::validate_warns_on_pricing_for_unused_model ... ok
[INFO] [stdout] test editor::tests::edit_returns_editor_modified_content ... ok
[INFO] [stdout] test config::tests::validate_accepts_pricing_for_used_model ... ok
[INFO] [stdout] test config::tests::validate_warns_on_unconfigured_provider ... ok
[INFO] [stdout] test config::tests::template_parses_as_valid_config_when_env_present ... ok
[INFO] [stdout] test editor::tests::edit_surfaces_failure_when_editor_exits_nonzero ... ok
[INFO] [stdout] test editor::tests::edit_trims_trailing_whitespace ... ok
[INFO] [stdout] test provider::factory_tests::builds_each_provider_kind ... ok
[INFO] [stdout] test provider::factory_tests::provider_missing_key_errors ... ok
[INFO] [stdout] test provider::anthropic::tests::sends_system_separately_and_parses_text ... ok
[INFO] [stdout] test provider::gemini::tests::request_error_does_not_leak_api_key ... ok
[INFO] [stdout] test provider::gemini::tests::sends_temperature_in_generation_config ... ok
[INFO] [stdout] test provider::http::tests::bad_request_400_reads_error_body ... ok
[INFO] [stdout] test git::tests::failed_command_reports_subcommand_and_exit_code ... ok
[INFO] [stdout] test provider::http::tests::extract_error_falls_back_to_raw_body ... ok
[INFO] [stdout] test provider::http::tests::extract_error_parses_ollama_style_json ... ok
[INFO] [stdout] test provider::http::tests::extract_error_truncates_long_body ... ok
[INFO] [stdout] test provider::http::tests::extract_error_truncates_multibyte_body_without_panic ... ok
[INFO] [stdout] test provider::http::tests::extract_error_unwraps_nested_ollama_message ... ok
[INFO] [stdout] test provider::http::tests::maps_statuses_to_provider_errors ... ok
[INFO] [stdout] test provider::http::tests::normalize_base_strips_trailing_slash ... ok
[INFO] [stdout] test provider::gemini::tests::parses_candidate_text ... ok
[INFO] [stdout] test provider::http::tests::transport_error_does_not_leak_url_contents ... ok
[INFO] [stdout] test provider::openai::tests::maps_401_to_auth_error ... ok
[INFO] [stdout] test provider::retry::tests::backoff_grows_exponentially ... ok
[INFO] [stdout] test provider::retry::tests::does_not_retry_non_rate_limit_errors ... ok
[INFO] [stdout] test provider::retry::tests::gives_up_after_max_retries ... ok
[INFO] [stdout] test provider::openai::tests::sends_request_and_parses_choice ... ok
[INFO] [stdout] test provider::retry::tests::retries_until_success ... ok
[INFO] [stdout] test provider::tests::message_constructors_set_roles ... ok
[INFO] [stdout] test tool::ask::tests::piped_context_is_included ... ok
[INFO] [stdout] test tool::ask::tests::huge_context_is_truncated ... ok
[INFO] [stdout] test tool::changelog::tests::prompt_asks_for_grouped_entries_with_range_and_commits ... ok
[INFO] [stdout] test tool::commit::tests::appends_custom_instructions_to_system_prompt ... ok
[INFO] [stdout] test tool::commit::tests::bare_fence_becomes_empty ... ok
[INFO] [stdout] test tool::commit::tests::blank_instructions_add_nothing ... ok
[INFO] [stdout] test provider::http::tests::decodes_ok_body_and_flags_bad_json ... ok
[INFO] [stdout] test tool::ask::tests::prompt_is_developer_focused_and_includes_question ... ok
[INFO] [stdout] test tool::commit::tests::caps_huge_diff_on_char_boundary_without_panic ... ok
[INFO] [stdout] test tool::commit::tests::rejects_empty_output ... ok
[INFO] [stdout] test tool::commit::tests::strips_code_fences_and_trims ... ok
[INFO] [stdout] test tool::commit::tests::strips_language_tagged_fence ... ok
[INFO] [stdout] test tool::commit::tests::caps_huge_diff ... ok
[INFO] [stdout] test tool::commit::tests::truncate_tail_keeps_the_end_with_marker ... ok
[INFO] [stdout] test tool::commit::tests::truncate_tail_cuts_on_char_boundary_without_panic ... ok
[INFO] [stdout] test tool::commit::tests::truncate_tail_leaves_short_input_untouched ... ok
[INFO] [stdout] test tool::fix::tests::long_output_is_tail_truncated ... ok
[INFO] [stdout] test tool::pr::tests::caps_huge_diff ... ok
[INFO] [stdout] test tool::commit::tests::prompt_includes_style_language_and_diff ... ok
[INFO] [stdout] test tool::pr::tests::keeps_inner_code_blocks_in_body ... ok
[INFO] [stdout] test tool::pr::tests::prompt_includes_language_commits_and_diff ... ok
[INFO] [stdout] test tool::pr::tests::parses_title_and_body ... ok
[INFO] [stdout] test tool::pr::tests::rejects_empty_or_fence_only_reply ... ok
[INFO] [stdout] test tool::fix::tests::prompt_includes_command_exit_code_and_output ... ok
[INFO] [stdout] test tool::pr::tests::title_only_reply_yields_empty_body ... ok
[INFO] [stdout] test tool::review::tests::caps_huge_diff ... ok
[INFO] [stdout] test tool::review::tests::postprocess_keeps_inner_code_blocks ... ok
[INFO] [stdout] test tool::review::tests::postprocess_rejects_empty_reply ... ok
[INFO] [stdout] test tool::review::tests::postprocess_trims_and_strips_outer_fence ... ok
[INFO] [stdout] test tool::run::tests::postprocess_rejects_empty ... ok
[INFO] [stdout] test tool::run::tests::postprocess_rejects_multiline ... ok
[INFO] [stdout] test tool::review::tests::prompt_asks_for_severity_grouped_review_in_language ... ok
[INFO] [stdout] test tool::run::tests::postprocess_strips_inline_backticks ... ok
[INFO] [stdout] test tool::run::tests::postprocess_strips_outer_fence ... ok
[INFO] [stdout] test tool::run::tests::postprocess_trims_plain_command ... ok
[INFO] [stdout] test tool::run::tests::prompt_includes_os_shell_and_request ... ok
[INFO] [stdout] test uninstall::tests::data_dir_defaults_to_dot_aish_under_home ... ok
[INFO] [stdout] test tool::pr::tests::strips_code_fences_before_parsing ... ok
[INFO] [stdout] test uninstall::tests::human_size_picks_sensible_units ... ok
[INFO] [stdout] test uninstall::tests::purge_accepts_dirs_strictly_inside_home ... ok
[INFO] [stdout] test uninstall::tests::purge_rejects_dangerous_paths ... ok
[INFO] [stdout] test update::tests::asset_names_match_install_script_convention ... ok
[INFO] [stdout] test uninstall::tests::dir_size_sums_files_recursively_and_handles_missing_dir ... ok
[INFO] [stdout] test update::tests::detects_cargo_installed_binaries ... ok
[INFO] [stdout] test uninstall::tests::data_dir_honors_aish_home_env ... ok
[INFO] [stdout] test update::tests::looks_like_binary_accepts_elf_and_macho_only ... ok
[INFO] [stdout] test update::tests::normalize_tag_adds_v_prefix_once ... ok
[INFO] [stdout] test update::tests::parses_plain_and_v_prefixed_versions ... ok
[INFO] [stdout] test git::tests::failed_command_falls_back_to_stdout_when_stderr_empty ... ok
[INFO] [stdout] test update::tests::urls_target_the_aish_repo ... ok
[INFO] [stdout] test usage::tests::aggregates_tokens_and_calls_by_model ... ok
[INFO] [stdout] test update::tests::replace_binary_swaps_content_and_sets_exec_bit ... ok
[INFO] [stdout] test usage::tests::read_log_missing_file_is_empty ... ok
[INFO] [stdout] test usage::tests::render_shows_total_and_handles_empty ... ok
[INFO] [stdout] test usage::tests::skips_blank_and_malformed_lines ... ok
[INFO] [stdout] test usage::tests::to_json_emits_rows_total_and_null_cost ... ok
[INFO] [stdout] test git::tests::default_branch_falls_back_to_local_master ... ok
[INFO] [stdout] test usage::tests::unknown_model_has_no_cost ... ok
[INFO] [stdout] test git::tests::empty_when_nothing_staged ... ok
[INFO] [stdout] test update::tests::is_newer_compares_numerically_not_lexically ... ok
[INFO] [stdout] [master (root-commit) 833de52] feat: via editor
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 a.txt
[INFO] [stdout] test git::tests::latest_tag_none_without_tags_then_some_after_tagging ... ok
[INFO] [stdout] test usage::tests::computes_cost_from_pricing ... ok
[INFO] [stdout] test git::tests::commit_creates_revision ... ok
[INFO] [stdout] test git::tests::reads_staged_diff ... ok
[INFO] [stdout] test git::tests::commit_with_signoff_adds_trailer ... ok
[INFO] [stdout] test git::tests::log_range_lists_subjects_between_refs ... ok
[INFO] [stdout] test git::tests::stage_tracked_stages_modified_files_but_not_untracked ... ok
[INFO] [stdout] test git::tests::default_branch_falls_back_to_local_main ... ok
[INFO] [stdout] test git::tests::branch_diff_and_log_cover_commits_ahead_of_base ... ok
[INFO] [stdout] test git::tests::branch_diff_empty_when_no_commits_ahead ... ok
[INFO] [stderr] Aborting commit due to empty commit message.
[INFO] [stdout] test update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target ... FAILED
[INFO] [stdout] test git::tests::commit_with_editor_commits_on_save_and_aborts_on_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target' (3082) panicked at src/update.rs:255:13:
[INFO] [stdout] assertion failed: err.is_err()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5645be9546f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5645be9546f8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5645be9546f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5645be9546f8 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5645be96cd0a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5645be96cd0a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x5645be959c52 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x5645be959c52 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x5645be92f5e6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5645be92f5e6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5645be94b139 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5645be60dc8c - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x5645be60dc8c - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5645be94b3b2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x5645be94b3b2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5645be92f6d4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x5645be924399 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5645be93088d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5645be96d4cc - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5645be96d492 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x5645be16c3e5 - aish[6fc0314d18e9d5f5]::update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target
[INFO] [stdout]                                at /opt/rustwide/workdir/src/update.rs:255:13
[INFO] [stdout]   21:     0x5645be15a377 - aish[6fc0314d18e9d5f5]::update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/update.rs:242:72
[INFO] [stdout]   22:     0x5645be13c686 - <aish[6fc0314d18e9d5f5]::update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x5645be600d6b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5645be600d6b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x5645be60e5e5 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x5645be60e5e5 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x5645be60e5e5 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x5645be60e5e5 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x5645be60e5e5 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x5645be60e5e5 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x5645be60e5e5 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x5645be607ef4 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x5645be607ef4 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x5645be611662 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x5645be611662 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x5645be611662 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x5645be611662 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x5645be611662 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x5645be611662 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x5645be611662 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x5645be9534ef - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x5645be9534ef - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x763941c60aa4 - <unknown>
[INFO] [stdout]   44:     0x763941ceda64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     update::tests::replace_binary_fails_on_unwritable_dir_without_touching_target
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 123 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985", kill_on_drop: false }`
[INFO] [stdout] 1cabd85fc2966eb682c8f46509258a2b07b8b4e5bcf231ecd0449451df718985
