[INFO] fetching crate opendev-tui 0.1.4...
[INFO] testing opendev-tui-0.1.4 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate opendev-tui 0.1.4 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate opendev-tui 0.1.4
[INFO] finished tweaking crates.io crate opendev-tui 0.1.4
[INFO] tweaked toml for crates.io crate opendev-tui 0.1.4 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate opendev-tui 0.1.4 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate opendev-tui 0.1.4 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 14c8a5232003b30243c1772f0fce51cbe5dfaebcf9deee4786893222bdf8c167
[INFO] running `Command { std: "docker" "start" "-a" "14c8a5232003b30243c1772f0fce51cbe5dfaebcf9deee4786893222bdf8c167", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14c8a5232003b30243c1772f0fce51cbe5dfaebcf9deee4786893222bdf8c167", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14c8a5232003b30243c1772f0fce51cbe5dfaebcf9deee4786893222bdf8c167", kill_on_drop: false }`
[INFO] [stdout] 14c8a5232003b30243c1772f0fce51cbe5dfaebcf9deee4786893222bdf8c167
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 78c2b974646c7ef8071018c08c458f24112a6c387b92eccc7b79015f887e796b
[INFO] running `Command { std: "docker" "start" "-a" "78c2b974646c7ef8071018c08c458f24112a6c387b92eccc7b79015f887e796b", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling aws-lc-rs v1.16.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling iri-string v0.7.11
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling ts-rs-macros v10.1.0
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling notify-types v2.1.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling ts-rs v10.1.0
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling inotify v0.11.1
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling opendev-models v0.1.4
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr]    Compiling notify v8.2.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling gethostname v1.1.0
[INFO] [stderr]    Compiling aws-lc-sys v0.39.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling x11rb v0.13.2
[INFO] [stderr]    Compiling notify-debouncer-mini v0.7.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling opendev-memory v0.1.4
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling arboard v3.6.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling opendev-context v0.1.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.10
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling opendev-config v0.1.4
[INFO] [stderr]    Compiling opendev-http v0.1.4
[INFO] [stderr]    Compiling opendev-tools-core v0.1.4
[INFO] [stderr]    Compiling opendev-runtime v0.1.4
[INFO] [stderr]    Compiling opendev-agents v0.1.4
[INFO] [stderr]    Compiling opendev-tui v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 33s
[INFO] running `Command { std: "docker" "inspect" "78c2b974646c7ef8071018c08c458f24112a6c387b92eccc7b79015f887e796b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78c2b974646c7ef8071018c08c458f24112a6c387b92eccc7b79015f887e796b", kill_on_drop: false }`
[INFO] [stdout] 78c2b974646c7ef8071018c08c458f24112a6c387b92eccc7b79015f887e796b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e7885c44a2d425d96cf75df1bbbfc80f308a9809f81432ccb46d06669c7f1ae0
[INFO] running `Command { std: "docker" "start" "-a" "e7885c44a2d425d96cf75df1bbbfc80f308a9809f81432ccb46d06669c7f1ae0", kill_on_drop: false }`
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling ts-rs v10.1.0
[INFO] [stderr]    Compiling opendev-models v0.1.4
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling opendev-context v0.1.4
[INFO] [stderr]    Compiling opendev-memory v0.1.4
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.5.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling opendev-config v0.1.4
[INFO] [stderr]    Compiling opendev-runtime v0.1.4
[INFO] [stderr]    Compiling opendev-tools-core v0.1.4
[INFO] [stderr]    Compiling opendev-http v0.1.4
[INFO] [stderr]    Compiling opendev-agents v0.1.4
[INFO] [stderr]    Compiling opendev-tui v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 45.68s
[INFO] running `Command { std: "docker" "inspect" "e7885c44a2d425d96cf75df1bbbfc80f308a9809f81432ccb46d06669c7f1ae0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e7885c44a2d425d96cf75df1bbbfc80f308a9809f81432ccb46d06669c7f1ae0", kill_on_drop: false }`
[INFO] [stdout] e7885c44a2d425d96cf75df1bbbfc80f308a9809f81432ccb46d06669c7f1ae0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-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" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] afe32db6b2ecbaf2dc4fa055dd6a66c8e12529d5cb54a5f31c8a3e35d5f89e65
[INFO] running `Command { std: "docker" "start" "-a" "afe32db6b2ecbaf2dc4fa055dd6a66c8e12529d5cb54a5f31c8a3e35d5f89e65", kill_on_drop: false }`
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr] warning: failed to parse serde attribute
[INFO] [stderr]   | 
[INFO] [stderr]   | #[serde(skip_serializing_if = "Option::is_none")]
[INFO] [stderr]   | 
[INFO] [stderr]   = note: ts-rs failed to parse this attribute. It will be ignored.
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.42s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/opendev_tui-a420052cc6c556b8)
[INFO] [stdout] 
[INFO] [stdout] running 564 tests
[INFO] [stdout] test app::cache::tests::test_event_sequence_reasoning_then_spawn_subagent_keeps_context ... ok
[INFO] [stdout] test app::cache::tests::test_active_subagents_keep_recent_reasoning_lines_cached ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_append_only_renders_new_message ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_message_removal ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_no_change_is_noop ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_multiple_appends_correct_cache ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_empty_conversation ... ok
[INFO] [stdout] test app::cache::tests::test_incremental_modify_middle_rebuilds_from_change ... ok
[INFO] [stdout] test app::cache::tests::test_markdown_cache_hit ... ok
[INFO] [stdout] test app::cache::tests::test_reasoning_message_produces_lines ... ok
[INFO] [stdout] test app::enums::tests::test_autonomy_level_from_str_loose ... ok
[INFO] [stdout] test app::cache::tests::test_markdown_cache_miss_different_content ... ok
[INFO] [stdout] test app::enums::tests::test_operation_mode_display ... ok
[INFO] [stdout] test app::cache::tests::test_markdown_cache_clear ... ok
[INFO] [stdout] test app::enums::tests::test_operation_mode_from_str_loose ... ok
[INFO] [stdout] test app::enums::tests::test_reasoning_level_to_config ... ok
[INFO] [stdout] test app::key_handler::tests::test_handle_key_backspace ... ok
[INFO] [stdout] test app::enums::tests::test_reasoning_level_cycle ... ok
[INFO] [stdout] test app::enums::tests::test_reasoning_level_from_str ... ok
[INFO] [stdout] test app::key_handler::tests::test_handle_key_char_input ... ok
[INFO] [stdout] test app::cache::tests::test_viewport_culling_cached_lines ... ok
[INFO] [stdout] test app::key_handler::tests::test_mode_toggle ... ok
[INFO] [stdout] test app::key_handler::tests::test_page_scroll ... ok
[INFO] [stdout] test app::key_handler::tests::test_scroll_acceleration ... ok
[INFO] [stdout] test app::key_handler::tests::test_scroll_acceleration_resets_on_direction_change ... ok
[INFO] [stdout] test app::key_handler::tests::test_task_watcher_close_alt_b ... ok
[INFO] [stdout] test app::key_handler::tests::test_handle_key_enter_submits ... ok
[INFO] [stdout] test app::key_handler::tests::test_task_watcher_close_esc ... ok
[INFO] [stdout] test app::key_handler::tests::test_task_watcher_close_ctrl_b ... ok
[INFO] [stdout] test app::key_handler::tests::test_task_watcher_close_ctrl_p ... ok
[INFO] [stdout] test app::key_handler::tests::test_task_watcher_close_q ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_agents ... ok
[INFO] [stdout] test app::cache::tests::test_reasoning_via_cached_lines_widget ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_autonomy_bad_arg ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_autonomy_with_arg ... ok
[INFO] [stdout] test app::cache::tests::test_reasoning_to_subagent_transition_remains_visible_in_short_tui ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_help_lists_all_commands ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_init ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_kill_no_arg ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_mcp_list_empty ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_mode_bad_arg ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_mode_no_arg_toggles ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_mode_with_arg ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_plugins ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_skills ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_task_no_arg ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_tasks_empty ... ok
[INFO] [stdout] test app::state::tests::test_app_state_default ... ok
[INFO] [stdout] test app::cache::tests::test_25_subagents_render_to_terminal ... ok
[INFO] [stdout] test app::state::tests::test_dirty_flag_default ... ok
[INFO] [stdout] test app::tests::test_app_creation ... ok
[INFO] [stdout] test app::tests::test_should_not_force_render_before_draining_on_tick ... ok
[INFO] [stdout] test app::tests::test_should_render_before_draining_on_live_subagent_events ... ok
[INFO] [stdout] test app::types::tests::test_from_model_50_line_cap ... ok
[INFO] [stdout] test app::types::tests::test_from_model_diff_tool_never_collapsed ... ok
[INFO] [stdout] test app::types::tests::test_from_model_error_maps_to_failure ... ok
[INFO] [stdout] test app::types::tests::test_from_model_file_read_always_collapsed ... ok
[INFO] [stdout] test app::types::tests::test_from_model_json_result ... ok
[INFO] [stdout] test app::types::tests::test_from_model_long_result_collapsed ... ok
[INFO] [stdout] test app::types::tests::test_from_model_nested_calls ... ok
[INFO] [stdout] test app::types::tests::test_from_model_no_result ... ok
[INFO] [stdout] test app::types::tests::test_from_model_short_result_not_collapsed ... ok
[INFO] [stdout] test app::types::tests::test_from_model_string_result ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_autonomy ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_mcp ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_mode ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_mode_prefix ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_model_names ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_arg_completion_unknown_command ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_command_completer_add_commands ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_command_completer_basic ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_command_completer_empty_query ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_command_completer_extra_commands ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_command_completer_no_match ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_symbol_completer_empty ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_symbol_completer_with_symbols ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_case_insensitive ... ok
[INFO] [stdout] test autocomplete::completers::tests::test_file_completer_in_temp_dir ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_empty_dir ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_finds_files ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_excludes_git ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_query_filter ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_respects_gitignore ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_format_file_size_bytes ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_format_file_size_kb ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_finder_max_results ... ok
[INFO] [stdout] test autocomplete::file_finder::tests::test_format_file_size_mb ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_file_type_indicator_makefile ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_file_type_indicator_python ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_file_type_indicator_rust ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_file_type_indicator_unknown ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_format_command ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_format_file ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_format_symbol ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_shorten_path_long ... ok
[INFO] [stdout] test autocomplete::formatters::tests::test_shorten_path_short ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_frecency_after_access ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_frecency_multiple_accesses ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_frecency_new_key ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_fuzzy_score_empty_pattern ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_fuzzy_score_exact ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_fuzzy_score_prefix ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_fuzzy_score_subsequence ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_strategy_frecency_boost ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_strategy_sort_by_label_length ... ok
[INFO] [stdout] test autocomplete::strategies::tests::test_fuzzy_score_no_match ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_at ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_mid_word_slash_ignored ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_none ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_slash ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_at_empty_query ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_slash_arg ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_slash_arg_empty ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_slash_after_space ... ok
[INFO] [stdout] test autocomplete::tests::test_detect_trigger_slash_empty_query ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_accept ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_accept_when_hidden ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_arg_completion_mode ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_arg_completion_model_names ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_command_completion ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_dismiss ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_select_navigation ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_add_and_remove_tools ... ok
[INFO] [stdout] test autocomplete::tests::test_engine_arg_completion_unknown_command ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_default_trait ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_new_is_empty ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_reset ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_set_fields ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_empty_tools_is_ok ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_missing_description ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_missing_instructions ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_missing_name ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_trims_whitespace ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_whitespace_only_is_invalid ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_with_model ... ok
[INFO] [stdout] test controllers::approval::tests::test_auto_desc_with_prefix ... ok
[INFO] [stdout] test controllers::agent_creator::tests::test_validate_success ... ok
[INFO] [stdout] test controllers::approval::tests::test_cancel_sends_no ... ok
[INFO] [stdout] test controllers::approval::tests::test_confirm_second_option ... ok
[INFO] [stdout] test controllers::approval::tests::test_move_on_inactive_is_noop ... ok
[INFO] [stdout] test controllers::approval::tests::test_new_controller_is_inactive ... ok
[INFO] [stdout] test controllers::approval::tests::test_confirm_on_inactive_is_noop ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_cancel_deactivates ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_confirm_empty_options_no_input ... ok
[INFO] [stdout] test controllers::approval::tests::test_start_activates ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_free_text_input ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_confirm_returns_selection ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_has_options ... ok
[INFO] [stdout] test controllers::approval::tests::test_move_selection_wraps ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_new_is_inactive ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_start_activates ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_cleanup_clears_text_input ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_next_prev_wraps ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_show_empty_stays_hidden ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_new_is_hidden ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_confirm_empty_options_with_default ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_navigation ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_show_and_hide ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_default_value ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_select ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_add_server ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_default_lists ... ok
[INFO] [stdout] test controllers::autocomplete_popup::tests::test_select_when_hidden ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_enable_disable ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_list_servers ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_remove_not_found ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_add_duplicate ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_remove_server ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_unknown_subcommand ... ok
[INFO] [stdout] test controllers::mcp_command::tests::test_list_empty ... ok
[INFO] [stdout] test controllers::message::tests::test_agent_chunk_creates_message ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_cancel ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_format_context ... ok
[INFO] [stdout] test controllers::message::tests::test_user_submit ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_format_pricing ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_new_picker ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_next_on_empty_is_noop ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_prev_wraps ... ok
[INFO] [stdout] test controllers::message::tests::test_agent_chunk_after_reasoning_creates_new_message ... ok
[INFO] [stdout] test controllers::message::tests::test_agent_chunk_appends ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_search_by_provider ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_search_pop_restores ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_search_filters ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_select ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_cancel ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_start_activates ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_reject_sends_modify ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_cancel_selects_revise ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_approve_sends_decision ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_next_wraps ... ok
[INFO] [stdout] test controllers::message::tests::test_agent_message ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_search_filters_by_title ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_next_prev_wraps ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_select_empty ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_new_empty ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_new_picker ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_next_on_empty_is_noop ... ok
[INFO] [stdout] test controllers::ask_user::tests::test_free_text_overrides_default ... ok
[INFO] [stdout] test controllers::approval::tests::test_confirm_sends_decision ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_next_wraps ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_prev_wraps ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_search_filters_by_id ... ok
[INFO] [stdout] test controllers::plan_approval::tests::test_new_is_inactive ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_select ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_select_empty ... ok
[INFO] [stdout] test controllers::session_picker::tests::test_search_pop_restores ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_reset ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_missing_content ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_new_defaults ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_missing_name ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_set_fields ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_not_invocable ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_trims_whitespace ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_success ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_whitespace_only_is_invalid ... ok
[INFO] [stdout] test controllers::slash_commands::tests::test_builtin_count ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_default_trait ... ok
[INFO] [stdout] test controllers::slash_commands::tests::test_is_command ... ok
[INFO] [stdout] test controllers::spinner::tests::test_frames_count ... ok
[INFO] [stdout] test controllers::spinner::tests::test_new_is_inactive ... ok
[INFO] [stdout] test controllers::spinner::tests::test_start_stop ... ok
[INFO] [stdout] test controllers::slash_commands::tests::test_find_matching_empty ... ok
[INFO] [stdout] test controllers::spinner::tests::test_tick_cycles ... ok
[INFO] [stdout] test controllers::skill_creator::tests::test_validate_missing_description ... ok
[INFO] [stdout] test controllers::slash_commands::tests::test_find_matching_prefix ... ok
[INFO] [stdout] test controllers::slash_commands::tests::test_find_matching_multiple ... ok
[INFO] [stdout] test event::recorder::tests::test_terminal_events_not_reconstructed ... ok
[INFO] [stdout] test event::tests::test_event_handler_creation ... ok
[INFO] [stdout] test event::tests::test_quit_event ... ok
[INFO] [stdout] test formatters::base::tests::test_indent ... ok
[INFO] [stdout] test event::recorder::tests::test_recorded_event_sequence_numbers ... ok
[INFO] [stdout] test event::recorder::tests::test_event_recorder_roundtrip ... ok
[INFO] [stdout] test formatters::base::tests::test_truncate_lines_short ... ok
[INFO] [stdout] test formatters::bash_formatter::tests::test_format_failure ... ok
[INFO] [stdout] test formatters::base::tests::test_truncate_lines_long ... ok
[INFO] [stdout] test formatters::bash_formatter::tests::test_format_no_exit_code ... ok
[INFO] [stdout] test formatters::bash_formatter::tests::test_format_success ... ok
[INFO] [stdout] test formatters::bash_formatter::tests::test_handles ... ok
[INFO] [stdout] test formatters::bash_formatter::tests::test_parse_exit_code ... ok
[INFO] [stdout] test formatters::directory_formatter::tests::test_empty_lines_filtered ... ok
[INFO] [stdout] test formatters::directory_formatter::tests::test_format_glob ... ok
[INFO] [stdout] test formatters::directory_formatter::tests::test_format_grep ... ok
[INFO] [stdout] test formatters::directory_formatter::tests::test_handles ... ok
[INFO] [stdout] test formatters::directory_formatter::tests::test_format_truncation ... ok
[INFO] [stdout] test formatters::display::tests::test_strip_system_reminders ... ok
[INFO] [stdout] test formatters::display::tests::test_strip_system_reminders_multiple ... ok
[INFO] [stdout] test formatters::display::tests::test_strip_system_reminders_none ... ok
[INFO] [stdout] test formatters::display::tests::test_truncate_output_long ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_bash ... ok
[INFO] [stdout] test formatters::display::tests::test_truncate_output_short ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_edit ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_grep ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_read ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_write ... ok
[INFO] [stdout] test formatters::file_formatter::tests::test_format_read ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_unknown_falls_to_generic ... ok
[INFO] [stdout] test formatters::file_formatter::tests::test_format_write ... ok
[INFO] [stdout] test formatters::file_formatter::tests::test_handles ... ok
[INFO] [stdout] test formatters::factory::tests::test_dispatch_glob ... ok
[INFO] [stdout] test formatters::file_formatter::tests::test_format_read_truncation ... ok
[INFO] [stdout] test formatters::generic_formatter::tests::test_format_json_pretty ... ok
[INFO] [stdout] test formatters::file_formatter::tests::test_format_edit_diff ... ok
[INFO] [stdout] test formatters::generic_formatter::tests::test_format_invalid_json_fallback ... ok
[INFO] [stdout] test formatters::generic_formatter::tests::test_handles_anything ... ok
[INFO] [stdout] test formatters::generic_formatter::tests::test_format_truncation ... ok
[INFO] [stdout] test formatters::markdown::tests::test_adjacent_bold_regions ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bold_italic_nested ... ok
[INFO] [stdout] test formatters::generic_formatter::tests::test_format_plain_text ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bold_text ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bullet_list ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bold_and_italic ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bullet_with_inline_formatting ... ok
[INFO] [stdout] test formatters::markdown::tests::test_code_block ... ok
[INFO] [stdout] test formatters::markdown::tests::test_empty_bold_markers ... ok
[INFO] [stdout] test formatters::markdown::tests::test_italic_text ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bold_with_link_inside ... ok
[INFO] [stdout] test formatters::markdown::tests::test_bold_with_code_inside ... ok
[INFO] [stdout] test formatters::markdown::tests::test_markdown_link ... ok
[INFO] [stdout] test formatters::markdown::tests::test_inline_code ... ok
[INFO] [stdout] test formatters::markdown::tests::test_markdown_link_url_as_text ... ok
[INFO] [stdout] test formatters::markdown::tests::test_headers ... ok
[INFO] [stdout] test formatters::markdown::tests::test_mid_word_bold ... ok
[INFO] [stdout] test formatters::markdown::tests::test_multi_backtick_code_span ... ok
[INFO] [stdout] test formatters::markdown::tests::test_nested_bullets ... ok
[INFO] [stdout] test formatters::markdown::tests::test_ordered_list ... ok
[INFO] [stdout] test formatters::markdown::tests::test_triple_star_bold_italic ... ok
[INFO] [stdout] test formatters::markdown::tests::test_unmatched_bold_renders_literally ... ok
[INFO] [stdout] test formatters::markdown::tests::test_plain_text ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_default_no_working_dir ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_text_home_fallback ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_text_boundary_safety ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_text_no_working_dir ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_display_home_long ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_display_home_short ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_home_dir_itself ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_display_long_non_home_path ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_outside_working_dir_uses_tilde ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_display_short_path ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_relative_to_working_dir ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_strips_dot_slash ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_text_standalone_wd ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_all_themes_have_distinct_names ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_dark_theme_matches_legacy_constants ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_auto_detect_theme_fallback ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_working_dir_itself ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_detect_terminal_background_dark ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_default_theme_is_dark ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_dracula_theme ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_light_theme_differs_from_dark ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_theme_name_to_theme ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_theme_name_from_str ... ok
[INFO] [stdout] test formatters::todo_formatter::tests::test_clear_todos_summary ... ok
[INFO] [stdout] test formatters::style_tokens::tests::test_theme_name_roundtrip ... ok
[INFO] [stdout] test formatters::todo_formatter::tests::test_handles ... ok
[INFO] [stdout] test formatters::todo_formatter::tests::test_format_produces_empty_body ... ok
[INFO] [stdout] test formatters::todo_formatter::tests::test_list_todos_summary ... ok
[INFO] [stdout] test formatters::todo_formatter::tests::test_write_todos_summary ... ok
[INFO] [stdout] test formatters::path_shortener::tests::test_shorten_text_replaces_wd ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_format_elapsed_with_minutes ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_format_elapsed_zero ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_format_elapsed_seconds_only ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_active_nested_colors ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_active_primary_colors ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_active_primary_span_count ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_completed_success_icon ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_completed_failure_icon ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_all_tools_have_consistent_color ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_ast_grep_long_pattern_truncated ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_ast_grep_shows_pattern ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_ast_grep_shows_pattern_with_lang ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_format_mcp_tool ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_format_tool_call_display ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_format_spawn_subagent_strips_paths ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_format_tool_call_no_args ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_categorize_tool ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_list_files_pattern_only ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_list_files_shows_pattern_with_path ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_lookup_tool_exact_match ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_lookup_tool_prefix_fallback ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_list_files_shows_pattern ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_lookup_tool_unknown ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_result_format_mapping ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_no_duplicate_names_in_registry ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_tool_display_parts ... ok
[INFO] [stdout] test formatters::wrap::tests::test_bullet_wrap_alignment ... ok
[INFO] [stdout] test formatters::wrap::tests::test_code_line_not_wrapped ... ok
[INFO] [stdout] test formatters::wrap::tests::test_blank_lines_preserved ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_unknown_tool_with_arg ... ok
[INFO] [stdout] test formatters::tool_registry::tests::test_unknown_tool_derives_pretty_name ... ok
[INFO] [stdout] test formatters::wrap::tests::test_bullet_indent_stripped ... ok
[INFO] [stdout] test formatters::wrap::tests::test_reasoning_with_render_muted ... ok
[INFO] [stdout] test formatters::wrap::tests::test_short_line_no_wrap ... ok
[INFO] [stdout] test formatters::wrap::tests::test_thinking_cont_prefix ... ok
[INFO] [stdout] test formatters::wrap::tests::test_nested_bullet_alignment ... ok
[INFO] [stdout] test formatters::wrap::tests::test_wraps_long_line ... ok
[INFO] [stdout] test history::tests::test_empty_history ... ok
[INFO] [stdout] test managers::background_agents::tests::test_add_and_get ... ok
[INFO] [stdout] test managers::background_agents::tests::test_all_tasks_sorted ... ok
[INFO] [stdout] test history::tests::test_record_ignores_empty ... ok
[INFO] [stdout] test managers::background_agents::tests::test_kill_nonexistent ... ok
[INFO] [stdout] test managers::background_agents::tests::test_kill_task ... ok
[INFO] [stdout] test managers::background_agents::tests::test_mark_completed ... ok
[INFO] [stdout] test history::tests::test_navigate_empty ... ok
[INFO] [stdout] test managers::background_agents::tests::test_mark_completed_preserves_killed ... ok
[INFO] [stdout] test history::tests::test_record_and_navigate ... ok
[INFO] [stdout] test managers::background_agents::tests::test_max_concurrent ... ok
[INFO] [stdout] test managers::background_agents::tests::test_update_progress ... ok
[INFO] [stdout] test managers::background_agents::tests::test_new_empty ... ok
[INFO] [stdout] test managers::background_agents::tests::test_pending_spawn_count ... ok
[INFO] [stdout] test managers::background_agents::tests::test_state_display ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_add_and_get ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_active_tasks ... ok
[INFO] [stdout] test history::tests::test_reset_navigation ... ok
[INFO] [stdout] test history::tests::test_record_updates_existing ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_all_tasks ... ok
[INFO] [stdout] test history::tests::test_persistence ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_listener_notification ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_get_output_dir ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_mark_completed_failure ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_mark_completed_killed ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_new_empty ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_mark_completed_success ... ok
[INFO] [stdout] test history::tests::test_record_trims_whitespace ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_read_output_no_file ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_read_output_from_file ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_read_output_nonexistent ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_update_task ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_remove_task ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_task_state_display ... ok
[INFO] [stdout] test managers::display_ledger::tests::test_clear ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_kill_task ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_cleanup ... ok
[INFO] [stdout] test managers::frecency::tests::test_clear ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_runtime_seconds ... ok
[INFO] [stdout] test managers::frecency::tests::test_get_entry ... ok
[INFO] [stdout] test managers::frecency::tests::test_multiple_records_increase_frequency ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_update_task_failed ... ok
[INFO] [stdout] test event::tests::test_sender_delivers_events ... ok
[INFO] [stdout] test formatters::tool_line::tests::test_tool_line_active_nested_no_elapsed ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_update_task_killed ... ok
[INFO] [stdout] test event::recorder::tests::test_subagent_event_roundtrip ... ok
[INFO] [stdout] test managers::display_ledger::tests::test_mark_and_check ... ok
[INFO] [stdout] test managers::display_ledger::tests::test_new_is_empty ... ok
[INFO] [stdout] test managers::frecency::tests::test_record_and_score ... ok
[INFO] [stdout] test managers::frecency::tests::test_top_n ... ok
[INFO] [stdout] test managers::frecency::tests::test_top_n_more_than_entries ... ok
[INFO] [stdout] test managers::frecency::tests::test_unrecorded_score_zero ... ok
[INFO] [stdout] test managers::interrupt::tests::test_new_not_interrupted ... ok
[INFO] [stdout] test managers::interrupt::tests::test_interrupt_and_clear ... ok
[INFO] [stdout] test managers::message_history::tests::test_capacity_eviction ... ok
[INFO] [stdout] test managers::frecency::tests::test_new_empty ... ok
[INFO] [stdout] test managers::message_history::tests::test_consecutive_duplicate_ignored ... ok
[INFO] [stdout] test managers::message_history::tests::test_down_without_navigating ... ok
[INFO] [stdout] test managers::message_history::tests::test_empty_push_ignored ... ok
[INFO] [stdout] test managers::message_history::tests::test_new_empty ... ok
[INFO] [stdout] test managers::message_history::tests::test_reset_cursor ... ok
[INFO] [stdout] test managers::message_history::tests::test_push_and_navigate ... ok
[INFO] [stdout] test managers::message_history::tests::test_up_empty ... ok
[INFO] [stdout] test managers::interrupt::tests::test_interrupt_idempotent ... ok
[INFO] [stdout] test managers::spinner::tests::test_elapsed_increases ... ok
[INFO] [stdout] test managers::spinner::tests::test_new_inactive ... ok
[INFO] [stdout] test managers::spinner::tests::test_start_stop ... ok
[INFO] [stdout] test selection::tests::test_columns_on_line ... ok
[INFO] [stdout] test selection::tests::test_selection_state_lifecycle ... ok
[INFO] [stdout] test selection::tests::test_single_click_no_selection ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_ceil_div ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_compute_grid_cols ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_cell_rect ... ok
[INFO] [stdout] test selection::tests::test_selection_range_ordered ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_non_bg_finished_subagent_does_not_affect_filtering ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_mixed_running_and_finished_bg_subagents_cover_parent ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_panel_focus_and_scrolls ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_empty_panel ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_finished_bg_subagent_still_covers_parent ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_panel_with_subagents ... ok
[INFO] [stdout] test selection::tests::test_text_position_ordering ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_truncate_str ... ok
[INFO] [stdout] test widgets::conversation::diff::tests::test_reformat_summary ... ok
[INFO] [stdout] test widgets::conversation::diff::tests::test_parse_unified_diff_line_numbers ... ok
[INFO] [stdout] test widgets::conversation::spinner::tests::test_25_subagents_all_rendered_individually ... ok
[INFO] [stdout] test widgets::conversation::tests::test_collapsed_tool_result ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_panel_render_no_crash ... ok
[INFO] [stdout] test widgets::conversation::tests::test_diff_rendering_with_line_numbers ... ok
[INFO] [stdout] test widgets::conversation::tests::test_empty_conversation ... ok
[INFO] [stdout] test widgets::conversation::tests::test_edit_tool_never_collapsed ... ok
[INFO] [stdout] test widgets::conversation::tests::test_no_spinner_when_idle ... ok
[INFO] [stdout] test widgets::conversation::tests::test_nested_tool_calls ... ok
[INFO] [stdout] test widgets::conversation::tests::test_render_lines_include_spinner_content ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_parallel_subagents_group_visible_in_tui ... ok
[INFO] [stdout] test widgets::conversation::tests::test_render_reserves_bottom_row_gap ... ok
[INFO] [stdout] test widgets::conversation::tests::test_spinner_parallel_subagents_finished_before_tool ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_empty_conversation ... ok
[INFO] [stdout] test widgets::conversation::tests::test_spinner_parallel_subagents_in_progress ... ok
[INFO] [stdout] test widgets::conversation::tests::test_spinner_tools_take_priority_over_thinking ... ok
[INFO] [stdout] test widgets::conversation::tests::test_system_reminder_filtered ... ok
[INFO] [stdout] test widgets::conversation::tests::test_user_message_rendering ... ok
[INFO] [stdout] test widgets::conversation::tests::test_reasoning_message_visible ... ok
[INFO] [stdout] test widgets::conversation::tests::test_spinner_thinking ... ok
[INFO] [stdout] test widgets::input::tests::test_activity_tag_renders ... ok
[INFO] [stdout] test widgets::input::tests::test_activity_tag_long_title_not_truncated ... ok
[INFO] [stdout] test widgets::input::tests::test_activity_tag_with_queue ... ok
[INFO] [stdout] test widgets::input::tests::test_input_widget_creation ... ok
[INFO] [stdout] test widgets::conversation::tests::test_spinner_active_tools ... ok
[INFO] [stdout] test widgets::input::tests::test_input_widget_empty ... ok
[INFO] [stdout] test widgets::input::tests::test_queue_indicator_bg_results_only ... ok
[INFO] [stdout] test widgets::input::tests::test_queue_indicator_in_separator ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_single_user_message ... ok
[INFO] [stdout] test widgets::input::tests::test_queue_indicator_mixed ... ok
[INFO] [stdout] test widgets::input::tests::test_to_kebab_display_long_title_no_truncation ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_activity_summary_reading ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_activity_summary_running ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_activity_summary_searching ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_add_and_complete_tool_call ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_advance_tick ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_completed_tools_cap ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_activity_summary_done ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_scroll_indicator ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_multi_message_with_tool_call ... ok
[INFO] [stdout] test widgets::input::tests::test_queue_indicator_single_message ... ok
[INFO] [stdout] test widgets::input::tests::test_to_kebab_display ... ok
[INFO] [stdout] test widgets::conversation::tests::test_tool_call_display ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_completion_summary_no_tokens ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_completion_summary_with_tokens ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_finish ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_completion_summary_singular ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_finish_preserves_higher_live_count ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_format_token_count ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_finish_with_shallow_warning ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_subagent_display_state_new ... ok
[INFO] [stdout] test widgets::nested_tool::state::tests::test_token_accumulation ... ok
[INFO] [stdout] test widgets::nested_tool::tests::test_empty_widget ... ok
[INFO] [stdout] test widgets::nested_tool::tests::test_widget_with_active_subagent ... ok
[INFO] [stdout] test widgets::nested_tool::tests::test_widget_with_finished_subagent ... ok
[INFO] [stdout] test widgets::progress::tests::test_format_final_status_completed ... ok
[INFO] [stdout] test widgets::spinner::tests::test_verb_no_immediate_repeat ... ok
[INFO] [stdout] test widgets::progress::tests::test_format_final_status_interrupted ... ok
[INFO] [stdout] test widgets::status_bar::tests::test_autonomy_display ... ok
[INFO] [stdout] test widgets::status_bar::tests::test_format_tokens ... ok
[INFO] [stdout] test widgets::progress::tests::test_task_progress_creation ... ok
[INFO] [stdout] test widgets::spinner::tests::test_spinner_cycles ... ok
[INFO] [stdout] test widgets::spinner::tests::test_spinner_reset ... ok
[INFO] [stdout] test widgets::spinner::tests::test_spinner_tick_count ... ok
[INFO] [stdout] test widgets::spinner::tests::test_verb_advances ... ok
[INFO] [stdout] test widgets::status_bar::tests::test_shorten_display ... ok
[INFO] [stdout] test widgets::status_bar::tests::test_status_bar_creation ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_all_verbs_ascii ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_cycle_ticks ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_fade_intensity_progression ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_no_immediate_repeat ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_verb_count ... ok
[INFO] [stdout] test widgets::thinking_verbs::tests::test_verb_step_visits_all ... ok
[INFO] [stdout] test widgets::toast::tests::test_toast_expiry ... ok
[INFO] [stdout] test widgets::toast::tests::test_toast_level_colors ... ok
[INFO] [stdout] test widgets::toast::tests::test_toast_not_expired ... ok
[INFO] [stdout] test widgets::toast::tests::test_toast_opacity_full ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_build_lines_count ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_all_completed_green_border ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_cancel_and_recreate ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_collapsed_after_resume_shows_active_form ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_collapsed_all_done_shows_checkmark ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_collapsed_no_in_progress_shows_working ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_collapsed_uses_active_form ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_empty_items ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_collapsed_render ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_expanded_title_no_spinner_when_all_done ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_full_todo_lifecycle ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_max_items_height_cap ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_interrupt_resume_display_flow ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_long_title_not_truncated ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_mixed_states_render ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_expanded_title_no_spinner_in_header ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_panel_height_lifecycle ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_pending_shows_circle_not_spinner ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_required_height_collapsed ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_required_height_expanded ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_render_does_not_panic ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_required_height_zero_when_all_done ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_resume_shows_spinner ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_single_item_all_statuses ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_spinner_frame_changes_with_tick ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_status_transition_rendering ... ok
[INFO] [stdout] test widgets::tool_display::tests::test_empty_tool_display ... ok
[INFO] [stdout] test widgets::tool_display::tests::test_tool_display_with_output ... ok
[INFO] [stdout] test widgets::tool_display::tests::test_tool_display_nested ... ok
[INFO] [stdout] test widgets::welcome_panel::color::tests::test_hsl_primary_colors ... ok
[INFO] [stdout] test widgets::welcome_panel::color::tests::test_pseudo_rand_range ... ok
[INFO] [stdout] test widgets::welcome_panel::state::tests::test_state_tick_gradient ... ok
[INFO] [stdout] test widgets::todo_panel::tests::test_todo_panel_height_helper ... ok
[INFO] [stdout] test widgets::welcome_panel::state::tests::test_braille_cycles ... ok
[INFO] [stdout] test widgets::welcome_panel::tests::test_render_buffer_centered_without_rain ... ok
[INFO] [stdout] test widgets::welcome_panel::state::tests::test_fade_completes ... ok
[INFO] [stdout] test widgets::welcome_panel::state::tests::test_rain_init ... ok
[INFO] [stdout] test widgets::welcome_panel::state::tests::test_rain_step ... ok
[INFO] [stdout] test widgets::welcome_panel::tests::test_widget_renders_small_terminal ... ok
[INFO] [stdout] test widgets::welcome_panel::tests::test_render_buffer_with_rain ... ok
[INFO] [stdout] test widgets::welcome_panel::tests::test_widget_renders_visible_output ... ok
[INFO] [stdout] test managers::interrupt::tests::test_clone_shares_state ... ok
[INFO] [stdout] test widgets::background_tasks::tests::test_parse_activity_line ... ok
[INFO] [stdout] test widgets::conversation::tests::test_snapshot_thinking_block ... ok
[INFO] [stdout] test controllers::model_picker::tests::test_from_registry_loads_models ... ok
[INFO] [stdout] test app::key_handler::tests::test_models_command_opens_picker_with_autocomplete ... ok
[INFO] [stdout] test app::slash_commands::tests::test_slash_models_opens_picker_or_shows_message ... ok
[INFO] [stdout] test managers::background_tasks::tests::test_register_and_stream_task ... ok
[INFO] [stdout] test history::tests::test_max_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 564 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests opendev_tui
[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" "afe32db6b2ecbaf2dc4fa055dd6a66c8e12529d5cb54a5f31c8a3e35d5f89e65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afe32db6b2ecbaf2dc4fa055dd6a66c8e12529d5cb54a5f31c8a3e35d5f89e65", kill_on_drop: false }`
[INFO] [stdout] afe32db6b2ecbaf2dc4fa055dd6a66c8e12529d5cb54a5f31c8a3e35d5f89e65
