[INFO] fetching crate ai-playground 0.5.0...
[INFO] testing ai-playground-0.5.0 against 1.94.0 for beta-1.95-1
[INFO] extracting crate ai-playground 0.5.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate ai-playground 0.5.0
[INFO] finished tweaking crates.io crate ai-playground 0.5.0
[INFO] tweaked toml for crates.io crate ai-playground 0.5.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate ai-playground 0.5.0 on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate ai-playground 0.5.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.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zlink v0.3.0
[INFO] [stderr]   Downloaded ppmd-rust v1.4.0
[INFO] [stderr]   Downloaded zlink-tokio v0.3.0
[INFO] [stderr]   Downloaded zlink-smol v0.3.0
[INFO] [stderr]   Downloaded which v8.0.0
[INFO] [stderr]   Downloaded serde-prefix-all v0.1.0
[INFO] [stderr]   Downloaded xz2 v0.1.7
[INFO] [stderr]   Downloaded redox_syscall v0.7.2
[INFO] [stderr]   Downloaded zlink-core v0.3.0
[INFO] [stderr]   Downloaded typed-path v0.12.3
[INFO] [stderr]   Downloaded zip v7.2.0
[INFO] [stderr]   Downloaded zlib-rs v0.6.2
[INFO] [stderr]   Downloaded libbz2-rs-sys v0.2.2
[INFO] [stderr]   Downloaded bzip2 v0.6.1
[INFO] [stderr]   Downloaded deflate64 v0.1.11
[INFO] [stderr]   Downloaded zlink-macros v0.3.0
[INFO] [stderr]   Downloaded lzma-sys v0.1.20
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0ca2d39d3f88fb5c78c6443783d3dc9f0817cae2059a4684a7adbb110d281ff8
[INFO] running `Command { std: "docker" "start" "-a" "0ca2d39d3f88fb5c78c6443783d3dc9f0817cae2059a4684a7adbb110d281ff8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0ca2d39d3f88fb5c78c6443783d3dc9f0817cae2059a4684a7adbb110d281ff8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ca2d39d3f88fb5c78c6443783d3dc9f0817cae2059a4684a7adbb110d281ff8", kill_on_drop: false }`
[INFO] [stdout] 0ca2d39d3f88fb5c78c6443783d3dc9f0817cae2059a4684a7adbb110d281ff8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8c6fb6d916d339b641692a4b7e8949919265681c31b6b4269242f559a876e13f
[INFO] running `Command { std: "docker" "start" "-a" "8c6fb6d916d339b641692a4b7e8949919265681c31b6b4269242f559a876e13f", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-lite v2.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling aws-lc-rs v1.16.0
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling blocking v1.6.2
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling async-lock v3.4.2
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling zlink-macros v0.3.0
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling aws-lc-sys v0.37.1
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling libbz2-rs-sys v0.2.2
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling zlib-rs v0.6.2
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling polling v3.11.0
[INFO] [stderr]    Compiling async-io v2.6.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling zlink-core v0.3.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling async-signal v0.2.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling async-process v2.5.0
[INFO] [stderr]    Compiling async-net v2.0.0
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling zlink-smol v0.3.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling xattr v1.6.1
[INFO] [stderr]    Compiling bzip2 v0.6.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling pbkdf2 v0.12.2
[INFO] [stderr]    Compiling lzma-rust2 v0.15.7
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling async-fs v2.2.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling async-executor v1.14.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling ppmd-rust v1.4.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling deflate64 v0.1.11
[INFO] [stderr]    Compiling typed-path v0.12.3
[INFO] [stderr]    Compiling which v8.0.0
[INFO] [stderr]    Compiling smol v2.0.2
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling xz2 v0.1.7
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling zlink v0.3.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling serde-prefix-all v0.1.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling zstd v0.13.3
[INFO] [stderr]    Compiling zip v7.2.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling ai-playground v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 50s
[INFO] running `Command { std: "docker" "inspect" "8c6fb6d916d339b641692a4b7e8949919265681c31b6b4269242f559a876e13f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8c6fb6d916d339b641692a4b7e8949919265681c31b6b4269242f559a876e13f", kill_on_drop: false }`
[INFO] [stdout] 8c6fb6d916d339b641692a4b7e8949919265681c31b6b4269242f559a876e13f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6169c759b223e2b5fe413c2589f4aea53aac014e792b92d6362775f994521e90
[INFO] running `Command { std: "docker" "start" "-a" "6169c759b223e2b5fe413c2589f4aea53aac014e792b92d6362775f994521e90", kill_on_drop: false }`
[INFO] [stderr]    Compiling ai-playground v0.5.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 10.89s
[INFO] running `Command { std: "docker" "inspect" "6169c759b223e2b5fe413c2589f4aea53aac014e792b92d6362775f994521e90", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6169c759b223e2b5fe413c2589f4aea53aac014e792b92d6362775f994521e90", kill_on_drop: false }`
[INFO] [stdout] 6169c759b223e2b5fe413c2589f4aea53aac014e792b92d6362775f994521e90
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 159d78a9eafacbca7d8b14a3165be5d2617ef78f6efd42cc680c190d976d90de
[INFO] running `Command { std: "docker" "start" "-a" "159d78a9eafacbca7d8b14a3165be5d2617ef78f6efd42cc680c190d976d90de", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/ai_playground-1ba944a596eb529d)
[INFO] [stdout] 
[INFO] [stdout] running 50 tests
[INFO] [stdout] test gate::server::tests::dir_in_allowlist_is_allowed ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_empty_dir ... ok
[INFO] [stdout] test gate::server::tests::dir_inside_project_is_allowed ... ok
[INFO] [stdout] test gate::server::tests::project_root_itself_is_allowed ... ok
[INFO] [stdout] test gate::server::tests::subdir_of_allowlisted_dir_is_allowed ... ok
[INFO] [stdout] test gate::server::tests::symlink_escaping_project_is_denied ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_nonexistent_dir ... ok
[INFO] [stdout] test gate::tests::action_choice_next_cycles ... ok
[INFO] [stdout] test gate::tests::build_command_line_distinguishes_split_args ... ok
[INFO] [stdout] test gate::tests::build_command_line_no_args ... ok
[INFO] [stdout] test gate::tests::build_command_line_quotes_args_with_spaces ... ok
[INFO] [stdout] test gate::server::tests::unrelated_dir_is_denied ... ok
[INFO] [stdout] test gate::exec::tests::streaming_echo ... ok
[INFO] [stdout] test gate::exec::tests::streaming_nonexistent_command ... ok
[INFO] [stdout] test gate::tests::action_choice_prev_cycles ... ok
[INFO] [stdout] test gate::exec::tests::execute_nonexistent_command ... ok
[INFO] [stdout] test gate::tests::decision_from_action_choice ... ok
[INFO] [stdout] test gate::tests::next_for_does_not_skip_for_command_approval ... ok
[INFO] [stdout] test gate::tests::next_for_from_allow_for_session_on_uid_approval ... ok
[INFO] [stdout] test gate::tests::next_for_skips_allow_for_session_on_uid_approval ... ok
[INFO] [stdout] test gate::tests::uid_approval_display_line ... ok
[INFO] [stdout] test gate::tests::prev_for_from_allow_for_session_on_uid_approval ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_ignores_broken_links ... ok
[INFO] [stdout] test gate::exec::tests::execute_echo ... ok
[INFO] [stdout] test gate::exec::tests::execute_with_working_dir ... ok
[INFO] [stdout] test gate::server::tests::dir_outside_project_is_denied ... ok
[INFO] [stdout] test gate::tests::prev_for_skips_allow_for_session_on_uid_approval ... ok
[INFO] [stdout] test project::tests::different_paths_different_hashes ... ok
[INFO] [stdout] test project::tests::machine_name_varies ... ok
[INFO] [stdout] test project::tests::metadata_file_under_state_dir ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_ignores_internal_link ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_ignores_regular_files ... ok
[INFO] [stdout] test gate::exec::tests::execute_false_returns_nonzero ... ok
[INFO] [stdout] test project::tests::home_dir_is_child_of_state_dir ... ok
[INFO] [stdout] test project::tests::machine_name_format ... ok
[INFO] [stdout] test gate::tests::build_command_line_simple_args ... ok
[INFO] [stdout] test project::tests::hash_is_12_hex_chars ... ok
[INFO] [stdout] test project::tests::same_path_same_hash ... ok
[INFO] [stdout] test project::tests::root_path_returns_error ... ok
[INFO] [stdout] test project::tests::socket_path_under_runtime_dir ... ok
[INFO] [stdout] test project::tests::state_dir_contains_hash ... ok
[INFO] [stdout] test utils::tests::shell_quote_with_dollar ... ok
[INFO] [stdout] test utils::tests::shell_quote_flag_with_value ... ok
[INFO] [stdout] test utils::tests::shell_quote_empty_string ... ok
[INFO] [stdout] test utils::tests::shell_quote_with_space ... ok
[INFO] [stdout] test utils::tests::shell_quote_with_embedded_single_quote ... ok
[INFO] [stdout] test utils::tests::shell_quote_with_semicolon ... ok
[INFO] [stdout] test project::tests::socket_path_contains_hash ... ok
[INFO] [stdout] test utils::tests::shell_quote_plain_word ... ok
[INFO] [stdout] test gate::server::tests::find_escaping_symlinks_detects_escape ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 50 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/aip-1b4dd98471a432fb)
[INFO] [stdout] 
[INFO] [stdout] running 420 tests
[INFO] [stdout] test cli::tests::cleanup_with_short_yes_flag ... ok
[INFO] [stdout] test cli::tests::cleanup_with_prune_and_yes ... ok
[INFO] [stdout] test cli::tests::config_create_flag ... ok
[INFO] [stdout] test cli::tests::cleanup_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::destroy_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::config_flags_are_mutually_exclusive ... ok
[INFO] [stdout] test cli::tests::destroy_with_all_flag ... ok
[INFO] [stdout] test cli::tests::gate_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::destroy_with_all_and_yes ... ok
[INFO] [stdout] test cli::tests::cleanup_with_prune_flag ... ok
[INFO] [stdout] test cli::tests::destroy_with_yes_flag ... ok
[INFO] [stdout] test cli::tests::cleanup_with_yes_flag ... ok
[INFO] [stdout] test cli::tests::init_with_dry_run ... ok
[INFO] [stdout] test cli::tests::run_single_host_exec ... ok
[INFO] [stdout] test cli::tests::init_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::run_with_tool_args ... ok
[INFO] [stdout] test cli::tests::list_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::shell_with_host_exec ... ok
[INFO] [stdout] test cli::tests::run_multiple_host_exec ... ok
[INFO] [stdout] test cli::tests::run_subcommand_parses ... ok
[INFO] [stdout] test cli::tests::tools_flags_are_mutually_exclusive ... ok
[INFO] [stdout] test cli::tests::run_with_dry_run_and_ssh ... ok
[INFO] [stdout] test cli::tests::shell_subcommand_parses ... ok
[INFO] [stdout] test commands::cleanup::tests::nonexistent_dir_succeeds ... ok
[INFO] [stdout] test cli::tests::tools_diff_takes_value ... ok
[INFO] [stdout] test cli::tests::tools_changelog_flag ... ok
[INFO] [stdout] test cli::tests::shell_gcloud_init_flag ... ok
[INFO] [stdout] test cli::tests::no_subcommand_defaults_to_none ... ok
[INFO] [stdout] test cli::tests::tools_list_flag ... ok
[INFO] [stdout] test cli::tests::update_agent_flag ... ok
[INFO] [stdout] test cli::tests::update_force_flag ... ok
[INFO] [stdout] test cli::tests::update_extra_packages_flag ... ok
[INFO] [stdout] test cli::tests::run_with_flags_and_tool_args ... ok
[INFO] [stdout] test commands::cleanup::tests::prune_removes_project_without_metadata ... ok
[INFO] [stdout] test commands::cleanup::tests::existing_dir_removed_with_yes ... ok
[INFO] [stdout] test commands::cleanup::tests::prune_no_stale_projects ... ok
[INFO] [stdout] test cli::tests::update_packages_flag ... ok
[INFO] [stdout] test commands::config::tests::validate_invalid_config_returns_error ... ok
[INFO] [stdout] test commands::init::tests::dry_run_shows_create_rootfs_command ... ok
[INFO] [stdout] test commands::destroy::tests::rootfs_only_removal ... ok
[INFO] [stdout] test commands::init::tests::dry_run_shows_create_user_command ... ok
[INFO] [stdout] test commands::init::tests::format_command_multiple_args ... ok
[INFO] [stdout] test commands::init::tests::format_command_single_arg ... ok
[INFO] [stdout] test commands::cleanup::tests::prune_preserves_non_stale_project ... ok
[INFO] [stdout] test commands::destroy::tests::missing_rootfs_and_projects_not_error ... ok
[INFO] [stdout] test commands::init::tests::missing_rootfs_is_detected ... ok
[INFO] [stdout] test commands::destroy::tests::all_removes_rootfs_and_projects ... ok
[INFO] [stdout] test commands::destroy::tests::missing_rootfs_is_not_error ... ok
[INFO] [stdout] test commands::init::tests::write_repo_config_creates_file ... ok
[INFO] [stdout] test commands::init::tests::write_repo_config_has_conf_suffix ... ok
[INFO] [stdout] test commands::cleanup::tests::user_abort_preserves_dir ... ok
[INFO] [stdout] test commands::destroy::tests::user_confirm_removes_dirs ... ok
[INFO] [stdout] test commands::list::tests::dir_size_empty_dir ... ok
[INFO] [stdout] test commands::cleanup::tests::prune_user_abort_preserves_stale ... ok
[INFO] [stdout] test commands::init::tests::init_loads_tool_config_for_default_tool ... ok
[INFO] [stdout] test commands::list::tests::dir_size_nonexistent ... ok
[INFO] [stdout] test commands::list::tests::dir_size_computation ... ok
[INFO] [stdout] test commands::list::tests::empty_dir_returns_no_entries ... ok
[INFO] [stdout] test commands::list::tests::finds_aip_dirs ... ok
[INFO] [stdout] test commands::list::tests::entries_sorted_alphabetically ... ok
[INFO] [stdout] test commands::list::tests::format_size_gib ... ok
[INFO] [stdout] test commands::list::tests::format_size_kib ... ok
[INFO] [stdout] test commands::list::tests::format_size_mib ... ok
[INFO] [stdout] test commands::list::tests::missing_project_path_is_none ... ok
[INFO] [stdout] test commands::init::tests::existing_rootfs_is_detected ... ok
[INFO] [stdout] test commands::run::tests::bashrc_content_includes_aip_bin_path ... ok
[INFO] [stdout] test commands::list::tests::read_project_path_from_toml ... ok
[INFO] [stdout] test commands::list::tests::read_project_path_missing_key_is_none ... ok
[INFO] [stdout] test commands::init::tests::init_dry_run_includes_tool_info ... ok
[INFO] [stdout] test commands::run::tests::create_host_exec_dir_creates_symlinks ... ok
[INFO] [stdout] test commands::list::tests::read_project_path_invalid_toml_is_none ... ok
[INFO] [stdout] test commands::list::tests::reads_project_path_from_metadata ... ok
[INFO] [stdout] test commands::cleanup::tests::prune_stale_project_removed_with_yes ... ok
[INFO] [stdout] test commands::run::tests::dry_run_format_d_and_m_on_one_line ... ok
[INFO] [stdout] test commands::run::tests::chown_home_dir_and_bashrc ... ok
[INFO] [stdout] test commands::list::tests::format_size_tib ... ok
[INFO] [stdout] test commands::run::tests::dry_run_format_basic ... ok
[INFO] [stdout] test commands::run::tests::dry_run_format_env_on_one_line ... ok
[INFO] [stdout] test commands::run::tests::create_host_exec_dir_rejects_invalid_cmd ... ok
[INFO] [stdout] test commands::run::tests::resolve_host_exec_bin_default ... ok
[INFO] [stdout] test commands::run::tests::resolve_host_exec_bin_devel_override ... ok
[INFO] [stdout] test commands::list::tests::nonexistent_dir_returns_no_entries ... ok
[INFO] [stdout] test commands::run::tests::symlink_agents_md_skips_when_no_agents_md ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_finds_non_default_uid ... ok
[INFO] [stdout] test commands::run::tests::symlink_agents_md_skips_when_claude_md_exists ... ok
[INFO] [stdout] test commands::run::tests::create_host_exec_dir_permissions ... ok
[INFO] [stdout] test commands::cleanup::tests::user_confirm_removes_dir ... ok
[INFO] [stdout] test commands::destroy::tests::user_abort_preserves_dirs ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_finds_player ... ok
[INFO] [stdout] test commands::list::tests::ignores_non_matching_dirs ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_missing_file ... ok
[INFO] [stdout] test commands::list::tests::format_size_bytes ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_user_not_found ... ok
[INFO] [stdout] test commands::run::tests::symlink_agents_md_creates_link_for_claude ... ok
[INFO] [stdout] test commands::run::tests::tool_executable_path ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_malformed_gid ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_rejects_absolute_path ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_rejects_dotdot ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_rejects_dot ... ok
[INFO] [stdout] test commands::config::tests::validate_valid_config_returns_zero ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_rejects_empty ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_simple_name ... ok
[INFO] [stdout] test commands::run::tests::lookup_passwd_malformed_uid ... ok
[INFO] [stdout] test commands::run::tests::symlink_agents_md_skips_non_claude_tool ... ok
[INFO] [stdout] test commands::shell::tests::shell_uses_bash ... ok
[INFO] [stdout] test commands::shell::tests::gcloud_init_tempfile_is_created ... ok
[INFO] [stdout] test commands::run::tests::wait_for_gate_socket_exists_immediately ... ok
[INFO] [stdout] test commands::update::tests::install_extra_packages_generates_correct_dnf_command ... ok
[INFO] [stdout] test commands::update::tests::install_extra_packages_returns_none_when_empty ... ok
[INFO] [stdout] test commands::tools::tests::diff_identical_configs_no_diff ... ok
[INFO] [stdout] test commands::run::tests::validate_host_exec_cmd_rejects_slash ... ok
[INFO] [stdout] test commands::update::tests::missing_rootfs_returns_error ... ok
[INFO] [stdout] test commands::update::tests::update_command_includes_config_path ... ok
[INFO] [stdout] test commands::update::tests::update_generates_correct_dnf_command ... ok
[INFO] [stdout] test config::tests::create_file_creates_parent_directories ... ok
[INFO] [stdout] test commands::shell::tests::gcloud_repo_tempfile_is_created ... ok
[INFO] [stdout] test commands::tools::tests::show_tools_lists_builtin_tools ... ok
[INFO] [stdout] test config::tests::defaults_are_correct ... ok
[INFO] [stdout] test config::tests::defaults_have_no_devel_overrides ... ok
[INFO] [stdout] test config::tests::load_defaults_when_no_files ... ok
[INFO] [stdout] test config::tests::create_file_refuses_to_overwrite ... ok
[INFO] [stdout] test config::tests::load_global_from_file ... ok
[INFO] [stdout] test commands::tools::tests::show_tools_lists_from_system_and_user ... ok
[INFO] [stdout] test config::tests::create_file_writes_default_config ... ok
[INFO] [stdout] test config::tests::merge_empty_layers ... ok
[INFO] [stdout] test config::tests::load_project_missing_file ... ok
[INFO] [stdout] test config::tests::load_global_missing_file ... ok
[INFO] [stdout] test config::tests::merge_keeps_unset_keys ... ok
[INFO] [stdout] test config::tests::merge_deep_merges_tables ... ok
[INFO] [stdout] test config::tests::merge_project_over_empty_global ... ok
[INFO] [stdout] test config::tests::merge_replaces_arrays_and_scalars ... ok
[INFO] [stdout] test config::tests::merge_three_layers ... ok
[INFO] [stdout] test config::tests::merge_preserves_builtin_capabilities ... ok
[INFO] [stdout] test config::tests::parse_devel_with_host_exec_path ... ok
[INFO] [stdout] test config::tests::parse_empty_string ... ok
[INFO] [stdout] test config::tests::parse_empty_devel_section ... ok
[INFO] [stdout] test config::tests::parse_env_vars ... ok
[INFO] [stdout] test config::tests::parse_extra_mounts ... ok
[INFO] [stdout] test commands::tools::tests::show_tools_user_overrides_system ... ok
[INFO] [stdout] test config::tests::system_path_default ... ok
[INFO] [stdout] test config::tests::parse_invalid_network_mode ... ok
[INFO] [stdout] test config::tests::parse_invalid_toml ... ok
[INFO] [stdout] test config::tests::parse_full_config ... ok
[INFO] [stdout] test config::tests::parse_minimal_config ... ok
[INFO] [stdout] test commands::tools::tests::diff_shows_unified_diff ... ok
[INFO] [stdout] test config::tests::system_path_from_env ... ok
[INFO] [stdout] test config::tests::validate_default_config ... ok
[INFO] [stdout] test config::tests::validate_empty_agent_tool ... ok
[INFO] [stdout] test config::tests::validate_empty_base_dir ... ok
[INFO] [stdout] test config::tests::validate_empty_distro ... ok
[INFO] [stdout] test config::tests::validate_empty_extra_mount_paths ... ok
[INFO] [stdout] test config::tests::validate_invalid_capability_name_warns ... ok
[INFO] [stdout] test config::tests::validate_invalid_cpu_quota ... ok
[INFO] [stdout] test config::tests::validate_invalid_cpu_quotas ... ok
[INFO] [stdout] test config::tests::validate_empty_distro_version ... ok
[INFO] [stdout] test config::tests::validate_invalid_systemd_sizes ... ok
[INFO] [stdout] test config::tests::validate_invalid_tasks_max_values ... ok
[INFO] [stdout] test config::tests::validate_multiple_errors_collected ... ok
[INFO] [stdout] test config::tests::validate_invalid_tasks_max ... ok
[INFO] [stdout] test config::tests::validate_unknown_distro_warns ... ok
[INFO] [stdout] test config::tests::validate_valid_cpu_quotas ... ok
[INFO] [stdout] test config::tests::validate_valid_tasks_max_values ... ok
[INFO] [stdout] test config::tests::validate_relative_extra_mount_dst ... ok
[INFO] [stdout] test config::tests::validate_parse_rejects_unknown_network_mode ... ok
[INFO] [stdout] test config::tests::validate_valid_systemd_sizes ... ok
[INFO] [stdout] test config::tests::validate_valid_full_config ... ok
[INFO] [stdout] test config::tests::validate_relative_extra_mount_src ... ok
[INFO] [stdout] test commands::tools::tests::diff_no_user_override_reports_error ... ok
[INFO] [stdout] test config::tests::validate_invalid_memory_max ... ok
[INFO] [stdout] test config::tests::write_paths_contains_all_tiers ... ok
[INFO] [stdout] test config::tests::write_paths_shows_existence_status ... ok
[INFO] [stdout] test distro::fedora::tests::base_packages_is_non_empty ... ok
[INFO] [stdout] test distro::fedora::tests::base_packages_contains_key_packages ... ok
[INFO] [stdout] test distro::fedora::tests::gcloud_repo_config_has_section ... ok
[INFO] [stdout] test config::tests::write_toml_outputs_valid_toml ... ok
[INFO] [stdout] test distro::fedora::tests::create_user_command ... ok
[INFO] [stdout] test distro::fedora::tests::gcloud_repo_config_has_gpgkey ... ok
[INFO] [stdout] test distro::fedora::tests::create_rootfs_command ... ok
[INFO] [stdout] test distro::fedora::tests::install_extra_packages_returns_none_when_empty ... ok
[INFO] [stdout] test distro::fedora::tests::repo_config_has_main_section ... ok
[INFO] [stdout] test distro::fedora::tests::repo_config_has_updates_repo ... ok
[INFO] [stdout] test distro::fedora::tests::install_extra_packages_command ... ok
[INFO] [stdout] test distro::fedora::tests::create_rootfs_includes_extra_packages ... ok
[INFO] [stdout] test distro::tests::get_distro_unknown ... ok
[INFO] [stdout] test distro::tests::get_distro_fedora ... ok
[INFO] [stdout] test distro::fedora::tests::update_rootfs_command ... ok
[INFO] [stdout] test distro::fedora::tests::repo_config_has_fedora_repo ... ok
[INFO] [stdout] test commands::tools::tests::diff_unknown_tool_reports_error ... ok
[INFO] [stdout] test nspawn::builder::tests::build_agent_config_opencode_jsonc_fallback ... ok
[INFO] [stdout] test nspawn::builder::tests::build_agent_config_disabled_no_mounts ... ok
[INFO] [stdout] test nspawn::builder::tests::build_agent_config_claude_mounts ... ok
[INFO] [stdout] test commands::update::tests::update_tools_loads_tool_config ... ok
[INFO] [stdout] test commands::tools::tests::diff_uses_builtin_as_base ... ok
[INFO] [stdout] test nspawn::builder::tests::build_agent_config_opencode_mounts ... ok
[INFO] [stdout] test nspawn::builder::tests::build_chdir_and_executable_last ... ok
[INFO] [stdout] test nspawn::builder::tests::build_core_identity_flags ... ok
[INFO] [stdout] test nspawn::builder::tests::build_all_features_together ... ok
[INFO] [stdout] test nspawn::builder::tests::build_drop_capabilities ... ok
[INFO] [stdout] test nspawn::builder::tests::build_explicit_env_vars ... ok
[INFO] [stdout] test nspawn::builder::tests::build_explicit_env_vars_sorted ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_args_appended_after_executable ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_args_empty_no_effect ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_args_folded_into_bash_wrapper ... ok
[INFO] [stdout] test git::tests::non_git_directory_returns_none ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_args_in_wrapper_are_quoted ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_mounts ... ok
[INFO] [stdout] test nspawn::builder::tests::build_extra_args_multiple ... ok
[INFO] [stdout] test nspawn::builder::tests::build_full_default_config_arg_order ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gate_socket_not_bound_when_missing ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gate_socket_bound_when_exists ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gcloud_bind_when_enabled_and_exists ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gcloud_not_bound_when_disabled ... ok
[INFO] [stdout] test nspawn::builder::tests::build_git_dir_bind_when_exists ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gitconfig_bind_when_exists ... ok
[INFO] [stdout] test config::tests::merge_replaces_section ... ok
[INFO] [stdout] test nspawn::builder::tests::build_gitconfig_not_bound_when_missing ... ok
[INFO] [stdout] test nspawn::builder::tests::build_home_env ... ok
[INFO] [stdout] test nspawn::builder::tests::build_host_exec_bin_bound_when_set ... ok
[INFO] [stdout] test nspawn::builder::tests::build_host_exec_dir_not_bound_when_unset ... ok
[INFO] [stdout] test nspawn::builder::tests::build_nested_worktree_single_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_network_host ... ok
[INFO] [stdout] test nspawn::builder::tests::build_network_private ... ok
[INFO] [stdout] test nspawn::builder::tests::build_init_script_bind_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_network_veth ... ok
[INFO] [stdout] test nspawn::builder::tests::build_host_exec_dir_bound_when_set ... ok
[INFO] [stdout] test nspawn::builder::tests::build_no_init_script_no_bind_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_no_repo_file_no_bind_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_pass_through_env_set ... ok
[INFO] [stdout] test nspawn::builder::tests::build_pass_through_env_unset_skipped ... ok
[INFO] [stdout] test nspawn::builder::tests::build_private_users_disabled ... ok
[INFO] [stdout] test nspawn::builder::tests::build_overlay_pid2_sync ... ok
[INFO] [stdout] test nspawn::builder::tests::build_private_users_enabled ... ok
[INFO] [stdout] test nspawn::builder::tests::build_read_only_configs_disabled ... ok
[INFO] [stdout] test nspawn::builder::tests::build_repo_file_bind_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_resolv_and_timezone ... ok
[INFO] [stdout] test nspawn::builder::tests::build_resource_limits ... ok
[INFO] [stdout] test nspawn::builder::tests::build_root_flag_skips_user ... ok
[INFO] [stdout] test nspawn::builder::tests::build_runs_as_player_by_default ... ok
[INFO] [stdout] test nspawn::builder::tests::build_sibling_worktree_two_mounts ... ok
[INFO] [stdout] test nspawn::builder::tests::build_ssh_agent_forwarded ... ok
[INFO] [stdout] test nspawn::builder::tests::build_ssh_agent_not_forwarded_when_disabled ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_has_aip_env_file_flag ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_has_bind_mount ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_skips_wrapper_for_shell ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_still_has_home_env ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_wraps_executable ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_ssh_still_works ... ok
[INFO] [stdout] test nspawn::builder::tests::build_with_env_file_no_sensitive_e_flags ... ok
[INFO] [stdout] test nspawn::builder::tests::build_without_env_file_no_wrapping ... ok
[INFO] [stdout] test nspawn::builder::tests::build_work_dir_and_home_bind ... ok
[INFO] [stdout] test nspawn::builder::tests::build_work_dir_with_colon ... ok
[INFO] [stdout] test nspawn::builder::tests::build_worktree_chdir_always_work_dir ... ok
[INFO] [stdout] test config::tests::merge_single_layer ... ok
[INFO] [stdout] test git::tests::regular_repo_returns_none ... ok
[INFO] [stdout] test nspawn::builder::tests::build_without_worktree_unchanged ... ok
[INFO] [stdout] test nspawn::builder::tests::nspawn_esc_path_no_colons ... ok
[INFO] [stdout] test nspawn::builder::tests::nspawn_esc_path_with_backslash ... ok
[INFO] [stdout] test nspawn::builder::tests::nspawn_esc_path_with_colons ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_combined ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_backtick ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_sorts_explicit_vars ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_returns_none_when_empty ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_writes_explicit_vars ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_plain_value ... ok
[INFO] [stdout] test nspawn::machine::tests::error_message_machine_list ... ok
[INFO] [stdout] test nspawn::machine::tests::error_message_machine_terminate ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_exclamation ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_escapes_values ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_aip_grandparent ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_missing_parent_comm ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_aip_direct_parent ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_dollar ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_backslash ... ok
[INFO] [stdout] test nspawn::builder::tests::shell_escape_double_quote ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_deep_ancestry ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_comm_with_spaces ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_comm_with_parens ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_no_closing_paren ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_simple ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_truncated_after_state ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_empty_output ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_extracts_matching_names ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_ignores_different_project ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_multiple_matches ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_missing_stat_file ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_zombie_reparented ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_non_numeric ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_ppid_empty_input ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_no_matches ... ok
[INFO] [stdout] test nspawn::machine::tests::is_live_container_zombie_parent_is_systemd ... ok
[INFO] [stdout] test nspawn::machine::tests::parse_stale_machines_partial_prefix_no_match ... ok
[INFO] [stdout] test nspawn::tests::check_rootfs_missing_directory ... ok
[INFO] [stdout] test nspawn::version::tests::error_message_parse ... ok
[INFO] [stdout] test nspawn::version::tests::error_message_too_old ... ok
[INFO] [stdout] test nspawn::tests::check_rootfs_existing_directory ... ok
[INFO] [stdout] test nspawn::tests::check_rootfs_file_not_directory_passes ... ok
[INFO] [stdout] test nspawn::version::tests::parse_version_empty_output ... ok
[INFO] [stdout] test nspawn::version::tests::parse_fedora_version_output ... ok
[INFO] [stdout] test nspawn::version::tests::parse_version_garbage_output ... ok
[INFO] [stdout] test nspawn::version::tests::version_256_below_minimum ... ok
[INFO] [stdout] test nspawn::version::tests::version_258_meets_minimum ... ok
[INFO] [stdout] test nspawn::version::tests::version_257_meets_minimum ... ok
[INFO] [stdout] test nspawn::version::tests::parse_version_missing_prefix ... ok
[INFO] [stdout] test nspawn::version::tests::parse_version_no_number ... ok
[INFO] [stdout] test nspawn::version::tests::version_259_meets_minimum ... ok
[INFO] [stdout] test nspawn::version::tests::parse_version_with_rc_suffix ... ok
[INFO] [stdout] test privilege::tests::ensure_root_returns_ok_when_root ... ok
[INFO] [stdout] test privilege::tests::is_root_checks_effective_uid ... ok
[INFO] [stdout] test nspawn::version::tests::parse_simple_version_output ... ok
[INFO] [stdout] test nspawn::builder::tests::build_host_exec_bin_not_bound_when_unset ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_writes_pass_through ... ok
[INFO] [stdout] test nspawn::builder::tests::prepare_env_file_sets_field ... ok
[INFO] [stdout] test privilege::tests::original_uid_invalid_value_errors ... ok
[INFO] [stdout] test privilege::tests::original_uid_falls_back_to_getuid ... ok
[INFO] [stdout] test privilege::tests::original_uid_reads_userhelper_uid ... ok
[INFO] [stdout] test privilege::tests::restore_noop_without_env_file ... ok
[INFO] [stdout] test privilege::tests::original_uid_reads_sudo_uid ... ok
[INFO] [stdout] test privilege::tests::original_uid_prefers_userhelper_over_sudo ... ok
[INFO] [stdout] test prompt::tests::confirm_no_full_word ... ok
[INFO] [stdout] test prompt::tests::confirm_no_lowercase ... ok
[INFO] [stdout] test prompt::tests::confirm_empty_input_is_no ... ok
[INFO] [stdout] test prompt::tests::confirm_random_input_is_no ... ok
[INFO] [stdout] test prompt::tests::confirm_yes_mixed_case ... ok
[INFO] [stdout] test prompt::tests::confirm_yes_uppercase ... ok
[INFO] [stdout] test privilege::tests::restore_skips_invalid_env_keys ... ok
[INFO] [stdout] test privilege::tests::save_restore_round_trip ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_fewer_than_max ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_finds_version ... ok
[INFO] [stdout] test prompt::tests::confirm_whitespace_around_yes ... ok
[INFO] [stdout] test privilege::tests::save_skips_unset_vars ... ok
[INFO] [stdout] test privilege::tests::save_skips_values_with_newlines ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_limits_entries ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_version_not_found ... ok
[INFO] [stdout] test prompt::tests::confirm_yes_full_word ... ok
[INFO] [stdout] test git::tests::nested_worktree ... ok
[INFO] [stdout] test tool::changelog::tests::fetch_changelog_release_body_disabled ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_with_v_prefix ... ok
[INFO] [stdout] test tool::changelog::tests::fetch_changelog_empty_body_ignored ... ok
[INFO] [stdout] test tool::changelog::tests::extract_recent_sections_last_version ... ok
[INFO] [stdout] test tool::changelog::tests::fetch_changelog_no_source ... ok
[INFO] [stdout] test tool::github::tests::find_asset_matches_resolved_pattern ... ok
[INFO] [stdout] test tool::changelog::tests::is_version_heading_matches_bare ... ok
[INFO] [stdout] test tool::changelog::tests::is_version_heading_matches_with_date ... ok
[INFO] [stdout] test tool::changelog::tests::is_version_heading_matches_with_v ... ok
[INFO] [stdout] test tool::changelog::tests::is_version_heading_no_match ... ok
[INFO] [stdout] test tool::changelog::tests::fetch_changelog_with_release_body ... ok
[INFO] [stdout] test tool::github::tests::parse_release_body ... ok
[INFO] [stdout] test tool::github::tests::parse_release_body_missing ... ok
[INFO] [stdout] test tool::github::tests::find_asset_exact_match ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_exact_gib ... ok
[INFO] [stdout] test tool::github::tests::sha256_digest_returns_none_for_other_algo ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_exact_kib ... ok
[INFO] [stdout] test tool::changelog::tests::find_pager_returns_something ... ok
[INFO] [stdout] test tool::github::tests::find_asset_returns_none_for_no_match ... ok
[INFO] [stdout] test tool::github::tests::sha256_digest_returns_none_when_missing ... ok
[INFO] [stdout] test tool::github::tests::parse_digest_field ... ok
[INFO] [stdout] test tool::github::tests::parse_github_release_json ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_fractional_mib ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_fractional_kib ... ok
[INFO] [stdout] test tool::github::tests::sha256_digest_strips_prefix ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_large_gib ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_small ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_zero ... ok
[INFO] [stdout] test tool::tests::checksum_platform_format ... ok
[INFO] [stdout] test tool::tests::changelog_write_noop_without_existing_meta ... ok
[INFO] [stdout] test tool::tests::extract_none_returns_input_path ... ok
[INFO] [stdout] test tool::tests::arch_alt_maps_known_architectures ... ok
[INFO] [stdout] test tool::tests::changelog_round_trip ... ok
[INFO] [stdout] test tool::tests::extract_checksum_missing_platform ... ok
[INFO] [stdout] test tool::tests::extract_checksum_from_manifest_valid ... ok
[INFO] [stdout] test tool::tests::extract_checksum_invalid_json ... ok
[INFO] [stdout] test git::tests::returned_paths_are_canonical ... ok
[INFO] [stdout] test tool::tests::extract_zip_extracts_file ... ok
[INFO] [stdout] test tool::tests::changelog_uses_multiline_toml_strings ... ok
[INFO] [stdout] test tool::tests::install_binary_creates_parent_directories ... ok
[INFO] [stdout] test tool::tests::install_binary_sets_executable_permissions ... ok
[INFO] [stdout] test tool::tests::lexical_clean_resolves_dot ... ok
[INFO] [stdout] test tool::tests::lexical_clean_no_change ... ok
[INFO] [stdout] test tool::tests::lexical_clean_resolves_dotdot ... ok
[INFO] [stdout] test tool::tests::extract_tar_gz_extracts_file ... ok
[INFO] [stdout] test tool::changelog::tests::is_version_heading_not_a_heading ... ok
[INFO] [stdout] test tool::tests::install_binary_copies_to_rootfs ... ok
[INFO] [stdout] test tool::tests::install_binary_rejects_path_traversal ... ok
[INFO] [stdout] test tool::tests::install_binary_allows_normal_path ... ok
[INFO] [stdout] test tool::tests::parse_archive_format_variants ... ok
[INFO] [stdout] test tool::tests::parse_github_source_release_changelog_defaults_false ... ok
[INFO] [stdout] test tool::tests::parse_tool_config ... ok
[INFO] [stdout] test tool::tests::parse_github_source_with_release_changelog ... ok
[INFO] [stdout] test tool::tests::parse_tool_config_changelog_url_defaults_to_none ... ok
[INFO] [stdout] test tool::tests::parse_tool_config_with_changelog_url ... ok
[INFO] [stdout] test tool::tests::parse_tool_config_with_defaults ... ok
[INFO] [stdout] test tool::tests::falls_back_to_system ... ok
[INFO] [stdout] test tool::tests::parse_tool_config_with_github_section ... ok
[INFO] [stdout] test tool::tests::resolve_url_no_placeholders ... ok
[INFO] [stdout] test tool::progress::tests::format_bytes_exact_mib ... ok
[INFO] [stdout] test prompt::tests::confirm_yes_lowercase ... ok
[INFO] [stdout] test tool::tests::resolve_url_replaces_arch_alt ... ok
[INFO] [stdout] test tool::tests::resolve_url_replaces_arch ... ok
[INFO] [stdout] test tool::tests::resolve_url_replaces_os ... ok
[INFO] [stdout] test tool::tests::parse_tool_config_without_github_section ... ok
[INFO] [stdout] test tool::tests::verify_checksum_case_insensitive ... ok
[INFO] [stdout] test tool::tests::verify_checksum_mismatch ... ok
[INFO] [stdout] test tool::tests::verify_checksum_valid ... ok
[INFO] [stdout] test tool::tests::version_fallback_legacy_old_dir ... ok
[INFO] [stdout] test tool::tests::extract_tar_xz_extracts_file ... ok
[INFO] [stdout] test tool::tests::list_all_includes_builtin_tools ... ok
[INFO] [stdout] test tool::tests::list_all_sorted_by_name ... ok
[INFO] [stdout] test tool::tests::write_meta_removes_legacy_version_files ... ok
[INFO] [stdout] test tool::tests::version_round_trip ... ok
[INFO] [stdout] test tool::tests::list_all_user_overrides_system ... ok
[INFO] [stdout] test tool::tests::list_available_tools_both_dirs ... ok
[INFO] [stdout] test tool::tests::missing_tool_config_errors ... ok
[INFO] [stdout] test privilege::tests::save_empty_list_is_noop ... ok
[INFO] [stdout] test tool::tests::system_tools_dir_from_env ... ok
[INFO] [stdout] test tool::tests::system_tools_dir_default ... ok
[INFO] [stdout] test tool::tests::user_override_takes_precedence ... ok
[INFO] [stdout] test git::tests::subdirectory_of_worktree ... ok
[INFO] [stdout] test git::tests::submodule_not_detected_as_worktree ... ok
[INFO] [stdout] test git::tests::sibling_worktree ... ok
[INFO] [stdout] test git::tests::bare_repo_with_worktrees ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/aip-gatekeeper.rs (/opt/rustwide/target/debug/deps/aip_gatekeeper-265580270d6aa109)
[INFO] [stdout] test result: ok. 420 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/aip-host-exec.rs (/opt/rustwide/target/debug/deps/aip_host_exec-76614953be11c18e)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test tests::direct_mode_missing_command_returns_none ... ok
[INFO] [stdout] test tests::direct_mode_single_command ... ok
[INFO] [stdout] test tests::empty_argv_returns_none ... ok
[INFO] [stdout] test tests::symlink_mode_uses_basename_as_command ... ok
[INFO] [stdout] test tests::symlink_mode_no_args ... ok
[INFO] [stderr]    Doc-tests ai_playground
[INFO] [stdout] test tests::direct_mode_parses_command_and_args ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "159d78a9eafacbca7d8b14a3165be5d2617ef78f6efd42cc680c190d976d90de", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "159d78a9eafacbca7d8b14a3165be5d2617ef78f6efd42cc680c190d976d90de", kill_on_drop: false }`
[INFO] [stdout] 159d78a9eafacbca7d8b14a3165be5d2617ef78f6efd42cc680c190d976d90de
