[INFO] cloning repository https://github.com/shaominngqing/flog [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shaominngqing/flog" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaominngqing%2Fflog", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaominngqing%2Fflog'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a862981b4e2da93e1e4643bdd00341bb447b066f [INFO] testing shaominngqing/flog against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaominngqing%2Fflog" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shaominngqing/flog [INFO] finished tweaking git repo https://github.com/shaominngqing/flog [INFO] tweaked toml for git repo https://github.com/shaominngqing/flog written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shaominngqing/flog on toolchain f9988fefd3add01f414f52b414308e7872622fee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shaominngqing/flog 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.118 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.118 [INFO] [stderr] Downloaded tokio-tungstenite v0.26.2 [INFO] [stderr] Downloaded wasm-bindgen v0.2.118 [INFO] [stderr] Downloaded tungstenite v0.26.2 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.68 [INFO] [stderr] Downloaded instability v0.3.12 [INFO] [stderr] Downloaded darling_macro v0.23.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.8 [INFO] [stderr] Downloaded num-conv v0.2.1 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.118 [INFO] [stderr] Downloaded libredox v0.1.15 [INFO] [stderr] Downloaded tinyvec v1.11.0 [INFO] [stderr] Downloaded darling v0.23.0 [INFO] [stderr] Downloaded rustls-webpki v0.103.11 [INFO] [stderr] Downloaded clap v4.6.0 [INFO] [stderr] Downloaded clap_derive v4.6.0 [INFO] [stderr] Downloaded js-sys v0.3.95 [INFO] [stderr] Downloaded darling_core v0.23.0 [INFO] [stderr] Downloaded iri-string v0.7.12 [INFO] [stderr] Downloaded hyper v1.9.0 [INFO] [stderr] Downloaded quinn-proto v0.11.14 [INFO] [stderr] Downloaded rustls v0.23.38 [INFO] [stderr] Downloaded web-sys v0.3.95 [INFO] [stderr] Downloaded tokio v1.51.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 378e96209f37db61cc7a26a98b0c06a8f8bcf420e4433592101ecafc70c236df [INFO] running `Command { std: "docker" "start" "-a" "378e96209f37db61cc7a26a98b0c06a8f8bcf420e4433592101ecafc70c236df", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "378e96209f37db61cc7a26a98b0c06a8f8bcf420e4433592101ecafc70c236df", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "378e96209f37db61cc7a26a98b0c06a8f8bcf420e4433592101ecafc70c236df", kill_on_drop: false }` [INFO] [stdout] 378e96209f37db61cc7a26a98b0c06a8f8bcf420e4433592101ecafc70c236df [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e35ee8473e5ab5c7dd3a593a4f0c486a2bcb9614430b329962028f4913693991 [INFO] running `Command { std: "docker" "start" "-a" "e35ee8473e5ab5c7dd3a593a4f0c486a2bcb9614430b329962028f4913693991", 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.45 [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling cc v1.2.60 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling rustls-webpki v0.103.11 [INFO] [stderr] Compiling tokio v1.51.0 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling tungstenite v0.26.2 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling plist v1.8.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-tungstenite v0.26.2 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling flog v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `IosUsb` is never constructed [INFO] [stdout] --> src/transport/device_monitor/mod.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum DeviceKind { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 29 | Android, [INFO] [stdout] 30 | IosUsb { device_id: u32 }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DeviceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s [INFO] running `Command { std: "docker" "inspect" "e35ee8473e5ab5c7dd3a593a4f0c486a2bcb9614430b329962028f4913693991", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e35ee8473e5ab5c7dd3a593a4f0c486a2bcb9614430b329962028f4913693991", kill_on_drop: false }` [INFO] [stdout] e35ee8473e5ab5c7dd3a593a4f0c486a2bcb9614430b329962028f4913693991 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9cc0bc9f2306ebc5737f5aacb0ad41c8c95d276bc15b9f7057350319ec19081e [INFO] running `Command { std: "docker" "start" "-a" "9cc0bc9f2306ebc5737f5aacb0ad41c8c95d276bc15b9f7057350319ec19081e", kill_on_drop: false }` [INFO] [stderr] Compiling flog v0.5.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `IosUsb` is never constructed [INFO] [stdout] --> src/transport/device_monitor/mod.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum DeviceKind { [INFO] [stdout] | ---------- variant in this enum [INFO] [stdout] 29 | Android, [INFO] [stdout] 30 | IosUsb { device_id: u32 }, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `DeviceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.27s [INFO] running `Command { std: "docker" "inspect" "9cc0bc9f2306ebc5737f5aacb0ad41c8c95d276bc15b9f7057350319ec19081e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9cc0bc9f2306ebc5737f5aacb0ad41c8c95d276bc15b9f7057350319ec19081e", kill_on_drop: false }` [INFO] [stdout] 9cc0bc9f2306ebc5737f5aacb0ad41c8c95d276bc15b9f7057350319ec19081e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 678242aeb02647774e0cdbf42997968d735e096fecd2543a51205904da8d3f88 [INFO] running `Command { std: "docker" "start" "-a" "678242aeb02647774e0cdbf42997968d735e096fecd2543a51205904da8d3f88", kill_on_drop: false }` [INFO] [stderr] warning: variant `IosUsb` is never constructed [INFO] [stderr] --> src/transport/device_monitor/mod.rs:30:5 [INFO] [stderr] | [INFO] [stderr] 28 | pub enum DeviceKind { [INFO] [stderr] | ---------- variant in this enum [INFO] [stderr] 29 | Android, [INFO] [stderr] 30 | IosUsb { device_id: u32 }, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `DeviceKind` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `flog` (bin "flog") generated 1 warning [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.62s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/flog-ac8f74ced23fa114) [INFO] [stdout] [INFO] [stdout] running 728 tests [INFO] [stdout] test app::tests::logs_view_state_default_matches_initial_app_state ... ok [INFO] [stdout] test app::tests::app_logs_starts_at_default ... ok [INFO] [stdout] test cli::tests::cli_custom_port ... ok [INFO] [stdout] test cli::tests::cli_all_flags_combined ... ok [INFO] [stdout] test cli::tests::cli_level_long_form ... ok [INFO] [stdout] test cli::tests::cli_tag_passed_through ... ok [INFO] [stdout] test cli::tests::parse_level_error_aliases ... ok [INFO] [stdout] test cli::tests::parse_level_info_aliases ... ok [INFO] [stdout] test cli::tests::cli_defaults ... ok [INFO] [stdout] test cli::tests::parse_level_debug_aliases ... ok [INFO] [stdout] test app::tests::app_logs_field_reflects_direct_mutations ... ok [INFO] [stdout] test cli::tests::parse_level_rejects_unknown ... ok [INFO] [stdout] test cli::tests::parse_level_verbose_aliases ... ok [INFO] [stdout] test cli::tests::cli_invalid_level_fails ... ok [INFO] [stdout] test domain::entry::tests::collapse_empty_input ... ok [INFO] [stdout] test domain::entry::tests::collapse_repeated_frames ... ok [INFO] [stdout] test domain::entry::tests::collapse_single_frame ... ok [INFO] [stdout] test domain::entry::tests::full_message_no_error_no_stacktrace ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_basic ... ok [INFO] [stdout] test domain::entry::tests::full_message_includes_error_and_stacktrace ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_exclude ... ok [INFO] [stdout] test cli::tests::parse_level_warning_aliases ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_tag_state ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_no_error_no_stack ... ok [INFO] [stdout] test domain::filter::tests::default_state_matches_everything ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_short_stack ... ok [INFO] [stdout] test domain::entry::tests::collapse_preserves_non_frame_lines ... ok [INFO] [stdout] test domain::entry::tests::collapse_no_repeats ... ok [INFO] [stdout] test domain::entry::tests::full_message_error_only_no_stacktrace ... ok [INFO] [stdout] test domain::filter::tests::dom_004_tag_dimension_exclude_only ... ok [INFO] [stdout] test domain::filter::tests::dom_004_exclude_dimension_only ... ok [INFO] [stdout] test domain::filter::tests::dom_004_tag_dimension_include_only ... ok [INFO] [stdout] test domain::filter::tests::dom_019_all_dimensions_combined ... ok [INFO] [stdout] test domain::filter::tests::dom_019_filter_state_implements_message_filter_for_log_entry ... ok [INFO] [stdout] test domain::filter::tests::exclude_plain_removes_matches ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_exclude_resyncs_compiled_state ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_c_empty ... ok [INFO] [stdout] test domain::filter::tests::dom_004_level_dimension_blocks_below_min ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_b_regex ... ok [INFO] [stdout] test domain::filter::tests::matches_full_message_includes_extra_lines ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_case_insensitive_plain ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_empty_parts_no_regex_is_false ... ok [INFO] [stdout] test domain::filter::tests::matches_exclude_hits_tag_not_message ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_plain_or ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_plain_single ... ok [INFO] [stdout] test domain::filter::tests::exclude_empty_does_nothing ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_skips_empty_parts ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_a_plain ... ok [INFO] [stdout] test domain::filter::tests::dom_004_search_dimension_only ... ok [INFO] [stdout] test cli::tests::cli_level_warning ... ok [INFO] [stdout] test domain::filter::tests::matches_separator_bypasses_all_filters ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_disjoint_sorted ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_unicode_plain ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_multiple_overlaps_collapse ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_strictly_overlapping_coalesce ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_touching_ranges_coalesce ... ok [INFO] [stdout] test domain::filter::tests::exclude_regex_supported ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_regex_owns_pipe ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_accepts_pipe_and_plus_prefix ... ok [INFO] [stdout] test domain::filter::tests::matches_search_hits_tag_not_message ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_clears_prior_state ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_comma_still_works ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_strips_dash_and_empty_segments ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_empty_and_single ... ok [INFO] [stdout] test domain::filter::tests::min_level_system_includes_all_levels ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_disjoint_unsorted_input_is_sorted ... ok [INFO] [stdout] test domain::filter::tests::search_and_exclude_intersect ... ok [INFO] [stdout] test domain::filter::tests::search_plain_multi_or ... ok [INFO] [stdout] test domain::filter::tests::search_positions_case_insensitive ... ok [INFO] [stdout] test domain::filter::tests::search_positions_empty_query_returns_empty ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_empty_parts_skipped ... ok [INFO] [stdout] test domain::filter::tests::search_positions_invalid_regex_returns_empty ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_or_multi ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_single_term ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_min_level_to_system ... ok [INFO] [stdout] test domain::filter::tests::tag_filter_exclude_case_insensitive ... ok [INFO] [stdout] test domain::filter::tests::set_search_regex_unterminated_slash ... ok [INFO] [stdout] test domain::filter::tests::tag_filter_include_case_insensitive ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_integer_and_float ... ok [INFO] [stdout] test domain::filter::tests::set_search_regex_ci_suffix ... ok [INFO] [stdout] test domain::filter::tests::search_regex_passes_pipe_through ... ok [INFO] [stdout] test domain::filter::tests::set_exclude_invalid_regex_compiles_to_none ... ok [INFO] [stdout] test domain::filter::tests::set_search_invalid_regex_compiles_to_none ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_null_true_false ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_string_fallback ... ok [INFO] [stdout] test domain::json_tolerant::tests::is_key_char_accepts_identifier_chars ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_new_starts_at_zero ... ok [INFO] [stdout] test domain::filter::tests::search_positions_regex_mode ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_parses_empty_object ... ok [INFO] [stdout] test domain::mock::tests::test_add_rule ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_rejects_non_container_at_root ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_skip_whitespace_moves_past_spaces_tabs_newlines ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_include ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_exclude ... ok [INFO] [stdout] test domain::mock::tests::test_find_match_by_url ... ok [INFO] [stdout] test domain::mock::tests::test_find_match_respects_method ... ok [INFO] [stdout] test domain::mock::tests::test_hit_count_increments ... ok [INFO] [stdout] test domain::mock::tests::test_remove_rule ... ok [INFO] [stdout] test domain::mock::tests::test_to_json_string ... ok [INFO] [stdout] test domain::mock::tests::test_toggle_rule ... ok [INFO] [stdout] test domain::network::tests::display_size_sse_uses_total ... ok [INFO] [stdout] test domain::network::tests::display_size_http_none_is_zero ... ok [INFO] [stdout] test domain::network::tests::display_size_ws_empty_is_zero ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_wildcard_glob ... ok [INFO] [stdout] test domain::network::tests::dom_003_new_orphan_response_sets_orphan_status ... ok [INFO] [stdout] test domain::network::tests::display_size_http_uses_response_size ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_parses_empty_array ... ok [INFO] [stdout] test domain::network::tests::display_size_ws_sums_messages ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_empty_string ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_ipv6_edge_case_fails ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_no_path_returns_original ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_no_scheme_returns_original ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_root_only ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_sse_sets_protocol_method_and_active ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_strips_scheme_and_host_b_https_with_port ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_ws_has_empty_method_and_active ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_sse_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_025_flog_net_kind_chunk_accepts_all_wire_fields ... ok [INFO] [stdout] test domain::network::tests::dom_025_sse_chunk_has_only_data_after_prune ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_http_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_query_params ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_can_be_set_to_replay ... ok [INFO] [stdout] test domain::network_filter::tests::default_trait_delegates_to_new ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_default_is_app ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_ws_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_025_ws_message_has_direction_data_size_after_prune ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_delete_matches_only_delete ... ok [INFO] [stdout] test domain::network::tests::dom_025_flog_net_kind_req_minimal_payload ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_get_is_case_insensitive ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_post_matches_only_post ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_timestamp_and_source_chainable ... ok [INFO] [stdout] test domain::network::tests::dom_024_legacy_factories_still_delegate_to_builder ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_strips_scheme_and_host_a_http ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_patch_matches_only_patch ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_put_matches_only_put ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_all_matches_any ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_can_be_set_to_mocked ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_ws_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_http_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_b_active ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_all_matches_every_protocol ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_a_pending ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_sse_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_c_completed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_d_failed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_failed_only_matches_failed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_completed_only_matches_completed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_pending_only_matches_pending ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_active_only_matches_active ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_matches_all_default_filter_accepts_everything ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_method_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_network_filter_implements_message_filter_for_network_entry ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_protocol_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_status_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_empty_query_does_not_filter ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_hits_path_even_if_url_not ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_search_hits_path_not_url ... ok [INFO] [stdout] test domain::network_filter::tests::reset_resets_all_dimensions ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_plain ... ok [INFO] [stdout] test domain::network_filter::tests::search_empty_query_does_not_filter ... ok [INFO] [stdout] test domain::network_filter::tests::reset_clears_exclude ... ok [INFO] [stdout] test domain::network_filter::tests::search_and_exclude_combined ... ok [INFO] [stdout] test domain::network_filter::tests::search_invalid_regex_no_match ... ok [INFO] [stdout] test domain::network_filter::tests::search_unicode_query ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex_unterminated_slash ... ok [INFO] [stdout] test domain::network_store::tests::default_store_is_empty ... ok [INFO] [stdout] test domain::network_store::tests::clear_empties_store ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_close_without_open_drops_silently_e ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_chunk_on_http_protocol_still_appends_to_sse_chunks ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_chunk_without_req_drops_silently_c ... ok [INFO] [stdout] test domain::network_filter::tests::search_plain_or ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_regex ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_done_without_req_drops_silently_d ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_err_without_req_drops_silently_b ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_res_without_req_surfaces_orphan_entry_a ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_second_req_with_same_id_creates_new_entry ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_ws_recv_without_open_drops_silently_g ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_unknown_message_type_is_rejected_at_parse_time ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_chunk_accepts_dropped_fields_on_wire ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_ws_send_without_open_drops_silently_f ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_rejects_unknown_variant ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_id_helper_covers_all_variants ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_req_deserializes_from_dart_wire_format ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex_ci_suffix ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_unknown_protocol_defaults_to_http ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_rejects_missing_id ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_defaults_data_to_empty_string ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_stores_data_in_order ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_appends_to_sse_chunks ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_missing_method_defaults_to_empty ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_no_protocol_defaults_to_http ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_sse_protocol ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_missing_url_defaults_to_empty ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_ws_protocol ... ok [INFO] [stdout] test domain::network_store::tests::find_by_id_mut_returns_most_recent_when_duplicate ... ok [INFO] [stdout] test domain::network_store::tests::handle_done_completes_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_close_sets_close_fields ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_zero_epoch_matches_chrono_local ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_format_shape ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_with_milliseconds_matches_chrono_local ... ok [INFO] [stdout] test domain::network_store::tests::handle_err_sets_failed_status ... ok [INFO] [stdout] test domain::network_store::tests::handle_open_missing_url_defaults_to_empty ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_size_field_overrides_body_len ... ok [INFO] [stdout] test domain::network_store::tests::handle_open_creates_ws_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_size_field_overrides_body_len ... ok [INFO] [stdout] test domain::network_store::tests::handle_send_and_recv_append_ws_messages ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_updates_matched_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_stores_headers_body_and_timestamp ... ok [INFO] [stdout] test domain::network_store::tests::handle_ws_msg_size_override ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_mocked_false_keeps_app_source ... ok [INFO] [stdout] test domain::network_store::tests::new_store_is_empty ... ok [INFO] [stdout] test domain::network_store::tests::iter_yields_entries_in_order ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_non_json ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_mocked_flag_sets_source ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_empty_chunks ... ok [INFO] [stdout] test domain::sse_merge::tests::test_extract_field_paths ... ok [INFO] [stdout] test domain::sse_merge::tests::test_extract_field_paths_multi_chunk ... ok [INFO] [stdout] test domain::store::tests::add_single_entry_increments_len ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_openai ... ok [INFO] [stdout] test domain::store::tests::dom_011_consecutive_duplicates_fold_into_repeat_count ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_message_does_not_fold ... ok [INFO] [stdout] test domain::sse_merge::tests::test_resolve_path ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_mixed_clusters ... ok [INFO] [stdout] test domain::store::tests::dom_011_add_below_capacity_no_drain ... ok [INFO] [stdout] test domain::sse_merge::tests::test_resolve_path_missing ... ok [INFO] [stdout] test domain::store::tests::default_matches_new ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_empty_or_single_is_noop ... ok [INFO] [stdout] test domain::sse_merge::tests::test_merge_field ... ok [INFO] [stdout] test domain::sse_merge::tests::test_merge_field_skips_missing ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_level_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_tag_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_entry_with_extra_lines_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_multi_adjacent_chain ... ok [INFO] [stdout] test domain::store::tests::dom_011_last_entry_with_extra_lines_does_not_fold_new_one ... ok [INFO] [stdout] test domain::store::tests::dom_011_same_signature_respects_level_and_extra_lines ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_on_drain_compresses_ring_after_pop ... ok [INFO] [stdout] test domain::store::tests::dom_011_folding_updates_last_entry_timestamp ... ok [INFO] [stdout] test domain::store::tests::drain_after_cap_adds_identical_creates_new_not_folds ... ok [INFO] [stdout] test domain::store::tests::drain_zero_entries_on_empty_store_is_impossible ... ok [INFO] [stdout] test domain::store::tests::iter_yields_entries_in_insertion_order ... ok [INFO] [stdout] test domain::store::tests::get_returns_entry_at_index ... ok [INFO] [stdout] test domain::store::tests::store_handles_mix_of_folding_and_distinct_entries ... ok [INFO] [stdout] test domain::store::tests::store_len_and_is_empty_after_drain ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_empty_string_value ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_unquoted_keys_and_strings ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_unicode_emoji_value ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_followed_by_key_is_separator ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_nested_array_of_maps ... ok [INFO] [stdout] test domain::structured_parser::tests::empty_containers ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_inside_bare_string_value ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_before_url_with_double_colon ... ok [INFO] [stdout] test domain::structured_parser::tests::find_full_screenshot_body ... ok [INFO] [stdout] test domain::structured_parser::tests::find_and_parse_with_prefix ... ok [INFO] [stdout] test domain::store::tests::new_is_empty ... ok [INFO] [stdout] test domain::structured_parser::tests::find_in_log_message_with_prefix_and_suffix ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_array ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_array_of_bare_string_phrases ... ok [INFO] [stdout] test domain::structured_parser::tests::find_real_array_not_rejected ... ok [INFO] [stdout] test domain::structured_parser::tests::find_prefers_larger_region_over_tag_like_prefix ... ok [INFO] [stdout] test domain::structured_parser::tests::find_short_log_tag_alone_returns_none ... ok [INFO] [stdout] test domain::structured_parser::tests::find_returns_none_for_plain_text ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_embedded_strict_json_object ... ok [INFO] [stdout] test domain::structured_parser::tests::find_skips_unparseable_brackets ... ok [INFO] [stdout] test domain::network_store::tests::test_push_entry ... ok [INFO] [stdout] test domain::structured_parser::tests::find_strict_json_byte_offset_accurate ... ok [INFO] [stdout] test domain::structured_parser::tests::full_screenshot_response_body ... ok [INFO] [stdout] test domain::structured_parser::tests::gibberish_returns_none ... ok [INFO] [stdout] test domain::structured_parser::tests::mixed_quoted_and_bare ... ok [INFO] [stdout] test domain::structured_parser::tests::whitespace_tolerance ... ok [INFO] [stdout] test domain::structured_parser::tests::parse_whole_rejects_text_without_brackets ... ok [INFO] [stdout] test domain::structured_parser::tests::nested_dart_map ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_delta ... ok [INFO] [stdout] test domain::structured_parser::tests::typed_bare_literals ... ok [INFO] [stdout] test domain::structured_parser::tests::url_in_bare_value_not_mistaken_for_key ... ok [INFO] [stdout] test domain::structured_parser::tests::parse_whole_rejects_trailing_junk ... ok [INFO] [stdout] test domain::structured_parser::tests::strict_json_still_parses ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_http_sets_protocol_method_and_pending ... ok [INFO] [stdout] test domain::structured_parser::tests::unbalanced_returns_none ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_delta_no_field ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_with_type_field ... ok [INFO] [stdout] test domain::ws_chat::tests::test_has_binary_content_no_binary ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_non_json ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_no_known_key ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_with_event_field ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_basic ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_direction_break ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_delta_merge ... ok [INFO] [stdout] test domain::ws_chat::tests::test_has_binary_content_in_json ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_interleaved_types ... ok [INFO] [stdout] test event::apply::tests::classify_click_different_coords_is_single ... ok [INFO] [stdout] test event::apply::tests::apply_sse_field_selection_rebuilds_merge_rule ... ok [INFO] [stdout] test event::apply::tests::apply_sse_field_selection_updates_field_idx ... ok [INFO] [stdout] test event::apply::tests::classify_click_same_coords_recent_is_double ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_long ... ok [INFO] [stdout] test event::apply::tests::classify_click_timeout_is_single ... ok [INFO] [stdout] test event::apply::tests::classify_click_without_prev_is_single ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_debug_contains_variant_name ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_equality_is_variant_based ... ok [INFO] [stdout] test event::detect::tests::detects_device_picker_outside ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_is_cloneable ... ok [INFO] [stdout] test event::detect::tests::detects_jump_to_bottom_pill ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_short ... ok [INFO] [stdout] test event::detect::tests::detects_device_picker_item ... ok [INFO] [stdout] test domain::ws_chat::tests::test_preview_message_binary ... ok [INFO] [stdout] test event::apply::tests::apply_device_picker_outside_closes_picker ... ok [INFO] [stdout] test domain::ws_chat::tests::test_preview_message_normal ... ok [INFO] [stdout] test event::apply::tests::apply_logs_tab_switches_tab ... ok [INFO] [stdout] test event::apply::tests::apply_protocol_pill_updates_filter ... ok [INFO] [stdout] test event::detect::tests::detects_logs_list_row ... ok [INFO] [stdout] test event::detect::tests::detects_network_detail_mock_btn ... ok [INFO] [stdout] test event::detect::tests::detects_logs_tab ... ok [INFO] [stdout] test event::detect::tests::detects_network_list_row ... ok [INFO] [stdout] test event::detect::tests::detects_network_protocol_pill ... ok [INFO] [stdout] test event::detect::tests::returns_none_for_empty_coords ... ok [INFO] [stdout] test event::detect::tests::detects_network_tab ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_not_b64 ... ok [INFO] [stdout] test event::detect::tests::detects_status_bar_source_info_logs ... ok [INFO] [stdout] test event::keys::routing_tests::ui_007_logs_tab_routes_c_to_copy_current_log ... ok [INFO] [stdout] test event::keys::routing_tests::ui_007_network_tab_routes_r_to_replay_path ... ok [INFO] [stdout] test event::pills::tests::ws_pill_labels_unchanged ... ok [INFO] [stdout] test event::sse_nav::tests::zero_count_returns_zero ... ok [INFO] [stdout] test event::sse_nav::tests::down_increments_saturates_at_count_minus_one ... ok [INFO] [stdout] test event::pills::tests::sse_pill_labels_unchanged ... ok [INFO] [stdout] test event::tests::scroll_down_in_logs_tab_does_not_panic ... ok [INFO] [stdout] test event::tests::scroll_up_in_logs_tab_calls_move_up ... ok [INFO] [stdout] test event::tests::tab_bar_double_click_switches_tab_twice ... ok [INFO] [stdout] test input::connector::tests::send_enqueues_serialized_server_message ... ok [INFO] [stdout] test event::tests::click_outside_detail_while_device_picker_open_closes_picker ... ok [INFO] [stdout] test event::sse_nav::tests::up_decrements_saturates_at_zero ... ok [INFO] [stdout] test input::connector::tests::send_replay_wrapper_produces_replay_json ... ok [INFO] [stdout] test input::connector::tests::send_returns_false_when_receiver_dropped ... ok [INFO] [stdout] test input::protocol::tests::proto_101_hello_minimal_required_fields_only ... ok [INFO] [stdout] test input::protocol::tests::proto_102_log_message_only_minimal ... ok [INFO] [stdout] test input::protocol::tests::proto_101_hello_all_fields_present_including_build_mode ... ok [INFO] [stdout] test input::protocol::tests::proto_103_net_variant_flattens_flog_net_kind_req ... ok [INFO] [stdout] test input::protocol::tests::proto_104_empty_string_returns_err ... ok [INFO] [stdout] test input::connector::tests::send_mock_sync_wrapper_produces_mock_sync_json ... ok [INFO] [stdout] test input::protocol::tests::proto_104_log_missing_required_message_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_with_unknown_extra_fields_succeeds ... ok [INFO] [stdout] test input::protocol::tests::proto_104_net_missing_required_id_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_malformed_json_returns_err ... ok [INFO] [stdout] test input::connector::tests::disconnect_reason_peer_close_carried ... ok [INFO] [stdout] test input::protocol::tests::proto_104_wrong_variant_tag_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_103_net_variant_response_shape ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_missing_required_app_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_missing_required_os_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_missing_type_tag_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_120_client_info_fields_round_trip ... ok [INFO] [stdout] test input::protocol::tests::proto_110_subscribe_exact_shape ... ok [INFO] [stdout] test input::protocol::tests::proto_120_client_info_is_cloneable ... ok [INFO] [stdout] test input::connector::tests::writer_drop_triggers_reader_disconnect ... ok [INFO] [stdout] test input::protocol::tests::proto_110_mock_sync_shape ... ok [INFO] [stdout] test input::protocol::tests::proto_110_replay_with_none_optional_fields_serializes_as_null ... ok [INFO] [stdout] test input::protocol::tests::proto_110_replay_with_all_optional_fields_present ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_hello_new_format ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_log ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_log_with_optional_fields ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_net ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_mock_sync ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_replay ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_subscribe ... ok [INFO] [stdout] test input::protocol::tests::proto_121_hello_with_session_id_deserializes ... ok [INFO] [stdout] test input::protocol::tests::proto_121_hello_without_session_id_defaults_to_none ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_hello_legacy_format ... ok [INFO] [stdout] test parser::generic::tests::build_flutter_plain_always_system_level_tagged_flutter ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_raw_log ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_unknown_type ... ok [INFO] [stdout] test domain::network_store::tests::push_entry_evicts_oldest_at_capacity ... ok [INFO] [stdout] test parser::generic::tests::parse_exception_header ... ok [INFO] [stdout] test parser::generic::tests::parse_exception_decoration_line ... ok [INFO] [stdout] test parser::generic::tests::ansi_escape_is_stripped_from_exception ... ok [INFO] [stdout] test parser::generic::tests::parse_failed_assertion_line ... ok [INFO] [stdout] test parser::generic::tests::parse_handler_line ... ok [INFO] [stdout] test parser::generic::tests::parse_recognizer_line ... ok [INFO] [stdout] test parser::generic::tests::parse_stacktrace_frame ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_evicts_oldest_at_capacity ... ok [INFO] [stdout] test parser::generic::tests::parse_the_following_line ... ok [INFO] [stdout] test parser::generic::tests::parse_debug_logcat ... ok [INFO] [stdout] test parser::generic::tests::parse_flutter_jni_warning ... ok [INFO] [stdout] test parser::generic::tests::parse_verbose_logcat ... ok [INFO] [stdout] test parser::generic::tests::parser_name_is_generic ... ok [INFO] [stdout] test parser::generic::tests::parses_any_logcat_tag ... ok [INFO] [stdout] test parser::generic::tests::parse_dart_vm_error ... ok [INFO] [stdout] test parser::generic::tests::parse_fatal_logcat ... ok [INFO] [stdout] test parser::generic::tests::parse_when_the_exception_line ... ok [INFO] [stdout] test parser::generic::tests::parse_empty_flutter_print ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_plain ... ok [INFO] [stdout] test parser::generic::tests::ansi_escape_stripped_in_flutter_content ... ok [INFO] [stdout] test parser::generic::tests::parse_bracket_level_only ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_lifts_bracketed_level_and_tag ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_accepts_flutter_colon_line ... ok [INFO] [stdout] test parser::generic::tests::unmatched_line_returns_none ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_accepts_i_flutter_line ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_empty_content_yields_system ... ok [INFO] [stdout] test parser::generic::tests::parse_bracket_level_tag ... ok [INFO] [stdout] test parser::keyword::tests::ignores_empty ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_structured_requires_bracket_shape_and_known_level ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_error ... ok [INFO] [stdout] test parser::keyword::tests::error_keywords_include_expected_set ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_bracket_level_tag ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_non_flutter_line_returns_none ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_respects_word_boundary ... ok [INFO] [stdout] test parser::generic::tests::parse_plain_flutter ... ok [INFO] [stdout] test parser::generic::tests::bracket_level_unknown_falls_back_to_plain_flutter ... ok [INFO] [stdout] test parser::keyword::tests::debug_keywords_include_expected_set ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_is_case_insensitive ... ok [INFO] [stdout] test parser::keyword::tests::warning_keywords_include_expected_set ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_handles_single_keyword ... ok [INFO] [stdout] test parser::network::tests::empty_input_returns_none ... ok [INFO] [stdout] test parser::network::tests::malformed_json_returns_none ... ok [INFO] [stdout] test parser::network::tests::non_flog_net_tag_is_ignored ... ok [INFO] [stdout] test parser::network::tests::parses_valid_flog_net_message ... ok [INFO] [stdout] test parser::network::tests::extreme_length_input_handled ... ok [INFO] [stdout] test parser::keyword::tests::infers_error ... ok [INFO] [stdout] test parser::keyword::tests::infers_warning ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_bad_input_produces_empty ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_roundtrip_matches_chrono_local ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_zero_formats_as_hhmmss ... ok [INFO] [stdout] test parser::structured::tests::extract_content_handles_vm_stdout_prefix ... ok [INFO] [stdout] test parser::structured::tests::extract_content_no_flutter_prefix_returns_line_unchanged ... ok [INFO] [stdout] test parser::keyword::tests::infers_info_default ... ok [INFO] [stdout] test parser::structured::tests::extract_content_strips_flutter_prefix_and_ansi ... ok [INFO] [stdout] test domain::store::tests::dom_011_add_entry_200k_identical_stays_tiny ... ok [INFO] [stdout] test parser::structured::tests::epoch_10_digits_converts_to_time ... ok [INFO] [stdout] test parser::structured::tests::epoch_13_digits_converts_to_time ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_vm_service_stdout ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_raw ... ok [INFO] [stdout] test parser::structured::tests::empty_message_after_bracket_parses ... ok [INFO] [stdout] test parser::structured::tests::dom_015_multiple_ansi_sequences_all_removed ... ok [INFO] [stdout] test parser::structured::tests::emoji_in_message_parses ... ok [INFO] [stdout] test parser::structured::tests::dom_015_strips_ansi_in_vm_stdout_format ... ok [INFO] [stdout] test parser::structured::tests::dom_014_unknown_level_falls_back_to_debug ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_with_epoch_timestamp ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_with_flutter_prefix ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_with_epoch_timestamp ... ok [INFO] [stdout] test parser::structured::tests::cjk_tag_and_message_parse ... ok [INFO] [stdout] test parser::structured::tests::dom_015_strips_ansi_in_bracket_format ... ok [INFO] [stdout] test parser::structured::tests::parser_name_is_structured ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_with_epoch_timestamp_spaces ... ok [INFO] [stdout] test parser::structured::tests::strips_ansi ... ok [INFO] [stdout] test parser::structured::tests::source_is_direct_socket ... ok [INFO] [stdout] test parser::tests::dom_013_default_chain_has_three_strategies ... ok [INFO] [stdout] test parser::structured::tests::whitespace_only_returns_none ... ok [INFO] [stdout] test parser::structured::tests::only_ansi_escape_returns_none ... ok [INFO] [stdout] test parser::structured::tests::unterminated_bracket_rejected ... ok [INFO] [stdout] test parser::tests::dom_013_fully_empty_line_produces_ignored ... ok [INFO] [stdout] test parser::structured::tests::empty_line_returns_none ... ok [INFO] [stdout] test parser::structured::tests::mismatched_bracket_rejected ... ok [INFO] [stdout] test parser::structured::tests::pipe_without_timestamp_still_parses ... ok [INFO] [stdout] test parser::tests::dom_013_generic_wins_when_structured_rejects ... ok [INFO] [stdout] test parser::tests::dom_013_structured_wins_on_bracket_format ... ok [INFO] [stdout] test parser::tests::dom_013_parse_result_ignored_is_observable ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_format ... ok [INFO] [stdout] test parser::tests::dom_013_multibyte_utf8_message_passes_through ... ok [INFO] [stdout] test parser::tests::dom_013_parse_returns_new_entry_for_known_format ... ok [INFO] [stdout] test parser::tests::dom_013_keyword_wins_when_first_two_reject ... ok [INFO] [stdout] test parser::structured::tests::very_long_message_parses ... ok [INFO] [stdout] test parser::tests::dom_013_structured_intercepts_before_generic_on_pipe_format ... ok [INFO] [stdout] test parser::tests::dom_013_unparseable_junk_routes_to_keyword ... ok [INFO] [stdout] test parser::structured::tests::tag_with_trailing_whitespace_trimmed ... ok [INFO] [stdout] test parser::structured::tests::ignores_non_flutter ... ok [INFO] [stdout] test parser::tests::with_strategies_empty_chain_returns_ignored ... ok [INFO] [stdout] test parser::tests::dom_013_fall_through_structured_then_generic_then_keyword ... ok [INFO] [stdout] test parser::tests::with_strategies_preserves_order_and_delegates_to_first_match ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_passes_through_when_no_codes ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_removes_csi_color ... ok [INFO] [stdout] test parser::util::tests::ansi_re_is_shared_instance ... ok [INFO] [stdout] test replay::tests::replay_module_compiles_smoke ... ok [INFO] [stdout] test session::tests::apply_unknown_active_tab_falls_back_to_logs ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_handles_multiple_codes_in_one_line ... ok [INFO] [stdout] test session::tests::dom_021_out_of_range_level_u8_maps_to_system ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_only_strips_csi_not_other_escapes ... ok [INFO] [stdout] test session::tests::dom_022_tag_exclude_only ... ok [INFO] [stdout] test session::tests::dom_022_tag_include_only ... ok [INFO] [stdout] test session::tests::dom_021_every_level_variant_roundtrips ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_handles_empty ... ok [INFO] [stdout] test parser::tests::dom_013_very_long_line_does_not_panic ... ok [INFO] [stdout] test session::tests::dom_022_mixed_include_exclude ... ok [INFO] [stdout] test session::tests::roundtrip_active_tab_network ... ok [INFO] [stdout] test session::tests::roundtrip_bookmarks_dedupe_via_btreeset ... ok [INFO] [stdout] test session::tests::roundtrip_bookmarks_preserved_and_sorted ... ok [INFO] [stdout] test session::tests::dom_022_empty_tag_filter_does_not_trigger_parse ... ok [INFO] [stdout] test session::tests::load_from_missing_file_returns_io_err ... ok [INFO] [stdout] test session::tests::load_from_corrupted_file_returns_parse_err ... ok [INFO] [stdout] test session::tests::load_session_does_not_panic_on_missing_config ... ok [INFO] [stdout] test session::tests::file_roundtrip_empty_session ... ok [INFO] [stdout] test session::tests::roundtrip_search_query ... ok [INFO] [stdout] test transport::adb::tests::allocate_local_port_advances_counter ... ok [INFO] [stdout] test transport::adb::tests::adb_local_port_pool_constants_have_expected_values ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_increments_by_one ... ok [INFO] [stdout] test session::tests::roundtrip_level_filter_warning ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_stays_in_19753_29752_band ... ok [INFO] [stdout] test session::tests::roundtrip_empty_session ... ok [INFO] [stdout] test session::tests::file_roundtrip_preserves_all_fields ... ok [INFO] [stdout] test session::tests::roundtrip_exclude_query ... ok [INFO] [stdout] test session::tests::dom_022_tag_filter_regex_glob_roundtrips_input_string ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_within_pool_base ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_wraps_around_range ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_already_upper_is_noop ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_basic_ascii ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_multibyte_char ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_api_only ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_avd_only ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_both_present_underscores_replaced ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_empty_is_empty ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_empty_frame_ok ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_neither ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_non_hex_header_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_parses_single_frame ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_only_capitalized ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_model_only ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_nothing_uses_serial ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::device_name_falls_back_when_app_and_os_empty ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_ignores_offline_and_unauthorized ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_model_concatenated ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::device_name_uses_app_for_non_ios_os ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_truncated_body_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_truncated_header_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_model_deduped ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_malformed_line_is_skipped ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_on_malformed_json ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_when_type_field_wrong ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::is_port_open_false_when_nothing_listens ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_when_first_frame_is_binary ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_removed_when_device_disappears ... ok [INFO] [stdout] test parser::structured::tests::dom_014_all_levels_recognized ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_returns_some_on_valid_hello ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_on_empty_devices ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_finds_first_booted ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_skips_non_array_runtime ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_on_malformed_json ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_missing_name_returns_none ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::add_emits_once_per_id ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::connection_method_maps_device_kind ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::tcp_open_detects_listener ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::tcp_open_returns_none_when_no_listener ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_when_no_booted ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::is_port_open_true_when_listener_bound ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::contains_reflects_add_remove ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::device_event_debug_is_stable ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::remove_after_add_emits_removed ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::drain_emits_removed_for_every_known_and_clears ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::removed_since_computes_delta_correctly ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::removed_since_empty_when_snapshot_equals_known ... ok [INFO] [stdout] test transport::resolve::tests::resolve_ios_usb_produces_usbmuxd_with_device_id ... ok [INFO] [stdout] test transport::resolve::tests::resolve_android_produces_adb_forward_with_serial ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_idle_with_text_yellow_fg ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_idle_empty_shows_hint ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_long_text_truncates_with_ellipsis_when_idle ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_emits_added_for_online_device ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_active_empty_shows_only_cursor ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_active_shows_underscore_cursor ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_bg_active_is_surface1 ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_bg_idle_is_surface0 ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_custom_palette_propagates_to_cells ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_narrow_fallback ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_used_width_consistent_with_hit_x ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_cursor_in_middle ... ok [INFO] [stdout] test transport::resolve::tests::resolve_localhost_produces_localhost_variant ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_cursor_at_start_no_left_ellipsis ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_hit_x_covers_label ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_wide_char_no_overflow ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_idle_exact_fit_no_ellipsis ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_array_brackets_uses_brace_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_blank_line_passes_through ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_deep_nesting_beyond_palette_wraps ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_empty_string_returns_single_empty_line ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_zero_box ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_falsey_is_not_keyword ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_float ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_key_with_whitespace_before_colon ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_exponent_number ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_multiline_json ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_negative_not_followed_by_digit_is_text ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_nested_object_uses_depth_colors ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_negative_number ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_null_uses_null_color_and_italic ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_nullable_is_not_keyword ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_string_value_uses_str_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_string_with_escape ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_tab_and_cr_in_whitespace ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_simple_key_value_object ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_true_and_false_use_bool_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_truely_is_not_keyword ... ok [INFO] [stdout] test ui::help::tests::help_content_bg_uses_shared_base_palette ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_preserves_surrounding_non_json_text ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_unterminated_string_enters_multiline_state ... ok [INFO] [stdout] test ui::json_viewer::render::tests::array_of_objects_alignment ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_array_fits_within_max_width ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_array_shows_length_suffix ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_is_clickable ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_shows_summary ... ok [INFO] [stdout] test ui::json_viewer::render::tests::empty_object_not_foldable ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_unterminated_string_middle_of_line ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_null ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_number ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_string_short ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_string_truncated ... ok [INFO] [stdout] test ui::json_viewer::render::tests::nested_expansion_with_collapsed_grandchild ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_fits_within_max_width ... ok [INFO] [stdout] test ui::json_viewer::state::tests::init_depth_zero_only_root ... ok [INFO] [stdout] test ui::json_viewer::render::tests::expanded_root_object_renders_children ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_whitespace_runs_grouped_as_default ... ok [INFO] [stdout] test ui::json_viewer::state::tests::init_expands_within_depth ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_flips_container ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_leaf_is_noop ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_out_of_bounds_is_noop ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::number_preserves_string_form ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_empty_containers ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_invalid_json ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_flat_object ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_nested_array ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_primitive_root ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::heading_renderer_emits_blank_then_rule ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_bool ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_preserves_object_key_order ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::sdk_frame_classifier ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_dims_sdk_frames ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_handles_collapsed_row ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_splits_frame_into_spans ... ok [INFO] [stdout] test ui::logs::detail::section::tests::error_heading_then_prose ... ok [INFO] [stdout] test ui::logs::detail::section::tests::json_path_produces_prose_json_prose ... ok [INFO] [stdout] test ui::logs::detail::section::tests::prose_only ... ok [INFO] [stdout] test ui::logs::detail::section::tests::splits_heading_and_stack ... ok [INFO] [stdout] test ui::logs::jump::tests::hidden_when_auto_scroll ... ok [INFO] [stdout] test ui::logs::jump::tests::label_no_new ... ok [INFO] [stdout] test ui::logs::jump::tests::label_with_new ... ok [INFO] [stdout] test ui::logs::jump::tests::shown_when_paused ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_caps_at_max_wrap_lines ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_separator_is_three ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_short_message_one_row ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_proportional ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_saturates_at_50 ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_zero_count ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_zero_width ... ok [INFO] [stdout] test ui::logs::tests::visible_start_clamps_to_total_when_offset_too_large ... ok [INFO] [stdout] test ui::logs::tests::visible_start_equals_offset_when_offset_lt_total ... ok [INFO] [stdout] test ui::logs::tests::visible_start_within_bounds ... ok [INFO] [stdout] test ui::logs::tests::visible_start_zero_total ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_basic_window ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_clamps_end ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_clamps_start ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_empty ... ok [INFO] [stdout] test ui::network::tests::test_duration_color ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_hit_regions_ordered_correctly ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_layout_cache_populates_tab_click_regions ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_logs_active_has_blue_pill_bg ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_narrow_terminal_still_renders_no_panic ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_network_active_has_blue_pill_bg_and_logs_inactive ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_shows_both_tab_labels ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_tall_terminal_only_renders_first_row ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_android_app_shows_platform_pill ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_ios_app_shows_ios_platform ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_unknown_os_shows_sim_platform ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_zero_height_no_panic_returns_early ... ok [INFO] [stdout] test ui::tests::draw_separator_rule_renders_horizontal_line ... ok [INFO] [stdout] test ui::tests::draw_top_level_dispatches_logs_tab ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_renders_single_line ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_colors_error_prefix ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_auto_highlights_error_rest ... ok [INFO] [stdout] test ui::tests::safe_pad_cjk_truncates_by_display_width ... ok [INFO] [stdout] test ui::tests::safe_pad_exactly_width_returns_unchanged ... ok [INFO] [stdout] test ui::tests::safe_pad_longer_than_width_truncates_no_ellipsis ... ok [INFO] [stdout] test ui::tests::safe_pad_shorter_than_width_pads_spaces ... ok [INFO] [stdout] test ui::tests::safe_truncate_cjk_width_aware ... ok [INFO] [stdout] test session::tests::load_error_does_not_mutate_app ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::remove_unknown_id_is_silent ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_keeps_cursor_visible ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_idle_truncates_tail ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_short_fits ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_escape_in_unterminated_string_on_continuing_line ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_integer ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_malformed_json_passes_through ... ok [INFO] [stdout] test ui::json_viewer::render::tests::nested_container_in_summary_shows_placeholder ... ok [INFO] [stdout] test ui::tests::safe_truncate_exactly_fits ... ok [INFO] [stdout] test ui::tests::wrap_multiline_leading_newline_preserves_blank ... ok [INFO] [stdout] test ui::tests::wrap_multiline_preserves_blank_lines ... ok [INFO] [stdout] test ui::tests::safe_truncate_zero_width_returns_empty ... ok [INFO] [stdout] test ui::tests::wrap_multiline_splits_on_newline ... ok [INFO] [stdout] test ui::tests::safe_truncate_long_cuts_and_ellipses ... ok [INFO] [stdout] test ui::tests::safe_pad_cjk_respects_display_width ... ok [INFO] [stdout] test ui::tests::safe_truncate_short_enough_returns_unchanged ... ok [INFO] [stdout] test ui::tests::wrap_multiline_wraps_inside_long_segment ... ok [INFO] [stdout] test ui::tests::wrap_multiline_zero_lines_returns_empty ... ok [INFO] [stdout] test ui::tests::wrap_text_empty_string_yields_one_empty_line ... ok [INFO] [stdout] test ui::tests::wrap_text_exactly_width_one_line ... ok [INFO] [stdout] test ui::tests::wrap_text_max_lines_cap_with_ellipsis ... ok [INFO] [stdout] test ui::tests::wrap_multiline_respects_line_cap ... ok [INFO] [stdout] test ui::tests::wrap_multiline_zero_width_returns_empty ... ok [INFO] [stdout] test ui::tests::wrap_text_splits_on_width_boundary ... ok [INFO] [stdout] test ui::tests::wrap_text_zero_max_lines_returns_empty_placeholder ... ok [INFO] [stdout] test ui::tests::draw_top_level_dispatches_network_tab ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_auto_highlights_http_line ... ok [INFO] [stdout] test ui::tests::wrap_text_zero_width_returns_empty_placeholder ... ok [INFO] [stdout] test ui::text_editor::tests::delete_with_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::insert_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::move_left_at_start_no_change ... ok [INFO] [stdout] test ui::text_editor::tests::move_right_across_multibyte ... ok [INFO] [stdout] test ui::text_editor::tests::paste_empty_string_is_single_empty_fragment ... ok [INFO] [stdout] test ui::text_editor::tests::ensure_cursor_visible_zero_height_no_op ... ok [INFO] [stdout] test ui::text_editor::tests::backspace_with_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::move_left_across_multibyte ... ok [INFO] [stdout] test ui::text_editor::tests::click_with_wide_char_maps_screen_col_to_byte ... ok [INFO] [stdout] test ui::text_editor::tests::move_end_on_empty_line ... ok [INFO] [stdout] test ui::text_editor::tests::paste_multiline_three_parts_middle_inserted ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_at_start_of_first_line ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_at_cursor ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_at_end_of_last_line ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_middle ... ok [INFO] [stdout] test ui::text_editor::tests::test_insert_newline ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_line_merge ... ok [INFO] [stdout] test ui::text_editor::tests::test_new_multiline ... ok [INFO] [stdout] test ui::text_editor::tests::test_scroll ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_line_merge ... ok [INFO] [stdout] test ui::text_editor::tests::test_click_clamp ... ok [INFO] [stdout] test ui::text_editor::tests::test_new_empty ... ok [INFO] [stdout] test ui::text_editor::tests::test_cursor_movement ... ok [INFO] [stdout] test ui::text_editor::tests::test_lines_never_empty ... ok [INFO] [stdout] test ui::text_editor::tests::test_insert_char ... ok [INFO] [stdout] test ui::text_editor::tests::test_paste_multiline ... ok [INFO] [stdout] test ui::text_editor::tests::test_paste_single_line ... ok [INFO] [stdout] test ui::text_editor::tests::test_to_string ... ok [INFO] [stdout] test domain::store::tests::drain_on_full_evicts_one_at_a_time ... ok [INFO] [stdout] test domain::store::tests::drain_at_exact_capacity_triggers_on_next_add ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 728 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/flog-dfd038a90212e585) [INFO] [stdout] [INFO] [stdout] running 743 tests [INFO] [stdout] test app::tests::app_logs_starts_at_default ... ok [INFO] [stdout] test cli::tests::cli_defaults ... ok [INFO] [stdout] test cli::tests::cli_all_flags_combined ... ok [INFO] [stdout] test app::tests::logs_view_state_default_matches_initial_app_state ... ok [INFO] [stdout] test app::tests::app_logs_field_reflects_direct_mutations ... ok [INFO] [stdout] test cli::tests::cli_level_warning ... ok [INFO] [stdout] test cli::tests::cli_custom_port ... ok [INFO] [stdout] test cli::tests::cli_tag_passed_through ... ok [INFO] [stdout] test cli::tests::cli_level_long_form ... ok [INFO] [stdout] test cli::tests::parse_level_debug_aliases ... ok [INFO] [stdout] test cli::tests::parse_level_error_aliases ... ok [INFO] [stdout] test cli::tests::parse_level_info_aliases ... ok [INFO] [stdout] test cli::tests::parse_level_rejects_unknown ... ok [INFO] [stdout] test cli::tests::cli_invalid_level_fails ... ok [INFO] [stdout] test cli::tests::parse_level_verbose_aliases ... ok [INFO] [stdout] test domain::entry::tests::collapse_empty_input ... ok [INFO] [stdout] test domain::entry::tests::collapse_no_repeats ... ok [INFO] [stdout] test domain::entry::tests::collapse_preserves_non_frame_lines ... ok [INFO] [stdout] test domain::entry::tests::collapse_single_frame ... ok [INFO] [stdout] test cli::tests::parse_level_warning_aliases ... ok [INFO] [stdout] test domain::entry::tests::collapse_repeated_frames ... ok [INFO] [stdout] test domain::entry::tests::full_message_error_only_no_stacktrace ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_no_error_no_stack ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_basic ... ok [INFO] [stdout] test domain::entry::tests::full_message_no_error_no_stacktrace ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_tag_state ... ok [INFO] [stdout] test domain::filter::tests::default_state_matches_everything ... ok [INFO] [stdout] test domain::filter::tests::dom_004_level_dimension_blocks_below_min ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_min_level_to_system ... ok [INFO] [stdout] test domain::filter::tests::dom_004_tag_dimension_include_only ... ok [INFO] [stdout] test domain::entry::tests::stack_preview_short_stack ... ok [INFO] [stdout] test domain::entry::tests::full_message_includes_error_and_stacktrace ... ok [INFO] [stdout] test domain::filter::tests::clear_resets_exclude ... ok [INFO] [stdout] test domain::filter::tests::dom_004_exclude_dimension_only ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_exclude_resyncs_compiled_state ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_c_empty ... ok [INFO] [stdout] test domain::filter::tests::dom_019_all_dimensions_combined ... ok [INFO] [stdout] test domain::filter::tests::exclude_empty_does_nothing ... ok [INFO] [stdout] test domain::filter::tests::matches_full_message_includes_extra_lines ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_case_insensitive_plain ... ok [INFO] [stdout] test domain::filter::tests::dom_019_filter_state_implements_message_filter_for_log_entry ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_plain_single ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_empty_parts_no_regex_is_false ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_b_regex ... ok [INFO] [stdout] test domain::filter::tests::exclude_plain_removes_matches ... ok [INFO] [stdout] test domain::filter::tests::exclude_regex_supported ... ok [INFO] [stdout] test domain::filter::tests::dom_005_set_search_resyncs_compiled_state_a_plain ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_plain_or ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_disjoint_sorted ... ok [INFO] [stdout] test domain::filter::tests::matches_exclude_hits_tag_not_message ... ok [INFO] [stdout] test domain::filter::tests::matches_separator_bypasses_all_filters ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_empty_and_single ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_strictly_overlapping_coalesce ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_multiple_overlaps_collapse ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_skips_empty_parts ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_touching_ranges_coalesce ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_regex_owns_pipe ... ok [INFO] [stdout] test domain::filter::tests::matches_search_hits_tag_not_message ... ok [INFO] [stdout] test domain::filter::tests::merge_overlapping_ranges_disjoint_unsorted_input_is_sorted ... ok [INFO] [stdout] test domain::filter::tests::matches_multi_unicode_plain ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_clears_prior_state ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_comma_still_works ... ok [INFO] [stdout] test domain::filter::tests::search_positions_case_insensitive ... ok [INFO] [stdout] test domain::filter::tests::search_positions_empty_query_returns_empty ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_accepts_pipe_and_plus_prefix ... ok [INFO] [stdout] test domain::filter::tests::dom_004_search_dimension_only ... ok [INFO] [stdout] test domain::filter::tests::search_plain_multi_or ... ok [INFO] [stdout] test domain::filter::tests::search_and_exclude_intersect ... ok [INFO] [stdout] test domain::filter::tests::search_regex_passes_pipe_through ... ok [INFO] [stdout] test domain::filter::tests::tag_filter_include_case_insensitive ... ok [INFO] [stdout] test domain::filter::tests::set_exclude_invalid_regex_compiles_to_none ... ok [INFO] [stdout] test domain::filter::tests::set_search_regex_unterminated_slash ... ok [INFO] [stdout] test domain::filter::tests::tag_filter_exclude_case_insensitive ... ok [INFO] [stdout] test domain::filter::tests::search_positions_regex_mode ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_single_term ... ok [INFO] [stdout] test domain::filter::tests::search_positions_invalid_regex_returns_empty ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_empty_parts_skipped ... ok [INFO] [stdout] test domain::filter::tests::min_level_system_includes_all_levels ... ok [INFO] [stdout] test domain::filter::tests::parse_tag_filter_strips_dash_and_empty_segments ... ok [INFO] [stdout] test domain::filter::tests::search_positions_plain_or_multi ... ok [INFO] [stdout] test domain::filter::tests::set_search_invalid_regex_compiles_to_none ... ok [INFO] [stdout] test domain::filter::tests::set_search_regex_ci_suffix ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_integer_and_float ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_null_true_false ... ok [INFO] [stdout] test domain::json_tolerant::tests::classify_bare_string_fallback ... ok [INFO] [stdout] test domain::json_tolerant::tests::is_key_char_accepts_identifier_chars ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_new_starts_at_zero ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_parses_empty_array ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_parses_empty_object ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_rejects_non_container_at_root ... ok [INFO] [stdout] test domain::json_tolerant::tests::parser_skip_whitespace_moves_past_spaces_tabs_newlines ... ok [INFO] [stdout] test domain::mock::tests::test_add_rule ... ok [INFO] [stdout] test domain::mock::tests::test_find_match_by_url ... ok [INFO] [stdout] test domain::mock::tests::test_find_match_respects_method ... ok [INFO] [stdout] test domain::mock::tests::test_toggle_rule ... ok [INFO] [stdout] test domain::network::tests::display_size_http_none_is_zero ... ok [INFO] [stdout] test domain::network::tests::display_size_sse_uses_total ... ok [INFO] [stdout] test domain::network::tests::display_size_ws_empty_is_zero ... ok [INFO] [stdout] test domain::network::tests::display_size_ws_sums_messages ... ok [INFO] [stdout] test domain::network::tests::dom_003_new_orphan_response_sets_orphan_status ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_no_path_returns_original ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_query_params ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_no_scheme_returns_original ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_strips_scheme_and_host_b_https_with_port ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_strips_scheme_and_host_a_http ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_http_sets_protocol_method_and_pending ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_timestamp_and_source_chainable ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_ws_has_empty_method_and_active ... ok [INFO] [stdout] test domain::network::tests::dom_024_legacy_factories_still_delegate_to_builder ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_root_only ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_empty_string ... ok [INFO] [stdout] test domain::network::tests::dom_024_builder_sse_sets_protocol_method_and_active ... ok [INFO] [stdout] test domain::network::tests::dom_020_extract_path_ipv6_edge_case_fails ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_http_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_ws_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_024_new_sse_defaults ... ok [INFO] [stdout] test domain::network::tests::dom_025_flog_net_kind_chunk_accepts_all_wire_fields ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_wildcard_glob ... ok [INFO] [stdout] test domain::network::tests::dom_025_sse_chunk_has_only_data_after_prune ... ok [INFO] [stdout] test domain::network::tests::dom_025_ws_message_has_direction_data_size_after_prune ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_can_be_set_to_mocked ... ok [INFO] [stdout] test domain::mock::tests::test_hit_count_increments ... ok [INFO] [stdout] test domain::mock::tests::test_remove_rule ... ok [INFO] [stdout] test domain::network::tests::display_size_http_uses_response_size ... ok [INFO] [stdout] test domain::network::tests::dom_025_flog_net_kind_req_minimal_payload ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_patch_matches_only_patch ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_put_matches_only_put ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_can_be_set_to_replay ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_http_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_delete_matches_only_delete ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_all_matches_every_protocol ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_all_matches_any ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_exclude ... ok [INFO] [stdout] test domain::filter::tests::tag_regex_mode_include ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_get_is_case_insensitive ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_sse_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_protocol_filter_ws_only ... ok [INFO] [stdout] test domain::network::tests::test_entry_source_default_is_app ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_a_pending ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_active_only_matches_active ... ok [INFO] [stdout] test domain::filter::tests::dom_004_tag_dimension_exclude_only ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_c_completed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_b_active ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_variant_cycles_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_matches_all_default_filter_accepts_everything ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_failed_only_matches_failed ... ok [INFO] [stdout] test domain::mock::tests::test_to_json_string ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_all_matches_every_status_d_failed ... ok [INFO] [stdout] test domain::network_filter::tests::default_trait_delegates_to_new ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_search_hits_path_not_url ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_status_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_pending_only_matches_pending ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_empty_query_does_not_filter ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_hits_path_even_if_url_not ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_plain ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_network_filter_implements_message_filter_for_network_entry ... ok [INFO] [stdout] test domain::network_filter::tests::reset_clears_exclude ... ok [INFO] [stdout] test domain::network_filter::tests::reset_resets_all_dimensions ... ok [INFO] [stdout] test domain::network_filter::tests::search_and_exclude_combined ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_method_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::dom_019_protocol_filter_rejects_non_matching ... ok [INFO] [stdout] test domain::network_filter::tests::exclude_regex ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_status_filter_completed_only_matches_completed ... ok [INFO] [stdout] test domain::network_filter::tests::dom_001_method_filter_post_matches_only_post ... ok [INFO] [stdout] test domain::network_filter::tests::search_empty_query_does_not_filter ... ok [INFO] [stdout] test domain::network_filter::tests::search_invalid_regex_no_match ... ok [INFO] [stdout] test domain::network_filter::tests::search_unicode_query ... ok [INFO] [stdout] test domain::network_store::tests::clear_empties_store ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex_unterminated_slash ... ok [INFO] [stdout] test domain::network_store::tests::default_store_is_empty ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_chunk_without_req_drops_silently_c ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_chunk_on_http_protocol_still_appends_to_sse_chunks ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_done_without_req_drops_silently_d ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_close_without_open_drops_silently_e ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_res_without_req_surfaces_orphan_entry_a ... ok [INFO] [stdout] test domain::network_filter::tests::search_plain_or ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_ws_send_without_open_drops_silently_f ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_second_req_with_same_id_creates_new_entry ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_ws_recv_without_open_drops_silently_g ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_req_deserializes_from_dart_wire_format ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_no_protocol_defaults_to_http ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_missing_url_defaults_to_empty ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_rejects_unknown_variant ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_unknown_message_type_is_rejected_at_parse_time ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_missing_method_defaults_to_empty ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_format_shape ... ok [INFO] [stdout] test domain::network_store::tests::find_by_id_mut_returns_most_recent_when_duplicate ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_rejects_missing_id ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_chunk_accepts_dropped_fields_on_wire ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_zero_epoch_matches_chrono_local ... ok [INFO] [stdout] test domain::network_store::tests::format_ts_with_milliseconds_matches_chrono_local ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_sse_protocol ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_ws_protocol ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_req_unknown_protocol_defaults_to_http ... ok [INFO] [stdout] test domain::network_store::tests::dom_006_flog_net_kind_id_helper_covers_all_variants ... ok [INFO] [stdout] test domain::network_store::tests::handle_open_creates_ws_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_appends_to_sse_chunks ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_size_field_overrides_body_len ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_mocked_flag_sets_source ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_stores_headers_body_and_timestamp ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_updates_matched_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_close_sets_close_fields ... ok [INFO] [stdout] test domain::network_store::tests::handle_done_completes_entry ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_size_field_overrides_body_len ... ok [INFO] [stdout] test domain::network_store::tests::handle_send_and_recv_append_ws_messages ... ok [INFO] [stdout] test domain::network_store::tests::handle_ws_msg_size_override ... ok [INFO] [stdout] test domain::network_store::tests::iter_yields_entries_in_order ... ok [INFO] [stdout] test domain::network_filter::tests::search_regex_ci_suffix ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_non_json ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_empty_chunks ... ok [INFO] [stdout] test domain::network_store::tests::test_push_entry ... ok [INFO] [stdout] test domain::sse_merge::tests::test_auto_detect_openai ... ok [INFO] [stdout] test domain::sse_merge::tests::test_resolve_path ... ok [INFO] [stdout] test domain::sse_merge::tests::test_resolve_path_missing ... ok [INFO] [stdout] test domain::sse_merge::tests::test_extract_field_paths ... ok [INFO] [stdout] test domain::network_store::tests::new_store_is_empty ... ok [INFO] [stdout] test domain::sse_merge::tests::test_extract_field_paths_multi_chunk ... ok [INFO] [stdout] test domain::sse_merge::tests::test_merge_field ... ok [INFO] [stdout] test domain::sse_merge::tests::test_merge_field_skips_missing ... ok [INFO] [stdout] test domain::store::tests::add_single_entry_increments_len ... ok [INFO] [stdout] test domain::store::tests::default_matches_new ... ok [INFO] [stdout] test domain::store::tests::dom_011_consecutive_duplicates_fold_into_repeat_count ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_level_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_tag_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_add_below_capacity_no_drain ... ok [INFO] [stdout] test domain::store::tests::dom_011_different_message_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_multi_adjacent_chain ... ok [INFO] [stdout] test domain::store::tests::dom_011_entry_with_extra_lines_does_not_fold ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_on_drain_compresses_ring_after_pop ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_empty_or_single_is_noop ... ok [INFO] [stdout] test domain::store::tests::dom_011_last_entry_with_extra_lines_does_not_fold_new_one ... ok [INFO] [stdout] test domain::store::tests::dom_011_same_signature_respects_level_and_extra_lines ... ok [INFO] [stdout] test domain::store::tests::dom_011_folding_updates_last_entry_timestamp ... ok [INFO] [stdout] test domain::network_store::tests::dom_002_err_without_req_drops_silently_b ... ok [INFO] [stdout] test domain::store::tests::drain_zero_entries_on_empty_store_is_impossible ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_stores_data_in_order ... ok [INFO] [stdout] test domain::network_store::tests::handle_err_sets_failed_status ... ok [INFO] [stdout] test domain::network_store::tests::handle_open_missing_url_defaults_to_empty ... ok [INFO] [stdout] test domain::store::tests::dom_011_fold_helper_mixed_clusters ... ok [INFO] [stdout] test domain::network_store::tests::handle_res_mocked_false_keeps_app_source ... ok [INFO] [stdout] test domain::store::tests::drain_after_cap_adds_identical_creates_new_not_folds ... ok [INFO] [stdout] test domain::store::tests::get_returns_entry_at_index ... ok [INFO] [stdout] test domain::store::tests::iter_yields_entries_in_insertion_order ... ok [INFO] [stdout] test domain::store::tests::new_is_empty ... ok [INFO] [stdout] test domain::store::tests::store_handles_mix_of_folding_and_distinct_entries ... ok [INFO] [stdout] test domain::store::tests::store_len_and_is_empty_after_drain ... ok [INFO] [stdout] test domain::network_store::tests::handle_chunk_defaults_data_to_empty_string ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_followed_by_key_is_separator ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_inside_bare_string_value ... ok [INFO] [stdout] test domain::structured_parser::tests::comma_before_url_with_double_colon ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_array_of_bare_string_phrases ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_empty_string_value ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_array ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_unquoted_keys_and_strings ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_embedded_strict_json_object ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_nested_array_of_maps ... ok [INFO] [stdout] test domain::structured_parser::tests::dart_map_with_unicode_emoji_value ... ok [INFO] [stdout] test domain::structured_parser::tests::find_and_parse_with_prefix ... ok [INFO] [stdout] test domain::structured_parser::tests::empty_containers ... ok [INFO] [stdout] test domain::structured_parser::tests::find_full_screenshot_body ... ok [INFO] [stdout] test domain::structured_parser::tests::find_in_log_message_with_prefix_and_suffix ... ok [INFO] [stdout] test domain::structured_parser::tests::find_prefers_larger_region_over_tag_like_prefix ... ok [INFO] [stdout] test domain::structured_parser::tests::find_real_array_not_rejected ... ok [INFO] [stdout] test domain::structured_parser::tests::find_returns_none_for_plain_text ... ok [INFO] [stdout] test domain::structured_parser::tests::find_short_log_tag_alone_returns_none ... ok [INFO] [stdout] test domain::structured_parser::tests::gibberish_returns_none ... ok [INFO] [stdout] test domain::structured_parser::tests::find_skips_unparseable_brackets ... ok [INFO] [stdout] test domain::structured_parser::tests::find_strict_json_byte_offset_accurate ... ok [INFO] [stdout] test domain::structured_parser::tests::unbalanced_returns_none ... ok [INFO] [stdout] test domain::structured_parser::tests::strict_json_still_parses ... ok [INFO] [stdout] test domain::structured_parser::tests::nested_dart_map ... ok [INFO] [stdout] test domain::structured_parser::tests::url_in_bare_value_not_mistaken_for_key ... ok [INFO] [stdout] test domain::structured_parser::tests::whitespace_tolerance ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_delta ... ok [INFO] [stdout] test domain::structured_parser::tests::typed_bare_literals ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_no_known_key ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_non_json ... ok [INFO] [stdout] test domain::structured_parser::tests::full_screenshot_response_body ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_delta_no_field ... ok [INFO] [stdout] test domain::structured_parser::tests::parse_whole_rejects_text_without_brackets ... ok [INFO] [stdout] test domain::structured_parser::tests::mixed_quoted_and_bare ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_with_event_field ... ok [INFO] [stdout] test domain::structured_parser::tests::parse_whole_rejects_trailing_junk ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_short ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_basic ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_delta_merge ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_direction_break ... ok [INFO] [stdout] test domain::ws_chat::tests::test_group_messages_interleaved_types ... ok [INFO] [stdout] test domain::ws_chat::tests::test_has_binary_content_no_binary ... ok [INFO] [stdout] test domain::ws_chat::tests::test_has_binary_content_in_json ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_long ... ok [INFO] [stdout] test domain::ws_chat::tests::test_preview_message_binary ... ok [INFO] [stdout] test domain::ws_chat::tests::test_extract_type_with_type_field ... ok [INFO] [stdout] test domain::ws_chat::tests::test_preview_message_normal ... ok [INFO] [stdout] test event::apply::tests::apply_device_picker_outside_closes_picker ... ok [INFO] [stdout] test event::apply::tests::apply_protocol_pill_updates_filter ... ok [INFO] [stdout] test event::apply::tests::apply_logs_tab_switches_tab ... ok [INFO] [stdout] test event::apply::tests::apply_sse_field_selection_updates_field_idx ... ok [INFO] [stdout] test domain::ws_chat::tests::test_is_base64_binary_not_b64 ... ok [INFO] [stdout] test event::apply::tests::apply_sse_field_selection_rebuilds_merge_rule ... ok [INFO] [stdout] test event::apply::tests::classify_click_different_coords_is_single ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_equality_is_variant_based ... ok [INFO] [stdout] test event::apply::tests::classify_click_same_coords_recent_is_double ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_is_cloneable ... ok [INFO] [stdout] test event::apply::tests::classify_click_timeout_is_single ... ok [INFO] [stdout] test event::detect::tests::detects_device_picker_item ... ok [INFO] [stdout] test event::apply::tests::classify_click_without_prev_is_single ... ok [INFO] [stdout] test event::click_region::tests::logs_tab_debug_contains_variant_name ... ok [INFO] [stdout] test event::detect::tests::detects_device_picker_outside ... ok [INFO] [stdout] test event::detect::tests::detects_logs_tab ... ok [INFO] [stdout] test event::detect::tests::detects_network_detail_mock_btn ... ok [INFO] [stdout] test event::detect::tests::detects_status_bar_source_info_logs ... ok [INFO] [stdout] test event::detect::tests::returns_none_for_empty_coords ... ok [INFO] [stdout] test event::detect::tests::detects_jump_to_bottom_pill ... ok [INFO] [stdout] test event::detect::tests::detects_network_list_row ... ok [INFO] [stdout] test event::detect::tests::detects_network_protocol_pill ... ok [INFO] [stdout] test domain::network_store::tests::push_entry_evicts_oldest_at_capacity ... ok [INFO] [stdout] test event::keys::routing_tests::ui_007_logs_tab_routes_c_to_copy_current_log ... ok [INFO] [stdout] test event::detect::tests::detects_logs_list_row ... ok [INFO] [stdout] test event::keys::routing_tests::ui_007_network_tab_routes_r_to_replay_path ... ok [INFO] [stdout] test event::detect::tests::detects_network_tab ... ok [INFO] [stdout] test event::pills::tests::ws_pill_labels_unchanged ... ok [INFO] [stdout] test event::sse_nav::tests::down_increments_saturates_at_count_minus_one ... ok [INFO] [stdout] test event::sse_nav::tests::up_decrements_saturates_at_zero ... ok [INFO] [stdout] test event::pills::tests::sse_pill_labels_unchanged ... ok [INFO] [stdout] test event::sse_nav::tests::zero_count_returns_zero ... ok [INFO] [stdout] test event::tests::scroll_down_in_logs_tab_does_not_panic ... ok [INFO] [stdout] test event::tests::click_outside_detail_while_device_picker_open_closes_picker ... ok [INFO] [stdout] test event::tests::tab_bar_double_click_switches_tab_twice ... ok [INFO] [stdout] test event::tests::scroll_up_in_logs_tab_calls_move_up ... ok [INFO] [stdout] test input::connector::tests::send_mock_sync_wrapper_produces_mock_sync_json ... ok [INFO] [stdout] test input::protocol::tests::proto_101_hello_minimal_required_fields_only ... ok [INFO] [stdout] test input::protocol::tests::proto_102_log_message_only_minimal ... ok [INFO] [stdout] test input::connector::tests::send_replay_wrapper_produces_replay_json ... ok [INFO] [stdout] test input::connector::tests::send_returns_false_when_receiver_dropped ... ok [INFO] [stdout] test input::protocol::tests::proto_103_net_variant_flattens_flog_net_kind_req ... ok [INFO] [stdout] test input::connector::tests::send_enqueues_serialized_server_message ... ok [INFO] [stdout] test input::protocol::tests::proto_101_hello_all_fields_present_including_build_mode ... ok [INFO] [stdout] test input::protocol::tests::proto_103_net_variant_response_shape ... ok [INFO] [stdout] test input::protocol::tests::proto_104_empty_string_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_missing_required_app_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_missing_required_os_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_malformed_json_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_net_missing_required_id_returns_err ... ok [INFO] [stdout] test input::connector::tests::disconnect_reason_peer_close_carried ... ok [INFO] [stdout] test input::protocol::tests::proto_104_log_missing_required_message_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_104_missing_type_tag_returns_err ... ok [INFO] [stdout] test input::protocol::tests::proto_110_mock_sync_shape ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_hello_new_format ... ok [INFO] [stdout] test input::connector::tests::writer_drop_triggers_reader_disconnect ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_log ... ok [INFO] [stdout] test input::protocol::tests::proto_110_replay_with_all_optional_fields_present ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_log_with_optional_fields ... ok [INFO] [stdout] test input::protocol::tests::proto_110_replay_with_none_optional_fields_serializes_as_null ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_raw_log ... ok [INFO] [stdout] test input::protocol::tests::proto_110_subscribe_exact_shape ... ok [INFO] [stdout] test input::protocol::tests::proto_120_client_info_fields_round_trip ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_net ... ok [INFO] [stdout] test input::protocol::tests::proto_120_client_info_is_cloneable ... ok [INFO] [stdout] test input::protocol::tests::proto_121_hello_with_session_id_deserializes ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_unknown_type ... ok [INFO] [stdout] test input::protocol::tests::proto_121_hello_without_session_id_defaults_to_none ... ok [INFO] [stdout] test input::protocol::tests::proto_104_hello_with_unknown_extra_fields_succeeds ... ok [INFO] [stdout] test input::protocol::tests::proto_104_wrong_variant_tag_returns_err ... ok [INFO] [stdout] test input::protocol::tests::test_deserialize_hello_legacy_format ... ok [INFO] [stdout] test parser::generic::tests::build_flutter_plain_always_system_level_tagged_flutter ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_mock_sync ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_replay ... ok [INFO] [stdout] test domain::network_store::tests::handle_req_evicts_oldest_at_capacity ... ok [INFO] [stdout] test input::protocol::tests::test_serialize_subscribe ... ok [INFO] [stdout] test parser::generic::tests::parse_failed_assertion_line ... ok [INFO] [stdout] test parser::generic::tests::parse_exception_decoration_line ... ok [INFO] [stdout] test parser::generic::tests::parse_handler_line ... ok [INFO] [stdout] test parser::generic::tests::ansi_escape_is_stripped_from_exception ... ok [INFO] [stdout] test parser::generic::tests::parse_exception_header ... ok [INFO] [stdout] test parser::generic::tests::parse_recognizer_line ... ok [INFO] [stdout] test parser::generic::tests::parse_the_following_line ... ok [INFO] [stdout] test parser::generic::tests::parse_stacktrace_frame ... ok [INFO] [stdout] test parser::generic::tests::parse_fatal_logcat ... ok [INFO] [stdout] test parser::generic::tests::parse_dart_vm_error ... ok [INFO] [stdout] test parser::generic::tests::parse_verbose_logcat ... ok [INFO] [stdout] test parser::generic::tests::parse_debug_logcat ... ok [INFO] [stdout] test parser::generic::tests::parse_flutter_jni_warning ... ok [INFO] [stdout] test parser::generic::tests::parse_when_the_exception_line ... ok [INFO] [stdout] test parser::generic::tests::parser_name_is_generic ... ok [INFO] [stdout] test parser::generic::tests::parses_any_logcat_tag ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_empty_content_yields_system ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_non_flutter_line_returns_none ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_accepts_i_flutter_line ... ok [INFO] [stdout] test parser::generic::tests::bracket_level_unknown_falls_back_to_plain_flutter ... ok [INFO] [stdout] test parser::generic::tests::parse_empty_flutter_print ... ok [INFO] [stdout] test parser::generic::tests::parse_bracket_level_tag ... ok [INFO] [stdout] test parser::generic::tests::parse_bracket_level_only ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_plain ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_error ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_structured_requires_bracket_shape_and_known_level ... ok [INFO] [stdout] test parser::generic::tests::parse_vm_stdout_bracket_level_tag ... ok [INFO] [stdout] test parser::generic::tests::ansi_escape_stripped_in_flutter_content ... ok [INFO] [stdout] test parser::generic::tests::parse_plain_flutter ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_lifts_bracketed_level_and_tag ... ok [INFO] [stdout] test parser::generic::tests::try_parse_flutter_prefixed_accepts_flutter_colon_line ... ok [INFO] [stdout] test parser::keyword::tests::debug_keywords_include_expected_set ... ok [INFO] [stdout] test parser::generic::tests::unmatched_line_returns_none ... ok [INFO] [stdout] test parser::keyword::tests::error_keywords_include_expected_set ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_handles_single_keyword ... ok [INFO] [stdout] test parser::keyword::tests::ignores_empty ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_respects_word_boundary ... ok [INFO] [stdout] test parser::network::tests::empty_input_returns_none ... ok [INFO] [stdout] test parser::network::tests::parses_valid_flog_net_message ... ok [INFO] [stdout] test parser::keyword::tests::build_keyword_regex_is_case_insensitive ... ok [INFO] [stdout] test parser::network::tests::non_flog_net_tag_is_ignored ... ok [INFO] [stdout] test parser::keyword::tests::warning_keywords_include_expected_set ... ok [INFO] [stdout] test parser::network::tests::malformed_json_returns_none ... ok [INFO] [stdout] test parser::network::tests::extreme_length_input_handled ... ok [INFO] [stdout] test parser::keyword::tests::infers_error ... ok [INFO] [stdout] test parser::keyword::tests::infers_warning ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_bad_input_produces_empty ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_roundtrip_matches_chrono_local ... ok [INFO] [stdout] test parser::structured::tests::epoch_conversion_zero_formats_as_hhmmss ... ok [INFO] [stdout] test parser::structured::tests::extract_content_handles_vm_stdout_prefix ... ok [INFO] [stdout] test parser::structured::tests::extract_content_no_flutter_prefix_returns_line_unchanged ... ok [INFO] [stdout] test parser::structured::tests::extract_content_strips_flutter_prefix_and_ansi ... ok [INFO] [stdout] test parser::structured::tests::epoch_13_digits_converts_to_time ... ok [INFO] [stdout] test parser::structured::tests::epoch_10_digits_converts_to_time ... ok [INFO] [stdout] test parser::keyword::tests::infers_info_default ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_raw ... ok [INFO] [stdout] test parser::structured::tests::dom_015_multiple_ansi_sequences_all_removed ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_vm_service_stdout ... ok [INFO] [stdout] test parser::structured::tests::dom_014_all_levels_recognized ... ok [INFO] [stdout] test parser::structured::tests::emoji_in_message_parses ... ok [INFO] [stdout] test parser::structured::tests::dom_015_strips_ansi_in_vm_stdout_format ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_with_epoch_timestamp ... ok [INFO] [stdout] test parser::structured::tests::cjk_tag_and_message_parse ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_with_epoch_timestamp ... ok [INFO] [stdout] test parser::structured::tests::dom_014_unknown_level_falls_back_to_debug ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_with_epoch_timestamp_spaces ... ok [INFO] [stdout] test parser::structured::tests::empty_message_after_bracket_parses ... ok [INFO] [stdout] test parser::structured::tests::parser_name_is_structured ... ok [INFO] [stdout] test parser::structured::tests::dom_015_strips_ansi_in_bracket_format ... ok [INFO] [stdout] test parser::structured::tests::source_is_direct_socket ... ok [INFO] [stdout] test parser::tests::dom_013_default_chain_has_three_strategies ... ok [INFO] [stdout] test parser::structured::tests::strips_ansi ... ok [INFO] [stdout] test parser::structured::tests::parse_bracket_with_flutter_prefix ... ok [INFO] [stdout] test parser::structured::tests::whitespace_only_returns_none ... ok [INFO] [stdout] test parser::structured::tests::mismatched_bracket_rejected ... ok [INFO] [stdout] test parser::structured::tests::pipe_without_timestamp_still_parses ... ok [INFO] [stdout] test parser::structured::tests::only_ansi_escape_returns_none ... ok [INFO] [stdout] test parser::structured::tests::empty_line_returns_none ... ok [INFO] [stdout] test parser::tests::dom_013_fully_empty_line_produces_ignored ... ok [INFO] [stdout] test parser::structured::tests::unterminated_bracket_rejected ... ok [INFO] [stdout] test parser::tests::dom_013_generic_wins_when_structured_rejects ... ok [INFO] [stdout] test parser::tests::dom_013_parse_result_ignored_is_observable ... ok [INFO] [stdout] test parser::tests::dom_013_keyword_wins_when_first_two_reject ... ok [INFO] [stdout] test parser::structured::tests::parse_pipe_format ... ok [INFO] [stdout] test parser::structured::tests::ignores_non_flutter ... ok [INFO] [stdout] test parser::tests::dom_013_fall_through_structured_then_generic_then_keyword ... ok [INFO] [stdout] test parser::tests::dom_013_multibyte_utf8_message_passes_through ... ok [INFO] [stdout] test parser::tests::with_strategies_empty_chain_returns_ignored ... ok [INFO] [stdout] test parser::util::tests::ansi_re_is_shared_instance ... ok [INFO] [stdout] test parser::tests::dom_013_parse_returns_new_entry_for_known_format ... ok [INFO] [stdout] test parser::tests::dom_013_structured_intercepts_before_generic_on_pipe_format ... ok [INFO] [stdout] test parser::tests::dom_013_structured_wins_on_bracket_format ... ok [INFO] [stdout] test parser::tests::with_strategies_preserves_order_and_delegates_to_first_match ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_handles_empty ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_passes_through_when_no_codes ... ok [INFO] [stdout] test replay::tests::replay_module_compiles_smoke ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_removes_csi_color ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_handles_multiple_codes_in_one_line ... ok [INFO] [stdout] test run::tests::dispatch_hello_is_noop_on_store ... ok [INFO] [stdout] test run::tests::dispatch_log_structured_preserves_level_and_tag ... ok [INFO] [stdout] test parser::util::tests::strip_ansi_only_strips_csi_not_other_escapes ... ok [INFO] [stdout] test run::tests::dispatch_log_unknown_level_falls_back_to_info ... ok [INFO] [stdout] test run::tests::dispatch_net_routes_to_network_store ... ok [INFO] [stdout] test run::tests::format_ts_format_shape ... ok [INFO] [stdout] test run::tests::format_ts_zero_matches_chrono_local ... ok [INFO] [stdout] test run::tests::format_ts_ms_preserved_matches_chrono_local ... ok [INFO] [stdout] test session::tests::apply_unknown_active_tab_falls_back_to_logs ... ok [INFO] [stdout] test session::tests::dom_021_every_level_variant_roundtrips ... ok [INFO] [stdout] test session::tests::dom_021_out_of_range_level_u8_maps_to_system ... ok [INFO] [stdout] test session::tests::dom_022_empty_tag_filter_does_not_trigger_parse ... ok [INFO] [stdout] test session::tests::dom_022_mixed_include_exclude ... ok [INFO] [stdout] test session::tests::dom_022_tag_exclude_only ... ok [INFO] [stdout] test run::tests::split_stacktrace_no_frames ... ok [INFO] [stdout] test run::tests::reconnect_backoff_constants_match_documented_values ... ok [INFO] [stdout] test run::tests::split_stacktrace_empty_body ... ok [INFO] [stdout] test session::tests::dom_022_tag_include_only ... ok [INFO] [stdout] test run::tests::split_stacktrace_finds_first_frame ... ok [INFO] [stdout] test session::tests::load_error_does_not_mutate_app ... ok [INFO] [stdout] test session::tests::file_roundtrip_preserves_all_fields ... ok [INFO] [stdout] test session::tests::load_from_corrupted_file_returns_parse_err ... ok [INFO] [stdout] test session::tests::load_session_does_not_panic_on_missing_config ... ok [INFO] [stdout] test session::tests::roundtrip_active_tab_network ... ok [INFO] [stdout] test session::tests::roundtrip_bookmarks_dedupe_via_btreeset ... ok [INFO] [stdout] test session::tests::roundtrip_bookmarks_preserved_and_sorted ... ok [INFO] [stdout] test session::tests::roundtrip_empty_session ... ok [INFO] [stdout] test session::tests::file_roundtrip_empty_session ... ok [INFO] [stdout] test parser::tests::dom_013_unparseable_junk_routes_to_keyword ... ok [INFO] [stdout] test session::tests::load_from_missing_file_returns_io_err ... ok [INFO] [stdout] test session::tests::roundtrip_level_filter_warning ... ok [INFO] [stdout] test parser::structured::tests::very_long_message_parses ... ok [INFO] [stdout] test session::tests::dom_022_tag_filter_regex_glob_roundtrips_input_string ... ok [INFO] [stdout] test session::tests::roundtrip_exclude_query ... ok [INFO] [stdout] test session::tests::roundtrip_search_query ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_increments_by_one ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_within_pool_base ... ok [INFO] [stdout] test transport::adb::tests::adb_local_port_pool_constants_have_expected_values ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_wraps_around_range ... ok [INFO] [stdout] test transport::adb::tests::allocate_local_port_advances_counter ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_already_upper_is_noop ... ok [INFO] [stdout] test transport::adb::tests::next_local_port_stays_in_19753_29752_band ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_empty_is_empty ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_basic_ascii ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_avd_only ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::capitalize_first_multibyte_char ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_api_only ... ok [INFO] [stdout] test run::tests::raw_log_re_matches_first_line_of_multiline ... ok [INFO] [stdout] test run::tests::raw_log_re_rejects_full_multiline_input ... ok [INFO] [stdout] test run::tests::dispatch_log_raw_pattern_matches_structured_tag ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_neither ... ok [INFO] [stdout] test run::tests::dispatch_log_unstructured_uses_debugprint_tag ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_empty_frame_ok ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_truncated_header_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_non_hex_header_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_truncated_body_returns_none ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::emulator_name_both_present_underscores_replaced ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_ignores_offline_and_unauthorized ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_malformed_line_is_skipped ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_model_concatenated ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_model_deduped ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_brand_only_capitalized ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_model_only ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::real_device_name_nothing_uses_serial ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::device_name_falls_back_when_app_and_os_empty ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_frame_parses_single_frame ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_when_first_frame_is_binary ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_on_malformed_json ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::is_port_open_false_when_nothing_listens ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_finds_first_booted ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_missing_name_returns_none ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::device_name_uses_app_for_non_ios_os ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_none_when_type_field_wrong ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_removed_when_device_disappears ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_on_malformed_json ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::is_port_open_true_when_listener_bound ... ok [INFO] [stdout] test transport::device_monitor::adb_source::tests::read_stream_emits_added_for_online_device ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::handshake_returns_some_on_valid_hello ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_skips_non_array_runtime ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::tcp_open_detects_listener ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::tcp_open_returns_none_when_no_listener ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_when_no_booted ... ok [INFO] [stdout] test transport::device_monitor::local_source::tests::parse_simctl_booted_returns_none_on_empty_devices ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::add_emits_once_per_id ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::connection_method_maps_device_kind ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::removed_since_empty_when_snapshot_equals_known ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::device_event_debug_is_stable ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::drain_emits_removed_for_every_known_and_clears ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::remove_after_add_emits_removed ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::remove_unknown_id_is_silent ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::contains_reflects_add_remove ... ok [INFO] [stdout] test transport::resolve::tests::resolve_localhost_produces_localhost_variant ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_active_empty_shows_only_cursor ... ok [INFO] [stdout] test transport::resolve::tests::resolve_ios_usb_produces_usbmuxd_with_device_id ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_custom_palette_propagates_to_cells ... ok [INFO] [stdout] test transport::device_monitor::tracker_tests::removed_since_computes_delta_correctly ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_bg_active_is_surface1 ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_idle_empty_shows_hint ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_hit_x_covers_label ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_long_text_truncates_with_ellipsis_when_idle ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_idle_with_text_yellow_fg ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_narrow_fallback ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_active_shows_underscore_cursor ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_bg_idle_is_surface0 ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_cursor_at_start_no_left_ellipsis ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_keeps_cursor_visible ... ok [INFO] [stdout] test transport::resolve::tests::resolve_android_produces_adb_forward_with_serial ... ok [INFO] [stdout] test ui::input_field::tests::render_input_field_used_width_consistent_with_hit_x ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_wide_char_no_overflow ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_active_cursor_in_middle ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_blank_line_passes_through ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_idle_exact_fit_no_ellipsis ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_short_fits ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_zero_box ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_array_brackets_uses_brace_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_deep_nesting_beyond_palette_wraps ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_empty_string_returns_single_empty_line ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_escape_in_unterminated_string_on_continuing_line ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_exponent_number ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_falsey_is_not_keyword ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_float ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_multiline_json ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_negative_number ... ok [INFO] [stdout] test ui::input_field::tests::visible_window_idle_truncates_tail ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_key_with_whitespace_before_colon ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_nested_object_uses_depth_colors ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_integer ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_null_uses_null_color_and_italic ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_negative_not_followed_by_digit_is_text ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_malformed_json_passes_through ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_string_value_uses_str_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_string_with_escape ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_truely_is_not_keyword ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_unterminated_string_enters_multiline_state ... ok [INFO] [stdout] test ui::help::tests::help_content_bg_uses_shared_base_palette ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_nullable_is_not_keyword ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_preserves_surrounding_non_json_text ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_simple_key_value_object ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_tab_and_cr_in_whitespace ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_true_and_false_use_bool_color ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_unterminated_string_middle_of_line ... ok [INFO] [stdout] test ui::json_viewer::colorize::tests::colorize_whitespace_runs_grouped_as_default ... ok [INFO] [stdout] test ui::json_viewer::render::tests::array_of_objects_alignment ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_array_shows_length_suffix ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_is_clickable ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_shows_summary ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_array_fits_within_max_width ... ok [INFO] [stdout] test ui::json_viewer::render::tests::empty_object_not_foldable ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_number ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_string_short ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_string_truncated ... ok [INFO] [stdout] test ui::json_viewer::state::tests::init_depth_zero_only_root ... ok [INFO] [stdout] test ui::json_viewer::state::tests::init_expands_within_depth ... ok [INFO] [stdout] test ui::json_viewer::render::tests::nested_container_in_summary_shows_placeholder ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_null ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_flips_container ... ok [INFO] [stdout] test ui::json_viewer::render::tests::nested_expansion_with_collapsed_grandchild ... ok [INFO] [stdout] test ui::json_viewer::render::tests::expanded_root_object_renders_children ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_out_of_bounds_is_noop ... ok [INFO] [stdout] test ui::json_viewer::state::tests::toggle_leaf_is_noop ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::number_preserves_string_form ... ok [INFO] [stdout] test ui::json_viewer::render::tests::collapsed_object_fits_within_max_width ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_empty_containers ... ok [INFO] [stdout] test ui::json_viewer::render::tests::leaf_bool ... ok [INFO] [stdout] test parser::structured::tests::tag_with_trailing_whitespace_trimmed ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_invalid_json ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_flat_object ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_nested_array ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::heading_renderer_emits_blank_then_rule ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_splits_frame_into_spans ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_handles_collapsed_row ... ok [INFO] [stdout] test ui::logs::detail::section::tests::error_heading_then_prose ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::stack_renderer_dims_sdk_frames ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_preserves_object_key_order ... ok [INFO] [stdout] test ui::json_viewer::tree::tests::parse_primitive_root ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::sdk_frame_classifier ... ok [INFO] [stdout] test ui::logs::detail::section::tests::json_path_produces_prose_json_prose ... ok [INFO] [stdout] test ui::logs::detail::section::tests::prose_only ... ok [INFO] [stdout] test ui::logs::jump::tests::hidden_when_auto_scroll ... ok [INFO] [stdout] test ui::logs::jump::tests::label_no_new ... ok [INFO] [stdout] test ui::logs::detail::section::tests::splits_heading_and_stack ... ok [INFO] [stdout] test ui::logs::jump::tests::label_with_new ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_caps_at_max_wrap_lines ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_separator_is_three ... ok [INFO] [stdout] test ui::logs::tests::entry_row_count_short_message_one_row ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_zero_width ... ok [INFO] [stdout] test ui::logs::tests::visible_start_clamps_to_total_when_offset_too_large ... ok [INFO] [stdout] test ui::logs::jump::tests::shown_when_paused ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_zero_count ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_saturates_at_50 ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_clamps_start ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_empty ... ok [INFO] [stdout] test ui::network::tests::test_duration_color ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_layout_cache_populates_tab_click_regions ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_logs_active_has_blue_pill_bg ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_narrow_terminal_still_renders_no_panic ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_network_active_has_blue_pill_bg_and_logs_inactive ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_shows_both_tab_labels ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_hit_regions_ordered_correctly ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_tall_terminal_only_renders_first_row ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_android_app_shows_platform_pill ... ok [INFO] [stdout] test ui::logs::tests::repeat_bar_normalized_proportional ... ok [INFO] [stdout] test ui::logs::tests::visible_start_zero_total ... ok [INFO] [stdout] test ui::logs::tests::visible_start_within_bounds ... ok [INFO] [stdout] test ui::logs::tests::visible_start_equals_offset_when_offset_lt_total ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_basic_window ... ok [INFO] [stdout] test ui::network::tests::network_visible_range_clamps_end ... ok [INFO] [stdout] test ui::tests::draw_separator_rule_renders_horizontal_line ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_unknown_os_shows_sim_platform ... ok [INFO] [stdout] test parser::tests::dom_013_very_long_line_does_not_panic ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_with_ios_app_shows_ios_platform ... ok [INFO] [stdout] test ui::tests::safe_pad_shorter_than_width_pads_spaces ... ok [INFO] [stdout] test ui::tab_bar::tests::tab_bar_zero_height_no_panic_returns_early ... ok [INFO] [stdout] test ui::tests::safe_truncate_cjk_width_aware ... ok [INFO] [stdout] test ui::tests::safe_pad_cjk_truncates_by_display_width ... ok [INFO] [stdout] test ui::tests::safe_pad_exactly_width_returns_unchanged ... ok [INFO] [stdout] test ui::tests::safe_pad_longer_than_width_truncates_no_ellipsis ... ok [INFO] [stdout] test ui::tests::wrap_multiline_preserves_blank_lines ... ok [INFO] [stdout] test ui::tests::safe_truncate_short_enough_returns_unchanged ... ok [INFO] [stdout] test ui::tests::safe_pad_cjk_respects_display_width ... ok [INFO] [stdout] test ui::tests::safe_truncate_long_cuts_and_ellipses ... ok [INFO] [stdout] test ui::tests::wrap_multiline_respects_line_cap ... ok [INFO] [stdout] test ui::tests::safe_truncate_zero_width_returns_empty ... ok [INFO] [stdout] test ui::tests::safe_truncate_exactly_fits ... ok [INFO] [stdout] test ui::tests::wrap_multiline_leading_newline_preserves_blank ... ok [INFO] [stdout] test ui::tests::wrap_multiline_wraps_inside_long_segment ... ok [INFO] [stdout] test ui::tests::wrap_multiline_splits_on_newline ... ok [INFO] [stdout] test ui::tests::wrap_text_splits_on_width_boundary ... ok [INFO] [stdout] test ui::tests::wrap_text_empty_string_yields_one_empty_line ... ok [INFO] [stdout] test ui::tests::wrap_multiline_zero_lines_returns_empty ... ok [INFO] [stdout] test ui::tests::wrap_multiline_zero_width_returns_empty ... ok [INFO] [stdout] test ui::tests::wrap_text_exactly_width_one_line ... ok [INFO] [stdout] test ui::tests::wrap_text_zero_max_lines_returns_empty_placeholder ... ok [INFO] [stdout] test ui::text_editor::tests::backspace_with_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::click_with_wide_char_maps_screen_col_to_byte ... ok [INFO] [stdout] test ui::text_editor::tests::ensure_cursor_visible_zero_height_no_op ... ok [INFO] [stdout] test ui::tests::wrap_text_max_lines_cap_with_ellipsis ... ok [INFO] [stdout] test ui::tests::wrap_text_zero_width_returns_empty_placeholder ... ok [INFO] [stdout] test ui::text_editor::tests::delete_with_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::move_left_at_start_no_change ... ok [INFO] [stdout] test ui::text_editor::tests::insert_multibyte_char ... ok [INFO] [stdout] test ui::text_editor::tests::move_right_across_multibyte ... ok [INFO] [stdout] test ui::text_editor::tests::move_end_on_empty_line ... ok [INFO] [stdout] test ui::text_editor::tests::paste_empty_string_is_single_empty_fragment ... ok [INFO] [stdout] test ui::tests::draw_top_level_dispatches_logs_tab ... ok [INFO] [stdout] test ui::text_editor::tests::paste_multiline_three_parts_middle_inserted ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_at_start_of_first_line ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_line_merge ... ok [INFO] [stdout] test ui::text_editor::tests::test_backspace_middle ... ok [INFO] [stdout] test ui::text_editor::tests::test_cursor_movement ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_at_cursor ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_at_end_of_last_line ... ok [INFO] [stdout] test ui::text_editor::tests::test_click_clamp ... ok [INFO] [stdout] test ui::text_editor::tests::move_left_across_multibyte ... ok [INFO] [stdout] test ui::tests::draw_top_level_dispatches_network_tab ... ok [INFO] [stdout] test ui::text_editor::tests::test_insert_newline ... ok [INFO] [stdout] test ui::text_editor::tests::test_delete_line_merge ... ok [INFO] [stdout] test ui::text_editor::tests::test_insert_char ... ok [INFO] [stdout] test domain::store::tests::dom_011_add_entry_200k_identical_stays_tiny ... ok [INFO] [stdout] test ui::text_editor::tests::test_lines_never_empty ... ok [INFO] [stdout] test ui::text_editor::tests::test_new_empty ... ok [INFO] [stdout] test ui::text_editor::tests::test_new_multiline ... ok [INFO] [stdout] test ui::text_editor::tests::test_paste_multiline ... ok [INFO] [stdout] test ui::text_editor::tests::test_scroll ... ok [INFO] [stdout] test ui::text_editor::tests::test_to_string ... ok [INFO] [stdout] test ui::text_editor::tests::test_paste_single_line ... ok [INFO] [stderr] Running tests/characterization_app_state.rs (/opt/rustwide/target/debug/deps/characterization_app_state-138df44482c144a1) [INFO] [stdout] test domain::store::tests::drain_on_full_evicts_one_at_a_time ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_renders_single_line ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_auto_highlights_error_rest ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_colors_error_prefix ... ok [INFO] [stdout] test ui::logs::detail::renderers::tests::prose_auto_highlights_http_line ... ok [INFO] [stdout] test domain::store::tests::drain_at_exact_capacity_triggers_on_next_add ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 743 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 157 tests [INFO] [stdout] test add_connected_app_second_does_not_swap_active ... ok [INFO] [stdout] test add_connected_app_reconnect_keeps_active_and_resets_session ... ok [INFO] [stdout] test add_entry_happy_populates_store_and_dirties_filter ... ok [INFO] [stdout] test add_entry_many_within_cap_does_not_drain ... ok [INFO] [stdout] test add_entry_with_paused_auto_scroll_increments_new_logs ... ok [INFO] [stdout] test add_entry_network_tagged_routes_to_network_store ... ok [INFO] [stdout] test app_mode_help_vs_stats_vs_normal_distinct ... ok [INFO] [stdout] test add_entry_empty_store_start_is_clean ... ok [INFO] [stdout] test add_entry_flog_net_tag_with_bad_json_falls_back_to_log_path ... ok [INFO] [stdout] test active_status_is_none_when_never_set ... ok [INFO] [stdout] test app_mode_input_active_per_field_is_distinct ... ok [INFO] [stdout] test active_status_edge_exactly_at_expiry_is_none ... ok [INFO] [stdout] test add_connected_app_first_activates_and_updates_source_name ... ok [INFO] [stdout] test add_connected_app_empty_version_omits_v ... ok [INFO] [stdout] test app_new_has_connected_client_false ... ok [INFO] [stdout] test app_new_starts_with_default_layout_cache ... ok [INFO] [stdout] test app_new_no_active_status ... ok [INFO] [stdout] test apply_input_field_log_search_updates_filter ... ok [INFO] [stdout] test apply_input_field_log_tag_parses_include ... ok [INFO] [stdout] test apply_input_field_net_exclude_updates_network_filter ... ok [INFO] [stdout] test cancel_mock_edit_from_normal_still_returns_normal ... ok [INFO] [stdout] test cancel_mock_edit_discards_changes ... ok [INFO] [stdout] test app_new_filter_dirty_triggers_lazy_build ... ok [INFO] [stdout] test clear_all_filters_on_clean_state_is_noop ... ok [INFO] [stdout] test clear_logs_also_clears_bookmarks ... ok [INFO] [stdout] test clear_logs_resets_store_and_state ... ok [INFO] [stdout] test detail_scroll_down_advances ... ok [INFO] [stdout] test clear_logs_shows_status_message ... ok [INFO] [stdout] test auto_scroll_for_tab_reads_correct_flag_per_tab ... ok [INFO] [stdout] test discovered_devices_tracked_via_field ... ok [INFO] [stdout] test clear_all_filters_resets_and_invalidates ... ok [INFO] [stdout] test app_default_equals_new ... ok [INFO] [stdout] test enter_help_from_input_mode_replaces ... ok [INFO] [stdout] test clear_logs_on_empty_is_idempotent ... ok [INFO] [stdout] test enter_help_clears_layout_last_click ... ok [INFO] [stdout] test enter_help_then_exit_round_trip ... ok [INFO] [stdout] test enter_input_field_log_exclude_seeds ... ok [INFO] [stdout] test apply_input_field_log_exclude_updates_filter ... ok [INFO] [stdout] test enter_input_field_log_search_sets_mode ... ok [INFO] [stdout] test app_new_has_clean_defaults ... ok [INFO] [stdout] test enter_input_field_log_tag_composes_include_and_exclude ... ok [INFO] [stdout] test bookmarks_survive_filter_change ... ok [INFO] [stdout] test enter_input_field_log_search_seeds_from_filter ... ok [INFO] [stdout] test detail_scroll_up_after_down_comes_back ... ok [INFO] [stdout] test detail_scroll_up_saturates ... ok [INFO] [stdout] test enter_mock_edit_unknown_id_is_noop ... ok [INFO] [stdout] test enter_input_field_does_not_overwrite_nonempty_buffer ... ok [INFO] [stdout] test enter_input_field_net_search_seeds_from_network_filter ... ok [INFO] [stdout] test enter_input_field_net_exclude_seeds ... ok [INFO] [stdout] test exit_input_field_is_idempotent_from_normal ... ok [INFO] [stdout] test enter_mock_edit_invalid_json_body_passes_through ... ok [INFO] [stdout] test enter_mock_edit_none_method_yields_star ... ok [INFO] [stdout] test enter_mock_edit_populates_fields_from_rule ... ok [INFO] [stdout] test enter_mock_rules_toggles_off_when_already_showing ... ok [INFO] [stdout] test exit_stats_clears_snapshot ... ok [INFO] [stdout] test enter_mock_rules_hides_detail_when_showing_rules ... ok [INFO] [stdout] test enter_mock_rules_with_client_toggles_panel_on ... ok [INFO] [stdout] test enter_mock_rules_without_client_shows_status ... ok [INFO] [stdout] test enter_network_stats_does_not_snapshot ... ok [INFO] [stdout] test exit_input_field_returns_to_normal ... ok [INFO] [stdout] test get_active_handle_some_when_connected ... ok [INFO] [stdout] test go_bottom_then_go_top_then_go_bottom_round_trip ... ok [INFO] [stdout] test filtered_indices_returns_slice_of_rebuilt ... ok [INFO] [stdout] test get_active_handle_none_when_no_active ... ok [INFO] [stdout] test go_top_resets_and_disables_auto_scroll ... ok [INFO] [stdout] test export_logs_writes_file_and_shows_status ... ok [INFO] [stdout] test input_buffers_buffer_mut_writes_per_field ... ok [INFO] [stdout] test input_buffers_defaults_are_empty ... ok [INFO] [stdout] test enter_stats_snapshots_data ... ok [INFO] [stdout] test filter_clamps_selected_when_filter_reduces_len ... ok [INFO] [stdout] test filter_zero_match_resets_selected_and_offset ... ok [INFO] [stdout] test filtered_count_after_add_reflects_new_count ... ok [INFO] [stdout] test filtered_count_cache_stable_between_calls ... ok [INFO] [stdout] test filtered_count_empty_store_is_zero ... ok [INFO] [stdout] test go_bottom_enables_auto_scroll ... ok [INFO] [stdout] test input_field_tab_logs_variants_return_logs ... ok [INFO] [stdout] test export_logs_on_empty_still_shows_status ... ok [INFO] [stdout] test filtered_count_rebuilds_after_invalidate ... ok [INFO] [stdout] test input_buffers_cursor_mut_writes_per_field ... ok [INFO] [stdout] test input_field_tab_net_variants_return_network ... ok [INFO] [stdout] test insert_separator_adds_system_entry ... ok [INFO] [stdout] test layout_cache_default_is_all_zeroed ... ok [INFO] [stdout] test invalidate_filter_triggers_next_rebuild ... ok [INFO] [stdout] test insert_separator_shows_status ... ok [INFO] [stdout] test mock_edit_state_new_blank_has_no_rule_id_and_empty_fields ... ok [INFO] [stdout] test is_bookmarked_false_by_default ... ok [INFO] [stdout] test mock_edit_state_from_rule_populates_all_fields ... ok [INFO] [stdout] test mock_edit_state_from_rule_none_method_becomes_star_and_non_json_passes_through ... ok [INFO] [stdout] test move_down_empty_is_no_op ... ok [INFO] [stdout] test move_down_clamps_to_len_minus_one ... ok [INFO] [stdout] test move_up_empty_is_no_op ... ok [INFO] [stdout] test move_up_from_bottom_disables_auto_scroll ... ok [INFO] [stdout] test network_move_down_empty_count_noop ... ok [INFO] [stdout] test network_move_up_disables_auto_scroll ... ok [INFO] [stdout] test network_go_top_resets ... ok [INFO] [stdout] test network_go_bottom_enables_auto_scroll ... ok [INFO] [stdout] test network_move_up_saturates_at_zero ... ok [INFO] [stdout] test network_move_down_clamps_to_len ... ok [INFO] [stdout] test network_select_down_clamps ... ok [INFO] [stdout] test network_state_default_equals_new ... ok [INFO] [stdout] test network_select_down_empty_is_noop ... ok [INFO] [stdout] test network_state_filter_cache_stable ... ok [INFO] [stdout] test network_select_up_clears_json_viewer_states ... ok [INFO] [stdout] test network_state_filtered_indices_empty_store ... ok [INFO] [stdout] test network_state_filtered_indices_populated_store ... ok [INFO] [stdout] test next_match_empty_matches_is_noop ... ok [INFO] [stdout] test next_match_advances_to_next_after_selected ... ok [INFO] [stdout] test next_match_wraps_to_zero_after_last ... ok [INFO] [stdout] test prev_match_moves_to_previous ... ok [INFO] [stdout] test prev_match_wraps_when_at_start ... ok [INFO] [stdout] test remove_connected_app_active_promotes_next ... ok [INFO] [stdout] test network_state_invalidate_forces_rebuild ... ok [INFO] [stdout] test network_select_up_stays_when_in_viewport ... ok [INFO] [stdout] test network_state_cache_rebuilds_only_on_invalidation ... ok [INFO] [stdout] test remove_connected_app_nonactive_keeps_active ... ok [INFO] [stdout] test remove_connected_app_unknown_is_noop ... ok [INFO] [stdout] test remove_connected_app_last_clears_active ... ok [INFO] [stdout] test save_mock_edit_bad_delay_parses_fallback_0 ... ok [INFO] [stdout] test reset_detail_for_selection_clears_viewer ... ok [INFO] [stdout] test prev_match_empty_is_noop ... ok [INFO] [stdout] test save_mock_edit_bad_status_parses_fallback_200 ... ok [INFO] [stdout] test save_mock_edit_preserves_body_content ... ok [INFO] [stdout] test save_mock_edit_without_rule_id_still_exits_mode ... ok [INFO] [stdout] test save_mock_edit_updates_rule_and_exits_mode ... ok [INFO] [stdout] test select_down_clamps_at_end ... ok [INFO] [stdout] test select_down_empty_is_no_op ... ok [INFO] [stdout] test select_up_empty_still_zero ... ok [INFO] [stdout] test selected_store_index_out_of_range_returns_none ... ok [INFO] [stdout] test selected_store_index_empty_returns_none ... ok [INFO] [stdout] test selected_store_index_points_to_filtered_entry ... ok [INFO] [stdout] test set_level_round_trip_error_then_system ... ok [INFO] [stdout] test set_level_updates_and_invalidates ... ok [INFO] [stdout] test show_status_replaces_previous ... ok [INFO] [stdout] test set_level_to_same_value_still_invalidates ... ok [INFO] [stdout] test select_up_stays_when_still_in_viewport ... ok [INFO] [stdout] test show_status_respects_tick_offset ... ok [INFO] [stdout] test sse_path_segment_key_and_index_values ... ok [INFO] [stdout] test select_up_follows_viewport_if_above ... ok [INFO] [stdout] test show_status_sets_active_then_expires ... ok [INFO] [stdout] test switch_tab_logs_to_network ... ok [INFO] [stdout] test switch_tab_preserves_filter_state ... ok [INFO] [stdout] test switch_tab_network_to_logs ... ok [INFO] [stdout] test switch_tab_preserves_selected_and_scroll ... ok [INFO] [stdout] test switch_tab_same_is_idempotent ... ok [INFO] [stdout] test switch_to_app_already_active_is_noop ... ok [INFO] [stdout] test switch_to_app_to_other_resets_session_and_changes_active ... ok [INFO] [stdout] test switch_to_app_unknown_id_is_noop ... ok [INFO] [stdout] test toggle_bookmark_multiple_entries ... ok [INFO] [stdout] test toggle_detail_fold_without_tree_is_noop ... ok [INFO] [stdout] test toggle_bookmark_on_empty_store_is_noop ... ok [INFO] [stdout] test toggle_detail_panel_flips_flag ... ok [INFO] [stdout] test update_source_name_uses_discovered_device_name_over_hello ... ok [INFO] [stdout] test toggle_bookmark_adds_then_removes ... ok [INFO] [stdout] test sse_merge_rule_clone_retains_path ... ok [INFO] [stdout] test apply_input_field_net_search_updates_network_filter ... ok [INFO] [stdout] test network_state_new_defaults ... ok [INFO] [stdout] test move_up_at_top_saturates_at_zero ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 157 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/characterization_bugs.rs (/opt/rustwide/target/debug/deps/characterization_bugs-6beaa8947b93f567) [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test trans_007_tcp_open_correct_behavior ... ok [INFO] [stdout] test dom_003_response_without_request_should_not_drop_silently ... ok [INFO] [stdout] test dom_018_search_positions_overlapping_or_terms_on_shared_text ... ok [INFO] [stdout] test dom_018_search_positions_no_overlapping_ranges ... ok [INFO] [stdout] test ui_042_b_round_trip_toggle_clears_both_modes ... ok [INFO] [stdout] test ui_042_a_chat_to_raw_toggle_clears_mode_specific_collapse_keys ... ok [INFO] [stdout] test ui_042_c_unrelated_keys_survive_toggle ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/characterization_event_keys.rs (/opt/rustwide/target/debug/deps/characterization_event_keys-a27210eeb897aaab) [INFO] [stdout] [INFO] [stdout] running 107 tests [INFO] [stdout] test ui_007_help_q_dismisses ... ok [INFO] [stdout] test ui_007_logs_ctrl_c_quits ... ok [INFO] [stdout] test ui_007_device_picker_unbound_key_is_noop ... ok [INFO] [stdout] test ui_007_logs_backslash_enters_exclude_input ... ok [INFO] [stdout] test ui_007_device_picker_down_arrow_bounds ... ok [INFO] [stdout] test ui_007_help_unrelated_key_noop ... ok [INFO] [stdout] test ui_007_device_picker_esc_closes ... ok [INFO] [stdout] test ui_007_device_picker_k_moves_selection_up ... ok [INFO] [stdout] test ui_007_logs_down_arrow_selects_next ... ok [INFO] [stdout] test ui_007_device_picker_j_moves_selection_down ... ok [INFO] [stdout] test ui_007_logs_big_s_enters_stats ... ok [INFO] [stdout] test ui_007_help_esc_dismisses ... ok [INFO] [stdout] test ui_007_device_picker_up_arrow_saturates_at_zero ... ok [INFO] [stdout] test ui_007_logs_e_export_logs ... ok [INFO] [stdout] test ui_007_logs_enter_toggles_detail_panel ... ok [INFO] [stdout] test ui_007_logs_esc_clears_all_filters ... ok [INFO] [stdout] test ui_007_logs_q_quits ... ok [INFO] [stdout] test ui_007_logs_s_enters_select_mode ... ok [INFO] [stdout] test ui_007_device_picker_enter_without_tx_closes ... ok [INFO] [stdout] test ui_007_logs_shift_n_prev_match_noop_when_empty ... ok [INFO] [stdout] test ui_007_logs_tab_2_switches_to_network ... ok [INFO] [stdout] test ui_007_logs_j_at_bottom_stays ... ok [INFO] [stdout] test ui_007_logs_j_selects_next ... ok [INFO] [stdout] test ui_007_logs_k_at_top_stays ... ok [INFO] [stdout] test ui_007_logs_n_next_match_noop_when_empty ... ok [INFO] [stdout] test ui_007_logs_question_enters_help ... ok [INFO] [stdout] test ui_007_logs_up_arrow_selects_prev ... ok [INFO] [stdout] test ui_007_logs_slash_enters_search_input ... ok [INFO] [stdout] test ui_007_network_backslash_enters_exclude_input ... ok [INFO] [stdout] test ui_007_logs_k_selects_prev ... ok [INFO] [stdout] test ui_007_logs_unbound_key_is_noop ... ok [INFO] [stdout] test ui_007_logs_c_copy_current_log ... ok [INFO] [stdout] test ui_007_network_ctrl_c_quits ... ok [INFO] [stdout] test ui_007_network_ctrl_m_opens_mock_rules_panel_if_connected ... ok [INFO] [stdout] test ui_007_network_big_m_mock_without_client_shows_status ... ok [INFO] [stdout] test ui_007_network_k_selects_prev ... ok [INFO] [stdout] test ui_007_network_enter_toggles_detail ... ok [INFO] [stdout] test ui_007_network_question_enters_help ... ok [INFO] [stdout] test ui_007_network_down_arrow_selects_next ... ok [INFO] [stdout] test ui_007_network_r_replay_without_client_noop ... ok [INFO] [stdout] test ui_007_network_j_selects_next ... ok [INFO] [stdout] test ui_007_network_big_s_enters_stats ... ok [INFO] [stdout] test ui_007_network_q_quits ... ok [INFO] [stdout] test ui_007_network_esc_in_sse_merged_exits_merged_mode ... ok [INFO] [stdout] test ui_007_network_s_enters_select_mode ... ok [INFO] [stdout] test ui_007_network_slash_enters_search_input ... ok [INFO] [stdout] test ui_007_network_unbound_key_is_noop ... ok [INFO] [stdout] test ui_007_stats_esc_dismisses ... ok [INFO] [stdout] test ui_007_network_y_copy_response ... ok [INFO] [stdout] test ui_007_stats_unrelated_key_noop ... ok [INFO] [stdout] test ui_007_stats_q_dismisses ... ok [INFO] [stdout] test ui_007_network_tab_1_switches_to_logs ... ok [INFO] [stdout] test ui_007_network_tab_2_stays ... ok [INFO] [stdout] test ui_007_network_big_c_collapses_all_but_root ... ok [INFO] [stdout] test ui_007_network_big_e_expands_all_json_sections ... ok [INFO] [stdout] test ui_020_input_arrow_left_is_unhandled_noop ... ok [INFO] [stdout] test ui_020_input_arrow_right_is_unhandled_noop ... ok [INFO] [stdout] test ui_020_input_backspace_deletes_last_char ... ok [INFO] [stdout] test ui_007_network_c_copy_as_curl ... ok [INFO] [stdout] test ui_008_sse_merged_k_saturates_at_zero ... ok [INFO] [stdout] test ui_008_sse_merged_j_saturates_at_max ... ok [INFO] [stdout] test ui_008_sse_merged_j_advances_field_idx ... ok [INFO] [stdout] test ui_008_sse_merged_down_arrow_behaves_like_j ... ok [INFO] [stdout] test ui_008_sse_merged_k_decrements_field_idx ... ok [INFO] [stdout] test ui_008_sse_merged_up_arrow_behaves_like_k ... ok [INFO] [stdout] test ui_020_input_backspace_on_empty_is_noop ... ok [INFO] [stdout] test ui_020_input_net_exclude_field_typing ... ok [INFO] [stdout] test ui_024_logs_home_jumps_to_top ... ok [INFO] [stdout] test ui_024_logs_pagedown_advances_by_20 ... ok [INFO] [stdout] test ui_007_logs_select_mode_any_key_exits ... ok [INFO] [stdout] test ui_020_input_char_applies_to_filter ... ok [INFO] [stdout] test ui_020_input_enter_commits_and_exits ... ok [INFO] [stdout] test ui_020_input_char_appends_to_buffer ... ok [INFO] [stdout] test ui_020_input_esc_exits_to_normal ... ok [INFO] [stdout] test ui_020_input_log_exclude_field_typing ... ok [INFO] [stdout] test ui_020_input_log_tag_field_typing ... ok [INFO] [stdout] test ui_024_network_home_resets_selection ... ok [INFO] [stdout] test ui_mock_edit_backtab_cycles_field_backward ... ok [INFO] [stdout] test ui_020_input_net_search_field_typing ... ok [INFO] [stdout] test ui_024_logs_end_enables_autoscroll ... ok [INFO] [stdout] test ui_024_network_pageup_moves_by_20 ... ok [INFO] [stdout] test ui_024_network_pagedown_moves_by_20 ... ok [INFO] [stdout] test ui_mock_edit_backspace_on_empty_field_noop ... ok [INFO] [stdout] test ui_024_logs_pageup_retreats_by_20 ... ok [INFO] [stdout] test ui_mock_edit_backspace_removes_last_char ... ok [INFO] [stdout] test ui_024_network_end_enables_autoscroll ... ok [INFO] [stdout] test ui_mock_edit_body_delete_key_is_handled ... ok [INFO] [stdout] test ui_mock_edit_body_down_arrow_moves_cursor ... ok [INFO] [stdout] test ui_mock_edit_body_end_moves_cursor_to_line_end ... ok [INFO] [stdout] test ui_mock_edit_ctrl_enter_saves_and_exits ... ok [INFO] [stdout] test ui_mock_edit_body_left_arrow_moves_cursor ... ok [INFO] [stdout] test ui_mock_edit_body_right_arrow_moves_cursor ... ok [INFO] [stdout] test ui_mock_edit_body_enter_inserts_newline ... ok [INFO] [stdout] test ui_mock_edit_body_backspace_deletes ... ok [INFO] [stdout] test ui_mock_edit_body_unhandled_code_is_noop ... ok [INFO] [stdout] test ui_mock_edit_body_char_inserts_into_editor ... ok [INFO] [stdout] test ui_mock_edit_char_appends_to_single_line_field ... ok [INFO] [stdout] test ui_mock_edit_body_ctrl_v_paste_path_no_panic ... ok [INFO] [stdout] test ui_mock_edit_ctrl_s_saves_and_exits ... ok [INFO] [stdout] test ui_mock_edit_tab_cycles_field_forward ... ok [INFO] [stdout] test ui_mock_edit_top_field_unhandled_code_is_noop ... ok [INFO] [stdout] test ui_mock_edit_esc_cancels_to_normal ... ok [INFO] [stdout] test ui_mock_edit_body_up_arrow_moves_cursor ... ok [INFO] [stdout] test ui_mock_edit_body_home_moves_cursor_to_line_start ... ok [INFO] [stdout] test ui_007_network_esc_resets_filter_without_sse_merged ... ok [INFO] [stdout] test ui_007_logs_tab_1_stays_in_logs ... ok [INFO] [stdout] test ui_007_network_up_arrow_selects_prev ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 107 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/characterization_event_mouse.rs (/opt/rustwide/target/debug/deps/characterization_event_mouse-0b0e64bdf1b7644d) [INFO] [stdout] [INFO] [stdout] running 108 tests [INFO] [stdout] test ui_009_dispatch_help_routes_to_overlay_handler ... ok [INFO] [stdout] test ui_016_tab_bar_click_second_row_still_tab ... ok [INFO] [stdout] test ui_016_tab_bar_network_click_activates_network ... ok [INFO] [stdout] test ui_bottom_click_on_help_button_enters_help ... ok [INFO] [stdout] test ui_bottom_click_on_quit_button_sets_should_quit ... ok [INFO] [stdout] test ui_bottom_click_on_clear_button_clears_logs ... ok [INFO] [stdout] test ui_bottom_click_left_of_source_jumps_to_bottom ... ok [INFO] [stdout] test ui_009_dispatch_mock_edit_routes_to_mock_edit_handler ... ok [INFO] [stdout] test ui_009_dispatch_input_mode_routes_to_input_handler ... ok [INFO] [stdout] test ui_bottom_click_on_stats_button_enters_stats ... ok [INFO] [stdout] test ui_bottom_click_on_source_toggles_device_picker ... ok [INFO] [stdout] test ui_009_dispatch_normal_routes_to_normal_handler ... ok [INFO] [stdout] test ui_bottom_click_on_separator_button_inserts_separator ... ok [INFO] [stdout] test ui_016_tab_bar_logs_click_activates_logs ... ok [INFO] [stdout] test ui_bottom_click_on_export_button_exports_logs ... ok [INFO] [stdout] test ui_detail_panel_click_outside_panel_ignored ... ok [INFO] [stdout] test ui_detail_panel_click_with_no_panel_open_is_noop ... ok [INFO] [stdout] test ui_device_picker_click_inside_but_no_item_noop ... ok [INFO] [stdout] test ui_device_picker_click_on_item_selects_and_closes ... ok [INFO] [stdout] test ui_detail_panel_scroll_down_advances_detail_scroll ... ok [INFO] [stdout] test ui_detail_panel_scroll_up_retreats_detail_scroll ... ok [INFO] [stdout] test ui_device_picker_scroll_down_advances_scroll ... ok [INFO] [stdout] test ui_device_picker_right_click_is_ignored ... ok [INFO] [stdout] test ui_device_picker_click_outside_closes ... ok [INFO] [stdout] test ui_input_click_on_log_search_field_activates ... ok [INFO] [stdout] test ui_device_picker_scroll_up_retreats_scroll ... ok [INFO] [stdout] test ui_input_click_outside_input_row_exits_input_mode ... ok [INFO] [stdout] test ui_input_scroll_down_in_logs_scrolls_list ... ok [INFO] [stdout] test ui_input_scroll_up_in_logs_scrolls_list ... ok [INFO] [stdout] test ui_input_scroll_down_in_network_scrolls_list ... ok [INFO] [stdout] test ui_input_right_click_exits_input_mode ... ok [INFO] [stdout] test ui_input_scroll_up_in_network_scrolls_list ... ok [INFO] [stdout] test ui_input_click_net_search_in_network_tab ... ok [INFO] [stdout] test ui_device_picker_scroll_up_saturates_at_zero ... ok [INFO] [stdout] test ui_list_click_opens_detail_on_different_row ... ok [INFO] [stdout] test ui_jump_to_bottom_click_outside_rect_ignored ... ok [INFO] [stdout] test ui_list_click_out_of_range_row_is_noop ... ok [INFO] [stdout] test ui_list_click_same_row_toggles_detail_panel ... ok [INFO] [stdout] test ui_list_right_click_bookmarks_entry ... ok [INFO] [stdout] test ui_mock_edit_click_method_field_sets_field_1 ... ok [INFO] [stdout] test ui_mock_edit_click_delay_field_sets_field_3 ... ok [INFO] [stdout] test ui_mock_edit_click_outside_all_regions_is_noop ... ok [INFO] [stdout] test ui_mock_edit_click_status_field_sets_field_2 ... ok [INFO] [stdout] test ui_logs_exclude_click_enters_input_field ... ok [INFO] [stdout] test ui_list_right_click_twice_removes_bookmark ... ok [INFO] [stdout] test ui_logs_search_click_enters_input_field ... ok [INFO] [stdout] test ui_logs_tag_click_enters_input_field ... ok [INFO] [stdout] test ui_mock_edit_click_body_area_selects_field_4 ... ok [INFO] [stdout] test ui_mock_edit_right_click_is_ignored ... ok [INFO] [stdout] test ui_mock_edit_click_save_saves_and_exits ... ok [INFO] [stdout] test ui_mock_edit_click_url_field_sets_field_0 ... ok [INFO] [stdout] test ui_mock_edit_scroll_up_in_body_field_retreats_editor ... ok [INFO] [stdout] test ui_mock_edit_scroll_down_in_body_field_scrolls_editor ... ok [INFO] [stdout] test ui_mock_panel_click_edit_opens_editor ... ok [INFO] [stdout] test ui_mock_panel_click_select_changes_selection ... ok [INFO] [stdout] test ui_mock_panel_click_toggle_flips_enabled ... ok [INFO] [stdout] test ui_mock_edit_click_cancel_cancels_and_exits ... ok [INFO] [stdout] test ui_mock_edit_scroll_when_not_in_body_field_is_noop ... ok [INFO] [stdout] test ui_net_bottom_click_on_clear_button_clears_network ... ok [INFO] [stdout] test ui_mock_panel_click_delete_removes_rule ... ok [INFO] [stdout] test ui_mock_panel_scroll_consumed_without_panic ... ok [INFO] [stdout] test ui_net_bottom_click_on_help_button_enters_help ... ok [INFO] [stdout] test ui_net_bottom_click_on_stats_button_enters_network_stats ... ok [INFO] [stdout] test ui_net_detail_scroll_down_advances ... ok [INFO] [stdout] test ui_net_exclude_click_enters_input_field ... ok [INFO] [stdout] test ui_net_detail_mock_btn_click_invokes_mock_from_selected ... ok [INFO] [stdout] test ui_net_detail_scroll_up_retreats ... ok [INFO] [stdout] test ui_detail_panel_copy_btn_click_copies ... ok [INFO] [stdout] test ui_net_bottom_click_on_replay_no_panic_without_client ... ok [INFO] [stdout] test ui_net_filter_pill_method_del_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_method_all_resets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_method_get_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_method_patch_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_method_put_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_proto_all_resets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_proto_http_sets_filter ... ok [INFO] [stdout] test ui_net_bottom_click_on_response_button_no_panic ... ok [INFO] [stdout] test ui_net_filter_pill_proto_sse_sets_filter ... ok [INFO] [stdout] test ui_net_bottom_click_on_source_toggles_device_picker ... ok [INFO] [stdout] test ui_net_filter_pill_proto_ws_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_status_fail_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_status_active_sets_filter ... ok [INFO] [stdout] test ui_net_filter_pill_status_ok_sets_filter ... ok [INFO] [stdout] test ui_net_list_click_disables_auto_scroll ... ok [INFO] [stdout] test ui_net_bottom_click_on_mock_button_enters_mock_rules ... ok [INFO] [stdout] test ui_net_list_click_row_selects_and_shows_detail ... ok [INFO] [stdout] test ui_net_list_click_same_row_toggles_detail ... ok [INFO] [stdout] test ui_net_bottom_click_on_curl_button_no_panic ... ok [INFO] [stdout] test ui_net_search_click_enters_input_field ... ok [INFO] [stdout] test ui_net_filter_pill_status_all_resets_filter ... ok [INFO] [stdout] test ui_overlay_help_close_button_exits ... ok [INFO] [stdout] test ui_overlay_scroll_is_ignored ... ok [INFO] [stdout] test ui_scroll_down_in_logs_advances_selected ... ok [INFO] [stdout] test ui_net_filter_pill_method_post_sets_filter ... ok [INFO] [stdout] test ui_scroll_down_in_network_advances_selected ... ok [INFO] [stdout] test ui_overlay_help_click_elsewhere_stays ... ok [INFO] [stdout] test ui_scroll_up_in_logs_retreats_selected ... ok [INFO] [stdout] test ui_scroll_up_in_network_retreats_selected ... ok [INFO] [stdout] test ui_overlay_right_click_dismisses_stats ... ok [INFO] [stdout] test ui_net_filter_pill_status_pending_sets_filter ... ok [INFO] [stdout] test ui_overlay_stats_close_button_exits ... ok [INFO] [stdout] test ui_toolbar_op2_click_left_of_levels_noop ... ok [INFO] [stdout] test ui_toolbar_op2_level_button_changes_level ... ok [INFO] [stdout] test ui_overlay_right_click_dismisses_help ... ok [INFO] [stdout] test ui_overlay_stats_slowest_click_opens_detail ... ok [INFO] [stdout] test ui_jump_to_bottom_click_enables_auto_scroll ... ok [INFO] [stdout] test ui_input_click_on_log_tag_field_switches_to_tag ... ok [INFO] [stdout] test ui_input_click_net_exclude_in_network_tab ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 108 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/characterization_input.rs (/opt/rustwide/target/debug/deps/characterization_input-c66cc6cc6c17e62b) [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test conn_204_rejects_malformed_json ... ok [INFO] [stdout] test conn_203_rejects_binary_frame ... ok [INFO] [stdout] test conn_205_handles_server_disconnect_after_hello ... ok [INFO] [stdout] test conn_208_rejects_hello_with_bad_type ... ok [INFO] [stdout] test conn_207_receives_net_after_hello ... ok [INFO] [stdout] test conn_206_receives_log_after_hello ... ok [INFO] [stdout] test conn_214_rejects_ping_before_hello ... ok [INFO] [stdout] test conn_213_first_frame_log_variant_names_variant ... ok [INFO] [stdout] test conn_201_connects_and_receives_hello ... ok [INFO] [stdout] test conn_209_connect_to_unreachable_addr_returns_err ... ok [INFO] [stdout] test conn_212_writer_task_exits_when_peer_disconnects ... ok [INFO] [stdout] test conn_210_handle_sends_mock_sync_replay_subscribe ... ok [INFO] [stdout] test conn_211_connect_stream_succeeds_over_duplex ... ok [INFO] [stdout] test conn_202_times_out_when_server_silent ... ok [INFO] [stderr] Running tests/characterization_ui_logs.rs (/opt/rustwide/target/debug/deps/characterization_ui_logs-25c82fa3a3bd7995) [INFO] [stdout] [INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 87 tests [INFO] [stdout] test ui_010_empty_store_no_client_shows_quick_start_card ... ok [INFO] [stdout] test ui_010_empty_store_no_entries_rendered ... ok [INFO] [stdout] test ui_010_empty_store_shows_flog_logo ... ok [INFO] [stdout] test highlight_auto_highlight_no_match_returns_single_base_span ... ok [INFO] [stdout] test highlight_auto_highlight_inherits_base_bg ... ok [INFO] [stdout] test highlight_auto_highlight_url_blue_underlined ... ok [INFO] [stdout] test highlight_auto_highlight_status_code_4xx_yellow ... ok [INFO] [stdout] test ui_010_colors_warning_row_with_dark_yellow_bg ... ok [INFO] [stdout] test ui_010_colors_error_row_with_dark_red_bg ... ok [INFO] [stdout] test ui_010_column_header_renders ... ok [INFO] [stdout] test ui_010_detail_open_shows_details_block ... ok [INFO] [stdout] test ui_010_error_level_pill_renders ... ok [INFO] [stdout] test ui_010_debug_level_pill_renders ... ok [INFO] [stdout] test ui_010_bookmark_shows_yellow_dot ... ok [INFO] [stdout] test ui_010_long_message_wraps_to_multiple_rows ... ok [INFO] [stdout] test ui_010_detail_closed_shows_full_list_only ... ok [INFO] [stdout] test ui_010_auto_scroll_shows_newest ... ok [INFO] [stdout] test ui_010_palette_has_mantle_toolbar_bg ... ok [INFO] [stdout] test ui_010_entries_with_extra_lines_render ... ok [INFO] [stdout] test ui_010_renders_timestamp_column ... ok [INFO] [stdout] test ui_010_renders_single_entry_tag_and_message ... ok [INFO] [stdout] test ui_010_scroll_offset_shifts_visible_window ... ok [INFO] [stdout] test ui_010_info_level_pill_renders ... ok [INFO] [stdout] test ui_010_select_last_entry_survives_autoscroll ... ok [INFO] [stdout] test ui_010_info_debug_verbose_rows_use_base_bg ... ok [INFO] [stdout] test ui_010_no_bookmark_no_dot_in_list ... ok [INFO] [stdout] test ui_010_palette_has_multiple_fg_colors ... ok [INFO] [stdout] test ui_010_status_bar_offline_hint_reflects_discovered_devices ... ok [INFO] [stdout] test ui_010_message_capped_at_max_wrap_lines ... ok [INFO] [stdout] test ui_010_first_row_is_separator_rule ... ok [INFO] [stdout] test ui_010_middle_offset_omits_both_ends ... ok [INFO] [stdout] test highlight_auto_highlight_slow_duration_red_bold ... ok [INFO] [stdout] test ui_010_status_bar_shows_new_pill_when_paused_with_new_logs ... ok [INFO] [stdout] test ui_010_renders_multiple_entries_in_order ... ok [INFO] [stdout] test ui_010_selected_row_uses_surface1_bg ... ok [INFO] [stdout] test ui_010_toolbar_shows_filtered_count ... ok [INFO] [stdout] test ui_010_status_bar_offline_hint_reflects_no_devices ... ok [INFO] [stdout] test ui_010_status_bar_shows_live_pill_when_auto_scroll ... ok [INFO] [stdout] test ui_010_status_bar_shows_offline_chip_when_no_active_app ... ok [INFO] [stdout] test ui_010_varied_levels_produce_multiple_row_bgs ... ok [INFO] [stdout] test ui_010_very_small_width_still_renders_without_panic ... ok [INFO] [stdout] test highlight_auto_highlight_status_code_2xx_green ... ok [INFO] [stdout] test ui_010_toolbar_shows_search_exclude_tag_labels ... ok [INFO] [stdout] test ui_010_status_bar_shows_buttons ... ok [INFO] [stdout] test ui_010_warning_level_pill_renders ... ok [INFO] [stdout] test highlight_auto_highlight_status_code_5xx_red ... ok [INFO] [stdout] test ui_012_separator_bounded_between_entries ... ok [INFO] [stdout] test ui_031_distinct_tags_get_some_tag_colors ... ok [INFO] [stdout] test ui_010_verbose_level_pill_renders ... ok [INFO] [stdout] test ui_010_toolbar_shows_level_filter_buttons ... ok [INFO] [stdout] test ui_012_separator_does_not_add_log_text_columns ... ok [INFO] [stdout] test ui_025_filtered_to_zero_shows_active_filters_panel ... ok [INFO] [stdout] test ui_025_waiting_state_includes_connected_app_name ... ok [INFO] [stdout] test ui_025_connected_but_empty_shows_waiting_state ... ok [INFO] [stdout] test ui_030_repeat_count_shows_xN_prefix ... ok [INFO] [stdout] test ui_detail_copy_pill_appears ... ok [INFO] [stdout] test ui_detail_renders_length_label ... ok [INFO] [stdout] test ui_detail_no_selection_shows_placeholder ... ok [INFO] [stdout] test ui_detail_length_shows_bytes_for_small_msg ... ok [INFO] [stdout] test ui_010_very_tall_viewport_renders_all_entries ... ok [INFO] [stdout] test ui_030_repeat_count_bar_uses_pink_color ... ok [INFO] [stdout] test ui_025_filtered_to_zero_shows_no_matching_message ... ok [INFO] [stdout] test ui_detail_json_message_renders_braces ... ok [INFO] [stdout] test ui_030_repeat_count_saturates_at_50 ... ok [INFO] [stdout] test ui_detail_renders_timestamp ... ok [INFO] [stdout] test ui_030_repeat_count_shows_bar_segments ... ok [INFO] [stdout] test ui_detail_renders_level_and_tag ... ok [INFO] [stdout] test ui_detail_renders_message_body ... ok [INFO] [stdout] test ui_detail_renders_stack_trace_section ... ok [INFO] [stdout] test ui_039_entry_with_stack_shows_frames ... ok [INFO] [stdout] test ui_031_same_tag_same_color_across_renders ... ok [INFO] [stdout] test ui_detail_length_shows_kb_for_medium_msg ... ok [INFO] [stdout] test ui_039_entry_with_stack_shows_error_prefix ... ok [INFO] [stdout] test ui_detail_scroll_moves_content_up ... ok [INFO] [stdout] test ui_logs_stats_renders_per_level_counts_after_snapshot ... ok [INFO] [stdout] test ui_logs_stats_no_snapshot_still_renders_chrome ... ok [INFO] [stdout] test ui_filter_min_level_hides_lower ... ok [INFO] [stdout] test ui_logs_stats_title_shows_back_button ... ok [INFO] [stdout] test ui_jump_hidden_when_filtered_count_zero ... ok [INFO] [stdout] test ui_logs_stats_total_filtered_labels ... ok [INFO] [stdout] test ui_jump_hidden_when_auto_scroll ... ok [INFO] [stdout] test ui_012_separator_row_produces_divider_char ... ok [INFO] [stdout] test ui_search_highlights_match_with_yellow_bg ... ok [INFO] [stdout] test ui_039_stack_more_frames_pill_when_truncated ... ok [INFO] [stdout] test ui_logs_stats_renders_tag_ranking_rows ... ok [INFO] [stdout] test ui_logs_stats_tag_rank_shows_bars ... ok [INFO] [stdout] test ui_filter_narrows_visible_rows ... ok [INFO] [stderr] Running tests/characterization_ui_network.rs (/opt/rustwide/target/debug/deps/characterization_ui_network-e72457745300c14b) [INFO] [stdout] [INFO] [stdout] test result: ok. 87 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 128 tests [INFO] [stdout] test detail_http_error_section_shows_red_text ... ok [INFO] [stdout] test detail_http_shows_request_headers_section ... ok [INFO] [stdout] test detail_http_shows_duration_value ... ok [INFO] [stdout] test detail_http_plain_text_body_renders ... ok [INFO] [stdout] test detail_http_status_404_shows_not_found_text ... ok [INFO] [stdout] test detail_general_section_shows_url_and_method ... ok [INFO] [stdout] test detail_http_shows_size ... ok [INFO] [stdout] test detail_http_shows_request_url ... ok [INFO] [stdout] test detail_http_shows_response_body_section ... ok [INFO] [stdout] test detail_http_shows_response_headers_section ... ok [INFO] [stdout] test detail_http_query_params_parsed_and_shown ... ok [INFO] [stdout] test detail_http_shows_request_body_section ... ok [INFO] [stdout] test detail_general_section_shows_time_label ... ok [INFO] [stdout] test detail_http_shows_status_200_ok_text ... ok [INFO] [stdout] test detail_no_selection_shows_select_placeholder ... ok [INFO] [stdout] test detail_mock_btn_hidden_on_ws ... ok [INFO] [stdout] test detail_mock_btn_renders_for_http_when_connected ... ok [INFO] [stdout] test detail_scroll_shifts_content ... ok [INFO] [stdout] test detail_http_shows_method_pill ... ok [INFO] [stdout] test detail_json_fold_renders_keys_when_expanded ... ok [INFO] [stdout] test detail_http_empty_body_hides_body_section ... ok [INFO] [stdout] test detail_sse_non_json_chunks_hide_pills ... ok [INFO] [stdout] test detail_sse_events_mode_shows_merged_pill ... ok [INFO] [stdout] test detail_sse_merged_mode_shows_concatenated ... ok [INFO] [stdout] test detail_json_fold_array_shows_bracket_or_count ... ok [INFO] [stdout] test detail_mock_btn_hidden_when_not_connected ... ok [INFO] [stdout] test detail_json_fold_renders_nested_children ... ok [INFO] [stdout] test detail_ws_shows_messages_header ... ok [INFO] [stdout] test detail_sse_events_mode_lists_chunk_headers ... ok [INFO] [stdout] test detail_sse_empty_chunks_hides_section ... ok [INFO] [stdout] test detail_sse_events_mode_shows_events_pill ... ok [INFO] [stdout] test detail_ws_raw_mode_shows_arrow_markers ... ok [INFO] [stdout] test detail_ws_chat_mode_shows_chat_pill_active ... ok [INFO] [stdout] test detail_ws_chat_mode_shows_send_pill ... ok [INFO] [stdout] test detail_http_shows_request_body_json_keys ... ok [INFO] [stdout] test mock_edit_body_with_long_content_shows_scrollbar ... ok [INFO] [stdout] test mock_edit_body_multiline_renders ... ok [INFO] [stdout] test mock_edit_body_cursor_at_end_renders_reversed_space ... ok [INFO] [stdout] test mock_edit_overflow_unfocused_field_shows_tail ... ok [INFO] [stdout] test mock_edit_tiny_viewport_early_returns_without_panic ... ok [INFO] [stdout] test mock_edit_body_field_focused ... ok [INFO] [stdout] test mock_edit_overflow_url_renders_trailing_portion ... ok [INFO] [stdout] test detail_ws_chat_mode_shows_recv_pill ... ok [INFO] [stdout] test mock_edit_empty_top_values_renders_without_panic ... ok [INFO] [stdout] test mock_rules_panel_any_method_shown_as_star ... ok [INFO] [stdout] test mock_rules_panel_disabled_rule_shows_on_button ... ok [INFO] [stdout] test mock_edit_method_field_focused ... ok [INFO] [stdout] test mock_rules_panel_lists_multiple_rules ... ok [INFO] [stdout] test mock_rules_panel_empty_mentions_m_key ... ok [INFO] [stdout] test mock_rules_panel_tiny_viewport_early_returns_without_panic ... ok [INFO] [stdout] test mock_rules_panel_long_url_truncates_with_ellipsis ... ok [INFO] [stdout] test mock_rules_panel_lists_one_rule ... ok [INFO] [stdout] test mock_rules_panel_title_renders ... ok [INFO] [stdout] test mock_edit_delay_field_focused ... ok [INFO] [stdout] test mock_edit_save_button_green_cancel_red ... ok [INFO] [stdout] test mock_edit_shows_title_and_labels ... ok [INFO] [stdout] test mock_rules_panel_shows_edit_off_del_buttons ... ok [INFO] [stdout] test mock_edit_save_cancel_buttons_render ... ok [INFO] [stdout] test mock_rules_panel_empty_shows_hint ... ok [INFO] [stdout] test mock_rules_panel_selected_row_uses_surface1_bg ... ok [INFO] [stdout] test mock_edit_status_field_focused ... ok [INFO] [stdout] test mock_edit_url_field_focused_shows_cursor_pipe ... ok [INFO] [stdout] test ui_029_auto_scroll_pins_to_newest ... ok [INFO] [stdout] test ui_029_empty_network_shows_empty_state ... ok [INFO] [stdout] test stats_slowest_lists_urls ... ok [INFO] [stdout] test ui_029_detail_panel_side_by_side_layout ... ok [INFO] [stdout] test stats_shows_status_distribution_rows ... ok [INFO] [stdout] test ui_029_get_method_fg_is_blue_in_list ... ok [INFO] [stdout] test ui_029_first_row_is_separator_rule ... ok [INFO] [stdout] test ui_029_header_row_count_is_one ... ok [INFO] [stdout] test detail_non_json_body_renders_as_plain_text ... ok [INFO] [stdout] test ui_029_diverse_palette_in_full_render ... ok [INFO] [stdout] test ui_029_http_pill_bg_is_blue ... ok [INFO] [stdout] test mock_edit_body_cursor_mid_line_renders_cursor_char ... ok [INFO] [stdout] test detail_ws_empty_messages_hides_section ... ok [INFO] [stdout] test ui_029_palette_uses_sapphire_for_section_headers_in_detail ... ok [INFO] [stdout] test ui_029_mantle_covers_toolbar ... ok [INFO] [stdout] test ui_029_post_method_fg_is_green_in_list ... ok [INFO] [stdout] test stats_failed_request_shows_red_failed_count ... ok [INFO] [stdout] test ui_029_mock_panel_side_by_side_layout ... ok [INFO] [stdout] test stats_empty_shows_title_and_zero_total ... ok [INFO] [stdout] test ui_029_renders_failed_entry_with_failed_status ... ok [INFO] [stdout] test ui_029_renders_sse_entry_with_protocol_pill ... ok [INFO] [stdout] test ui_029_renders_ws_entry_with_protocol_pill ... ok [INFO] [stdout] test ui_029_renders_pending_entry_with_ellipsis ... ok [INFO] [stdout] test ui_029_renders_single_http_entry ... ok [INFO] [stdout] test stats_shows_summary_rows ... ok [INFO] [stdout] test stats_shows_per_domain_section ... ok [INFO] [stdout] test ui_029_renders_multiple_entries_in_order ... ok [INFO] [stdout] test ui_029_scrollbar_renders_when_overflow ... ok [INFO] [stdout] test ui_035_error_row_has_dark_red_bg ... ok [INFO] [stdout] test ui_029_status_yellow_for_4xx_in_list ... ok [INFO] [stdout] test ui_029_very_long_url_truncates ... ok [INFO] [stdout] test ui_029_same_render_twice_is_deterministic ... ok [INFO] [stdout] test ui_029_scroll_offset_shifts_visible_window ... ok [INFO] [stdout] test stats_pending_entry_counts_in_progress ... ok [INFO] [stdout] test stats_shows_latency_percentile_rows ... ok [INFO] [stdout] test stats_shows_back_button ... ok [INFO] [stdout] test ui_029_status_red_for_5xx_in_list ... ok [INFO] [stdout] test ui_filter_column_header_row_renders ... ok [INFO] [stdout] test ui_035_warning_row_has_dark_yellow_bg_for_4xx ... ok [INFO] [stdout] test ui_035_info_row_uses_base_bg ... ok [INFO] [stdout] test ui_035_mocked_row_has_purple_tinted_bg ... ok [INFO] [stdout] test ui_029_tall_viewport_shows_all_entries ... ok [INFO] [stdout] test ui_029_very_small_width_does_not_panic ... ok [INFO] [stdout] test ui_035_selected_row_uses_surface1_bg ... ok [INFO] [stdout] test stats_shows_slowest_top5_section ... ok [INFO] [stdout] test ui_035_mocked_row_shows_mock_pill_text ... ok [INFO] [stdout] test ui_035_replay_row_shows_replay_pill_text ... ok [INFO] [stdout] test ui_filter_protocol_http_selected_uses_mauve_bg ... ok [INFO] [stdout] test ui_filter_exclude_active_input_renders_value ... ok [INFO] [stdout] test ui_filter_search_active_input_renders_value ... ok [INFO] [stdout] test ui_filter_search_exclude_labels_rendered ... ok [INFO] [stdout] test ui_filter_protocol_all_pill_rendered ... ok [INFO] [stdout] test ui_filter_status_failed_selected ... ok [INFO] [stdout] test ui_filter_method_post_selected ... ok [INFO] [stdout] test ui_filter_count_badge_shows_filtered_over_total ... ok [INFO] [stdout] test ui_filter_method_pills_rendered ... ok [INFO] [stdout] test ui_filter_status_pills_rendered ... ok [INFO] [stdout] test ui_network_status_shows_clear_help_buttons ... ok [INFO] [stdout] test ui_network_status_shows_mock_when_http_and_connected ... ok [INFO] [stdout] test ui_035_replay_row_has_blue_tinted_bg ... ok [INFO] [stdout] test ui_network_status_shows_percentage_when_paused ... ok [INFO] [stdout] test ui_network_status_shows_live_pill_when_autoscroll ... ok [INFO] [stdout] test ui_network_status_shows_failed_count ... ok [INFO] [stdout] test ui_network_status_shows_replay_for_http_with_client ... ok [INFO] [stdout] test ui_network_status_hides_replay_for_ws ... ok [INFO] [stdout] test ui_network_status_shows_total_count ... ok [INFO] [stderr] Running tests/characterization_ui_source_select_help.rs (/opt/rustwide/target/debug/deps/characterization_ui_source_select_help-0402b8ddea96c192) [INFO] [stdout] [INFO] [stdout] test result: ok. 128 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.81s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 53 tests [INFO] [stdout] test help_narrow_terminal_still_renders_title ... ok [INFO] [stdout] test help_contains_core_keybindings_j_k_slash ... ok [INFO] [stdout] test help_first_row_is_nav_bar ... ok [INFO] [stdout] test help_contains_q_quit_binding ... ok [INFO] [stdout] test help_back_button_row_count_is_one ... ok [INFO] [stdout] test help_contains_esc_clear_filters ... ok [INFO] [stdout] test help_banner_first_content_row_in_second_chunk ... ok [INFO] [stdout] test help_renders_banner_tagline ... ok [INFO] [stdout] test help_renders_title ... ok [INFO] [stdout] test help_contains_detail_sections ... ok [INFO] [stdout] test picker_active_app_shows_active_pill ... ok [INFO] [stdout] test help_contains_setup_section ... ok [INFO] [stdout] test picker_active_app_uses_bold_box_borders ... ok [INFO] [stdout] test help_shows_tab_navigation_section ... ok [INFO] [stdout] test help_shows_logs_view_section ... ok [INFO] [stdout] test help_footer_shows_close_instructions ... ok [INFO] [stdout] test picker_empty_app_version_omits_v_prefix ... ok [INFO] [stdout] test picker_device_container_uses_mantle_bg ... ok [INFO] [stdout] test picker_empty_clears_layout_cache ... ok [INFO] [stdout] test picker_hints_footer_contains_navigation_keys ... ok [INFO] [stdout] test picker_empty_shows_run_flog_dart_hint ... ok [INFO] [stdout] test picker_connected_app_shows_name_and_version ... ok [INFO] [stdout] test help_shows_keyboard_subheading ... ok [INFO] [stdout] test help_renders_back_button ... ok [INFO] [stdout] test picker_empty_title_shows_zero_count ... ok [INFO] [stdout] test picker_long_device_id_gets_shortened ... ok [INFO] [stdout] test picker_layout_cache_records_click_regions ... ok [INFO] [stdout] test help_contains_search_filter_subheading ... ok [INFO] [stdout] test picker_inactive_app_uses_single_box_borders ... ok [INFO] [stdout] test picker_modal_bg_uses_base_color ... ok [INFO] [stdout] test picker_layout_item_ids_order_matches_devices_then_discovered ... ok [INFO] [stdout] test picker_renders_without_panic_at_narrow_width ... ok [INFO] [stdout] test help_tall_terminal_renders_footer_and_header ... ok [INFO] [stdout] test picker_scroll_keeps_selected_card_visible ... ok [INFO] [stdout] test help_contains_protocol_pills ... ok [INFO] [stdout] test picker_single_device_shows_platform_tag_android ... ok [INFO] [stdout] test picker_scroll_clamps_offset_when_too_large ... ok [INFO] [stdout] test picker_many_devices_triggers_scroll ... ok [INFO] [stdout] test picker_device_count_matches_discovered ... ok [INFO] [stdout] test picker_empty_shows_no_devices_found ... ok [INFO] [stdout] test picker_single_device_no_apps_shows_waiting_row ... ok [INFO] [stdout] test picker_single_device_shows_platform_tag_ios ... ok [INFO] [stdout] test picker_single_device_shows_platform_tag_local_sim ... ok [INFO] [stdout] test picker_single_device_shows_device_name_in_header ... ok [INFO] [stdout] test picker_selected_non_active_shows_cursor_glyph ... ok [INFO] [stdout] test picker_multi_device_mixed_states_render_all_headers ... ok [INFO] [stdout] test picker_multiple_apps_on_one_device_all_render ... ok [INFO] [stdout] test picker_unknown_fields_render_as_unknown ... ok [INFO] [stdout] test help_shows_network_section ... ok [INFO] [stdout] test picker_scroll_clamps_selected_index ... ok [INFO] [stdout] test picker_short_device_id_renders_verbatim ... ok [INFO] [stdout] test help_shows_mouse_section ... ok [INFO] [stdout] test help_contains_tips_section ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.45s [INFO] [stdout] [INFO] [stderr] Running tests/forbidden_patterns_test.rs (/opt/rustwide/target/debug/deps/forbidden_patterns_test-8e5fbbb9ff497d12) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test no_eprintln_in_production_code ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] Running tests/ws_server_test_direct.rs (/opt/rustwide/target/debug/deps/ws_server_test_direct-de2e744097f0bb0d) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_connector_connects_and_receives_messages ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Doc-tests flog [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" "678242aeb02647774e0cdbf42997968d735e096fecd2543a51205904da8d3f88", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "678242aeb02647774e0cdbf42997968d735e096fecd2543a51205904da8d3f88", kill_on_drop: false }` [INFO] [stdout] 678242aeb02647774e0cdbf42997968d735e096fecd2543a51205904da8d3f88