[INFO] cloning repository https://github.com/yrlihuan/omnish
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yrlihuan/omnish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8acf519011e1fed89a9a8ed62d87e0bb6f7eb3ca
[INFO] testing yrlihuan/omnish against master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyrlihuan%2Fomnish" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yrlihuan/omnish
[INFO] finished tweaking git repo https://github.com/yrlihuan/omnish
[INFO] tweaked toml for git repo https://github.com/yrlihuan/omnish written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yrlihuan/omnish on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yrlihuan/omnish 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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded vt100 v0.16.2
[INFO] [stderr]   Downloaded yasna v0.5.2
[INFO] [stderr]   Downloaded vte v0.15.0
[INFO] [stderr]   Downloaded env_home v0.1.0
[INFO] [stderr]   Downloaded tar v0.4.45
[INFO] [stderr]   Downloaded which v7.0.3
[INFO] [stderr]   Downloaded rcgen v0.13.2
[INFO] [stderr]   Downloaded grep v0.4.1
[INFO] [stderr]   Downloaded grep-matcher v0.1.8
[INFO] [stderr]   Downloaded landlock v0.4.4
[INFO] [stderr]   Downloaded tracing-appender v0.2.4
[INFO] [stderr]   Downloaded grep-regex v0.1.14
[INFO] [stderr]   Downloaded memmap2 v0.9.10
[INFO] [stderr]   Downloaded grep-cli v0.1.12
[INFO] [stderr]   Downloaded grep-searcher v0.1.16
[INFO] [stderr]   Downloaded grep-printer v0.3.1
[INFO] [stderr]   Downloaded winsafe v0.0.19
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c037710591a8532f90a477ce9c4b68cea3cb60c2472e27af6358bc9e7a8aa1e1
[INFO] running `Command { std: "docker" "start" "-a" "c037710591a8532f90a477ce9c4b68cea3cb60c2472e27af6358bc9e7a8aa1e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c037710591a8532f90a477ce9c4b68cea3cb60c2472e27af6358bc9e7a8aa1e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c037710591a8532f90a477ce9c4b68cea3cb60c2472e27af6358bc9e7a8aa1e1", kill_on_drop: false }`
[INFO] [stdout] c037710591a8532f90a477ce9c4b68cea3cb60c2472e27af6358bc9e7a8aa1e1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 43acd10f501fd7b51bb337f443386e1335136efcad61d89be1f67de1f6354dbf
[INFO] running `Command { std: "docker" "start" "-a" "43acd10f501fd7b51bb337f443386e1335136efcad61d89be1f67de1f6354dbf", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling omnish-store v0.8.14 (/opt/rustwide/workdir/crates/omnish-store)
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling grep-matcher v0.1.8
[INFO] [stderr]    Compiling omnish-common v0.8.14 (/opt/rustwide/workdir/crates/omnish-common)
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling encoding_rs_io v0.1.7
[INFO] [stderr]    Compiling tar v0.4.45
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling memmap2 v0.9.10
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling omnish-protocol v0.8.14 (/opt/rustwide/workdir/crates/omnish-protocol)
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling grep-searcher v0.1.16
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling grep-printer v0.3.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling grep-cli v0.1.12
[INFO] [stderr]    Compiling grep-regex v0.1.14
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling grep v0.4.1
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling landlock v0.4.4
[INFO] [stderr]    Compiling yasna v0.5.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling omnish-llm v0.8.14 (/opt/rustwide/workdir/crates/omnish-llm)
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling tokio-cron-scheduler v0.13.0
[INFO] [stderr]    Compiling croner v2.2.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling pulldown-cmark v0.13.1
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling omnish-context v0.8.14 (/opt/rustwide/workdir/crates/omnish-context)
[INFO] [stderr]    Compiling omnish-plugin v0.8.14 (/opt/rustwide/workdir/crates/omnish-plugin)
[INFO] [stderr]    Compiling omnish-transport v0.8.14 (/opt/rustwide/workdir/crates/omnish-transport)
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling omnish-pty v0.8.14 (/opt/rustwide/workdir/crates/omnish-pty)
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling omnish-tracker v0.8.14 (/opt/rustwide/workdir/crates/omnish-tracker)
[INFO] [stderr]    Compiling omnish-daemon v0.8.14 (/opt/rustwide/workdir/crates/omnish-daemon)
[INFO] [stderr]    Compiling omnish-client v0.8.14 (/opt/rustwide/workdir/crates/omnish-client)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 19s
[INFO] running `Command { std: "docker" "inspect" "43acd10f501fd7b51bb337f443386e1335136efcad61d89be1f67de1f6354dbf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "43acd10f501fd7b51bb337f443386e1335136efcad61d89be1f67de1f6354dbf", kill_on_drop: false }`
[INFO] [stdout] 43acd10f501fd7b51bb337f443386e1335136efcad61d89be1f67de1f6354dbf
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 406156e5cffa5b911998d7fbad53ac049d67969da8550896b697da0433c2934c
[INFO] running `Command { std: "docker" "start" "-a" "406156e5cffa5b911998d7fbad53ac049d67969da8550896b697da0433c2934c", kill_on_drop: false }`
[INFO] [stderr]    Compiling omnish-tracker v0.8.14 (/opt/rustwide/workdir/crates/omnish-tracker)
[INFO] [stderr]    Compiling omnish-daemon v0.8.14 (/opt/rustwide/workdir/crates/omnish-daemon)
[INFO] [stderr]    Compiling omnish-pty v0.8.14 (/opt/rustwide/workdir/crates/omnish-pty)
[INFO] [stderr]    Compiling omnish-client v0.8.14 (/opt/rustwide/workdir/crates/omnish-client)
[INFO] [stderr]    Compiling omnish-plugin v0.8.14 (/opt/rustwide/workdir/crates/omnish-plugin)
[INFO] [stderr]    Compiling omnish-transport v0.8.14 (/opt/rustwide/workdir/crates/omnish-transport)
[INFO] [stderr]    Compiling omnish-llm v0.8.14 (/opt/rustwide/workdir/crates/omnish-llm)
[INFO] [stderr]    Compiling omnish-common v0.8.14 (/opt/rustwide/workdir/crates/omnish-common)
[INFO] [stderr]    Compiling omnish-store v0.8.14 (/opt/rustwide/workdir/crates/omnish-store)
[INFO] [stderr]    Compiling omnish-context v0.8.14 (/opt/rustwide/workdir/crates/omnish-context)
[INFO] [stderr]    Compiling omnish-protocol v0.8.14 (/opt/rustwide/workdir/crates/omnish-protocol)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "406156e5cffa5b911998d7fbad53ac049d67969da8550896b697da0433c2934c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "406156e5cffa5b911998d7fbad53ac049d67969da8550896b697da0433c2934c", kill_on_drop: false }`
[INFO] [stdout] 406156e5cffa5b911998d7fbad53ac049d67969da8550896b697da0433c2934c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 13a3744120fa343e85d59c5ff1cfc579310f33a2eb6bce690873bea60c2c704e
[INFO] running `Command { std: "docker" "start" "-a" "13a3744120fa343e85d59c5ff1cfc579310f33a2eb6bce690873bea60c2c704e", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish-71b23d62ba020d3f)
[INFO] [stdout] 
[INFO] [stdout] running 474 tests
[INFO] [stdout] test command::tests::test_completable_commands_priority_order ... ok
[INFO] [stdout] test command::tests::test_completable_commands_returns_all_entries ... ok
[INFO] [stdout] test command::tests::test_context_dispatches_to_daemon ... ok
[INFO] [stdout] test chat_session::tests::test_normalize_thread_name_caps_length ... ok
[INFO] [stdout] test chat_session::tests::test_normalize_thread_name_strips_control_chars ... ok
[INFO] [stdout] test chat_session::tests::test_normalize_thread_name_basic ... ok
[INFO] [stdout] test command::tests::test_debug_client_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_context_with_redirect ... ok
[INFO] [stdout] test command::tests::test_context_with_limit_and_redirect ... ok
[INFO] [stdout] test command::tests::test_debug_events_command ... ok
[INFO] [stdout] test command::tests::test_debug_events_default_count ... ok
[INFO] [stdout] test command::tests::test_debug_session_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_debug_no_args_shows_usage ... ok
[INFO] [stdout] test chat_session::tests::test_normalize_thread_name_preserves_spaces_and_cjk ... ok
[INFO] [stdout] test command::tests::test_non_command_is_llm_query ... ok
[INFO] [stdout] test command::tests::test_parse_redirect ... ok
[INFO] [stdout] test command::tests::test_sessions_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_help_hides_debug_subcommands ... ok
[INFO] [stdout] test command::tests::test_help_shows_thread_subcommands ... ok
[INFO] [stdout] test command::tests::test_template_auto_complete_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_template_chat_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_tasks_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_help_command ... ok
[INFO] [stdout] test command::tests::test_tasks_disable_forwards_args ... ok
[INFO] [stdout] test command::tests::test_thread_list ... ok
[INFO] [stdout] test command::tests::test_thread_no_args_shows_usage ... ok
[INFO] [stdout] test command::tests::test_unknown_debug_subcommand_shows_usage ... ok
[INFO] [stdout] test command::tests::test_template_no_args_dispatches_to_daemon ... ok
[INFO] [stdout] test command::tests::test_unknown_slash_command_falls_through ... ok
[INFO] [stdout] test completion::tests::test_clear_clears_active_requests ... ok
[INFO] [stdout] test completion::tests::test_completion_discarded_when_input_not_prefix ... ok
[INFO] [stdout] test completion::tests::test_completion_subset_of_input_discarded ... ok
[INFO] [stdout] test completion::tests::test_completion_variant_with_shared_prefix_discarded ... ok
[INFO] [stdout] test completion::tests::test_completion_suffix_only_discarded ... ok
[INFO] [stdout] test completion::tests::test_concurrent_requests_allowed ... ok
[INFO] [stdout] test completion::tests::test_concurrent_request_limit ... ok
[INFO] [stdout] test completion::tests::test_clear_removes_ghost ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_after_timeout ... ok
[INFO] [stdout] test completion::tests::test_accept_returns_and_clears ... ok
[INFO] [stdout] test completion::tests::test_concurrent_requests_with_different_inputs ... ok
[INFO] [stdout] test completion::tests::test_debounce_not_ready_immediately ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_empty_input ... ok
[INFO] [stdout] test completion::tests::test_debug_state_shows_concurrent_info ... ok
[INFO] [stdout] test completion::tests::test_debounce_ready_short_input ... ok
[INFO] [stdout] test completion::tests::test_best_suggestion_selected ... ok
[INFO] [stdout] test completion::tests::test_dismiss_blocks_pending_responses ... ok
[INFO] [stdout] test completion::tests::test_dismiss_clears_ghost ... ok
[INFO] [stdout] test completion::tests::test_dismiss_without_ghost_returns_false ... ok
[INFO] [stdout] test completion::tests::test_dismiss_suppresses_same_input_request ... ok
[INFO] [stdout] test completion::tests::test_dismiss_cleared_on_prompt ... ok
[INFO] [stdout] test completion::tests::test_accept_after_typing_returns_suffix_only ... ok
[INFO] [stdout] test completion::tests::test_dismiss_allows_request_after_input_change ... ok
[INFO] [stdout] test completion::tests::test_ghost_calculation_when_input_changes_during_request ... ok
[INFO] [stdout] test completion::tests::test_ghost_expired_after_timeout ... ok
[INFO] [stdout] test completion::tests::test_ghost_cleared_on_divergent_extra_chars ... ok
[INFO] [stdout] test completion::tests::test_ghost_not_expired_without_ghost ... ok
[INFO] [stdout] test completion::tests::test_ghost_survives_prefix_typing ... ok
[INFO] [stdout] test completion::tests::test_issue95_no_preference_when_first_long ... ok
[INFO] [stdout] test completion::tests::test_issue95_prefer_second_when_first_is_short_prefix ... ok
[INFO] [stdout] test completion::tests::test_no_duplicate_request ... ok
[INFO] [stdout] test completion::tests::test_on_input_changed_returns_false_when_no_ghost ... ok
[INFO] [stdout] test completion::tests::test_on_input_changed_returns_true_when_ghost_cleared ... ok
[INFO] [stdout] test completion::tests::test_no_duplicate_requests_after_daemon_restart ... ok
[INFO] [stdout] test completion::tests::test_response_exact_match_no_ghost ... ok
[INFO] [stdout] test completion::tests::test_request_input_repeated_in_suggestion_rejected ... ok
[INFO] [stdout] test completion::tests::test_response_irrelevance_filtering ... ok
[INFO] [stdout] test completion::tests::test_response_relevance_filtering ... ok
[INFO] [stdout] test completion::tests::test_stale_response_discarded_with_concurrent ... ok
[INFO] [stdout] test completion::tests::test_suffix_only_response_rejected ... ok
[INFO] [stdout] test completion::tests::test_shell_prompt_guard_no_false_positives ... ok
[INFO] [stdout] test completion::tests::test_shell_prompt_dump_rejected_empty_input ... ok
[INFO] [stdout] test completion::tests::test_timed_out_request_cleanup ... ok
[INFO] [stdout] test completion::tests::test_response_strips_input_prefix ... ok
[INFO] [stdout] test completion::tests::test_stale_response_discarded ... ok
[INFO] [stdout] test completion::tests::test_valid_response_sets_ghost ... ok
[INFO] [stdout] test display::tests::erase_lines_three ... ok
[INFO] [stdout] test display::tests::erase_lines_zero_is_empty ... ok
[INFO] [stdout] test display::tests::test_dismiss_clears_after_scroll ... ok
[INFO] [stdout] test display::tests::erase_lines_one_clears_and_moves_up ... ok
[INFO] [stdout] test display::tests::test_dismiss_with_column_restore ... ok
[INFO] [stdout] test display::tests::test_dismiss_preserves_prompt_line ... ok
[INFO] [stdout] test display::tests::test_erase_ghost_text_wrapped_restores_cursor_column ... ok
[INFO] [stdout] test display::tests::test_dismiss_restores_cursor ... ok
[INFO] [stdout] test display::tests::test_error_message ... ok
[INFO] [stdout] test display::tests::collapse_newlines_multiline_command ... ok
[INFO] [stdout] test display::tests::test_ghost_cleared_on_divergent_input ... ok
[INFO] [stdout] test display::tests::test_input_echo_shows_text ... ok
[INFO] [stdout] test display::tests::test_input_echo_with_ghost ... ok
[INFO] [stdout] test display::tests::test_render_ghost_text ... ok
[INFO] [stdout] test display::tests::test_render_error_special_chars ... ok
[INFO] [stdout] test display::tests::test_render_ghost_text_empty ... ok
[INFO] [stdout] test display::tests::test_prompt_renders_correctly ... ok
[INFO] [stdout] test display::tests::test_render_prompt_narrow_terminal ... ok
[INFO] [stdout] test display::tests::test_render_input_echo_empty ... ok
[INFO] [stdout] test display::tests::test_full_interaction_flow ... ok
[INFO] [stdout] test display::tests::test_repeated_dismiss_no_content_drift ... ok
[INFO] [stdout] test display::tests::test_response_crlf_conversion ... ok
[INFO] [stdout] test display::tests::test_render_response_single_line ... ok
[INFO] [stdout] test display::tests::test_render_response_empty ... ok
[INFO] [stdout] test display::tests::truncate_cols_ansi_cjk ... ok
[INFO] [stdout] test display::tests::truncate_cols_ansi_heavy ... ok
[INFO] [stdout] test display::tests::test_separator ... ok
[INFO] [stdout] test display::tests::truncate_cols_ascii_fits ... ok
[INFO] [stdout] test display::tests::truncate_cols_ansi_fits ... ok
[INFO] [stdout] test display::tests::truncate_cols_cjk_fits ... ok
[INFO] [stdout] test display::tests::truncate_cols_empty ... ok
[INFO] [stdout] test display::tests::truncate_cols_cjk_truncated ... ok
[INFO] [stdout] test display::tests::truncate_cols_ascii_truncated ... ok
[INFO] [stdout] test display::tests::truncate_cols_mixed ... ok
[INFO] [stdout] test display::tests::vt100_erase_lines_clears_all_rows ... ok
[INFO] [stdout] test display::tests::truncate_cols_ansi_truncated ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_accept_returns_suffix ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_empty_input ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_exact_match_no_ghost ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_no_match ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_prefix_match ... ok
[INFO] [stdout] test ghost_complete::tests::test_builtin_provider_subcommand_match ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_clear ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_first_provider_wins ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_update_no_match_returns_none ... ok
[INFO] [stdout] test i18n::tests::test_label_to_key ... ok
[INFO] [stdout] test ghost_complete::tests::test_completer_update_returns_ghost_suffix ... ok
[INFO] [stdout] test interceptor::tests::test_arrow_keys_forwarded_as_single_write ... ok
[INFO] [stdout] test interceptor::tests::test_chat_with_query ... ok
[INFO] [stdout] test interceptor::tests::test_chat_detected ... ok
[INFO] [stdout] test interceptor::tests::test_backspace_when_not_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_bare_esc_forwarded_when_not_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_cjk_char_buffered_before_flush ... ok
[INFO] [stdout] test interceptor::tests::test_ascii_not_delayed_by_utf8_check ... ok
[INFO] [stdout] test interceptor::tests::test_double_prefix_resume_single_char ... ok
[INFO] [stdout] test interceptor::tests::test_expire_prefix_no_effect_when_not_in_chat ... ok
[INFO] [stdout] test interceptor::tests::test_double_prefix_resume_two_char ... ok
[INFO] [stdout] test interceptor::tests::test_expire_prefix_no_effect_with_extra_content ... ok
[INFO] [stdout] test interceptor::tests::test_finish_batch_no_op_when_idle ... ok
[INFO] [stdout] test interceptor::tests::test_guard_allows_prefix_after_gap ... ok
[INFO] [stdout] test interceptor::tests::test_backspace_during_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_guard_forward_updates_timestamp ... ok
[INFO] [stdout] test interceptor::tests::test_incomplete_utf8_tail ... ok
[INFO] [stdout] test interceptor::tests::test_guard_blocks_prefix_mid_input ... ok
[INFO] [stdout] test interceptor::tests::test_inject_byte_and_current_buffer ... ok
[INFO] [stdout] test interceptor::tests::test_integration_double_prefix_resumes_chat ... ok
[INFO] [stdout] test interceptor::tests::test_integration_guard_blocks_during_typing ... ok
[INFO] [stdout] test interceptor::tests::test_esc_cancels_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_integration_normal_input_not_intercepted ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_backspace_dismisses ... ok
[INFO] [stdout] test interceptor::tests::test_integration_suppressed_then_unsuppressed ... ok
[INFO] [stdout] test interceptor::tests::test_integration_single_prefix_timeout_enters_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_integration_two_char_prefix_resume ... ok
[INFO] [stdout] test interceptor::tests::test_integration_multiple_sessions ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_content_then_enter ... ok
[INFO] [stdout] test interceptor::tests::test_integration_two_char_prefix_timeout ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_enter_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_integration_timeout_no_effect_after_content ... ok
[INFO] [stdout] test interceptor::tests::test_integration_prefix_then_esc_cancels ... ok
[INFO] [stdout] test interceptor::tests::test_note_output_resets_chat_state ... ok
[INFO] [stdout] test interceptor::tests::test_passthrough_normal_input ... ok
[INFO] [stdout] test interceptor::tests::test_partial_prefix_then_mismatch ... ok
[INFO] [stdout] test interceptor::tests::test_prefix_then_enter_new_chat ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_mode_arrow_keys_forwarded_as_complete_sequence ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_discards_partial_buffer ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_then_resumed ... ok
[INFO] [stdout] test interceptor::tests::test_suppressed_forwards_everything ... ok
[INFO] [stdout] test interceptor::tests::test_tab_during_prefix_buffering ... ok
[INFO] [stdout] test interceptor::tests::test_tab_in_chat_mode ... ok
[INFO] [stdout] test i18n::tests::test_translations ... ok
[INFO] [stdout] test interceptor::tests::test_tab_not_in_chat_forwards ... ok
[INFO] [stdout] test interceptor::tests::test_ui_backspace_to_empty_dismisses ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_recent_input_blocks ... ok
[INFO] [stdout] test interceptor::tests::test_ui_esc_non_bracket_cancel ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_no_spurious_redraws ... ok
[INFO] [stdout] test interceptor::tests::test_ui_multiple_esc_sequences ... ok
[INFO] [stdout] test interceptor::tests::test_ui_arrow_keys_no_redraws ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_no_prior_input ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_then_enter ... ok
[INFO] [stdout] test interceptor::tests::test_ui_prefix_mismatch_then_retry ... ok
[INFO] [stdout] test interceptor::tests::test_ui_type_and_submit ... ok
[INFO] [stdout] test interceptor::tests::test_utf8_char_len_helper ... ok
[INFO] [stdout] test interceptor::tests::test_ui_type_and_esc_cancel ... ok
[INFO] [stdout] test markdown::tests::test_code_block ... ok
[INFO] [stdout] test interceptor::tests::test_ui_paste_with_embedded_ansi ... ok
[INFO] [stdout] test markdown::tests::test_crlf_line_endings ... ok
[INFO] [stdout] test markdown::tests::test_heading ... ok
[INFO] [stdout] test markdown::tests::test_empty_input ... ok
[INFO] [stdout] test markdown::tests::test_italic ... ok
[INFO] [stdout] test markdown::tests::test_link ... ok
[INFO] [stdout] test interceptor::tests::test_time_gap_guard_stale_input_allows ... ok
[INFO] [stdout] test markdown::tests::test_bold ... ok
[INFO] [stdout] test markdown::tests::test_multiple_paragraphs ... ok
[INFO] [stdout] test markdown::tests::test_horizontal_rule ... ok
[INFO] [stdout] test markdown::tests::test_inline_code ... ok
[INFO] [stdout] test markdown::tests::test_cross_line_bold_reapplies_per_line ... ok
[INFO] [stdout] test markdown::tests::test_mixed_content ... ok
[INFO] [stdout] test markdown::tests::test_ordered_list ... ok
[INFO] [stdout] test markdown::tests::test_code_block_each_line_self_styled ... ok
[INFO] [stdout] test markdown::tests::test_newline_is_style_safe ... ok
[INFO] [stdout] test pending_notices::tests::consume_twice_returns_false_on_second_call ... ok
[INFO] [stdout] test pending_notices::tests::consume_without_expect_returns_false ... ok
[INFO] [stdout] test markdown::tests::test_plain_text ... ok
[INFO] [stdout] test markdown::tests::test_unordered_list ... ok
[INFO] [stdout] test pending_notices::tests::expect_then_consume_returns_true ... ok
[INFO] [stdout] test markdown::tests::test_blockquote ... ok
[INFO] [stdout] test probe::tests::test_child_process_probe_key ... ok
[INFO] [stdout] test probe::tests::test_child_process_probe_returns_string_or_empty ... ok
[INFO] [stdout] test probe::tests::test_client_addr_probe ... ok
[INFO] [stdout] test probe::tests::test_process_basename_empty ... ok
[INFO] [stdout] test probe::tests::test_pid_probe ... ok
[INFO] [stdout] test probe::tests::test_process_basename_full_path ... ok
[INFO] [stdout] test probe::tests::test_process_basename_simple_name ... ok
[INFO] [stdout] test probe::tests::test_shell_cwd_probe_returns_path_for_self ... ok
[INFO] [stdout] test probe::tests::test_process_basename_single_slash ... ok
[INFO] [stdout] test probe::tests::test_cwd_probe ... ok
[INFO] [stdout] test probe::tests::test_collect_all_skips_none ... ok
[INFO] [stdout] test probe::tests::test_shell_cwd_probe_returns_none_for_bad_pid ... ok
[INFO] [stdout] test screen_capture::tests::capture_history_zero ... ok
[INFO] [stdout] test screen_capture::tests::captures_simple_output ... ok
[INFO] [stdout] test screen_capture::tests::capture_history_returns_recent_rows ... ok
[INFO] [stdout] test screen_capture::tests::capture_history_smaller_than_visible ... ok
[INFO] [stdout] test screen_capture::tests::capture_visible_strips_trailing_blanks ... ok
[INFO] [stdout] test screen_capture::tests::handles_ansi_sequences ... ok
[INFO] [stdout] test screen_capture::tests::resize_changes_size ... ok
[INFO] [stdout] test screen_capture::tests::ignores_osc_sequences ... ok
[INFO] [stdout] test shell_hook::tests::test_non_bash_returns_none ... ok
[INFO] [stdout] test screen_capture::tests::resize_noop_when_unchanged ... ok
[INFO] [stdout] test shell_hook::tests::test_zsh_hook_content_has_osc133_sequences ... ok
[INFO] [stdout] test shell_hook::tests::test_hook_content_has_osc133_sequences ... ok
[INFO] [stdout] test shell_hook::tests::test_hook_content_includes_cwd ... ok
[INFO] [stdout] test shell_input::tests::test_backspace ... ok
[INFO] [stdout] test shell_input::tests::test_basic_typing ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_c_clears ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_r_then_enter_clears_pending_on_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_reset_on_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_when_point_at_end ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_not_at_end_when_point_mid_line ... ok
[INFO] [stdout] test shell_input::tests::test_enter_clears ... ok
[INFO] [stdout] test shell_input::tests::test_esc_sequence_skipped ... ok
[INFO] [stdout] test shell_input::tests::test_esc_sequence_then_typing ... ok
[INFO] [stdout] test shell_input::tests::test_ignores_csi_13337_after_enter ... ok
[INFO] [stdout] test shell_input::tests::test_ignores_input_after_enter ... ok
[INFO] [stdout] test shell_input::tests::test_inject ... ok
[INFO] [stdout] test shell_input::tests::test_on_prompt_bumps_even_when_empty ... ok
[INFO] [stdout] test shell_input::tests::test_pending_report_suppresses_change ... ok
[INFO] [stdout] test shell_input::tests::test_pending_rl_report_auto_clears_after_timeout ... ok
[INFO] [stdout] test shell_input::tests::test_prompt_cycle_with_enter ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_clears_pending ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_ignored_when_not_at_prompt ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_same_content_no_bump ... ok
[INFO] [stdout] test shell_input::tests::test_set_readline_updates_input ... ok
[INFO] [stdout] test shell_input::tests::test_tab_not_appended ... ok
[INFO] [stdout] test shell_input::tests::test_take_change ... ok
[INFO] [stdout] test pending_notices::tests::expired_expectation_is_not_consumed ... ok
[INFO] [stdout] test shell_hook::tests::test_zsh_hook_preserves_original_zdotdir ... ok
[INFO] [stdout] test tests::test_alt_screen_embedded_in_output ... ok
[INFO] [stdout] test shell_hook::tests::test_bash_returns_rcfile_path ... ok
[INFO] [stdout] test tests::test_alt_screen_ignores_unrelated_sequences ... ok
[INFO] [stdout] test tests::test_alt_screen_integration_with_interceptor ... ok
[INFO] [stdout] test tests::test_alt_screen_no_duplicate_events ... ok
[INFO] [stdout] test tests::test_alt_screen_split_across_chunks ... ok
[INFO] [stdout] test tests::test_col_tracker_ascii ... ok
[INFO] [stdout] test tests::test_alt_screen_detect_1049h ... ok
[INFO] [stdout] test tests::test_alt_screen_detect_47h ... ok
[INFO] [stdout] test tests::test_col_tracker_cjk_with_colors ... ok
[INFO] [stdout] test tests::test_col_tracker_cjk_wide_chars ... ok
[INFO] [stdout] test tests::test_col_tracker_emoji ... ok
[INFO] [stdout] test tests::test_col_tracker_skips_csi ... ok
[INFO] [stdout] test tests::test_col_tracker_skips_osc ... ok
[INFO] [stdout] test tests::test_col_tracker_typical_prompt ... ok
[INFO] [stdout] test shell_hook::tests::test_zsh_returns_zdotdir ... ok
[INFO] [stdout] test tests::test_command_basename_empty ... ok
[INFO] [stdout] test tests::test_command_basename_simple ... ok
[INFO] [stdout] test tests::test_command_basename_with_args ... ok
[INFO] [stdout] test tests::test_command_basename_with_path ... ok
[INFO] [stdout] test tests::test_dsr_non_r_final_aborts ... ok
[INFO] [stdout] test tests::test_dsr_non_csi_esc_aborts ... ok
[INFO] [stdout] test tests::test_dsr_complete_response ... ok
[INFO] [stdout] test tests::test_dsr_normal_input_passes_through ... ok
[INFO] [stdout] test tests::test_dsr_row_1_col_1 ... ok
[INFO] [stdout] test tests::test_history_navigation ... ok
[INFO] [stdout] test tests::test_parse_index_expr_comma_separated ... ok
[INFO] [stdout] test tests::test_parse_index_expr_dedup ... ok
[INFO] [stdout] test tests::test_parse_index_expr_invalid ... ok
[INFO] [stdout] test tests::test_parse_index_expr_mixed ... ok
[INFO] [stdout] test tests::test_parse_index_expr_range ... ok
[INFO] [stdout] test tests::test_parse_index_expr_single ... ok
[INFO] [stdout] test tests::test_parse_index_expr_spaces ... ok
[INFO] [stdout] test tests::test_row_tracker_clear_screen ... ok
[INFO] [stdout] test tests::test_row_tracker_cup_with_params ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_up_down ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_home ... ok
[INFO] [stdout] test tests::test_row_tracker_cursor_up_saturates ... ok
[INFO] [stdout] test tests::test_row_tracker_newline ... ok
[INFO] [stdout] test tests::test_should_buffer_command_complete ... ok
[INFO] [stdout] test tests::test_should_buffer_io_data ... ok
[INFO] [stdout] test tests::test_should_not_buffer_other_types ... ok
[INFO] [stdout] test tests::test_should_not_buffer_session_start ... ok
[INFO] [stdout] test tests::test_tmux_title_in_tmux ... ok
[INFO] [stdout] test tests::test_tmux_title_command_name ... ok
[INFO] [stdout] test tests::test_tmux_title_not_in_tmux ... ok
[INFO] [stdout] test throttle::tests::test_cap_boundary ... ok
[INFO] [stdout] test throttle::tests::test_requests_cap_boundary ... ok
[INFO] [stdout] test throttle::tests::test_requests_cap_stops_sending ... ok
[INFO] [stdout] test throttle::tests::test_under_cap_sends ... ok
[INFO] [stdout] test throttle::tests::test_reset_returns_to_normal ... ok
[INFO] [stdout] test throttle::tests::test_hard_cap_stops_sending ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_cursor_to ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_empty_layout ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_push_regions ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_hide ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_redraw_all_with_content ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_hide_then_update_reshows ... ok
[INFO] [stdout] test screen_capture::tests::capture_history_large_window_includes_all ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_height_decrease ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_region_offset ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_height_increase ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_with_empty_lines_hides ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_editor_wrap_redraw_283 ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_relative_editor_redraw ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_scroll_view_grows ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_update_last_region ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_bottom_has_scroll_up_and_insert_line ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_update_sequence ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_contains_message ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_has_dim_formatting ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_preserves_cursor ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_top_has_insert_line_and_move_down ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_truncates_to_max_cols ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_exact ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_render_no_newline ... ok
[INFO] [stdout] test tests::test_extract_and_mirror_plugins_full_mirror_semantics ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_long ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_cursor_at_top_row ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_tiny_max ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_full_screen_cursor_at_short_prompt ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_full_screen_cursor_on_last_row ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_mid_screen_cursor ... ok
[INFO] [stdout] test widgets::inline_notice::tests::test_truncate_short ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_sequential_top_notices ... ok
[INFO] [stdout] test widgets::inline_notice::tests::vt100_sequential_notices ... ok
[INFO] [stdout] test tests::test_buffer_cap_drops_oldest ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back_at_start_returns_false ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back_merges_lines ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_forward ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_forward_merges_lines ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_paste_block_two_step ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_chars ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_cjk ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_mid_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_empty_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_end_of_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_insert_paste_block_mid_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_kill_to_start ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_line_accessor ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_home_end ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_at_start ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_right ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_left_wraps_to_prev_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_right_wraps_to_next_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_up_clamps_col ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_up_down ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_word_left ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_move_word_right ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_new_editor_is_empty ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_newline ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_empty ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_multiline ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_single_line ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_delete_back ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_render_with_ghost ... ok
[INFO] [stdout] test widgets::line_editor::tests::test_set_content ... ok
[INFO] [stdout] test widgets::line_status::tests::append_adds_line ... ok
[INFO] [stdout] test widgets::line_status::tests::append_multiple_lines ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_after_show_restores_invisible ... ok
[INFO] [stdout] test widgets::line_status::tests::append_contains_all_text ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_erases_text_completely ... ok
[INFO] [stdout] test widgets::line_status::tests::clear_when_empty_is_empty_string ... ok
[INFO] [stdout] test widgets::line_status::tests::max_lines_hides_old_lines ... ok
[INFO] [stdout] test widgets::line_status::tests::new_is_not_visible ... ok
[INFO] [stdout] test widgets::line_status::tests::multiline_text_counts_correctly ... ok
[INFO] [stdout] test widgets::line_status::tests::short_line_not_truncated ... ok
[INFO] [stdout] test widgets::line_status::tests::show_makes_visible ... ok
[INFO] [stdout] test widgets::line_status::tests::max_lines_unlimited ... ok
[INFO] [stdout] test widgets::line_status::tests::short_response_after_clear_has_no_residue ... ok
[INFO] [stdout] test widgets::line_status::tests::show_replaces_previous ... ok
[INFO] [stdout] test widgets::line_status::tests::show_replace_shorter_text_no_residue ... ok
[INFO] [stdout] test widgets::line_status::tests::show_resets_content_after_append ... ok
[INFO] [stdout] test widgets::line_status::tests::test_lines_accessor ... ok
[INFO] [stdout] test widgets::line_status::tests::show_then_clear_then_show_works ... ok
[INFO] [stdout] test widgets::line_status::tests::truncate_long_line ... ok
[INFO] [stdout] test widgets::line_status::tests::unlimited_cols_no_truncation ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_append_and_clear ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_multiline_with_one_wrapped_erase ... ignored
[INFO] [stdout] test widgets::line_status::tests::vt100_wrapped_line_erase_has_residue ... ignored
[INFO] [stdout] test widgets::menu::tests::test_build_path ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_max_lines_shows_tail ... ok
[INFO] [stdout] test widgets::menu::tests::test_edit_cursor_col ... ok
[INFO] [stdout] test widgets::menu::tests::test_edit_cursor_col_cjk_value ... ok
[INFO] [stdout] test widgets::menu::tests::test_edit_cursor_col_cjk_label ... ok
[INFO] [stdout] test widgets::menu::tests::test_edit_cursor_col_truncation ... ok
[INFO] [stdout] test widgets::line_status::tests::vt100_multiline_varying_widths_erase ... ok
[INFO] [stdout] test widgets::menu::tests::test_lines_below_cursor ... ok
[INFO] [stdout] test widgets::menu::tests::test_empty_menu_returns_done ... ok
[INFO] [stdout] test widgets::menu::tests::test_menu_item_label ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_full_basic ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_editing ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_select ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_submenu ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_text_input ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_with_scroll ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_hint_toggle ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_submenu ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_select ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_text_input ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_text_input_empty ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_toggle_off ... ok
[INFO] [stdout] test widgets::menu::tests::test_render_menu_item_toggle_on ... ok
[INFO] [stdout] test widgets::picker::tests::test_build_shortcut_map ... ok
[INFO] [stdout] test widgets::menu::tests::test_total_lines ... ok
[INFO] [stdout] test widgets::picker::tests::test_build_shortcut_map_first_wins ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_basic ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_mid_text ... ok
[INFO] [stdout] test widgets::picker::tests::test_extract_shortcut_none ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_cleanup_erases_widget ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_cleanup_scrolled_list ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_scrolled_down ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_single_select ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_with_disabled ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_multi_select ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_multi ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_single ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_hint_with_scroll_indicator ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_forbidden ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_full_with_scroll_shows_viewport ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_key ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_lock ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_multi_unchecked ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_normal ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_selected ... ok
[INFO] [stdout] test widgets::picker::tests::test_visible_count_large_list ... ok
[INFO] [stdout] test widgets::picker::tests::test_visible_count_small_list ... ok
[INFO] [stdout] test widgets::scroll_view::tests::compact_mode_truncates_long_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_clear_resets_everything ... ok
[INFO] [stdout] test widgets::scroll_view::tests::expanded_mode_preserves_full_long_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_lines_fewer_than_height ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_shows_tail ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_compact_rendered_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_empty_clear ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_exit_browse ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_enter_browse ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_few_lines_compact ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_expanded_rendered_lines ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_new_is_compact ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_no_scrollbar_when_fits ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_push_line_adds_content ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_push_in_expanded_no_output ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_down ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_in_compact_is_noop ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scrollbar_position ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scroll_up ... ok
[INFO] [stdout] test widgets::scroll_view::tests::test_scrollbar_present_when_content_exceeds_viewport ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_clear_erases_all ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_compact_push_and_clear_no_residue ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_compact_wrapped_erase_has_residue ... ignored
[INFO] [stdout] test widgets::scroll_view::tests::vt100_compact_tail_view ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_expand_and_shrink ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_expanded_wrapped_lines_erase_clean ... ok
[INFO] [stdout] test widgets::text_view::tests::test_text_view_empty ... ok
[INFO] [stdout] test widgets::scroll_view::tests::vt100_expanded_narrow_terminal_hint_wraps ... ok
[INFO] [stdout] test widgets::text_view::tests::test_text_view_stores_lines ... ok
[INFO] [stdout] test shell_input::tests::test_ctrl_u_clears ... ok
[INFO] [stdout] test shell_input::tests::test_cursor_at_end_default_when_no_point ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_update_same_height ... ok
[INFO] [stdout] test widgets::chat_layout::tests::test_vt100_editor_wrap_exact_boundary ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_disabled_selected ... ok
[INFO] [stdout] test widgets::picker::tests::test_render_item_multi_checked ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 471 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_common-c71df7bc4094143e)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test auth::tests::test_load_token_missing_file ... ok
[INFO] [stdout] test auth::tests::test_generate_token_length ... ok
[INFO] [stdout] test auth::tests::test_generate_token_unique ... ok
[INFO] [stdout] test auth::tests::test_load_or_create_token_reuses_existing ... ok
[INFO] [stdout] test config::tests::test_daemon_config_serializes_to_toml ... ok
[INFO] [stdout] test auth::tests::test_load_or_create_token_creates_new ... ok
[INFO] [stdout] test config_edit::tests::test_remove_out_of_bounds ... ok
[INFO] [stdout] test config_edit::tests::test_preserves_formatting ... ok
[INFO] [stdout] test config_edit::tests::test_append_to_empty_array ... ok
[INFO] [stdout] test config_edit::tests::test_remove_from_array ... ok
[INFO] [stdout] test config_edit::tests::test_append_to_existing_array ... ok
[INFO] [stdout] test config_edit::tests::test_remove_toml_table ... ok
[INFO] [stdout] test config::tests::test_sanitize_toml_duplicate_tables ... ok
[INFO] [stdout] test config::tests::test_sanitize_toml_duplicate_keys ... ok
[INFO] [stdout] test config_edit::tests::test_replace_out_of_bounds ... ok
[INFO] [stdout] test config_edit::tests::test_replace_in_array ... ok
[INFO] [stdout] test config_edit::tests::test_removes_commented_key ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_deeply_nested_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_creates_file_if_missing ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_bool_value ... ok
[INFO] [stdout] test config_edit::tests::test_set_bool_value ... ok
[INFO] [stdout] test config_edit::tests::test_split_key_path ... ok
[INFO] [stdout] test config_edit::tests::test_set_string_value ... ok
[INFO] [stdout] test update::tests::test_compare_versions ... ok
[INFO] [stdout] test update::tests::test_extract_version ... ok
[INFO] [stdout] test plugin_bundle::tests::missing_dir_yields_empty_bundle ... ok
[INFO] [stdout] test config_edit::tests::test_set_new_key ... ok
[INFO] [stdout] test update::tests::test_normalize_version ... ok
[INFO] [stdout] test config_edit::tests::test_set_nested_with_dotted_key ... ok
[INFO] [stdout] test plugin_bundle::tests::checksum_changes_on_content_change ... ok
[INFO] [stdout] test plugin_bundle::tests::checksum_stable_across_builds ... ok
[INFO] [stdout] test update::tests::test_prune_packages ... ok
[INFO] [stdout] test plugin_bundle::tests::dotfiles_skipped ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_test.rs (/opt/rustwide/target/debug/deps/config_test-1abcfbfcfe7cdd9e)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test test_client_config_defaults ... ok
[INFO] [stdout] test test_daemon_config_defaults ... ok
[INFO] [stdout] test test_int_fields_still_accept_native_integers ... ok
[INFO] [stdout] test test_int_fields_accept_string_values ... ok
[INFO] [stdout] test test_load_client_config_missing_file_returns_default ... ok
[INFO] [stdout] test test_load_daemon_config_duplicate_table_recovers ... ok
[INFO] [stdout] test test_parse_daemon_config ... ok
[INFO] [stdout] test test_load_daemon_config_missing_file_returns_default ... ok
[INFO] [stdout] test test_omnish_dir ... ok
[INFO] [stdout] test test_parse_client_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_context-d6d929a9d49accaa)
[INFO] [stdout] 
[INFO] [stdout] running 56 tests
[INFO] [stdout] test format_utils::tests::test_relative_time_hours ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_future ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_days ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_seconds ... ok
[INFO] [stdout] test format_utils::tests::test_relative_time_minutes ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_by_chars_head_tail ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_triple_letter ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_long_line_truncated ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_short_lines_unchanged ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_line_width_zero_is_noop ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_long ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_short ... ok
[INFO] [stdout] test format_utils::tests::test_truncate_lines_by_chars ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_no_hostname_fallback ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_current_first ... ok
[INFO] [stdout] test format_utils::tests::test_assign_labels_single_session ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_double_letter ... ok
[INFO] [stdout] test format_utils::tests::test_term_name_single_letter ... ok
[INFO] [stdout] test recent::tests::test_command_format_with_hostname_and_cwd ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_current_path_appended ... ok
[INFO] [stdout] test recent::tests::test_build_context_empty ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_custom_output_char_limit ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_empty ... ok
[INFO] [stdout] test recent::tests::test_build_context_interleaved ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_history_and_recent_sections ... ok
[INFO] [stdout] test recent::tests::test_build_context_filters_direction ... ok
[INFO] [stdout] test recent::tests::test_build_context_strips_command_echo ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_no_term_labels ... ok
[INFO] [stdout] test recent::tests::test_build_context_splits_history_and_detailed ... ok
[INFO] [stdout] test recent::tests::test_build_context_ensures_min_current_session_detailed ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_interleaved_by_time ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_plain_text_format ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_output_char_limit ... ok
[INFO] [stdout] test recent::tests::test_completion_formatter_stable_across_sessions ... ok
[INFO] [stdout] test recent::tests::test_build_context_grouped ... ok
[INFO] [stdout] test recent::tests::test_format_includes_cwd ... ok
[INFO] [stdout] test recent::tests::test_format_sections_cutoff_none_all_in_stable_prefix ... ok
[INFO] [stdout] test recent::tests::test_grouped_empty ... ok
[INFO] [stdout] test recent::tests::test_format_sections_stable_prefix_byte_stable_across_new_commands ... ok
[INFO] [stdout] test recent::tests::test_grouped_multi_session ... ok
[INFO] [stdout] test recent::tests::test_grouped_displays_current_path_at_end ... ok
[INFO] [stdout] test recent::tests::test_format_sections_empty_history_and_detailed ... ok
[INFO] [stdout] test recent::tests::test_format_sections_concat_equals_format ... ok
[INFO] [stdout] test recent::tests::test_format_sections_split_by_cutoff ... ok
[INFO] [stdout] test recent::tests::test_history_format_with_hostname_and_cwd ... ok
[INFO] [stdout] test recent::tests::test_interleaved_empty ... ok
[INFO] [stdout] test recent::tests::test_interleaved_marks_current ... ok
[INFO] [stdout] test recent::tests::test_interleaved_sorted_by_time ... ok
[INFO] [stdout] test recent::tests::test_select_empty ... ok
[INFO] [stdout] test recent::tests::test_grouped_single_session ... ok
[INFO] [stdout] test recent::tests::test_select_max_recent ... ok
[INFO] [stdout] test recent::tests::test_select_and_split_ensures_min_current_detailed ... ok
[INFO] [stdout] test recent::tests::test_grouped_with_history ... ok
[INFO] [stdout] test recent::tests::test_grouped_with_hostname ... ok
[INFO] [stdout] test recent::tests::test_separator_added_after_command ... ok
[INFO] [stdout] test recent::tests::test_select_min_current_session_commands ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_daemon-ab473aa0449492ec)
[INFO] [stdout] 
[INFO] [stdout] running 135 tests
[INFO] [stdout] test clients_history::tests::forget_by_addr_removes_all_hostnames ... ok
[INFO] [stdout] test clients_history::tests::list_is_sorted ... ok
[INFO] [stdout] test clients_history::tests::load_missing_file_is_empty ... ok
[INFO] [stdout] test clients_history::tests::prune_drops_stale_entries ... ok
[INFO] [stdout] test clients_history::tests::touch_distinguishes_addr_and_host ... ok
[INFO] [stdout] test cleanup::tests::test_create_disk_cleanup_job ... ok
[INFO] [stdout] test conversation_mgr::tests::test_effective_title_label_when_both_unset ... ok
[INFO] [stdout] test clients_history::tests::save_load_roundtrip ... ok
[INFO] [stdout] test conversation_mgr::tests::test_empty_thread_load ... ok
[INFO] [stdout] test conversation_mgr::tests::test_delete_thread_removes_meta ... ok
[INFO] [stdout] test conversation_mgr::tests::test_append_and_load_raw ... ok
[INFO] [stdout] test conversation_mgr::tests::test_create_and_get_latest ... ok
[INFO] [stdout] test conversation_mgr::tests::test_get_all_exchanges_with_tool_use ... ok
[INFO] [stdout] test conversation_mgr::tests::test_delete_thread ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_array_form ... ok
[INFO] [stdout] test conversation_mgr::tests::test_is_user_tool_result_only ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_no_change_when_absent ... ok
[INFO] [stdout] test conversation_mgr::tests::test_interrupt_stored_as_raw_messages ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_parallel_tool_results ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_single_tool ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_user_query_into_tail_plain_string ... ok
[INFO] [stdout] test conversation_mgr::tests::test_load_from_disk_on_startup ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_user_query_into_tail_already_merged ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_user_query_into_tail_tool_result_only ... ok
[INFO] [stdout] test conversation_mgr::tests::test_get_all_exchanges ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_multiple_interrupts ... ok
[INFO] [stdout] test conversation_mgr::tests::test_is_user_message ... ok
[INFO] [stdout] test conversation_mgr::tests::test_meta_save_and_load ... ok
[INFO] [stdout] test conversation_mgr::tests::test_sanitize_orphaned_tool_use_no_result ... ok
[INFO] [stdout] test conversation_mgr::tests::test_meta_default_empty ... ok
[INFO] [stdout] test conversation_mgr::tests::test_plain_query_stored_without_system_reminder ... ok
[INFO] [stdout] test conversation_mgr::tests::test_sanitize_orphaned_tool_use_followed_by_user_query ... ok
[INFO] [stdout] test conversation_mgr::tests::test_merge_interrupt_markers_orphan_event ... ok
[INFO] [stdout] test conversation_mgr::tests::test_sanitize_partial_tool_results ... ok
[INFO] [stdout] test conversation_mgr::tests::test_sanitize_valid_tool_use_unchanged ... ok
[INFO] [stdout] test conversation_mgr::tests::test_thread_meta_sandbox_disabled_roundtrip ... ok
[INFO] [stdout] test conversation_mgr::tests::test_set_sandbox_disabled_persists ... ok
[INFO] [stdout] test conversation_mgr::tests::test_tool_use_messages_preserved ... ok
[INFO] [stdout] test deploy::tests::parse_target_invalid ... ok
[INFO] [stdout] test deploy::tests::parse_target_valid ... ok
[INFO] [stdout] test clients_history::tests::touch_inserts_and_updates ... ok
[INFO] [stdout] test conversation_mgr::tests::test_sanitize_persisted_on_load ... ok
[INFO] [stdout] test formatter_mgr::tests::test_builtin_formatter_default ... ok
[INFO] [stdout] test conversation_mgr::tests::test_update_meta_preserves_concurrent_field_changes ... ok
[INFO] [stdout] test conversation_mgr::tests::test_title_override_round_trip ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_with_mock_llm ... ok
[INFO] [stdout] test formatter_mgr::tests::test_unknown_formatter_falls_back_to_default ... ok
[INFO] [stdout] test formatter_mgr::tests::test_builtin_formatter_edit ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_no_hourly_summaries ... ok
[INFO] [stdout] test file_watcher::tests::test_multiple_watches ... ok
[INFO] [stdout] test file_watcher::tests::test_watch_returns_receiver ... ok
[INFO] [stdout] test hourly_summary::tests::test_generate_hourly_summary_empty_commands ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_skipped_if_already_exists ... ok
[INFO] [stdout] test daily_notes::tests::test_generate_daily_note_no_llm ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_skipped_without_api_key ... ok
[INFO] [stdout] test plugin::tests::test_merge_precedence ... ok
[INFO] [stdout] test plugin::tests::test_malformed_json_skipped ... ok
[INFO] [stdout] test plugin::tests::test_no_prompt_json_keeps_original ... ok
[INFO] [stdout] test plugin::tests::test_plugin_executable ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_append_description ... ok
[INFO] [stdout] test plugin::tests::test_auto_install_web_search_when_api_key_present ... ok
[INFO] [stdout] test plugin::tests::test_duplicate_tool_name_skipped ... ok
[INFO] [stdout] test plugin::tests::test_load_empty_dir ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_description_takes_priority_over_append ... ok
[INFO] [stdout] test plugin::tests::test_load_single_plugin ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_multiline_description ... ok
[INFO] [stdout] test plugin::tests::test_prompt_json_replace_description ... ok
[INFO] [stdout] test plugin::tests::test_reload_overrides_picks_up_changes ... ok
[INFO] [stdout] test plugin::tests::test_rescan_picks_up_new_plugin_dir ... ok
[INFO] [stdout] test plugin::tests::test_rescan_is_idempotent_for_known_plugin ... ok
[INFO] [stdout] test plugin::tests::test_register_all_populates_registry ... ok
[INFO] [stdout] test plugin::tests::test_rescan_removes_deleted_plugin_dir ... ok
[INFO] [stdout] test plugin::tests::test_rescan_preserves_plugins_when_dir_unreadable ... ok
[INFO] [stdout] test plugin::tests::test_rescan_unloads_when_config_disables_existing_plugin ... ok
[INFO] [stdout] test plugin::tests::test_rescan_respects_disabled_config ... ok
[INFO] [stdout] test plugin_bundle::tests::missing_dir_rebuild_returns_empty ... ok
[INFO] [stdout] test plugin_bundle::tests::rebuild_and_snapshot_round_trip ... ok
[INFO] [stdout] test plugin_bundle::tests::rebuild_coalesces_within_window ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_accepts_single_dir_with_tool_json ... ok
[INFO] [stdout] test plugin_install::tests::extract_tar_gz_unpacks_valid_archive ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_ignores_dotfiles ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_rejects_empty ... ok
[INFO] [stdout] test plugin_install::tests::merge_dir_recurses_into_subdirectories ... ok
[INFO] [stdout] test plugin_install::tests::merge_dir_overwrites_and_preserves ... ok
[INFO] [stdout] test formatter_mgr::tests::test_external_formatter_echo ... ok
[INFO] [stdout] test plugin_install::tests::install_plugin_end_to_end_via_local_path ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_rejects_root_file ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_rejects_missing_tool_json ... ok
[INFO] [stdout] test plugin_install::tests::validate_structure_rejects_multiple_top_dirs ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs_comprehensive ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs_edge_cases ... ok
[INFO] [stdout] test session_mgr::tests::test_cleanup_expired_dirs ... ok
[INFO] [stdout] test session_mgr::tests::test_list_clients_dedupes_by_deploy_addr_and_hostname ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_shows_only_active_with_dead_stats ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_with_multiple_dead_sessions ... ok
[INFO] [stdout] test session_mgr::tests::test_list_clients_includes_persisted_history_with_inactive_flag ... ok
[INFO] [stdout] test session_mgr::tests::test_format_sessions_list_demo_output ... ok
[INFO] [stdout] test session_mgr::tests::test_list_clients_overlays_active_on_persisted ... ok
[INFO] [stdout] test session_mgr::tests::test_load_existing_restores_sessions ... ok
[INFO] [stdout] test thread_summary::tests::test_needs_summary_logic ... ok
[INFO] [stdout] test thread_summary::tests::test_skip_empty_threads ... ok
[INFO] [stdout] test session_mgr::tests::test_stable_prefix_byte_stable_after_new_command ... ok
[INFO] [stdout] test session_mgr::tests::test_load_existing_cleans_up_expired_dirs ... ok
[INFO] [stdout] test thread_summary::tests::test_normalize_title_word ... ok
[INFO] [stdout] test tool_registry::tests::test_plugin_type_lookup ... ok
[INFO] [stdout] test tool_registry::tests::test_formatter_lookup ... ok
[INFO] [stdout] test tool_registry::tests::test_status_text_with_custom_fn ... ok
[INFO] [stdout] test tool_registry::tests::test_override_updates ... ok
[INFO] [stdout] test tool_registry::tests::test_register_and_lookup_display_name ... ok
[INFO] [stdout] test tool_registry::tests::test_status_text_with_template ... ok
[INFO] [stdout] test tool_registry::tests::test_unregister_by_plugin ... ok
[INFO] [stdout] test thread_summary::tests::test_title_override_not_touched_by_summary_loop ... ok
[INFO] [stdout] test thread_summary::tests::test_skip_when_no_llm ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_unknown_when_no_commands_and_no_live ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_prefers_live_cwd_over_command_record ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_unknown_when_no_source ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_fallback_ignores_other_sessions ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_falls_back_to_last_command_cwd ... ok
[INFO] [stdout] test tools::command_query::tests::test_register_custom_status_text ... ok
[INFO] [stdout] test tools::command_query::tests::test_register_command_query_tools ... ok
[INFO] [stdout] test formatter_mgr::tests::test_external_formatter_sequential ... ok
[INFO] [stdout] test tools::command_query::tests::test_failed_command_shows_failed_marker ... ok
[INFO] [stdout] test update_cache::tests::check_update_newer ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_without_commands ... ok
[INFO] [stdout] test tools::command_query::tests::test_cwd_unknown_when_only_other_session_commands ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_limits_to_last_n_commands ... ok
[INFO] [stdout] test update_cache::tests::extract_version_invalid ... ok
[INFO] [stdout] test update_cache::tests::checksum_file ... ok
[INFO] [stdout] test update_cache::tests::extract_version_valid ... ok
[INFO] [stdout] test update_cache::tests::compare_versions_semver ... ok
[INFO] [stdout] test update_cache::tests::normalize_version_strips_hash ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_uses_client_platform_info ... ok
[INFO] [stdout] test session_mgr::tests::test_max_context_chars_reduces_commands ... ok
[INFO] [stdout] test tools::command_query::tests::test_reminder_contains_time_and_structure ... ok
[INFO] [stdout] test plugin_bundle::tests::rebuild_refreshes_after_content_change ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish_daemon-855ffb432125792d)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 135 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.59s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test config_schema::tests::test_all_schema_paths_covered_by_config_watcher ... ignored
[INFO] [stdout] test config_schema::tests::test_resolve_value_nested ... ok
[INFO] [stdout] test config_schema::tests::test_resolve_value_top_level ... ok
[INFO] [stdout] test config_schema::tests::test_parse_schema ... ok
[INFO] [stdout] test config_schema::tests::test_resolve_options_from_backends ... ok
[INFO] [stdout] test config_watcher::tests::test_config_section_hash_eq ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_generates_plugin_items ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_detects_sandbox_change ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_detects_client_change ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_empty_rules ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_no_change_no_notify ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_plugin_reads_existing_values ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_empty_config ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_second_matches ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_none_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_case_sensitive ... ok
[INFO] [stdout] test sandbox_rules::tests::test_bypass_or_logic_first_matches ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_contains_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_contains_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_valid_rules ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_equals_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_equals_no_match ... ok
[INFO] [stdout] test config_watcher::tests::test_reload_invalid_toml_keeps_current ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_missing_field ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_non_string_field ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_starts_with_no_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_contains ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_empty_string ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_returns_handlers ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_starts_with_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_equals ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_generates_existing_backend_items ... ok
[INFO] [stdout] test config_schema::tests::test_build_config_items_includes_leaf_items ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_missing_value ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_single_token ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_starts_with ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_value_with_spaces ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_unknown_operator ... ok
[INFO] [stdout] test sandbox_rules::tests::test_toml_deserialization ... ok
[INFO] [stdout] test sandbox_rules::tests::test_toml_empty_sandbox ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_bracket_inside_string ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_code_fenced ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_empty ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_empty_input ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_multiline_prose_rejected ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_multiple_arrays_with_prose ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_plaintext_rejected ... ok
[INFO] [stdout] test server::tests::test_parse_completion_suggestions_string_array ... ok
[INFO] [stdout] test server::tests::test_short_host ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_invalid_regex ... ok
[INFO] [stdout] test sandbox_rules::tests::test_compile_skips_invalid_rules ... ok
[INFO] [stdout] test server::tests::test_unwrap_thinking_tags ... ok
[INFO] [stdout] test server::tests::test_thinking_to_markdown ... ok
[INFO] [stdout] test sandbox_rules::tests::test_parse_matches ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_matches_match ... ok
[INFO] [stdout] test sandbox_rules::tests::test_eval_matches_no_match ... ok
[INFO] [stdout] test server::tests::test_concurrent_completion_requests ... ok
[INFO] [stdout] test server::tests::test_concurrent_completion_requests_different_sessions ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 57 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/chat_cache_hints_test.rs (/opt/rustwide/target/debug/deps/chat_cache_hints_test-b403bee21c821d3a)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test handles_empty_list ... ok
[INFO] [stdout] test handles_single_message ... ok
[INFO] [stdout] test marks_last_two_messages_long ... ok
[INFO] [stdout] test resets_old_marks_before_setting_new ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/daemon_test.rs (/opt/rustwide/target/debug/deps/daemon_test-7ee5ccc5c90cdb1b)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_command_recording_via_receive_command ... ok
[INFO] [stdout] test test_multi_command_session_e2e ... ok
[INFO] [stdout] test test_ended_session_commands_visible_to_new_session_context ... ok
[INFO] [stdout] test test_nested_session_parent_child_relationship ... ok
[INFO] [stdout] test test_commands_persisted_on_session_end ... ok
[INFO] [stdout] test test_debug_context_request ... ok
[INFO] [stdout] test test_register_idempotent_reuses_existing_session ... ok
[INFO] [stdout] test test_session_end ... ok
[INFO] [stdout] test test_session_register_with_parent ... ok
[INFO] [stdout] test test_interleaved_two_session_context_at_10_and_20_commands ... ok
[INFO] [stdout] test test_session_register_and_list ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_llm-b61a19cc3d7cc428)
[INFO] [stdout] 
[INFO] [stdout] running 59 tests
[INFO] [stdout] test anthropic::tests::opus_version_detection ... ok
[INFO] [stdout] test anthropic::tests::thinking_enabled_manual_emits_budget_tokens ... ok
[INFO] [stdout] test anthropic::tests::thinking_disabled_emits_explicit_disabled ... ok
[INFO] [stdout] test anthropic::tests::thinking_enabled_on_opus_4_7_emits_adaptive ... ok
[INFO] [stdout] test anthropic::tests::thinking_none_omits_field ... ok
[INFO] [stdout] test anthropic::tests::anthropic_system_long_emits_1h_ttl ... ok
[INFO] [stdout] test anthropic::tests::anthropic_system_none_emits_no_cache_control ... ok
[INFO] [stdout] test anthropic::tests::anthropic_tool_cache_marks_that_tool ... ok
[INFO] [stdout] test anthropic::tests::anthropic_message_cache_marks_last_block ... ok
[INFO] [stdout] test anthropic::tests::anthropic_budget_keeps_last_n_message_marks ... ok
[INFO] [stdout] test anthropic::tests::anthropic_system_short_omits_ttl ... ok
[INFO] [stdout] test langfuse::tests::test_truncate_cjk_boundary ... ok
[INFO] [stdout] test langfuse::tests::test_truncate_long ... ok
[INFO] [stdout] test langfuse::tests::test_truncate_short ... ok
[INFO] [stdout] test langfuse::tests::test_uuid_v4_format ... ok
[INFO] [stdout] test factory::tests::test_resolve_api_key_with_echo ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_thinking_blocks ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_no_text_in_tool_use ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_tool_use ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_user_text_blocks_joined ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_empty_input ... ok
[INFO] [stdout] test openai_compat::tests::test_convert_extra_messages_user_mixed_tool_result_and_text ... ok
[INFO] [stdout] test factory::tests::test_resolve_api_key_missing ... ok
[INFO] [stdout] test factory::tests::test_create_openai_compat_without_base_url_fails ... ok
[INFO] [stdout] test factory::tests::test_unknown_backend_type ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_multiple_thinking_blocks ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_empty_think_block ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_with_thinking_tags ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_only_thinking_no_content ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_thinking_at_end ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_without_thinking_tags ... ok
[INFO] [stdout] test openai_compat::tests::test_extract_thinking_starts_with_think_no_newline ... ok
[INFO] [stdout] test openai_compat::tests::test_parse_message_content_skips_thinking_when_disabled ... ok
[INFO] [stdout] test openai_compat::tests::test_parse_message_content_array_form ... ok
[INFO] [stdout] test presets::tests::test_chat_providers_non_empty ... ok
[INFO] [stdout] test openai_compat::tests::test_parse_message_content_prefers_reasoning_content_over_inline_tag ... ok
[INFO] [stdout] test presets::tests::test_load_presets ... ok
[INFO] [stdout] test presets::tests::test_completion_providers_non_empty ... ok
[INFO] [stdout] test openai_compat::tests::test_parse_message_content_falls_back_to_inline_think_tag ... ok
[INFO] [stdout] test openai_compat::tests::test_parse_message_content_captures_reasoning_content ... ok
[INFO] [stdout] test prompt::tests::test_add_and_build ... ok
[INFO] [stdout] test prompt::tests::test_from_json_invalid ... ok
[INFO] [stdout] test prompt::tests::test_from_json_preserves_order ... ok
[INFO] [stdout] test prompt::tests::test_empty_build ... ok
[INFO] [stdout] test prompt::tests::test_default_chat_contains_all_sections ... ok
[INFO] [stdout] test prompt::tests::test_from_json_single_string ... ok
[INFO] [stdout] test prompt::tests::test_merge_appends_new ... ok
[INFO] [stdout] test prompt::tests::test_merge_replaces_matching ... ok
[INFO] [stdout] test template::tests::test_completion_instructions_static ... ok
[INFO] [stdout] test template::tests::test_completion_parts_instructions_are_static ... ok
[INFO] [stdout] test template::tests::test_chat_system_prompt_has_key_sections ... ok
[INFO] [stdout] test template::tests::test_completion_parts_empty_input ... ok
[INFO] [stdout] test template::tests::test_completion_parts_user_input ... ok
[INFO] [stdout] test template::tests::test_template_by_name_unknown ... ok
[INFO] [stdout] test template::tests::test_template_by_name_returns_some_for_known ... ok
[INFO] [stdout] test presets::tests::test_unknown_provider ... ok
[INFO] [stdout] test prompt::tests::test_from_json_lines_array ... ok
[INFO] [stderr]      Running tests/cache_hint_test.rs (/opt/rustwide/target/debug/deps/cache_hint_test-838f93ce47be97e6)
[INFO] [stdout] test factory::tests::test_create_anthropic_backend ... ok
[INFO] [stdout] test factory::tests::test_create_openai_compat_backend ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test cache_hint_default_is_none ... ok
[INFO] [stdout] test cache_hint_variants_distinct ... ok
[INFO] [stdout] test cache_hint_is_copy ... ok
[INFO] [stdout] test cached_text_constructs_with_hint ... ok
[INFO] [stdout] test tagged_message_default_hint_is_none ... ok
[INFO] [stdout] test tool_def_cache_serialized_roundtrip ... ok
[INFO] [stdout] test tool_def_cache_defaults_to_none_on_deserialize ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/llm_test.rs (/opt/rustwide/target/debug/deps/llm_test-b18f472cb5c3e552)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_llm_request_build ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_plugin-3bcfd3913cbb7b5a)
[INFO] [stdout] 
[INFO] [stdout] running 82 tests
[INFO] [stdout] test formatter::tests::edit_formatter_error_shows_message_and_old_string ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_error_no_old_string ... ok
[INFO] [stdout] test formatter::tests::default_formatter_after_error ... ok
[INFO] [stdout] test formatter::tests::default_formatter_after_success ... ok
[INFO] [stdout] test formatter::tests::default_formatter_truncates_full_over_50_lines ... ok
[INFO] [stdout] test formatter::tests::default_formatter_truncates_compact_to_5_lines ... ok
[INFO] [stdout] test formatter::tests::edit_summary_counts_only_changed_lines ... ok
[INFO] [stdout] test formatter::tests::read_formatter_compact_shows_line_count ... ok
[INFO] [stdout] test formatter::tests::read_formatter_error ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_numbered_diff ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_multiline_numbered ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_substring_replace_all ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_compact_limited_to_50 ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_summary_only_no_snippet ... ok
[INFO] [stdout] test formatter::tests::read_formatter_full_many_lines_shows_summary ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_deletion ... ok
[INFO] [stdout] test formatter::tests::write_formatter_empty ... ok
[INFO] [stdout] test formatter::tests::write_formatter_line_count ... ok
[INFO] [stdout] test tools::bash::tests::test_empty_command ... ok
[INFO] [stdout] test formatter::tests::write_formatter_single_line ... ok
[INFO] [stdout] test tools::edit::tests::test_ambiguous_without_replace_all ... ok
[INFO] [stdout] test tools::edit::tests::test_basic_edit ... ok
[INFO] [stdout] test tools::bash::tests::test_truncate_output ... ok
[INFO] [stdout] test tools::edit::tests::test_deletion_snippet ... ok
[INFO] [stdout] test tools::edit::tests::test_empty_old_string ... ok
[INFO] [stdout] test tools::edit::tests::test_edit_returns_numbered_context_snippet ... ok
[INFO] [stdout] test tools::edit::tests::test_large_common_suffix_is_truncated ... ok
[INFO] [stdout] test tools::edit::tests::test_multiline_edit ... ok
[INFO] [stdout] test tools::edit::tests::test_relative_path_rejected ... ok
[INFO] [stdout] test tools::edit::tests::test_not_found ... ok
[INFO] [stdout] test tools::edit::tests::test_same_string_rejected ... ok
[INFO] [stdout] test tools::edit::tests::test_replace_all ... ok
[INFO] [stdout] test tools::edit::tests::test_unchanged_lines_shown_as_context ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_basic ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_invalid_pattern ... ok
[INFO] [stdout] test tools::edit::tests::test_snippet_uses_correct_position_when_new_string_appears_earlier ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_missing_pattern ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_no_matches ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_relative_path_from_cwd ... ok
[INFO] [stdout] test formatter::tests::edit_formatter_replace_all_multiple ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_with_subdir_path ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_max_results ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_sensitive_no_match ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_content_mode ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_context_lines ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_case_insensitive ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_default_mode_is_files ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_count_mode ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_glob_filter ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_files_with_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_invalid_output_mode ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_invalid_regex ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_missing_pattern ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_head_limit ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_no_matches ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_offset ... ok
[INFO] [stdout] test tools::bash::tests::test_exit_code ... ok
[INFO] [stdout] test tools::bash::tests::test_stderr ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_timeout_param_accepted ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_single_file ... ok
[INFO] [stdout] test tools::bash::tests::test_invalid_cwd_fallback ... ok
[INFO] [stdout] test tools::bash::tests::test_echo ... ok
[INFO] [stdout] test tools::read::tests::test_long_line_truncation ... ok
[INFO] [stdout] test tools::read::tests::test_read_empty_path ... ok
[INFO] [stdout] test tools::read::tests::test_long_line_truncation_multibyte ... ok
[INFO] [stdout] test tools::read::tests::test_read_file ... ok
[INFO] [stdout] test tools::read::tests::test_read_nonexistent ... ok
[INFO] [stdout] test tools::read::tests::test_read_with_limit ... ok
[INFO] [stdout] test tools::read::tests::test_read_empty_file ... ok
[INFO] [stdout] test tools::write::tests::test_create_parent_dirs ... ok
[INFO] [stdout] test tools::read::tests::test_read_relative_path ... ok
[INFO] [stdout] test tools::write::tests::test_empty_path ... ok
[INFO] [stdout] test tools::read::tests::test_read_with_offset ... ok
[INFO] [stdout] test tools::write::tests::test_empty_content ... ok
[INFO] [stdout] test tools::write::tests::test_relative_path_rejected ... ok
[INFO] [stdout] test tools::glob::tests::test_glob_sorted_by_mtime ... ok
[INFO] [stdout] test tools::write::tests::test_overwrite_file ... ok
[INFO] [stdout] test tools::write::tests::test_write_new_file ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_multiline ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_type_filter ... ok
[INFO] [stdout] test tools::grep::tests::test_grep_regex ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/omnish_plugin-2c9d02c3a1101a73)
[INFO] [stdout] test tools::bash::tests::test_timeout ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 82 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s
[INFO] [stdout] 
[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] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_protocol-55c51a3ebd202758)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test message::tests::chat_ready_with_history_round_trips ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_start ... ok
[INFO] [stdout] test message::tests::message_variant_guard ... ok
[INFO] [stdout] test message::tests::test_frame_with_completion_request ... ok
[INFO] [stdout] test message::tests::completion_summary_extra_round_trips ... ok
[INFO] [stdout] test message::tests::test_frame_with_completion_response ... ok
[INFO] [stdout] test message::tests::test_frame_with_session_start ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_tool_status ... ok
[INFO] [stdout] test message::tests::test_frame_with_chat_message ... ok
[INFO] [stdout] test message::tests::test_frame_round_trip ... ok
[INFO] [stderr]      Running tests/message_test.rs (/opt/rustwide/target/debug/deps/message_test-e605ec5535603274)
[INFO] [stdout] test message::tests::test_frame_with_session_update ... ok
[INFO] [stdout] test message::tests::test_versions_compatible ... ok
[INFO] [stdout] test message::tests::variant_indices_are_stable ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_frame_magic_validation ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_pty-c4015f3f6e845227)
[INFO] [stdout] test test_session_start_without_parent ... ok
[INFO] [stdout] test test_session_start_roundtrip ... ok
[INFO] [stdout] test test_io_data_roundtrip ... ok
[INFO] [stdout] test test_session_start_with_parent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pty_test.rs (/opt/rustwide/target/debug/deps/pty_test-30eaa1172a1b2271)
[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] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_pty_spawn_returns_child_pid ... ok
[INFO] [stdout] test test_pty_spawn_and_read_output ... ok
[INFO] [stdout] test test_pty_env_var_propagated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.50s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_store-1aa6e3a56b12bfb0)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test completion::tests::test_csv_header ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_empty ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_identical ... ok
[INFO] [stdout] test sample::tests::test_similarity_completely_different ... ok
[INFO] [stdout] test sample::tests::test_levenshtein_one_edit ... ok
[INFO] [stdout] test sample::tests::test_similarity_identical ... ok
[INFO] [stdout] test sample::tests::test_similarity_near_miss ... ok
[INFO] [stdout] test session_update::tests::test_csv_format ... ok
[INFO] [stdout] test completion::tests::test_csv_format ... ok
[INFO] [stdout] test completion::tests::test_csv_with_comma_in_field ... ok
[INFO] [stdout] test stream::tests::test_open_append_continues_writing ... ok
[INFO] [stdout] test session_update::tests::test_extra_extraction ... ok
[INFO] [stdout] test session_update::tests::test_csv_header ... ok
[INFO] [stdout] test sample::tests::test_similarity_empty ... ok
[INFO] [stdout] test sample::tests::test_sample_writer ... ok
[INFO] [stdout] test completion::tests::test_writer_thread ... ok
[INFO] [stdout] test session_update::tests::test_writer_thread ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/store_test.rs (/opt/rustwide/target/debug/deps/store_test-72a681750ca7eb78)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_stream_writer_and_reader ... ok
[INFO] [stdout] test test_stream_writer_position_tracking ... ok
[INFO] [stdout] test test_command_record_load_empty ... ok
[INFO] [stdout] test test_read_range_from_stream ... ok
[INFO] [stdout] test test_session_meta_with_parent ... ok
[INFO] [stdout] test test_command_record_save_and_load ... ok
[INFO] [stdout] test test_write_and_read_session_meta ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_tracker-415d987727a6ae18)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 55 tests
[INFO] [stdout] test command_tracker::tests::test_bug_output_summary_contains_ansi ... ok
[INFO] [stdout] test command_tracker::tests::test_backspace_edits_command_line ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_command_line_includes_interactive_keystrokes ... ok
[INFO] [stdout] test command_tracker::tests::test_command_id_sequential ... ok
[INFO] [stdout] test command_tracker::tests::test_esc_skipped_in_extract ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_realistic_ls_session ... ok
[INFO] [stdout] test command_tracker::tests::test_completion_suffix_included_in_command_line ... ok
[INFO] [stdout] test command_tracker::tests::test_command_start_without_pending_recovers ... ok
[INFO] [stdout] test command_tracker::tests::test_cwd_from_session ... ok
[INFO] [stdout] test command_tracker::tests::test_ctrl_u_clears_line ... ok
[INFO] [stdout] test command_tracker::tests::test_cwd_from_osc133_overrides_session_cwd ... ok
[INFO] [stdout] test command_tracker::tests::test_bug_output_summary_includes_input_echo ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_multiple_commands ... ok
[INFO] [stdout] test command_tracker::tests::test_no_command_without_prompt ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_command_line_from_preexec ... ok
[INFO] [stdout] test command_tracker::tests::test_first_prompt_starts_tracking ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_end_nonzero ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_nonzero_exit ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_end_with_exit_code ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_with_escaped_semicolons ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_original_input_preferred_over_bash_command ... ok
[INFO] [stdout] test osc133_detector::tests::test_ignores_other_osc_sequences ... ok
[INFO] [stdout] test command_tracker::tests::test_output_summary_head_tail ... ok
[INFO] [stdout] test osc133_detector::tests::test_no_readline ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_plain ... ok
[INFO] [stdout] test osc133_detector::tests::test_command_start ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_command ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_cwd ... ok
[INFO] [stdout] test command_tracker::tests::test_simple_command_recorded ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_suppresses_regex_detection ... ok
[INFO] [stdout] test osc133_detector::tests::test_osc133_command_start_with_original ... ok
[INFO] [stdout] test command_tracker::tests::test_osc133_simple_command ... ok
[INFO] [stdout] test osc133_detector::tests::test_multiple_events_in_one_chunk ... ok
[INFO] [stdout] test osc133_detector::tests::test_embedded_in_output ... ok
[INFO] [stdout] test osc133_detector::tests::test_output_start ... ok
[INFO] [stdout] test osc133_detector::tests::test_prompt_start ... ok
[INFO] [stdout] test osc133_detector::tests::test_sequence_split_across_chunks ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_empty_with_point ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_event ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_with_point ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_with_point_mid_cursor ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_empty ... ok
[INFO] [stdout] test osc133_detector::tests::test_split_unescaped_semicolon ... ok
[INFO] [stdout] test osc133_detector::tests::test_strip_sequences ... ok
[INFO] [stdout] test command_tracker::tests::test_stream_offsets_recorded ... ok
[INFO] [stdout] test osc133_detector::tests::test_readline_line_stripped ... ok
[INFO] [stdout] test prompt_detector::tests::test_detect_hash_prompt ... ok
[INFO] [stdout] test prompt_detector::tests::test_ansi_stripped_before_matching ... ok
[INFO] [stdout] test prompt_detector::tests::test_custom_pattern ... ok
[INFO] [stdout] test prompt_detector::tests::test_consecutive_prompts ... ok
[INFO] [stdout] test prompt_detector::tests::test_dollar_in_output_not_false_positive ... ok
[INFO] [stdout] test prompt_detector::tests::test_no_prompt_in_partial_output ... ok
[INFO] [stdout] test prompt_detector::tests::test_strip_ansi_removes_osc_sequences ... ok
[INFO] [stdout] test prompt_detector::tests::test_prompt_split_across_chunks ... ok
[INFO] [stdout] test prompt_detector::tests::test_detect_dollar_prompt ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_cwd.rs (/opt/rustwide/target/debug/deps/integration_cwd-cf6dec21ea1f697c)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_end_to_end_cwd_tracking ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/omnish_transport-8e0b99faf3865db3)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test rpc_client::tests::test_rpc_client_call_returns_ack ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_tcp_call_returns_ack ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_tcp_concurrent_calls ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_connect_auto_dispatch ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_concurrent_calls ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_required_and_succeeds ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_wrong_token_rejected ... ok
[INFO] [stdout] test tests::test_parse_tcp_hostname_port ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_handles_requests ... ok
[INFO] [stdout] test tests::test_parse_tcp_ipv4_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_localhost_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_ipv6_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_zero_zero_port ... ok
[INFO] [stdout] test tests::test_parse_tcp_prefix ... ok
[INFO] [stdout] test tests::test_parse_unix_absolute_path ... ok
[INFO] [stdout] test tests::test_parse_unix_relative_path ... ok
[INFO] [stdout] test tests::test_parse_unix_no_colon ... ok
[INFO] [stdout] test tls::tests::test_load_or_create_cert_generates_and_reloads ... ok
[INFO] [stdout] test tls::tests::test_make_connector ... ok
[INFO] [stdout] test tls::tests::test_make_acceptor ... ok
[INFO] [stdout] test rpc_server::tests::test_multiple_clients_concurrent ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_tcp_handles_requests ... ok
[INFO] [stdout] test rpc_server::tests::test_rpc_server_tcp_multiple_clients ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_is_connected ... ok
[INFO] [stdout] test rpc_client::tests::test_rpc_client_reconnects_after_server_drop ... ok
[INFO] [stdout] test rpc_server::tests::test_auth_timeout ... ok
[INFO] [stderr]    Doc-tests omnish_common
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.06s
[INFO] [stdout] 
[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] [stderr]    Doc-tests omnish_context
[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] [stderr]    Doc-tests omnish_daemon
[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] [stderr]    Doc-tests omnish_llm
[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] [stderr]    Doc-tests omnish_plugin
[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] [stderr]    Doc-tests omnish_protocol
[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] [stderr]    Doc-tests omnish_pty
[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] [stderr]    Doc-tests omnish_store
[INFO] [stderr]    Doc-tests omnish_tracker
[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] [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] [stderr]    Doc-tests omnish_transport
[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" "13a3744120fa343e85d59c5ff1cfc579310f33a2eb6bce690873bea60c2c704e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "13a3744120fa343e85d59c5ff1cfc579310f33a2eb6bce690873bea60c2c704e", kill_on_drop: false }`
[INFO] [stdout] 13a3744120fa343e85d59c5ff1cfc579310f33a2eb6bce690873bea60c2c704e
