[INFO] fetching crate phx 0.7.1...
[INFO] testing phx-0.7.1 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate phx 0.7.1 into /workspace/builds/worker-3-tc1/source
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate phx 0.7.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate phx 0.7.1
[INFO] tweaked toml for crates.io crate phx 0.7.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate phx 0.7.1 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 crates.io crate phx 0.7.1 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 wasm-streams v0.4.2
[INFO] [stderr]   Downloaded uuid v1.23.1
[INFO] [stderr]   Downloaded fancy-regex v0.16.2
[INFO] [stderr]   Downloaded line-clipping v0.3.7
[INFO] [stderr]   Downloaded ratatui-textarea v0.9.1
[INFO] [stderr]   Downloaded lru v0.16.4
[INFO] [stderr]   Downloaded tower-http v0.6.10
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded predicates-core v1.0.10
[INFO] [stderr]   Downloaded normalize-line-endings v0.3.0
[INFO] [stderr]   Downloaded unicode-width v0.2.0
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded difflib v0.4.0
[INFO] [stderr]   Downloaded float-cmp v0.10.0
[INFO] [stderr]   Downloaded predicates v3.1.4
[INFO] [stderr]   Downloaded predicates-tree v1.0.13
[INFO] [stderr]   Downloaded diff v0.1.13
[INFO] [stderr]   Downloaded assert_cmd v2.2.2
[INFO] [stderr]   Downloaded yansi v1.0.1
[INFO] [stderr]   Downloaded pretty_assertions v1.4.1
[INFO] [stderr]   Downloaded compact_str v0.8.1
[INFO] [stderr]   Downloaded crossterm v0.28.1
[INFO] [stderr]   Downloaded ratatui v0.29.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712
[INFO] running `Command { std: "docker" "start" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", 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" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712" "/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" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", 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" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712" "/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 smallvec v1.15.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.1
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling webpki-roots v1.0.7
[INFO] [stderr]    Compiling quick-xml v0.39.4
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling plist v1.9.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[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 ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling ratatui-textarea v0.9.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower-http v0.6.10
[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]    Compiling phx v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 56s
[INFO] running `Command { std: "docker" "inspect" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", 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" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712" "/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 predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-textarea v0.9.1
[INFO] [stderr]    Compiling phx v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", 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" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712" "/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.51s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/phx-5201aca837f0da23)
[INFO] [stdout] 
[INFO] [stdout] running 315 tests
[INFO] [stdout] test config::error::tests::missing_provider_display ... ok
[INFO] [stdout] test config::error::tests::schema_error_display ... ok
[INFO] [stdout] test config::error::tests::parse_error_from_serde ... ok
[INFO] [stdout] test config::loader::tests::active_provider_none_when_empty ... ok
[INFO] [stdout] test config::loader::tests::config_files_with_explicit ... ok
[INFO] [stdout] test config::loader::tests::config_files_contains_user_and_project ... ok
[INFO] [stdout] test config::loader::tests::load_returns_default_when_no_files ... ok
[INFO] [stdout] test config::paths::tests::config_dir_ends_with_phx ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_does_not_overwrite_existing ... ok
[INFO] [stdout] test config::loader::tests::active_provider_usable_with_inline_auth ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_skips_local ... ok
[INFO] [stdout] test config::loader::tests::active_provider_returns_flagged ... ok
[INFO] [stdout] test config::loader::tests::active_provider_not_usable_without_auth ... ok
[INFO] [stdout] test config::loader::tests::active_provider_usable_local ... ok
[INFO] [stdout] test config::paths::tests::project_config_file_is_relative ... ok
[INFO] [stdout] test config::paths::tests::project_sessions_dir_root_fallback ... ok
[INFO] [stdout] test config::loader::tests::active_provider_fallback_to_first ... ok
[INFO] [stdout] test config::error::tests::io_error_displays_path ... ok
[INFO] [stdout] test config::paths::tests::project_sessions_dir_uses_basename ... ok
[INFO] [stdout] test config::paths::tests::home_override_works ... ok
[INFO] [stdout] test config::paths::tests::data_dir_equals_config_dir ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_nvidia ... ok
[INFO] [stdout] test config::paths::tests::rpc_socket_path_is_sock ... ok
[INFO] [stdout] test config::loader::tests::parse_error_for_invalid_json ... ok
[INFO] [stdout] test config::paths::tests::history_file_path ... ok
[INFO] [stdout] test config::paths::tests::sessions_dir_under_config ... ok
[INFO] [stdout] test config::paths::tests::user_config_file_is_json ... ok
[INFO] [stdout] test config::paths::tests::runtime_dir_fallback ... ok
[INFO] [stdout] test config::schema::tests::compaction_config_defaults ... ok
[INFO] [stdout] test config::schema::tests::auth_resolve_inline ... ok
[INFO] [stdout] test config::schema::tests::auth_resolve_env_missing ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_inline_object_form ... ok
[INFO] [stdout] test config::schema::tests::default_config_has_no_remote ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_inline_serde ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_env_serde ... ok
[INFO] [stdout] test config::schema::tests::default_config_is_empty ... ok
[INFO] [stdout] test config::schema::tests::llamacpp_alias_deserializes ... ok
[INFO] [stdout] test config::schema::tests::provider_kind_is_local ... ok
[INFO] [stdout] test config::loader::tests::loads_explicit_config_file ... ok
[INFO] [stdout] test config::loader::tests::layered_merge_explicit_overrides ... ok
[INFO] [stdout] test config::schema::tests::config_merge_adds_new_keys ... ok
[INFO] [stdout] test config::schema::tests::config_merge_providers ... ok
[INFO] [stdout] test config::schema::tests::config_merge_remote ... ok
[INFO] [stdout] test config::schema::tests::provider_profile_defaults ... ok
[INFO] [stdout] test config::schema::tests::remote_config_defaults ... ok
[INFO] [stdout] test config::schema::tests::provider_kind_serde_roundtrip ... ok
[INFO] [stdout] test config::schema::tests::config_remote_omitted_when_none ... ok
[INFO] [stdout] test config::schema::tests::session_profile_defaults ... ok
[INFO] [stdout] test config::schema::tests::config_remote_roundtrip ... ok
[INFO] [stdout] test config::schema::tests::remote_config_parses_empty_object ... ok
[INFO] [stdout] test config::schema::tests::remote_config_parses_partial ... ok
[INFO] [stdout] test config::writer::tests::atomic_write_no_partial ... ok
[INFO] [stdout] test config::schema::tests::full_config_serde_roundtrip ... ok
[INFO] [stdout] test config::writer::tests::roundtrip_default_config ... ok
[INFO] [stdout] test config::writer::tests::save_output_is_pretty_printed ... ok
[INFO] [stdout] test config::writer::tests::save_sets_permissions ... ok
[INFO] [stdout] test config::writer::tests::auth_entry_serializes_correctly_in_saved_config ... ok
[INFO] [stdout] test http::sse::tests::partial_data_waits_for_delimiter ... ok
[INFO] [stdout] test http::sse::tests::multibyte_utf8_split_across_chunks ... ok
[INFO] [stdout] test config::writer::tests::save_provider_creates_new_file ... ok
[INFO] [stdout] test http::sse::tests::empty_lines_returned_as_raw ... ok
[INFO] [stdout] test http::sse::tests::multiple_lines_in_one_push ... ok
[INFO] [stdout] test config::writer::tests::save_provider_preserves_other_sections ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_data_lines ... ok
[INFO] [stdout] test config::writer::tests::save_creates_parent_dirs ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_raw_json ... ok
[INFO] [stdout] test config::writer::tests::save_provider_replaces_existing ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_done ... ok
[INFO] [stdout] test http::sse::tests::double_newline_concatenates_multiline_data ... ok
[INFO] [stdout] test http::sse::tests::double_newline_parses_blocks ... ok
[INFO] [stdout] test http::tests::format_recovered_msg_includes_count ... ok
[INFO] [stdout] test http::tests::backoff_beyond_schedule_caps_at_30 ... ok
[INFO] [stdout] test http::tests::format_retry_msg_includes_details ... ok
[INFO] [stdout] test http::tests::backoff_schedule_matches_spec ... ok
[INFO] [stdout] test http::tests::max_retries_is_ten ... ok
[INFO] [stdout] test http::tests::non_retryable_provider_errors ... ok
[INFO] [stdout] test http::tests::non_retryable_status_codes ... ok
[INFO] [stdout] test http::tests::retryable_provider_errors ... ok
[INFO] [stdout] test http::tests::retryable_status_codes ... ok
[INFO] [stdout] test http::tests::should_retry_rejects_non_retryable ... ok
[INFO] [stdout] test http::tests::should_retry_respects_attempt_limit ... ok
[INFO] [stdout] test http::tests::streaming_request_display_url_uses_log_url ... ok
[INFO] [stdout] test http::tests::streaming_request_display_url_falls_back_to_url ... ok
[INFO] [stdout] test otel::ring::tests::test_event_level_from_tracing_level ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_empty ... ok
[INFO] [stdout] test otel::ring::tests::test_capacity_one ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_under_capacity ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_capacity_eviction ... ok
[INFO] [stdout] test otel::spans::tests::test_provider_span_has_expected_fields ... ok
[INFO] [stdout] test otel::spans::tests::test_child_session_span_has_parent_field ... ok
[INFO] [stdout] test otel::spans::tests::test_session_span_has_expected_fields ... ok
[INFO] [stdout] test otel::spans::tests::test_span_inside_subscriber_captures_events ... ok
[INFO] [stdout] test otel::spans::tests::test_tool_span_has_expected_fields ... ok
[INFO] [stdout] test otel::tests::test_full_stack_events_captured ... ok
[INFO] [stdout] test otel::tests::test_telemetry_handle_ring_access ... ok
[INFO] [stdout] test otel::tests::test_telemetry_init_struct ... ok
[INFO] [stdout] test otel::ring::tests::test_subscribe_multiple_events ... ok
[INFO] [stdout] test otel::ring::tests::test_subscribe_receives_events ... ok
[INFO] [stdout] test plugin::host_handler::tests::get_config_empty_keys ... ok
[INFO] [stdout] test plugin::hooks::tests::no_subscribers ... ok
[INFO] [stdout] test plugin::host_handler::tests::get_config_returns_sections ... ok
[INFO] [stdout] test plugin::hooks::tests::empty_dispatcher_allows ... ok
[INFO] [stdout] test plugin::host_handler::tests::request_input_without_channel_returns_error ... ok
[INFO] [stdout] test plugin::manager::tests::discover_empty_dirs ... ok
[INFO] [stdout] test plugin::host_handler::tests::unknown_method_returns_error ... ok
[INFO] [stdout] test plugin::host_handler::tests::tool_call_unknown_tool ... ok
[INFO] [stdout] test plugin::manager::tests::discover_extra_dirs ... ok
[INFO] [stdout] test plugin::manager::tests::discover_home_plugins ... ok
[INFO] [stdout] test plugin::manager::tests::manager_starts_empty ... ok
[INFO] [stdout] test plugin::manager::tests::discover_project_plugins ... ok
[INFO] [stdout] test plugin::manifest::tests::resolve_absolute_bin ... ok
[INFO] [stdout] test plugin::manifest::tests::load_valid_manifest ... ok
[INFO] [stdout] test plugin::manifest::tests::resolve_relative_bin ... ok
[INFO] [stdout] test plugin::manifest::tests::shell_tool_no_top_level_command_ok ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::discover_dirs_empty_when_no_dirs_exist ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::discover_dirs_finds_project_dir ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_absolute ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_dot_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::load_shell_plugin ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_project_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_command_absolute ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_command_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::substitute_template_missing_key_left_as_is ... ok
[INFO] [stdout] test plugin::manifest::tests::missing_name_fails ... ok
[INFO] [stdout] test plugin::manifest::tests::can_block_not_in_subscribe_fails ... ok
[INFO] [stdout] test plugin::manifest::tests::tool_both_shell_and_bin_fails ... ok
[INFO] [stdout] test plugin::manifest::tests::tool_no_execution_strategy_fails ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::substitute_template_replaces_placeholders ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::load_plugin_dir_reads_manifest ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_defaults_no_context ... ok
[INFO] [stdout] test plugin::skill_hook::tests::skill_hook_subscriber_allows_by_default ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::shell_tool_reports_failure ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_fields ... ok
[INFO] [stdout] test plugin::skill_hook::tests::skill_hook_subscriber_name ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::invoke_shell_tool_with_template ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_with_context ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::invoke_shell_tool ... ok
[INFO] [stdout] test plugin::transport::tests::spawn_nonexistent_binary_fails ... ok
[INFO] [stdout] test plugin::ui::tests::confirm_dialog_state ... ok
[INFO] [stdout] test plugin::ui::tests::confirm_dialog_deserialize ... ok
[INFO] [stdout] test plugin::ui::tests::notification_returns_none_state ... ok
[INFO] [stdout] test plugin::ui::tests::notification_deserialize ... ok
[INFO] [stdout] test plugin::ui::tests::picker_filter ... ok
[INFO] [stdout] test plugin::ui::tests::picker_deserialize ... ok
[INFO] [stdout] test plugin::ui::tests::text_input_deserialize ... ok
[INFO] [stdout] test providers::model_info::tests::all_models_have_nonzero_context ... ok
[INFO] [stdout] test providers::model_info::tests::each_provider_has_models ... ok
[INFO] [stdout] test providers::model_info::tests::known_models_not_empty ... ok
[INFO] [stdout] test providers::model_info::tests::nvidia_models_present ... ok
[INFO] [stdout] test providers::model_info::tests::provider_kind_for_known_model ... ok
[INFO] [stdout] test providers::model_info::tests::provider_kind_for_unknown_model ... ok
[INFO] [stdout] test providers::registry::tests::create_provider_missing_cred_for_claude ... ok
[INFO] [stdout] test providers::traits::tests::mock_provider_error ... ok
[INFO] [stdout] test providers::traits::tests::mock_provider_streams_events ... ok
[INFO] [stdout] test session::agents::tests::catalog_empty_when_no_agents ... ok
[INFO] [stdout] test session::agents::tests::discover_empty_when_no_dir ... ok
[INFO] [stdout] test session::agents::tests::find_agent_case_insensitive ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_empty_tools ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_full ... ok
[INFO] [stdout] test session::agents::tests::catalog_contains_agent_info ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_quoted_values ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_missing_closing ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_skips_missing_description ... ok
[INFO] [stdout] test session::agents::tests::discover_skips_non_md_files ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_name_defaults_to_stem ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_mixed ... ok
[INFO] [stdout] test session::agents::tests::discover_finds_agents ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_comma_separated ... ok
[INFO] [stdout] test session::agents::tests::catalog_omits_empty_tools_and_model ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_full ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_empty ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_space_separated ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::agents::tests::discover_project_overrides_user ... ok
[INFO] [stdout] test session::compress::tests::current_turn_results_kept_full ... ok
[INFO] [stdout] test session::compress::tests::bash_summary_includes_exit_code ... ok
[INFO] [stdout] test session::compress::tests::edit_summary ... ok
[INFO] [stdout] test session::compress::tests::error_results_always_kept ... ok
[INFO] [stdout] test session::compress::tests::bash_nonzero_exit_kept_full ... ok
[INFO] [stdout] test session::compress::tests::multiple_prior_turns_all_compressed ... ok
[INFO] [stdout] test session::compress::tests::no_user_message_keeps_everything ... ok
[INFO] [stdout] test session::compress::tests::prior_turn_results_summarized ... ok
[INFO] [stdout] test session::compress::tests::write_summary ... ok
[INFO] [stdout] test session::context::tests::compact_messages_too_few ... ok
[INFO] [stdout] test session::context::tests::compute_context_glob_matching ... ok
[INFO] [stdout] test session::agent_loop::tests::provider_error_sets_error_state ... ok
[INFO] [stdout] test session::context::tests::context_state_deduplication ... ok
[INFO] [stdout] test session::context::tests::claude_md_fallback ... ok
[INFO] [stdout] test session::context::tests::enforce_limits_no_compaction_needed ... ok
[INFO] [stdout] test session::context::tests::agents_md_takes_precedence_over_claude_md ... ok
[INFO] [stdout] test session::context::tests::discover_agents_md ... ok
[INFO] [stdout] test session::context::tests::compact_messages_preserves_head_and_tail ... ok
[INFO] [stdout] test session::context::tests::estimate_tokens_basic ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::context::tests::extract_touched_files_from_tool_calls ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_no_paths_key ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_single_quotes ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_with_paths ... ok
[INFO] [stdout] test session::context::tests::should_compact_logic ... ok
[INFO] [stdout] test session::context::tests::discover_rules_from_dirs ... ok
[INFO] [stdout] test session::context::tests::subdirectory_agent_context_scoping ... ok
[INFO] [stdout] test session::context_bridge::tests::build_context_from_empty_session ... ok
[INFO] [stdout] test session::context_bridge::tests::build_context_with_messages ... ok
[INFO] [stdout] test session::message::tests::tool_call_message ... ok
[INFO] [stdout] test session::message::tests::message_round_trip_json ... ok
[INFO] [stdout] test session::message::tests::tool_call_message_round_trip ... ok
[INFO] [stdout] test session::message::tests::tool_result_message ... ok
[INFO] [stdout] test session::context_bridge::tests::apply_inject_context ... ok
[INFO] [stdout] test session::message::tests::user_message ... ok
[INFO] [stdout] test session::skills::tests::catalog_empty_when_no_skills ... ok
[INFO] [stdout] test session::skills::tests::empty_when_no_skills_dir ... ok
[INFO] [stdout] test session::skills::tests::finds_sorted_skills ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_allowed_tools ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_full ... ok
[INFO] [stdout] test session::context::tests::skips_hidden_and_node_modules ... ok
[INFO] [stdout] test session::skills::tests::discovered_skill_carries_model ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_strips_frontmatter_with_wrapping ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_no_resources ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_malformed ... ok
[INFO] [stdout] test session::skills::tests::case_insensitive_skill_md ... ok
[INFO] [stdout] test session::orchestration::tests::cancel_nonexistent_fails ... ok
[INFO] [stdout] test session::orchestration::tests::collect_nonexistent_fails ... ok
[INFO] [stdout] test session::orchestration::tests::pool_starts_empty ... ok
[INFO] [stdout] test session::skills::tests::discover_agents_dir ... ok
[INFO] [stdout] test session::skills::tests::catalog_contains_skill_info ... ok
[INFO] [stdout] test session::skills::tests::discover_custom_dirs ... ok
[INFO] [stdout] test session::skills::tests::load_skill_prompt_reads_content ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_metadata_block ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_model_quoted ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_lists_resources ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_model ... ok
[INFO] [stdout] test session::skills::tests::layered_discovery ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_single_quotes ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_missing_description ... ok
[INFO] [stdout] test shared::context_types::tests::context_mutation_roundtrip ... ok
[INFO] [stdout] test shared::context_types::tests::context_message_with_tool_call ... ok
[INFO] [stdout] test shared::context_types::tests::session_context_minimal ... ok
[INFO] [stdout] test shared::hook_types::tests::unknown_event_returns_none ... ok
[INFO] [stdout] test shared::hook_types::tests::blockable_events ... ok
[INFO] [stdout] test shared::hook_types::tests::hook_action_deserialize ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_result_data_default ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_result_data_error ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_result_data_success ... ok
[INFO] [stdout] test session::skills::tests::skips_skills_without_description ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_schema_data_roundtrip ... ok
[INFO] [stdout] test session::skills::tests::phx_takes_precedence_over_agents_same_scope ... ok
[INFO] [stdout] test session::skills::tests::skips_skills_without_frontmatter ... ok
[INFO] [stdout] test session::skills::tests::skips_dirs_without_skill_md ... ok
[INFO] [stdout] test session::skills::tests::project_overrides_user ... ok
[INFO] [stdout] test session::skills::tests::tilde_expansion_in_custom_dirs ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_metadata_defaults ... ok
[INFO] [stdout] test shared::hook_types::tests::hook_event_roundtrip ... ok
[INFO] [stdout] test shared::ui_field_types::tests::builder_api ... ok
[INFO] [stdout] test shared::ui_field_types::tests::empty_config ... ok
[INFO] [stdout] test shared::ui_field_types::tests::roundtrip_json ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_metadata_with_is_tool ... ok
[INFO] [stdout] test session::agent_loop::tests::single_turn_agent_loop ... ok
[INFO] [stdout] test shared::ui_types::tests::text_node_roundtrip ... ok
[INFO] [stdout] test shared::ui_types::tests::box_node_roundtrip ... ok
[INFO] [stdout] test shared::ui_types::tests::deserialize_from_plugin_json ... ok
[INFO] [stdout] test shared::ui_types::tests::gauge_node ... ok
[INFO] [stdout] test store::session_store::tests::session_id_generates_valid_uuid_v7 ... ok
[INFO] [stdout] test store::session_store::tests::load_messages_not_found ... ok
[INFO] [stdout] test tools::bash::tests::bash_missing_command ... ok
[INFO] [stdout] test store::todo_store::tests::nonexistent_file_returns_defaults ... ok
[INFO] [stdout] test store::session_store::tests::list_missing_project_returns_empty ... ok
[INFO] [stdout] test store::session_store::tests::destroy_nonexistent_is_ok ... ok
[INFO] [stdout] test store::todo_store::tests::append_tool_log ... ok
[INFO] [stdout] test tools::bash::tests::bash_stdout_and_stderr_combined ... ok
[INFO] [stdout] test tools::edit::tests::edit_empty_old_string ... ok
[INFO] [stdout] test tools::bash::tests::bash_captures_stdout ... ok
[INFO] [stdout] test tools::bash::tests::bash_nonzero_exit ... ok
[INFO] [stdout] test tools::bash::tests::bash_captures_stderr ... ok
[INFO] [stdout] test tools::edit::tests::edit_missing_file ... ok
[INFO] [stdout] test store::todo_store::tests::empty_file_returns_defaults ... ok
[INFO] [stdout] test tools::edit::tests::edit_fails_on_non_unique ... ok
[INFO] [stdout] test store::session_store::tests::destroy_removes_session ... ok
[INFO] [stdout] test store::session_store::tests::update_state_is_atomic ... ok
[INFO] [stdout] test tools::edit::tests::edit_replace_all ... ok
[INFO] [stdout] test tools::edit::tests::edit_preserves_whitespace ... ok
[INFO] [stdout] test store::session_store::tests::round_trip_create_append_load ... ok
[INFO] [stdout] test tools::edit::tests::edit_old_string_not_found ... ok
[INFO] [stdout] test tools::edit::tests::edit_replaces_unique_string ... ok
[INFO] [stdout] test tools::read::tests::read_empty_file ... ok
[INFO] [stdout] test tools::read::tests::read_missing_path_arg ... ok
[INFO] [stdout] test tools::read::tests::read_line_numbers_are_one_indexed ... ok
[INFO] [stdout] test tools::read::tests::read_missing_file ... ok
[INFO] [stdout] test tools::read::tests::read_offset_beyond_file ... ok
[INFO] [stdout] test store::session_store::tests::list_returns_newest_first ... ok
[INFO] [stdout] test tools::read::tests::read_whole_small_file ... ok
[INFO] [stdout] test tools::skill_tool::tests::builtin_collision_detected ... ok
[INFO] [stdout] test tools::read::tests::read_with_offset_and_limit ... ok
[INFO] [stdout] test tools::tests::build_registry_all_has_four ... ok
[INFO] [stdout] test tools::skill_tool::tests::schema_uses_skill_name ... ok
[INFO] [stdout] test tools::skill_tool::tests::invoke_returns_skill_body ... ok
[INFO] [stdout] test tools::bash::tests::bash_truncated_flag_on_large_output ... ok
[INFO] [stdout] test tools::tests::build_registry_selective ... ok
[INFO] [stdout] test tools::tests::build_registry_skips_unknown ... ok
[INFO] [stdout] test tools::tests::list_schemas_returns_all ... ok
[INFO] [stdout] test tools::tests::lookup_finds_known_tools ... ok
[INFO] [stdout] test tools::tests::lookup_returns_none_for_unknown ... ok
[INFO] [stdout] test tools::tests::schema_has_required_fields ... ok
[INFO] [stdout] test store::todo_store::tests::round_trip_upsert_list_remove ... ok
[INFO] [stdout] test tools::traits::tests::registry_list_schemas_empty ... ok
[INFO] [stdout] test tools::traits::tests::registry_starts_empty ... ok
[INFO] [stdout] test tools::traits::tests::tool_result_error_defaults ... ok
[INFO] [stdout] test tools::traits::tests::tool_result_success_defaults ... ok
[INFO] [stdout] test tools::write::tests::write_missing_path ... ok
[INFO] [stdout] test tools::write::tests::write_missing_content ... ok
[INFO] [stdout] test tools::write::tests::write_creates_file ... ok
[INFO] [stdout] test tools::write::tests::write_overwrites_existing ... ok
[INFO] [stdout] test tools::write::tests::write_creates_nested_parent_dirs ... ok
[INFO] [stdout] test store::todo_store::tests::concurrent_upserts_are_consistent ... ok
[INFO] [stdout] test tools::bash::tests::bash_timeout_kills_command ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 315 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/phx-a1f6c74eb5445ebf)
[INFO] [stdout] 
[INFO] [stdout] running 459 tests
[INFO] [stdout] test commands::dispatcher::tests::is_command_detection ... ok
[INFO] [stdout] test commands::dispatcher::tests::list_commands_includes_builtins ... ok
[INFO] [stdout] test commands::dispatcher::tests::parse_splits_name_and_args ... ok
[INFO] [stdout] test config::error::tests::missing_provider_display ... ok
[INFO] [stdout] test config::error::tests::io_error_displays_path ... ok
[INFO] [stdout] test commands::dispatcher::tests::dispatch_unknown_command ... ok
[INFO] [stdout] test config::error::tests::parse_error_from_serde ... ok
[INFO] [stdout] test config::error::tests::schema_error_display ... ok
[INFO] [stdout] test config::loader::tests::active_provider_fallback_to_first ... ok
[INFO] [stdout] test config::loader::tests::active_provider_none_when_empty ... ok
[INFO] [stdout] test config::loader::tests::active_provider_not_usable_without_auth ... ok
[INFO] [stdout] test config::loader::tests::active_provider_usable_local ... ok
[INFO] [stdout] test config::loader::tests::active_provider_returns_flagged ... ok
[INFO] [stdout] test config::loader::tests::active_provider_usable_with_inline_auth ... ok
[INFO] [stdout] test config::loader::tests::config_files_contains_user_and_project ... ok
[INFO] [stdout] test config::loader::tests::config_files_with_explicit ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_skips_local ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_nvidia ... ok
[INFO] [stdout] test config::paths::tests::data_dir_equals_config_dir ... ok
[INFO] [stdout] test config::loader::tests::load_returns_default_when_no_files ... ok
[INFO] [stdout] test config::paths::tests::project_sessions_dir_uses_basename ... ok
[INFO] [stdout] test config::loader::tests::env_auth_fallback_does_not_overwrite_existing ... ok
[INFO] [stdout] test config::paths::tests::history_file_path ... ok
[INFO] [stdout] test config::paths::tests::runtime_dir_fallback ... ok
[INFO] [stdout] test config::paths::tests::sessions_dir_under_config ... ok
[INFO] [stdout] test config::loader::tests::loads_explicit_config_file ... ok
[INFO] [stdout] test config::paths::tests::home_override_works ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_env_serde ... ok
[INFO] [stdout] test config::loader::tests::layered_merge_explicit_overrides ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_inline_object_form ... ok
[INFO] [stdout] test config::paths::tests::config_dir_ends_with_phx ... ok
[INFO] [stdout] test config::paths::tests::rpc_socket_path_is_sock ... ok
[INFO] [stdout] test config::paths::tests::user_config_file_is_json ... ok
[INFO] [stdout] test config::loader::tests::parse_error_for_invalid_json ... ok
[INFO] [stdout] test config::schema::tests::auth_entry_inline_serde ... ok
[INFO] [stdout] test config::schema::tests::auth_resolve_env_missing ... ok
[INFO] [stdout] test config::schema::tests::auth_resolve_inline ... ok
[INFO] [stdout] test config::paths::tests::project_sessions_dir_root_fallback ... ok
[INFO] [stdout] test config::paths::tests::project_config_file_is_relative ... ok
[INFO] [stdout] test config::schema::tests::config_merge_remote ... ok
[INFO] [stdout] test config::schema::tests::config_merge_providers ... ok
[INFO] [stdout] test config::schema::tests::compaction_config_defaults ... ok
[INFO] [stdout] test config::schema::tests::default_config_has_no_remote ... ok
[INFO] [stdout] test config::schema::tests::config_remote_roundtrip ... ok
[INFO] [stdout] test config::schema::tests::llamacpp_alias_deserializes ... ok
[INFO] [stdout] test config::schema::tests::remote_config_defaults ... ok
[INFO] [stdout] test config::schema::tests::provider_profile_defaults ... ok
[INFO] [stdout] test config::schema::tests::full_config_serde_roundtrip ... ok
[INFO] [stdout] test config::schema::tests::remote_config_parses_empty_object ... ok
[INFO] [stdout] test config::schema::tests::default_config_is_empty ... ok
[INFO] [stdout] test config::schema::tests::provider_kind_is_local ... ok
[INFO] [stdout] test config::schema::tests::config_merge_adds_new_keys ... ok
[INFO] [stdout] test config::schema::tests::config_remote_omitted_when_none ... ok
[INFO] [stdout] test config::schema::tests::remote_config_parses_partial ... ok
[INFO] [stdout] test config::schema::tests::session_profile_defaults ... ok
[INFO] [stdout] test config::schema::tests::provider_kind_serde_roundtrip ... ok
[INFO] [stdout] test config::writer::tests::atomic_write_no_partial ... ok
[INFO] [stdout] test config::writer::tests::auth_entry_serializes_correctly_in_saved_config ... ok
[INFO] [stdout] test config::writer::tests::roundtrip_default_config ... ok
[INFO] [stdout] test config::writer::tests::save_output_is_pretty_printed ... ok
[INFO] [stdout] test config::writer::tests::save_provider_creates_new_file ... ok
[INFO] [stdout] test config::writer::tests::save_creates_parent_dirs ... ok
[INFO] [stdout] test config::writer::tests::save_sets_permissions ... ok
[INFO] [stdout] test config::writer::tests::save_provider_preserves_other_sections ... ok
[INFO] [stdout] test http::sse::tests::double_newline_concatenates_multiline_data ... ok
[INFO] [stdout] test http::sse::tests::double_newline_parses_blocks ... ok
[INFO] [stdout] test http::sse::tests::empty_lines_returned_as_raw ... ok
[INFO] [stdout] test http::sse::tests::multibyte_utf8_split_across_chunks ... ok
[INFO] [stdout] test config::writer::tests::save_provider_replaces_existing ... ok
[INFO] [stdout] test http::sse::tests::multiple_lines_in_one_push ... ok
[INFO] [stdout] test http::sse::tests::partial_data_waits_for_delimiter ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_data_lines ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_done ... ok
[INFO] [stdout] test http::sse::tests::single_newline_parses_raw_json ... ok
[INFO] [stdout] test http::tests::backoff_beyond_schedule_caps_at_30 ... ok
[INFO] [stdout] test http::tests::backoff_schedule_matches_spec ... ok
[INFO] [stdout] test http::tests::format_recovered_msg_includes_count ... ok
[INFO] [stdout] test http::tests::format_retry_msg_includes_details ... ok
[INFO] [stdout] test http::tests::max_retries_is_ten ... ok
[INFO] [stdout] test http::tests::non_retryable_provider_errors ... ok
[INFO] [stdout] test http::tests::non_retryable_status_codes ... ok
[INFO] [stdout] test http::tests::retryable_provider_errors ... ok
[INFO] [stdout] test http::tests::retryable_status_codes ... ok
[INFO] [stdout] test http::tests::should_retry_rejects_non_retryable ... ok
[INFO] [stdout] test http::tests::should_retry_respects_attempt_limit ... ok
[INFO] [stdout] test http::tests::streaming_request_display_url_falls_back_to_url ... ok
[INFO] [stdout] test http::tests::streaming_request_display_url_uses_log_url ... ok
[INFO] [stdout] test otel::ring::tests::test_capacity_one ... ok
[INFO] [stdout] test otel::ring::tests::test_event_level_from_tracing_level ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_capacity_eviction ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_empty ... ok
[INFO] [stdout] test otel::ring::tests::test_ring_under_capacity ... ok
[INFO] [stdout] test otel::ring::tests::test_subscribe_multiple_events ... ok
[INFO] [stdout] test otel::ring::tests::test_subscribe_receives_events ... ok
[INFO] [stdout] test otel::spans::tests::test_child_session_span_has_parent_field ... ok
[INFO] [stdout] test otel::spans::tests::test_provider_span_has_expected_fields ... ok
[INFO] [stdout] test otel::spans::tests::test_session_span_has_expected_fields ... ok
[INFO] [stdout] test otel::spans::tests::test_tool_span_has_expected_fields ... ok
[INFO] [stdout] test otel::spans::tests::test_span_inside_subscriber_captures_events ... ok
[INFO] [stdout] test otel::tests::test_telemetry_handle_ring_access ... ok
[INFO] [stdout] test otel::tests::test_full_stack_events_captured ... ok
[INFO] [stdout] test otel::tests::test_telemetry_init_struct ... ok
[INFO] [stdout] test plugin::hooks::tests::empty_dispatcher_allows ... ok
[INFO] [stdout] test plugin::hooks::tests::no_subscribers ... ok
[INFO] [stdout] test plugin::host_handler::tests::get_config_empty_keys ... ok
[INFO] [stdout] test plugin::host_handler::tests::get_config_returns_sections ... ok
[INFO] [stdout] test plugin::host_handler::tests::request_input_without_channel_returns_error ... ok
[INFO] [stdout] test plugin::host_handler::tests::tool_call_unknown_tool ... ok
[INFO] [stdout] test plugin::manager::tests::discover_empty_dirs ... ok
[INFO] [stdout] test plugin::host_handler::tests::unknown_method_returns_error ... ok
[INFO] [stdout] test plugin::manager::tests::discover_extra_dirs ... ok
[INFO] [stdout] test plugin::manager::tests::manager_starts_empty ... ok
[INFO] [stdout] test plugin::manager::tests::discover_home_plugins ... ok
[INFO] [stdout] test plugin::manifest::tests::resolve_absolute_bin ... ok
[INFO] [stdout] test plugin::manifest::tests::can_block_not_in_subscribe_fails ... ok
[INFO] [stdout] test plugin::manager::tests::discover_project_plugins ... ok
[INFO] [stdout] test plugin::manifest::tests::load_valid_manifest ... ok
[INFO] [stdout] test plugin::manifest::tests::resolve_relative_bin ... ok
[INFO] [stdout] test plugin::manifest::tests::missing_name_fails ... ok
[INFO] [stdout] test plugin::manifest::tests::shell_tool_no_top_level_command_ok ... ok
[INFO] [stdout] test plugin::manifest::tests::tool_both_shell_and_bin_fails ... ok
[INFO] [stdout] test plugin::manifest::tests::tool_no_execution_strategy_fails ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::discover_dirs_empty_when_no_dirs_exist ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::discover_dirs_finds_project_dir ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::load_plugin_dir_reads_manifest ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_absolute ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::invoke_shell_tool ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_dot_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::load_shell_plugin ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_bin_path_project_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::invoke_shell_tool_with_template ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_command_absolute ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::resolve_command_relative ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::substitute_template_missing_key_left_as_is ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::substitute_template_replaces_placeholders ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_defaults_no_context ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_fields ... ok
[INFO] [stdout] test plugin::tool_adapter::tests::plugin_tool_def_with_context ... ok
[INFO] [stdout] test plugin::skill_hook::tests::skill_hook_subscriber_allows_by_default ... ok
[INFO] [stdout] test plugin::skill_hook::tests::skill_hook_subscriber_name ... ok
[INFO] [stdout] test plugin::plugin_runtime::tests::shell_tool_reports_failure ... ok
[INFO] [stdout] test plugin::ui::tests::confirm_dialog_deserialize ... ok
[INFO] [stdout] test plugin::ui::tests::confirm_dialog_state ... ok
[INFO] [stdout] test plugin::ui::tests::notification_deserialize ... ok
[INFO] [stdout] test plugin::transport::tests::spawn_nonexistent_binary_fails ... ok
[INFO] [stdout] test plugin::ui::tests::notification_returns_none_state ... ok
[INFO] [stdout] test plugin::ui::tests::picker_deserialize ... ok
[INFO] [stdout] test plugin::ui::tests::picker_filter ... ok
[INFO] [stdout] test plugin::ui::tests::text_input_deserialize ... ok
[INFO] [stdout] test providers::model_info::tests::all_models_have_nonzero_context ... ok
[INFO] [stdout] test providers::model_info::tests::each_provider_has_models ... ok
[INFO] [stdout] test providers::model_info::tests::known_models_not_empty ... ok
[INFO] [stdout] test providers::model_info::tests::nvidia_models_present ... ok
[INFO] [stdout] test providers::model_info::tests::provider_kind_for_known_model ... ok
[INFO] [stdout] test providers::model_info::tests::provider_kind_for_unknown_model ... ok
[INFO] [stdout] test providers::registry::tests::create_provider_missing_cred_for_claude ... ok
[INFO] [stdout] test providers::traits::tests::mock_provider_error ... ok
[INFO] [stdout] test rpc::protocol::tests::parse_request ... ok
[INFO] [stdout] test providers::traits::tests::mock_provider_streams_events ... ok
[INFO] [stdout] test rpc::protocol::tests::parse_request_no_params ... ok
[INFO] [stdout] test rpc::protocol::tests::write_done_line_format ... ok
[INFO] [stdout] test rpc::protocol::tests::write_error_line_format ... ok
[INFO] [stdout] test rpc::protocol::tests::write_token_line_format ... ok
[INFO] [stdout] test rpc::protocol::tests::write_success_line ... ok
[INFO] [stdout] test remote::server::tests::client_can_call_config_get_over_tcp ... ok
[INFO] [stdout] test rpc::server::tests::config_get ... ok
[INFO] [stdout] test rpc::server::tests::command_list ... ok
[INFO] [stdout] test rpc::server::tests::parse_error ... ok
[INFO] [stdout] test session::agents::tests::catalog_contains_agent_info ... ok
[INFO] [stdout] test rpc::server::tests::session_resume_missing_session_id ... ok
[INFO] [stdout] test session::agents::tests::find_agent_case_insensitive ... ok
[INFO] [stdout] test session::agent_loop::tests::provider_error_sets_error_state ... ok
[INFO] [stdout] test rpc::server::tests::unknown_method ... ok
[INFO] [stdout] test session::agents::tests::catalog_omits_empty_tools_and_model ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_full ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_empty_tools ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_missing_closing ... ok
[INFO] [stdout] test session::agents::tests::catalog_empty_when_no_agents ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_quoted_values ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_name_defaults_to_stem ... ok
[INFO] [stdout] test session::agents::tests::parse_agent_file_skips_missing_description ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_full ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_comma_separated ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_empty ... ok
[INFO] [stdout] test session::compress::tests::bash_nonzero_exit_kept_full ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_mixed ... ok
[INFO] [stdout] test session::compress::tests::bash_summary_includes_exit_code ... ok
[INFO] [stdout] test session::compress::tests::current_turn_results_kept_full ... ok
[INFO] [stdout] test session::agents::tests::discover_skips_non_md_files ... ok
[INFO] [stdout] test session::agents::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::agents::tests::discover_empty_when_no_dir ... ok
[INFO] [stdout] test session::agents::tests::discover_finds_agents ... ok
[INFO] [stdout] test session::compress::tests::edit_summary ... ok
[INFO] [stdout] test session::agents::tests::parse_tools_list_space_separated ... ok
[INFO] [stdout] test session::compress::tests::error_results_always_kept ... ok
[INFO] [stdout] test session::compress::tests::no_user_message_keeps_everything ... ok
[INFO] [stdout] test session::compress::tests::prior_turn_results_summarized ... ok
[INFO] [stdout] test session::compress::tests::write_summary ... ok
[INFO] [stdout] test session::compress::tests::multiple_prior_turns_all_compressed ... ok
[INFO] [stdout] test session::context::tests::compact_messages_preserves_head_and_tail ... ok
[INFO] [stdout] test session::context::tests::compact_messages_too_few ... ok
[INFO] [stdout] test session::context::tests::compute_context_glob_matching ... ok
[INFO] [stdout] test session::context::tests::context_state_deduplication ... ok
[INFO] [stdout] test session::context::tests::enforce_limits_no_compaction_needed ... ok
[INFO] [stdout] test session::context::tests::estimate_tokens_basic ... ok
[INFO] [stdout] test session::context::tests::extract_touched_files_from_tool_calls ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_no_paths_key ... ok
[INFO] [stdout] test session::context::tests::claude_md_fallback ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_single_quotes ... ok
[INFO] [stdout] test session::context::tests::parse_frontmatter_with_paths ... ok
[INFO] [stdout] test session::context::tests::should_compact_logic ... ok
[INFO] [stdout] test session::context::tests::agents_md_takes_precedence_over_claude_md ... ok
[INFO] [stdout] test session::agents::tests::discover_project_overrides_user ... ok
[INFO] [stdout] test session::context::tests::subdirectory_agent_context_scoping ... ok
[INFO] [stdout] test session::context_bridge::tests::apply_inject_context ... ok
[INFO] [stdout] test session::context_bridge::tests::build_context_from_empty_session ... ok
[INFO] [stdout] test session::agent_loop::tests::single_turn_agent_loop ... ok
[INFO] [stdout] test session::context_bridge::tests::build_context_with_messages ... ok
[INFO] [stdout] test session::message::tests::tool_call_message ... ok
[INFO] [stdout] test session::context::tests::discover_agents_md ... ok
[INFO] [stdout] test session::message::tests::message_round_trip_json ... ok
[INFO] [stdout] test session::message::tests::user_message ... ok
[INFO] [stdout] test session::orchestration::tests::cancel_nonexistent_fails ... ok
[INFO] [stdout] test session::orchestration::tests::pool_starts_empty ... ok
[INFO] [stdout] test session::message::tests::tool_call_message_round_trip ... ok
[INFO] [stdout] test session::orchestration::tests::collect_nonexistent_fails ... ok
[INFO] [stdout] test session::message::tests::tool_result_message ... ok
[INFO] [stdout] test session::skills::tests::catalog_empty_when_no_skills ... ok
[INFO] [stdout] test rpc::server::tests::session_resume_loads_messages ... ok
[INFO] [stdout] test session::context::tests::skips_hidden_and_node_modules ... ok
[INFO] [stdout] test session::context::tests::discover_rules_from_dirs ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_allowed_tools ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_full ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_no_resources ... ok
[INFO] [stdout] test session::skills::tests::discover_agents_dir ... ok
[INFO] [stdout] test session::skills::tests::case_insensitive_skill_md ... ok
[INFO] [stdout] test session::skills::tests::discovered_skill_carries_model ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_strips_frontmatter_with_wrapping ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_malformed ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_metadata_block ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_missing_description ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_no_frontmatter ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_model ... ok
[INFO] [stdout] test session::skills::tests::empty_when_no_skills_dir ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_model_quoted ... ok
[INFO] [stdout] test session::skills::tests::parse_frontmatter_single_quotes ... ok
[INFO] [stdout] test session::skills::tests::catalog_contains_skill_info ... ok
[INFO] [stdout] test session::skills::tests::discover_custom_dirs ... ok
[INFO] [stdout] test session::skills::tests::load_skill_body_lists_resources ... ok
[INFO] [stdout] test session::skills::tests::load_skill_prompt_reads_content ... ok
[INFO] [stdout] test shared::hook_types::tests::hook_event_roundtrip ... ok
[INFO] [stdout] test shared::context_types::tests::context_message_with_tool_call ... ok
[INFO] [stdout] test shared::context_types::tests::context_mutation_roundtrip ... ok
[INFO] [stdout] test session::skills::tests::finds_sorted_skills ... ok
[INFO] [stdout] test shared::hook_types::tests::blockable_events ... ok
[INFO] [stdout] test shared::context_types::tests::session_context_minimal ... ok
[INFO] [stdout] test session::skills::tests::skips_skills_without_frontmatter ... ok
[INFO] [stdout] test shared::hook_types::tests::hook_action_deserialize ... ok
[INFO] [stdout] test session::skills::tests::phx_takes_precedence_over_agents_same_scope ... ok
[INFO] [stdout] test session::skills::tests::project_overrides_user ... ok
[INFO] [stdout] test session::skills::tests::skips_dirs_without_skill_md ... ok
[INFO] [stdout] test shared::hook_types::tests::unknown_event_returns_none ... ok
[INFO] [stdout] test session::skills::tests::skips_skills_without_description ... ok
[INFO] [stdout] test session::skills::tests::layered_discovery ... ok
[INFO] [stdout] test session::skills::tests::tilde_expansion_in_custom_dirs ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_metadata_defaults ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_result_data_error ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_metadata_with_is_tool ... ok
[INFO] [stdout] test shared::skill_types::tests::skill_result_data_default ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_result_data_success ... ok
[INFO] [stdout] test shared::tool_types::tests::tool_schema_data_roundtrip ... ok
[INFO] [stdout] test shared::ui_field_types::tests::builder_api ... ok
[INFO] [stdout] test shared::ui_types::tests::deserialize_from_plugin_json ... ok
[INFO] [stdout] test shared::ui_types::tests::box_node_roundtrip ... ok
[INFO] [stdout] test shared::ui_field_types::tests::empty_config ... ok
[INFO] [stdout] test shared::ui_types::tests::gauge_node ... ok
[INFO] [stdout] test shared::ui_types::tests::text_node_roundtrip ... ok
[INFO] [stdout] test shared::ui_field_types::tests::roundtrip_json ... ok
[INFO] [stdout] test store::session_store::tests::session_id_generates_valid_uuid_v7 ... ok
[INFO] [stdout] test store::session_store::tests::list_missing_project_returns_empty ... ok
[INFO] [stdout] test store::session_store::tests::load_messages_not_found ... ok
[INFO] [stdout] test tests::host_port_parses ... ok
[INFO] [stdout] test store::todo_store::tests::empty_file_returns_defaults ... ok
[INFO] [stdout] test store::todo_store::tests::append_tool_log ... ok
[INFO] [stdout] test store::todo_store::tests::nonexistent_file_returns_defaults ... ok
[INFO] [stdout] test tests::host_without_port_fails ... ok
[INFO] [stdout] test tests::no_args_runs_default ... ok
[INFO] [stdout] test store::session_store::tests::destroy_nonexistent_is_ok ... ok
[INFO] [stdout] test tests::remote_conflicts_with_host ... ok
[INFO] [stdout] test tests::remote_alone_parses ... ok
[INFO] [stdout] test tests::port_without_host_fails ... ok
[INFO] [stdout] test tools::bash::tests::bash_captures_stdout ... ok
[INFO] [stdout] test tools::bash::tests::bash_nonzero_exit ... ok
[INFO] [stdout] test store::session_store::tests::update_state_is_atomic ... ok
[INFO] [stdout] test tools::edit::tests::edit_old_string_not_found ... ok
[INFO] [stdout] test tools::edit::tests::edit_preserves_whitespace ... ok
[INFO] [stdout] test tools::bash::tests::bash_missing_command ... ok
[INFO] [stdout] test tools::edit::tests::edit_empty_old_string ... ok
[INFO] [stdout] test store::session_store::tests::destroy_removes_session ... ok
[INFO] [stdout] test tools::edit::tests::edit_missing_file ... ok
[INFO] [stdout] test tools::read::tests::read_missing_path_arg ... ok
[INFO] [stdout] test tools::edit::tests::edit_replaces_unique_string ... ok
[INFO] [stdout] test tools::read::tests::read_missing_file ... ok
[INFO] [stdout] test tools::skill_tool::tests::builtin_collision_detected ... ok
[INFO] [stdout] test store::session_store::tests::list_returns_newest_first ... ok
[INFO] [stdout] test tools::bash::tests::bash_stdout_and_stderr_combined ... ok
[INFO] [stdout] test tools::bash::tests::bash_captures_stderr ... ok
[INFO] [stdout] test tools::skill_tool::tests::invoke_returns_skill_body ... ok
[INFO] [stdout] test tools::read::tests::read_empty_file ... ok
[INFO] [stdout] test tools::read::tests::read_line_numbers_are_one_indexed ... ok
[INFO] [stdout] test tools::read::tests::read_offset_beyond_file ... ok
[INFO] [stdout] test store::session_store::tests::round_trip_create_append_load ... ok
[INFO] [stdout] test tools::tests::build_registry_all_has_four ... ok
[INFO] [stdout] test tools::read::tests::read_with_offset_and_limit ... ok
[INFO] [stdout] test tools::tests::build_registry_selective ... ok
[INFO] [stdout] test store::todo_store::tests::round_trip_upsert_list_remove ... ok
[INFO] [stdout] test tools::skill_tool::tests::schema_uses_skill_name ... ok
[INFO] [stdout] test tools::read::tests::read_whole_small_file ... ok
[INFO] [stdout] test tools::edit::tests::edit_fails_on_non_unique ... ok
[INFO] [stdout] test tools::tests::build_registry_skips_unknown ... ok
[INFO] [stdout] test tools::edit::tests::edit_replace_all ... ok
[INFO] [stdout] test tools::tests::lookup_finds_known_tools ... ok
[INFO] [stdout] test tools::tests::lookup_returns_none_for_unknown ... ok
[INFO] [stdout] test tools::tests::list_schemas_returns_all ... ok
[INFO] [stdout] test tools::bash::tests::bash_truncated_flag_on_large_output ... ok
[INFO] [stdout] test tools::tests::schema_has_required_fields ... ok
[INFO] [stdout] test tools::traits::tests::registry_list_schemas_empty ... ok
[INFO] [stdout] test tools::traits::tests::registry_starts_empty ... ok
[INFO] [stdout] test tools::traits::tests::tool_result_error_defaults ... ok
[INFO] [stdout] test tools::traits::tests::tool_result_success_defaults ... ok
[INFO] [stdout] test tools::write::tests::write_missing_content ... ok
[INFO] [stdout] test tools::write::tests::write_creates_file ... ok
[INFO] [stdout] test tools::write::tests::write_missing_path ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_edit_diff_renders_inline_not_compact ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_mixed_edit_and_bash_renders_correctly ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_pairs_sequential_tool_call_and_result ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_pairs_parallel_tool_calls ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_no_results_renders_all_normally ... ok
[INFO] [stdout] test tools::write::tests::write_overwrites_existing ... ok
[INFO] [stdout] test tui::components::chat_view::tests::pad_line_fills_to_target ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_partial_parallel_first_call_renders_normally ... ok
[INFO] [stdout] test tui::components::chat_view::tests::compute_unmatched_tool_call_renders_normally ... ok
[INFO] [stdout] test tools::write::tests::write_creates_nested_parent_dirs ... ok
[INFO] [stdout] test tui::components::chat_view::tests::render_chat_fills_empty_rows_with_background ... ok
[INFO] [stdout] test tui::components::chat_view::tests::screen_row_maps_with_panel_narrowing ... ok
[INFO] [stdout] test tui::components::chat_view::tests::render_chat_with_panel_truncates_on_panel_rows ... ok
[INFO] [stdout] test tui::components::chat_view::tests::screen_row_maps_with_scroll ... ok
[INFO] [stdout] test tui::components::chat_view::tests::render_chat_wraps_long_line_on_panel_rows ... ok
[INFO] [stdout] test tui::components::chat_view::tests::screen_row_maps_with_wrapping ... ok
[INFO] [stdout] test tui::components::chat_view::tests::screen_row_maps_without_wrap ... ok
[INFO] [stdout] test tui::components::chat_view::tests::skip_line_cols_handles_mid_span_split ... ok
[INFO] [stdout] test tui::components::chat_view::tests::skip_line_cols_empty_remainder ... ok
[INFO] [stdout] test tui::components::chat_view::tests::skip_line_cols_returns_remainder ... ok
[INFO] [stdout] test tui::components::chat_view::tests::truncate_line_respects_display_width ... ok
[INFO] [stdout] test tui::file_viewer::tests::diff_content_renders_with_borders ... ok
[INFO] [stdout] test tui::file_viewer::tests::highlight_plain_colors_diff_lines ... ok
[INFO] [stdout] test tui::file_viewer::tests::highlight_plain_empty_content ... ok
[INFO] [stdout] test tui::input::tests::backspace_merges_lines ... ok
[INFO] [stdout] test tui::input::tests::history_caps_at_max ... ok
[INFO] [stdout] test tui::input::tests::history_loads_legacy_format ... ok
[INFO] [stdout] test tui::input::tests::history_navigation ... ok
[INFO] [stdout] test tui::input::tests::home_end ... ok
[INFO] [stdout] test tui::input::tests::insert_and_backspace ... ok
[INFO] [stdout] test tui::input::tests::small_paste_inline ... ok
[INFO] [stdout] test tui::input::tests::wrapped_line_count_no_wrap ... ok
[INFO] [stdout] test tui::input::tests::multiline_insert ... ok
[INFO] [stdout] test tui::input::tests::paste_label ... ok
[INFO] [stdout] test tui::input::tests::wrapped_line_count_single_line_wraps ... ok
[INFO] [stdout] test tui::input::tests::history_persists_multiline ... ok
[INFO] [stdout] test tui::input_requester::tests::cancelled_returns_error ... ok
[INFO] [stdout] test store::todo_store::tests::concurrent_upserts_are_consistent ... ok
[INFO] [stdout] test tui::input_requester::tests::dropped_sender_returns_not_available ... ok
[INFO] [stdout] test tui::input_requester::tests::send_confirm_and_receive_response ... ok
[INFO] [stdout] test tui::input::tests::wrapped_line_count_empty_lines ... ok
[INFO] [stdout] test tui::layout::tests::single_padded_area_gives_correct_hover_index ... ok
[INFO] [stdout] test tui::layout::tests::double_padded_area_gives_wrong_hover_index ... ok
[INFO] [stdout] test tui::picker::tests::fuzzy_prefix_beats_substring ... ok
[INFO] [stdout] test tui::picker::tests::fuzzy_subsequence_matches ... ok
[INFO] [stdout] test tui::picker::tests::fuzzy_substring_beats_subsequence ... ok
[INFO] [stdout] test tui::input::tests::submit_adds_to_history ... ok
[INFO] [stdout] test tui::input::tests::wrapped_line_count_multiline_with_wrap ... ok
[INFO] [stdout] test tui::picker::tests::picker_filter ... ok
[INFO] [stdout] test tui::picker::tests::picker_initial_state ... ok
[INFO] [stdout] test tui::picker::tests::picker_movement_bounds ... ok
[INFO] [stdout] test tui::rendering::diff::tests::extract_short_path_gets_parent_and_file ... ok
[INFO] [stdout] test tui::rendering::diff::tests::extract_short_path_handles_no_parent ... ok
[INFO] [stdout] test tui::rendering::diff::tests::is_diff_content_detects_edit_output ... ok
[INFO] [stdout] test tui::rendering::diff::tests::is_diff_content_rejects_non_diff ... ok
[INFO] [stdout] test tui::rendering::diff::tests::render_diff_expands_tabs ... ok
[INFO] [stdout] test tui::rendering::diff::tests::render_diff_produces_header_and_footer ... ok
[INFO] [stdout] test tui::rendering::diff::tests::render_diff_stacked_removed_then_added ... ok
[INFO] [stdout] test tui::rendering::diff::tests::render_diff_uses_background_colors ... ok
[INFO] [stdout] test tui::rendering::display::tests::compact_tool_card_no_detail ... ok
[INFO] [stdout] test tui::rendering::display::tests::display_line_defaults_no_tool_detail ... ok
[INFO] [stdout] test tui::rendering::display::tests::compact_tool_card_success ... ok
[INFO] [stdout] test tui::rendering::display::tests::is_tool_call_item_detects_tool_calls ... ok
[INFO] [stdout] test tui::rendering::display::tests::compact_tool_card_error ... ok
[INFO] [stdout] test tui::rendering::display::tests::result_summary_error ... ok
[INFO] [stdout] test tui::rendering::display::tests::result_summary_success ... ok
[INFO] [stdout] test tui::rendering::measure::tests::pad_long_unchanged ... ok
[INFO] [stdout] test tui::rendering::measure::tests::tab_width ... ok
[INFO] [stdout] test tui::rendering::measure::tests::truncate_long_gets_ellipsis ... ok
[INFO] [stdout] test tui::rendering::measure::tests::truncate_raw_no_ellipsis ... ok
[INFO] [stdout] test tui::rendering::measure::tests::pad_wide_chars ... ok
[INFO] [stdout] test tui::rendering::measure::tests::ascii_width ... ok
[INFO] [stdout] test tui::rendering::measure::tests::pad_short ... ok
[INFO] [stdout] test tui::rendering::measure::tests::truncate_tab_fits ... ok
[INFO] [stdout] test tui::rendering::measure::tests::expand_tabs_basic ... ok
[INFO] [stdout] test tui::rendering::measure::tests::truncate_short_unchanged ... ok
[INFO] [stdout] test tui::rendering::measure::tests::truncate_zero ... ok
[INFO] [stdout] test tui::theme::tests::blend_midpoint ... ok
[INFO] [stdout] test tui::theme::tests::builtin_themes_load ... ok
[INFO] [stdout] test tui::theme::tests::darken_factor ... ok
[INFO] [stdout] test tui::rendering::measure::tests::wide_chars ... ok
[INFO] [stdout] test tui::theme::tests::default_theme_exists ... ok
[INFO] [stdout] test tui::theme::tests::hex_to_rgb_valid ... ok
[INFO] [stdout] test tui::file_viewer::tests::close_virtual_tab ... ok
[INFO] [stdout] test tui::theme::tests::hex_to_rgb_invalid ... ok
[INFO] [stdout] test tui::theme::tests::get_by_name_found ... ok
[INFO] [stdout] test tui::file_viewer::tests::tab_hit_test_with_multibyte_name ... ok
[INFO] [stdout] test tui::file_viewer::tests::open_content_creates_virtual_tab ... ok
[INFO] [stdout] test tui::file_viewer::tests::open_content_deduplicates_same_name ... ok
[INFO] [stdout] test tui::file_viewer::tests::virtual_and_file_tabs_coexist ... ok
[INFO] [stdout] test tui::file_viewer::tests::open_content_different_names_creates_separate_tabs ... ok
[INFO] [stdout] test tui::update::tests::onboarding_dismiss ... ok
[INFO] [stdout] test tui::update::tests::models_page_dismiss ... ok
[INFO] [stdout] test tui::update::tests::conv_event_invalid_tab_is_noop ... ok
[INFO] [stdout] test tui::update::tests::input_submit_command_returns_run_command ... ok
[INFO] [stdout] test tui::update::tests::panel_focus_set ... ok
[INFO] [stdout] test tui::update::tests::file_viewer_hover_close ... ok
[INFO] [stdout] test tui::update::tests::input_submit_text_returns_start_conversation ... ok
[INFO] [stdout] test tui::update::tests::conv_retrying_adds_system_line ... ok
[INFO] [stdout] test tui::update::tests::hover_line_set_and_clear ... ok
[INFO] [stdout] test tui::update::tests::conv_assistant_message_clears_streaming ... ok
[INFO] [stdout] test tui::update::tests::quit_sets_flag ... ok
[INFO] [stdout] test tui::update::tests::conv_retry_recovered_adds_system_line ... ok
[INFO] [stdout] test tui::update::tests::scroll_up_saturates_at_zero ... ok
[INFO] [stdout] test tui::update::tests::conv_stream_token_appends ... ok
[INFO] [stdout] test tui::update::tests::input_submit_empty_is_noop ... ok
[INFO] [stdout] test tui::update::tests::picker_clear_removes_picker ... ok
[INFO] [stdout] test tui::update::tests::conv_resume_history_repopulates_tab ... ok
[INFO] [stdout] test tui::update::tests::scroll_up_decreases_offset ... ok
[INFO] [stdout] test tui::update::tests::conv_error_clears_streaming ... ok
[INFO] [stdout] test tui::update::tests::scroll_to_bottom_enables_auto_scroll ... ok
[INFO] [stdout] test tui::update::tests::sidebar_scroll_saturates_at_zero ... ok
[INFO] [stdout] test tui::update::tests::tab_close_index_zero_is_noop ... ok
[INFO] [stdout] test tui::update::tests::tab_switch_changes_active ... ok
[INFO] [stdout] test tui::update::tests::scroll_up_disables_auto_scroll ... ok
[INFO] [stdout] test tui::update::tests::tool_detail_open_creates_viewer_tab ... ok
[INFO] [stdout] test tui::update::tests::sidebar_scroll_down_increments ... ok
[INFO] [stdout] test tui::update::tests::selection_clear ... ok
[INFO] [stdout] test tui::update::tests::tab_close_removes_tab ... ok
[INFO] [stdout] test tui::update::tests::toast_expire_clears ... ok
[INFO] [stdout] test tui::update::tests::tool_detail_open_different_tools_create_separate_tabs ... ok
[INFO] [stdout] test tui::update::tests::tool_detail_open_reuses_same_tab ... ok
[INFO] [stdout] test tui::update::tests::tab_switch_out_of_bounds_is_noop ... ok
[INFO] [stdout] test tui::update::tests::tool_form_dismiss_clears_form ... ok
[INFO] [stdout] test tools::bash::tests::bash_timeout_kills_command ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 459 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/plugin_runtime_tests.rs (/opt/rustwide/target/debug/deps/plugin_runtime_tests-0a60dbd1c2f76ac7)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test load_and_invoke_now_tool_plugin ... ok
[INFO] [stdout] test load_and_invoke_plan_plugin ... ok
[INFO] [stdout] test load_nonexistent_dir_returns_empty ... ok
[INFO] [stdout] test load_bundled_plugins ... ok
[INFO] [stdout] test runtime_starts_empty ... ok
[INFO] [stdout] test load_empty_dir_returns_empty ... ok
[INFO] [stdout] test invoke_unknown_tool_errors ... ok
[INFO] [stdout] test load_and_invoke_now_bash_plugin ... ok
[INFO] [stderr]      Running tests/worktree_tests.rs (/opt/rustwide/target/debug/deps/worktree_tests-f4f3598da5287e49)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test not_a_git_repo_fails ... ok
[INFO] [stdout] test create_and_list_worktree ... ok
[INFO] [stdout] test diff_summary_shows_changes ... ok
[INFO] [stdout] test auto_commit_dirty_worktree ... ok
[INFO] [stdout] test merge_squash_and_cleanup ... ok
[INFO] [stdout] test cleanup_all_removes_everything ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests phx
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712", kill_on_drop: false }`
[INFO] [stdout] a2a0bca6a12e57e14ec80c6f5c9a3f668eeac99b318a201a0b88f11e418e7712
