[INFO] cloning repository https://github.com/matthewyjiang/rho
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matthewyjiang/rho" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatthewyjiang%2Frho", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatthewyjiang%2Frho'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8b9da7ea37739934080a621e068d99ebf2ea8a09
[INFO] testing matthewyjiang/rho 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%2Fmatthewyjiang%2Frho" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/matthewyjiang/rho
[INFO] finished tweaking git repo https://github.com/matthewyjiang/rho
[INFO] tweaked toml for git repo https://github.com/matthewyjiang/rho written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/matthewyjiang/rho 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/matthewyjiang/rho 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 git repository `https://github.com/crossterm-rs/crossterm`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tokio-tungstenite v0.27.0
[INFO] [stderr]   Downloaded tungstenite v0.27.0
[INFO] [stderr]   Downloaded winresource v0.1.31
[INFO] [stderr]   Downloaded native-tls v0.2.18
[INFO] [stderr]   Downloaded getrandom v0.4.3
[INFO] [stderr]   Downloaded time-core v0.1.9
[INFO] [stderr]   Downloaded bytes v1.12.0
[INFO] [stderr]   Downloaded cc v1.2.65
[INFO] [stderr]   Downloaded openssl-sys v0.9.117
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.2
[INFO] [stderr]   Downloaded ratatui v0.30.2
[INFO] [stderr]   Downloaded zbus-secret-service-keyring-store v1.0.0
[INFO] [stderr]   Downloaded keyring v4.1.2
[INFO] [stderr]   Downloaded rusqlite v0.32.1
[INFO] [stderr]   Downloaded h2 v0.4.15
[INFO] [stderr]   Downloaded ratatui-core v0.1.2
[INFO] [stderr]   Downloaded secret-service v5.1.0
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.7
[INFO] [stderr]   Downloaded windows-native-keyring-store v1.1.0
[INFO] [stderr]   Downloaded apple-native-keyring-store v1.0.0
[INFO] [stderr]   Downloaded time v0.3.49
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.20
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.2
[INFO] [stderr]   Downloaded keyring-core v1.0.0
[INFO] [stderr]   Downloaded ignore v0.4.28
[INFO] [stderr]   Downloaded openssl v0.10.81
[INFO] [stderr]   Downloaded rustls v0.23.41
[INFO] [stderr]   Downloaded bstr v1.12.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d
[INFO] running `Command { std: "docker" "start" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", 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" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d" "/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" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", 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" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling cc v1.2.65
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling winnow v1.0.3
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling bytes v1.12.0
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling zerocopy v0.8.52
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling http v1.4.2
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.12+spec-1.1.0
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling endi v1.1.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling memchr v2.8.2
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling num-bigint v0.4.6
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[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 tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling async-signal v0.2.14
[INFO] [stderr]    Compiling zvariant_utils v3.4.0
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling zvariant_derive v5.12.0
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling piper v0.2.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling zvariant v5.12.0
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling zbus_names v4.3.2
[INFO] [stderr]    Compiling h2 v0.4.15
[INFO] [stderr]    Compiling async-executor v1.14.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling zbus_macros v5.16.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling ordered-stream v0.2.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling ratatui-core v0.1.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling zbus v5.16.0
[INFO] [stderr]    Compiling cbc v0.1.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling crossterm v0.29.0 (https://github.com/crossterm-rs/crossterm?rev=03bb4f26610a5904b8e875fcb610d16bf7d00814#03bb4f26)
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling winresource v0.1.31
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling bstr v1.12.3
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling keyring-core v1.0.0
[INFO] [stderr]    Compiling data-encoding v2.11.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tungstenite v0.27.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.2
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling rho-coding-agent v0.21.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling tokio-tungstenite v0.27.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ignore v0.4.28
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling regex v1.12.4
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling webbrowser v1.2.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling secret-service v5.1.0
[INFO] [stderr]    Compiling zbus-secret-service-keyring-store v1.0.0
[INFO] [stderr]    Compiling keyring v4.1.2
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 23s
[INFO] running `Command { std: "docker" "inspect" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", 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" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d" "/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 rustix v1.1.4
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling crossterm v0.29.0 (https://github.com/crossterm-rs/crossterm?rev=03bb4f26610a5904b8e875fcb610d16bf7d00814#03bb4f26)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling async-signal v0.2.14
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling zbus v5.16.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.2
[INFO] [stderr]    Compiling ratatui v0.30.2
[INFO] [stderr]    Compiling secret-service v5.1.0
[INFO] [stderr]    Compiling zbus-secret-service-keyring-store v1.0.0
[INFO] [stderr]    Compiling keyring v4.1.2
[INFO] [stderr]    Compiling rho-coding-agent v0.21.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 35s
[INFO] running `Command { std: "docker" "inspect" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", 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" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d" "/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.74s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rho_coding_agent-73a1e2fd1e03fc35)
[INFO] [stdout] 
[INFO] [stdout] running 531 tests
[INFO] [stdout] test agent::compaction::tests::compaction_decision_requires_enabled_config_and_window ... ok
[INFO] [stdout] test agent::compaction::tests::builds_replacement_history_with_summary_between_system_and_recent_messages ... ok
[INFO] [stdout] test agent::compaction::tests::partition_keeps_last_group_even_when_it_exceeds_budget ... ok
[INFO] [stdout] test agent::compaction::tests::partition_skips_when_everything_fits_in_recent_tail ... ok
[INFO] [stdout] test agent::compaction::tests::partition_does_not_split_assistant_tool_call_group ... ok
[INFO] [stdout] test agent::compaction::tests::partitions_messages_around_token_budgeted_recent_tail ... ok
[INFO] [stdout] test agent::compaction::tests::target_percent_stays_below_threshold_when_possible ... ok
[INFO] [stdout] test agent::context_tracker::tests::compaction_clears_reported_anchor ... ok
[INFO] [stdout] test agent::context_tracker::tests::compaction_estimate_anchors_to_provider_reported_usage ... ok
[INFO] [stdout] test agent::context_tracker::tests::estimated_usage_before_provider_request_uses_configured_window ... ok
[INFO] [stdout] test agent::context_tracker::tests::provider_reported_usage_keeps_safer_configured_window ... ok
[INFO] [stdout] test agent::context_tracker::tests::provider_reported_usage_can_lower_configured_window ... ok
[INFO] [stdout] test agent::context_tracker::tests::provider_usage_clears_unknown_after_compaction ... ok
[INFO] [stdout] test agent::context_tracker::tests::reset_clears_provider_window_and_unknown_state ... ok
[INFO] [stdout] test agent::context_tracker::tests::unknown_after_compaction_is_not_overwritten_by_later_estimate ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_rejects_empty_questions ... ok
[INFO] [stdout] test agent::questionnaire::tests::questionnaire_question_serializes_type_field ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_rejects_text_questions_in_forms ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_trims_optional_fields ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_normalizes_multi_select_defaults_and_other ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_accepts_kind_alias ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_accepts_legacy_single_question ... ok
[INFO] [stdout] test agent::questionnaire::tests::parse_request_normalizes_choice_and_confirm_defaults ... ok
[INFO] [stdout] test agent::tests::does_not_retry_non_recoverable_provider_errors ... ok
[INFO] [stdout] test agent::tests::emits_provider_reported_context_usage_from_model_usage ... ok
[INFO] [stdout] test agent::tests::emits_estimated_context_usage_before_provider_call ... ok
[INFO] [stdout] test agent::tests::compaction_persists_replacement_history_without_initial_system_message ... ok
[INFO] [stdout] test agent::tests::compaction_summary_request_sends_no_tools ... ok
[INFO] [stdout] test agent::tests::emits_usage_for_compaction_summary_request ... ok
[INFO] [stdout] test agent::tests::compacts_history_before_normal_provider_call_when_threshold_is_exceeded_with_configured_context_window ... ok
[INFO] [stdout] test agent::tests::includes_session_derived_prompt_cache_key_in_model_requests ... ok
[INFO] [stdout] test agent::tests::manual_compaction_reports_when_history_cannot_be_compacted ... ok
[INFO] [stdout] test agent::tests::load_skill_truncates_contents_before_persisting ... ok
[INFO] [stdout] test agent::tests::empty_tool_registry_sends_no_tool_specs ... ok
[INFO] [stdout] test agent::tests::failed_compaction_summary_skips_compaction_and_turn_succeeds ... ok
[INFO] [stdout] test agent::tests::interrupting_before_tools_leaves_no_unmatched_tool_call ... ok
[INFO] [stdout] test agent::tests::compacts_after_tool_results_before_next_provider_call ... ok
[INFO] [stdout] test agent::tests::manual_compaction_works_when_auto_compaction_is_disabled ... ok
[INFO] [stdout] test agent::tests::preserves_history_across_runs ... ok
[INFO] [stdout] test agent::tests::invalid_questionnaire_arguments_return_failed_tool_result ... ok
[INFO] [stdout] test agent::tests::questionnaire_tool_is_only_advertised_when_handler_is_available ... ok
[INFO] [stdout] test agent::tests::questionnaire_tool_answer_is_returned_to_model ... ok
[INFO] [stdout] test agent::tests::read_file_event_content_keeps_plain_path_without_range ... ok
[INFO] [stdout] test agent::tests::read_file_event_content_shows_requested_line_range ... ok
[INFO] [stdout] test agent::tests::read_file_event_content_uses_default_range_bounds ... ok
[INFO] [stdout] test agent::tests::replace_history_keeps_initial_system_message ... ok
[INFO] [stdout] test agent::tests::replace_history_without_system_prompt_keeps_history_only ... ok
[INFO] [stdout] test agent::tests::skill_event_content_shows_skill_name_without_full_content ... ok
[INFO] [stdout] test agent::tests::retries_recoverable_invalid_response_errors ... ok
[INFO] [stdout] test agent::tests::unknown_after_compaction_is_not_overwritten_by_estimate_before_provider_usage ... ok
[INFO] [stdout] test agent::tests::unknown_tools_are_returned_to_model_without_stopping_loop ... ok
[INFO] [stdout] test agent::tests::reset_clears_history_back_to_system_prompt ... ok
[INFO] [stdout] test app::automation::tests::prompt_combines_inline_and_stdin ... ok
[INFO] [stdout] test app::automation::tests::prompt_joins_inline_parts ... ok
[INFO] [stdout] test app::automation::tests::prompt_requires_input ... ok
[INFO] [stdout] test agent::tests::without_system_prompt_sends_only_user_message ... ok
[INFO] [stdout] test agent::tests::tool_errors_are_returned_to_model_without_stopping_loop ... ok
[INFO] [stdout] test app::bootstrap::tests::unsupported_provider_is_nonfatal_for_interactive_startup ... ok
[INFO] [stdout] test app::cli_config::tests::cli_auth_override_wins_after_model_provider_auth ... ok
[INFO] [stdout] test agent::tests::questionnaire_tool_multi_question_answers_are_returned_to_model ... ok
[INFO] [stdout] test agent::tests::persists_all_tool_results_before_interrupting_tool_finished_events ... ok
[INFO] [stdout] test app::cli_config::tests::cli_model_override_with_provider_selects_matching_auth ... ok
[INFO] [stdout] test app::cli_config::tests::cli_reasoning_override_keeps_supported_gpt_5_6_effort ... ok
[INFO] [stdout] test app::cli_config::tests::cli_reasoning_override_remaps_unsupported_codex_effort ... ok
[INFO] [stdout] test app::cli_config::tests::cli_reasoning_override_updates_config ... ok
[INFO] [stdout] test app::cli_config::tests::cli_unqualified_model_override_keeps_provider_for_allowlisted_model ... ok
[INFO] [stdout] test app::cli_config::tests::validate_cli_rejects_resume_with_run_before_prompt_reading ... ok
[INFO] [stdout] test app::cli_config::tests::validate_cli_rejects_resume_with_update ... ok
[INFO] [stdout] test app::config_repository::tests::failed_save_does_not_return_the_update_value ... ok
[INFO] [stdout] test app::cli_config::tests::cli_anthropic_provider_override_without_cache_uses_builtin_default ... ok
[INFO] [stdout] test auth::codex_oauth::tests::authorize_url_contains_pkce_and_loopback_redirect ... ok
[INFO] [stdout] test auth::codex_oauth::tests::callback_parser_accepts_matching_state_and_code ... ok
[INFO] [stdout] test app::cli_config::tests::cli_github_copilot_provider_override_requires_cached_default ... ok
[INFO] [stdout] test auth::codex_oauth::tests::callback_parser_reports_oauth_error ... ok
[INFO] [stdout] test auth::codex_oauth::tests::callback_parser_rejects_state_mismatch ... ok
[INFO] [stdout] test app::config_repository::tests::update_loads_mutates_and_persists_config ... ok
[INFO] [stdout] test app::cli_config::tests::cli_anthropic_model_override_selects_matching_auth ... ok
[INFO] [stdout] test app::cli_config::tests::cli_github_copilot_model_override_selects_matching_auth ... ok
[INFO] [stdout] test auth::codex_oauth::tests::extracts_plan_from_id_token_claims ... ok
[INFO] [stdout] test auth::codex_oauth::tests::extracts_account_id_from_id_token_claims ... ok
[INFO] [stdout] test app::cli_config::tests::cli_anthropic_provider_override_uses_cached_default ... ok
[INFO] [stdout] test auth::codex_oauth::tests::unknown_plan_is_returned_for_invalid_or_missing_id_token_claims ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::cached_copilot_token_is_fresh_before_refresh_and_expiry ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::cached_copilot_token_refreshes_near_expiry_or_after_refresh_time ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::cached_material_uses_stored_endpoints ... ok
[INFO] [stdout] test app::cli_config::tests::cli_github_copilot_provider_override_uses_cached_default ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::token_endpoints_build_full_paths_from_api_base ... ok
[INFO] [stdout] test app::cli_config::tests::cli_github_copilot_provider_override_refreshes_empty_cache ... ok
[INFO] [stdout] test auth::codex_oauth::tests::codex_device_login_exchanges_authorization_code_for_tokens ... ok
[INFO] [stdout] test clipboard_image::tests::selects_only_supported_image_mime_types ... ok
[INFO] [stdout] test commands::tests::additional_leading_slashes_are_literal_text ... ok
[INFO] [stdout] test commands::tests::completes_command_and_preserves_args ... ok
[INFO] [stdout] test commands::tests::login_usage_accepts_provider_argument ... ok
[INFO] [stdout] test commands::tests::matches_all_commands_for_empty_slash_prefix ... ok
[INFO] [stdout] test commands::tests::matches_commands_by_case_insensitive_prefix ... ok
[INFO] [stdout] test commands::tests::matches_full_command_name ... ok
[INFO] [stdout] test commands::tests::matching_unknown_command_returns_no_matches ... ok
[INFO] [stdout] test commands::tests::multiline_slash_text_is_not_a_command ... ok
[INFO] [stdout] test commands::tests::parses_compact_command ... ok
[INFO] [stdout] test commands::tests::parses_logout_command_with_provider_argument ... ok
[INFO] [stdout] test commands::tests::parses_model_command_with_arguments ... ok
[INFO] [stdout] test commands::tests::parses_new_command ... ok
[INFO] [stdout] test commands::tests::parses_non_command_as_none ... ok
[INFO] [stdout] test commands::tests::parses_refresh_model_list_command_with_provider_argument ... ok
[INFO] [stdout] test commands::tests::parses_skills_command ... ok
[INFO] [stdout] test commands::tests::rejects_unknown_command ... ok
[INFO] [stdout] test commands::tests::slash_must_be_first_character_to_parse_as_command ... ok
[INFO] [stdout] test config::tests::default_shows_reasoning_output ... ok
[INFO] [stdout] test auth::codex_oauth::tests::codex_device_login_posts_client_id_and_parses_response ... ok
[INFO] [stdout] test auth::github_copilot_device::tests::github_copilot_device_login_posts_client_id_and_parses_response ... ok
[INFO] [stdout] test config::tests::loads_and_normalizes_compaction_percentages ... ok
[INFO] [stdout] test config::tests::loads_check_for_updates ... ok
[INFO] [stdout] test config::tests::loads_and_saves_favorite_models ... ok
[INFO] [stdout] test config::tests::loads_reasoning_output_visibility ... ok
[INFO] [stdout] test config::tests::loads_rtk_toggle ... ok
[INFO] [stdout] test config::tests::save_preserves_legacy_web_search_keys_when_credentials_are_unavailable ... ok
[INFO] [stdout] test config::tests::saved_config_omits_migrated_web_search_secrets ... ok
[INFO] [stdout] test config::tests::supported_web_search_config_provider_is_preserved ... ok
[INFO] [stdout] test config::tests::unsupported_web_search_config_providers_fall_back_to_auto ... ok
[INFO] [stdout] test credentials::tests::anthropic_api_key_round_trips_through_memory_store ... ok
[INFO] [stdout] test credentials::tests::api_key_round_trips_through_memory_store ... ok
[INFO] [stdout] test credentials::tests::available_auth_modes_includes_anthropic_api_key ... ok
[INFO] [stdout] test credentials::tests::chunk_account_names_are_derived_from_stable_base_account ... ok
[INFO] [stdout] test credentials::tests::chunk_manifest_supports_legacy_and_current_chunks ... ok
[INFO] [stdout] test config::tests::migrates_legacy_web_search_keys_to_credentials ... ok
[INFO] [stdout] test credentials::tests::chunk_secret_preserves_unicode_boundaries ... ok
[INFO] [stdout] test credentials::tests::codex_tokens_allow_missing_optional_fields ... ok
[INFO] [stdout] test credentials::tests::codex_tokens_round_trip_with_optional_fields ... ok
[INFO] [stdout] test credentials::tests::empty_github_copilot_env_override_is_not_active ... ok
[INFO] [stdout] test credentials::tests::github_copilot_tokens_round_trip_with_cached_token_fields ... ok
[INFO] [stdout] test credentials::tests::malformed_oauth_tokens_are_not_available_auth ... ok
[INFO] [stdout] test credentials::tests::web_search_api_keys_use_dedicated_accounts ... ok
[INFO] [stdout] test herdr::tests::disabled_without_complete_herdr_environment ... ok
[INFO] [stdout] test herdr::tests::enabled_from_complete_herdr_environment ... ok
[INFO] [stdout] test herdr::tests::release_sends_release_request ... ok
[INFO] [stdout] test herdr::tests::report_session_sends_session_reference ... ok
[INFO] [stdout] test credentials::tests::credential_account_names_are_stable ... ok
[INFO] [stdout] test herdr::tests::report_state_sends_herdr_json_rpc_request ... ok
[INFO] [stdout] test model::catalog::tests::available_models_filters_to_implemented_providers ... ok
[INFO] [stdout] test model::catalog::tests::anthropic_uncached_provider_model_is_rejected ... ok
[INFO] [stdout] test model::catalog::tests::available_models_for_auths_uses_static_catalog_for_subscription_models ... ok
[INFO] [stdout] test model::catalog::tests::bare_uncached_current_provider_model_is_rejected ... ok
[INFO] [stdout] test auth::github_copilot_device::tests::github_copilot_device_login_maps_access_denied ... ok
[INFO] [stdout] test auth::github_copilot_device::tests::github_copilot_device_login_polls_until_success ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::empty_env_token_does_not_disable_stored_refresh ... ok
[INFO] [stdout] test model::catalog::tests::github_copilot_requires_cached_models ... ok
[INFO] [stdout] test model::catalog::tests::non_allowlisted_codex_model_is_rejected ... ok
[INFO] [stdout] test model::catalog::tests::parses_embedded_model_catalog ... ok
[INFO] [stdout] test model::catalog::tests::bare_ambiguous_model_returns_error ... ok
[INFO] [stdout] test model::catalog::tests::login_targets_use_provider_names ... ok
[INFO] [stdout] test model::catalog::tests::resolves_bare_model_across_all_available_auths ... ok
[INFO] [stdout] test model::catalog::tests::resolves_bare_unique_codex_model ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::token_exchange_maps_unauthorized_to_missing_auth ... ok
[INFO] [stdout] test model::catalog::tests::unknown_provider_is_rejected ... ok
[INFO] [stdout] test model::context::tests::estimates_message_slices_without_request_or_tool_overhead ... ok
[INFO] [stdout] test model::context::tests::estimates_text_messages_with_overhead ... ok
[INFO] [stdout] test model::context::tests::includes_tool_calls_and_tool_results ... ok
[INFO] [stdout] test model::context::tests::includes_tool_schema_tokens ... ok
[INFO] [stdout] test model::context::tests::provider_usage_becomes_current_context_from_total_input ... ok
[INFO] [stdout] test model::favorites::tests::normalizes_favorites ... ok
[INFO] [stdout] test model::favorites::tests::reorders_available_models_by_favorites ... ok
[INFO] [stdout] test model::favorites::tests::toggles_favorites ... ok
[INFO] [stdout] test model::catalog::tests::resolves_anthropic_provider_model_selection ... ok
[INFO] [stdout] test model::catalog::tests::resolves_provider_model_selection ... ok
[INFO] [stdout] test model::github_copilot::tests::provider_construction_requires_available_auth ... ok
[INFO] [stdout] test model::models_dev::tests::builtin_gpt_55_overrides_use_safer_effective_windows ... ok
[INFO] [stdout] test model::openai::cache::tests::blank_session_id_does_not_create_cache_key ... ok
[INFO] [stdout] test model::openai::cache::tests::cache_key_is_clamped_and_stable_for_long_session_ids ... ok
[INFO] [stdout] test model::openai::cache::tests::cache_key_sanitizes_unsupported_characters ... ok
[INFO] [stdout] test model::openai::cache::tests::session_uuid_maps_to_stable_prefixed_key ... ok
[INFO] [stdout] test model::openai::codex_request::tests::gpt_5_6_models_use_responses_lite_without_incremental_websocket_continuation ... ok
[INFO] [stdout] test model::openai::codex_request::tests::responses_lite_moves_tools_and_instructions_into_input ... ok
[INFO] [stdout] test model::openai::codex_request::tests::responses_lite_sets_all_turns_reasoning_context ... ok
[INFO] [stdout] test model::catalog::tests::github_copilot_uses_cached_models_in_picker ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::builds_delta_body_when_next_input_extends_previous_input ... ok
[INFO] [stdout] test model::openai::codex_request::tests::standard_requests_keep_hosted_web_search_tool ... ok
[INFO] [stdout] test model::catalog::tests::resolves_bare_unique_anthropic_model ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::derives_websocket_url_from_codex_api_base ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::falls_back_to_full_request_without_previous_response_id ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_history_is_rewritten_by_compaction ... ok
[INFO] [stdout] test model::catalog::tests::resolves_bare_cached_api_model_to_provider ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_model_changes ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_prompt_cache_key_changes ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_reasoning_changes ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_tools_change ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::resets_when_tool_choice_changes ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::first_websocket_request_sends_full_input_without_previous_response_id ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::compatible_websocket_request_sends_delta_with_previous_response_id ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::websocket_fallback_does_not_emit_partial_events ... ok
[INFO] [stdout] test model::openai::tests::accumulates_streamed_tool_call_deltas ... ok
[INFO] [stdout] test model::openai::tests::chat_completions_request_does_not_serialize_prompt_cache_key ... ok
[INFO] [stdout] test model::openai::tests::chat_stream_usage_normalizes_prompt_cached_tokens ... ok
[INFO] [stdout] test model::openai::tests::codex_reasoning_param_omits_none_values ... ok
[INFO] [stdout] test model::openai::tests::codex_response_usage_normalizes_input_cached_tokens ... ok
[INFO] [stdout] test model::openai::tests::codex_responses_body_includes_prompt_cache_key_when_present ... ok
[INFO] [stdout] test model::openai::tests::codex_responses_body_omits_prompt_cache_key_when_absent ... ok
[INFO] [stdout] test model::openai::tests::codex_responses_body_uses_hosted_web_search_tool ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_collects_function_call ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_collects_response_id ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_emits_output_delta ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_emits_reasoning_summary_delta ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_emits_reasoning_text_delta ... ok
[INFO] [stdout] test model::openai::tests::codex_sse_line_emits_web_search_detail ... ok
[INFO] [stdout] test model::openai::tests::completed_response_text_preserves_url_annotations ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::websocket_error_resets_continuation_and_returns_full_sse_fallback ... ok
[INFO] [stdout] test model::openai::tests::extracts_completed_response_text_when_no_deltas ... ok
[INFO] [stdout] test model::openai::tests::extracts_sse_delta_text ... ok
[INFO] [stdout] test model::openai::tests::parses_chat_completion_stream_line_as_reasoning_delta ... ok
[INFO] [stdout] test model::openai::tests::parses_chat_completion_stream_line_as_output_delta ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::responses_lite_websocket_request_sets_lite_client_metadata ... ok
[INFO] [stdout] test model::github_copilot::tests::chat_request_preserves_model_and_streaming_flag ... ok
[INFO] [stdout] test model::openai::tests::reasoning_level_maps_to_codex_reasoning_param ... ok
[INFO] [stdout] test model::openai::tests::serializes_openai_native_tool_result ... ok
[INFO] [stdout] test model::openai::tests::serializes_openai_chat_image_content ... ok
[INFO] [stdout] test model::provider_models::tests::load_api_key_auth_reads_the_supplied_store ... ok
[INFO] [stdout] test model::provider_models::tests::openai_model_filter_keeps_chat_families ... ok
[INFO] [stdout] test model::openai::tests::serializes_codex_image_content ... ok
[INFO] [stdout] test model::provider_models::tests::parses_github_copilot_models_from_data_objects_and_deduplicates ... ok
[INFO] [stdout] test model::openai::codex_ws::tests::responses_lite_websocket_requests_do_not_use_incomplete_continuation_state ... ok
[INFO] [stdout] test paths::tests::does_not_use_windows_fallbacks_on_unix ... ok
[INFO] [stdout] test paths::tests::uses_home_when_set ... ok
[INFO] [stdout] test model::openai::tests::trims_sse_line_end_after_full_utf8_line ... ok
[INFO] [stdout] test auth::github_copilot_token::tests::token_exchange_persists_endpoints_and_returns_material ... ok
[INFO] [stdout] test prompt::tests::includes_valid_skills_with_names_and_descriptions ... ok
[INFO] [stdout] test prompt::tests::keeps_web_access_guidance_concise_and_lazy ... ok
[INFO] [stdout] test prompt::tests::skips_missing_agents_files ... ok
[INFO] [stdout] test prompt::tests::skips_skills_when_skill_tool_is_unavailable ... ok
[INFO] [stdout] test provider::tests::provider_auth_metadata_exposes_stable_storage_and_environment_keys ... ok
[INFO] [stdout] test provider::tests::provider_ids_have_unique_descriptors_and_lookup_round_trips ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::converts_messages_and_tools_to_anthropic_shape ... ok
[INFO] [stdout] test prompt::tests::includes_home_and_project_agents_files_in_order ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::converts_user_images_to_anthropic_shape ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::maps_nested_cache_creation_usage ... ok
[INFO] [stdout] test prompt::tests::includes_parent_agents_files_before_child_agents_files ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::marks_failed_tool_results_as_errors ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::merges_consecutive_same_role_messages ... ok
[INFO] [stdout] test provider_backend::anthropic::stream::tests::stream_error_event_returns_error ... ok
[INFO] [stdout] test model::provider_models::tests::provider_model_cache_migrates_old_schema ... ok
[INFO] [stdout] test provider_backend::anthropic::stream::tests::streams_message_delta_usage_as_output_only ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::converts_response_text_and_tool_use ... ok
[INFO] [stdout] test provider_backend::anthropic::convert::tests::maps_usage ... ok
[INFO] [stdout] test provider_backend::anthropic::stream::tests::streams_text_deltas_and_usage ... ok
[INFO] [stdout] test provider_backend::anthropic::stream::tests::streams_tool_use_input_json_deltas ... ok
[INFO] [stdout] test model::provider_models::tests::provider_model_cache_replaces_one_provider_and_preserves_max_tokens ... ok
[INFO] [stdout] test reasoning::tests::cycles_through_all_reasoning_levels ... ok
[INFO] [stdout] test reasoning::tests::enables_max_effort_for_gpt_5_6_codex_models ... ok
[INFO] [stdout] test reasoning::tests::maps_reasoning_levels_to_provider_effort ... ok
[INFO] [stdout] test reasoning::tests::parses_and_displays_max_reasoning_level ... ok
[INFO] [stdout] test reasoning::tests::remaps_unsupported_max_effort_before_building_provider ... ok
[INFO] [stdout] test reasoning::tests::skips_unsupported_max_effort_for_older_codex_models ... ok
[INFO] [stdout] test session::index::tests::open_index_creates_schema ... ok
[INFO] [stdout] test session::tests::creates_session_paths_with_private_permissions ... ok
[INFO] [stdout] test session::tests::drops_incomplete_tool_call_tail_on_load ... ok
[INFO] [stdout] test session::tests::append_message_updates_session_summary ... ok
[INFO] [stdout] test config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written ... FAILED
[INFO] [stdout] test session::tests::errors_when_uuid_prefix_is_missing ... ok
[INFO] [stdout] test session::tests::errors_when_uuid_prefix_is_ambiguous ... ok
[INFO] [stdout] test session::tests::ignores_truncated_final_json_line_on_load ... ok
[INFO] [stdout] test model::github_copilot::tests::chat_retries_once_after_unauthorized_with_refreshed_endpoint ... ok
[INFO] [stdout] test session::tests::keeps_complete_tool_call_turn_on_load ... ok
[INFO] [stdout] test session::tests::list_backfills_existing_sessions_and_sorts_newest_first ... ok
[INFO] [stdout] test session::tests::opens_session_by_uuid_prefix ... ok
[INFO] [stdout] test session::tests::persists_and_loads_messages ... ok
[INFO] [stdout] test session::tests::list_removes_stale_index_rows ... ok
[INFO] [stdout] test session::tests::workspace_key_avoids_separator_collisions ... ok
[INFO] [stdout] test skills::tests::discovers_project_skills_from_ancestor_directories ... ok
[INFO] [stdout] test skills::tests::discovers_valid_skills_in_order ... ok
[INFO] [stdout] test session::tests::replace_history_round_trips_compacted_messages ... ok
[INFO] [stdout] test skills::tests::parses_block_scalar_chomping_description ... ok
[INFO] [stdout] test skills::tests::prefers_nearest_project_skill_when_names_duplicate ... ok
[INFO] [stdout] test skills::tests::parses_block_scalar_description ... ok
[INFO] [stdout] test skills::tests::rejects_invalid_name_format ... ok
[INFO] [stdout] test skills::tests::rejects_missing_frontmatter ... ok
[INFO] [stdout] test skills::tests::rejects_name_that_does_not_match_directory ... ok
[INFO] [stdout] test skills::tests::rejects_empty_description ... ok
[INFO] [stdout] test tool::tests::compact_display_path_normalizes_relative_children ... ok
[INFO] [stdout] test tool::tests::compact_display_path_renders_cwd_as_dot ... ok
[INFO] [stdout] test tool::tests::tool_display_style_is_recovered_from_tool_name ... ok
[INFO] [stdout] test tool::tests::truncate_allows_exact_utf8_boundary ... ok
[INFO] [stdout] test tool::tests::truncate_does_not_split_utf8_character ... ok
[INFO] [stdout] test tool::tests::truncate_keeps_ascii_prefix ... ok
[INFO] [stdout] test skills::tests::skips_duplicate_skill_names_after_first_match ... ok
[INFO] [stdout] test session::tests::replace_history_is_append_only_but_model_replay_uses_latest_replacement ... ok
[INFO] [stdout] test tools::edit_file::tests::edits_bare_cr_file_with_lf_tool_strings ... ok
[INFO] [stdout] test tools::edit_file::tests::edits_crlf_file_with_lf_tool_strings ... ok
[INFO] [stdout] test tools::edit_file::tests::edits_lf_file_with_crlf_tool_strings ... ok
[INFO] [stdout] test tools::edit_file::tests::rejects_identical_old_and_new_string ... ok
[INFO] [stdout] test tools::edit_file::tests::replace_all_preserves_mixed_line_endings_outside_matches ... ok
[INFO] [stdout] test tools::edit_file::tests::replaces_unique_occurrence ... ok
[INFO] [stdout] test tools::edit_file::tests::reports_missing_old_string ... ok
[INFO] [stdout] test session::tests::stores_sessions_under_session_root_workspace_key ... ok
[INFO] [stdout] test tools::read_file::tests::rejects_offset_past_end_of_file ... ok
[INFO] [stdout] test tools::read_file::tests::rejects_zero_limit ... ok
[INFO] [stdout] test tools::read_file::tests::reads_selected_line_range ... ok
[INFO] [stdout] test tools::rtk::tests::old_rtk_versions_do_not_support_rewrite ... ok
[INFO] [stdout] test tools::read_file::tests::rejects_zero_offset ... ok
[INFO] [stdout] test tools::rtk::tests::parses_rtk_versions ... ok
[INFO] [stdout] test tools::skill::tests::loads_skill_contents ... ok
[INFO] [stdout] test session::tests::replace_history_updates_session_summary ... ok
[INFO] [stdout] test tools::skill::tests::rejects_unknown_skill_name ... ok
[INFO] [stdout] test tools::skill::tests::truncates_loaded_skill_contents ... ok
[INFO] [stdout] test tools::tests::registry_includes_available_web_access_tools ... ok
[INFO] [stdout] test tools::tests::registry_omits_web_search_when_disabled ... ok
[INFO] [stdout] test tools::web::tests::content_availability_matches_stored_content_kind ... ok
[INFO] [stdout] test tools::web::tests::get_search_content_rejects_invalid_response_id ... ok
[INFO] [stdout] test tools::web::tests::parses_github_root_tree_blob_and_commit_urls ... ok
[INFO] [stdout] test tools::web::tests::search_item_content_preserves_snippet_when_fetch_fails ... ok
[INFO] [stdout] test tools::web::tests::search_provider_parses_tool_and_config_values ... ok
[INFO] [stdout] test tools::web::tests::tool_specs_preserve_public_names ... ok
[INFO] [stdout] test tools::web::tests::fetch_content_stores_local_file_content ... ok
[INFO] [stdout] test tools::web::tests::web_search_stores_stub_content_when_provider_is_unavailable ... ok
[INFO] [stdout] test tools::write_file::tests::reports_overwritten_file ... ok
[INFO] [stdout] test tools::write_file::tests::writes_file_and_creates_parent_dirs ... ok
[INFO] [stdout] test tui::config_editor::tests::editor_cursor_navigation_is_unicode_safe ... ok
[INFO] [stdout] test tui::config_editor::tests::editor_preserves_legacy_web_search_key_when_store_is_unavailable ... ok
[INFO] [stdout] test tui::config_editor::tests::editor_uses_legacy_web_search_key_when_store_has_no_entry ... ok
[INFO] [stdout] test tui::config_editor::tests::number_input_accepts_only_ascii_digits ... ok
[INFO] [stdout] test tui::config_editor::tests::text_input_strips_line_breaks_and_edits_at_character_cursor ... ok
[INFO] [stdout] test tui::config_picker::tests::badge_is_unset_without_stored_or_legacy_web_search_key ... ok
[INFO] [stdout] test tui::config_picker::tests::badge_uses_legacy_web_search_key_when_store_has_no_entry ... ok
[INFO] [stdout] test tui::config_picker::tests::badge_uses_legacy_web_search_key_when_store_is_unavailable ... ok
[INFO] [stdout] test tui::file_picker::tests::email_like_tokens_do_not_open_file_mentions ... ok
[INFO] [stdout] test tui::file_picker::tests::finds_mention_at_cursor ... ok
[INFO] [stdout] test tui::file_picker::tests::mention_starts_after_newline ... ok
[INFO] [stdout] test tui::file_picker::tests::text_after_mention_is_not_part_of_query ... ok
[INFO] [stdout] test tui::history_cache::tests::caches_code_block_copy_target_and_raw_contents ... ok
[INFO] [stdout] test tui::history_cache::tests::invalidating_an_assistant_entry_refreshes_code_block_contents ... ok
[INFO] [stdout] test tui::markdown::table_tests::renders_markdown_tables_with_alignment_and_inline_styles ... ok
[INFO] [stdout] test tui::markdown::table_tests::table_parser_preserves_an_escaped_trailing_pipe_without_a_border ... ok
[INFO] [stdout] test tui::markdown::table_tests::table_parser_preserves_escaped_pipes_and_code_spans ... ok
[INFO] [stdout] test tui::markdown::table_tests::table_parser_preserves_pipes_in_multi_backtick_code_spans ... ok
[INFO] [stdout] test tui::markdown::table_tests::table_parser_stops_before_lines_with_only_protected_pipes ... ok
[INFO] [stdout] test tui::markdown::table_tests::wraps_table_cells_to_fit_available_width ... ok
[INFO] [stdout] test tui::file_picker::tests::picker_lists_workspace_files_and_respects_gitignore ... ok
[INFO] [stdout] test tui::markdown::tests::code_blocks_preserve_markdown_markers_as_literal_text ... ok
[INFO] [stdout] test tui::markdown::tests::preserves_underscores_inside_identifiers ... ok
[INFO] [stdout] test tui::markdown::tests::renders_code_blocks_with_closed_borders ... ok
[INFO] [stdout] test tui::markdown::tests::code_block_padding_uses_display_width ... ok
[INFO] [stdout] test tui::markdown::tests::stream_preview_renderer_can_hide_inactive_copy_buttons ... ok
[INFO] [stdout] test tui::markdown::tests::renders_divider_lines ... ok
[INFO] [stdout] test tui::markdown::tests::styles_inline_code_bold_italic_and_links_without_markers ... ok
[INFO] [stdout] test tui::model_picker::tests::model_picker_orders_pinned_models_before_selected_model ... ok
[INFO] [stdout] test tui::paste_burst::tests::enter_after_idle_gap_is_not_part_of_paste ... ok
[INFO] [stdout] test tui::model_picker::tests::running_model_picker_marks_pending_model_and_explains_timing ... ok
[INFO] [stdout] test tui::paste_burst::tests::enter_suppression_survives_literal_flush ... ok
[INFO] [stdout] test tui::paste_burst::tests::rapid_plain_text_burst_extends_enter_suppression ... ok
[INFO] [stdout] test tui::paste_burst::tests::single_char_enter_is_not_buffered_as_paste ... ok
[INFO] [stdout] test tui::questionnaire::tests::cancel_sends_user_cancelled_reply ... ok
[INFO] [stdout] test tui::questionnaire::tests::cursor_counts_whitespace_wrapped_question_lines ... ok
[INFO] [stdout] test tui::questionnaire::tests::multi_select_default_preserves_commas ... ok
[INFO] [stdout] test tui::questionnaire::tests::required_confirm_without_default_requires_explicit_choice ... ok
[INFO] [stdout] test tui::questionnaire::tests::submit_sends_selection_answers ... ok
[INFO] [stdout] test tui::questionnaire::tests::word_navigation_and_deletion_stay_with_composer_state ... ok
[INFO] [stdout] test model::provider_models::tests::github_copilot_models_retry_once_after_unauthorized ... ok
[INFO] [stdout] test tui::render::tests::assistant_markdown_renders_divider_lines ... ok
[INFO] [stdout] test tui::render::tests::assistant_markdown_styles_code_blocks ... ok
[INFO] [stdout] test tui::render::tests::assistant_markdown_styles_inline_code_bold_and_italic ... ok
[INFO] [stdout] test session::tests::set_title_updates_session_summary ... ok
[INFO] [stdout] test provider_backend::anthropic::tests::request_body_serializes_messages_tools_and_stream_flag ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_and_rendering_agree_on_exact_width_trailing_space ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_and_rendering_agree_on_whitespace_boundary ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_keeps_multibyte_boundaries ... ok
[INFO] [stdout] test tools::bash::tests::returns_lossy_output_for_non_utf8_bytes ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_preserves_trailing_newline_state ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_prefers_whitespace_boundaries ... ok
[INFO] [stdout] test tui::render::tests::display_width_ignores_control_characters_filtered_by_ratatui ... ok
[INFO] [stdout] test tui::render::tests::complete_visual_prefix_wraps_at_exact_width ... ok
[INFO] [stdout] test tui::render::tests::long_words_still_hard_wrap ... ok
[INFO] [stdout] test tui::render::tests::stream_fragment_rendering_preserves_blank_lines ... ok
[INFO] [stdout] test tui::render::tests::narrow_picker_rows_do_not_exceed_width ... ok
[INFO] [stdout] test tui::render::tests::wrapped_text_handles_wide_chars_in_narrow_width ... ok
[INFO] [stdout] test tui::render::tests::wrapped_text_prefers_whitespace_boundaries ... ok
[INFO] [stdout] test tui::render::tests::wrapped_text_preserves_leading_repeated_and_trailing_whitespace ... ok
[INFO] [stdout] test tui::render::tests::wrapped_text_preserves_tabs_and_whitespace_only_lines ... ok
[INFO] [stdout] test tui::scrollbar::tests::anchors_to_history_right_edge ... ok
[INFO] [stdout] test tui::render::tests::wrapped_text_preserves_whitespace_when_breaking_at_boundary ... ok
[INFO] [stdout] test tui::scrollbar::tests::clicking_track_centers_thumb_on_pointer ... ok
[INFO] [stdout] test tui::scrollbar::tests::hides_when_history_fits_viewport ... ok
[INFO] [stdout] test tui::scrollbar::tests::maps_pointer_rows_to_scroll_positions ... ok
[INFO] [stdout] test tui::render::tests::tool_block_with_tabs_fills_the_full_width ... ok
[INFO] [stdout] test tui::session_picker::tests::picker_excludes_current_session ... ok
[INFO] [stdout] test tui::session_picker::tests::picker_shows_title_and_first_message_preview ... ok
[INFO] [stdout] test tui::session_picker::tests::picker_uses_first_user_message_when_title_is_missing ... ok
[INFO] [stdout] test tui::statusline::tests::cache_hit_percentage_uses_latest_usage_not_cumulative_totals ... ok
[INFO] [stdout] test tui::scrollbar::tests::bottom_position_uses_bottom_scroll_state ... ok
[INFO] [stdout] test tui::scrollbar::tests::dragging_thumb_does_not_jump_on_mouse_down ... ok
[INFO] [stdout] test tui::statusline::tests::estimated_statusline_cost_uses_normalized_input_and_cache_read ... ok
[INFO] [stdout] test tui::statusline::tests::cache_hit_percentage_uses_latest_usage_prompt_tokens ... ok
[INFO] [stdout] test tui::statusline::tests::context_percentage_uses_current_context_not_cumulative_usage ... ok
[INFO] [stdout] test tui::stream::tests::exact_width_text_keeps_trailing_space_pending_until_finish ... ok
[INFO] [stdout] test tui::stream::tests::drains_only_complete_newline_terminated_lines ... ok
[INFO] [stdout] test tui::stream::tests::drains_full_width_wrapped_visual_lines ... ok
[INFO] [stdout] test tui::statusline::tests::provider_reported_context_omits_estimate_marker ... ok
[INFO] [stdout] test tui::statusline::tests::statusline_rows_use_display_width_for_alignment ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_allows_complete_literal_brackets ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_emits_complete_long_spans ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_hard_wraps_code_block_content ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_uses_code_block_content_width ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_uses_display_width_in_code_blocks ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_allows_literal_unmatched_markers ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_uses_rendered_width_for_trailing_spaces_and_exact_wraps ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_waits_for_complete_inline_code_before_wrapping ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_waits_for_complete_emphasis_before_wrapping ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_waits_when_second_raw_url_is_incomplete ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_waits_for_complete_link_before_wrapping ... ok
[INFO] [stdout] test tui::stream::tests::markdown_preview_does_not_emit_unsafe_code_fence_fragment ... ok
[INFO] [stdout] test tui::stream::tests::newline_after_full_width_wrap_updates_text_without_extra_visual_line ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_allows_markers_inside_code_blocks ... ok
[INFO] [stdout] test tui::stream::tests::markdown_drain_waits_for_complete_code_fence_line ... ok
[INFO] [stdout] test tui::stream::tests::preserves_blank_lines_and_multibyte_boundaries ... ok
[INFO] [stdout] test tui::stream::tests::preview_does_not_drain_pending_or_commit_emitted_text ... ok
[INFO] [stdout] test tui::stream::tests::reset_clears_pending_emitted_and_leading_blank_state ... ok
[INFO] [stdout] test tui::stream::tests::returned_fragments_are_append_only ... ok
[INFO] [stdout] test tui::stream::tests::second_newline_after_full_width_wrap_renders_blank_line ... ok
[INFO] [stdout] test tui::tests::active_lines_do_not_render_pending_stream_text ... ok
[INFO] [stdout] test tui::tests::active_lines_separate_spinner_from_content_with_blank_line ... ok
[INFO] [stdout] test tui::tests::active_lines_for_height_uses_actual_viewport_height ... ok
[INFO] [stdout] test tui::tests::alt_up_removed_queued_messages_do_not_enter_prompt_history ... ok
[INFO] [stdout] test tui::tests::bash_tool_block_shows_command ... ok
[INFO] [stdout] test tui::tests::active_lines_hide_spinner_when_idle ... ok
[INFO] [stdout] test tui::tests::alt_up_recalls_last_queued_message_for_editing ... ok
[INFO] [stdout] test tui::tests::clamping_bottom_scroll_preserves_scrollbar_hover ... ok
[INFO] [stdout] test tui::tests::command_palette_renders_under_message_box ... ok
[INFO] [stdout] test tui::tests::command_palette_rendering_shows_selected_match ... ok
[INFO] [stdout] test tui::tests::command_palette_visibility_tracks_leading_command_token ... ok
[INFO] [stdout] test tui::tests::bottom_scroll_follows_new_output ... ok
[INFO] [stdout] test tui::tests::command_selection_clamps_to_available_matches ... ok
[INFO] [stdout] test tui::tests::compact_jump_button_renders_on_narrow_terminals ... ok
[INFO] [stdout] test tui::tests::clicking_scrollbar_track_jumps_history_scroll ... ok
[INFO] [stdout] test tui::tests::command_suggestions_truncate_long_descriptions ... ok
[INFO] [stdout] test tui::tests::command_palette_anchors_last_suggestion_to_viewport_bottom ... ok
[INFO] [stdout] test tui::tests::clicking_hidden_scrollbar_does_not_scroll_history ... ok
[INFO] [stdout] test tui::tests::complete_slash_command_inserts_prefixed_skill_command ... ok
[INFO] [stdout] test tui::tests::context_usage_event_is_tracked_separately_from_cumulative_usage ... ok
[INFO] [stdout] test tui::tests::dragging_scrollbar_updates_history_scroll ... ok
[INFO] [stdout] test tui::tests::estimated_usage_cost_uses_normalized_input_and_cache_read ... ok
[INFO] [stdout] test tui::tests::editing_input_exits_history_navigation ... ok
[INFO] [stdout] test tui::tests::exit_summary_is_minimal_and_session_only ... ok
[INFO] [stdout] test tui::tests::file_picker_fuzzy_matching_prefers_path_component_boundaries ... ok
[INFO] [stdout] test tui::tests::expanded_tool_block_shows_full_multiline_output ... ok
[INFO] [stdout] test tui::tests::final_answer_delta_handles_unstreamed_suffix_and_mismatch ... ok
[INFO] [stdout] test tui::tests::final_answer_mismatch_replaces_interleaved_current_turn_assistant_fragments ... ok
[INFO] [stdout] test tui::tests::final_answer_mismatch_replaces_transcript_with_empty_answer ... ok
[INFO] [stdout] test tui::tests::final_answer_mismatch_replaces_transcript_without_duplicating_entry ... ok
[INFO] [stdout] test tui::tests::fullscreen_history_starts_at_bottom ... ok
[INFO] [stdout] test tui::tests::idle_key_event_text_is_inserted_without_paste_marker ... ok
[INFO] [stdout] test tui::tests::favorite_save_failure_keeps_model_picker_open ... ok
[INFO] [stdout] test tui::tests::image_paste_is_unavailable_while_running ... ok
[INFO] [stdout] test tui::tests::esc_from_nested_web_search_config_returns_to_main_config ... ok
[INFO] [stdout] test tui::tests::esc_from_main_config_still_closes_picker ... ok
[INFO] [stdout] test tui::tests::input_history_recalls_previous_messages_and_restores_draft ... ok
[INFO] [stdout] test tui::tests::history_lines_include_header_transcript_pending_preview_and_spinner ... ok
[INFO] [stdout] test tui::tests::input_divider_style_tracks_reasoning_level ... ok
[INFO] [stdout] test tui::tests::draw_anchors_last_live_line_to_viewport_bottom ... ok
[INFO] [stdout] test tui::tests::input_history_clears_paste_segments_and_restores_draft_segments ... ok
[INFO] [stdout] test tui::tests::loading_spinner_line_separates_frame_from_text ... ok
[INFO] [stdout] test tui::tests::logout_provider_picker_uses_only_providers_with_stored_credentials ... ok
[INFO] [stdout] test tui::tests::jump_button_renders_above_composer_only_when_scrolled_up ... ok
[INFO] [stdout] test tui::tests::login_provider_picker_uses_provider_names_only ... ok
[INFO] [stdout] test tui::tests::long_input_keeps_statusline_and_cursor_visible ... ok
[INFO] [stdout] test tui::tests::loading_spinner_advances_frames ... ok
[INFO] [stdout] test tui::tests::logout_provider_picker_propagates_credential_store_errors ... ok
[INFO] [stdout] test tui::tests::manual_scroll_preserves_top_line_when_new_output_arrives ... ok
[INFO] [stdout] test tui::tests::key_event_paste_burst_collapses_through_common_paste_path ... ok
[INFO] [stdout] test tui::tests::mouse_tests::dragging_transcript_text_copies_on_mouse_release ... ok
[INFO] [stdout] test tui::tests::pagedown_moves_manual_scroll_toward_bottom ... ok
[INFO] [stdout] test tui::tests::model_picker_uses_all_available_auths ... ok
[INFO] [stdout] test tui::tests::mouse_wheel_scrolls_history_and_clicking_jump_button_returns_to_bottom ... ok
[INFO] [stdout] test tui::tests::paste_normalization_converts_crlf_and_cr ... ok
[INFO] [stdout] test tui::tests::paste_segment_is_removed_when_marker_is_edited ... ok
[INFO] [stdout] test tui::tests::normalize_paste_converts_carriage_returns ... ok
[INFO] [stdout] test tui::tests::pasted_multiline_input_collapses_to_marker_and_expands ... ok
[INFO] [stdout] test tui::tests::pageup_enters_manual_scroll_and_ctrl_g_returns_to_bottom ... ok
[INFO] [stdout] test tui::tests::paste_segments_shift_after_edits_before_marker ... ok
[INFO] [stdout] test tui::tests::pasted_single_line_input_stays_literal_until_large ... ok
[INFO] [stdout] test tui::tests::picker_lines_use_single_column_without_details ... ok
[INFO] [stdout] test tui::tests::mouse_tests::code_block_copy_button_hovers_and_copies_raw_contents ... ok
[INFO] [stdout] test tui::tests::picker_selection_wraps ... ok
[INFO] [stdout] test tui::tests::queued_pasted_prompt_preserves_leading_space_segment_offsets ... ok
[INFO] [stdout] test tui::tests::picker_lines_render_name_detail_table_with_truncated_detail ... ok
[INFO] [stdout] test tui::tests::read_file_tool_block_shows_file_name_only ... ok
[INFO] [stdout] test tui::tests::picker_renders_in_place_of_message_box ... ok
[INFO] [stdout] test tui::tests::queued_pasted_prompt_keeps_marker_when_recalled_for_editing ... ok
[INFO] [stdout] test tui::tests::recovered_history_tail_limits_initial_redraw ... ok
[INFO] [stdout] test tui::tests::sanitizes_generated_session_title ... ok
[INFO] [stdout] test tui::tests::recovered_session_messages_become_transcript_entries ... ok
[INFO] [stdout] test tui::tests::scrollbar_renders_briefly_after_mouse_wheel_scroll ... ok
[INFO] [stdout] test tui::tests::secret_input_masks_api_key ... ok
[INFO] [stdout] test tui::tests::scrollbar_renders_while_hovered ... ok
[INFO] [stdout] test tui::tests::read_file_tool_block_shows_line_range_label ... ok
[INFO] [stdout] test tui::tests::single_character_fast_enter_is_not_treated_as_paste ... ok
[INFO] [stdout] test tui::tests::skill_tool_block_uses_subtle_red_failure_background ... ok
[INFO] [stdout] test tui::tests::scrollbar_hides_until_scroll_or_hover ... ok
[INFO] [stdout] test tui::tests::slash_command_args_preserves_text_after_skill_command ... ok
[INFO] [stdout] test tui::tests::skill_tool_block_shows_single_magenta_status_line ... ok
[INFO] [stdout] test tui::tests::slash_command_args_can_keep_collapsed_display_separate_from_expanded_prompt ... ok
[INFO] [stdout] test tui::tests::status_notice_suppresses_consecutive_duplicates ... ok
[INFO] [stdout] test tui::tests::small_scroll_to_rendered_bottom_resumes_bottom_following ... ok
[INFO] [stdout] test tui::tests::title_model_defaults_to_main_model ... ok
[INFO] [stdout] test tui::tests::tool_block_truncates_multiline_output_with_expand_prompt ... ok
[INFO] [stdout] test tui::tests::transcript_and_status_mutations_do_not_require_a_terminal ... ok
[INFO] [stdout] test tui::tests::step_started_clears_stream_state ... ok
[INFO] [stdout] test tui::tests::untruncated_tool_block_does_not_show_expand_prompt ... ok
[INFO] [stdout] test tui::tests::toggling_latest_truncated_tool_collapses_previous_tool ... ok
[INFO] [stdout] test tui::tests::usage_event_tracks_latest_usage_separately_from_cumulative_totals ... ok
[INFO] [stdout] test tui::tests::transcript_entries_render_without_prefix_labels ... ok
[INFO] [stdout] test tui::text_selection::tests::copy_notice_reports_the_character_count ... ok
[INFO] [stdout] test tui::text_selection::tests::click_without_drag_does_not_copy ... ok
[INFO] [stdout] test tui::text_selection::tests::excludes_code_block_copy_button_from_drag_selection ... ok
[INFO] [stdout] test tui::text_selection::tests::extracts_forward_selection_across_rendered_lines ... ok
[INFO] [stdout] test tui::text_selection::tests::highlights_selected_screen_cells ... ok
[INFO] [stdout] test tui::tests::web_search_config_restore_keeps_api_key_row_selected ... ok
[INFO] [stdout] test tui::theme::tests::chooses_dark_block_foreground_for_light_resolved_backgrounds ... ok
[INFO] [stdout] test tui::theme::tests::parses_osc_palette_response ... ok
[INFO] [stdout] test tui::theme::tests::resolved_ansi_background_keeps_rgb_for_foreground_contrast ... ok
[INFO] [stdout] test tui::text_selection::tests::extracts_backward_selection_in_reading_order ... ok
[INFO] [stdout] test tui::text_selection::tests::selecting_any_cell_of_a_wide_grapheme_copies_the_whole_grapheme ... ok
[INFO] [stdout] test tui::theme::tests::blends_toward_terminal_ansi_color ... ok
[INFO] [stdout] test update::tests::detects_cargo_root_from_parent_bin_directory ... ok
[INFO] [stdout] test update::tests::compares_dotted_versions ... ok
[INFO] [stdout] test update::tests::detects_crate_in_cargo_install_list_output ... ok
[INFO] [stdout] test update::tests::extracts_release_please_tag_version ... ok
[INFO] [stdout] test update::tests::pacman_update_command_refreshes_sync_database ... ok
[INFO] [stdout] test update::tests::script_update_command_display_preserves_curl_failure_status ... ok
[INFO] [stdout] test update::tests::script_update_command_display_uses_platform_installer ... ok
[INFO] [stdout] test workspace::tests::returns_only_cwd_outside_git_worktree ... ok
[INFO] [stdout] test workspace::tests::returns_git_root_through_cwd ... ok
[INFO] [stdout] test tui::tests::long_picker_filter_does_not_clip_bottom_status ... ok
[INFO] [stdout] test tui::tests::picker_filters_by_regex_and_autocompletes ... ok
[INFO] [stdout] test tools::web::tests::fetch_content_reads_local_http_response ... ok
[INFO] [stdout] test tools::bash::tests::timeout_error_includes_partial_output ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written' (3640) panicked at src/config.rs:600:9:
[INFO] [stdout] provider = "openai"
[INFO] [stdout] model = "gpt-5.5"
[INFO] [stdout] max_output_bytes = 12000
[INFO] [stdout] max_tool_output_lines = 10
[INFO] [stdout] auth = "api-key"
[INFO] [stdout] reasoning = "medium"
[INFO] [stdout] show_reasoning_output = true
[INFO] [stdout] auto_compact = false
[INFO] [stdout] compact_threshold_percent = 85
[INFO] [stdout] compact_target_percent = 50
[INFO] [stdout] favorite_models = []
[INFO] [stdout] web_search_provider = "auto"
[INFO] [stdout] check_for_updates = true
[INFO] [stdout] rtk = true
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x618244aea6f8 - 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:     0x618244aea6f8 - 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:     0x618244aea6f8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x618244aea6f8 - <<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:     0x618244b0410a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x618244b0410a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x618244af0ae2 - 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:     0x618244af0ae2 - <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:     0x618244ac4b36 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x618244ac4b36 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x618244ae1209 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x618243edd9bc - <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:     0x618243edd9bc - 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:     0x618244ae1482 - <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:     0x618244ae1482 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x618244ac4bf2 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x618244ab94e9 - 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:     0x618244ac5c4d - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x618244b0494c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6182433d87e7 - rho_coding_agent[19beb629be146461]::config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:600:9
[INFO] [stdout]   20:     0x61824339bdf7 - rho_coding_agent[19beb629be146461]::config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/config.rs:575:74
[INFO] [stdout]   21:     0x618243679816 - <rho_coding_agent[19beb629be146461]::config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written::{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]   22:     0x618243ed0a9b - <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]   23:     0x618243ed0a9b - 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]   24:     0x618243ede315 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   25:     0x618243ede315 - <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]   26:     0x618243ede315 - 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]   27:     0x618243ede315 - 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]   28:     0x618243ede315 - 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]   29:     0x618243ede315 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   30:     0x618243ede315 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   31:     0x618243ed7c24 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   32:     0x618243ed7c24 - 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]   33:     0x618243ee1392 - 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]   34:     0x618243ee1392 - <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]   35:     0x618243ee1392 - 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]   36:     0x618243ee1392 - 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]   37:     0x618243ee1392 - 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]   38:     0x618243ee1392 - 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]   39:     0x618243ee1392 - <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]   40:     0x618244ae94ef - <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]   41:     0x618244ae94ef - <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]   42:     0x75a138b2eaa4 - <unknown>
[INFO] [stdout]   43:     0x75a138bbba64 - clone
[INFO] [stdout]   44:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     config::tests::load_succeeds_when_migrated_credential_cleanup_cannot_be_written
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 530 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.41s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d", kill_on_drop: false }`
[INFO] [stdout] c3251cef38ecd4e7cee7baa78a8f82a5972596dced2a3c1e1379da48f993906d
