[INFO] fetching crate shellfirm 0.3.10...
[INFO] testing shellfirm-0.3.10 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate shellfirm 0.3.10 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate shellfirm 0.3.10
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate shellfirm 0.3.10
[INFO] tweaked toml for crates.io crate shellfirm 0.3.10 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate shellfirm 0.3.10 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shellfirm 0.3.10 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded strum v0.26.3
[INFO] [stderr]   Downloaded unicode-truncate v1.1.0
[INFO] [stderr]   Downloaded tui-input v0.13.0
[INFO] [stderr]   Downloaded tree-fs v0.2.1
[INFO] [stderr]   Downloaded lru v0.12.5
[INFO] [stderr]   Downloaded castaway v0.2.4
[INFO] [stderr]   Downloaded instability v0.3.12
[INFO] [stderr]   Downloaded serde_regex v1.1.0
[INFO] [stderr]   Downloaded unicode-linebreak v0.1.5
[INFO] [stderr]   Downloaded cassowary v0.3.0
[INFO] [stderr]   Downloaded strum_macros v0.26.4
[INFO] [stderr]   Downloaded native-tls v0.2.16
[INFO] [stderr]   Downloaded tempfile v3.25.0
[INFO] [stderr]   Downloaded requestty-ui v0.6.3
[INFO] [stderr]   Downloaded winsplit v0.1.0
[INFO] [stderr]   Downloaded shell-words v1.1.1
[INFO] [stderr]   Downloaded compact_str v0.8.1
[INFO] [stderr]   Downloaded textwrap v0.15.2
[INFO] [stderr]   Downloaded shared_library v0.1.9
[INFO] [stderr]   Downloaded portable-pty v0.9.0
[INFO] [stderr]   Downloaded smawk v0.3.2
[INFO] [stderr]   Downloaded requestty v0.6.3
[INFO] [stderr]   Downloaded cfg_aliases v0.1.1
[INFO] [stderr]   Downloaded exitcode v1.1.2
[INFO] [stderr]   Downloaded crossterm v0.29.0
[INFO] [stderr]   Downloaded filedescriptor v0.8.3
[INFO] [stderr]   Downloaded unicode-width v0.2.0
[INFO] [stderr]   Downloaded serial2 v0.2.34
[INFO] [stderr]   Downloaded similar v2.7.0
[INFO] [stderr]   Downloaded ratatui v0.29.0
[INFO] [stderr]   Downloaded insta v1.46.3
[INFO] [stderr]   Downloaded console v0.15.11
[INFO] [stderr]   Downloaded clap_complete_nushell v4.5.10
[INFO] [stderr]   Downloaded clap_complete v4.5.66
[INFO] [stderr]   Downloaded nix v0.28.0
[INFO] [stderr]   Downloaded nix v0.31.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17
[INFO] running `Command { std: "docker" "start" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.23
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling syn v2.0.115
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling native-tls v0.2.16
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clap_builder v4.5.58
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[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 icu_collections v2.1.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling smawk v0.3.2
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling textwrap v0.15.2
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling clap v4.5.58
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling requestty-ui v0.6.3
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling clap_complete v4.5.66
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling shellfirm v0.3.10 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling tui-input v0.13.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling requestty v0.6.3
[INFO] [stderr]    Compiling serde_regex v1.1.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling clap_complete_nushell v4.5.10
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling exitcode v1.1.2
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 49s
[INFO] running `Command { std: "docker" "inspect" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_regex v1.1.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling tree-fs v0.2.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling shellfirm v0.3.10 (/opt/rustwide/workdir)
[INFO] [stdout] warning: field `checks` is never read
[INFO] [stdout]   --> tests/decision_matrix.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | struct ScenarioPolicy {
[INFO] [stdout]    |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     checks: Vec<serde_yaml::Value>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ScenarioPolicy` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: field `checks` is never read
[INFO] [stderr]   --> tests/decision_matrix.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 50 | struct ScenarioPolicy {
[INFO] [stderr]    |        -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 56 |     checks: Vec<serde_yaml::Value>,
[INFO] [stderr]    |     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ScenarioPolicy` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `shellfirm` (test "decision_matrix") generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shellfirm-da9d59ea8b0098c1)
[INFO] [stdout] 
[INFO] [stdout] running 291 tests
[INFO] [stdout] test agent::tests::test_agent_prompter_denies_when_denied ... ok
[INFO] [stdout] test agent::tests::test_agent_prompter_passes_non_denied ... ok
[INFO] [stdout] test agent::tests::test_risk_assessment_serializes_to_json ... ok
[INFO] [stdout] test audit::tests::test_cancelled_outcome_serialization ... ok
[INFO] [stdout] test audit::tests::test_clear_log ... ok
[INFO] [stdout] test audit::tests::test_log_and_read ... ok
[INFO] [stdout] test audit::tests::test_log_command_with_pipe_characters ... ok
[INFO] [stdout] test audit::tests::test_now_timestamp_format ... ok
[INFO] [stdout] test audit::tests::test_read_nonexistent_log ... ok
[INFO] [stdout] test blast_radius::tests::test_blast_scope_ordering ... ok
[INFO] [stdout] test blast_radius::tests::test_compute_for_matches_empty ... ok
[INFO] [stdout] test blast_radius::tests::test_count_lines ... ok
[INFO] [stdout] test blast_radius::tests::test_docker_stop_all ... ok
[INFO] [stdout] test blast_radius::tests::test_docker_system_prune ... ok
[INFO] [stdout] test blast_radius::tests::test_extract_git_push_branch ... ok
[INFO] [stdout] test blast_radius::tests::test_format_count ... ok
[INFO] [stdout] test blast_radius::tests::test_format_number ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_hidden_slash_middle ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_hidden_slash ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_no_false_positive_on_path ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_project_scope ... ok
[INFO] [stdout] test blast_radius::tests::test_git_clean_force ... ok
[INFO] [stdout] test blast_radius::tests::test_git_delete_all ... ok
[INFO] [stdout] test blast_radius::tests::test_git_filter_branch ... ok
[INFO] [stdout] test blast_radius::tests::test_git_force_checkout ... ok
[INFO] [stdout] test blast_radius::tests::test_fs_recursive_delete_no_match ... ok
[INFO] [stdout] test blast_radius::tests::test_git_force_delete_branch ... ok
[INFO] [stdout] test blast_radius::tests::test_git_force_push_with_branch ... ok
[INFO] [stdout] test blast_radius::tests::test_git_reset ... ok
[INFO] [stdout] test blast_radius::tests::test_git_force_push ... ok
[INFO] [stdout] test blast_radius::tests::test_git_reset_no_changes ... ok
[INFO] [stdout] test blast_radius::tests::test_kubernetes_delete_namespace ... ok
[INFO] [stdout] test blast_radius::tests::test_parse_du_output ... ok
[INFO] [stdout] test blast_radius::tests::test_git_strict_add_all ... ok
[INFO] [stdout] test blast_radius::tests::test_unsupported_check_returns_none ... ok
[INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_contains ... ok
[INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_missing_capture_group ... ok
[INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_file_exists ... ok
[INFO] [stdout] test checks::test_checks::can_check_custom_filter_with_str_contains ... ok
[INFO] [stdout] test checks::test_checks::can_check_multiple_filters_all_must_pass ... ok
[INFO] [stdout] test checks::test_checks::can_run_check_on_command ... ok
[INFO] [stdout] test checks::test_checks::challenge_with_context_uses_resolved_settings_for_shell ... ok
[INFO] [stdout] test checks::test_checks::test_all_builtin_checks_pass_validation ... ok
[INFO] [stdout] test checks::test_checks::can_get_all_checks ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_and_and ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_double_quoted_operator ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_mixed ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_pipe ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_quoted_then_operator ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_single ... ok
[INFO] [stdout] test checks::test_checks::test_split_command_single_quoted_pipe ... ok
[INFO] [stdout] test config::test_config::agent_config_default_has_inherit_overrides ... ok
[INFO] [stdout] test config::test_config::agent_config_loads_explicit_overrides ... ok
[INFO] [stdout] test config::test_config::agent_config_loads_old_yaml_with_no_overrides ... ok
[INFO] [stdout] test agent::tests::test_deny_listed_command_always_denied ... ok
[INFO] [stdout] test checks::test_checks::test_validate_catches_bad_capture_group ... ok
[INFO] [stdout] test config::test_config::get_active_checks_with_custom_excludes_disabled_custom_group ... ok
[INFO] [stdout] test config::test_config::get_active_checks_with_custom_includes_enabled_custom_group ... ok
[INFO] [stdout] test config::test_config::get_active_checks_with_custom_respects_ignores ... ok
[INFO] [stdout] test config::test_config::inherit_or_default_is_inherit ... ok
[INFO] [stdout] test config::test_config::inherit_or_deserializes_inherit_keyword ... ok
[INFO] [stdout] test config::test_config::get_settings_returns_defaults_without_file ... ok
[INFO] [stdout] test config::test_config::inherit_or_serializes_inherit_as_keyword ... ok
[INFO] [stdout] test config::test_config::inherit_or_deserializes_set_value ... ok
[INFO] [stdout] test config::test_config::inherit_or_serializes_set_value ... ok
[INFO] [stdout] test config::test_config::inherit_or_with_option_inner_handles_inherit ... ok
[INFO] [stdout] test config::test_config::inherit_or_with_option_inner_handles_null ... ok
[INFO] [stdout] test config::test_config::can_reset_config ... ok
[INFO] [stdout] test agent::tests::test_safe_command_is_allowed ... ok
[INFO] [stdout] test config::test_config::migrate_custom_groups_skips_disabled_groups ... ok
[INFO] [stdout] test agent::tests::test_require_human_approval_flag ... ok
[INFO] [stdout] test config::test_config::migrate_custom_groups_idempotent ... ok
[INFO] [stdout] test config::test_config::migrate_custom_groups_into_enabled_groups_adds_missing ... ok
[INFO] [stdout] test config::test_config::new_config_does_not_create_files ... ok
[INFO] [stdout] test config::test_config::mode_is_copy_and_eq ... ok
[INFO] [stdout] test config::test_config::resolved_for_ai_uses_overrides_when_set ... ok
[INFO] [stdout] test config::test_config::resolved_for_severity_escalation_override_ai ... ok
[INFO] [stdout] test config::test_config::read_config_as_value_empty_file_returns_empty_mapping ... ok
[INFO] [stdout] test config::test_config::resolved_for_shell_returns_global ... ok
[INFO] [stdout] test config::test_config::resolved_for_wrap_uses_wrappers_overrides ... ok
[INFO] [stdout] test config::test_config::resolved_for_ai_inherits_when_no_overrides ... ok
[INFO] [stdout] test config::test_config::wrappers_config_loads_explicit_overrides ... ok
[INFO] [stdout] test config::test_config::wrappers_config_loads_old_yaml ... ok
[INFO] [stdout] test config::test_settings::can_get_active_checks ... ok
[INFO] [stdout] test config::test_settings::can_get_settings_from_file ... ok
[INFO] [stdout] test config::test_config::wrappers_config_default_has_inherit_overrides ... ok
[INFO] [stdout] test config::test_settings::old_includes_field_falls_back_to_default_enabled_groups ... ok
[INFO] [stdout] test config::test_config::sparse_config_on_fresh_install ... ok
[INFO] [stdout] test config::test_config::mode_enum_variants_exist ... ok
[INFO] [stdout] test config::test_settings::default_settings_produce_nonempty_active_checks ... ok
[INFO] [stdout] test config::test_settings::settings_yaml_roundtrip_preserves_enabled_groups ... ok
[INFO] [stdout] test config::test_config::old_settings_yaml_round_trips_with_inherit_defaults ... ok
[INFO] [stdout] test context::tests::test_detect_production_env ... ok
[INFO] [stdout] test context::tests::test_detect_production_k8s ... ok
[INFO] [stdout] test context::tests::test_detect_protected_branch ... ok
[INFO] [stdout] test context::tests::test_detect_root_user ... ok
[INFO] [stdout] test context::tests::test_detect_normal_context ... ok
[INFO] [stdout] test context::tests::test_detect_ssh_session ... ok
[INFO] [stdout] test context::tests::test_escalate_challenge_critical ... ok
[INFO] [stdout] test context::tests::test_escalate_cannot_lower ... ok
[INFO] [stdout] test context::tests::test_escalate_challenge_elevated ... ok
[INFO] [stdout] test context::tests::test_feature_branch_is_normal ... ok
[INFO] [stdout] test context::tests::test_filter_compound_git_and_k8s ... ok
[INFO] [stdout] test context::tests::test_escalate_challenge_normal ... ok
[INFO] [stdout] test context::tests::test_filter_fs_command_global_only ... ok
[INFO] [stdout] test agent::tests::test_low_severity_allowed_by_agent ... ok
[INFO] [stdout] test context::tests::test_release_wildcard_branch ... ok
[INFO] [stdout] test llm::tests::test_create_provider_no_key ... ok
[INFO] [stdout] test context::tests::test_filter_risk_level_recomputed ... ok
[INFO] [stdout] test context::tests::test_filter_global_signals_never_hidden ... ok
[INFO] [stdout] test context::tests::test_filter_git_command_hides_k8s ... ok
[INFO] [stdout] test context::tests::test_filter_k8s_command_hides_branch ... ok
[INFO] [stdout] test llm::tests::test_extract_json_from_plain_fences ... ok
[INFO] [stdout] test llm::tests::test_extract_json_from_markdown ... ok
[INFO] [stdout] test llm::tests::test_extract_json_plain ... ok
[INFO] [stdout] test llm::tests::test_llm_analysis_serialization ... ok
[INFO] [stdout] test llm::tests::test_mock_provider_availability ... ok
[INFO] [stdout] test llm::tests::test_mock_provider_returns_configured ... ok
[INFO] [stdout] test llm::tests::test_noop_provider_returns_safe ... ok
[INFO] [stdout] test llm::tests::test_parse_alternatives_response_valid ... ok
[INFO] [stdout] test llm::tests::test_parse_analysis_response_invalid_falls_back ... ok
[INFO] [stdout] test llm::tests::test_parse_analysis_response_valid ... ok
[INFO] [stdout] test llm::tests::test_create_provider_unknown_provider ... ok
[INFO] [stdout] test mcp::tests::test_explain_risk_safe_command ... ok
[INFO] [stdout] test mcp::tests::test_initialize ... ok
[INFO] [stdout] test mcp::tests::test_check_command_safe ... ok
[INFO] [stdout] test mcp::tests::test_handle_malformed_json ... ok
[INFO] [stdout] test mcp::tests::test_get_policy ... ok
[INFO] [stdout] test mcp::tests::test_notification_returns_none ... ok
[INFO] [stdout] test mcp::tests::test_unknown_method ... ok
[INFO] [stdout] test mcp::tests::test_unknown_tool ... ok
[INFO] [stdout] test policy::tests::test_branch_specific_override ... ok
[INFO] [stdout] test policy::tests::test_discover_policy_walks_up ... ok
[INFO] [stdout] test policy::tests::test_effective_challenge_cannot_weaken ... ok
[INFO] [stdout] test policy::tests::test_effective_challenge_escalates ... ok
[INFO] [stdout] test policy::tests::test_merge_adds_deny ... ok
[INFO] [stdout] test mcp::tests::test_tools_list ... ok
[INFO] [stdout] test policy::tests::test_discover_no_policy ... ok
[INFO] [stdout] test policy::tests::test_parse_simple_policy ... ok
[INFO] [stdout] test policy::tests::test_scaffold_policy ... ok
[INFO] [stdout] test policy::tests::test_validate_policy ... ok
[INFO] [stdout] test tui::check_form::tests::add_contains_filter ... ok
[INFO] [stdout] test policy::tests::test_validate_policy_bad_version ... ok
[INFO] [stdout] test tui::check_form::tests::empty_form_submit_fails_with_id_error ... ok
[INFO] [stdout] test tui::check_form::tests::enter_on_empty_id_does_not_advance ... ok
[INFO] [stdout] test tui::check_form::tests::esc_cancels_form ... ok
[INFO] [stdout] test tui::check_form::tests::ctrl_s_saves_when_valid ... ok
[INFO] [stdout] test tui::check_form::tests::enter_on_valid_id_advances ... ok
[INFO] [stdout] test agent::tests::test_risk_assessment_includes_alternatives ... ok
[INFO] [stdout] test agent::tests::test_high_severity_command_denied_by_agent ... ok
[INFO] [stdout] test tui::check_form::tests::id_uniqueness_validator_allows_existing_for_edit ... ok
[INFO] [stdout] test tui::check_form::tests::id_uniqueness_validator_works ... ok
[INFO] [stdout] test tui::check_form::tests::invalid_regex_blocks_submit ... ok
[INFO] [stdout] test tui::check_form::tests::validate_field_alternative_empty_is_empty ... ok
[INFO] [stdout] test tui::check_form::tests::validate_field_id_collision_is_invalid ... ok
[INFO] [stdout] test tui::check_form::tests::picker_select_auto_advances_past_group ... ok
[INFO] [stdout] test tui::check_form::tests::validate_field_id_unique_is_valid ... ok
[INFO] [stdout] test tui::check_form::tests::validate_field_test_invalid_regex_is_invalid ... ok
[INFO] [stdout] test mcp::tests::test_suggest_alternative_for_risky_command ... ok
[INFO] [stdout] test tui::check_form::tests::validate_field_id_empty_is_invalid ... ok
[INFO] [stdout] test tui::check_form::tests::full_form_submit_returns_saved ... ok
[INFO] [stdout] test tui::check_store::tests::add_creates_group_file ... ok
[INFO] [stdout] test tui::check_store::tests::delete_returns_error_when_id_missing ... ok
[INFO] [stdout] test tui::check_store::tests::delete_removes_check_and_empties_file ... ok
[INFO] [stdout] test tui::check_store::tests::add_rejects_duplicate_id ... ok
[INFO] [stdout] test tui::check_store::tests::update_moves_between_groups ... ok
[INFO] [stdout] test tui::check_store::tests::list_empty_dir ... ok
[INFO] [stdout] test tui::check_store::tests::update_returns_error_when_id_missing ... ok
[INFO] [stdout] test tui::check_store::tests::add_appends_to_existing_group_file ... ok
[INFO] [stdout] test tui::check_store::tests::update_in_place ... ok
[INFO] [stdout] test tui::check_store::tests::write_empty_removes_file ... ok
[INFO] [stdout] test tui::check_store::tests::write_then_list ... ok
[INFO] [stdout] test tui::draft::tests::pin_original_after_save_clears_dirty ... ok
[INFO] [stdout] test mcp::tests::test_check_command_risky ... ok
[INFO] [stdout] test tui::check_store::tests::delete_one_of_many_keeps_file ... ok
[INFO] [stdout] test tui::draft::tests::fresh_draft_is_clean ... ok
[INFO] [stdout] test tui::draft::tests::mutating_marks_dirty ... ok
[INFO] [stdout] test tui::preview::tests::diff_identical_is_all_same ... ok
[INFO] [stdout] test tui::preview::tests::diff_replacement ... ok
[INFO] [stdout] test tui::preview::tests::first_change_offset_change_in_visible_window_is_zero ... ok
[INFO] [stdout] test tui::preview::tests::first_change_offset_clamps_to_max_when_change_is_near_end ... ok
[INFO] [stdout] test tui::preview::tests::first_change_offset_no_changes_starts_at_top ... ok
[INFO] [stdout] test tui::preview::tests::diff_addition_only ... ok
[INFO] [stdout] test tui::preview::tests::first_change_offset_positions_change_near_bottom_of_window ... ok
[INFO] [stdout] test tui::draft::tests::reset_clears_dirty ... ok
[INFO] [stdout] test tui::tabs::ai::tests::challenge_radio_choosing_inherit_writes_inherit ... ok
[INFO] [stdout] test tui::preview::tests::render_yaml_round_trips ... ok
[INFO] [stdout] test tui::tabs::ai::tests::challenge_radio_inherit_is_first_choice ... ok
[INFO] [stdout] test tui::tabs::ai::tests::esc_after_navigate_keeps_previous_value ... ok
[INFO] [stdout] test tui::tabs::ai::tests::sev_esc_radio_commits_custom_choice ... ok
[INFO] [stdout] test tui::tabs::context::tests::d_removes_focused_branch ... ok
[INFO] [stdout] test tui::tabs::context::tests::down_in_browsing_moves_section ... ok
[INFO] [stdout] test tui::tabs::context::tests::enter_drills_in_and_esc_returns ... ok
[INFO] [stdout] test tui::preview::tests::settings_change_to_min_severity_is_reachable_via_auto_scroll ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::delete_keystroke_requests_confirmation ... ok
[INFO] [stdout] test tui::tabs::ai::tests::enter_drills_into_section ... ok
[INFO] [stdout] test tui::tabs::ai::tests::navigate_then_space_commits_auto_deny ... ok
[INFO] [stdout] test tui::tabs::ai::tests::space_in_human_approval_toggles ... ok
[INFO] [stdout] test tui::tabs::context::tests::add_branch_in_editing ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::f_sets_pending_open_in_editor ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::enter_drills_into_section ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::esc_exits_editing ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::down_moves_cursor ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::plus_sets_pending_create ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::e_sets_pending_edit ... ok
[INFO] [stdout] test tui::tabs::custom_checks::tests::empty_list_renders_no_panic ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::space_in_toggle_section_flips_enabled ... ok
[INFO] [stdout] test tui::tabs::general::tests::down_in_browsing_moves_section ... ok
[INFO] [stdout] test tui::tabs::general::tests::enter_in_browsing_drills_in ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::matrix_space_writes_cell_and_stays_in_edit_mode ... ok
[INFO] [stdout] test tui::tabs::general::tests::esc_in_editing_just_exits ... ok
[INFO] [stdout] test tui::tabs::general::tests::enter_in_editing_just_exits_without_extra_write ... ok
[INFO] [stdout] test tui::tabs::general::tests::esc_in_editing_returns_to_browsing ... ok
[INFO] [stdout] test tui::tabs::general::tests::space_in_behavior_toggles_focused_toggle ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::matrix_enter_exits_edit_mode_without_extra_commit ... ok
[INFO] [stdout] test tui::tabs::escalation::tests::matrix_space_then_navigate_then_space_writes_multiple_cells ... ok
[INFO] [stdout] test tui::tabs::groups::tests::esc_exits_editing ... ok
[INFO] [stdout] test tui::tabs::ignore_deny::tests::d_removes_focused_list_entry ... ok
[INFO] [stdout] test tui::tabs::groups::tests::select_all_in_editing_includes_custom ... ok
[INFO] [stdout] test tui::tabs::ignore_deny::tests::down_in_browsing_moves_to_deny ... ok
[INFO] [stdout] test tui::tabs::groups::tests::space_in_editing_toggles_group ... ok
[INFO] [stdout] test tui::tabs::ignore_deny::tests::enter_in_browsing_drills_in ... ok
[INFO] [stdout] test tui::tabs::ignore_deny::tests::esc_in_editing_returns_to_browsing ... ok
[INFO] [stdout] test tui::tabs::ignore_deny::tests::picker_select_adds_to_ignore ... ok
[INFO] [stdout] test tui::tabs::llm::tests::timeout_stepper_changes_value ... ok
[INFO] [stdout] test tui::tabs::llm::tests::down_navigates_when_enabled ... ok
[INFO] [stdout] test tui::tabs::wrap::tests::challenge_radio_inherit_choice_writes_inherit ... ok
[INFO] [stdout] test tui::tabs::llm::tests::drill_into_enable_and_toggle ... ok
[INFO] [stdout] test tui::tabs::llm::tests::typing_changes_model_value ... ok
[INFO] [stdout] test tui::tabs::wrap::tests::challenge_radio_inherit_is_first_choice ... ok
[INFO] [stdout] test tui::tabs::wrap::tests::enter_drills_in ... ok
[INFO] [stdout] test tui::tabs::general::tests::space_on_radio_writes_value_and_stays_in_edit ... ok
[INFO] [stdout] test tui::tabs::groups::tests::enter_drills_in ... ok
[INFO] [stdout] test tui::validate::tests::validate_default_settings_is_ok ... ok
[INFO] [stdout] test tui::widgets::multi_select::tests::a_selects_all_n_selects_none ... ok
[INFO] [stdout] test tui::widgets::multi_select::tests::space_toggles_at_cursor ... ok
[INFO] [stdout] test tui::widgets::override_field::tests::tab_toggles_state ... ok
[INFO] [stdout] test tui::widgets::override_field::tests::unrelated_key_returns_none ... ok
[INFO] [stdout] test tui::widgets::picker::tests::down_wraps_around_total_rows ... ok
[INFO] [stdout] test tui::widgets::picker::tests::empty_filter_no_create_sentinel ... ok
[INFO] [stdout] test tui::widgets::picker::tests::enter_on_create_sentinel_uses_filter_as_value ... ok
[INFO] [stdout] test tui::widgets::picker::tests::enter_on_match_returns_selected ... ok
[INFO] [stdout] test tui::widgets::picker::tests::enter_on_no_matches_with_filter_creates_new ... ok
[INFO] [stdout] test tui::widgets::picker::tests::esc_returns_cancelled ... ok
[INFO] [stdout] test tui::widgets::picker::tests::nonexact_filter_shows_create_sentinel ... ok
[INFO] [stdout] test tui::validate::tests::validate_after_known_good_mutation_is_ok ... ok
[INFO] [stdout] test tui::widgets::multi_select::tests::arrow_moves_cursor ... ok
[INFO] [stdout] test tui::widgets::multi_select::tests::unknown_key_is_none ... ok
[INFO] [stdout] test tui::widgets::radio::tests::down_increments_with_wrap ... ok
[INFO] [stdout] test tui::widgets::radio::tests::unrelated_key_is_noop ... ok
[INFO] [stdout] test tui::widgets::radio::tests::up_decrements_with_wrap ... ok
[INFO] [stdout] test tui::widgets::regex_input::tests::empty_value_is_empty_validity ... ok
[INFO] [stdout] test tui::widgets::regex_input::tests::invalid_regex_carries_error ... ok
[INFO] [stdout] test tui::widgets::stepper::tests::down_at_min_returns_out_of_range ... ok
[INFO] [stdout] test tui::widgets::stepper::tests::pagedown_clamps_to_min ... ok
[INFO] [stdout] test tui::widgets::picker::tests::typing_filters_and_resets_cursor ... ok
[INFO] [stdout] test tui::widgets::radio::tests::vim_keys_work ... ok
[INFO] [stdout] test tui::widgets::picker::tests::exact_match_hides_create_sentinel ... ok
[INFO] [stdout] test tui::widgets::stepper::tests::up_at_max_returns_out_of_range ... ok
[INFO] [stdout] test tui::widgets::stepper::tests::pageup_clamps_to_max ... ok
[INFO] [stdout] test tui::widgets::stepper::tests::up_increments_within_bounds ... ok
[INFO] [stdout] test tui::widgets::text_input::tests::typing_changes_value ... ok
[INFO] [stdout] test wrap::common::tests::basic_semicolon_delimiter ... ok
[INFO] [stdout] test wrap::common::tests::cli_delimiter_overrides_all ... ok
[INFO] [stdout] test wrap::common::tests::cr_is_control_passthrough ... ok
[INFO] [stdout] test wrap::common::tests::delimiter_from_newline_escape ... ok
[INFO] [stdout] test wrap::common::tests::delimiter_from_semicolon ... ok
[INFO] [stdout] test wrap::common::tests::delimiter_inside_double_quotes_not_split ... ok
[INFO] [stdout] test wrap::common::tests::delimiter_inside_single_quotes_not_split ... ok
[INFO] [stdout] test tui::widgets::text_input::tests::enter_submits_value ... ok
[INFO] [stdout] test wrap::common::tests::delimiter_from_literal_newline ... ok
[INFO] [stdout] test wrap::common::tests::escaped_quote_handling ... ok
[INFO] [stdout] test wrap::common::tests::empty_statement ... ok
[INFO] [stdout] test tui::widgets::text_input::tests::esc_cancels ... ok
[INFO] [stdout] test wrap::common::tests::multi_line_sql ... ok
[INFO] [stdout] test wrap::common::tests::multiple_statements ... ok
[INFO] [stdout] test wrap::common::tests::newline_delimiter ... ok
[INFO] [stdout] test wrap::common::tests::path_in_program_name_uses_basename ... ok
[INFO] [stdout] test wrap::common::tests::redis_cli_gets_newline_delimiter ... ok
[INFO] [stdout] test wrap::common::tests::reset_clears_buffer ... ok
[INFO] [stdout] test wrap::common::tests::empty_statement_forwards ... ok
[INFO] [stdout] test wrap::common::tests::unknown_tool_gets_generic_fallback ... ok
[INFO] [stdout] test tui::widgets::regex_input::tests::valid_regex_compiles ... ok
[INFO] [stdout] test wrap::common::tests::known_tool_gets_builtin_defaults ... ok
[INFO] [stdout] test wrap::common::tests::user_override_takes_precedence ... ok
[INFO] [stdout] test wrap::common::tests::whitespace_only_statement ... ok
[INFO] [stdout] test wrap::common::tests::interactive_flushall_triggers_challenge ... ok
[INFO] [stdout] test wrap::common::tests::safe_statement_forwards ... ok
[INFO] [stdout] test config::test_settings::settings_file_roundtrip_produces_matches ... ok
[INFO] [stdout] test wrap::common::tests::drop_table_triggers_challenge ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 291 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.82s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/shellfirm.rs (/opt/rustwide/target/debug/deps/shellfirm-baebd6a0e9994269)
[INFO] [stdout] 
[INFO] [stdout] running 106 tests
[INFO] [stdout] test cmd::check_cmd::tests::hook_output_allowed_has_allow_decision ... ok
[INFO] [stdout] test cmd::check_cmd::tests::hook_output_denied_has_deny_decision_with_details ... ok
[INFO] [stdout] test cmd::check_cmd::tests::hook_output_is_valid_json_for_claude_code ... ok
[INFO] [stdout] test cmd::check_cmd::tests::json_output_is_valid_json_with_expected_fields ... ok
[INFO] [stdout] test cmd::check_cmd::tests::no_exit_code_flag_always_returns_ok ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_claude_code_hooks_format ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_empty_input_returns_error ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_json_without_command_field_returns_error ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_plain_text_fallback ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_plain_text_with_whitespace ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_simple_json_command ... ok
[INFO] [stdout] test cmd::check_cmd::tests::parse_tool_input_takes_precedence_over_command ... ok
[INFO] [stdout] test cmd::check_cmd::tests::text_exit_code_risky_command_returns_2 ... ok
[INFO] [stdout] test cmd::check_cmd::tests::text_exit_code_safe_command_returns_ok ... ok
[INFO] [stdout] test cmd::check_cmd::tests::text_output_allowed_risky_has_no_blocked_line ... ok
[INFO] [stdout] test cmd::check_cmd::tests::text_output_risky_command_includes_match_and_blocked ... ok
[INFO] [stdout] test cmd::check_cmd::tests::text_output_safe_command ... ok
[INFO] [stdout] test cmd::check_cmd::tests::check_command_safe_returns_exit_0 ... ok
[INFO] [stdout] test cmd::check_cmd::tests::check_safe_command_json_has_allowed_true ... ok
[INFO] [stdout] test cmd::check_cmd::tests::check_command_safe_json_exit_code_returns_0_with_allow ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::regex_does_not_strip_mismatched_quotes ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::can_run_pre_command_without_match ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::can_run_pre_command ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::regex_handles_multiple_quoted_segments ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::regex_strips_matching_double_quotes ... ok
[INFO] [stdout] test cmd::command::test_command_cli_command::regex_strips_matching_single_quotes ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::challenge_rejects_invalid ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::config_menu_delegates_to_show ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::challenge_on_fresh_install ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::challenge_set_valid ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::context_add_branch ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::context_set_escalation ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::context_remove_branch ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::deny_add ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::escalation_check_set_and_remove ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::escalation_group_on_fresh_install ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::escalation_group_set_fs ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::challenge_set_each_variant ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::groups_disable ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::deny_remove ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::groups_enable_and_disable ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::groups_enable ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::ignore_add ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::escalation_severity_set_high_and_disable ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::ignore_add_duplicate ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::ignore_remove ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_model ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::llm_on_fresh_install ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::groups_rejects_unknown ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_multiple ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::groups_idempotent ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::llm_set_provider ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::severity_rejects_invalid ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::reset_then_sparse_setup_round_trip ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::show_default_config ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::severity_set_null ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::show_on_fresh_install ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::show_modified_config ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::all_providers_preserve_existing_config ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::cline_config_path ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::all_providers_are_idempotent ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::cline_install_mcp ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::config_path_resolves ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::cursor_config_path_is_project_level ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::severity_set_valid ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::cursor_does_not_support_hooks ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::install_hooks_adds_pre_tool_use ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::install_hooks_is_idempotent ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::install_mcp_adds_server ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::install_preserves_existing_config ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::provider_registry_resolves_all ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::uninstall_noop_when_not_installed ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::uninstall_removes_hooks_and_mcp ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::detection_on_empty_config ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::windsurf_config_path ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::windsurf_install_mcp ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::write_and_read_config_roundtrip ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::zed_config_path ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::zed_install_is_idempotent ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::zed_uninstall_removes_context_server ... ok
[INFO] [stdout] test cmd::init::tests::activate_hint_exec_for_posix_shells ... ok
[INFO] [stdout] test cmd::config::test_config_cli_command::reset_config_restores_defaults ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::zed_install_uses_context_servers ... ok
[INFO] [stdout] test cmd::init::tests::activate_hint_restart_for_non_posix_shells ... ok
[INFO] [stdout] test cmd::init::tests::activate_hint_returns_non_empty_for_all_shells ... ok
[INFO] [stdout] test cmd::init::tests::all_hooks_are_non_empty ... ok
[INFO] [stdout] test cmd::init::tests::display_matches_name ... ok
[INFO] [stdout] test cmd::connect_cmd::tests::cursor_install_mcp ... ok
[INFO] [stdout] test cmd::init::tests::idempotent_install_detection ... ok
[INFO] [stdout] test cmd::init::tests::eval_shells_hook_contains_shellfirm_pre_command ... ok
[INFO] [stdout] test cmd::init::tests::from_name_round_trip ... ok
[INFO] [stdout] test cmd::init::tests::install_to_temp_file ... ok
[INFO] [stdout] test cmd::init::tests::rc_snippet_returns_full_hook_for_other_shells ... ok
[INFO] [stdout] test cmd::init::tests::rc_snippet_returns_eval_for_eval_shells ... ok
[INFO] [stdout] test cmd::init::tests::rc_paths_resolve_for_known_shells ... ok
[INFO] [stdout] test cmd::init::tests::uninstall_noop_when_not_installed ... ok
[INFO] [stdout] test cmd::init::tests::uninstall_preserves_rest_of_file ... ok
[INFO] [stdout] test cmd::init::tests::validate_shell_arg_accepts_known ... ok
[INFO] [stdout] test cmd::init::tests::uninstall_removes_block_with_current_marker ... ok
[INFO] [stdout] test cmd::init::tests::validate_shell_arg_rejects_unknown ... ok
[INFO] [stdout] test cmd::init::tests::uninstall_removes_embedded_hook ... ok
[INFO] [stdout] test cmd::init::tests::detect_installed_shells_does_not_panic ... ok
[INFO] [stdout] test cmd::check_cmd::tests::check_risky_command_json_has_allowed_false ... ok
[INFO] [stdout] test cmd::check_cmd::tests::backward_compat_text_mode_without_exit_code_returns_ok_for_risky ... ok
[INFO] [stderr]      Running tests/checks.rs (/opt/rustwide/target/debug/deps/checks-491a313939a00645)
[INFO] [stdout] test cmd::check_cmd::tests::check_command_risky_text_exit_code_returns_2 ... ok
[INFO] [stdout] test cmd::check_cmd::tests::check_command_risky_json_exit_code_returns_0_with_deny ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 106 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 12.57s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test test_coverage_completeness ... ok
[INFO] [stderr]      Running tests/decision_matrix.rs (/opt/rustwide/target/debug/deps/decision_matrix-edd650cfb9e743c0)
[INFO] [stdout] test test_all_checks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.13s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_decision_matrix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/escalation_matrix_proptest.rs (/opt/rustwide/target/debug/deps/escalation_matrix_proptest-47ba173cb1a86474)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test severity_escalation_disabled_returns_none ... ok
[INFO] [stdout] test severity_escalation_challenge_for_severity_returns_correct_challenge ... ok
[INFO] [stdout] test severity_escalation_round_trips_via_yaml ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.55s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/per_mode_resolution.rs (/opt/rustwide/target/debug/deps/per_mode_resolution-c22e8f12f113153f)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test wrap_min_severity_override ... ok
[INFO] [stdout] test wrap_challenge_override_independent ... ok
[INFO] [stdout] test ai_min_severity_override_lowers_threshold ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/pure_logic.rs (/opt/rustwide/target/debug/deps/pure_logic-fa0665b131f457c4)
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test test_escalate_normal_does_not_change ... ok
[INFO] [stdout] test test_escalate_critical_raises_to_yes ... ok
[INFO] [stdout] test test_escalate_cannot_lower ... ok
[INFO] [stdout] test test_escalate_elevated_raises_to_enter ... ok
[INFO] [stdout] test test_alternatives_present_in_rm_check ... ok
[INFO] [stdout] test test_alternatives_present_in_force_push_check ... ok
[INFO] [stdout] test test_pattern_matching_safe_command ... ok
[INFO] [stdout] test test_policy_branch_specific_override ... ok
[INFO] [stdout] test test_policy_cannot_weaken ... ok
[INFO] [stdout] test test_policy_merge_adds_deny ... ok
[INFO] [stdout] test test_policy_merge_escalates_challenge ... ok
[INFO] [stdout] test test_safe_command_has_no_alternative ... ok
[INFO] [stdout] test test_settings_yaml_roundtrip_preserves_new_fields ... ok
[INFO] [stdout] test test_severity_escalation_custom_values ... ok
[INFO] [stdout] test test_severity_escalation_defaults ... ok
[INFO] [stdout] test test_severity_escalation_disabled_returns_none ... ok
[INFO] [stdout] test test_severity_escalation_yaml_roundtrip ... ok
[INFO] [stdout] test test_sparse_config_deserializes_new_fields_with_defaults ... ok
[INFO] [stdout] test test_split_command_double_ampersand ... ok
[INFO] [stdout] test test_split_command_mixed_operators ... ok
[INFO] [stdout] test test_split_command_pipe ... ok
[INFO] [stdout] test test_split_command_respects_double_quotes ... ok
[INFO] [stdout] test test_split_command_respects_single_quotes ... ok
[INFO] [stdout] test test_split_command_semicolon ... ok
[INFO] [stdout] test test_split_command_single ... ok
[INFO] [stdout] test test_validate_policy_bad_version ... ok
[INFO] [stdout] test test_validate_policy_empty_id ... ok
[INFO] [stdout] test test_validate_valid_policy ... ok
[INFO] [stdout] test test_pattern_matching_docker_prune ... ok
[INFO] [stdout] test test_pattern_matching_database_drop ... ok
[INFO] [stdout] test test_pattern_matching_git_reset ... ok
[INFO] [stdout] test test_pattern_matching_git_force_push ... ok
[INFO] [stdout] test test_pattern_matching_aws_s3_delete ... ok
[INFO] [stdout] test test_pattern_matching_kubectl_delete_ns ... ok
[INFO] [stdout] test test_pattern_matching_terraform_auto_approve ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sandboxed_integration.rs (/opt/rustwide/target/debug/deps/sandboxed_integration-7bb4154feb1d348c)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test test_audit_clear ... ok
[INFO] [stdout] test test_context_production_ssh_is_critical ... ok
[INFO] [stdout] test test_multiple_critical_signals ... ok
[INFO] [stdout] test test_audit_log_written_to_temp_dir ... ok
[INFO] [stdout] test test_context_local_dev_is_normal ... ok
[INFO] [stdout] test test_custom_checks_loaded_from_temp_dir ... ok
[INFO] [stdout] test test_pipeline_high_severity_escalates_to_enter ... ok
[INFO] [stdout] test test_pipeline_alternative_shown_for_force_push ... ok
[INFO] [stdout] test test_pipeline_all_layers_compose ... ok
[INFO] [stdout] test test_pipeline_compound_command_detects_risky_part ... ok
[INFO] [stdout] test test_pipeline_group_escalation ... ok
[INFO] [stdout] test test_pipeline_global_deny_blocks ... ok
[INFO] [stdout] test test_policy_discovery_walks_up ... ok
[INFO] [stdout] test test_policy_discovery_no_file ... ok
[INFO] [stdout] test test_pipeline_local_dev_force_push_passes ... ok
[INFO] [stdout] test test_pipeline_check_id_escalation ... ok
[INFO] [stdout] test test_root_escalates_to_critical ... ok
[INFO] [stdout] test test_ssh_only_elevates_to_enter ... ok
[INFO] [stdout] test test_pipeline_safe_command_no_challenge ... ok
[INFO] [stdout] test test_pipeline_production_ssh_force_push_escalates ... ok
[INFO] [stdout] test test_relevant_context_rm_rf_hides_branch_and_k8s ... ok
[INFO] [stdout] test test_pipeline_severity_disabled_stays_math ... ok
[INFO] [stdout] test test_relevant_context_git_push_shows_branch_hides_k8s ... ok
[INFO] [stdout] test test_relevant_context_kubectl_shows_k8s_hides_branch ... ok
[INFO] [stdout] test test_pipeline_project_policy_denies_force_push ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.96s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/tui_app.rs (/opt/rustwide/target/debug/deps/tui_app-2100805db514fa15)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test ai_tab_min_severity_override_set_and_reset ... ok
[INFO] [stdout] test delete_custom_check_requires_confirmation_modal ... ok
[INFO] [stdout] test adding_custom_check_with_new_group_appears_in_groups_tab ... ok
[INFO] [stdout] test custom_tab_create_check_flow ... ok
[INFO] [stdout] test escalation_matrix_right_arrow_changes_column_not_tab ... ok
[INFO] [stdout] test escalation_toggle_off_marks_dirty_and_appears_in_diff ... ok
[INFO] [stdout] test left_right_arrows_switch_top_level_tabs ... ok
[INFO] [stdout] test help_modal_esc_closes ... ok
[INFO] [stdout] test fresh_app_starts_on_general_tab ... ok
[INFO] [stdout] test matrix_change_visible_in_rendered_preview_window ... ok
[INFO] [stdout] test preview_p_toggles_open_and_closed ... ok
[INFO] [stdout] test preview_pageup_does_nothing_when_closed ... ok
[INFO] [stdout] test preview_pagedown_scrolls_and_disables_auto_scroll ... ok
[INFO] [stdout] test preview_shift_down_scrolls_one_line ... ok
[INFO] [stdout] test preview_shift_up_after_scroll_decrements ... ok
[INFO] [stdout] test every_tui_field_change_appears_in_preview_diff ... ok
[INFO] [stdout] test escalation_matrix_change_marks_dirty_and_appears_in_diff ... ok
[INFO] [stdout] test quit_when_dirty_opens_modal ... ok
[INFO] [stdout] test fresh_app_has_clean_preview_diff ... ok
[INFO] [stdout] test quit_dialog_buttons_have_consistent_gaps ... ok
[INFO] [stdout] test quit_modal_cancel_keeps_running ... ok
[INFO] [stdout] test quit_modal_discard_exits ... ok
[INFO] [stdout] test quit_when_clean_exits_immediately ... ok
[INFO] [stdout] test preview_pane_renders_scrollbar_when_content_overflows ... ok
[INFO] [stdout] test rendered_preview_buffer_contains_severity_escalation_change ... ok
[INFO] [stdout] test reset_dialog_resets_draft ... ok
[INFO] [stdout] test tab_key_moves_to_next_tab ... ok
[INFO] [stdout] test save_dialog_cancel_keeps_dirty ... ok
[INFO] [stdout] test save_writes_file_and_clears_dirty ... ok
[INFO] [stdout] test space_on_audit_marks_dirty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shellfirm
[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" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17", kill_on_drop: false }`
[INFO] [stdout] 53d9073c16ea2dccae81a7baed9aa0ee02f8952af963b7737d36f97970e44c17
