[INFO] cloning repository https://github.com/mlkrueger/claude-commander [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mlkrueger/claude-commander" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmlkrueger%2Fclaude-commander", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmlkrueger%2Fclaude-commander'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0a44a317fc928ece4e86f9f34ae9212682734665 [INFO] testing mlkrueger/claude-commander against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmlkrueger%2Fclaude-commander" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mlkrueger/claude-commander [INFO] finished tweaking git repo https://github.com/mlkrueger/claude-commander [INFO] tweaked toml for git repo https://github.com/mlkrueger/claude-commander written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mlkrueger/claude-commander on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mlkrueger/claude-commander already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 83a9e43f55616ac7b700de121b8c5f8ec7818f4ae138eb81567a18793b7096e1 [INFO] running `Command { std: "docker" "start" "-a" "83a9e43f55616ac7b700de121b8c5f8ec7818f4ae138eb81567a18793b7096e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "83a9e43f55616ac7b700de121b8c5f8ec7818f4ae138eb81567a18793b7096e1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "83a9e43f55616ac7b700de121b8c5f8ec7818f4ae138eb81567a18793b7096e1", kill_on_drop: false }` [INFO] [stdout] 83a9e43f55616ac7b700de121b8c5f8ec7818f4ae138eb81567a18793b7096e1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cce3ec68ca9d46698f873c895e4d239e4eb3ca4537addc9171dff8b48eb06bac [INFO] running `Command { std: "docker" "start" "-a" "cce3ec68ca9d46698f873c895e4d239e4eb3ca4537addc9171dff8b48eb06bac", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.184 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling num-conv v0.2.1 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling line-clipping v0.3.7 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling rmcp v1.4.0 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling matchit v0.7.3 [INFO] [stderr] Compiling vte v0.15.0 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling vt100 v0.16.2 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling serial2 v0.2.35 [INFO] [stderr] Compiling rand v0.10.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling uuid v1.23.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling shellexpand v3.1.2 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling env_filter v1.0.1 [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling portable-pty v0.9.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling rmcp-macros v1.4.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling sse-stream v0.2.2 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling ccom v0.3.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 34s [INFO] running `Command { std: "docker" "inspect" "cce3ec68ca9d46698f873c895e4d239e4eb3ca4537addc9171dff8b48eb06bac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cce3ec68ca9d46698f873c895e4d239e4eb3ca4537addc9171dff8b48eb06bac", kill_on_drop: false }` [INFO] [stdout] cce3ec68ca9d46698f873c895e4d239e4eb3ca4537addc9171dff8b48eb06bac [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 074d63d079907d4372a727f457e8644bfcd2e1dc060022cb987cb68eddc4400f [INFO] running `Command { std: "docker" "start" "-a" "074d63d079907d4372a727f457e8644bfcd2e1dc060022cb987cb68eddc4400f", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling writeable v0.6.3 [INFO] [stderr] Compiling litemap v0.8.2 [INFO] [stderr] Compiling cc v1.2.59 [INFO] [stderr] Compiling icu_normalizer_data v2.2.0 [INFO] [stderr] Compiling icu_properties_data v2.2.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling zerocopy v0.8.48 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling rustls v0.23.38 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling rustls-webpki v0.103.11 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling kasuari v0.4.12 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling proptest v1.11.0 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling portable-pty v0.9.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling rmcp-macros v1.4.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling sse-stream v0.2.2 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rmcp v1.4.0 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling ureq v2.12.1 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling ccom v0.3.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 45s [INFO] running `Command { std: "docker" "inspect" "074d63d079907d4372a727f457e8644bfcd2e1dc060022cb987cb68eddc4400f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "074d63d079907d4372a727f457e8644bfcd2e1dc060022cb987cb68eddc4400f", kill_on_drop: false }` [INFO] [stdout] 074d63d079907d4372a727f457e8644bfcd2e1dc060022cb987cb68eddc4400f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0b5cac7e86444b10cae4ff8e881f32b370e2ddee163fbd4638cfc236a6753f39 [INFO] running `Command { std: "docker" "start" "-a" "0b5cac7e86444b10cae4ff8e881f32b370e2ddee163fbd4638cfc236a6753f39", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.58s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ccom-a5aa2ddf08b89111) [INFO] [stdout] [INFO] [stdout] running 221 tests [INFO] [stdout] test approvals::tests::registry_open_and_resolve_round_trip ... ok [INFO] [stdout] test claude::context::tests::test_context_window_for_model ... ok [INFO] [stdout] test claude::context::tests::test_extract_json_string ... ok [INFO] [stdout] test claude::rate_limit::tests::format_reset_time_handles_invalid_timestamp ... ok [INFO] [stdout] test claude::rate_limit::tests::malformed_json_returns_err_without_panicking ... ok [INFO] [stdout] test approvals::tests::pending_for_driver_filters_correctly ... ok [INFO] [stdout] test approvals::tests::registry_resolve_unknown_request_id_errors ... ok [INFO] [stdout] test claude::rate_limit::tests::happy_path_parses_all_fields ... ok [INFO] [stdout] test approvals::tests::registry_reaper_clears_stale_entries ... ok [INFO] [stdout] test approvals::tests::registry_resolve_wrong_driver_rejected ... ok [INFO] [stdout] test claude::rate_limit::tests::missing_resets_at_parses_as_none ... ok [INFO] [stdout] test approvals::tests::driver_exit_denies_all_pending_approvals_for_that_driver ... ok [INFO] [stdout] test claude::usage::tests::test_extract_date ... ok [INFO] [stdout] test claude::context::tests::test_extract_total_context_tokens ... ok [INFO] [stdout] test approvals::tests::timeout_publishes_resolved_event_for_status_line ... ok [INFO] [stdout] test claude::usage::tests::test_extract_usage_number ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_mixed_conversation ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_empty_file_is_not_an_error ... ok [INFO] [stdout] test mcp::confirm::tests::request_returns_deny_when_receiver_dropped_before_request ... ok [INFO] [stdout] test mcp::handlers::tests::approval_event_not_visible_to_solo_caller ... ok [INFO] [stdout] test mcp::confirm::tests::request_and_resolve_deny ... ok [INFO] [stdout] test mcp::handlers::tests::non_approval_events_have_no_driver_id ... ok [INFO] [stdout] test mcp::confirm::tests::request_returns_deny_when_responder_drops_oneshot_without_answering ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_skips_malformed_lines ... ok [INFO] [stdout] test mcp::handlers::tests::resolved_event_reaches_target_driver ... ok [INFO] [stdout] test mcp::handlers::tests::approval_event_only_reaches_target_driver ... ok [INFO] [stdout] test mcp::confirm::tests::bridge_is_send_and_sync ... ok [INFO] [stdout] test mcp::handlers::tests::send_prompt_sanitizer_rejects_empty_before_dispatch ... ok [INFO] [stdout] test mcp::handlers::tests::session_event_wire_serializes_with_type_discriminator ... ok [INFO] [stdout] test mcp::handlers::tests::session_event_wire_type_names_match_filter_convention ... ok [INFO] [stdout] test mcp::sanitize::tests::accepts_plain_text ... ok [INFO] [stdout] test mcp::sanitize::tests::label_accepts_plain_ascii ... ok [INFO] [stdout] test mcp::sanitize::tests::label_accepts_whitelist_punctuation ... ok [INFO] [stdout] test mcp::sanitize::tests::label_drops_non_whitelisted_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::label_rejects_all_stripped ... ok [INFO] [stdout] test mcp::sanitize::tests::label_rejects_empty ... ok [INFO] [stdout] test mcp::sanitize::tests::label_strips_ansi_escape ... ok [INFO] [stdout] test mcp::sanitize::tests::accepts_exactly_16kb ... ok [INFO] [stdout] test mcp::sanitize::tests::label_strips_control_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::label_truncates_to_max_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::normalizes_cr_to_lf ... ok [INFO] [stdout] test mcp::sanitize::tests::normalizes_crlf_to_lf ... ok [INFO] [stdout] test mcp::sanitize::tests::preserves_newline_and_tab ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_empty_input ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_input_of_only_controls ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_over_16kb ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_bell_and_other_c0_controls ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_csi_color_escape ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_osc_title_escape ... ok [INFO] [stdout] test mcp::server::tests::port_handoff_ok_returns_port ... ok [INFO] [stdout] test mcp::server::tests::port_handoff_maps_error_to_start_failure ... ok [INFO] [stdout] test approvals_state::tests::state_file_handles_concurrent_writers ... ok [INFO] [stdout] test approvals_state::tests::state_file_atomic_rename_preserves_existing_on_parse_error ... ok [INFO] [stdout] test approvals_state::tests::state_file_wildcard_matches_any_input ... ok [INFO] [stdout] test approvals_state::tests::state_file_creates_dirs_if_missing ... ok [INFO] [stdout] test approvals_state::tests::state_file_is_idempotent_for_duplicate_rules ... ok [INFO] [stdout] test approvals_state::tests::state_file_add_and_match_exact_fingerprint ... ok [INFO] [stdout] test mcp::handlers::tests::stored_turn_wire_projection_strips_instants ... ok [INFO] [stdout] test mcp::confirm::tests::request_and_resolve_allow ... ok [INFO] [stdout] test mcp::confirm::tests::concurrent_requests_are_serialized_through_mutex_but_do_not_deadlock ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_handles_orphan_escape ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_passthroughs_plain_text ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_csi_color_sequences ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_csi_cursor_sequences ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_full_for_unknown_caller_id ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_osc_sequences ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_driver_itself ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_restricted_for_driver_caller ... ok [INFO] [stdout] test mcp::state::tests::list_sessions_snapshots_populated_manager ... ok [INFO] [stdout] test mcp::handlers::tests::read_response_missing_turn_returns_none ... ok [INFO] [stdout] test mcp::handlers::tests::send_prompt_returns_not_found_for_unknown_session ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_returns_false_without_active_turn ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_full_for_solo_caller ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_spawned_by_children ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_attachments ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_clears_active_turn ... ok [INFO] [stdout] test mcp::handlers::tests::list_sessions_empty_returns_empty_vec ... ok [INFO] [stdout] test mcp::state::tests::list_sessions_empty_returns_empty_vec ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_drops_bytes_when_no_active_turn ... ok [INFO] [stdout] test session::events::tests::all_subscribers_dropped_leaves_empty_bus_functional ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_does_not_push_without_idle_marker ... ok [INFO] [stdout] test pty::response_boundary::tests::for_claude_code_constructs_without_panic ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_pushes_completed_turn_on_idle_marker ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_handles_two_consecutive_turns ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_resets_after_pushing ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_re_submitted_prompt_discards_partial_body ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_isolates_per_session_state ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_handles_chunked_arrival ... ok [INFO] [stdout] test session::events::tests::bus_is_shareable_across_threads ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_strips_ansi_from_body ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_pushes_stored_turn ... ok [INFO] [stdout] test session::events::tests::default_matches_new ... ok [INFO] [stdout] test session::events::tests::dropped_receiver_is_pruned_without_panic ... ok [INFO] [stdout] test session::events::tests::each_subscriber_has_independent_queue ... ok [INFO] [stdout] test session::events::tests::events_arrive_in_publish_order ... ok [INFO] [stdout] test session::events::tests::new_bus_publish_is_noop ... ok [INFO] [stdout] test session::events::tests::publish_fans_out_to_all_subscribers ... ok [INFO] [stdout] test session::events::tests::session_event_clone_is_equal ... ok [INFO] [stdout] test session::events::tests::session_event_variants_are_constructible ... ok [INFO] [stdout] test mcp::server::tests::server_start_binds_nonzero_port_and_stops_cleanly ... ok [INFO] [stdout] test mcp::server::tests::server_port_is_loopback_accessible ... ok [INFO] [stdout] test session::events::tests::subscribe_receives_published_event ... ok [INFO] [stdout] test session::events::tests::turn_id_is_copy_and_eq ... ok [INFO] [stdout] test session::events::tests::turn_id_new_wraps_value ... ok [INFO] [stdout] test session::hook::tests::build_hook_settings_contains_command_referencing_fifo ... ok [INFO] [stdout] test session::hook::tests::build_hook_settings_escapes_tricky_paths ... ok [INFO] [stdout] test session::events::tests::subscriber_only_receives_events_published_after_subscribe ... ok [INFO] [stdout] test session::hook::tests::mcp_config_with_caller_id_injects_header ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_does_not_touch_claude_config_dir ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_writes_settings ... ok [INFO] [stdout] test session::events::tests::turn_id_is_ordered ... ok [INFO] [stdout] test session::hook::tests::mcp_config_without_caller_id_has_no_headers_block ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_sets_secure_permissions ... ok [INFO] [stdout] test session::hook::tests::cleanup_preserves_symlink_targets ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_extracts_fields ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_malformed_json ... ok [INFO] [stdout] test session::hook::tests::fifo_round_trip ... ok [INFO] [stdout] test mcp::handlers::tests::list_sessions_populated_has_labels ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_missing_last_message ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_wrong_type_last_message ... ok [INFO] [stdout] test session::hook::tests::pretooluse_settings_has_correct_shape ... ok [INFO] [stdout] test session::manager::tests::broadcast_does_not_allocate_turn_id ... ok [INFO] [stdout] test session::manager::tests::broadcast_does_not_publish_any_session_event ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_empty_ids_returns_empty_result ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_multiple_sessions_preserves_input_order ... ok [INFO] [stdout] test session::hook::tests::shell_single_quote_handles_tricky_chars ... ok [INFO] [stdout] test session::manager::tests::broadcast_writes_bytes_to_each_target ... ok [INFO] [stdout] test session::events::tests::concurrent_publishers_deliver_all_events ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_unknown_id_records_in_not_found ... ok [INFO] [stdout] test session::manager::tests::broadcast_with_duplicate_ids_writes_each_time ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_single_session_records_in_sent ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_completes_active_turn_and_publishes_event ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_drops_signals_without_active_turn ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_preserves_first_captured_uuid ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_does_not_fire_without_marker ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_isolates_per_session_state ... ok [INFO] [stdout] test session::manager::tests::cleanup_hook_artifacts_is_idempotent ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_publishes_response_complete ... ok [INFO] [stdout] test session::manager::tests::find_by_uuid_missing_returns_none ... ok [INFO] [stdout] test session::manager::tests::feed_pty_data_with_no_active_turn_is_noop ... ok [INFO] [stdout] test session::manager::tests::find_by_uuid_returns_correct_session ... ok [INFO] [stdout] test session::manager::tests::get_response_returns_none_for_unknown_turn_id ... ok [INFO] [stdout] test session::manager::tests::kill_after_selected_leaves_selected_unchanged ... ok [INFO] [stdout] test session::manager::tests::kill_before_selected_decrements_selected ... ok [INFO] [stdout] test session::hook::tests::fifo_path_with_space_and_quote ... ok [INFO] [stdout] test session::manager::tests::get_response_returns_none_for_unknown_session ... ok [INFO] [stdout] test session::manager::tests::get_mut_unknown_id_returns_none ... ok [INFO] [stdout] test session::manager::tests::get_latest_response_returns_most_recently_completed ... ok [INFO] [stdout] test session::manager::tests::bus_accessor_returns_a_shared_handle ... ok [INFO] [stdout] test session::manager::tests::kill_drops_boundary_detector_state_for_session ... ok [INFO] [stdout] test session::manager::tests::kill_last_remaining_leaves_manager_empty ... ok [INFO] [stdout] test session::manager::tests::kill_publishes_exited_event ... ok [INFO] [stdout] test session::manager::tests::kill_unknown_id_publishes_nothing ... ok [INFO] [stdout] test session::manager::tests::new_manager_is_empty ... ok [INFO] [stdout] test session::manager::tests::killing_driver_leaves_children_alive_as_orphans ... ok [INFO] [stdout] test session::manager::tests::push_for_test_publishes_spawned_event ... ok [INFO] [stdout] test session::manager::tests::reap_exited_cleans_up_hook_artifacts ... ok [INFO] [stdout] test session::manager::tests::reap_exited_drops_boundary_detector_state_for_transitioned_sessions ... ok [INFO] [stdout] test session::manager::tests::reap_exited_is_idempotent_after_first_transition ... ok [INFO] [stdout] test session::manager::tests::reap_exited_publishes_exited_on_transition ... ok [INFO] [stdout] test session::manager::tests::reap_exited_does_not_refire_for_already_exited_sessions ... ok [INFO] [stdout] test session::manager::tests::retain_alive_drops_driver_budget_with_session ... ok [INFO] [stdout] test session::manager::tests::reap_exited_publishes_response_complete_before_exited ... ok [INFO] [stdout] test session::manager::tests::select_next_and_prev_wrap_but_stay_in_bounds ... ok [INFO] [stdout] test session::manager::tests::selected_mut_returns_none_when_last_session_removed ... ok [INFO] [stdout] test session::manager::tests::selected_mut_clamps_after_killing_selected_tail ... ok [INFO] [stdout] test session::manager::tests::send_prompt_publishes_prompt_submitted_with_matching_turn_id ... ok [INFO] [stdout] test session::manager::tests::send_prompt_returns_monotonic_turn_ids ... ok [INFO] [stdout] test session::manager::tests::send_prompt_returns_first_turn_id_as_zero ... ok [INFO] [stdout] test session::manager::tests::send_prompt_starts_an_active_turn_in_the_detector ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_does_not_allocate_turn_id ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_publishes_nothing ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_returns_err ... ok [INFO] [stdout] test session::manager::tests::send_prompt_writes_unicode_text_correctly ... ok [INFO] [stdout] test session::manager::tests::set_role_promotes_existing_session ... ok [INFO] [stdout] test session::manager::tests::spawn_assigns_monotonic_ids_and_keeps_selected_valid ... ok [INFO] [stdout] test session::manager::tests::spawn_dummy_publishes_spawned_event ... ok [INFO] [stdout] test session::manager::tests::send_prompt_writes_text_then_submit_sequence ... ok [INFO] [stdout] test session::manager::tests::status_diff_fires_status_changed_when_status_changes ... ok [INFO] [stdout] test session::manager::tests::submit_sequence_is_carriage_return ... ok [INFO] [stdout] test session::response_store::tests::default_matches_new ... ok [INFO] [stdout] test session::manager::tests::status_diff_publishes_nothing_when_unchanged ... ok [INFO] [stdout] test session::response_store::tests::min_retain_floor_protects_against_budget ... ok [INFO] [stdout] test session::response_store::tests::min_retain_three_with_one_huge_turn_keeps_huge_plus_two_more ... ok [INFO] [stdout] test session::response_store::tests::new_store_is_empty ... ok [INFO] [stdout] test session::response_store::tests::push_below_budget_does_not_evict ... ok [INFO] [stdout] test session::response_store::tests::push_turn_appends_and_increases_total_bytes ... ok [INFO] [stdout] test session::response_store::tests::get_unknown_turn_id_returns_none ... ok [INFO] [stdout] test session::response_store::tests::single_oversized_turn_is_retained_when_below_min_retain ... ok [INFO] [stdout] test session::response_store::tests::total_bytes_matches_sum_of_bodies_after_evictions ... ok [INFO] [stdout] test session::response_store::tests::turn_sink_impl_delegates_to_push_turn ... ok [INFO] [stdout] test session::manager::tests::status_diff_fires_prompt_pending_on_transition_to_waiting ... ok [INFO] [stdout] test session::manager::tests::check_attention_publishes_via_real_detector ... ok [INFO] [stdout] test session::response_store::tests::zero_min_retain_evicts_below_budget_aggressively ... ok [INFO] [stdout] test session::types::tests::session_role_default_matches_solo ... ok [INFO] [stdout] test session::types::tests::session_spawned_by_defaults_to_none ... ok [INFO] [stdout] test mcp::handlers::tests::read_response_long_poll_success_via_bus_wakeup ... ok [INFO] [stdout] test session::types::tests::spawn_policy_defaults_to_ask ... ok [INFO] [stdout] test session::types::tests::with_role_promotes_to_driver ... ok [INFO] [stdout] test session::types::tests::with_spawned_by_sets_parent_pointer ... ok [INFO] [stdout] test ui::panels::session_tree::tests::attached_session_renders_under_driver ... ok [INFO] [stdout] test ui::panels::session_tree::tests::empty_manager_returns_empty_tree ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_never_reuses_a_value ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_starts_at_zero ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_is_monotonic ... ok [INFO] [stdout] test ui::panels::session_tree::tests::multiple_drivers_each_get_own_subtree ... ok [INFO] [stdout] test ui::panels::session_tree::tests::orphaned_child_renders_at_top_level ... ok [INFO] [stdout] test ui::panels::session_tree::tests::single_driver_with_children_groups_correctly ... ok [INFO] [stdout] test ui::panels::session_tree::tests::solo_only_returns_flat_list ... ok [INFO] [stdout] test ui::panels::session_tree::tests::attached_and_spawned_child_do_not_double_count ... ok [INFO] [stdout] test session::response_store::tests::with_budget_zero_min_retain_is_allowed ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_is_independent_per_session ... ok [INFO] [stdout] test session::response_store::tests::latest_returns_most_recently_pushed ... ok [INFO] [stdout] test session::types::tests::session_role_defaults_to_solo ... ok [INFO] [stdout] test session::manager::tests::end_to_end_real_pty_send_prompt_to_response_complete ... ok [INFO] [stdout] test session::manager::tests::status_diff_does_not_refire_prompt_pending_within_waiting ... ok [INFO] [stdout] test session::response_store::tests::push_over_budget_evicts_oldest_first ... ok [INFO] [stdout] test session::manager::tests::spawn_with_role_api_shape_is_atomic_single_call ... ok [INFO] [stdout] test session::hook::tests::fifo_skips_oversized_line_then_parses_next ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_one_mb_body ... ok [INFO] [stdout] test session::manager::proptests::manager_invariant_holds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 221 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.92s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ccom-96c5a4da50f5d7db) [INFO] [stdout] [INFO] [stdout] running 243 tests [INFO] [stdout] test app::pending_approval_tests::saturating_sub_prevents_underflow ... ok [INFO] [stdout] test app::pending_approval_tests::session_list_marker_tracks_pending_count ... ok [INFO] [stdout] test app::attach::tests::driver_exit_clears_attachment_set ... ok [INFO] [stdout] test app::pending_approval_tests::driver_exit_drops_pending_count ... ok [INFO] [stdout] test app::pending_approval_tests::status_line_clears_on_resolution ... ok [INFO] [stdout] test app::pending_approval_tests::status_line_shows_pending_count_for_active_driver ... ok [INFO] [stdout] test app::attach::tests::non_driver_exit_removes_id_from_other_drivers_sets ... ok [INFO] [stdout] test approvals::tests::pending_for_driver_filters_correctly ... ok [INFO] [stdout] test approvals::tests::driver_exit_denies_all_pending_approvals_for_that_driver ... ok [INFO] [stdout] test approvals::tests::registry_open_and_resolve_round_trip ... ok [INFO] [stdout] test approvals::tests::registry_reaper_clears_stale_entries ... ok [INFO] [stdout] test app::attach::tests::attaching_twice_is_idempotent ... ok [INFO] [stdout] test approvals::tests::registry_resolve_wrong_driver_rejected ... ok [INFO] [stdout] test approvals::tests::registry_resolve_unknown_request_id_errors ... ok [INFO] [stdout] test app::attach::tests::attaching_to_unknown_driver_id_via_helper_just_creates_entry ... ok [INFO] [stdout] test claude::context::tests::test_context_window_for_model ... ok [INFO] [stdout] test claude::rate_limit::tests::malformed_json_returns_err_without_panicking ... ok [INFO] [stdout] test claude::rate_limit::tests::missing_resets_at_parses_as_none ... ok [INFO] [stdout] test claude::usage::tests::test_extract_usage_number ... ok [INFO] [stdout] test claude::context::tests::test_extract_json_string ... ok [INFO] [stdout] test claude::context::tests::test_extract_total_context_tokens ... ok [INFO] [stdout] test claude::rate_limit::tests::format_reset_time_handles_invalid_timestamp ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_mixed_conversation ... ok [INFO] [stdout] test driver_config::tests::budget_is_zeroed_when_policy_is_ask_even_with_cli_budget ... ok [INFO] [stdout] test claude::rate_limit::tests::happy_path_parses_all_fields ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_skips_malformed_lines ... ok [INFO] [stdout] test claude::usage::tests::test_extract_date ... ok [INFO] [stdout] test driver_config::tests::budget_is_zeroed_when_policy_is_trust ... ok [INFO] [stdout] test driver_config::tests::cli_budget_overrides_toml ... ok [INFO] [stdout] test driver_config::tests::malformed_toml_falls_back_to_defaults ... ok [INFO] [stdout] test driver_config::tests::policy_parsing_is_case_insensitive ... ok [INFO] [stdout] test driver_config::tests::returns_none_when_driver_flag_absent ... ok [INFO] [stdout] test driver_config::tests::toml_fills_in_when_cli_absent ... ok [INFO] [stdout] test driver_config::tests::cli_policy_overrides_toml ... ok [INFO] [stdout] test driver_config::tests::unknown_policy_string_falls_back_to_ask ... ok [INFO] [stdout] test driver_config::tests::fallback_is_ask_and_zero ... ok [INFO] [stdout] test mcp::confirm::tests::bridge_is_send_and_sync ... ok [INFO] [stdout] test driver_config::tests::spawn_policy_arg_maps_to_domain_enum ... ok [INFO] [stdout] test driver_config::tests::to_role_constructs_driver_variant ... ok [INFO] [stdout] test app::attach::tests::attach_session_to_driver_adds_to_set ... ok [INFO] [stdout] test mcp::handlers::tests::approval_event_not_visible_to_solo_caller ... ok [INFO] [stdout] test mcp::confirm::tests::concurrent_requests_are_serialized_through_mutex_but_do_not_deadlock ... ok [INFO] [stdout] test mcp::handlers::tests::approval_event_only_reaches_target_driver ... ok [INFO] [stdout] test mcp::confirm::tests::request_and_resolve_deny ... ok [INFO] [stdout] test mcp::handlers::tests::list_sessions_empty_returns_empty_vec ... ok [INFO] [stdout] test approvals::tests::timeout_publishes_resolved_event_for_status_line ... ok [INFO] [stdout] test mcp::handlers::tests::resolved_event_reaches_target_driver ... ok [INFO] [stdout] test mcp::handlers::tests::read_response_missing_turn_returns_none ... ok [INFO] [stdout] test mcp::handlers::tests::list_sessions_populated_has_labels ... ok [INFO] [stdout] test mcp::confirm::tests::request_returns_deny_when_receiver_dropped_before_request ... ok [INFO] [stdout] test mcp::handlers::tests::non_approval_events_have_no_driver_id ... ok [INFO] [stdout] test mcp::handlers::tests::send_prompt_sanitizer_rejects_empty_before_dispatch ... ok [INFO] [stdout] test mcp::handlers::tests::session_event_wire_serializes_with_type_discriminator ... ok [INFO] [stdout] test mcp::sanitize::tests::accepts_plain_text ... ok [INFO] [stdout] test mcp::handlers::tests::stored_turn_wire_projection_strips_instants ... ok [INFO] [stdout] test mcp::handlers::tests::session_event_wire_type_names_match_filter_convention ... ok [INFO] [stdout] test mcp::confirm::tests::request_and_resolve_allow ... ok [INFO] [stdout] test mcp::sanitize::tests::label_accepts_plain_ascii ... ok [INFO] [stdout] test mcp::handlers::tests::send_prompt_returns_not_found_for_unknown_session ... ok [INFO] [stdout] test mcp::sanitize::tests::label_accepts_whitelist_punctuation ... ok [INFO] [stdout] test approvals_state::tests::state_file_add_and_match_exact_fingerprint ... ok [INFO] [stdout] test mcp::confirm::tests::request_returns_deny_when_responder_drops_oneshot_without_answering ... ok [INFO] [stdout] test mcp::sanitize::tests::accepts_exactly_16kb ... ok [INFO] [stdout] test mcp::sanitize::tests::label_drops_non_whitelisted_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::label_rejects_all_stripped ... ok [INFO] [stdout] test mcp::sanitize::tests::label_rejects_empty ... ok [INFO] [stdout] test mcp::sanitize::tests::label_strips_control_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::label_truncates_to_max_chars ... ok [INFO] [stdout] test mcp::sanitize::tests::label_strips_ansi_escape ... ok [INFO] [stdout] test mcp::sanitize::tests::preserves_newline_and_tab ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_empty_input ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_input_of_only_controls ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_bell_and_other_c0_controls ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_csi_color_escape ... ok [INFO] [stdout] test mcp::sanitize::tests::strips_osc_title_escape ... ok [INFO] [stdout] test mcp::server::tests::port_handoff_ok_returns_port ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_driver_itself ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_spawned_by_children ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_full_for_solo_caller ... ok [INFO] [stdout] test claude::usage::tests::test_parse_jsonl_empty_file_is_not_an_error ... ok [INFO] [stdout] test mcp::sanitize::tests::normalizes_cr_to_lf ... ok [INFO] [stdout] test mcp::sanitize::tests::normalizes_crlf_to_lf ... ok [INFO] [stdout] test mcp::sanitize::tests::rejects_over_16kb ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_includes_attachments ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_full_for_unknown_caller_id ... ok [INFO] [stdout] test mcp::server::tests::server_port_is_loopback_accessible ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_osc_sequences ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_handles_orphan_escape ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_passthroughs_plain_text ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_clears_active_turn ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_csi_color_sequences ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_does_not_push_without_idle_marker ... ok [INFO] [stdout] test mcp::state::tests::caller_scope_returns_restricted_for_driver_caller ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_drops_bytes_when_no_active_turn ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_pushes_stored_turn ... ok [INFO] [stdout] test mcp::state::tests::list_sessions_snapshots_populated_manager ... ok [INFO] [stdout] test pty::response_boundary::tests::complete_active_turn_with_body_returns_false_without_active_turn ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_handles_chunked_arrival ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_handles_two_consecutive_turns ... ok [INFO] [stdout] test mcp::state::tests::list_sessions_empty_returns_empty_vec ... ok [INFO] [stdout] test pty::response_boundary::tests::ansi_strip_removes_csi_cursor_sequences ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_re_submitted_prompt_discards_partial_body ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_pushes_completed_turn_on_idle_marker ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_isolates_per_session_state ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_strips_ansi_from_body ... ok [INFO] [stdout] test pty::response_boundary::tests::for_claude_code_constructs_without_panic ... ok [INFO] [stdout] test pty::response_boundary::tests::detector_resets_after_pushing ... ok [INFO] [stdout] test mcp::server::tests::port_handoff_maps_error_to_start_failure ... ok [INFO] [stdout] test session::events::tests::all_subscribers_dropped_leaves_empty_bus_functional ... ok [INFO] [stdout] test session::events::tests::each_subscriber_has_independent_queue ... ok [INFO] [stdout] test session::events::tests::new_bus_publish_is_noop ... ok [INFO] [stdout] test session::events::tests::publish_fans_out_to_all_subscribers ... ok [INFO] [stdout] test session::events::tests::session_event_variants_are_constructible ... ok [INFO] [stdout] test session::events::tests::default_matches_new ... ok [INFO] [stdout] test session::events::tests::session_event_clone_is_equal ... ok [INFO] [stdout] test session::events::tests::dropped_receiver_is_pruned_without_panic ... ok [INFO] [stdout] test session::events::tests::subscribe_receives_published_event ... ok [INFO] [stdout] test session::events::tests::events_arrive_in_publish_order ... ok [INFO] [stdout] test mcp::server::tests::server_start_binds_nonzero_port_and_stops_cleanly ... ok [INFO] [stdout] test session::events::tests::bus_is_shareable_across_threads ... ok [INFO] [stdout] test session::events::tests::turn_id_is_copy_and_eq ... ok [INFO] [stdout] test session::events::tests::subscriber_only_receives_events_published_after_subscribe ... ok [INFO] [stdout] test session::hook::tests::build_hook_settings_contains_command_referencing_fifo ... ok [INFO] [stdout] test session::hook::tests::build_hook_settings_escapes_tricky_paths ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_does_not_touch_claude_config_dir ... ok [INFO] [stdout] test session::hook::tests::cleanup_preserves_symlink_targets ... ok [INFO] [stdout] test session::events::tests::turn_id_is_ordered ... ok [INFO] [stdout] test session::events::tests::turn_id_new_wraps_value ... ok [INFO] [stdout] test approvals_state::tests::state_file_handles_concurrent_writers ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_extracts_fields ... ok [INFO] [stdout] test session::hook::tests::mcp_config_with_caller_id_injects_header ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_malformed_json ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_missing_last_message ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_rejects_wrong_type_last_message ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_writes_settings ... ok [INFO] [stdout] test session::hook::tests::fifo_round_trip ... ok [INFO] [stdout] test session::manager::tests::broadcast_does_not_allocate_turn_id ... ok [INFO] [stdout] test session::manager::tests::broadcast_does_not_publish_any_session_event ... ok [INFO] [stdout] test session::hook::tests::pretooluse_settings_has_correct_shape ... ok [INFO] [stdout] test session::hook::tests::shell_single_quote_handles_tricky_chars ... ok [INFO] [stdout] test approvals_state::tests::state_file_is_idempotent_for_duplicate_rules ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_empty_ids_returns_empty_result ... ok [INFO] [stdout] test session::manager::tests::broadcast_writes_bytes_to_each_target ... ok [INFO] [stdout] test session::manager::tests::broadcast_with_duplicate_ids_writes_each_time ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_multiple_sessions_preserves_input_order ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_unknown_id_records_in_not_found ... ok [INFO] [stdout] test session::manager::tests::bus_accessor_returns_a_shared_handle ... ok [INFO] [stdout] test session::manager::tests::broadcast_to_single_session_records_in_sent ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_completes_active_turn_and_publishes_event ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_preserves_first_captured_uuid ... ok [INFO] [stdout] test session::manager::tests::check_hook_signals_drops_signals_without_active_turn ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_does_not_fire_without_marker ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_isolates_per_session_state ... ok [INFO] [stdout] test session::events::tests::concurrent_publishers_deliver_all_events ... ok [INFO] [stdout] test session::manager::tests::check_response_boundaries_publishes_response_complete ... ok [INFO] [stdout] test session::manager::tests::feed_pty_data_with_no_active_turn_is_noop ... ok [INFO] [stdout] test session::manager::tests::find_by_uuid_missing_returns_none ... ok [INFO] [stdout] test session::manager::tests::cleanup_hook_artifacts_is_idempotent ... ok [INFO] [stdout] test session::manager::tests::get_response_returns_none_for_unknown_session ... ok [INFO] [stdout] test session::manager::tests::get_latest_response_returns_most_recently_completed ... ok [INFO] [stdout] test session::manager::tests::find_by_uuid_returns_correct_session ... ok [INFO] [stdout] test session::manager::tests::get_mut_unknown_id_returns_none ... ok [INFO] [stdout] test session::manager::tests::get_response_returns_none_for_unknown_turn_id ... ok [INFO] [stdout] test session::manager::tests::kill_before_selected_decrements_selected ... ok [INFO] [stdout] test session::manager::tests::kill_drops_boundary_detector_state_for_session ... ok [INFO] [stdout] test session::manager::tests::kill_unknown_id_publishes_nothing ... ok [INFO] [stdout] test session::manager::tests::kill_publishes_exited_event ... ok [INFO] [stdout] test mcp::handlers::tests::read_response_long_poll_success_via_bus_wakeup ... ok [INFO] [stdout] test session::manager::tests::push_for_test_publishes_spawned_event ... ok [INFO] [stdout] test session::manager::tests::kill_last_remaining_leaves_manager_empty ... ok [INFO] [stdout] test session::manager::tests::killing_driver_leaves_children_alive_as_orphans ... ok [INFO] [stdout] test session::manager::tests::reap_exited_does_not_refire_for_already_exited_sessions ... ok [INFO] [stdout] test session::manager::tests::reap_exited_cleans_up_hook_artifacts ... ok [INFO] [stdout] test session::manager::tests::new_manager_is_empty ... ok [INFO] [stdout] test session::manager::tests::reap_exited_drops_boundary_detector_state_for_transitioned_sessions ... ok [INFO] [stdout] test session::manager::tests::retain_alive_drops_driver_budget_with_session ... ok [INFO] [stdout] test session::manager::tests::reap_exited_is_idempotent_after_first_transition ... ok [INFO] [stdout] test session::manager::tests::reap_exited_publishes_exited_on_transition ... ok [INFO] [stdout] test session::manager::tests::selected_mut_clamps_after_killing_selected_tail ... ok [INFO] [stdout] test session::manager::tests::reap_exited_publishes_response_complete_before_exited ... ok [INFO] [stdout] test session::manager::tests::selected_mut_returns_none_when_last_session_removed ... ok [INFO] [stdout] test session::manager::tests::send_prompt_returns_monotonic_turn_ids ... ok [INFO] [stdout] test session::manager::tests::send_prompt_starts_an_active_turn_in_the_detector ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_does_not_allocate_turn_id ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_publishes_nothing ... ok [INFO] [stdout] test session::manager::tests::send_prompt_unknown_id_returns_err ... ok [INFO] [stdout] test session::manager::tests::send_prompt_writes_text_then_submit_sequence ... ok [INFO] [stdout] test session::manager::tests::send_prompt_writes_unicode_text_correctly ... ok [INFO] [stdout] test session::manager::tests::set_role_promotes_existing_session ... ok [INFO] [stdout] test session::manager::tests::spawn_assigns_monotonic_ids_and_keeps_selected_valid ... ok [INFO] [stdout] test session::manager::tests::send_prompt_publishes_prompt_submitted_with_matching_turn_id ... ok [INFO] [stdout] test session::manager::tests::spawn_with_role_api_shape_is_atomic_single_call ... ok [INFO] [stdout] test session::manager::tests::status_diff_does_not_refire_prompt_pending_within_waiting ... ok [INFO] [stdout] test session::manager::tests::spawn_dummy_publishes_spawned_event ... ok [INFO] [stdout] test session::manager::tests::status_diff_fires_prompt_pending_on_transition_to_waiting ... ok [INFO] [stdout] test session::manager::tests::status_diff_publishes_nothing_when_unchanged ... ok [INFO] [stdout] test session::manager::tests::status_diff_fires_status_changed_when_status_changes ... ok [INFO] [stdout] test session::manager::tests::submit_sequence_is_carriage_return ... ok [INFO] [stdout] test session::response_store::tests::default_matches_new ... ok [INFO] [stdout] test session::response_store::tests::get_unknown_turn_id_returns_none ... ok [INFO] [stdout] test session::response_store::tests::latest_returns_most_recently_pushed ... ok [INFO] [stdout] test session::response_store::tests::min_retain_floor_protects_against_budget ... ok [INFO] [stdout] test session::response_store::tests::min_retain_three_with_one_huge_turn_keeps_huge_plus_two_more ... ok [INFO] [stdout] test session::response_store::tests::push_below_budget_does_not_evict ... ok [INFO] [stdout] test session::response_store::tests::push_over_budget_evicts_oldest_first ... ok [INFO] [stdout] test session::response_store::tests::push_turn_appends_and_increases_total_bytes ... ok [INFO] [stdout] test session::response_store::tests::single_oversized_turn_is_retained_when_below_min_retain ... ok [INFO] [stdout] test session::response_store::tests::total_bytes_matches_sum_of_bodies_after_evictions ... ok [INFO] [stdout] test session::response_store::tests::new_store_is_empty ... ok [INFO] [stdout] test session::response_store::tests::turn_sink_impl_delegates_to_push_turn ... ok [INFO] [stdout] test session::response_store::tests::with_budget_zero_min_retain_is_allowed ... ok [INFO] [stdout] test session::response_store::tests::zero_min_retain_evicts_below_budget_aggressively ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_is_independent_per_session ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_never_reuses_a_value ... ok [INFO] [stdout] test session::hook::tests::mcp_config_without_caller_id_has_no_headers_block ... ok [INFO] [stdout] test session::manager::tests::kill_after_selected_leaves_selected_unchanged ... ok [INFO] [stdout] test session::manager::tests::select_next_and_prev_wrap_but_stay_in_bounds ... ok [INFO] [stdout] test session::manager::tests::send_prompt_returns_first_turn_id_as_zero ... ok [INFO] [stdout] test session::types::tests::spawn_policy_defaults_to_ask ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_starts_at_zero ... ok [INFO] [stdout] test session::types::tests::session_role_defaults_to_solo ... ok [INFO] [stdout] test session::types::tests::session_spawned_by_defaults_to_none ... ok [INFO] [stdout] test session::types::tests::with_spawned_by_sets_parent_pointer ... ok [INFO] [stdout] test session::types::tests::with_role_promotes_to_driver ... ok [INFO] [stdout] test ui::panels::session_tree::tests::attached_session_renders_under_driver ... ok [INFO] [stdout] test ui::panels::session_tree::tests::attached_and_spawned_child_do_not_double_count ... ok [INFO] [stdout] test ui::panels::session_tree::tests::empty_manager_returns_empty_tree ... ok [INFO] [stdout] test approvals_state::tests::state_file_wildcard_matches_any_input ... ok [INFO] [stdout] test session::types::tests::session_role_default_matches_solo ... ok [INFO] [stdout] test ui::panels::session_tree::tests::orphaned_child_renders_at_top_level ... ok [INFO] [stdout] test ui::panels::session_tree::tests::multiple_drivers_each_get_own_subtree ... ok [INFO] [stdout] test ui::panels::session_tree::tests::single_driver_with_children_groups_correctly ... ok [INFO] [stdout] test ui::panels::session_tree::tests::solo_only_returns_flat_list ... ok [INFO] [stdout] test session::manager::tests::end_to_end_real_pty_send_prompt_to_response_complete ... ok [INFO] [stdout] test session::types::tests::allocate_turn_id_is_monotonic ... ok [INFO] [stdout] test session::manager::tests::check_attention_publishes_via_real_detector ... ok [INFO] [stdout] test session::hook::tests::fifo_path_with_space_and_quote ... ok [INFO] [stdout] test session::hook::tests::create_hook_dir_sets_secure_permissions ... ok [INFO] [stdout] test approvals_state::tests::state_file_atomic_rename_preserves_existing_on_parse_error ... ok [INFO] [stdout] test approvals_state::tests::state_file_creates_dirs_if_missing ... ok [INFO] [stdout] test session::hook::tests::parse_stdin_one_mb_body ... ok [INFO] [stdout] test session::hook::tests::fifo_skips_oversized_line_then_parses_next ... ok [INFO] [stderr] Running unittests src/bin/ccom-hook-pretooluse.rs (/opt/rustwide/target/debug/deps/ccom_hook_pretooluse-dd995a5a5d1dc4dd) [INFO] [stdout] test session::manager::proptests::manager_invariant_holds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 243 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stderr] Running tests/approval_routing.rs (/opt/rustwide/target/debug/deps/approval_routing-3a66203ca4c9b34c) [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 16 tests [INFO] [stdout] test driver_denies_child_aborts ... ok [INFO] [stdout] test driver_allows_once_child_proceeds ... ok [INFO] [stdout] test driver_allows_always_writes_state_file ... ok [INFO] [stdout] test driver_owned_child_routes_to_driver ... ok [INFO] [stdout] test attached_session_routes_to_driver_dynamically ... ok [INFO] [stdout] test driver_exit_denies_all_pending_approvals_for_its_children ... ok [INFO] [stdout] test session_spawn_creates_approval_socket ... ok [INFO] [stdout] test hook_timeout_denies_and_surfaces_to_tui_log ... ok [INFO] [stdout] test session_spawn_writes_pretooluse_hook_entry ... ok [INFO] [stdout] test solo_caller_rejected_from_respond_tool ... ok [INFO] [stdout] test state_file_round_trip_under_concurrent_write ... ok [INFO] [stdout] test driver_cannot_answer_other_drivers_request ... ok [INFO] [stdout] test unknown_request_id_returns_error ... ok [INFO] [stdout] test two_concurrent_approvals_from_same_child_serialize_correctly ... ok [INFO] [stdout] test solo_session_gets_hook_installed ... ok [INFO] [stdout] test solo_session_hook_replies_passthrough ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.54s [INFO] [stdout] [INFO] [stderr] Running tests/driver_spawn.rs (/opt/rustwide/target/debug/deps/driver_spawn-96e4f7680245165f) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test solo_caller_cannot_use_spawn_session ... ok [INFO] [stdout] test attached_session_visible_in_driver_scope ... ok [INFO] [stdout] test spawn_session_empty_label_rejected ... ok [INFO] [stdout] test driver_kill_out_of_scope_returns_not_found ... ok [INFO] [stdout] test spawn_session_sanitizes_label ... ok [INFO] [stdout] test solo_kill_still_prompts ... ok [INFO] [stdout] test driver_cannot_spawn_driver_nesting_cap ... ok [INFO] [stdout] test spawn_session_with_initial_prompt_returns_valid_id ... ok [INFO] [stdout] test driver_kill_own_child_is_silent ... ok [INFO] [stdout] test driver_with_budget_2_spawns_silently_then_asks_on_third ... ok [INFO] [stdout] test list_sessions_filtered_for_driver_caller ... ok [INFO] [stdout] test driver_with_ask_policy_asks_every_time ... ok [INFO] [stdout] test driver_with_trust_policy_never_asks ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.47s [INFO] [stdout] [INFO] [stderr] Running tests/mcp_readonly.rs (/opt/rustwide/target/debug/deps/mcp_readonly-3a78b1c7c0258e17) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test list_sessions_returns_empty_for_empty_manager ... ok [INFO] [stdout] test list_sessions_returns_populated_sessions ... ok [INFO] [stdout] test server_starts_and_exposes_three_tools ... ok [INFO] [stderr] Running tests/mcp_write.rs (/opt/rustwide/target/debug/deps/mcp_write-3960590a5a533da4) [INFO] [stdout] test read_response_timeout_for_unknown_turn ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 10 tests [INFO] [stdout] test kill_session_no_bridge_auto_denies ... ok [INFO] [stdout] test kill_session_denied_leaves_session_alive ... ok [INFO] [stdout] test send_prompt_rejects_empty_text ... ok [INFO] [stdout] test send_prompt_rejects_oversized_text ... ok [INFO] [stdout] test kill_session_not_found_for_unknown_session ... ok [INFO] [stdout] test kill_session_waits_for_confirmation_and_allow_kills_session ... ok [INFO] [stdout] test send_prompt_not_found_for_unknown_session ... ok [INFO] [stdout] test send_prompt_delivers_bytes_to_cat_session ... ok [INFO] [stdout] test send_prompt_strips_control_chars_before_write ... ok [INFO] [stdout] test send_prompt_strips_ansi_escapes_before_write ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s [INFO] [stdout] [INFO] [stderr] Running tests/unit_tests.rs (/opt/rustwide/target/debug/deps/unit_tests-11ae808137122032) [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test key_encoding_tests::test_common_prefix_helper ... ok [INFO] [stdout] test git_tests::test_git_file_status_indicator ... ok [INFO] [stdout] test editor_tests::test_editor_navigation ... ok [INFO] [stdout] test git_tests::test_dir_has_changes_empty ... ok [INFO] [stdout] test editor_tests::test_editor_open ... ok [INFO] [stdout] test editor_tests::test_editor_newline ... ok [INFO] [stdout] test editor_tests::test_editor_insert_char ... ok [INFO] [stdout] test editor_tests::test_editor_save ... ok [INFO] [stdout] test editor_tests::test_editor_backspace ... ok [INFO] [stdout] test git_tests::test_dir_has_changes_finds_nested ... ok [INFO] [stdout] test git_tests::test_dir_has_changes_worst_status ... ok [INFO] [stdout] test tree_tests::test_file_tree_creation ... ok [INFO] [stdout] test tree_tests::test_file_tree_navigation ... ok [INFO] [stdout] test session_bus_integration::spawn_publishes_spawned_event_through_real_pty ... ok [INFO] [stdout] test session_lifecycle::spawn_read_output_exit_cleanup ... ok [INFO] [stdout] test detector_tests::test_prompt_detector_finds_allow ... ok [INFO] [stdout] test tree_tests::test_file_tree_set_root ... ok [INFO] [stdout] test detector_tests::test_prompt_detector_finds_yes_no ... ok [INFO] [stdout] test detector_tests::test_prompt_detector_creation ... ok [INFO] [stdout] test detector_tests::test_prompt_detector_ignores_prose_about_permissions ... ok [INFO] [stdout] test detector_tests::test_prompt_detector_no_match ... ok [INFO] [stdout] test session_hook_integration::check_hook_signals_end_to_end_with_real_fifo ... ok [INFO] [stdout] test session_bus_integration::kill_publishes_exited_event_through_real_pty ... ok [INFO] [stdout] test session_bus_integration::send_prompt_through_real_pty_writes_bytes_and_publishes_event ... ok [INFO] [stdout] test session_lifecycle::kill_stops_reader_thread ... ok [INFO] [stdout] test session_hook_integration::concurrent_sessions_have_isolated_hook_dirs ... ok [INFO] [stdout] test session_hook_integration::spawn_cleans_up_hook_dir_on_spawn_command_failure ... ok [INFO] [stdout] test session_bus_integration::broadcast_through_real_pty_writes_to_each_session ... ok [INFO] [stdout] test session_bus_integration::reap_exited_publishes_for_naturally_exiting_child ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s [INFO] [stdout] [INFO] [stderr] Doc-tests ccom [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" "0b5cac7e86444b10cae4ff8e881f32b370e2ddee163fbd4638cfc236a6753f39", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0b5cac7e86444b10cae4ff8e881f32b370e2ddee163fbd4638cfc236a6753f39", kill_on_drop: false }` [INFO] [stdout] 0b5cac7e86444b10cae4ff8e881f32b370e2ddee163fbd4638cfc236a6753f39