[INFO] cloning repository https://github.com/johnsideserf/signal-tui [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/johnsideserf/signal-tui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnsideserf%2Fsignal-tui", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnsideserf%2Fsignal-tui'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4042ed099224a2f033c09a973bede0039a9e813c [INFO] testing johnsideserf/signal-tui against 1.97.0-beta.6 for beta-1.98-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjohnsideserf%2Fsignal-tui" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-5-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/johnsideserf/signal-tui [INFO] finished tweaking git repo https://github.com/johnsideserf/signal-tui [INFO] tweaked toml for git repo https://github.com/johnsideserf/signal-tui written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/johnsideserf/signal-tui on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/johnsideserf/signal-tui 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 uuid v1.23.4 [INFO] [stderr] Downloaded strum v0.28.0 [INFO] [stderr] Downloaded by_address v1.2.1 [INFO] [stderr] Downloaded approx v0.5.1 [INFO] [stderr] Downloaded ratatui-termina v0.1.0 [INFO] [stderr] Downloaded ratatui-macros v0.7.2 [INFO] [stderr] Downloaded fallible-iterator v0.3.0 [INFO] [stderr] Downloaded palette_derive v0.7.6 [INFO] [stderr] Downloaded fast-srgb8 v1.0.0 [INFO] [stderr] Downloaded rsqlite-vfs v0.1.0 [INFO] [stderr] Downloaded lru v0.18.0 [INFO] [stderr] Downloaded ratatui-termwiz v0.1.2 [INFO] [stderr] Downloaded hashlink v0.12.0 [INFO] [stderr] Downloaded strum_macros v0.28.0 [INFO] [stderr] Downloaded zvariant_utils v3.3.0 [INFO] [stderr] Downloaded ratatui-crossterm v0.1.2 [INFO] [stderr] Downloaded open v5.3.6 [INFO] [stderr] Downloaded zvariant_derive v5.10.0 [INFO] [stderr] Downloaded zbus_names v4.3.1 [INFO] [stderr] Downloaded tap v1.0.1 [INFO] [stderr] Downloaded funty v2.0.0 [INFO] [stderr] Downloaded gif v0.14.1 [INFO] [stderr] Downloaded mac-notification-sys v0.6.15 [INFO] [stderr] Downloaded radium v0.7.0 [INFO] [stderr] Downloaded ratatui v0.30.2 [INFO] [stderr] Downloaded tauri-winrt-notification v0.7.2 [INFO] [stderr] Downloaded qrcode v0.14.1 [INFO] [stderr] Downloaded zbus_macros v5.14.0 [INFO] [stderr] Downloaded console v0.16.3 [INFO] [stderr] Downloaded rand_xoshiro v0.7.0 [INFO] [stderr] Downloaded password-hash v0.5.0 [INFO] [stderr] Downloaded tree_magic_mini v3.2.2 [INFO] [stderr] Downloaded termina v0.3.3 [INFO] [stderr] Downloaded wyz v0.5.1 [INFO] [stderr] Downloaded argon2 v0.5.3 [INFO] [stderr] Downloaded blake2 v0.10.6 [INFO] [stderr] Downloaded wl-clipboard-rs v0.9.3 [INFO] [stderr] Downloaded fixedbitset v0.5.7 [INFO] [stderr] Downloaded zune-jpeg v0.5.12 [INFO] [stderr] Downloaded notify-rust v4.18.0 [INFO] [stderr] Downloaded quantette v0.5.1 [INFO] [stderr] Downloaded zvariant v5.10.0 [INFO] [stderr] Downloaded safe_arch v0.9.3 [INFO] [stderr] Downloaded webpki-roots v1.0.8 [INFO] [stderr] Downloaded rand v0.9.3 [INFO] [stderr] Downloaded insta v1.48.0 [INFO] [stderr] Downloaded winnow v1.0.0 [INFO] [stderr] Downloaded rusqlite v0.40.1 [INFO] [stderr] Downloaded ratatui-core v0.1.2 [INFO] [stderr] Downloaded zbus v5.14.0 [INFO] [stderr] Downloaded wide v0.8.3 [INFO] [stderr] Downloaded emojis v0.9.0 [INFO] [stderr] Downloaded wayland-protocols v0.32.12 [INFO] [stderr] Downloaded ratatui-widgets v0.3.2 [INFO] [stderr] Downloaded palette v0.7.6 [INFO] [stderr] Downloaded bitvec v1.0.1 [INFO] [stderr] Downloaded rustls v0.23.41 [INFO] [stderr] Downloaded libc v0.2.184 [INFO] [stderr] Downloaded petgraph v0.8.3 [INFO] [stderr] Downloaded icy_sixel v0.5.0 [INFO] [stderr] Downloaded libsqlite3-sys v0.38.1 [INFO] [stderr] Downloaded sqlite-wasm-rs v0.5.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0 [INFO] running `Command { std: "docker" "start" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", 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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0" "/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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", 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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling bitflags v2.13.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling libm v0.2.16 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling wayland-sys v0.31.11 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling wayland-backend v0.3.15 [INFO] [stderr] Compiling endi v1.1.1 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling wayland-client v0.31.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling strum_macros v0.28.0 [INFO] [stderr] Compiling byteorder-lite v0.1.0 [INFO] [stderr] Compiling zune-core v0.5.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling quick-error v2.0.1 [INFO] [stderr] Compiling color_quant v1.1.0 [INFO] [stderr] Compiling image-webp v0.2.4 [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling gif v0.14.1 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling strum v0.28.0 [INFO] [stderr] Compiling zune-jpeg v0.5.12 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling wayland-scanner v0.31.10 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling zvariant_utils v3.3.0 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Compiling lru v0.18.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling zvariant_derive v5.10.0 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling zeroize v1.9.0 [INFO] [stderr] Compiling critical-section v1.2.0 [INFO] [stderr] Compiling async-task v4.7.1 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling ratatui-core v0.1.2 [INFO] [stderr] Compiling rustls-pki-types v1.15.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling zvariant v5.10.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling by_address v1.2.1 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling palette v0.7.6 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling libsqlite3-sys v0.38.1 [INFO] [stderr] Compiling petgraph v0.8.3 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling wyz v0.5.1 [INFO] [stderr] Compiling zbus_names v4.3.1 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling piper v0.2.5 [INFO] [stderr] Compiling palette_derive v0.7.6 [INFO] [stderr] Compiling wayland-protocols v0.32.12 [INFO] [stderr] Compiling async-signal v0.2.13 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling safe_arch v0.9.3 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling fast-srgb8 v1.0.0 [INFO] [stderr] Compiling rustls v0.23.41 [INFO] [stderr] Compiling funty v2.0.0 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling ratatui-widgets v0.3.2 [INFO] [stderr] Compiling async-process v2.5.0 [INFO] [stderr] Compiling bitvec v1.0.1 [INFO] [stderr] Compiling wide v0.8.3 [INFO] [stderr] Compiling wayland-protocols-wlr v0.3.12 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling uuid v1.23.4 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tree_magic_mini v3.2.2 [INFO] [stderr] Compiling blocking v1.6.2 [INFO] [stderr] Compiling zbus_macros v5.14.0 [INFO] [stderr] Compiling rustls-webpki v0.103.13 [INFO] [stderr] Compiling rand_xoshiro v0.7.0 [INFO] [stderr] Compiling rand v0.9.3 [INFO] [stderr] Compiling http v1.4.2 [INFO] [stderr] Compiling async-executor v1.14.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling async-broadcast v0.7.2 [INFO] [stderr] Compiling ordered-float v5.1.0 [INFO] [stderr] Compiling is-docker v0.2.0 [INFO] [stderr] Compiling ordered-stream v0.2.0 [INFO] [stderr] Compiling os_pipe v1.2.3 [INFO] [stderr] Compiling anyhow v1.0.103 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling base64ct v1.8.3 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling ureq-proto v0.6.0 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling password-hash v0.5.0 [INFO] [stderr] Compiling wl-clipboard-rs v0.9.3 [INFO] [stderr] Compiling is-wsl v0.4.0 [INFO] [stderr] Compiling zbus v5.14.0 [INFO] [stderr] Compiling quantette v0.5.1 [INFO] [stderr] Compiling ratatui-crossterm v0.1.2 [INFO] [stderr] Compiling blake2 v0.10.6 [INFO] [stderr] Compiling ratatui-macros v0.7.2 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling webpki-roots v1.0.8 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling hashlink v0.12.0 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling cpufeatures v0.2.17 [INFO] [stderr] Compiling argon2 v0.5.3 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling icy_sixel v0.5.0 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling ureq v3.3.0 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling serde_json v1.0.150 [INFO] [stderr] Compiling notify-rust v4.18.0 [INFO] [stderr] Compiling emojis v0.9.0 [INFO] [stderr] Compiling ratatui v0.30.2 [INFO] [stderr] Compiling open v5.3.6 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling qrcode v0.14.1 [INFO] [stderr] Compiling rusqlite v0.40.1 [INFO] [stderr] Compiling siggy v1.14.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `player_args` is never used [INFO] [stdout] --> src/audio.rs:29:4 [INFO] [stdout] | [INFO] [stdout] 29 | fn player_args(name: &str) -> Option<&'static [&'static str]> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SyncComplete` is never constructed [INFO] [stdout] --> src/signal/types.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 215 | pub enum SignalEvent { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 323 | SyncComplete, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SignalEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 00s [INFO] running `Command { std: "docker" "inspect" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", 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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0" "/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 syn v2.0.117 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling insta v1.48.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling strum_macros v0.28.0 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling palette_derive v0.7.6 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling safe_arch v0.9.3 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling wide v0.8.3 [INFO] [stderr] Compiling palette v0.7.6 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling strum v0.28.0 [INFO] [stderr] Compiling ratatui-core v0.1.2 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling wl-clipboard-rs v0.9.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.2 [INFO] [stderr] Compiling zvariant_utils v3.3.0 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Compiling zvariant_derive v5.10.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.2 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling qrcode v0.14.1 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling chrono v0.4.45 [INFO] [stderr] Compiling ratatui-macros v0.7.2 [INFO] [stderr] Compiling zvariant v5.10.0 [INFO] [stderr] Compiling ratatui v0.30.2 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling quantette v0.5.1 [INFO] [stderr] Compiling zbus_names v4.3.1 [INFO] [stderr] Compiling icy_sixel v0.5.0 [INFO] [stderr] Compiling zbus_macros v5.14.0 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling zbus v5.14.0 [INFO] [stderr] Compiling notify-rust v4.18.0 [INFO] [stderr] Compiling siggy v1.14.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 36s [INFO] running `Command { std: "docker" "inspect" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", 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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0" "/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.63s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/siggy-136211d27bf53d33) [INFO] [stdout] [INFO] [stdout] running 257 tests [INFO] [stdout] test debug_log::tests::strips_escape_and_control_chars ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_native_wins ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_preserves_existing ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_none_when_both_disabled ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_creates_missing_parent_directory ... ok [INFO] [stdout] test debug_log::tests::keep_newlines_preserves_structure ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_new_dir_already_exists ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_renames_directory_with_contents ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_old_missing ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_new_file_already_exists ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_04 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_02 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_03 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_01 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_05 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_06 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_07 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_08 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_09 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_10 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_12 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_11 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_13 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_14 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_15 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_16 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_17 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_19 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_20 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_21 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_22 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_18 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_23 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_24 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_25 ... ok [INFO] [stdout] test debug_log::tests::leaves_plain_and_unicode_text_untouched ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_27 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_28 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_26 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_29 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_01 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_30 ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_renames_single_file ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_halfblock_when_only_inline ... ok [INFO] [stdout] test input::tests::command_with_argument::case_02 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_03 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_04 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_05 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_06 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_07 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_08 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_10 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_11 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_12 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_1 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_3 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_2 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_3 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_2 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_4 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_4 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_1 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_5 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_3 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_2 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_6 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_8 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_01 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_7 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_02 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_03 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_04 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_05 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_06 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_07 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_08 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_11 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_10 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_9 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_12 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_09 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_1 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_2 ... ok [INFO] [stdout] test input::tests::next_char_pos_steps_over_multibyte ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_3 ... ok [INFO] [stdout] test input::tests::parse_export_rejects_unknown_tokens ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_4 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_5 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_6 ... ok [INFO] [stdout] test input::tests::prev_char_pos_steps_over_multibyte ... ok [INFO] [stdout] test input::tests::poll_command_single_select ... ok [INFO] [stdout] test input::tests::poll_command_no_args ... ok [INFO] [stdout] test input::tests::poll_command_basic ... ok [INFO] [stdout] test input::tests::send_text_variants::case_1 ... ok [INFO] [stdout] test input::tests::send_text_variants::case_2 ... ok [INFO] [stdout] test input::tests::poll_command_too_few_options ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_3 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_2 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_4 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_5 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_7 ... ok [INFO] [stdout] test input::tests::shortcode_unclosed_colon ... ok [INFO] [stdout] test input::tests::shortcode_unknown_left_as_is ... ok [INFO] [stdout] test input::tests::shortcode_with_spaces_not_replaced ... ok [INFO] [stdout] test input::tests::send_text_variants::case_3 ... ok [INFO] [stdout] test input::tests::unknown_command ... ok [INFO] [stdout] test input::tests::send_text_variants::case_4 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_1 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_6 ... ok [INFO] [stdout] test keybindings::tests::all_builtin_profiles_have_unique_names ... ok [INFO] [stdout] test keybindings::tests::default_profile_resolves_ctrl_c_as_quit ... ok [INFO] [stdout] test keybindings::tests::default_profile_esc_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_j_not_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_enter_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_resolves_j_in_normal ... ok [INFO] [stdout] test keybindings::tests::default_profile_alt_enter_in_insert ... ok [INFO] [stdout] test keybindings::tests::emacs_profile_has_ctrl_n_scroll ... ok [INFO] [stdout] test keybindings::tests::find_profile_falls_back_to_default ... ok [INFO] [stdout] test keybindings::tests::format_roundtrip ... ok [INFO] [stdout] test keybindings::tests::display_key_for_action ... ok [INFO] [stdout] test keybindings::tests::overrides_apply ... ok [INFO] [stdout] test keybindings::tests::keys_for_action_finds_binding ... ok [INFO] [stdout] test keybindings::tests::insert_newline_both_alt_and_shift ... ok [INFO] [stdout] test keybindings::tests::parse_alt_enter ... ok [INFO] [stdout] test keybindings::tests::parse_ctrl_key ... ok [INFO] [stdout] test keybindings::tests::parse_pageup ... ok [INFO] [stdout] test keybindings::tests::parse_simple_key ... ok [INFO] [stdout] test keybindings::tests::parse_shift_tab ... ok [INFO] [stdout] test keybindings::tests::rebind_detects_conflict ... ok [INFO] [stdout] test keybindings::tests::tab_global_binding_not_conflicted_with_autocomplete ... ok [INFO] [stdout] test signal::client::tests::drain_pending_as_failures_fails_tracked_sends_only ... ok [INFO] [stdout] test keybindings::tests::reset_action_restores_default ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_blank_is_none ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_correlated_response_removes_its_id ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_other_error_yields_status_error ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_malformed_json_yields_error_without_panic ... ok [INFO] [stdout] test keybindings::tests::rebind_works ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_send_error_yields_send_failed ... ok [INFO] [stdout] test keybindings::tests::parse_overrides_toml_basic ... ok [INFO] [stdout] test keybindings::tests::parse_profile_toml_basic ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_sweeps_stale_pending_entries ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_unknown_id_falls_through_to_notification ... ok [INFO] [stdout] test signal::client::wire_tests::block_group_wraps_group_id_in_array ... ok [INFO] [stdout] test signal::client::wire_tests::block_one_to_one_wraps_recipient_in_array ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_registers_after_successful_send ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_group_uses_bare_group_id ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_one_to_one_uses_bare_recipient ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_remove_sets_flag ... ok [INFO] [stdout] test signal::client::wire_tests::send_read_receipt_wire_shape ... ok [INFO] [stdout] test signal::client::wire_tests::set_target_wraps_recipient_in_array ... ok [INFO] [stdout] test signal::client::wire_tests::set_target_uses_bare_group_id ... ok [INFO] [stdout] test signal::client::wire_tests::update_contact_expiration_uses_bare_recipient ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_uuid_when_number_absent ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_e164_wins_when_both_number_and_uuid_present ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_group_base64_padding_preserved ... ok [INFO] [stdout] test signal::parse::fixtures::golden_group_update_system_message ... ok [INFO] [stdout] test signal::parse::fixtures::golden_incoming_1to1_data_message_full ... ok [INFO] [stdout] test signal::parse::fixtures::golden_incoming_group_data_message ... ok [INFO] [stdout] test signal::parse::fixtures::golden_reaction_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_reaction_sent_sync ... ok [INFO] [stdout] test signal::parse::fixtures::golden_receipt_delivery_booleans ... ok [INFO] [stdout] test signal::parse::fixtures::golden_receipt_read_booleans ... ok [INFO] [stdout] test signal::parse::fixtures::golden_remote_delete_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_get_user_status ... ok [INFO] [stdout] test input::tests::command_with_argument::case_09 ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_contacts ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_identities ... ok [INFO] [stdout] test signal::parse::fixtures::golden_edit_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_send_error_shape ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_send_response_timestamp ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sent_sync_group ... ok [INFO] [stdout] test signal::parse::fixtures::golden_edit_sent_sync ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sync_read_messages ... ok [INFO] [stdout] test signal::parse::fixtures::golden_typing_stopped_group ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_1 ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_groups ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message::case_1 ... ok [INFO] [stdout] test signal::parse::fixtures::golden_typing_started_1to1 ... ok [INFO] [stdout] test signal::parse::helpers::tests::sticker_relative_path_builds_hex_paths_only ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sent_sync_1to1 ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_expiration::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_expiration::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_group_update ... ok [INFO] [stdout] test signal::parse::tests::parse_data_message_with_mentions ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message_ignores_hangup ... ok [INFO] [stdout] test signal::parse::tests::parse_identity_list ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_singular_key ... ok [INFO] [stdout] test signal::parse::tests::parse_get_user_status_username_resolution ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_name_priority ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_missing ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_with_username ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_with_uuid ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_empty_array ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_empty_array ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_skips_no_id ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_skips_no_number ... ok [INFO] [stdout] test signal::parse::tests::parse_message_from_uuid_only_contact ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_create_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_no_mentions_backward_compat ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_create_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_terminate_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_terminate_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_vote_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_vote_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_group ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_incoming ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_remove ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_sync ... ok [INFO] [stdout] test signal::parse::tests::parse_read_sync_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_empty_name_becomes_none ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_3 ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_username_only_contact_kept ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_send_result_extracts_timestamp ... ok [INFO] [stdout] test signal::parse::tests::parse_read_sync_empty_array_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_send_result_without_id_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_sent_sync_with_mentions ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_text_styles_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_3 ... ok [INFO] [stdout] test signal::parse::tests::parse_text_styles_empty_or_missing ... ok [INFO] [stdout] test signal::parse::tests::parse_typing_indicator_direct_message_has_no_group_id ... ok [INFO] [stdout] test signal::parse::tests::parse_typing_indicator_group_carries_group_id ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_untrusted_identity ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_3 ... ok [INFO] [stdout] test signal::parse::tests::parse_rpc_result_non_array_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_rpc_result_unknown_method_returns_none ... ok [INFO] [stdout] test theme::tests::all_builtin_themes_have_unique_names ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_1 ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_2 ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_3 ... ok [INFO] [stdout] test theme::tests::default_theme_has_correct_name ... ok [INFO] [stdout] test theme::tests::find_theme_returns_default_for_unknown ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_01 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_02 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_03 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_04 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_05 ... ok [INFO] [stdout] test theme::tests::malformed_hex_in_theme_toml_is_an_error_not_a_panic ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_07 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_09 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_06 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_08 ... ok [INFO] [stdout] test theme::tests::custom_theme_template_parses ... ok [INFO] [stdout] test theme::tests::theme_toml_roundtrip ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_10 ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_recovers_from_poisoned_pending ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_does_not_leak_on_send_failure ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_recovers_from_poisoned_mutex ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 257 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.37s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/siggy-970c0b7cb0decf8a) [INFO] [stdout] [INFO] [stdout] running 889 tests [INFO] [stdout] test app::tests::action_menu_hint_roundtrips_through_char ... ok [INFO] [stdout] test app::tests::active_conv_queues_read_receipt ... ok [INFO] [stdout] test app::tests::action_menu_shows_open_link ... ok [INFO] [stdout] test app::tests::accept_key_returns_send_request_and_marks_accepted ... ok [INFO] [stdout] test app::tests::action_menu_respects_focused_index ... ok [INFO] [stdout] test app::tests::action_menu_shows_open_attachment ... ok [INFO] [stdout] test app::tests::active_overlay_covers_every_variant ... ok [INFO] [stdout] test app::tests::action_menu_shows_both_open_items ... ok [INFO] [stdout] test app::tests::action_menu_no_open_for_plain_text ... ok [INFO] [stdout] test app::tests::alt_enter_inserts_newline ... ok [INFO] [stdout] test app::tests::apply_autocomplete_trailing_space_for_arg_command ... ok [INFO] [stdout] test app::tests::apply_autocomplete_no_space_for_no_arg_command ... ok [INFO] [stdout] test app::tests::apply_autocomplete_index_clamped ... ok [INFO] [stdout] test app::tests::apply_join_autocomplete ... ok [INFO] [stdout] test app::tests::apply_join_autocomplete_group ... ok [INFO] [stdout] test app::tests::apply_input_edit_up_down_routes_to_history ... ok [INFO] [stdout] test app::tests::apply_mention_autocomplete ... ok [INFO] [stdout] test app::tests::archive_toggle_hides_and_restores ... ok [INFO] [stdout] test app::tests::apply_settings_from_config_loads_toggles ... ok [INFO] [stdout] test app::tests::attachment_message_rows_survive_and_replay_dedups ... ok [INFO] [stdout] test app::tests::audio_attachment_renders_as_voice ... ok [INFO] [stdout] test app::tests::attach_no_conversation_shows_error ... ok [INFO] [stdout] test app::tests::autocomplete_esc_closes_overlay ... ok [INFO] [stdout] test app::tests::attachment_without_filename_uses_content_type ... ok [INFO] [stdout] test app::tests::autocomplete_no_match_closes_overlay ... ok [INFO] [stdout] test app::tests::autocomplete_visibility::case_4 ... ok [INFO] [stdout] test app::tests::autocomplete_visibility::case_2 ... ok [INFO] [stdout] test app::tests::autocomplete_visibility::case_3 ... ok [INFO] [stdout] test app::tests::autocomplete_visibility::case_1 ... ok [INFO] [stdout] test app::tests::backspace_at_zero_clears_pending_attachment ... ok [INFO] [stdout] test app::tests::autocomplete_visibility::case_5 ... ok [INFO] [stdout] test app::tests::bell_for_group_respects_setting ... ok [INFO] [stdout] test app::tests::bell_not_set_for_active_conversation ... ok [INFO] [stdout] test app::tests::bell_skipped_for_blocked_conversation ... ok [INFO] [stdout] test app::tests::bell_rings_for_background_dm ... ok [INFO] [stdout] test app::tests::bell_skipped_for_unaccepted_conversation ... ok [INFO] [stdout] test app::tests::block_adds_to_set_and_returns_send_request ... ok [INFO] [stdout] test app::tests::classify_file_open_allows_safe_type_in_download_dir ... ok [INFO] [stdout] test app::tests::bell_skipped_when_notify_disabled ... ok [INFO] [stdout] test app::tests::classify_file_open_allows_uppercase_extension ... ok [INFO] [stdout] test app::tests::classify_file_open_missing_file_is_not_found ... ok [INFO] [stdout] test app::tests::classify_file_open_rejects_everything_when_download_dir_unset ... ok [INFO] [stdout] test app::tests::classify_file_open_rejects_executable_and_unknown_types ... ok [INFO] [stdout] test app::tests::classify_file_open_rejects_path_outside_download_dir ... ok [INFO] [stdout] test app::tests::block_unblock_already_in_state::case_2 ... ok [INFO] [stdout] test app::tests::block_unblock_already_in_state::case_1 ... ok [INFO] [stdout] test app::tests::block_unblock_no_active_conversation::case_1 ... ok [INFO] [stdout] test app::tests::bound_key_dispatches_command_action ... ok [INFO] [stdout] test app::tests::buffered_receipt_resolves_against_db_after_max_replays ... ok [INFO] [stdout] test app::tests::block_unblock_no_active_conversation::case_2 ... ok [INFO] [stdout] test app::tests::clears_attachment_on_next_conversation ... ok [INFO] [stdout] test app::tests::config_show_usernames_defaults_true ... ok [INFO] [stdout] test app::tests::cleanup_paste_files_removes_file_after_deadline ... ok [INFO] [stdout] test app::tests::cleanup_paste_files_keeps_file_before_deadline ... ok [INFO] [stdout] test app::tests::clears_attachment_on_part_command ... ok [INFO] [stdout] test app::tests::clears_edit_and_reply_targets_on_join_conversation ... ok [INFO] [stdout] test app::tests::contact_list_builds_username_maps ... ok [INFO] [stdout] test app::tests::clears_edit_and_reply_targets_on_next_conversation ... ok [INFO] [stdout] test app::tests::concurrent_typers_in_group ... ok [INFO] [stdout] test app::tests::clears_edit_and_reply_targets_on_prev_conversation ... ok [INFO] [stdout] test app::tests::contact_list_does_not_create_conversations ... ok [INFO] [stdout] test app::tests::contact_list_builds_uuid_maps ... ok [INFO] [stdout] test app::tests::contact_list_username_only_without_profile_name_displays_handle ... ok [INFO] [stdout] test app::tests::contact_list_does_not_downgrade_learned_name ... ok [INFO] [stdout] test app::tests::contacts_filter_shows_handle_for_username_only_contact ... ok [INFO] [stdout] test app::tests::contact_sync_auto_accepts_matching_conversations ... ok [INFO] [stdout] test app::tests::contact_name_updates_existing_conversation ... ok [INFO] [stdout] test app::tests::cursor_line_col_at_newline ... ok [INFO] [stdout] test app::tests::conversation_ids_key_db_rows_by_e164_uuid_and_base64 ... ok [INFO] [stdout] test app::tests::conversation_switch_resets_window_extra ... ok [INFO] [stdout] test app::tests::delete_confirm_esc_keeps_conversation ... ok [INFO] [stdout] test app::tests::contact_row_has_conversation_resolves_handles ... ok [INFO] [stdout] test app::tests::dd_shows_delete_confirm ... ok [INFO] [stdout] test app::tests::contact_without_name_does_not_overwrite_existing_name ... ok [INFO] [stdout] test app::tests::contact_list_resolves_reactions_and_quotes ... ok [INFO] [stdout] test app::tests::cursor_line_col_first_line ... ok [INFO] [stdout] test app::tests::delete_confirm_no_keeps_conversation ... ok [INFO] [stdout] test app::tests::ctrl_e_scrolls_without_focus ... ok [INFO] [stdout] test app::tests::delete_confirm_yes_on_unaccepted_returns_remote_delete ... ok [INFO] [stdout] test app::tests::cursor_line_col_second_line ... ok [INFO] [stdout] test app::tests::delete_key_removes_conversation ... ok [INFO] [stdout] test app::tests::delete_confirm_yes_removes_accepted_conversation ... ok [INFO] [stdout] test app::tests::display_title_appends_username_when_enabled ... ok [INFO] [stdout] test app::tests::direct_typing_indicator_keyed_by_sender ... ok [INFO] [stdout] test app::tests::display_title_plain_for_groups_and_unknown ... ok [INFO] [stdout] test app::tests::down_clamps_to_shorter_line ... ok [INFO] [stdout] test app::tests::down_navigates_between_lines ... ok [INFO] [stdout] test app::tests::display_title_skips_username_when_name_is_the_handle ... ok [INFO] [stdout] test app::tests::edit_from_non_author_is_rejected ... ok [INFO] [stdout] test app::tests::down_on_last_line_falls_through_to_history ... ok [INFO] [stdout] test app::tests::edit_received_updates_body_and_marks_edited ... ok [INFO] [stdout] test app::tests::empty_text_with_attachment_sends ... ok [INFO] [stdout] test app::tests::edit_targeting_outgoing_message_from_contact_is_rejected ... ok [INFO] [stdout] test app::tests::end_sync_no_bell_when_no_suppressed ... ok [INFO] [stdout] test app::tests::end_sync_snaps_to_bottom_and_fires_bell ... ok [INFO] [stdout] test app::tests::end_sync_respects_user_scroll ... ok [INFO] [stdout] test app::tests::ensure_active_images_evicts_pre_window_image_lines ... ok [INFO] [stdout] test app::tests::extract_file_uri_from_attachment_body ... ok [INFO] [stdout] test app::tests::extract_file_uri_from_image_body ... ok [INFO] [stdout] test app::tests::extract_file_uri_none_for_plain_text ... ok [INFO] [stdout] test app::tests::extract_http_url_from_body ... ok [INFO] [stdout] test app::tests::ensure_active_images_scan_is_gated_by_signature ... ok [INFO] [stdout] test app::tests::extract_http_url_skips_file_uri ... ok [INFO] [stdout] test app::tests::extract_http_url_with_trailing_paren ... ok [INFO] [stdout] test app::tests::enter_sends_multiline_message ... ok [INFO] [stdout] test app::tests::error_event_sets_status ... ok [INFO] [stdout] test app::tests::expiration_timer_changed_updates_conv_and_inserts_system_message ... ok [INFO] [stdout] test app::tests::esc_closes_message_request_overlay ... ok [INFO] [stdout] test app::tests::extract_http_url_none_for_plain_text ... ok [INFO] [stdout] test app::tests::group_command_parsed ... ok [INFO] [stdout] test app::tests::group_create_produces_send_request ... ok [INFO] [stdout] test app::tests::gg_scrolls_to_top ... ok [INFO] [stdout] test app::tests::get_user_status_rpc_error_clears_pending ... ok [INFO] [stdout] test app::tests::group_add_filter_excludes_existing_members ... ok [INFO] [stdout] test app::tests::group_menu_hint_char_roundtrip ... ok [INFO] [stdout] test app::tests::group_leave_produces_send_request ... ok [INFO] [stdout] test app::tests::group_list_creates_conversations ... ok [INFO] [stdout] test app::tests::extend_scrollback_widens_window_over_memory_without_db_load ... ok [INFO] [stdout] test app::tests::extend_scrollback_pages_from_db_and_makes_new_messages_reachable ... ok [INFO] [stdout] test app::tests::group_menu_items_not_in_group ... ok [INFO] [stdout] test app::tests::group_list_stores_groups ... ok [INFO] [stdout] test app::tests::group_menu_items_in_group ... ok [INFO] [stdout] test app::tests::group_menu_items_no_conversation ... ok [INFO] [stdout] test app::tests::group_menu_state_transitions ... ok [INFO] [stdout] test app::tests::group_remove_filter_excludes_self ... ok [INFO] [stdout] test app::tests::group_rename_produces_send_request ... ok [INFO] [stdout] test app::tests::group_typing_does_not_bleed_into_other_group ... ok [INFO] [stdout] test app::tests::group_typing_indicator_keyed_by_group_not_sender ... ok [INFO] [stdout] test app::tests::handle_input_saves_to_history ... ok [INFO] [stdout] test app::tests::handle_input_trims_and_skips_empty ... ok [INFO] [stdout] test app::tests::handle_input_resets_history_index ... ok [INFO] [stdout] test app::tests::handle_message_syncs_expiration_timer ... ok [INFO] [stdout] test app::tests::handle_reaction_adds_to_message ... ok [INFO] [stdout] test app::tests::handle_reaction_on_own_message ... ok [INFO] [stdout] test app::tests::handle_reaction_remove ... ok [INFO] [stdout] test app::tests::handle_reaction_unknown_message_persists_to_db ... ok [INFO] [stdout] test app::tests::handle_reaction_replaces_existing_from_same_sender ... ok [INFO] [stdout] test app::tests::history_browse_state_does_not_bleed_across_conv_switch ... ok [INFO] [stdout] test app::tests::history_cursor_moves_to_end ... ok [INFO] [stdout] test app::tests::history_down_without_browsing_is_noop ... ok [INFO] [stdout] test app::tests::history_down_walks_forward_and_restores_draft ... ok [INFO] [stdout] test app::tests::history_up_empty_is_noop ... ok [INFO] [stdout] test app::tests::history_up_recalls_last_entry ... ok [INFO] [stdout] test app::tests::history_up_walks_to_oldest ... ok [INFO] [stdout] test app::tests::home_end_line_aware ... ok [INFO] [stdout] test app::tests::identity_list_populates_trust_map ... ok [INFO] [stdout] test app::tests::incoming_messages_have_no_status ... ok [INFO] [stdout] test app::tests::incoming_message_unarchives_conversation ... ok [INFO] [stdout] test app::tests::input_edit_backspace ... ok [INFO] [stdout] test app::tests::incoming_message_resolves_mentions ... ok [INFO] [stdout] test app::tests::is_stale_filters_correctly ... ok [INFO] [stdout] test app::tests::input_edit_char_insert ... ok [INFO] [stdout] test app::tests::input_edit_delete ... ok [INFO] [stdout] test app::tests::input_line_count_multi_line ... ok [INFO] [stdout] test app::tests::input_edit_left_right ... ok [INFO] [stdout] test app::tests::input_edit_home_end ... ok [INFO] [stdout] test app::tests::input_edit_unhandled_key ... ok [INFO] [stdout] test app::tests::input_line_count_single_line ... ok [INFO] [stdout] test app::tests::join_autocomplete_filters_by_phone ... ok [INFO] [stdout] test app::tests::jk_focus_messages ... ok [INFO] [stdout] test app::tests::join_at_target_matches_existing_conversation_name ... ok [INFO] [stdout] test app::tests::join_autocomplete_alias ... ok [INFO] [stdout] test app::tests::join_autocomplete_filters_by_name ... ok [INFO] [stdout] test app::tests::join_autocomplete_includes_conversations ... ok [INFO] [stdout] test app::tests::join_autocomplete_includes_username_only_contacts ... ok [INFO] [stdout] test app::tests::join_autocomplete_skips_group_ids_in_contacts ... ok [INFO] [stdout] test app::tests::join_autocomplete_shows_contacts ... ok [INFO] [stdout] test app::tests::join_autocomplete_index_clamped ... ok [INFO] [stdout] test app::tests::join_autocomplete_no_match_hides ... ok [INFO] [stdout] test app::tests::join_autocomplete_shows_groups ... ok [INFO] [stdout] test app::tests::join_group_id_in_contact_names_does_not_create_1to1 ... ok [INFO] [stdout] test app::tests::join_unknown_full_username_queues_resolve_request ... ok [INFO] [stdout] test app::tests::join_known_contact_key_creates_conversation ... ok [INFO] [stdout] test app::tests::join_known_username_opens_conversation ... ok [INFO] [stdout] test app::tests::known_contact_creates_accepted_conversation ... ok [INFO] [stdout] test app::tests::load_from_db_no_more_when_under_page_size ... ok [INFO] [stdout] test app::tests::join_unknown_username_without_discriminator_errors ... ok [INFO] [stdout] test app::tests::load_from_db_demotes_stale_sending_to_failed ... ok [INFO] [stdout] test app::tests::locked_session_suppresses_pending_bell ... ok [INFO] [stdout] test app::tests::load_from_db_marks_has_more ... ok [INFO] [stdout] test app::tests::mark_send_failed_updates_memory_and_db ... ok [INFO] [stdout] test app::tests::mark_unread_badges_and_closes ... ok [INFO] [stdout] test app::tests::mention_autocomplete_in_group ... ok [INFO] [stdout] test app::tests::mark_unread_without_incoming_is_a_noop ... ok [INFO] [stdout] test app::tests::mention_autocomplete_in_direct_chat ... ok [INFO] [stdout] test app::tests::load_more_messages_prepends ... ok [INFO] [stdout] test app::tests::message_in_known_group_uses_name_lookup ... ok [INFO] [stdout] test app::tests::message_uses_contact_name_lookup ... ok [INFO] [stdout] test app::tests::message_with_body_and_attachment ... ok [INFO] [stdout] test app::tests::message_with_image_attachment ... ok [INFO] [stdout] test app::tests::mention_reresolves_when_contact_arrives_after_message ... ok [INFO] [stdout] test app::tests::message_with_non_image_attachment ... ok [INFO] [stdout] test app::tests::mid_sync_message_does_not_persist_read_marker ... ok [INFO] [stdout] test app::tests::mouse_disabled_ignores_events ... ok [INFO] [stdout] test app::tests::mouse_input_click_handles_multibyte ... ok [INFO] [stdout] test app::tests::mouse_overlay_scroll_navigates_list ... ok [INFO] [stdout] test app::tests::mouse_scroll_behavior::case_2 ... ok [INFO] [stdout] test app::tests::mouse_input_click_positions_cursor ... ok [INFO] [stdout] test app::tests::mouse_scroll_behavior::case_1 ... ok [INFO] [stdout] test app::tests::mouse_scroll_behavior::case_3 ... ok [INFO] [stdout] test app::tests::mouse_sidebar_click_switches_conversation ... ok [INFO] [stdout] test app::tests::notifications_fire_after_sync_ends ... ok [INFO] [stdout] test app::tests::outgoing_sync_creates_accepted_conversation ... ok [INFO] [stdout] test app::tests::no_duplicate_on_repeated_messages ... ok [INFO] [stdout] test app::tests::o_preserves_composer_buffer ... ok [INFO] [stdout] test app::tests::own_sync_echo_replay_inserts_once ... ok [INFO] [stdout] test app::tests::out_of_order_receipt_does_not_downgrade_after_reload ... ok [INFO] [stdout] test app::tests::own_sync_edit_of_outgoing_message_applies ... ok [INFO] [stdout] test app::tests::palette_empty_query_lists_conversations_then_commands ... ok [INFO] [stdout] test app::tests::palette_runs_argless_command_and_prefills_command_with_args ... ok [INFO] [stdout] test app::tests::palette_typing_j_and_k_filters_instead_of_navigating ... ok [INFO] [stdout] test app::tests::palette_filters_and_enter_joins_conversation ... ok [INFO] [stdout] test app::tests::paste_command_without_active_conversation_sets_error ... ok [INFO] [stdout] test app::tests::partial_receipt_match_buffers_only_unmatched_timestamps ... ok [INFO] [stdout] test app::tests::paste_empty_text_shows_status_message ... ok [INFO] [stdout] test app::tests::paste_text_inserts_into_composer ... ok [INFO] [stdout] test app::tests::pending_key_cancelled_by_esc ... ok [INFO] [stdout] test app::tests::paste_normalizes_line_endings ... ok [INFO] [stdout] test app::tests::pending_key_cleared_on_mode_transition ... ok [INFO] [stdout] test app::tests::paste_file_path_inserts_as_text ... ok [INFO] [stdout] test app::tests::paste_clipboard_image_saves_png_as_attachment ... ok [INFO] [stdout] test app::tests::pending_key_discarded_on_other_key ... ok [INFO] [stdout] test app::tests::poll_terminated_marks_closed ... ok [INFO] [stdout] test app::tests::pin_received_sets_pinned_and_inserts_system_message ... ok [INFO] [stdout] test app::tests::poll_created_before_message_buffers_then_attaches_on_arrival ... ok [INFO] [stdout] test app::tests::poll_vote_nav_clamps_within_options ... ok [INFO] [stdout] test app::tests::poll_created_attaches_to_existing_message ... ok [INFO] [stdout] test app::tests::poll_created_before_conversation_exists_still_buffers ... ok [INFO] [stdout] test app::tests::poll_vote_received_upserts_vote ... ok [INFO] [stdout] test app::tests::poll_vote_space_single_select_replaces ... ok [INFO] [stdout] test app::tests::prepare_outgoing_mentions ... ok [INFO] [stdout] test app::tests::preview_command_validates_and_clears ... ok [INFO] [stdout] test app::tests::prepare_outgoing_no_pending_mentions ... ok [INFO] [stdout] test app::tests::profile_nav_clamps_to_save_button ... ok [INFO] [stdout] test app::tests::rapid_consecutive_sends_both_get_confirmed ... ok [INFO] [stdout] test app::tests::receipt_before_send_timestamp_is_buffered_and_replayed ... ok [INFO] [stdout] test app::tests::read_sync_advances_read_marker_and_clears_unread ... ok [INFO] [stdout] test app::tests::read_sync_does_not_retreat_read_marker ... ok [INFO] [stdout] test app::tests::read_receipts_not_sent_for_unaccepted ... ok [INFO] [stdout] test app::tests::read_marker_and_unread_count_survive_reload ... ok [INFO] [stdout] test app::tests::read_receipts_not_sent_for_blocked ... ok [INFO] [stdout] test app::tests::receipt_viewed_upgrades_outgoing_status ... ok [INFO] [stdout] test app::tests::receipt_falls_back_to_group_scan_when_sender_is_not_conv_id ... ok [INFO] [stdout] test app::tests::receipt_upgrades_persist_across_reload ... ok [INFO] [stdout] test app::tests::replayed_message_does_not_refire_triggers ... ok [INFO] [stdout] test app::tests::replayed_incoming_message_is_fully_suppressed ... ok [INFO] [stdout] test app::tests::remote_delete_from_non_author_is_rejected ... ok [INFO] [stdout] test app::tests::resolve_mentions_variants::case_1 ... ok [INFO] [stdout] test app::tests::remote_delete_received_clears_body_and_reactions ... ok [INFO] [stdout] test app::tests::receipt_does_not_downgrade_status ... ok [INFO] [stdout] test app::tests::receipt_upgrades_outgoing_message_status ... ok [INFO] [stdout] test app::tests::resolve_mentions_variants::case_2 ... ok [INFO] [stdout] test app::tests::resolve_mentions_variants::case_3 ... ok [INFO] [stdout] test app::tests::resolve_mentions_variants::case_4 ... ok [INFO] [stdout] test app::tests::search_overlay_esc_closes ... ok [INFO] [stdout] test app::tests::search_opens_overlay ... ok [INFO] [stdout] test app::tests::same_timestamp_distinct_senders_in_group_both_survive ... ok [INFO] [stdout] test app::tests::search_without_query_shows_error ... ok [INFO] [stdout] test app::tests::search_overlay_typing_refines ... ok [INFO] [stdout] test app::tests::send_failed_resets_paste_cleanup_deadline ... ok [INFO] [stdout] test app::tests::send_failed_sets_failed_status ... ok [INFO] [stdout] test app::tests::send_text_without_markup_is_unchanged ... ok [INFO] [stdout] test app::tests::send_failed_status_survives_reload ... ok [INFO] [stdout] test app::tests::send_confirm_timestamp_rewrite_survives_reload ... ok [INFO] [stdout] test app::tests::send_text_parses_style_markup ... ok [INFO] [stdout] test app::tests::send_text_styles_shift_mention_offsets ... ok [INFO] [stdout] test app::tests::settings_save_and_load_are_paired ... ok [INFO] [stdout] test app::tests::send_timestamp_resets_paste_cleanup_deadline ... ok [INFO] [stdout] test app::tests::send_timestamp_upgrades_sending_to_sent ... ok [INFO] [stdout] test app::tests::send_with_pending_preview_appends_url_and_carries_preview ... ok [INFO] [stdout] test app::tests::spinner_does_not_tick_when_loading_is_false ... ok [INFO] [stdout] test app::tests::slash_delete_opens_confirmation_overlay ... ok [INFO] [stdout] test app::tests::slash_delete_without_active_conversation_sets_error ... ok [INFO] [stdout] test app::tests::send_with_pending_preview_and_empty_text_sends_url_only ... ok [INFO] [stdout] test app::tests::settings_round_trip_through_table ... ok [INFO] [stdout] test app::tests::spinner_pauses_during_sync ... ok [INFO] [stdout] test app::tests::spinner_ticks_after_sync_ends_but_loading_continues ... ok [INFO] [stdout] test app::tests::sweep_clears_focus_when_the_focused_message_expires ... ok [INFO] [stdout] test app::tests::sweep_shifts_and_clamps_last_read_index ... ok [INFO] [stdout] test app::tests::sweep_shifts_focused_index_when_older_message_expires ... ok [INFO] [stdout] test app::tests::sync_captures_pin_on_first_message ... ok [INFO] [stdout] test app::tests::sync_complete_event_ends_sync_window ... ok [INFO] [stdout] test app::tests::sync_does_not_advance_read_index_for_active_conv ... ok [INFO] [stdout] test app::tests::sync_does_not_capture_pin_after_user_scroll ... ok [INFO] [stdout] test app::tests::sync_pin_cleared_on_end_sync ... ok [INFO] [stdout] test app::tests::sync_pin_skips_non_active_conversation ... ok [INFO] [stdout] test app::tests::sync_pin_only_captured_once ... ok [INFO] [stdout] test app::tests::sync_pin_cleared_on_conv_switch ... ok [INFO] [stdout] test app::tests::sync_starts_active ... ok [INFO] [stdout] test app::tests::sync_should_end_requires_quiet_and_min_elapsed ... ok [INFO] [stdout] test app::tests::sync_suppresses_notifications ... ok [INFO] [stdout] test app::tests::text_style_ranges_empty_styles ... ok [INFO] [stdout] test app::tests::system_message_inserted_with_is_system_true ... ok [INFO] [stdout] test app::tests::text_style_ranges_resolved_to_byte_offsets ... ok [INFO] [stdout] test app::tests::text_style_ranges_with_mentions ... ok [INFO] [stdout] test app::tests::text_style_ranges_with_multibyte_chars ... ok [INFO] [stdout] test app::tests::toggle_sidebar_action_flips_visibility ... ok [INFO] [stdout] test app::tests::trigger_engine_empty_by_default_in_app ... ok [INFO] [stdout] test app::tests::unblock_removes_from_set_and_returns_send_request ... ok [INFO] [stdout] test app::tests::trigger_reply_queues_send_and_echoes_locally ... ok [INFO] [stdout] test app::tests::typing_indicator_adds_and_removes ... ok [INFO] [stdout] test app::tests::unknown_sender_creates_unaccepted_conversation ... ok [INFO] [stdout] test app::tests::unpin_received_clears_pinned ... ok [INFO] [stdout] test app::tests::unknown_sender_with_source_name_creates_accepted_conversation ... ok [INFO] [stdout] test app::tests::unread_bar_clears_on_active_incoming_message ... ok [INFO] [stdout] test app::tests::up_clamps_to_shorter_line ... ok [INFO] [stdout] test app::tests::unread_no_increment_for_active ... ok [INFO] [stdout] test app::tests::unread_increments_for_background ... ok [INFO] [stdout] test app::tests::up_on_first_line_uses_history ... ok [INFO] [stdout] test app::tests::up_navigates_between_lines ... ok [INFO] [stdout] test app::tests::user_status_resolves_pending_username_join ... ok [INFO] [stdout] test app::tests::update_status_does_not_clobber_active_app_overlay ... ok [INFO] [stdout] test app::tests::user_status_reuses_phone_keyed_identity ... ok [INFO] [stdout] test app::tests::user_status_unregistered_reports_error ... ok [INFO] [stdout] test audio::tests::detect_player_honours_override_verbatim ... ok [INFO] [stdout] test audio::tests::format_mmss_formats ... ok [INFO] [stdout] test audio::tests::is_audio_matches_audio_types_only ... ok [INFO] [stdout] test audio::tests::ogg_opus_duration_reads_last_granule_minus_preskip ... ok [INFO] [stdout] test app::tests::user_status_without_matching_entry_clears_pending ... ok [INFO] [stdout] test audio::tests::player_args_known_and_unknown ... ok [INFO] [stdout] test audio::tests::ogg_opus_duration_skips_no_packet_pages_and_rejects_non_opus ... ok [INFO] [stdout] test backend::signal_cli::tests::link_state_from_probe_maps_registration_outcomes ... ok [INFO] [stdout] test app::tests::user_status_without_pending_join_is_ignored ... ok [INFO] [stdout] test app::tests::verify_nav_on_empty_list_is_safe_noop ... ok [INFO] [stdout] test app::tests::verify_second_press_emits_trust_identity ... ok [INFO] [stdout] test backend::tests::display_names_identify_engines ... ok [INFO] [stdout] test app::tests::verify_nav_clamps_and_cancels_confirming ... ok [INFO] [stdout] test backend::tests::group_admin_capability_defaults_to_supported ... ok [INFO] [stdout] test app::tests::wire_quote_attached_to_body_row_not_attachment_row ... ok [INFO] [stdout] test backend::tests::demo_startup_matches_legacy_run_app_branch ... ok [INFO] [stdout] test backend::tests::demo_backend_swallows_sends_and_yields_no_events ... ok [INFO] [stdout] test backend::tests::block_family_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::edit_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::expiration_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::group_admin_family_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::identity_family_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::reconnect_policy_backoff_is_exponential_and_capped ... ok [INFO] [stdout] test backend::tests::reconnect_policy_defaults_to_signal_cli_attempt_cap ... ok [INFO] [stdout] test backend::tests::message_request_response_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::message_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::poll_family_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::read_receipt_routes_to_dispatch ... ok [INFO] [stdout] test compose::tests::content_is_not_rescanned ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_1 ... ok [INFO] [stdout] test backend::tests::pin_family_routes_to_dispatch ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_3 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_2 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_5 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_4 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_6 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_7 ... ok [INFO] [stdout] test compose::tests::literal_text_untouched::case_8 ... ok [INFO] [stdout] test compose::tests::mention_placeholder_is_valid_span_content ... ok [INFO] [stdout] test compose::tests::no_span_across_newline ... ok [INFO] [stdout] test compose::tests::multiple_spans ... ok [INFO] [stdout] test compose::tests::punctuation_boundaries_allowed ... ok [INFO] [stdout] test backend::tests::resolve_username_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::reaction_routes_to_dispatch ... ok [INFO] [stdout] test compose::tests::single_span::case_1 ... ok [INFO] [stdout] test compose::tests::single_span::case_2 ... ok [INFO] [stdout] test compose::tests::single_span::case_4 ... ok [INFO] [stdout] test compose::tests::single_span::case_5 ... ok [INFO] [stdout] test compose::tests::single_span::case_3 ... ok [INFO] [stdout] test backend::tests::remote_delete_routes_to_dispatch ... ok [INFO] [stdout] test compose::tests::utf16_ranges_and_removed_offsets ... ok [INFO] [stdout] test compose::tests::span_before_url_does_not_close_inside_it ... ok [INFO] [stdout] test compose::tests::span_mid_sentence ... ok [INFO] [stdout] test compose::tests::spoiler_removed_offsets_cover_both_chars ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_halfblock_when_only_inline ... ok [INFO] [stdout] test compose::tests::url_underscores_survive ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_native_wins ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_none_when_both_disabled ... ok [INFO] [stdout] test config::tests::migrate_legacy_image_mode_preserves_existing ... ok [INFO] [stdout] test conversation_store::tests::remember_contact_name_respects_existing_entry ... ok [INFO] [stdout] test backend::tests::update_profile_routes_to_dispatch ... ok [INFO] [stdout] test backend::tests::typing_routes_to_dispatch ... ok [INFO] [stdout] test db::tests::clear_expired_mutes_skips_permanent ... ok [INFO] [stdout] test db::tests::batch_wrapped_writes_persist_and_unbalanced_calls_are_safe ... ok [INFO] [stdout] test db::tests::blocked_flag_round_trip ... ok [INFO] [stdout] test db::tests::clear_expired_mutes_clears_past ... ok [INFO] [stdout] test db::tests::db_at_version_stops_at_requested_version ... ok [INFO] [stdout] test db::tests::conversation_order ... ok [INFO] [stdout] test db::tests::load_reactions_attaches_to_messages ... ok [INFO] [stdout] test db::tests::last_message_rowid ... ok [INFO] [stdout] test db::tests::insert_and_load_messages ... ok [INFO] [stdout] test db::tests::load_messages_page_pagination ... ok [INFO] [stdout] test db::tests::mark_unread_restores_one_unread_incoming ... ok [INFO] [stdout] test db::tests::delete_conversation_removes_all_data ... ok [INFO] [stdout] test db::tests::migration_v8_defaults_accepted_to_1 ... ok [INFO] [stdout] test db::tests::max_rowid_up_to_timestamp ... ok [INFO] [stdout] test db::tests::migration_v4_creates_reactions_table ... ok [INFO] [stdout] test db::tests::migration_creates_tables ... ok [INFO] [stdout] test db::tests::migration_v9_defaults_blocked_to_0 ... ok [INFO] [stdout] test db::tests::mark_unread_without_incoming_returns_false ... ok [INFO] [stdout] test db::tests::migrations_advance_schema_version_monotonically ... ok [INFO] [stdout] test db::tests::name_update_on_conflict ... ok [INFO] [stdout] test db::tests::outgoing_rewrite_onto_incoming_timestamp_succeeds ... ok [INFO] [stdout] test db::tests::permanent_mute_round_trip ... ok [INFO] [stdout] test db::tests::remove_reaction ... ok [INFO] [stdout] test db::tests::search_all_messages_across_conversations ... ok [INFO] [stdout] test db::tests::search_messages_excludes_system_and_deleted ... ok [INFO] [stdout] test db::tests::adapter_connection_insert_queues_behind_main_batch ... ok [INFO] [stdout] test db::tests::timed_mute_round_trip ... ok [INFO] [stdout] test db::tests::search_messages_in_conversation ... ok [INFO] [stdout] test db::tests::system_messages_excluded_from_unread ... ok [INFO] [stdout] test db::tests::unread_count_excludes_outgoing_messages ... ok [INFO] [stdout] test db::tests::set_archived_round_trips_through_load ... ok [INFO] [stdout] test db::tests::unread_count_with_read_markers ... ok [INFO] [stdout] test db::tests::update_accepted_round_trip ... ok [INFO] [stdout] test db::tests::upgrade_from_v15_backfills_entry_seq_and_builds_dedup_index ... ok [INFO] [stdout] test debug_log::tests::leaves_plain_and_unicode_text_untouched ... ok [INFO] [stdout] test debug_log::tests::keep_newlines_preserves_structure ... ok [INFO] [stdout] test domain::emoji_picker::tests::category_filters_emojis ... ok [INFO] [stdout] test domain::emoji_picker::tests::close_resets_state ... ok [INFO] [stdout] test db::tests::upsert_and_load_conversations ... ok [INFO] [stdout] test db::tests::upsert_reaction_insert_and_replace ... ok [INFO] [stdout] test debug_log::tests::strips_escape_and_control_chars ... ok [INFO] [stdout] test domain::emoji_picker::tests::esc_returns_close ... ok [INFO] [stdout] test domain::emoji_picker::tests::grid_navigation_down_moves_by_cols ... ok [INFO] [stdout] test domain::emoji_picker::tests::filter_narrows_results ... ok [INFO] [stdout] test domain::emoji_picker::tests::open_populates_filtered_list ... ok [INFO] [stdout] test db::tests::upgrade_from_v8_preserves_existing_values_and_loads ... ok [INFO] [stdout] test domain::emoji_picker::tests::tab_cycles_categories ... ok [INFO] [stdout] test domain::emoji_picker::tests::text_filter_ignores_category ... ok [INFO] [stdout] test domain::emoji_picker::tests::grid_navigation_up_moves_by_cols ... ok [INFO] [stdout] test domain::emoji_picker::tests::selected_emoji_returns_none_when_empty ... ok [INFO] [stdout] test domain::emoji_picker::tests::backtab_cycles_categories_reverse ... ok [INFO] [stdout] test domain::emoji_picker::tests::enter_returns_select ... ok [INFO] [stdout] test domain::emoji_picker::tests::grid_navigation_left_right ... ok [INFO] [stdout] test domain::emoji_picker::tests::typing_char_appends_to_filter ... ok [INFO] [stdout] test db::tests::upgrade_from_v1_backfills_columns_and_preserves_rows ... ok [INFO] [stdout] test domain::image::tests::cap_map_exact_cap_unchanged ... ok [INFO] [stdout] test domain::input::tests::push_history_bounds_at_cap_keeping_newest ... ok [INFO] [stdout] test domain::image::tests::cap_map_is_noop_within_budget ... ok [INFO] [stdout] test domain::image::tests::cap_map_trims_to_cap ... ok [INFO] [stdout] test domain::lock::tests::verify_rejects_empty_stored_hash ... ok [INFO] [stdout] test domain::lock::tests::verify_rejects_malformed_hash ... ok [INFO] [stdout] test domain::lock::tests::load_missing_file_returns_none ... ok [INFO] [stdout] test export::tests::extensions_match_formats ... ok [INFO] [stdout] test export::tests::from_arg_parses_formats_case_insensitively ... ok [INFO] [stdout] test export::tests::json_escapes_control_characters ... ok [INFO] [stdout] test export::tests::json_round_trips_and_carries_fields ... ok [INFO] [stdout] test export::tests::markdown_formats_messages_and_quotes ... ok [INFO] [stdout] test export::tests::text_includes_header_quote_and_reactions ... ok [INFO] [stdout] test export::tests::text_marks_system_and_edited_messages ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_creates_missing_parent_directory ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_new_dir_already_exists ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_new_file_already_exists ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_noops_when_old_missing ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_renames_directory_with_contents ... ok [INFO] [stdout] test fs_migrate::tests::migrate_path_renames_single_file ... ok [INFO] [stdout] test handlers::signal::tests::classifies_decrypt_failures_as_unprocessable ... ok [INFO] [stdout] test handlers::signal::tests::classifies_outdated_signal_cli ... ok [INFO] [stdout] test handlers::signal::tests::classifies_unprocessable_message ... ok [INFO] [stdout] test handlers::signal::tests::generic_errors_fall_through_to_raw ... ok [INFO] [stdout] test domain::search::tests::enter_flushes_pending_query ... ok [INFO] [stdout] test domain::search::tests::typing_defers_search_until_due ... ok [INFO] [stdout] test domain::search::tests::run_skips_queries_below_min_length ... ok [INFO] [stdout] test image_render::tests::halfblock_odd_height_last_row_bg_reset ... ok [INFO] [stdout] test image_render::tests::halfblock_opaque_image_uses_rgb ... ok [INFO] [stdout] test image_render::tests::halfblock_transparent_image_is_all_reset ... ok [INFO] [stdout] test image_render::tests::find_preamble_end_basic ... ok [INFO] [stdout] test image_render::tests::encode_sixel_clamps_settings_out_of_range ... ok [INFO] [stdout] test image_render::tests::encode_sixel_does_not_upscale_small_image ... ok [INFO] [stdout] test image_render::tests::slice_clips_full_image_overflow ... ok [INFO] [stdout] test image_render::tests::slice_crop_bottom ... ok [INFO] [stdout] test image_render::tests::slice_crop_top ... ok [INFO] [stdout] test image_render::tests::slice_empty_crop_returns_none ... ok [INFO] [stdout] test image_render::tests::slice_middle ... ok [INFO] [stdout] test image_render::tests::slice_no_crop_exact_bands ... ok [INFO] [stdout] test image_render::tests::slice_preserves_color_defs ... ok [INFO] [stdout] test image_render::tests::slice_with_larger_cell_px ... ok [INFO] [stdout] test image_render::tests::wrap_for_tmux_iterm2_osc_with_bel ... ok [INFO] [stdout] test image_render::tests::wrap_for_tmux_kitty_graphics ... ok [INFO] [stdout] test image_render::tests::wrap_for_tmux_passes_non_escape_bytes_through ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_01 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_02 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_03 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_04 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_05 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_06 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_07 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_08 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_09 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_10 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_11 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_12 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_13 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_14 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_15 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_16 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_17 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_18 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_19 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_20 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_21 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_22 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_23 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_24 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_25 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_26 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_27 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_28 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_29 ... ok [INFO] [stdout] test input::tests::command_returns_expected_action::case_30 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_01 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_02 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_03 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_04 ... ok [INFO] [stdout] test image_render::tests::slice_clips_overflow_band ... ok [INFO] [stdout] test input::tests::command_with_argument::case_05 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_06 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_07 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_08 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_09 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_10 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_11 ... ok [INFO] [stdout] test input::tests::command_with_argument::case_12 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_1 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_2 ... ok [INFO] [stdout] test input::tests::command_without_required_arg_returns_unknown::case_3 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_2 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_1 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_3 ... ok [INFO] [stdout] test input::tests::duration_parser_invalid::case_4 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_1 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_2 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_3 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_4 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_5 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_6 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_7 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_8 ... ok [INFO] [stdout] test input::tests::duration_parser_valid::case_9 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_01 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_02 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_03 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_04 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_05 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_06 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_07 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_08 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_09 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_11 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_10 ... ok [INFO] [stdout] test input::tests::format_mute_remaining_cases::case_12 ... ok [INFO] [stdout] test input::tests::next_char_pos_steps_over_multibyte ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_1 ... ok [INFO] [stdout] test input::tests::parse_export_rejects_unknown_tokens ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_2 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_3 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_4 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_5 ... ok [INFO] [stdout] test input::tests::parse_export_variants::case_6 ... ok [INFO] [stdout] test input::tests::poll_command_basic ... ok [INFO] [stdout] test input::tests::poll_command_single_select ... ok [INFO] [stdout] test input::tests::poll_command_no_args ... ok [INFO] [stdout] test input::tests::poll_command_too_few_options ... ok [INFO] [stdout] test input::tests::prev_char_pos_steps_over_multibyte ... ok [INFO] [stdout] test input::tests::send_text_variants::case_1 ... ok [INFO] [stdout] test input::tests::send_text_variants::case_2 ... ok [INFO] [stdout] test input::tests::send_text_variants::case_3 ... ok [INFO] [stdout] test input::tests::send_text_variants::case_4 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_1 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_2 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_3 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_4 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_5 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_6 ... ok [INFO] [stdout] test input::tests::shortcode_replacement::case_7 ... ok [INFO] [stdout] test input::tests::shortcode_unclosed_colon ... ok [INFO] [stdout] test input::tests::shortcode_unknown_left_as_is ... ok [INFO] [stdout] test input::tests::shortcode_with_spaces_not_replaced ... ok [INFO] [stdout] test input::tests::unknown_command ... ok [INFO] [stdout] test keybindings::tests::default_profile_alt_enter_in_insert ... ok [INFO] [stdout] test keybindings::tests::all_builtin_profiles_have_unique_names ... ok [INFO] [stdout] test keybindings::tests::default_profile_esc_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_enter_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_j_not_in_insert ... ok [INFO] [stdout] test keybindings::tests::default_profile_resolves_ctrl_c_as_quit ... ok [INFO] [stdout] test keybindings::tests::default_profile_resolves_j_in_normal ... ok [INFO] [stdout] test keybindings::tests::emacs_profile_has_ctrl_n_scroll ... ok [INFO] [stdout] test keybindings::tests::display_key_for_action ... ok [INFO] [stdout] test keybindings::tests::format_roundtrip ... ok [INFO] [stdout] test keybindings::tests::find_profile_falls_back_to_default ... ok [INFO] [stdout] test keybindings::tests::insert_newline_both_alt_and_shift ... ok [INFO] [stdout] test keybindings::tests::keys_for_action_finds_binding ... ok [INFO] [stdout] test keybindings::tests::overrides_apply ... ok [INFO] [stdout] test keybindings::tests::parse_alt_enter ... ok [INFO] [stdout] test keybindings::tests::parse_ctrl_key ... ok [INFO] [stdout] test keybindings::tests::parse_overrides_toml_basic ... ok [INFO] [stdout] test keybindings::tests::parse_pageup ... ok [INFO] [stdout] test keybindings::tests::parse_profile_toml_basic ... ok [INFO] [stdout] test keybindings::tests::parse_shift_tab ... ok [INFO] [stdout] test keybindings::tests::parse_simple_key ... ok [INFO] [stdout] test keybindings::tests::rebind_detects_conflict ... ok [INFO] [stdout] test keybindings::tests::rebind_works ... ok [INFO] [stdout] test keybindings::tests::reset_action_restores_default ... ok [INFO] [stdout] test keybindings::tests::tab_global_binding_not_conflicted_with_autocomplete ... ok [INFO] [stdout] test image_render::tests::render_image_with_limits_respects_height_cap ... ok [INFO] [stdout] test list_overlay::tests::apply_nav_down_increments_with_ceiling ... ok [INFO] [stdout] test list_overlay::tests::apply_nav_down_on_empty_list_is_noop ... ok [INFO] [stdout] test list_overlay::tests::apply_nav_non_nav_actions_return_false ... ok [INFO] [stdout] test link::tests::render_qr_lines_dimensions_and_quiet_zone ... ok [INFO] [stdout] test link::tests::render_qr_lines_contains_dark_modules ... ok [INFO] [stdout] test list_overlay::tests::clamp_index_empty_list ... ok [INFO] [stdout] test list_overlay::tests::apply_nav_up_decrements_with_floor ... ok [INFO] [stdout] test list_overlay::tests::clamp_index_within_bounds ... ok [INFO] [stdout] test list_overlay::tests::enter_selects ... ok [INFO] [stdout] test list_overlay::tests::esc_closes ... ok [INFO] [stdout] test list_overlay::tests::clamp_index_over_bounds ... ok [INFO] [stdout] test list_overlay::tests::filter_name_number_pairs_matches_name_or_number_and_sorts ... ok [INFO] [stdout] test list_overlay::tests::filterable_chars ... ok [INFO] [stdout] test list_overlay::tests::fuzzy_score_subsequence_and_ordering ... ok [INFO] [stdout] test list_overlay::tests::jk_navigate ... ok [INFO] [stdout] test list_overlay::tests::non_filterable_chars_are_none ... ok [INFO] [stdout] test list_overlay::tests::scroll_layout_fits_viewport ... ok [INFO] [stdout] test list_overlay::tests::scroll_layout_needs_scroll ... ok [INFO] [stdout] test mute::tests::permanent_is_always_active ... ok [INFO] [stdout] test list_overlay::tests::arrow_keys_navigate ... ok [INFO] [stdout] test mute::tests::sidebar_indicator_expired_is_none ... ok [INFO] [stdout] test mute::tests::sidebar_indicator_timed ... ok [INFO] [stdout] test mute::tests::sidebar_indicator_permanent ... ok [INFO] [stdout] test mute::tests::timed_active_while_future ... ok [INFO] [stdout] test preview::tests::attr_value_does_not_match_suffix_names ... ok [INFO] [stdout] test preview::tests::parse_og_empty_document ... ok [INFO] [stdout] test preview::tests::parse_og_handles_attribute_order_and_single_quotes ... ok [INFO] [stdout] test preview::tests::parse_og_falls_back_to_title_and_meta_description ... ok [INFO] [stdout] test preview::tests::resolve_url_variants ... ok [INFO] [stdout] test preview::tests::parse_og_prefers_og_tags ... ok [INFO] [stdout] test settings_profile::tests::builtin_profiles_have_correct_names ... ok [INFO] [stdout] test settings_profile::tests::find_settings_profile_fallback ... ok [INFO] [stdout] test settings_profile::tests::full_profile_all_on_except_sidebar_right ... ok [INFO] [stdout] test settings_profile::tests::is_builtin_check ... ok [INFO] [stdout] test settings_profile::tests::minimal_profile_all_off_except_mouse ... ok [INFO] [stdout] test setup::tests::account_key_backspace_removes_before_cursor ... ok [INFO] [stdout] test settings_profile::tests::name_to_filename_converts ... ok [INFO] [stdout] test setup::tests::account_key_cursor_nav_is_bounded ... ok [INFO] [stdout] test setup::tests::account_key_enter_invalid_sets_error_and_stays ... ok [INFO] [stdout] test setup::tests::account_key_ctrl_c_cancels ... ok [INFO] [stdout] test setup::tests::account_key_enter_valid_submits ... ok [INFO] [stdout] test setup::tests::account_key_esc_goes_back_and_clears_state ... ok [INFO] [stdout] test setup::tests::account_key_inserts_at_cursor ... ok [INFO] [stdout] test setup::tests::account_key_typing_inserts_and_clears_error ... ok [INFO] [stdout] test setup::tests::accounts_json_contains_fails_open_on_malformed_json ... ok [INFO] [stdout] test setup::tests::accounts_json_contains_handles_empty_and_missing ... ok [INFO] [stdout] test setup::tests::accounts_json_contains_finds_matching_number ... ok [INFO] [stdout] test setup::tests::link_error_hint_empty_for_unknown_errors ... ok [INFO] [stdout] test setup::tests::link_error_hint_matches_409_conflict ... ok [INFO] [stdout] test setup::tests::link_error_hint_matches_link_request_error_without_code ... ok [INFO] [stdout] test setup::tests::signal_cli_key_ctrl_c_cancels_in_either_mode ... ok [INFO] [stdout] test setup::tests::signal_cli_key_custom_enter_sets_path_only_when_nonempty ... ok [INFO] [stdout] test setup::tests::signal_cli_key_custom_path_editing ... ok [INFO] [stdout] test setup::tests::signal_cli_key_esc_cancels_normal_but_exits_custom ... ok [INFO] [stdout] test setup::tests::signal_cli_key_normal_enter_retries_and_p_enters_custom ... ok [INFO] [stdout] test setup::tests::try_spawn_version_returns_none_for_missing_binary ... ok [INFO] [stdout] test setup::tests::check_signal_cli_reports_missing_for_fake_command ... ok [INFO] [stdout] test setup::tests::validate_phone_accepts_e164 ... ok [INFO] [stdout] test setup::tests::validate_phone_rejects_empty ... ok [INFO] [stdout] test setup::tests::validate_phone_rejects_non_digits ... ok [INFO] [stdout] test setup::tests::validate_phone_rejects_too_short ... ok [INFO] [stdout] test setup::tests::validate_phone_requires_plus_prefix ... ok [INFO] [stdout] test setup::tests::wizard_steps_gate_binary_detection_per_backend ... ok [INFO] [stdout] test signal::client::tests::drain_pending_as_failures_fails_tracked_sends_only ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_blank_is_none ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_correlated_response_removes_its_id ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_malformed_json_yields_error_without_panic ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_other_error_yields_status_error ... ok [INFO] [stdout] test setup::tests::check_signal_cli_detects_known_command ... ok [INFO] [stdout] test image_render::tests::render_image_with_limits_respects_width_cap ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_send_error_yields_send_failed ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_unknown_id_falls_through_to_notification ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_sweeps_stale_pending_entries ... ok [INFO] [stdout] test setup::tests::try_spawn_version_returns_some_for_working_binary ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_registers_after_successful_send ... ok [INFO] [stdout] test signal::client::wire_tests::block_group_wraps_group_id_in_array ... ok [INFO] [stdout] test signal::client::wire_tests::block_one_to_one_wraps_recipient_in_array ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_group_uses_bare_group_id ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_one_to_one_uses_bare_recipient ... ok [INFO] [stdout] test signal::client::wire_tests::send_reaction_remove_sets_flag ... ok [INFO] [stdout] test signal::client::wire_tests::send_read_receipt_wire_shape ... ok [INFO] [stdout] test signal::client::wire_tests::set_target_uses_bare_group_id ... ok [INFO] [stdout] test signal::client::wire_tests::set_target_wraps_recipient_in_array ... ok [INFO] [stdout] test signal::client::wire_tests::update_contact_expiration_uses_bare_recipient ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_e164_wins_when_both_number_and_uuid_present ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_group_base64_padding_preserved ... ok [INFO] [stdout] test signal::parse::fixtures::conv_id_lock_uuid_when_number_absent ... ok [INFO] [stdout] test signal::parse::fixtures::golden_edit_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_edit_sent_sync ... ok [INFO] [stdout] test signal::parse::fixtures::golden_group_update_system_message ... ok [INFO] [stdout] test signal::parse::fixtures::golden_incoming_1to1_data_message_full ... ok [INFO] [stdout] test signal::parse::fixtures::golden_incoming_group_data_message ... ok [INFO] [stdout] test signal::parse::fixtures::golden_reaction_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_reaction_sent_sync ... ok [INFO] [stdout] test signal::parse::fixtures::golden_receipt_delivery_booleans ... ok [INFO] [stdout] test signal::parse::fixtures::golden_receipt_read_booleans ... ok [INFO] [stdout] test signal::parse::fixtures::golden_remote_delete_incoming ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_get_user_status ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_contacts ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_groups ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_list_identities ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_send_error_shape ... ok [INFO] [stdout] test signal::parse::fixtures::golden_rpc_send_response_timestamp ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sent_sync_1to1 ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sent_sync_group ... ok [INFO] [stdout] test signal::parse::fixtures::golden_sync_read_messages ... ok [INFO] [stdout] test signal::parse::fixtures::golden_typing_started_1to1 ... ok [INFO] [stdout] test signal::parse::fixtures::golden_typing_stopped_group ... ok [INFO] [stdout] test signal::parse::helpers::tests::sticker_relative_path_builds_hex_paths_only ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_call_message_ignores_hangup ... ok [INFO] [stdout] test signal::parse::tests::parse_data_message_with_mentions ... ok [INFO] [stdout] test signal::parse::tests::parse_expiration::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_expiration::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_get_user_status_username_resolution ... ok [INFO] [stdout] test signal::parse::tests::parse_group_update ... ok [INFO] [stdout] test signal::parse::tests::parse_identity_list ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_missing ... ok [INFO] [stdout] test signal::parse::tests::parse_link_preview_singular_key ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_empty_array ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_empty_name_becomes_none ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_name_priority ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_skips_no_number ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_username_only_contact_kept ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_with_username ... ok [INFO] [stdout] test signal::parse::tests::parse_list_contacts_with_uuid ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_empty_array ... ok [INFO] [stdout] test signal::parse::tests::parse_list_groups_skips_no_id ... ok [INFO] [stdout] test signal::parse::tests::parse_message_from_uuid_only_contact ... ok [INFO] [stdout] test signal::parse::tests::parse_no_mentions_backward_compat ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_create_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_create_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_terminate_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_terminate_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_vote_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_poll_vote_sync_routes_to_destination ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_group ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_incoming ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_remove ... ok [INFO] [stdout] test signal::parse::tests::parse_reaction_sync ... ok [INFO] [stdout] test signal::parse::tests::parse_read_sync_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_read_sync_empty_array_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_receipt_event::case_3 ... ok [INFO] [stdout] test signal::parse::tests::parse_rpc_result_non_array_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_rpc_result_unknown_method_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_send_result_extracts_timestamp ... ok [INFO] [stdout] test signal::parse::tests::parse_send_result_without_id_returns_none ... ok [INFO] [stdout] test signal::parse::tests::parse_sent_sync_with_mentions ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_sticker_message::case_3 ... ok [INFO] [stdout] test signal::parse::tests::parse_text_styles_basic ... ok [INFO] [stdout] test signal::parse::tests::parse_text_styles_empty_or_missing ... ok [INFO] [stdout] test signal::parse::tests::parse_typing_indicator_direct_message_has_no_group_id ... ok [INFO] [stdout] test signal::parse::tests::parse_typing_indicator_group_carries_group_id ... ok [INFO] [stdout] test signal::parse::tests::parse_untrusted_identity ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_1 ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_2 ... ok [INFO] [stdout] test signal::parse::tests::parse_view_once::case_3 ... ok [INFO] [stdout] test tests::check_verdict_requires_a_verified_link_for_ready ... ok [INFO] [stdout] test tests::cli_stderr_hint_recognises_known_fatal_conditions ... ok [INFO] [stdout] test tests::oneshot_target_classifies_recipients ... ok [INFO] [stdout] test tests::reconnect_success_resets_supervisor_and_resyncs ... ok [INFO] [stdout] test tests::reconnect_supervisor_counts_attempts_through_the_trait ... ok [INFO] [stdout] test tests::reconnect_supervisor_skips_backends_without_reconnect ... ok [INFO] [stdout] test tests::should_auto_lock_respects_timeout_and_state ... ok [INFO] [stdout] test tests::startup_sync_timed_out_only_fires_while_loading_past_grace ... ok [INFO] [stdout] test theme::tests::all_builtin_themes_have_unique_names ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_1 ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_2 ... ok [INFO] [stdout] test theme::tests::color_serde_roundtrip::case_3 ... ok [INFO] [stdout] test theme::tests::custom_theme_template_parses ... ok [INFO] [stdout] test theme::tests::default_theme_has_correct_name ... ok [INFO] [stdout] test theme::tests::find_theme_returns_default_for_unknown ... ok [INFO] [stdout] test theme::tests::malformed_hex_in_theme_toml_is_an_error_not_a_panic ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_01 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_02 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_03 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_04 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_05 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_06 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_07 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_08 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_09 ... ok [INFO] [stdout] test theme::tests::string_to_color_rejects_malformed_input::case_10 ... ok [INFO] [stdout] test theme::tests::theme_toml_roundtrip ... ok [INFO] [stdout] test trigger::tests::exact_match_replies_case_insensitively ... ok [INFO] [stdout] test trigger::tests::load_warnings_and_skips ... ok [INFO] [stdout] test trigger::tests::rails_skip_outgoing_and_presync_messages ... ok [INFO] [stdout] test trigger::tests::rate_limit_is_per_rule_per_conversation ... ok [INFO] [stdout] test trigger::tests::run_requires_allow_run_and_body_travels_via_stdin_json ... ok [INFO] [stdout] test trigger::tests::sender_and_conversation_filters_gate ... ok [INFO] [stdout] test ui::chat_pane::tests::bottom_align_content_fits_viewport ... ok [INFO] [stdout] test ui::chat_pane::tests::bottom_align_scrolls_up_by_offset ... ok [INFO] [stdout] test ui::chat_pane::tests::cache_key_changes_with_content ... ok [INFO] [stdout] test ui::chat_pane::tests::cache_key_changes_with_width ... ok [INFO] [stdout] test ui::chat_pane::tests::cache_key_distinguishes_line_split ... ok [INFO] [stdout] test ui::chat_pane::tests::cache_key_ignores_span_boundaries_within_a_line ... ok [INFO] [stdout] test ui::chat_pane::tests::cache_key_stable_for_identical_input ... ok [INFO] [stdout] test ui::chat_pane::tests::ensure_focus_visible_noop_when_already_in_view ... ok [INFO] [stdout] test ui::chat_pane::tests::ensure_focus_visible_scrolls_down_to_bottom ... ok [INFO] [stdout] test ui::chat_pane::tests::ensure_focus_visible_scrolls_up_to_top ... ok [INFO] [stdout] test ui::chat_pane::tests::focus_line_span_absent_message_is_none ... ok [INFO] [stdout] test ui::chat_pane::tests::focus_line_span_accounts_for_line_heights ... ok [INFO] [stdout] test ui::chat_pane::tests::focus_line_span_spans_multi_line_message ... ok [INFO] [stdout] test ui::chat_pane::tests::pin_offset_multi_line_message_addition ... ok [INFO] [stdout] test ui::chat_pane::tests::pin_offset_preserves_user_scroll_distance ... ok [INFO] [stdout] test ui::chat_pane::tests::pin_offset_returns_none_when_pin_message_evicted ... ok [INFO] [stdout] test ui::chat_pane::tests::pin_offset_single_row_message_addition ... ok [INFO] [stdout] test ui::chat_pane::tests::pin_offset_skips_separator_lines ... ok [INFO] [stdout] test ui::chat_pane::tests::poll_display_basic ... ok [INFO] [stdout] test ui::chat_pane::tests::poll_display_closed ... ok [INFO] [stdout] test ui::chat_pane::tests::poll_display_no_votes ... ok [INFO] [stdout] test ui::chat_pane::tests::poll_display_own_vote_marked ... ok [INFO] [stdout] test ui::chat_pane::tests::reaction_summary_counts ... ok [INFO] [stdout] test ui::chat_pane::tests::reaction_summary_empty ... ok [INFO] [stdout] test ui::chat_pane::tests::reaction_summary_verbose_names ... ok [INFO] [stdout] test ui::chat_pane::tests::window_start_anchors_to_bottom_window ... ok [INFO] [stdout] test ui::links::tests::extract_url_cases::case_1 ... ok [INFO] [stdout] test ui::links::tests::extract_url_cases::case_2 ... ok [INFO] [stdout] test ui::links::tests::extract_url_cases::case_3 ... ok [INFO] [stdout] test ui::links::tests::extract_url_cases::case_4 ... ok [INFO] [stdout] test ui::links::tests::extract_url_cases::case_5 ... ok [INFO] [stdout] test ui::links::tests::spoiler_masked_by_default_and_revealed_on_focus ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_1 ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_2 ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_3 ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_4 ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_5 ... ok [INFO] [stdout] test ui::overlays::file_browser::tests::format_file_size_cases::case_6 ... ok [INFO] [stdout] test ui::overlays::search::tests::search_snippet_centers_on_match ... ok [INFO] [stdout] test ui::overlays::search::tests::search_snippet_short_passthrough ... ok [INFO] [stdout] test ui::snapshot_tests::body_newlines_render_as_separate_lines ... ok [INFO] [stdout] test signal::client::tests::handle_stdout_line_recovers_from_poisoned_pending ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_does_not_leak_on_send_failure ... ok [INFO] [stdout] test signal::client::tests::send_rpc_impl_recovers_from_poisoned_mutex ... ok [INFO] [stdout] test ui::snapshot_tests::chat_focused_message_scrolls_into_view ... ok [INFO] [stdout] test ui::snapshot_tests::chat_scroll_offset_clamps_at_top ... ok [INFO] [stdout] test ui::snapshot_tests::chat_scrolled_up_shows_older_messages ... ok [INFO] [stdout] test ui::snapshot_tests::test_about_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_chat_messages ... ok [INFO] [stdout] test ui::snapshot_tests::test_disappearing_messages ... ok [INFO] [stdout] test ui::snapshot_tests::test_action_menu_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_contacts_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_empty_conversation ... ok [INFO] [stdout] test ui::snapshot_tests::test_help_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_emoji_picker_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_forward_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_narrow_terminal ... ok [INFO] [stdout] test ui::snapshot_tests::test_message_request ... ok [INFO] [stdout] test ui::snapshot_tests::test_lock_screen ... ok [INFO] [stdout] test ui::snapshot_tests::test_no_active_conversation ... ok [INFO] [stdout] test ui::snapshot_tests::test_pin_duration_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_pinned_message ... ok [INFO] [stdout] test ui::snapshot_tests::test_poll ... ok [INFO] [stdout] test ui::snapshot_tests::test_normal_vs_insert_mode ... ok [INFO] [stdout] test ui::snapshot_tests::test_settings_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_styled_text ... ok [INFO] [stdout] test ui::snapshot_tests::test_sidebar_filter ... ok [INFO] [stdout] test ui::tests::build_separator_pads ... ok [INFO] [stdout] test ui::tests::sender_color_deterministic ... ok [INFO] [stdout] test ui::snapshot_tests::test_sidebar_layout ... ok [INFO] [stdout] test ui::tests::sender_color_in_palette ... ok [INFO] [stdout] test ui::tests::status_symbol_color_vs_muted ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_1 ... ok [INFO] [stdout] test ui::tests::sender_color_you_returns_self ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_3 ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_4 ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_5 ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_6 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_1 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_2 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_3 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_4 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_5 ... ok [INFO] [stdout] test ui::tests::truncate_cases::case_6 ... ok [INFO] [stdout] test ui::tests::status_symbol_variants::case_2 ... ok [INFO] [stdout] test ui::snapshot_tests::test_theme_picker_overlay ... ok [INFO] [stdout] test ui::snapshot_tests::test_unread_marker ... ok [INFO] [stdout] test domain::lock::tests::save_then_load_round_trips ... ok [INFO] [stdout] test domain::lock::tests::hash_then_verify_succeeds ... ok [INFO] [stdout] test domain::lock::tests::hash_then_verify_rejects_wrong_passphrase ... ok [INFO] [stdout] test app::tests::lock_flow_set_then_unlock ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 889 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.34s [INFO] [stdout] [INFO] [stderr] Doc-tests siggy [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" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0", kill_on_drop: false }` [INFO] [stdout] 01b68979bc56e007ef6e386483d31f7ab4ba8d7cdc3e44ddb69dd4a73afc1be0