[INFO] fetching crate sai-cli 1.2.0...
[INFO] testing sai-cli-1.2.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate sai-cli 1.2.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate sai-cli 1.2.0
[INFO] finished tweaking crates.io crate sai-cli 1.2.0
[INFO] tweaked toml for crates.io crate sai-cli 1.2.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate sai-cli 1.2.0 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 sai-cli 1.2.0 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 bitflags v2.10.0
[INFO] [stderr]   Downloaded zerofrom v0.1.6
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.106
[INFO] [stderr]   Downloaded potential_utf v0.1.4
[INFO] [stderr]   Downloaded itoa v1.0.15
[INFO] [stderr]   Downloaded yoke-derive v0.8.1
[INFO] [stderr]   Downloaded openssl-probe v0.1.6
[INFO] [stderr]   Downloaded fastrand v2.3.0
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.5
[INFO] [stderr]   Downloaded crossterm_winapi v0.9.1
[INFO] [stderr]   Downloaded futures-core v0.3.31
[INFO] [stderr]   Downloaded futures-task v0.3.31
[INFO] [stderr]   Downloaded futures-sink v0.3.31
[INFO] [stderr]   Downloaded libredox v0.1.10
[INFO] [stderr]   Downloaded zerofrom-derive v0.1.6
[INFO] [stderr]   Downloaded clap_lex v0.7.6
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.56
[INFO] [stderr]   Downloaded tinystr v0.8.2
[INFO] [stderr]   Downloaded rand_core v0.9.3
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.106
[INFO] [stderr]   Downloaded quote v1.0.42
[INFO] [stderr]   Downloaded zerovec-derive v0.11.2
[INFO] [stderr]   Downloaded yoke v0.8.1
[INFO] [stderr]   Downloaded futures-io v0.3.31
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.5
[INFO] [stderr]   Downloaded security-framework-sys v2.15.0
[INFO] [stderr]   Downloaded thiserror-impl v2.0.17
[INFO] [stderr]   Downloaded system-configuration v0.6.1
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.7
[INFO] [stderr]   Downloaded slab v0.4.11
[INFO] [stderr]   Downloaded getrandom v0.2.16
[INFO] [stderr]   Downloaded native-tls v0.2.14
[INFO] [stderr]   Downloaded thiserror v2.0.17
[INFO] [stderr]   Downloaded ipnet v2.11.0
[INFO] [stderr]   Downloaded hyper-rustls v0.27.7
[INFO] [stderr]   Downloaded clap_derive v4.5.49
[INFO] [stderr]   Downloaded iana-time-zone v0.1.64
[INFO] [stderr]   Downloaded tempfile v3.23.0
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.106
[INFO] [stderr]   Downloaded unicode-ident v1.0.22
[INFO] [stderr]   Downloaded proc-macro2 v1.0.103
[INFO] [stderr]   Downloaded wit-bindgen v0.46.0
[INFO] [stderr]   Downloaded js-sys v0.3.83
[INFO] [stderr]   Downloaded ryu v1.0.20
[INFO] [stderr]   Downloaded rustls-pki-types v1.13.1
[INFO] [stderr]   Downloaded icu_provider v2.1.1
[INFO] [stderr]   Downloaded writeable v0.6.2
[INFO] [stderr]   Downloaded litemap v0.8.1
[INFO] [stderr]   Downloaded pin-project-lite v0.2.16
[INFO] [stderr]   Downloaded tracing-core v0.1.35
[INFO] [stderr]   Downloaded futures-channel v0.3.31
[INFO] [stderr]   Downloaded signal-hook v0.3.18
[INFO] [stderr]   Downloaded clap v4.5.53
[INFO] [stderr]   Downloaded serde_yaml v0.9.34+deprecated
[INFO] [stderr]   Downloaded icu_properties v2.1.1
[INFO] [stderr]   Downloaded icu_locale_core v2.1.1
[INFO] [stderr]   Downloaded icu_normalizer v2.1.1
[INFO] [stderr]   Downloaded icu_normalizer_data v2.1.1
[INFO] [stderr]   Downloaded socket2 v0.6.1
[INFO] [stderr]   Downloaded schannel v0.1.28
[INFO] [stderr]   Downloaded tinyvec v1.10.0
[INFO] [stderr]   Downloaded chrono v0.4.42
[INFO] [stderr]   Downloaded anyhow v1.0.100
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.106
[INFO] [stderr]   Downloaded zerotrie v0.2.3
[INFO] [stderr]   Downloaded openssl-sys v0.9.111
[INFO] [stderr]   Downloaded tracing v0.1.43
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.31
[INFO] [stderr]   Downloaded bumpalo v3.19.0
[INFO] [stderr]   Downloaded url v2.5.7
[INFO] [stderr]   Downloaded icu_collections v2.1.1
[INFO] [stderr]   Downloaded bytes v1.11.0
[INFO] [stderr]   Downloaded rustls-webpki v0.103.8
[INFO] [stderr]   Downloaded cc v1.2.48
[INFO] [stderr]   Downloaded rand v0.9.2
[INFO] [stderr]   Downloaded hyper-util v0.1.18
[INFO] [stderr]   Downloaded mio v0.8.11
[INFO] [stderr]   Downloaded indexmap v2.12.1
[INFO] [stderr]   Downloaded tower v0.5.2
[INFO] [stderr]   Downloaded wasip2 v1.0.1+wasi-0.2.4
[INFO] [stderr]   Downloaded memchr v2.7.6
[INFO] [stderr]   Downloaded zerovec v0.11.5
[INFO] [stderr]   Downloaded mio v1.1.0
[INFO] [stderr]   Downloaded tokio-util v0.7.17
[INFO] [stderr]   Downloaded clap_builder v4.5.53
[INFO] [stderr]   Downloaded serde_json v1.0.145
[INFO] [stderr]   Downloaded tower-http v0.6.7
[INFO] [stderr]   Downloaded futures-util v0.3.31
[INFO] [stderr]   Downloaded iri-string v0.7.9
[INFO] [stderr]   Downloaded hyper v1.8.1
[INFO] [stderr]   Downloaded crossterm v0.27.0
[INFO] [stderr]   Downloaded reqwest v0.12.24
[INFO] [stderr]   Downloaded icu_properties_data v2.1.1
[INFO] [stderr]   Downloaded h2 v0.4.12
[INFO] [stderr]   Downloaded quinn-proto v0.11.13
[INFO] [stderr]   Downloaded zerocopy v0.8.31
[INFO] [stderr]   Downloaded webpki-roots v1.0.4
[INFO] [stderr]   Downloaded openssl v0.10.75
[INFO] [stderr]   Downloaded syn v2.0.111
[INFO] [stderr]   Downloaded rustls v0.23.35
[INFO] [stderr]   Downloaded rustix v1.1.2
[INFO] [stderr]   Downloaded web-sys v0.3.83
[INFO] [stderr]   Downloaded tokio v1.48.0
[INFO] [stderr]   Downloaded libc v0.2.178
[INFO] [stderr]   Downloaded linux-raw-sys v0.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0
[INFO] running `Command { std: "docker" "start" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", 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" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0" "/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" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", 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" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.178
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-sink v0.3.31
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling slab v0.4.11
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling tracing-core v0.1.35
[INFO] [stderr]    Compiling futures-task v0.3.31
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling icu_properties_data v2.1.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling rustls-pki-types v1.13.1
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tracing v0.1.43
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling foreign-types v0.3.2
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling rustls v0.23.35
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling openssl-probe v0.1.6
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling webpki-roots v1.0.4
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling iri-string v0.7.9
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling mio v1.1.0
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling signal-hook-registry v1.4.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling shell-words v1.1.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.8
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tokio-util v0.7.17
[INFO] [stderr]    Compiling tower v0.5.2
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling h2 v0.4.12
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling tower-http v0.6.7
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.7
[INFO] [stderr]    Compiling hyper-util v0.1.18
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling sai-cli v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 57.59s
[INFO] running `Command { std: "docker" "inspect" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", 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" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0" "/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 bitflags v2.10.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.2
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling tower-http v0.6.7
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.24
[INFO] [stderr]    Compiling sai-cli v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.38s
[INFO] running `Command { std: "docker" "inspect" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", 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" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/sai-fa936c727b1cd29c)
[INFO] [stdout] 
[INFO] [stdout] running 227 tests
[INFO] [stderr] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpVfglho/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpnm7XMA/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpfatuIi/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stdout] test app::tests::a_bare_y_does_not_execute ... ok
[INFO] [stdout] test app::tests::analyze_without_history_returns_message ... ok
[INFO] [stdout] test app::tests::an_absent_setting_allows_unrestricted_mode ... ok
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hello
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpFhxbK3/config/config.yaml)
[INFO] [stdout] test app::tests::an_unconfigured_tool_runs_under_unrestricted ... ok
[INFO] [stdout] test app::tests::argument_and_piped_prompts_take_the_same_path ... ok
[INFO] [stderr] Freeze this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Explain: --explain flag
[INFO] [stderr]   Risk:    none found
[INFO] [stdout] test app::tests::card_preserves_executor_exit_code_and_execution_history_fields ... ok
[INFO] [stderr]   Config:  global default (/tmp/.tmpkE9jB4/config/config.yaml)
[INFO] [stderr] Execute this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Explain: --explain flag
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpJE41oR/config/config.yaml)
[INFO] [stdout] test app::tests::card_reports_global_and_per_call_config_provenance ... ok
[INFO] [stdout] test app::tests::card_scope_is_present_only_when_supplied ... ok
[INFO] [stdout] test app::tests::declining_initial_freeze_review_leaves_no_catalog ... ok
[INFO] [stdout] test app::tests::a_submitted_prompt_is_recorded_in_prompt_history ... ok
[INFO] [stdout] test app::tests::analyze_receives_the_prompt_from_an_editor_shaped_history_entry ... ok
[INFO] [stdout] test app::tests::forbidden_unrestricted_mode_fails_and_names_the_config_file ... ok
[INFO] [stdout] test app::tests::card_precedes_each_confirmation_but_not_direct_execution ... ok
[INFO] [stdout] test app::tests::declining_replacement_leaves_the_catalog_byte_identical ... ok
[INFO] [stdout] test app::tests::explain_and_unsafe_still_apply_to_a_stdin_prompt ... ok
[INFO] [stdout] test app::tests::force_explain_tool_is_named_as_the_effective_source ... ok
[INFO] [stdout] test app::tests::explain_forces_confirmation_and_allows_cancel ... ok
[INFO] [stdout] test app::tests::frozen_commands_do_not_change_generation_validation_confirmation_or_execution ... ok
[INFO] [stdout] test app::tests::forbidding_the_mode_does_not_affect_ordinary_invocations ... ok
[INFO] [stdout] test app::tests::ordinary_confirmations_still_accept_a_bare_y ... ok
[INFO] [stdout] test app::tests::explain_source_resolves_effective_precedence ... ok
[INFO] [stdout] test app::tests::inspection_happens_without_explain_or_confirm_flags ... ok
[INFO] [stdout] test app::tests::missing_prompt_outside_a_terminal_is_an_explicit_error ... ok
[INFO] [stdout] test app::tests::invalid_name_refusal_leaves_the_commands_directory_unchanged ... ok
[INFO] [stdout] test app::tests::preflight_card_omits_inapplicable_fields_and_states_no_risk ... ok
[INFO] [stdout] test app::tests::path_shadowing_refusal_leaves_the_commands_directory_unchanged ... ok
[INFO] [stderr] Execute this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpawPCx3/config/config.yaml)
[INFO] [stderr] Execute this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpJrR3CW/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hello
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpNtb5pF/config/config.yaml)
[INFO] [stderr] Freeze this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpJ74Oe6/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpXa2otc/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  pipe greetings
[INFO] [stderr]   Command: echo first | echo second
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  unsafe
[INFO] [stderr]   Risk:    [shell operators] contains |
[INFO] [stderr]   Config:  global default (/tmp/.tmpNtb5pF/config/config.yaml)
[INFO] [stderr] Freeze this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpIJPJsu/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpRFhlEv/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpIQmHhV/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpeVbI1G/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpTx6yuj/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: ripgrep hello
[INFO] [stderr]   Tool:    ripgrep
[INFO] [stderr]   Safety:  unrestricted
[INFO] [stderr]   Explain: unrestricted mode (mandatory inspection)
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpClaM76/config/config.yaml)
[INFO] [stderr] UNRESTRICTED: no tool whitelist is in effect for this command.
[INFO] [stdout] test app::tests::nothing_to_freeze_refusal_leaves_no_catalog ... ok
[INFO] [stderr] Type 'yes' to execute: Preflight:
[INFO] [stderr]   Prompt:  say hi
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  unsafe
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpa14az9/config/config.yaml)
[INFO] [stdout] test app::tests::preflight_card_never_truncates_the_command ... ok
[INFO] [stdout] test app::tests::other_answers_do_not_execute ... ok
[INFO] [stdout] test app::tests::explanation_is_completed_before_the_card_is_written ... ok
[INFO] [stdout] test app::tests::typing_yes_executes ... ok
[INFO] [stdout] test app::tests::unrestricted_freeze_refusal_leaves_the_commands_directory_unchanged ... ok
[INFO] [stdout] test app::tests::risk_markers_appear_on_unsafe_and_ordinary_confirmations ... ok
[INFO] [stdout] test app::tests::the_affirmative_is_case_insensitive ... ok
[INFO] [stdout] test app::tests::preflight_card_renders_every_applicable_field_and_multiple_markers ... ok
[INFO] [stdout] test app::tests::preflight_cards_are_legible_in_each_confirmation_mode ... ok
[INFO] [stdout] test app::tests::rendering_a_card_is_deterministic_and_has_no_execution_dependencies ... ok
[INFO] [stdout] test app::tests::generate_and_freeze_round_trip_has_exact_default_and_unsafe_scripts ... ok
[INFO] [stdout] test cli::tests::advanced_mode_uses_second_positional_as_prompt ... ok
[INFO] [stdout] test app::tests::unsafe_mode_still_forces_confirmation_for_a_stdin_prompt ... ok
[INFO] [stdout] test app::tests::prompt_config_flag_selects_the_per_call_config ... ok
[INFO] [stdout] test cli::tests::bare_invocation_in_a_terminal_opens_the_editor ... ok
[INFO] [stdout] test cli::tests::bare_invocation_parses ... ok
[INFO] [stdout] test cli::tests::interactive_with_prompt_config_opens_an_empty_editor ... ok
[INFO] [stdout] test cli::tests::non_tty_without_an_argument_reads_a_plain_line ... ok
[INFO] [stdout] test cli::tests::save_accepts_a_name_and_optional_prompt ... ok
[INFO] [stdout] test cli::tests::interactive_and_no_interactive_conflict ... ok
[INFO] [stdout] test cli::tests::prompt_config_flag_makes_positional_the_prompt ... ok
[INFO] [stdout] test cli::tests::no_interactive_in_a_terminal_reads_a_plain_line ... ok
[INFO] [stdout] test cli::tests::interactive_opens_the_editor_even_without_a_tty ... ok
[INFO] [stdout] test cli::unrestricted_tests::unrestricted_composes_with_unsafe ... ok
[INFO] [stdout] test cli::tests::interactive_flag_uses_the_argument_as_prefill ... ok
[INFO] [stdout] test cli::tests::prompt_argument_is_used_verbatim ... ok
[INFO] [stdout] test cli::tests::cli_definition_is_valid ... ok
[INFO] [stdout] test cli::unrestricted_tests::no_flag_can_suppress_inspection ... ok
[INFO] [stdout] test cli::tests::positional_under_interactive_is_never_a_config_path ... ok
[INFO] [stdout] test commands::tests::default_quotes_except_globs ... ok
[INFO] [stdout] test cli::unrestricted_tests::unrestricted_composes_with_explain_and_confirm ... ok
[INFO] [stdout] test cli::tests::no_interactive_still_honours_a_prompt_argument ... ok
[INFO] [stdout] test commands::tests::headers_round_trip ... ok
[INFO] [stdout] test commands::tests::shell_modes_are_verbatim ... ok
[INFO] [stdout] test config::tests::env_override_takes_precedence ... ok
[INFO] [stdout] test commands::tests::listing_reflects_an_intent_edited_in_the_script ... ok
[INFO] [stdout] test config::tests::invalid_openai_api_mode_errors ... ok
[INFO] [stdout] test config::tests::openai_api_mode_accepts_chat_completions ... ok
[INFO] [stdout] test config::tests::openai_snapshot_and_reasoning_effort_are_resolved ... ok
[INFO] [stdout] test config::tests::tool_config_defaults_force_explain_to_none ... ok
[INFO] [stdout] test editor::tests::a_failed_search_reports_no_match_and_keeps_the_query ... ok
[INFO] [stdout] test config::tests::tool_config_skips_serializing_none ... ok
[INFO] [stdout] test config::tests::tool_config_serializes_force_explain_when_present ... ok
[INFO] [stdout] test editor::tests::alt_enter_inserts_a_line_break_without_submitting ... ok
[INFO] [stdout] test editor::tests::a_recalled_prompt_is_editable ... ok
[INFO] [stderr] Execute this command? [y/N] Preflight:
[INFO] [stderr]   Prompt:  say hello
[INFO] [stderr]   Command: echo hello
[INFO] [stderr]   Tool:    echo
[INFO] [stderr]   Safety:  default
[INFO] [stderr]   Risk:    none found
[INFO] [stderr]   Config:  global default (/tmp/.tmpg4MDcI/config/config.yaml)
[INFO] [stdout] test cli::unrestricted_tests::unrestricted_composes_with_the_interactive_editor ... ok
[INFO] [stdout] test editor::tests::accepting_a_match_returns_it_to_the_buffer_for_editing ... ok
[INFO] [stdout] test commands::tests::risk_guard_is_conditional ... ok
[INFO] [stdout] test app::tests::init_and_freezing_never_touch_shell_startup_files ... ok
[INFO] [stdout] test editor::tests::backspace_at_the_start_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::backspace_removes_the_previous_character ... ok
[INFO] [stdout] test editor::tests::backspace_and_delete_join_lines_at_the_break ... ok
[INFO] [stdout] test editor::tests::arrows_move_within_multiline_buffers_before_navigating_history ... ok
[INFO] [stdout] test editor::tests::cancelling_search_restores_the_pre_search_buffer ... ok
[INFO] [stdout] test config::tests::openai_api_mode_defaults_to_responses ... ok
[INFO] [stdout] test editor::tests::a_render_clears_from_the_cursor_down ... ok
[INFO] [stdout] test editor::tests::ctrl_c_cancels ... ok
[INFO] [stdout] test editor::tests::ctrl_g_does_not_alter_the_buffer ... ok
[INFO] [stdout] test editor::tests::ctrl_c_cancels_the_whole_editor_from_search_mode ... ok
[INFO] [stdout] test editor::tests::ctrl_g_toggles_the_key_panel ... ok
[INFO] [stdout] test editor::tests::ctrl_k_and_ctrl_u_only_change_the_current_line ... ok
[INFO] [stdout] test editor::tests::ctrl_g_toggles_the_key_panel_during_search ... ok
[INFO] [stdout] test editor::tests::ctrl_j_inserts_a_line_break_without_submitting ... ok
[INFO] [stdout] test editor::tests::clearing_the_area_on_exit_does_not_climb_above_the_prompt ... ok
[INFO] [stdout] test config::tests::tool_config_deserializes_force_explain ... ok
[INFO] [stdout] test editor::tests::ctrl_u_kills_to_start_of_line ... ok
[INFO] [stdout] test editor::tests::ctrl_a_and_ctrl_e_jump_to_the_edges ... ok
[INFO] [stdout] test editor::tests::delete_removes_the_character_at_the_cursor ... ok
[INFO] [stdout] test app::tests::default_mode_can_be_frozen_when_unrestricted_is_forbidden ... ok
[INFO] [stdout] test editor::tests::editing_in_the_middle_of_the_buffer ... ok
[INFO] [stdout] test editor::tests::enter_on_a_whitespace_only_buffer_keeps_the_editor_open ... ok
[INFO] [stdout] test editor::tests::ctrl_l_requests_redraw_without_touching_the_buffer ... ok
[INFO] [stdout] test editor::tests::down_without_navigating_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::delete_at_the_end_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::down_past_the_newest_restores_the_draft ... ok
[INFO] [stdout] test editor::tests::ctrl_k_kills_to_end_of_line ... ok
[INFO] [stdout] test editor::tests::cursor_movement_clamps_at_both_ends ... ok
[INFO] [stdout] test editor::tests::ctrl_r_cycles_to_the_next_older_match ... ok
[INFO] [stdout] test editor::tests::ctrl_r_finds_the_most_recent_match ... ok
[INFO] [stdout] test editor::tests::display_width_counts_wide_characters_as_two_columns ... ok
[INFO] [stdout] test editor::tests::enter_submits_the_whole_multiline_buffer_from_any_line ... ok
[INFO] [stdout] test editor::tests::horizontal_movement_crosses_line_breaks ... ok
[INFO] [stdout] test editor::tests::line_helpers_assign_each_newline_boundary_to_the_line_it_ends ... ok
[INFO] [stdout] test editor::tests::esc_cancels ... ok
[INFO] [stdout] test editor::tests::line_helpers_cover_empty_single_and_unicode_buffers ... ok
[INFO] [stdout] test cli::unrestricted_tests::unrestricted_parses_alone ... ok
[INFO] [stdout] test editor::tests::enter_on_an_empty_buffer_keeps_the_editor_open ... ok
[INFO] [stdout] test editor::tests::enter_on_multiline_whitespace_keeps_the_editor_open ... ok
[INFO] [stdout] test editor::tests::home_and_end_jump_to_the_edges ... ok
[INFO] [stdout] test editor::tests::enter_submits_the_buffer ... ok
[INFO] [stdout] test editor::tests::guide_indicator_counts_characters_and_tracks_lines ... ok
[INFO] [stdout] test editor::tests::plain_read_errors_on_a_blank_line ... ok
[INFO] [stdout] test editor::tests::navigation_with_empty_history_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::multiline_draft_is_restored_intact_after_history_navigation ... ok
[INFO] [stdout] test editor::tests::multi_byte_text_survives_editing ... ok
[INFO] [stdout] test editor::tests::multiline_history_entry_loads_atomically_then_uses_buffer_first_navigation ... ok
[INFO] [stdout] test editor::tests::plain_read_errors_on_immediate_eof ... ok
[INFO] [stdout] test editor::tests::plain_read_returns_the_piped_line ... ok
[INFO] [stdout] test editor::tests::prefill_places_the_cursor_at_the_end ... ok
[INFO] [stdout] test editor::tests::prompt_row_count_matches_logical_line_count_including_trailing_lines ... ok
[INFO] [stdout] test editor::tests::prompt_rows_mark_continuations_and_report_the_cursor ... ok
[INFO] [stdout] test editor::tests::a_render_returns_the_cursor_to_the_row_it_started_on ... ok
[INFO] [stdout] test editor::tests::render_reserves_the_prompt_area_before_saving_its_anchor ... ok
[INFO] [stdout] test editor::tests::reverse_search_matches_and_accepts_a_multiline_entry ... ok
[INFO] [stdout] test editor::tests::ctrl_u_and_ctrl_k_are_safe_on_multi_byte_text ... ok
[INFO] [stdout] test editor::tests::home_end_ctrl_a_and_ctrl_e_are_line_relative ... ok
[INFO] [stdout] test editor::tests::reverse_search_previews_multiline_matches_on_one_visible_row ... ok
[INFO] [stdout] test editor::tests::rendering_draws_the_prompt_and_the_hint ... ok
[INFO] [stdout] test editor::tests::the_hint_line_follows_the_mode ... ok
[INFO] [stdout] test editor::tests::the_hint_line_names_the_essential_keys ... ok
[INFO] [stdout] test editor::tests::the_key_panel_covers_every_binding_the_editor_implements ... ok
[INFO] [stdout] test editor::tests::typing_inserts_at_the_cursor ... ok
[INFO] [stdout] test editor::tests::loop_handles_redraw_and_cancel ... ok
[INFO] [stdout] test editor::tests::rendering_caps_tall_prompts_and_keeps_the_cursor_line_visible ... ok
[INFO] [stdout] test editor::tests::loop_ignores_key_release_events ... ok
[INFO] [stdout] test executor::tests::expand_glob_no_metacharacters ... ok
[INFO] [stdout] test executor::tests::expand_glob_invalid_pattern ... ok
[INFO] [stdout] test editor::tests::up_walks_back_and_clamps_at_the_oldest_entry ... ok
[INFO] [stdout] test editor::tests::vertical_movement_preserves_character_column_and_clamps ... ok
[INFO] [stdout] test executor::tests::expand_glob_no_matches ... ok
[INFO] [stdout] test executor::tests::noop_executor_returns_zero ... ok
[INFO] [stdout] test editor::tests::up_on_the_first_line_with_empty_history_is_a_no_op ... ok
[INFO] [stdout] test editor::tests::up_recalls_the_most_recent_prompt ... ok
[INFO] [stdout] test executor::tests::expand_glob_with_matches ... ok
[INFO] [stdout] test help::tests::top_level_help_has_header_and_topics ... ok
[INFO] [stdout] test history::tests::an_entry_written_before_the_field_existed_still_parses ... ok
[INFO] [stdout] test help::tests::unknown_topic_reports_error ... ok
[INFO] [stdout] test editor::tests::search_over_a_full_history_is_fast ... ok
[INFO] [stdout] test help::tests::maps_help_topics_case_insensitively ... ok
[INFO] [stdout] test help::tests::help_texts_come_from_templates ... ok
[INFO] [stdout] test help::tests::topics_help_lists_all_topics ... ok
[INFO] [stdout] test history::tests::unrestricted_runs_are_distinguishable_in_the_log ... ok
[INFO] [stdout] test ops::tests::non_interactive_duplicate_errors ... ok
[INFO] [stdout] test history::tests::write_and_read_round_trip ... ok
[INFO] [stdout] test ops::tests::force_explain_overridden_when_incoming_specifies_false ... ok
[INFO] [stdout] test ops::tests::availability_reports_missing_for_fake_tool ... ok
[INFO] [stdout] test ops::tests::resolve_duplicate_overwrite_replaces_definition ... ok
[INFO] [stdout] test ops::tests::resolve_duplicate_cancel_aborts ... ok
[INFO] [stdout] test llm::tests::request_model_prefers_snapshot ... ok
[INFO] [stdout] test llm::tests::responses_content_extracts_message_output_text ... ok
[INFO] [stdout] test llm::tests::responses_content_extracts_top_level_output_text ... ok
[INFO] [stdout] test ops::tests::force_explain_preserved_when_incoming_is_none ... ok
[INFO] [stdout] test ops::tests::create_prompt_template_writes_file ... ok
[INFO] [stdout] test prompt::system_prompt_tests::an_empty_tool_list_is_still_rejected ... ok
[INFO] [stdout] test prompt::system_prompt_tests::default_mode_confines_the_model_to_configured_tools ... ok
[INFO] [stdout] test prompt::system_prompt_tests::tool_descriptions_survive_in_both_modes ... ok
[INFO] [stdout] test prompt_history::tests::absent_store_is_an_empty_history ... ok
[INFO] [stdout] test peek::tests::peek_context_includes_samples ... ok
[INFO] [stdout] test ops::tests::resolve_duplicate_skip_keeps_existing ... ok
[INFO] [stdout] test ops::tests::sanitize_handles_weird_chars ... ok
[INFO] [stdout] test prompt_history::tests::corrupt_lines_are_skipped ... ok
[INFO] [stdout] test prompt::system_prompt_tests::unrestricted_mode_does_not_confine_the_model ... ok
[INFO] [stdout] test prompt::system_prompt_tests::unsafe_mode_still_confines_the_model ... ok
[INFO] [stdout] test prompt_history::tests::blank_prompts_are_not_recorded ... ok
[INFO] [stdout] test prompt_history::tests::differently_placed_line_breaks_are_distinct_prompts ... ok
[INFO] [stdout] test prompt_history::tests::consecutive_duplicates_are_collapsed ... ok
[INFO] [stdout] test safety::tests::a_full_path_to_a_deleter_is_still_marked ... ok
[INFO] [stdout] test prompt_history::tests::non_consecutive_repeats_are_recorded ... ok
[INFO] [stdout] test safety::tests::a_command_can_carry_several_markers ... ok
[INFO] [stdout] test safety::tests::a_malformed_command_still_yields_markers_without_panicking ... ok
[INFO] [stdout] test prompt_history::tests::multiline_prompt_round_trips_as_one_entry_without_losing_breaks ... ok
[INFO] [stdout] test safety::tests::an_empty_command_is_rejected_in_every_mode ... ok
[INFO] [stdout] test safety::tests::a_malformed_command_is_rejected_in_every_mode ... ok
[INFO] [stdout] test safety::tests::an_ordinary_command_carries_no_markers ... ok
[INFO] [stdout] test prompt_history::tests::prompts_persist_newest_first ... ok
[INFO] [stdout] test prompt_history::tests::write_failure_does_not_panic ... ok
[INFO] [stdout] test prompt_history::tests::store_is_owner_only ... ok
[INFO] [stdout] test safety::tests::allows_safe_command ... ok
[INFO] [stdout] test safety::tests::detects_pipe_even_without_spaces ... ok
[INFO] [stdout] test safety::tests::markers_never_reject_a_command ... ok
[INFO] [stdout] test safety::tests::operators_are_marked ... ok
[INFO] [stdout] test safety::tests::deletion_detail_names_what_it_does ... ok
[INFO] [stdout] test safety::tests::recursive_and_forced_deletion_is_marked ... ok
[INFO] [stdout] test safety::tests::unrestricted_permits_an_unconfigured_tool_with_operators ... ok
[INFO] [stdout] test safety::tests::wildcards_rooted_in_the_working_directory_are_not_marked_broad ... ok
[INFO] [stdout] test safety_mode::tests::history_records_both_relaxed_modes_as_unsafe ... ok
[INFO] [stdout] test safety_mode::tests::plain_invocation_is_default_mode ... ok
[INFO] [stdout] test safety::tests::operators_are_permitted_in_both_relaxed_modes ... ok
[INFO] [stdout] test safety::tests::find_delete_is_marked_even_though_rm_never_appears ... ok
[INFO] [stdout] test safety::tests::non_destructive_commands_are_not_marked_destructive ... ok
[INFO] [stdout] test safety_mode::tests::unrestricted_without_unsafe_is_unrepresentable ... ok
[INFO] [stdout] test safety_mode::tests::unrestricted_wins_when_both_flags_are_given ... ok
[INFO] [stdout] test safety::tests::broad_wildcards_are_marked ... ok
[INFO] [stdout] test safety_mode::tests::unsafe_lifts_operators_but_keeps_the_whitelist ... ok
[INFO] [stdout] test safety_mode::tests::unrestricted_alone_implies_shell_execution_and_no_operator_blocking ... ok
[INFO] [stdout] test safety::tests::operators_are_rejected_in_default_mode ... ok
[INFO] [stdout] test safety_mode::tests::unrestricted_lifts_everything_and_forces_inspection ... ok
[INFO] [stdout] test safety::tests::an_unconfigured_tool_is_rejected_unless_unrestricted ... ok
[INFO] [stdout] test safety::tests::markers_are_deterministic_and_side_effect_free ... ok
[INFO] [stdout] test safety::tests::quoted_operators_are_not_marked ... ok
[INFO] [stdout] test scope::tests::empty_directory_produces_empty_listing ... ok
[INFO] [stdout] test scope::tests::directory_listing_marks_directories ... ok
[INFO] [stdout] test editor::tests::loop_ignores_empty_submissions_then_submits ... ok
[INFO] [stdout] test prompt_history::tests::rotation_preserves_the_newest_entries ... ok
[INFO] [stdout] test editor::tests::loop_edits_a_recalled_prompt_before_submitting ... ok
[INFO] [stdout] test commands::tests::emitted_scripts_match_executor_output_including_default_mode_globs ... ok
[INFO] [stdout] test editor::tests::loop_submits_a_composed_prompt ... ok
[INFO] [stdout] test editor::tests::repeated_renders_do_not_drift_up_the_screen ... ok
[INFO] [stdout] test history::tests::rotates_when_size_exceeded ... ok
[INFO] [stdout] test scope::tests::directory_listing_truncates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 227 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stderr] Freeze this command? [y/N] 
[INFO] running `Command { std: "docker" "inspect" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0", kill_on_drop: false }`
[INFO] [stdout] 38da6c1228134a347e6f84708c804dccf91ebf6d77b4d5fdad9a8b82f64dfbf0
