[INFO] cloning repository https://github.com/qixiang/insilo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/qixiang/insilo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqixiang%2Finsilo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqixiang%2Finsilo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3d145a5645ed3f91461f97745aec0b951ee41be8
[INFO] testing qixiang/insilo against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fqixiang%2Finsilo" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/qixiang/insilo
[INFO] finished tweaking git repo https://github.com/qixiang/insilo
[INFO] tweaked toml for git repo https://github.com/qixiang/insilo written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/qixiang/insilo on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/qixiang/insilo 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ba545ed7e49f96eb9568132a0dccdccd67e7a7e3ee1e7c0f6119f4a7f12fcedd
[INFO] running `Command { std: "docker" "start" "-a" "ba545ed7e49f96eb9568132a0dccdccd67e7a7e3ee1e7c0f6119f4a7f12fcedd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ba545ed7e49f96eb9568132a0dccdccd67e7a7e3ee1e7c0f6119f4a7f12fcedd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ba545ed7e49f96eb9568132a0dccdccd67e7a7e3ee1e7c0f6119f4a7f12fcedd", kill_on_drop: false }`
[INFO] [stdout] ba545ed7e49f96eb9568132a0dccdccd67e7a7e3ee1e7c0f6119f4a7f12fcedd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d7a793611b8d7700923f22c64096e701f0a696170c905d33c2a1ca66b3880f0
[INFO] running `Command { std: "docker" "start" "-a" "6d7a793611b8d7700923f22c64096e701f0a696170c905d33c2a1ca66b3880f0", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling critical-section v1.2.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.0
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling ipnet v2.11.0
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling pem v3.0.6
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling arc-swap v1.8.2
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling insilo v0.1.0 (/opt/rustwide/workdir/insilo)
[INFO] [stderr]    Compiling roff v0.2.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling seccompiler v0.4.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling aws-lc-sys v0.37.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling enum-as-inner v0.6.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling rcgen v0.13.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling landlock v0.4.4
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling clap_complete v4.5.66
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling clap_mangen v0.2.31
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling insilo-sandbox v0.1.0 (/opt/rustwide/workdir/insilo-sandbox)
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling insilo-gate v0.1.0 (/opt/rustwide/workdir/insilo-gate)
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hickory-proto v0.25.2
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling insilo-proxy v0.1.0 (/opt/rustwide/workdir/insilo-proxy)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 43s
[INFO] running `Command { std: "docker" "inspect" "6d7a793611b8d7700923f22c64096e701f0a696170c905d33c2a1ca66b3880f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d7a793611b8d7700923f22c64096e701f0a696170c905d33c2a1ca66b3880f0", kill_on_drop: false }`
[INFO] [stdout] 6d7a793611b8d7700923f22c64096e701f0a696170c905d33c2a1ca66b3880f0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f7f9936647ad7ada6f7d53a37c981eb87706cbbc09c2000ecef0a6d7faff9506
[INFO] running `Command { std: "docker" "start" "-a" "f7f9936647ad7ada6f7d53a37c981eb87706cbbc09c2000ecef0a6d7faff9506", kill_on_drop: false }`
[INFO] [stderr]    Compiling insilo-sandbox v0.1.0 (/opt/rustwide/workdir/insilo-sandbox)
[INFO] [stderr]    Compiling insilo-proxy v0.1.0 (/opt/rustwide/workdir/insilo-proxy)
[INFO] [stderr]    Compiling insilo v0.1.0 (/opt/rustwide/workdir/insilo)
[INFO] [stderr]    Compiling insilo-gate v0.1.0 (/opt/rustwide/workdir/insilo-gate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.22s
[INFO] running `Command { std: "docker" "inspect" "f7f9936647ad7ada6f7d53a37c981eb87706cbbc09c2000ecef0a6d7faff9506", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f7f9936647ad7ada6f7d53a37c981eb87706cbbc09c2000ecef0a6d7faff9506", kill_on_drop: false }`
[INFO] [stdout] f7f9936647ad7ada6f7d53a37c981eb87706cbbc09c2000ecef0a6d7faff9506
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2aa8387b43c4533e320cc74801ac7f57f188f08d07cedf9c760cd1eb02295269
[INFO] running `Command { std: "docker" "start" "-a" "2aa8387b43c4533e320cc74801ac7f57f188f08d07cedf9c760cd1eb02295269", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.47s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/insilo-7b9a78672f8bca91)
[INFO] [stdout] 
[INFO] [stdout] running 479 tests
[INFO] [stdout] test cli::tests::parse_completions_bash ... ok
[INFO] [stdout] test cli::tests::parse_clean_with_options ... ok
[INFO] [stdout] test cli::tests::parse_config_show ... ok
[INFO] [stdout] test cli::tests::parse_clean_defaults ... ok
[INFO] [stdout] test cli::tests::parse_config_check_host ... ok
[INFO] [stdout] test cli::tests::parse_config_validate_json ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_count_flag ... ok
[INFO] [stdout] test cli::tests::parse_config_diff ... ok
[INFO] [stdout] test cli::tests::parse_doctor_no_args ... ok
[INFO] [stdout] test cli::tests::parse_config_validate_with_file ... ok
[INFO] [stdout] test cli::tests::parse_doctor_json ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_init_defaults ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_since ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_filters ... ok
[INFO] [stdout] test cli::tests::parse_config_validate ... ok
[INFO] [stdout] test cli::tests::parse_config_explain ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats ... ok
[INFO] [stdout] test cli::tests::parse_init_list ... ok
[INFO] [stdout] test cli::tests::parse_init_with_output_and_force ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_doctor_with_config ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats_since_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_completions_zsh ... ok
[INFO] [stdout] test cli::tests::parse_log_grep_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_count_short_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_init_with_preset ... ok
[INFO] [stdout] test cli::tests::parse_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_log_blocked_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_stats_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_action_filter ... ok
[INFO] [stdout] test cli::tests::parse_log_timeline_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_reason_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_since ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_host_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats_since_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_deny_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_deny_default_empty ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_count_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_follow ... ok
[INFO] [stdout] test cli::tests::parse_run_dry_run_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_status_filter ... ok
[INFO] [stdout] test cli::tests::parse_run_env_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_host_filter ... ok
[INFO] [stdout] test cli::tests::parse_run_network_namespace_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_landlock_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_dry_run_default_is_false ... ok
[INFO] [stdout] test cli::tests::parse_run_no_network_namespace_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_gate_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_seccomp_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_secrets_is_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_pid_file ... ok
[INFO] [stdout] test cli::tests::parse_run_quiet_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_inherit_env_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_name_default_none ... ok
[INFO] [stdout] test cli::tests::parse_run_timeout_absent_is_none ... ok
[INFO] [stdout] test cli::tests::parse_run_with_allow_and_no_zone2 ... ok
[INFO] [stdout] test cli::tests::parse_run_with_config ... ok
[INFO] [stdout] test cli::tests::parse_run_timeout_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_with_secret ... ok
[INFO] [stdout] test cli::tests::parse_run_read_only_default_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_with_gate_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_read_only_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_vm_flags ... ok
[INFO] [stdout] test cli::tests::parse_run_name_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_with_env_file ... ok
[INFO] [stdout] test cli::tests::parse_run_with_workspace ... ok
[INFO] [stdout] test cli::tests::parse_run_subcommand ... ok
[INFO] [stdout] test commands::color::tests::use_color_returns_false_for_non_terminal ... ok
[INFO] [stdout] test commands::color::tests::use_color_returns_false_for_stderr_non_terminal ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_host_not_in_blocked_hosts_no_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_port_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_scheme_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_case_insensitive_duplicate_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_hostname_no_ip_warning ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_max_requests ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_max_bytes ... ok
[INFO] [stdout] test commands::config::tests::allow_host_exact_match_in_blocked_hosts_warns ... ok
[INFO] [stdout] test cli::tests::parse_run_write_flag ... ok
[INFO] [stdout] test commands::config::tests::allow_host_covered_by_blocked_hosts_warns ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_limits_default_none ... ok
[INFO] [stdout] test cli::tests::parse_run_write_default_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_zone1_path_rule ... ok
[INFO] [stdout] test commands::clean::tests::clean_dry_run_preserves_files ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_ip_literal_warns ... ok
[INFO] [stdout] test commands::clean::tests::clean_partial_files ... ok
[INFO] [stdout] test cli::tests::parse_run_with_zone2_allow ... ok
[INFO] [stdout] test commands::clean::tests::clean_preserves_non_runtime_files ... ok
[INFO] [stdout] test commands::clean::tests::clean_empty_workspace ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_valid_list_with_gate_enabled_is_ok ... ok
[INFO] [stdout] test commands::clean::tests::clean_removes_runtime_files ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_action_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_without_glob_no_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_deny_action_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_not_in_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_action_without_glob_no_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_deny_not_in_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_no_overlap_is_ok ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_overlap_with_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_public_ip_warns ... ok
[INFO] [stdout] test commands::config::tests::both_security_disabled_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_public_ip_warns_zone2 ... ok
[INFO] [stdout] test commands::config::tests::broad_workspace_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::capability_without_cap_prefix_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_subdomain_of_allow_host_warns ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_internal_ip_warns_redundant ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_with_scheme_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_no_subdomain_overlap_no_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_set_with_gate_disabled_is_warning ... ok
[INFO] [stdout] test commands::config::tests::capability_with_cap_prefix_no_warning ... ok
[INFO] [stdout] test commands::config::tests::diff_identical_to_defaults ... ok
[INFO] [stdout] test commands::config::tests::diff_detects_changes ... ok
[INFO] [stdout] test commands::config::tests::duplicate_allow_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_empty_string_is_error ... ok
[INFO] [stdout] test commands::config::tests::auto_rules_in_allowed_tools_no_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_auto_approve_rule_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_auto_deny_rule_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_blocked_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_capability_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_rule_in_approve_and_deny_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_inherit_env_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_action_in_auto_approve_is_error ... ok
[INFO] [stdout] test commands::config::tests::empty_blocked_host_is_error ... ok
[INFO] [stdout] test commands::config::tests::empty_secret_value_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_zone2_allow_domain_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_action_in_auto_deny_is_error ... ok
[INFO] [stdout] test commands::config::tests::empty_allow_host_is_error ... ok
[INFO] [stdout] test commands::config::tests::duplicate_read_only_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_zone2_allow_domain_is_error ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_ci_case_insensitive ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_ci_no_false_positive ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_empty ... ok
[INFO] [stdout] test commands::config::tests::duplicate_rw_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_finds_dupes ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_detects_covered_entry ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_empty_list ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_no_overlap ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_no_dupes ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_triple ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_plain ... ok
[INFO] [stdout] test commands::config::tests::existing_paths_produce_no_issues ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_braced ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_escaped_dollar ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_multiple ... ok
[INFO] [stdout] test commands::config::tests::explain_default_config ... ok
[INFO] [stdout] test commands::config::tests::explain_with_secrets_and_gate ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_suffix_but_not_subdomain ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_case_insensitive ... ok
[INFO] [stdout] test commands::config::tests::gate_max_calls_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::gate_settings_with_gate_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_none ... ok
[INFO] [stdout] test commands::config::tests::gate_settings_with_gate_enabled_no_disabled_warnings ... ok
[INFO] [stdout] test commands::config::tests::gate_timeout_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_no_secret_overlap_no_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_normal_vars_no_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_set_var_no_unset_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_unset_var_is_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_overlapping_secret_is_warning ... ok
[INFO] [stdout] test commands::config::tests::gate_timeout_positive_no_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_with_secret_like_name_is_warning ... ok
[INFO] [stdout] test commands::config::tests::invalid_glob_pattern_in_auto_approve_is_error ... ok
[INFO] [stdout] test commands::config::tests::invalid_glob_pattern_in_auto_deny_is_error ... ok
[INFO] [stdout] test commands::config::tests::invalid_sandbox_timeout_is_error ... ok
[INFO] [stdout] test commands::config::tests::missing_workspace_is_warning ... ok
[INFO] [stdout] test commands::config::tests::known_capability_no_unrecognized_warning ... ok
[INFO] [stdout] test commands::config::tests::network_namespace_without_cap_net_admin_warns ... ok
[INFO] [stdout] test commands::config::tests::non_empty_secret_value_no_empty_warning ... ok
[INFO] [stdout] test commands::config::tests::nonexistent_read_only_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::normal_workspace_no_broad_warning ... ok
[INFO] [stdout] test commands::config::tests::same_action_different_pattern_not_flagged_as_duplicate ... ok
[INFO] [stdout] test commands::config::tests::rw_path_outside_workspace_no_warning ... ok
[INFO] [stdout] test commands::config::tests::path_rule_subdomain_of_allow_host_is_valid ... ok
[INFO] [stdout] test commands::config::tests::read_only_inside_workspace_warns_override ... ok
[INFO] [stdout] test commands::config::tests::plain_substring_pattern_no_glob_chars_is_ok ... ok
[INFO] [stdout] test commands::config::tests::read_only_default_path_is_redundant_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_non_default_path_no_redundant_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_subdir_of_default_path_is_redundant ... ok
[INFO] [stdout] test commands::config::tests::read_only_transparent_hugepage_is_redundant ... ok
[INFO] [stdout] test commands::config::tests::nonexistent_rw_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::plain_hostname_no_scheme_warning ... ok
[INFO] [stdout] test commands::config::tests::rw_path_inside_workspace_is_redundant ... ok
[INFO] [stdout] test commands::config::tests::secret_env_var_ref_set_no_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_inside_rw_path_warns_override ... ok
[INFO] [stdout] test commands::config::tests::secret_env_var_ref_unset_is_warning ... ok
[INFO] [stdout] test commands::config::tests::secrets_with_no_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::secrets_with_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::config::tests::secret_key_with_special_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::unknown_capability_is_warning ... ok
[INFO] [stdout] test commands::config::tests::valid_config_produces_no_issues ... ok
[INFO] [stdout] test commands::config::tests::vm_default_settings_with_vm_disabled_no_warning ... ok
[INFO] [stdout] test commands::config::tests::valid_sandbox_timeout_is_ok ... ok
[INFO] [stdout] test commands::config::tests::vm_settings_with_vm_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::zero_sandbox_timeout_0s_is_error ... ok
[INFO] [stdout] test commands::config::tests::valid_glob_pattern_in_auto_approve_is_ok ... ok
[INFO] [stdout] test commands::config::tests::workspace_file_not_dir_is_error ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zero_sandbox_timeout_is_error ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_empty_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_in_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_host_case_insensitive ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_not_in_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_in_blocked_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_non_overlapping_paths_no_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_path_with_leading_slash_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_nonempty_paths_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_path_without_leading_slash_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_in_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_also_in_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_max_bytes_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domains_ip_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_max_requests_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::seccomp_enabled_no_security_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_overlapping_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_subdomain_of_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domains_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_not_in_blocked_hosts_no_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_domain_with_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_subdomain_of_allow_host_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_settings_with_zone2_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::zone2_settings_with_zone2_enabled_no_extra_warnings ... ok
[INFO] [stdout] test commands::config::tests::secret_key_alphanumeric_underscore_no_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_not_in_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::cap_net_admin_mask_not_set ... ok
[INFO] [stdout] test commands::doctor::tests::cap_net_admin_mask_set ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_old_kernel_is_error ... ok
[INFO] [stdout] test commands::doctor::tests::kvm_check_does_not_panic ... ok
[INFO] [stdout] test commands::doctor::tests::effective_cap_mask_parses_real_proc ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi2_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::collect_checks_no_config_has_eight_checks ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi5_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_old_kernel_is_error ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_future_kernel_is_abi5 ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_with_suffix ... ok
[INFO] [stdout] test commands::doctor::tests::user_namespaces_check_does_not_panic ... ok
[INFO] [stdout] test commands::doctor::tests::seccomp_check_passes_on_linux ... ok
[INFO] [stdout] test commands::doctor::tests::collect_checks_with_nonexistent_config_has_nine_checks ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_epoch ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_modern_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi1_is_warning ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_min_landlock_is_ok ... ok
[INFO] [stdout] {"ts":1772352000,"action":"bash","details":"ls","decision":"approved","wait_ms":100}
[INFO] [stdout] 1970-01-01 00:00:07 UTC  APPROVED  bash                 0ms  cmd7
[INFO] [stdout] 1970-01-01 00:00:08 UTC  APPROVED  bash                 0ms  cmd8
[INFO] [stdout] 1970-01-01 00:00:09 UTC  APPROVED  bash                 0ms  cmd9
[INFO] [stdout] 2026-03-01 08:00:00 UTC  APPROVED  bash               100ms  ls
[INFO] [stdout] 2026-03-01 08:01:00 UTC  DENIED    http                5.0s  GET /api
[INFO] [stdout] test commands::doctor::tests::collect_checks_with_valid_config_includes_config_check ... Audit log: /tmp/.tmp4P3dbM/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     3
[INFO] [stdout]   Approved: 2      (66.7%)
[INFO] [stdout]   Denied:   1      (33.3%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash            2  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓            66.7%
[INFO] [stdout]   file_delete     1  ▓▓▓▓▓▓▓▓▓                     33.3%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash         100.0%  (2 approved, 0 denied)
[INFO] [stdout]   file_delete    0.0%  (0 approved, 1 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 10.1s  max 30.0s  (3 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 2024-01-01 00:00:00 UTC → 2024-01-01 00:02:00 UTC (2m 0s)
[INFO] [stdout] ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi4_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_standard ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi3_is_ok ... ok
[INFO] [stdout] Audit log: /tmp/.tmp5KEny4/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     5
[INFO] [stdout]   Approved: 2      (40.0%)
[INFO] [stdout]   Denied:   3      (60.0%)  (2 auto-denied)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash            3  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓              60.0%
[INFO] [stdout]   file_delete     2  ▓▓▓▓▓▓▓▓▓▓▓                   40.0%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash          66.7%  (2 approved, 1 denied)
[INFO] [stdout]   file_delete    0.0%  (0 approved, 2 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 266ms  max 500ms  (3 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:05 UTC (4s)
[INFO] [stdout] test commands::gate::tests::fmt_wait_seconds ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_json_mode_returns_zero ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_known_date ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_with_time ... ok
[INFO] [stdout] test commands::gate::tests::fmt_wait_millis ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_last_n ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_json_returns_zero ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_prints_entries ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_unknown ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_returns_zero_on_valid_log ... ok
[INFO] [stdout] test commands::gate::tests::parse_since_invalid ... ok
[INFO] [stdout] test commands::gate::tests::parse_since_seconds ... ok
[INFO] [stdout] Audit log: /tmp/.tmpAjOXCt/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     2
[INFO] [stdout]   Approved: 2      (100.0%)
[INFO] [stdout]   Denied:   0      (0.0%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash       2  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 75ms  max 100ms  (2 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:02 UTC (1s)
[INFO] [stdout] 3
[INFO] [stdout] 1
[INFO] [stdout] test commands::gate::tests::parse_since_units ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_action_substring ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_auto_deny_decision ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_shows_approval_rates ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_auto_deny_alias ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_not_allowed_alias ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_both ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_rate_limited_alias ... ok
[INFO] [stdout] Audit log: /tmp/.tmpC8Mt0r/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Approved: 0      (0.0%)
[INFO] [stdout]   Denied:   1      (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash       1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash      0.0%  (0 approved, 1 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 200ms  max 200ms  (1 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 2286-11-20 17:46:39 UTC → 2286-11-20 17:46:39 UTC (0s)
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_match ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_skips_approval_rate_when_all_approved_single_tool ... ok
[INFO] [stdout] test commands::gate::tests::log_count_mode_returns_zero ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_since ... ok
[INFO] [stdout] test commands::gate::tests::log_count_with_filter ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_tui_exited_alias ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_not_allowed ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_no_filter ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_skips_invalid_json ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_since_filters_old_entries ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_tui_exited ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_approved ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_auto_deny ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_denied ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_tui_exited_is_denied_filter ... ok
[INFO] [stdout] test commands::init::tests::init_default_filename_is_insilo_toml ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_auto_alias ... ok
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] 4
[INFO] [stdout] test commands::init::tests::init_preset_codex ... ok
[INFO] [stdout] test commands::log::tests::merged_log_action_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_count_mode ... ok
[INFO] [stdout] test commands::init::tests::init_force_overwrites_existing_file ... ok
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] test commands::init::tests::init_preset_aider ... ok
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] test commands::init::tests::init_errors_if_file_exists_without_force ... ok
[INFO] [stdout] -20584d 00:25:00 [proxy] Z3 GET 10.0.0.1/  → zone3_blocked
[INFO] [stdout] -20584d 00:41:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] {"_source":"proxy","bytes":100,"duration_ms":50,"host":"api.anthropic.com","method":"GET","path":"/v1","status":200,"ts":1000,"zone":1}
[INFO] [stdout] {"_source":"gate","action":"bash","decision":"approved","details":"ls /tmp","ts":2000,"wait_ms":100}
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] test commands::log::tests::merged_log_gate_only_file ... ok
[INFO] [stdout] test commands::init::tests::init_preset_unknown_errors ... ok
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] test commands::log::tests::merged_log_host_filter ... ok
[INFO] [stdout] test commands::init::tests::list_presets_returns_zero ... ok
[INFO] [stdout] test commands::log::tests::merged_log_blocked_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_no_files_returns_nonzero ... ok
[INFO] [stdout] test commands::init::tests::merge_toml_overlay_overrides_scalars ... ok
[INFO] [stdout] test commands::log::tests::merged_log_json_mode ... ok
[INFO] [stdout] test commands::init::tests::parse_hosts_skips_blanks_and_comments ... ok
[INFO] [stdout] test commands::log::tests::merged_log_last_n ... ok
[INFO] [stdout] test commands::log::tests::merged_log_grep_filter ... ok
[INFO] [stdout] test commands::init::tests::init_preset_claude ... ok
[INFO] [stdout] test commands::log::tests::merged_log_proxy_only_file ... ok
[INFO] [stdout] test commands::init::tests::init_writes_config_file ... ok
[INFO] [stdout] test commands::init::tests::init_preset_opencode ... ok
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] test commands::init::tests::global_hosts_appear_in_all_presets ... ok
[INFO] [stdout] test commands::init::tests::all_presets_produce_valid_config ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_duration_ms_units ... ok
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] test commands::proxy::tests::fmt_duration_ms_color_thresholds ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_log_bytes_units ... ok
[INFO] [stdout] test commands::log::tests::merged_log_returns_zero ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_status_with_color ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_gate_only ... ok
[INFO] [stdout] test commands::log::tests::timeline_no_entries_returns_zero ... ok
[INFO] [stdout] test commands::log::tests::merged_log_source_filter_gate ... ok
[INFO] [stdout] test commands::log::tests::timeline_proxy_only ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_mode ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_unix_secs_known_date ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_proxy_only ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_status_no_color ... ok
[INFO] [stdout] test commands::proxy::tests::log_count_mode_returns_zero ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_json_mode ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_blocked ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_zone ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_method ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_host ... ok
[INFO] [stdout] test commands::proxy::tests::log_last_n ... ok
[INFO] [stdout] test commands::proxy::tests::log_count_with_zone_filter ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_path ... ok
[INFO] [stdout] test commands::proxy::tests::log_prints_all_entries ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_reason ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_since ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_blocked_entry_no_status ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_exact ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_prefix ... ok
[INFO] [stdout] Proxy log: /tmp/.tmpMO5Ckj/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     4
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (25.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       2  (50.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     1  (25.0%)
[INFO] [stdout]   Blocked:                   4  (100.0%)
[INFO] [stdout]     method_not_allowed      1
[INFO] [stdout]     path_not_allowed        1
[INFO] [stdout]     rate_limited            1
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            0 B
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        3  (75.0%)
[INFO] [stdout]   POST       1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   pub.com       2  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout]   10.0.0.1      1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout]   api.a.com     1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   pub.com     2  (50.0% of blocked)
[INFO] [stdout]   10.0.0.1     1  (25.0% of blocked)
[INFO] [stdout]   api.a.com     1  (25.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 1ms  p50 1ms  p95 1ms  max 1ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:04 UTC (3s)
[INFO] [stdout] Proxy log: /tmp/.tmpbgx09h/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     4
[INFO] [stdout]   Zone 1 (allowed APIs):     3  (75.0%)  230 B
[INFO] [stdout]   Zone 2 (public web):       1  (25.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            230 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      4  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        2  (50.0%)
[INFO] [stdout]   HEAD       1  (25.0%)
[INFO] [stdout]   POST       1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   a.com     3  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓        75.0%
[INFO] [stdout]   b.com     1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 21ms  p50 20ms  p95 50ms  max 50ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:04 UTC (3s)
[INFO] [stdout] Proxy log: /tmp/.tmptpvTm1/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     5
[INFO] [stdout]   Zone 1 (allowed APIs):     2  (40.0%)  150 B
[INFO] [stdout]   Zone 2 (public web):       2  (40.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     1  (20.0%)
[INFO] [stdout]   Blocked:                   1  (20.0%)
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            150 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      2  (50.0%)
[INFO] [stdout]   4xx Client err:   1  (25.0%)
[INFO] [stdout]   5xx Server err:   1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        4  (80.0%)
[INFO] [stdout]   POST       1  (20.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   api.a.com     2  ▓▓▓▓▓▓▓▓▓                 40.0%
[INFO] [stdout]   pub.com       2  ▓▓▓▓▓▓▓▓▓                 40.0%
[INFO] [stdout]   10.0.0.1      1  ▓▓▓▓                      20.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (100.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 4ms  p50 2ms  p95 10ms  max 10ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:05 UTC (4s)
[INFO] [stdout] Proxy log: /tmp/.tmp26Ftd0/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Zone 1 (allowed APIs):     0  (0.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       1  (100.0%)  20 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            20 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   new.com     1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 10ms  p50 10ms  p95 10ms  max 10ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 2286-11-20 17:46:39 UTC → 2286-11-20 17:46:39 UTC (0s)
[INFO] [stdout] Proxy log: /tmp/.tmp29CJU6/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (100.0%)  10 B
[INFO] [stdout]   Zone 2 (public web):       0  (0.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            10 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   a.com     1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 42ms  p50 42ms  p95 42ms  max 42ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:01 UTC (0s)
[INFO] [stdout] test commands::proxy::tests::stats_block_reasons_in_text_output ... ok
[INFO] [stdout] test commands::proxy::tests::stats_shows_method_breakdown_and_response_times ... ok
[INFO] [stdout] test commands::proxy::tests::stats_counts_status_classes ... ok
[INFO] [stdout] test commands::proxy::tests::stats_since_filters_old_entries ... ok
[INFO] [stdout] test commands::proxy::tests::stats_single_entry_percentiles ... ok
[INFO] [stdout] test commands::proxy::tests::status_class_buckets ... ok
[INFO] [stdout] test commands::run::tests::config_timeout_defaults_to_none ... ok
[INFO] [stdout] Proxy log: /tmp/.tmpgFRUUI/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     2
[INFO] [stdout]   Zone 1 (allowed APIs):     0  (0.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       0  (0.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     2  (100.0%)
[INFO] [stdout]   Blocked:                   2  (100.0%)
[INFO] [stdout]     zone3_blocked           2
[INFO] [stdout]   Total bytes:            0 B
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        2  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   10.0.0.1        1  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout]   192.168.1.1     1  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (50.0% of blocked)
[INFO] [stdout]   192.168.1.1     1  (50.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 1ms  p50 1ms  p95 1ms  max 1ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:02 UTC (1s)
[INFO] [stdout] test commands::proxy::tests::log_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::proxy::tests::stats_status_section_skipped_when_all_blocked ... ok
[INFO] [stdout] test commands::log::tests::timeline_returns_zero ... ok
[INFO] [stdout] test commands::run::tests::env_file_mismatched_quotes_preserved ... ok
[INFO] [stdout] test commands::run::tests::dry_run_with_write_path ... ok
[INFO] [stdout] test commands::run::tests::config_timeout_round_trips ... ok
[INFO] [stdout] test commands::run::tests::env_file_parses_key_value_pairs ... ok
[INFO] [stdout] test commands::run::tests::env_file_skips_blank_lines_and_comments ... ok
[INFO] [stdout] test commands::run::tests::dry_run_zone2_allow_overlay ... ok
[INFO] [stdout] test commands::run::tests::env_file_strips_single_quotes ... ok
[INFO] [stdout] test commands::run::tests::env_file_strips_double_quotes ... ok
[INFO] [stdout] test commands::run::tests::env_file_unquoted_value_preserved ... ok
[INFO] [stdout] test commands::run::tests::env_file_value_may_contain_equals ... ok
[INFO] [stdout] test commands::run::tests::expand_env_braced_var ... ok
[INFO] [stdout] test commands::run::tests::expand_env_escaped_dollar ... ok
[INFO] [stdout] test commands::run::tests::expand_env_braced_in_middle ... ok
[INFO] [stdout] Proxy log: /tmp/.tmpKoeZUu/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     3
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (33.3%)  512 B
[INFO] [stdout]   Zone 2 (public web):       1  (33.3%)  1.0 KB
[INFO] [stdout]   Zone 3 (internal IPs):     1  (33.3%)
[INFO] [stdout]   Blocked:                   1  (33.3%)
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            1.5 KB
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      2  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        3  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   10.0.0.1              1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout]   api.anthropic.com     1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout]   example.com           1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (100.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 108ms  p50 88ms  p95 234ms  max 234ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 2024-03-01 00:00:00 UTC → 2024-03-01 00:00:02 UTC (2s)
[INFO] [stdout] test commands::run::tests::env_file_line_without_equals_is_error ... ok
[INFO] [stdout] test commands::log::tests::merged_log_source_filter_proxy ... ok
[INFO] [stdout] test commands::log::tests::merged_log_since_filters ... ok
[INFO] [stdout] test commands::run::tests::expand_env_no_vars_passthrough ... ok
[INFO] [stdout] test commands::run::tests::expand_env_mixed_text ... ok
[INFO] [stdout] test commands::proxy::tests::stats_returns_zero_on_valid_log ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_host_substring ... ok
[INFO] [stdout] test commands::run::tests::expand_env_plain_var ... ok
[INFO] [stdout] test commands::proxy::tests::stats_json_returns_zero ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_single_path ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_empty_host_is_error ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_trims_whitespace ... ok
[INFO] [stdout] test commands::proxy::tests::stats_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::proxy::tests::stats_returns_zero_on_empty_log ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_empty_paths_is_error ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_no_colon_is_error ... ok
[INFO] [stdout] test commands::run::tests::expand_env_unset_var_becomes_empty ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_empty_log_is_silent ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_valid ... ok
[INFO] [stdout] test commands::proxy::tests::stats_since_all_filtered_shows_no_entries ... ok
[INFO] [stdout] test commands::proxy::tests::log_json_mode_returns_zero ... ok
[INFO] [stdout] test commands::run::tests::read_only_nonexistent_path_fails ... ok
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stdout] test commands::run::tests::proxy_summary_missing_file_is_silent ... ok
[INFO] [stderr]   $ test
[INFO] [stdout] test commands::run::tests::proxy_summary_counts_correctly ... ok
[INFO] [stdout] test commands::run::tests::secret_kv_no_equals_fails ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_respects_start_offset ... ok
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stdout] test commands::run::tests::proxy_summary_shows_block_reasons ... ok
[INFO] [stderr]   zone 1     a.com, b.com, c.com +2 more  (5 hosts)
[INFO] [stdout] test commands::run::tests::secret_kv_valid_parses ... ok
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stdout] test commands::run::tests::secret_kv_value_may_contain_equals ... ok
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ bash -c "echo hello world"
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     disabled
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  test-session  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stdout] test commands::run::tests::session_counts_full_log ... ok
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stdout] test commands::run::tests::session_counts_missing_file_returns_none ... ok
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stdout] test commands::run::tests::dry_run_returns_zero ... ok
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stdout] test commands::run::tests::session_counts_empty_log_returns_none ... ok
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :9999  dns :4444
[INFO] [stderr]   $ test
[INFO] [stdout] test commands::run::tests::dry_run_with_read_only ... ok
[INFO] [stderr]   workspace  /tmp
[INFO] [stdout] test commands::run::tests::startup_banner_many_zone1_hosts ... ok
[INFO] [stderr]   zone 1     api.anthropic.com  (1 host)
[INFO] [stderr]   zone 2     disabled
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  enabled    seccomp  enabled    landlock  enabled
[INFO] [stderr]   gate       enabled  (timeout 30s, 1 auto-approve, 1 auto-deny, rate 60/min, 2 allowed tools)
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled    timeout  30m0s
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :8080  dns :5353
[INFO] [stderr]   $ echo hello
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  enabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  my-project  proxy :1234  dns :5678
[INFO] [stderr]   $ claude
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stdout] test commands::run::tests::startup_banner_shows_command ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_config_name ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_gate_with_all_options ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_timeout ... ok
[INFO] [stdout] test commands::run::tests::strip_env_quotes_empty_string ... ok
[INFO] [stdout] test commands::run::tests::strip_env_quotes_single_char ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_default_config_does_not_panic ... ok
[INFO] [stdout] test commands::run::tests::timeout_parse_invalid_rejected ... ok
[INFO] [stdout] test commands::run::tests::wait_status_exited_returns_code ... ok
[INFO] [stdout] test commands::run::tests::session_counts_respects_start_offset ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_no_zone1_hosts ... ok
[INFO] [stdout] test commands::run::tests::wait_status_signaled_returns_128_plus_signal ... ok
[INFO] [stdout] test commands::run::tests::timeout_parse_valid_durations ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_name ... ok
[INFO] [stdout] test commands::run::tests::workspace_existing_dir_is_ok ... ok
[INFO] [stdout] test commands::run::tests::workspace_existing_file_is_error ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_gigabytes ... ok
[INFO] [stdout] test commands::run::tests::workspace_nonexistent_is_created ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_kilobytes ... ok
[INFO] [stdout] test commands::run::tests::write_nonexistent_path_fails ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_zero ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_hours ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_minutes_and_seconds ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_seconds_only ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_megabytes ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_minutes ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_small ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_hours ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_seconds_only ... ok
[INFO] [stdout] test commands::time_fmt::tests::epoch ... ok
[INFO] [stdout] test config::tests::expand_tilde_home ... ok
[INFO] [stdout] test config::tests::empty_config_uses_all_defaults ... ok
[INFO] [stdout] test config::tests::expand_tilde_no_tilde_unchanged ... ok
[INFO] [stdout] test commands::time_fmt::tests::short_format_nonzero ... ok
[INFO] [stdout] test config::tests::expand_tildes_in_config ... ok
[INFO] [stdout] test config::tests::default_config_parses ... ok
[INFO] [stdout] test commands::time_fmt::tests::known_date_with_time ... ok
[INFO] [stdout] test commands::time_fmt::tests::known_date ... ok
[INFO] [stdout] test commands::time_fmt::tests::march_date ... ok
[INFO] [stdout] test config::tests::config_source_display ... ok
[INFO] [stdout] test config::tests::gate_auto_deny_round_trips ... ok
[INFO] [stdout] test config::tests::find_config_via_env_var ... ok
[INFO] [stdout] test config::tests::gate_auto_approve_round_trips ... ok
[INFO] [stdout] test config::tests::find_config_from_subdir ... ok
[INFO] [stdout] test config::tests::minimal_config_parses ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_global_only_fields_preserved ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_project_overrides_scalar ... ok
[INFO] [stdout] test config::tests::resolve_workspace_explicit_path_unchanged ... ok
[INFO] [stdout] test config::tests::partial_network_section_parses ... ok
[INFO] [stdout] test config::tests::load_with_source_explicit ... ok
[INFO] [stdout] test config::tests::global_config_merged_with_project ... ok
[INFO] [stdout] test config::tests::sandbox_paths_default_to_empty ... ok
[INFO] [stdout] test config::tests::load_with_source_missing_explicit_errors ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_project_overrides_list ... ok
[INFO] [stdout] test config::tests::sandbox_read_only_paths_round_trips ... ok
[INFO] [stdout] test config::tests::partial_security_section_parses ... ok
[INFO] [stdout] test config::tests::sandbox_inherit_env_round_trips ... ok
[INFO] [stdout] test config::tests::seccomp_profile_round_trips ... ok
[INFO] [stdout] test config::tests::seccomp_profile_defaults_to_none ... ok
[INFO] [stdout] test config::tests::sandbox_name_defaults_to_none ... ok
[INFO] [stdout] test config::tests::resolve_workspace_dot_without_config_stays_dot ... ok
[INFO] [stdout] test config::tests::gate_section_round_trips ... ok
[INFO] [stdout] test config::tests::sandbox_inherit_env_defaults_to_empty ... ok
[INFO] [stdout] test config::tests::workspace_path_preserved ... ok
[INFO] [stdout] test config::tests::round_trip ... ok
[INFO] [stdout] test config::tests::unknown_field_rejected ... ok
[INFO] [stdout] test config::tests::secret_keys_round_trip ... ok
[INFO] [stdout] test config::tests::sandbox_rw_paths_round_trips ... ok
[INFO] [stdout] test config::tests::sandbox_name_round_trips ... ok
[INFO] [stdout] test config::tests::zone1_path_rules_defaults_to_empty ... ok
[INFO] [stdout] test config::tests::zone1_path_rules_round_trips ... ok
[INFO] [stdout] test config::tests::zone2_allow_domains_round_trips ... ok
[INFO] [stdout] test config::tests::zone2_allow_domains_defaults_to_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 479 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/mangen.rs (/opt/rustwide/target/debug/deps/insilo_mangen-bffa2a1fc65ce786)
[INFO] [stdout] 
[INFO] [stdout] running 479 tests
[INFO] [stdout] test cli::tests::parse_completions_zsh ... ok
[INFO] [stdout] test cli::tests::parse_clean_with_options ... ok
[INFO] [stdout] test cli::tests::parse_config_check_host ... ok
[INFO] [stdout] test cli::tests::parse_config_diff ... ok
[INFO] [stdout] test cli::tests::parse_completions_bash ... ok
[INFO] [stdout] test cli::tests::parse_doctor_json ... ok
[INFO] [stdout] test cli::tests::parse_config_validate_with_file ... ok
[INFO] [stdout] test cli::tests::parse_config_explain ... ok
[INFO] [stdout] test cli::tests::parse_clean_defaults ... ok
[INFO] [stdout] test cli::tests::parse_config_validate_json ... ok
[INFO] [stdout] test cli::tests::parse_config_show ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_doctor_no_args ... ok
[INFO] [stdout] test cli::tests::parse_config_validate ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_count_flag ... ok
[INFO] [stdout] test cli::tests::parse_doctor_with_config ... ok
[INFO] [stdout] test cli::tests::parse_init_defaults ... ok
[INFO] [stdout] test cli::tests::parse_init_list ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_since ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_grep_filter ... ok
[INFO] [stdout] test cli::tests::parse_gate_log_filters ... ok
[INFO] [stdout] test cli::tests::parse_init_with_output_and_force ... ok
[INFO] [stdout] test cli::tests::parse_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_count_short_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_timeline_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_blocked_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_log_stats_flag ... ok
[INFO] [stdout] test cli::tests::parse_gate_stats_since_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_host_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_defaults ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_count_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_host_filter ... ok
[INFO] [stdout] test cli::tests::parse_init_with_preset ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_follow ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_since ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_reason_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_status_filter ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats_json_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_dry_run_default_is_false ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats_since_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_deny_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_network_namespace_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_name_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_name_default_none ... ok
[INFO] [stdout] test cli::tests::parse_run_inherit_env_flag ... ok
[INFO] [stdout] test cli::tests::parse_log_action_filter ... ok
[INFO] [stdout] test cli::tests::parse_run_env_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_deny_default_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_no_landlock_flag ... ok
[INFO] [stdout] test cli::tests::parse_proxy_log_with_options ... ok
[INFO] [stdout] test cli::tests::parse_run_pid_file ... ok
[INFO] [stdout] test cli::tests::parse_run_timeout_absent_is_none ... ok
[INFO] [stdout] test cli::tests::parse_proxy_stats ... ok
[INFO] [stdout] test cli::tests::parse_run_no_secrets_is_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_dry_run_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_seccomp_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_network_namespace_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_read_only_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_quiet_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_subcommand ... ok
[INFO] [stdout] test cli::tests::parse_run_with_secret ... ok
[INFO] [stdout] test cli::tests::parse_run_with_workspace ... ok
[INFO] [stdout] test cli::tests::parse_run_with_env_file ... ok
[INFO] [stdout] test cli::tests::parse_run_timeout_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_with_gate_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_no_gate_flag ... ok
[INFO] [stdout] test cli::tests::parse_run_read_only_default_empty ... ok
[INFO] [stdout] test cli::tests::parse_run_vm_flags ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_max_bytes ... ok
[INFO] [stdout] test cli::tests::parse_run_write_flag ... ok
[INFO] [stdout] test commands::color::tests::use_color_returns_false_for_non_terminal ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_max_requests ... ok
[INFO] [stdout] test commands::config::tests::allow_host_exact_match_in_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::allow_host_not_in_blocked_hosts_no_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_host_covered_by_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_path_is_warning ... ok
[INFO] [stdout] test cli::tests::parse_run_write_default_empty ... ok
[INFO] [stdout] test commands::clean::tests::clean_partial_files ... ok
[INFO] [stdout] test cli::tests::parse_run_with_zone2_allow ... ok
[INFO] [stdout] test commands::clean::tests::clean_dry_run_preserves_files ... ok
[INFO] [stdout] test cli::tests::parse_run_with_allow_and_no_zone2 ... ok
[INFO] [stdout] test cli::tests::parse_run_zone1_path_rule ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_scheme_is_warning ... ok
[INFO] [stdout] test commands::color::tests::use_color_returns_false_for_stderr_non_terminal ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_no_subdomain_overlap_no_warning ... ok
[INFO] [stdout] test cli::tests::parse_run_with_config ... ok
[INFO] [stdout] test cli::tests::parse_run_zone2_limits_default_none ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_ip_literal_warns ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_set_with_gate_disabled_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_empty_string_is_error ... ok
[INFO] [stdout] test commands::clean::tests::clean_empty_workspace ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_public_ip_warns_zone2 ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_valid_list_with_gate_enabled_is_ok ... ok
[INFO] [stdout] test commands::config::tests::allowed_tools_without_glob_no_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_action_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_action_without_glob_no_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_approve_not_in_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_deny_action_with_glob_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_deny_not_in_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_overlap_with_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::auto_rules_in_allowed_tools_no_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_internal_ip_warns_redundant ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_with_scheme_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_host_subdomain_of_allow_host_warns ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_no_overlap_is_ok ... ok
[INFO] [stdout] test commands::config::tests::broad_workspace_is_warning ... ok
[INFO] [stdout] test commands::config::tests::capability_with_cap_prefix_no_warning ... ok
[INFO] [stdout] test commands::config::tests::both_security_disabled_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_allowed_tools_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_auto_approve_rule_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_blocked_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_public_ip_warns ... ok
[INFO] [stdout] test commands::config::tests::blocked_hosts_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::capability_without_cap_prefix_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_auto_deny_rule_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_allow_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_allow_host_is_error ... ok
[INFO] [stdout] test commands::config::tests::duplicate_zone2_allow_domain_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_rule_in_approve_and_deny_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_action_in_auto_approve_is_error ... ok
[INFO] [stdout] test commands::config::tests::empty_action_in_auto_deny_is_error ... ok
[INFO] [stdout] test commands::config::tests::duplicate_capability_is_warning ... ok
[INFO] [stdout] test commands::config::tests::empty_blocked_host_is_error ... ok
[INFO] [stdout] test commands::config::tests::empty_secret_value_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_read_only_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::duplicate_inherit_env_is_warning ... ok
[INFO] [stdout] test commands::config::tests::existing_paths_produce_no_issues ... ok
[INFO] [stdout] test commands::config::tests::explain_default_config ... ok
[INFO] [stdout] test commands::config::tests::diff_identical_to_defaults ... ok
[INFO] [stdout] test commands::config::tests::diff_detects_changes ... ok
[INFO] [stdout] test commands::config::tests::empty_zone2_allow_domain_is_error ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_braced ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_escaped_dollar ... ok
[INFO] [stdout] test commands::config::tests::duplicate_rw_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_case_insensitive_duplicate_is_warning ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_multiple ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_plain ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_ci_case_insensitive ... ok
[INFO] [stdout] test commands::config::tests::allow_hosts_hostname_no_ip_warning ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_ci_no_false_positive ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_no_dupes ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_triple ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_case_insensitive ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_detects_covered_entry ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_empty ... ok
[INFO] [stdout] test commands::config::tests::extract_env_var_refs_none ... ok
[INFO] [stdout] test commands::config::tests::find_duplicate_strings_finds_dupes ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_empty_list ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_no_overlap ... ok
[INFO] [stdout] test commands::config::tests::find_redundant_subdomains_suffix_but_not_subdomain ... ok
[INFO] [stdout] test commands::config::tests::gate_max_calls_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::gate_settings_with_gate_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::gate_timeout_positive_no_warning ... ok
[INFO] [stdout] test commands::config::tests::gate_timeout_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::gate_settings_with_gate_enabled_no_disabled_warnings ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_no_secret_overlap_no_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_normal_vars_no_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_overlapping_secret_is_warning ... ok
[INFO] [stdout] test commands::config::tests::explain_with_secrets_and_gate ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_unset_var_is_warning ... ok
[INFO] [stdout] test commands::config::tests::allow_host_with_port_is_warning ... ok
[INFO] [stdout] test commands::config::tests::invalid_glob_pattern_in_auto_deny_is_error ... ok
[INFO] [stdout] test commands::config::tests::nonexistent_read_only_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::non_empty_secret_value_no_empty_warning ... ok
[INFO] [stdout] test commands::config::tests::nonexistent_rw_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_with_secret_like_name_is_warning ... ok
[INFO] [stdout] test commands::config::tests::network_namespace_without_cap_net_admin_warns ... ok
[INFO] [stdout] test commands::config::tests::plain_hostname_no_scheme_warning ... ok
[INFO] [stdout] test commands::config::tests::known_capability_no_unrecognized_warning ... ok
[INFO] [stdout] test commands::config::tests::inherit_env_set_var_no_unset_warning ... ok
[INFO] [stdout] test commands::clean::tests::clean_preserves_non_runtime_files ... ok
[INFO] [stdout] test commands::clean::tests::clean_removes_runtime_files ... ok
[INFO] [stdout] test commands::config::tests::path_rule_subdomain_of_allow_host_is_valid ... ok
[INFO] [stdout] test commands::config::tests::invalid_sandbox_timeout_is_error ... ok
[INFO] [stdout] test commands::config::tests::invalid_glob_pattern_in_auto_approve_is_error ... ok
[INFO] [stdout] test commands::config::tests::read_only_non_default_path_no_redundant_warning ... ok
[INFO] [stdout] test commands::config::tests::normal_workspace_no_broad_warning ... ok
[INFO] [stdout] test commands::config::tests::missing_workspace_is_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_transparent_hugepage_is_redundant ... ok
[INFO] [stdout] test commands::config::tests::seccomp_enabled_no_security_warning ... ok
[INFO] [stdout] test commands::config::tests::plain_substring_pattern_no_glob_chars_is_ok ... ok
[INFO] [stdout] test commands::config::tests::secret_key_with_special_chars_is_warning ... ok
[INFO] [stdout] test commands::config::tests::rw_path_outside_workspace_no_warning ... ok
[INFO] [stdout] test commands::config::tests::secrets_with_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::config::tests::secret_env_var_ref_unset_is_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_inside_rw_path_warns_override ... ok
[INFO] [stdout] test commands::config::tests::secret_key_alphanumeric_underscore_no_warning ... ok
[INFO] [stdout] test commands::config::tests::read_only_default_path_is_redundant_warning ... ok
[INFO] [stdout] test commands::config::tests::unknown_capability_is_warning ... ok
[INFO] [stdout] test commands::config::tests::valid_config_produces_no_issues ... ok
[INFO] [stdout] test commands::config::tests::valid_sandbox_timeout_is_ok ... ok
[INFO] [stdout] test commands::config::tests::valid_glob_pattern_in_auto_approve_is_ok ... ok
[INFO] [stdout] test commands::config::tests::vm_default_settings_with_vm_disabled_no_warning ... ok
[INFO] [stdout] test commands::config::tests::vm_settings_with_vm_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::same_action_different_pattern_not_flagged_as_duplicate ... ok
[INFO] [stdout] test commands::config::tests::workspace_file_not_dir_is_error ... ok
[INFO] [stdout] test commands::config::tests::read_only_inside_workspace_warns_override ... ok
[INFO] [stdout] test commands::config::tests::zero_sandbox_timeout_is_error ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_host_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zero_sandbox_timeout_0s_is_error ... ok
[INFO] [stdout] test commands::config::tests::read_only_subdir_of_default_path_is_redundant ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_empty_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_in_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_non_overlapping_paths_no_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_nonempty_paths_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_in_blocked_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_overlapping_paths_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_path_without_leading_slash_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_subdomain_of_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_also_in_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domains_subdomain_redundancy_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domains_ip_warns ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_host_not_in_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_not_in_allow_hosts_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_in_blocked_hosts_warns ... ok
[INFO] [stdout] test commands::config::tests::zone2_max_bytes_zero_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_max_requests_zero_is_warning ... ok
[INFO] [stdout] test commands::doctor::tests::cap_net_admin_mask_set ... ok
[INFO] [stdout] test commands::doctor::tests::cap_net_admin_mask_not_set ... ok
[INFO] [stdout] test commands::config::tests::zone2_settings_with_zone2_disabled_warn ... ok
[INFO] [stdout] test commands::config::tests::zone2_settings_with_zone2_enabled_no_extra_warnings ... ok
[INFO] [stdout] test commands::doctor::tests::collect_checks_no_config_has_eight_checks ... ok
[INFO] [stdout] test commands::doctor::tests::collect_checks_with_nonexistent_config_has_nine_checks ... ok
[INFO] [stdout] test commands::config::tests::secrets_with_no_allow_hosts_is_warning ... ok
[INFO] [stdout] test commands::config::tests::secret_env_var_ref_set_no_warning ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_path_with_leading_slash_is_ok ... ok
[INFO] [stdout] test commands::config::tests::zone2_domain_with_path_is_warning ... ok
[INFO] [stdout] test commands::config::tests::zone2_subdomain_of_allow_host_warns ... ok
[INFO] [stdout] test commands::doctor::tests::effective_cap_mask_parses_real_proc ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_min_landlock_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::collect_checks_with_valid_config_includes_config_check ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_modern_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::kernel_check_old_kernel_is_error ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi2_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi3_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi4_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi5_is_ok ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_abi1_is_warning ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_future_kernel_is_abi5 ... ok
[INFO] [stdout] test commands::doctor::tests::landlock_check_old_kernel_is_error ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_unknown ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_with_suffix ... ok
[INFO] [stdout] test commands::doctor::tests::parse_kernel_standard ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_epoch ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_known_date ... ok
[INFO] [stdout] test commands::doctor::tests::seccomp_check_passes_on_linux ... ok
[INFO] [stdout] test commands::gate::tests::fmt_unix_secs_with_time ... ok
[INFO] [stdout] test commands::config::tests::zone1_path_rule_duplicate_host_case_insensitive ... ok
[INFO] [stdout] test commands::gate::tests::fmt_wait_millis ... ok
[INFO] [stdout] test commands::gate::tests::fmt_wait_seconds ... ok
[INFO] [stdout] {"ts":1772352000,"action":"bash","details":"ls","decision":"approved","wait_ms":100}
[INFO] [stdout] 1
[INFO] [stdout] Audit log: /tmp/.tmp0me2Mg/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     3
[INFO] [stdout]   Approved: 2      (66.7%)
[INFO] [stdout]   Denied:   1      (33.3%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash            2  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓            66.7%
[INFO] [stdout]   file_delete     1  ▓▓▓▓▓▓▓▓▓                     33.3%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash         100.0%  (2 approved, 0 denied)
[INFO] [stdout]   file_delete    0.0%  (0 approved, 1 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 10.1s  max 30.0s  (3 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 2024-01-01 00:00:00 UTC → 2024-01-01 00:02:00 UTC (2m 0s)
[INFO] [stdout] 1970-01-01 00:00:07 UTC  APPROVED  bash                 0ms  cmd7
[INFO] [stdout] 1970-01-01 00:00:08 UTC  APPROVED  bash                 0ms  cmd8
[INFO] [stdout] 1970-01-01 00:00:09 UTC  APPROVED  bash                 0ms  cmd9
[INFO] [stdout] Audit log: /tmp/.tmp9QRxc1/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Approved: 0      (0.0%)
[INFO] [stdout]   Denied:   1      (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash       1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash      0.0%  (0 approved, 1 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 200ms  max 200ms  (1 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 2286-11-20 17:46:39 UTC → 2286-11-20 17:46:39 UTC (0s)
[INFO] [stdout] test commands::config::tests::zone2_allow_domain_not_in_blocked_hosts_no_warning ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_json_mode_returns_zero ... ok
[INFO] [stdout] test commands::gate::tests::log_count_with_filter ... ok
[INFO] [stdout] test commands::doctor::tests::user_namespaces_check_does_not_panic ... ok
[INFO] [stdout] 2026-03-01 08:00:00 UTC  APPROVED  bash               100ms  ls
[INFO] [stdout] 2026-03-01 08:01:00 UTC  DENIED    http                5.0s  GET /api
[INFO] [stdout] 3
[INFO] [stdout] test commands::gate::tests::gate_stats_since_filters_old_entries ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::config::tests::rw_path_inside_workspace_is_redundant ... ok
[INFO] [stdout] test commands::gate::tests::parse_since_seconds ... ok
[INFO] [stdout] test commands::gate::tests::parse_since_invalid ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_json_returns_zero ... ok
[INFO] [stdout] Audit log: /tmp/.tmpWEGT8t/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     5
[INFO] [stdout]   Approved: 2      (40.0%)
[INFO] [stdout]   Denied:   3      (60.0%)  (2 auto-denied)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash            3  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓              60.0%
[INFO] [stdout]   file_delete     2  ▓▓▓▓▓▓▓▓▓▓▓                   40.0%
[INFO] [stdout] 
[INFO] [stdout] Approval rate by tool:
[INFO] [stdout]   bash          66.7%  (2 approved, 1 denied)
[INFO] [stdout]   file_delete    0.0%  (0 approved, 2 denied)
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 266ms  max 500ms  (3 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:05 UTC (4s)
[INFO] [stdout] Audit log: /tmp/.tmpYXc3fk/insilo-gate.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     2
[INFO] [stdout]   Approved: 2      (100.0%)
[INFO] [stdout]   Denied:   0      (0.0%)
[INFO] [stdout] 
[INFO] [stdout] Actions:
[INFO] [stdout]   bash       2  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Human wait: avg 75ms  max 100ms  (2 reviewed)
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:02 UTC (1s)
[INFO] [stdout] test commands::gate::tests::gate_stats_returns_zero_on_valid_log ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_last_n ... ok
[INFO] [stdout] test commands::gate::tests::log_count_mode_returns_zero ... ok
[INFO] [stdout] test commands::gate::tests::parse_since_units ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_both ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_not_allowed_alias ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_auto_deny_alias ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_match ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_rate_limited_alias ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_shows_approval_rates ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_action_substring ... ok
[INFO] [stdout] test commands::gate::tests::gate_stats_skips_approval_rate_when_all_approved_single_tool ... ok
[INFO] [stdout] test commands::gate::tests::gate_log_prints_entries ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_tui_exited_alias ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_no_filter ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_denied ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_skips_invalid_json ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_approved ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_not_allowed ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_auto_deny ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_tui_exited ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_since ... ok
[INFO] [stdout] test commands::gate::tests::print_entry_tui_exited_is_denied_filter ... ok
[INFO] [stdout] test commands::init::tests::init_default_filename_is_insilo_toml ... ok
[INFO] [stdout] test commands::init::tests::init_errors_if_file_exists_without_force ... ok
[INFO] [stdout] test commands::init::tests::init_preset_codex ... ok
[INFO] [stdout] test commands::init::tests::init_force_overwrites_existing_file ... ok
[INFO] [stdout] test commands::init::tests::list_presets_returns_zero ... ok
[INFO] [stdout] 4
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] test commands::init::tests::init_preset_unknown_errors ... ok
[INFO] [stdout] test commands::init::tests::global_hosts_appear_in_all_presets ... ok
[INFO] [stdout] test commands::init::tests::init_preset_aider ... ok
[INFO] [stdout] test commands::init::tests::parse_hosts_skips_blanks_and_comments ... ok
[INFO] [stdout] test commands::log::tests::merged_log_count_mode ... ok
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] test commands::log::tests::merged_log_gate_only_file ... ok
[INFO] [stdout] test commands::log::tests::merged_log_no_files_returns_nonzero ... ok
[INFO] [stdout] test commands::log::tests::merged_log_grep_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_last_n ... ok
[INFO] [stdout] test commands::init::tests::all_presets_produce_valid_config ... ok
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:25:00 [proxy] Z3 GET 10.0.0.1/  → zone3_blocked
[INFO] [stdout] -20584d 00:41:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] -20584d 00:33:20 [gate]  bash ls /tmp  → approved
[INFO] [stdout] -20584d 00:50:00 [proxy] Z2 GET pypi.org/  → 200 (30ms)
[INFO] [stdout] -20584d 01:06:40 [gate]  file_delete /etc/passwd  → denied
[INFO] [stdout] -20584d 00:16:40 [proxy] Z1 GET api.anthropic.com/v1  → 200 (50ms)
[INFO] [stdout] {"_source":"proxy","bytes":100,"duration_ms":50,"host":"api.anthropic.com","method":"GET","path":"/v1","status":200,"ts":1000,"zone":1}
[INFO] [stdout] {"_source":"gate","action":"bash","decision":"approved","details":"ls /tmp","ts":2000,"wait_ms":100}
[INFO] [stdout] test commands::init::tests::init_preset_opencode ... ok
[INFO] [stdout] test commands::init::tests::init_preset_claude ... ok
[INFO] [stdout] test commands::init::tests::merge_toml_overlay_overrides_scalars ... ok
[INFO] [stdout] test commands::log::tests::merged_log_proxy_only_file ... ok
[INFO] [stdout] test commands::log::tests::merged_log_source_filter_gate ... ok
[INFO] [stdout] test commands::log::tests::merged_log_action_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_source_filter_proxy ... ok
[INFO] [stdout] test commands::log::tests::merged_log_blocked_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_since_filters ... ok
[INFO] [stdout] test commands::log::tests::merged_log_returns_zero ... ok
[INFO] [stdout] test commands::init::tests::init_writes_config_file ... ok
[INFO] [stdout] test commands::log::tests::merged_log_host_filter ... ok
[INFO] [stdout] test commands::log::tests::merged_log_json_mode ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_duration_ms_color_thresholds ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_duration_ms_units ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_status_no_color ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_proxy_only ... ok
[INFO] [stdout] test commands::log::tests::timeline_returns_zero ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_status_with_color ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_gate_only ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_unix_secs_known_date ... ok
[INFO] [stdout] test commands::proxy::tests::log_count_mode_returns_zero ... ok
[INFO] [stdout] test commands::log::tests::timeline_proxy_only ... ok
[INFO] [stdout] test commands::proxy::tests::log_json_mode_returns_zero ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_host ... ok
[INFO] [stdout] test commands::proxy::tests::fmt_log_bytes_units ... ok
[INFO] [stdout] test commands::proxy::tests::log_last_n ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_mode ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_method ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_since ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_path ... ok
[INFO] [stdout] Proxy log: /tmp/.tmpdGze3i/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     4
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (25.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       2  (50.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     1  (25.0%)
[INFO] [stdout]   Blocked:                   4  (100.0%)
[INFO] [stdout]     method_not_allowed      1
[INFO] [stdout]     path_not_allowed        1
[INFO] [stdout]     rate_limited            1
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            0 B
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        3  (75.0%)
[INFO] [stdout]   POST       1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   pub.com       2  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout]   10.0.0.1      1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout]   api.a.com     1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   pub.com     2  (50.0% of blocked)
[INFO] [stdout]   10.0.0.1     1  (25.0% of blocked)
[INFO] [stdout]   api.a.com     1  (25.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 1ms  p50 1ms  p95 1ms  max 1ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:04 UTC (3s)
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_blocked_entry_no_status ... ok
[INFO] [stdout] test commands::doctor::tests::kvm_check_does_not_panic ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_prefix ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_auto_deny_decision ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_reason ... ok
[INFO] [stdout] test commands::proxy::tests::passes_filter_status_exact ... ok
[INFO] [stdout] test commands::gate::tests::passes_filter_decision_auto_alias ... ok
[INFO] [stdout] test commands::proxy::tests::log_prints_all_entries ... ok
[INFO] [stdout] Proxy log: /tmp/.tmp6pXnaR/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Zone 1 (allowed APIs):     0  (0.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       1  (100.0%)  20 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            20 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   new.com     1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 10ms  p50 10ms  p95 10ms  max 10ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 2286-11-20 17:46:39 UTC → 2286-11-20 17:46:39 UTC (0s)
[INFO] [stdout] Proxy log: /tmp/.tmp4fH0eT/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     5
[INFO] [stdout]   Zone 1 (allowed APIs):     2  (40.0%)  150 B
[INFO] [stdout]   Zone 2 (public web):       2  (40.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     1  (20.0%)
[INFO] [stdout]   Blocked:                   1  (20.0%)
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            150 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      2  (50.0%)
[INFO] [stdout]   4xx Client err:   1  (25.0%)
[INFO] [stdout]   5xx Server err:   1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        4  (80.0%)
[INFO] [stdout]   POST       1  (20.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   api.a.com     2  ▓▓▓▓▓▓▓▓▓                 40.0%
[INFO] [stdout]   pub.com       2  ▓▓▓▓▓▓▓▓▓                 40.0%
[INFO] [stdout]   10.0.0.1      1  ▓▓▓▓                      20.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (100.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 4ms  p50 2ms  p95 10ms  max 10ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:05 UTC (4s)
[INFO] [stdout] Proxy log: /tmp/.tmp06RZ2Z/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     3
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (33.3%)  512 B
[INFO] [stdout]   Zone 2 (public web):       1  (33.3%)  1.0 KB
[INFO] [stdout]   Zone 3 (internal IPs):     1  (33.3%)
[INFO] [stdout]   Blocked:                   1  (33.3%)
[INFO] [stdout]     zone3_blocked           1
[INFO] [stdout]   Total bytes:            1.5 KB
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      2  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        3  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   10.0.0.1              1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout]   api.anthropic.com     1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout]   example.com           1  ▓▓▓▓▓▓▓▓                  33.3%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (100.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 108ms  p50 88ms  p95 234ms  max 234ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 2024-03-01 00:00:00 UTC → 2024-03-01 00:00:02 UTC (2s)
[INFO] [stdout] test commands::proxy::tests::stats_block_reasons_in_text_output ... ok
[INFO] [stdout] Proxy log: /tmp/.tmpP0l8p7/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     4
[INFO] [stdout]   Zone 1 (allowed APIs):     3  (75.0%)  230 B
[INFO] [stdout]   Zone 2 (public web):       1  (25.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            230 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      4  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        2  (50.0%)
[INFO] [stdout]   HEAD       1  (25.0%)
[INFO] [stdout]   POST       1  (25.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   a.com     3  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓        75.0%
[INFO] [stdout]   b.com     1  ▓▓▓▓▓▓                    25.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 21ms  p50 20ms  p95 50ms  max 50ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:04 UTC (3s)
[INFO] [stdout] Proxy log: /tmp/.tmpwRO4jI/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     1
[INFO] [stdout]   Zone 1 (allowed APIs):     1  (100.0%)  10 B
[INFO] [stdout]   Zone 2 (public web):       0  (0.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     0  (0.0%)
[INFO] [stdout]   Blocked:                   0  (0.0%)
[INFO] [stdout]   Total bytes:            10 B
[INFO] [stdout] 
[INFO] [stdout] Status (non-blocked):
[INFO] [stdout]   2xx Success:      1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        1  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   a.com     1  ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓  100.0%
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 42ms  p50 42ms  p95 42ms  max 42ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:01 UTC (0s)
[INFO] [stdout] test commands::proxy::tests::log_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::proxy::tests::log_count_with_zone_filter ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_host_substring ... ok
[INFO] [stdout] test commands::log::tests::merged_log_stats_json_mode ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_zone ... ok
[INFO] [stdout] test commands::proxy::tests::log_filter_blocked ... ok
[INFO] [stdout] test commands::log::tests::timeline_no_entries_returns_zero ... ok
[INFO] [stdout] test commands::proxy::tests::stats_missing_file_returns_nonzero ... ok
[INFO] [stdout] test commands::proxy::tests::stats_returns_zero_on_empty_log ... ok
[INFO] [stdout] test commands::proxy::tests::stats_since_filters_old_entries ... ok
[INFO] [stdout] test commands::proxy::tests::stats_counts_status_classes ... ok
[INFO] [stdout] Proxy log: /tmp/.tmp177ooJ/insilo-proxy.jsonl
[INFO] [stdout] 
[INFO] [stdout] Total:     2
[INFO] [stdout]   Zone 1 (allowed APIs):     0  (0.0%)  0 B
[INFO] [stdout]   Zone 2 (public web):       0  (0.0%)  0 B
[INFO] [stdout]   Zone 3 (internal IPs):     2  (100.0%)
[INFO] [stdout]   Blocked:                   2  (100.0%)
[INFO] [stdout]     zone3_blocked           2
[INFO] [stdout]   Total bytes:            0 B
[INFO] [stdout] 
[INFO] [stdout] Methods:
[INFO] [stdout]   GET        2  (100.0%)
[INFO] [stdout] 
[INFO] [stdout] Top hosts:
[INFO] [stdout]   10.0.0.1        1  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout]   192.168.1.1     1  ▓▓▓▓▓▓▓▓▓▓▓▓              50.0%
[INFO] [stdout] 
[INFO] [stdout] Top blocked hosts:
[INFO] [stdout]   10.0.0.1     1  (50.0% of blocked)
[INFO] [stdout]   192.168.1.1     1  (50.0% of blocked)
[INFO] [stdout] 
[INFO] [stdout] Response time:
[INFO] [stdout]   avg 1ms  p50 1ms  p95 1ms  max 1ms
[INFO] [stdout] 
[INFO] [stdout] Time span: 1970-01-01 00:00:01 UTC → 1970-01-01 00:00:02 UTC (1s)
[INFO] [stdout] test commands::proxy::tests::stats_json_returns_zero ... ok
[INFO] [stdout] test commands::proxy::tests::stats_returns_zero_on_valid_log ... ok
[INFO] [stdout] test commands::proxy::tests::stats_shows_method_breakdown_and_response_times ... ok
[INFO] [stdout] test commands::proxy::tests::stats_single_entry_percentiles ... ok
[INFO] [stdout] test commands::proxy::tests::stats_since_all_filtered_shows_no_entries ... ok
[INFO] [stdout] test commands::proxy::tests::status_class_buckets ... ok
[INFO] [stdout] test commands::run::tests::env_file_mismatched_quotes_preserved ... ok
[INFO] [stdout] test commands::run::tests::env_file_parses_key_value_pairs ... ok
[INFO] [stdout] test commands::proxy::tests::stats_status_section_skipped_when_all_blocked ... ok
[INFO] [stdout] test commands::run::tests::expand_env_escaped_dollar ... ok
[INFO] [stdout] test commands::run::tests::env_file_skips_blank_lines_and_comments ... ok
[INFO] [stdout] test commands::run::tests::env_file_strips_double_quotes ... ok
[INFO] [stdout] test commands::run::tests::env_file_strips_single_quotes ... ok
[INFO] [stdout] test commands::run::tests::expand_env_braced_in_middle ... ok
[INFO] [stdout] test commands::run::tests::env_file_unquoted_value_preserved ... ok
[INFO] [stdout] test commands::run::tests::config_timeout_defaults_to_none ... ok
[INFO] [stdout] test commands::run::tests::config_timeout_round_trips ... ok
[INFO] [stdout] test commands::run::tests::expand_env_braced_var ... ok
[INFO] [stdout] test commands::run::tests::dry_run_with_read_only ... ok
[INFO] [stdout] test commands::run::tests::dry_run_with_write_path ... ok
[INFO] [stdout] test commands::run::tests::dry_run_zone2_allow_overlay ... ok
[INFO] [stdout] test commands::run::tests::dry_run_returns_zero ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_trims_whitespace ... ok
[INFO] [stdout] test commands::run::tests::expand_env_no_vars_passthrough ... ok
[INFO] [stdout] test commands::run::tests::env_file_value_may_contain_equals ... ok
[INFO] [stdout] test commands::run::tests::expand_env_plain_var ... ok
[INFO] [stdout] test commands::run::tests::expand_env_unset_var_becomes_empty ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_empty_paths_is_error ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_no_colon_is_error ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_empty_host_is_error ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_single_path ... ok
[INFO] [stdout] test commands::run::tests::env_file_line_without_equals_is_error ... ok
[INFO] [stdout] test commands::run::tests::expand_env_mixed_text ... ok
[INFO] [stdout] test commands::run::tests::parse_zone1_path_rule_valid ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_counts_correctly ... ok
[INFO] [stdout] test commands::run::tests::secret_kv_valid_parses ... ok
[INFO] [stdout] test commands::run::tests::secret_kv_value_may_contain_equals ... ok
[INFO] [stderr] insilo sandbox  test-session  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stdout] test commands::run::tests::secret_kv_no_equals_fails ... ok
[INFO] [stderr] insilo sandbox  my-project  proxy :1234  dns :5678
[INFO] [stderr]   $ claude
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stdout] test commands::run::tests::session_counts_missing_file_returns_none ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_respects_start_offset ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_missing_file_is_silent ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_config_name ... ok
[INFO] [stdout] test commands::run::tests::read_only_nonexistent_path_fails ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_name ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_empty_log_is_silent ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_gate_with_all_options ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_default_config_does_not_panic ... ok
[INFO] [stdout] test commands::run::tests::session_counts_full_log ... ok
[INFO] [stderr] insilo sandbox  proxy :8080  dns :5353
[INFO] [stderr]   $ echo hello
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  enabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :9999  dns :4444
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /tmp
[INFO] [stderr]   zone 1     api.anthropic.com  (1 host)
[INFO] [stderr]   zone 2     disabled
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  enabled    seccomp  enabled    landlock  enabled
[INFO] [stderr]   gate       enabled  (timeout 30s, 1 auto-approve, 1 auto-deny, rate 60/min, 2 allowed tools)
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     a.com, b.com, c.com +2 more  (5 hosts)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ bash -c "echo hello world"
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     disabled
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled
[INFO] [stderr]   gate       disabled
[INFO] [stderr] insilo sandbox  proxy :1234  dns :5678
[INFO] [stderr]   $ test
[INFO] [stderr]   workspace  /opt/rustwide/workdir/insilo
[INFO] [stderr]   zone 1     (no hosts — all external APIs blocked)
[INFO] [stderr]   zone 2     enabled  (GET/HEAD only, auth stripped)
[INFO] [stderr]   zone 3     blocked  (internal IPs, localhost)
[INFO] [stderr]   namespace  disabled    seccomp  disabled    landlock  enabled    timeout  30m0s
[INFO] [stderr]   gate       disabled
[INFO] [stdout] test commands::run::tests::startup_banner_many_zone1_hosts ... ok
[INFO] [stdout] test commands::run::tests::session_counts_empty_log_returns_none ... ok
[INFO] [stdout] test commands::run::tests::proxy_summary_shows_block_reasons ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_shows_command ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_no_zone1_hosts ... ok
[INFO] [stdout] test commands::run::tests::startup_banner_with_timeout ... ok
[INFO] [stdout] test commands::run::tests::wait_status_signaled_returns_128_plus_signal ... ok
[INFO] [stdout] test commands::run::tests::strip_env_quotes_single_char ... ok
[INFO] [stdout] test commands::run::tests::session_counts_respects_start_offset ... ok
[INFO] [stdout] test commands::run::tests::timeout_parse_invalid_rejected ... ok
[INFO] [stdout] test commands::run::tests::strip_env_quotes_empty_string ... ok
[INFO] [stdout] test commands::run::tests::workspace_nonexistent_is_created ... ok
[INFO] [stdout] test commands::run::tests::timeout_parse_valid_durations ... ok
[INFO] [stdout] test commands::run::tests::wait_status_exited_returns_code ... ok
[INFO] [stdout] test commands::run::tests::workspace_existing_dir_is_ok ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_megabytes ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_hours ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_kilobytes ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_zero ... ok
[INFO] [stdout] test commands::run::tests::write_nonexistent_path_fails ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_gigabytes ... ok
[INFO] [stdout] test commands::time_fmt::tests::epoch ... ok
[INFO] [stdout] test commands::time_fmt::tests::bytes_small ... ok
[INFO] [stdout] test commands::time_fmt::tests::known_date ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_seconds_only ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_hours ... ok
[INFO] [stdout] test commands::run::tests::workspace_existing_file_is_error ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_spaced_minutes ... ok
[INFO] [stdout] test commands::time_fmt::tests::known_date_with_time ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_minutes_and_seconds ... ok
[INFO] [stdout] test commands::time_fmt::tests::duration_seconds_only ... ok
[INFO] [stdout] test commands::time_fmt::tests::march_date ... ok
[INFO] [stdout] test commands::time_fmt::tests::short_format_nonzero ... ok
[INFO] [stdout] test config::tests::config_source_display ... ok
[INFO] [stdout] test config::tests::empty_config_uses_all_defaults ... ok
[INFO] [stdout] test config::tests::find_config_from_subdir ... ok
[INFO] [stdout] test config::tests::expand_tilde_home ... ok
[INFO] [stdout] test config::tests::gate_section_round_trips ... ok
[INFO] [stdout] test config::tests::gate_auto_deny_round_trips ... ok
[INFO] [stdout] test config::tests::expand_tildes_in_config ... ok
[INFO] [stdout] test config::tests::default_config_parses ... ok
[INFO] [stdout] test config::tests::load_with_source_missing_explicit_errors ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_project_overrides_scalar ... ok
[INFO] [stdout] test config::tests::partial_security_section_parses ... ok
[INFO] [stdout] test config::tests::gate_auto_approve_round_trips ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_global_only_fields_preserved ... ok
[INFO] [stdout] test config::tests::find_config_via_env_var ... ok
[INFO] [stdout] test config::tests::merge_toml_tables_project_overrides_list ... ok
[INFO] [stdout] test config::tests::load_with_source_explicit ... ok
[INFO] [stdout] test config::tests::minimal_config_parses ... ok
[INFO] [stdout] test config::tests::expand_tilde_no_tilde_unchanged ... ok
[INFO] [stdout] test config::tests::global_config_merged_with_project ... ok
[INFO] [stdout] test config::tests::resolve_workspace_explicit_path_unchanged ... ok
[INFO] [stdout] test config::tests::resolve_workspace_dot_without_config_stays_dot ... ok
[INFO] [stdout] test config::tests::sandbox_rw_paths_round_trips ... ok
[INFO] [stdout] test config::tests::sandbox_paths_default_to_empty ... ok
[INFO] [stdout] test config::tests::sandbox_read_only_paths_round_trips ... ok
[INFO] [stdout] test config::tests::sandbox_name_round_trips ... ok
[INFO] [stdout] test config::tests::partial_network_section_parses ... ok
[INFO] [stdout] test config::tests::round_trip ... ok
[INFO] [stdout] test config::tests::sandbox_inherit_env_defaults_to_empty ... ok
[INFO] [stdout] test config::tests::sandbox_inherit_env_round_trips ... ok
[INFO] [stdout] test config::tests::unknown_field_rejected ... ok
[INFO] [stdout] test config::tests::sandbox_name_defaults_to_none ... ok
[INFO] [stdout] test config::tests::zone1_path_rules_defaults_to_empty ... ok
[INFO] [stdout] test config::tests::workspace_path_preserved ... ok
[INFO] [stdout] test config::tests::zone1_path_rules_round_trips ... ok
[INFO] [stdout] test config::tests::seccomp_profile_defaults_to_none ... ok
[INFO] [stdout] test config::tests::seccomp_profile_round_trips ... ok
[INFO] [stdout] test config::tests::secret_keys_round_trip ... ok
[INFO] [stdout] test config::tests::zone2_allow_domains_round_trips ... ok
[INFO] [stdout] test config::tests::zone2_allow_domains_defaults_to_empty ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 479 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-ef370793abf08503)
[INFO] [stdout] 
[INFO] [stdout] running 80 tests
[INFO] [stdout] test completions_bash ... ok
[INFO] [stdout] test clean_dry_run_empty_dir ... ok
[INFO] [stdout] test completions_fish ... ok
[INFO] [stdout] test config_explain_default ... ok
[INFO] [stdout] test clean_dry_run_preserves_files ... ok
[INFO] [stdout] test config_check_host_classifies_zone1 ... ok
[INFO] [stdout] test config_explain_shows_config_source ... ok
[INFO] [stdout] test config_check_host_with_allow ... ok
[INFO] [stdout] test config_diff_no_changes ... ok
[INFO] [stdout] test clean_removes_runtime_files ... ok
[INFO] [stdout] test config_check_host_default ... ok
[INFO] [stdout] test config_validate_defaults ... ok
[INFO] [stdout] test config_show_displays_source ... ok
[INFO] [stdout] test config_show_includes_secrets_section ... ok
[INFO] [stdout] test config_show_with_file ... ok
[INFO] [stdout] test config_validate_hostname_with_path ... ok
[INFO] [stdout] test config_check_host_classifies_zone3_blocked ... ok
[INFO] [stdout] test config_check_host_multiple_hosts ... ok
[INFO] [stdout] test config_explain_with_session_name ... ok
[INFO] [stdout] test config_validate_hostname_with_port ... ok
[INFO] [stdout] test config_validate_allow_host_covered_by_blocked ... ok
[INFO] [stdout] test config_validate_hostname_with_scheme ... ok
[INFO] [stdout] test config_show_missing_file ... ok
[INFO] [stdout] test config_validate_json_defaults ... ok
[INFO] [stdout] test config_validate_invalid_toml ... ok
[INFO] [stdout] test config_validate_empty_secret_value ... ok
[INFO] [stdout] test config_validate_json_with_errors ... ok
[INFO] [stdout] test config_validate_duplicate_hosts ... ok
[INFO] [stdout] test doctor_json_output ... ok
[INFO] [stdout] test gate_log_missing_workspace ... ok
[INFO] [stdout] test doctor_with_invalid_config ... ok
[INFO] [stdout] test config_validate_json_includes_config_source ... ok
[INFO] [stdout] test doctor_runs ... ok
[INFO] [stdout] test help_flag ... ok
[INFO] [stdout] test config_validate_inherit_env_overlaps_secrets ... ok
[INFO] [stdout] test config_validate_unknown_capability ... ok
[INFO] [stdout] test doctor_with_config_shows_config_check ... ok
[INFO] [stdout] test gate_stats_missing_workspace ... ok
[INFO] [stdout] test config_show_defaults ... ok
[INFO] [stdout] test init_preset_codex ... ok
[INFO] [stdout] test init_preset_claude ... ok
[INFO] [stdout] test init_preset_aider ... ok
[INFO] [stdout] test init_refuses_overwrite_without_force ... ok
[INFO] [stdout] test init_preset_opencode ... ok
[INFO] [stdout] test no_color_env_disables_ansi ... ok
[INFO] [stdout] test init_preset_unknown ... ok
[INFO] [stdout] test proxy_log_missing_workspace ... ok
[INFO] [stdout] test config_validate_json_with_warnings ... ok
[INFO] [stdout] test run_dry_run ... ok
[INFO] [stdout] test proxy_stats_missing_workspace ... ok
[INFO] [stdout] test config_validate_zone1_path_rule_missing_leading_slash ... ok
[INFO] [stdout] test run_dry_run_shows_config_source_defaults ... ok
[INFO] [stdout] test run_dry_run_no_gate_overrides_config ... ok
[INFO] [stdout] test run_dry_run_quiet_suppresses_warnings ... ok
[INFO] [stdout] test example_configs_are_valid ... ok
[INFO] [stdout] test run_dry_run_no_network_namespace_overrides_config ... ok
[INFO] [stdout] test init_force_overwrites ... ok
[INFO] [stdout] test log_missing_workspace ... ok
[INFO] [stdout] test run_dry_run_with_network_namespace_flag ... ok
[INFO] [stdout] test init_creates_config ... ok
[INFO] [stdout] test run_dry_run_shows_env_vars ... ok
[INFO] [stdout] test run_command_not_found_shows_helpful_error ... ok
[INFO] [stdout] test insilo_config_env_var ... ok
[INFO] [stdout] test completions_zsh ... ok
[INFO] [stdout] test init_list_presets ... ok
[INFO] [stdout] test run_dry_run_with_config ... ok
[INFO] [stdout] test run_dry_run_with_vm_flag ... ok
[INFO] [stdout] test run_without_command_fails ... ok
[INFO] [stdout] test run_dry_run_shows_config_source_explicit ... ok
[INFO] [stdout] test run_dry_run_masks_multiple_secrets ... ok
[INFO] [stdout] test run_dry_run_shows_config_warnings ... ok
[INFO] [stdout] test run_dry_run_with_overrides ... ok
[INFO] [stdout] test version_flag ... ok
[INFO] [stdout] test run_gate_and_no_gate_conflict ... ok
[INFO] [stdout] test run_dry_run_shows_no_landlock ... ok
[INFO] [stdout] test unknown_subcommand_fails ... ok
[INFO] [stdout] test run_dry_run_shows_no_seccomp ... ok
[INFO] [stdout] test run_vm_without_feature_shows_error ... ok
[INFO] [stdout] test run_child_exit_code_passthrough ... ok
[INFO] [stdout] test run_child_killed_by_signal_returns_128_plus_signum ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.36s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/insilo_gate-2a74834ea1e661c2)
[INFO] [stdout] 
[INFO] [stdout] running 43 tests
[INFO] [stdout] test tests::allowed_tools_blocks_unlisted_tool ... ok
[INFO] [stdout] test tests::allowed_tools_empty_list_permits_all ... ok
[INFO] [stdout] test tests::allowed_tools_permits_listed_tool ... ok
[INFO] [stdout] test tests::allowed_tools_not_allowed_writes_log_entry ... ok
[INFO] [stdout] test tests::auto_approve_action_only_matches_any_details ... ok
[INFO] [stdout] test tests::auto_approve_rule_matches_method ... ok
[INFO] [stdout] test tests::auto_deny_action_only_denies_any_details ... ok
[INFO] [stdout] test tests::auto_deny_bypasses_queue ... ok
[INFO] [stdout] test tests::audit_log_written_on_approve_and_deny ... ok
[INFO] [stdout] test tests::auto_approve_writes_auto_true_to_log ... ok
[INFO] [stdout] test tests::auto_approve_takes_priority_over_auto_deny ... ok
[INFO] [stdout] test tests::auto_approve_bypasses_queue_when_running_false ... ok
[INFO] [stdout] test tests::auto_deny_with_pattern_must_match_details ... ok
[INFO] [stdout] test tests::gate_denied ... ok
[INFO] [stdout] test tests::gate_passes_action_and_details_to_approver ... ok
[INFO] [stdout] test tests::full_handshake_sequence ... ok
[INFO] [stdout] test tests::auto_deny_writes_auto_deny_true_to_log ... ok
[INFO] [stdout] test tests::pattern_invalid_glob_falls_back_to_false ... ok
[INFO] [stdout] test tests::non_auto_approve_does_not_set_auto_field ... ok
[INFO] [stdout] test tests::initialize_returns_capabilities ... ok
[INFO] [stdout] test tests::pattern_double_star_crosses_separators ... ok
[INFO] [stdout] test tests::pattern_no_glob_chars_is_substring ... ok
[INFO] [stdout] test tests::notification_produces_no_response ... ok
[INFO] [stdout] test tests::pattern_character_class ... ok
[INFO] [stdout] test tests::pattern_star_matches_within_segment ... ok
[INFO] [stdout] test tests::rate_limit_auto_denies_when_exceeded ... ok
[INFO] [stdout] test tests::pattern_question_mark_matches_one_char ... ok
[INFO] [stdout] test tests::ping_responds ... ok
[INFO] [stdout] test tests::rate_limit_does_not_count_auto_approved ... ok
[INFO] [stdout] test tests::tui_exited_before_queue_returns_ok_false ... ok
[INFO] [stdout] test tui::tests::elapsed_just_now ... ok
[INFO] [stdout] test tests::tools_list_returns_gate_tool ... ok
[INFO] [stdout] test tests::unknown_method_returns_error ... ok
[INFO] [stdout] test tests::unknown_tool_returns_error ... ok
[INFO] [stdout] test tests::gate_approved ... ok
[INFO] [stdout] test tests::tui_exited_writes_tui_exited_true_to_log ... ok
[INFO] [stdout] test tui::tests::elapsed_minutes ... ok
[INFO] [stdout] test tui::tests::remaining_expired ... ok
[INFO] [stdout] test tests::rate_limit_writes_rate_limited_to_log ... ok
[INFO] [stdout] test tui::tests::remaining_urgent ... ok
[INFO] [stdout] test tui::tests::remaining_not_urgent ... ok
[INFO] [stdout] test tui::tests::elapsed_seconds ... ok
[INFO] [stdout] test tests::timeout_causes_auto_deny ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 43 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/insilo_proxy-f9a6106b50a88a64)
[INFO] [stdout] 
[INFO] [stdout] running 86 tests
[INFO] [stdout] test access_log::tests::log_is_cloneable_and_both_write ... ok
[INFO] [stdout] test ca::tests::ca_generates ... ok
[INFO] [stdout] test access_log::tests::write_request_produces_valid_jsonl ... ok
[INFO] [stdout] test dns::tests::internal_ip_denied ... ok
[INFO] [stdout] test dns::tests::fqdn_trailing_dot_stripped ... ok
[INFO] [stdout] test ca::tests::cert_cache_hit ... ok
[INFO] [stdout] test access_log::tests::multiple_entries_are_separate_lines ... ok
[INFO] [stdout] test dns::tests::localhost_denied ... ok
[INFO] [stdout] test access_log::tests::write_blocked_sets_blocked_true ... ok
[INFO] [stdout] test ca::tests::leaf_cert_has_correct_san ... ok
[INFO] [stdout] test dns::tests::server_binds ... ok
[INFO] [stdout] test dns::tests::zone2_public_denied_when_disabled ... ok
[INFO] [stdout] test dns::tests::zone2_public_allowed_when_enabled ... ok
[INFO] [stdout] test proxy::tests::limiter_counts_snapshot ... ok
[INFO] [stdout] test proxy::tests::limiter_byte_limit_blocks_after_threshold ... ok
[INFO] [stdout] test proxy::tests::limiter_request_count_blocks_after_max ... ok
[INFO] [stdout] test proxy::tests::limiter_request_count_zero_blocks_immediately ... ok
[INFO] [stdout] test mitm::tests::server_config_builds ... ok
[INFO] [stdout] test ca::tests::different_domains_get_different_certs ... ok
[INFO] [stdout] test dns::tests::nxdomain_response_format ... ok
[INFO] [stdout] test proxy::tests::limiter_no_limits_always_allows ... ok
[INFO] [stdout] test secret::tests::detect_leaks_empty_vault_is_safe ... ok
[INFO] [stdout] test secret::tests::detect_leaks_multiple_secrets ... ok
[INFO] [stdout] test secret::tests::empty_vault_is_noop ... ok
[INFO] [stdout] test dns::tests::zone1_host_allowed ... ok
[INFO] [stdout] test secret::tests::zone1_no_change_when_no_placeholder_in_header ... ok
[INFO] [stdout] test secret::tests::zone1_substitutes_placeholder ... ok
[INFO] [stdout] test zone::tests::blocked_host_case_insensitive ... ok
[INFO] [stdout] test zone::tests::blocked_host_is_zone3 ... ok
[INFO] [stdout] test zone::tests::blocked_host_overrides_zone1 ... ok
[INFO] [stdout] test zone::tests::blocked_host_overrides_zone2 ... ok
[INFO] [stdout] test secret::tests::zone2_strips_auth_header ... ok
[INFO] [stdout] test zone::tests::empty_blocked_hosts_has_no_effect ... ok
[INFO] [stdout] test secret::tests::detect_leaks_empty_when_no_match ... ok
[INFO] [stdout] test secret::tests::child_env_contains_placeholders_not_real_values ... ok
[INFO] [stdout] test zone::tests::matches_any_host_deep_subdomain ... ok
[INFO] [stdout] test zone::tests::matches_any_host_exact ... ok
[INFO] [stdout] test secret::tests::zone3_strips_auth_header ... ok
[INFO] [stdout] test zone::tests::matches_any_host_no_partial_suffix ... ok
[INFO] [stdout] test zone::tests::matches_any_host_subdomain ... ok
[INFO] [stdout] test zone::tests::wildcard_matches_bare_domain ... ok
[INFO] [stdout] test zone::tests::wildcard_deep_subdomain ... ok
[INFO] [stdout] test zone::tests::wildcard_matches_hyphenated_prefix ... ok
[INFO] [stdout] test zone::tests::zone1_exact_match ... ok
[INFO] [stdout] test zone::tests::wildcard_no_partial_match ... ok
[INFO] [stdout] test zone::tests::zone1_path_case_insensitive_host ... ok
[INFO] [stdout] test zone::tests::zone1_path_empty_paths_allows_all ... ok
[INFO] [stdout] test zone::tests::zone1_path_no_rule_allows_all ... ok
[INFO] [stdout] test zone::tests::zone1_path_prefix_match_allowed ... ok
[INFO] [stdout] test zone::tests::zone1_path_rule_for_other_host_does_not_apply ... ok
[INFO] [stdout] test zone::tests::zone1_path_non_prefix_blocked ... ok
[INFO] [stdout] test zone::tests::zone1_path_rules_accessor ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_accessor ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_case_insensitive ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_does_not_affect_zone1 ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_empty_means_unrestricted ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_does_not_affect_zone3 ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_subdomain_allowed ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_unlisted_domain_blocked ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_zone2_disabled_still_blocks ... ok
[INFO] [stdout] test zone::tests::zone2_public ... ok
[INFO] [stdout] test zone::tests::zone1_subdomain ... ok
[INFO] [stdout] test zone::tests::zone3_cgnat_rfc6598 ... ok
[INFO] [stdout] test zone::tests::zone3_ipv4_mapped_ipv6 ... ok
[INFO] [stdout] test zone::tests::matches_any_host_case_insensitive ... ok
[INFO] [stdout] test zone::tests::matches_any_host_empty_list ... ok
[INFO] [stdout] test zone::tests::zone3_ipv6_link_local ... ok
[INFO] [stdout] test zone::tests::zone3_localhost ... ok
[INFO] [stdout] test zone::tests::zone3_loopback_ip ... ok
[INFO] [stdout] test zone::tests::zone3_rfc1918 ... ok
[INFO] [stdout] test zone::tests::zone3_when_zone2_disabled ... ok
[INFO] [stdout] test zone::tests::zone3_unspecified_and_broadcast ... ok
[INFO] [stdout] test zone::tests::zone3_link_local_apipa ... ok
[INFO] [stdout] test zone::tests::zone3_ipv6_loopback ... ok
[INFO] [stdout] test secret::tests::detect_leaks_finds_real_value_in_url ... ok
[INFO] [stdout] test secret::tests::detect_leaks_placeholder_not_flagged ... ok
[INFO] [stdout] test zone::tests::zone2_allowlist_exact_match_allowed ... ok
[INFO] [stdout] test mitm::tests::client_config_builds ... ok
[INFO] [stdout] test proxy::tests::proxy_binds_on_ephemeral_port ... ok
[INFO] [stdout] test proxy::tests::zone2_blocked_when_request_limit_reached ... ok
[INFO] [stdout] test proxy::tests::zone1_injects_secret_into_auth_header ... ok
[INFO] [stdout] test proxy::tests::zone1_path_allowlist_blocks_disallowed_path ... ok
[INFO] [stdout] test proxy::tests::serve_on_listener_works ... ok
[INFO] [stdout] test proxy::tests::zone2_strips_auth_header_from_upstream ... ok
[INFO] [stdout] test proxy::tests::zone2_non_get_blocked ... ok
[INFO] [stdout] test proxy::tests::zone3_blocked_via_proxy ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 86 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/insilo_sandbox-8d0c002845e26a35)
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test namespace::tests::sync_pipe_roundtrip ... ok
[INFO] [stdout] test netns::tests::names_are_unique_per_pid ... ok
[INFO] [stdout] test netns::tests::sandbox_subnet_custom_prefix ... ok
[INFO] [stdout] test netns::tests::veth_names_within_ifnamsiz ... ok
[INFO] [stdout] test seccomp::tests::builtin_allow_names_all_resolve ... ok
[INFO] [stdout] test namespace::tests::sync_pipe_created ... ok
[INFO] [stdout] test netns::tests::sandbox_subnet_slash30 ... ok
[INFO] [stdout] test netns::tests::ports_stored ... ok
[INFO] [stdout] test netns::tests::ip_addresses_are_correct ... ok
[INFO] [stdout] test seccomp::tests::builtin_deny_names_all_resolve ... ok
[INFO] [stdout] test seccomp::tests::syscall_name_case_insensitive ... ok
[INFO] [stdout] test landlock::tests::apply_returns_ok_in_subprocess ... ok
[INFO] [stdout] test vm::tests::vm_config_default ... ok
[INFO] [stdout] test vm::tests::enter_vm_without_feature_returns_error ... ok
[INFO] [stdout] test seccomp::tests::filter_compiles_allowlist ... ok
[INFO] [stdout] test seccomp::tests::ptrace_blocked_denylist ... ok
[INFO] [stdout] test seccomp::tests::extra_allow_removes_from_denylist ... ok
[INFO] [stdout] test seccomp::tests::ptrace_blocked_allowlist ... ok
[INFO] [stdout] test seccomp::tests::filter_compiles_denylist ... ok
[INFO] [stdout] test landlock::tests::blocked_write_outside_workspace ... ok
[INFO] [stdout] test vm::tests::check_vm_support_returns_results ... ok
[INFO] [stdout] test namespace::tests::enter_user_net_ns_in_subprocess ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- namespace::tests::enter_user_net_ns_in_subprocess stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'namespace::tests::enter_user_net_ns_in_subprocess' (1312) panicked at insilo-sandbox/src/namespace.rs:261:25:
[INFO] [stdout] assertion `left == right` failed: enter_user_net_ns should succeed
[INFO] [stdout]   left: 1
[INFO] [stdout]  right: 0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x558b18c8f67a - std[ec419fa8110287d5]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x558b18c8f67a - std[ec419fa8110287d5]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec419fa8110287d5]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x558b18c8f67a - std[ec419fa8110287d5]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x558b18c8f67a - <<std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[35159d6ffb30e017]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x558b18ca461a - <core[35159d6ffb30e017]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x558b18ca461a - core[35159d6ffb30e017]::fmt::write
[INFO] [stdout]    6:     0x558b18c93fb2 - std[ec419fa8110287d5]::io::default_write_fmt::<alloc[a8a7aba520129d98]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x558b18c93fb2 - <alloc[a8a7aba520129d98]::vec::Vec<u8> as std[ec419fa8110287d5]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x558b18c6cc9f - <std[ec419fa8110287d5]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x558b18c6cc9f - std[ec419fa8110287d5]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x558b18c87149 - std[ec419fa8110287d5]::panicking::default_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x558b18bf3bec - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x558b18bf3bec - test[a8007afcd3effadc]::test_main_inner::<test[a8007afcd3effadc]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x558b18c87302 - <alloc[a8a7aba520129d98]::boxed::Box<dyn for<'a, 'b> core[35159d6ffb30e017]::ops::function::Fn<(&'a std[ec419fa8110287d5]::panic::PanicHookInfo<'b>,), Output = ()> + core[35159d6ffb30e017]::marker::Sync + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::Fn<(&std[ec419fa8110287d5]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x558b18c87302 - std[ec419fa8110287d5]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x558b18c6cd58 - std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x558b18c64619 - std[ec419fa8110287d5]::sys::backtrace::__rust_end_short_backtrace::<std[ec419fa8110287d5]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x558b18c6da6d - __rustc[cfb3622dd870db93]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x558b18ca4d9c - core[35159d6ffb30e017]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x558b18ca4cb3 - core[35159d6ffb30e017]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:434:23
[INFO] [stdout]   20:     0x558b18c3f179 - core[35159d6ffb30e017]::panicking::assert_failed::<i32, i32>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x558b18be60b2 - insilo_sandbox[23f5e0177afb08d6]::namespace::tests::enter_user_net_ns_in_subprocess
[INFO] [stdout]                                at /opt/rustwide/workdir/insilo-sandbox/src/namespace.rs:261:25
[INFO] [stdout]   22:     0x558b18be2467 - insilo_sandbox[23f5e0177afb08d6]::namespace::tests::enter_user_net_ns_in_subprocess::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/insilo-sandbox/src/namespace.rs:249:41
[INFO] [stdout]   23:     0x558b18bcd726 - <insilo_sandbox[23f5e0177afb08d6]::namespace::tests::enter_user_net_ns_in_subprocess::{closure#0} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x558b18be6ecb - <fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x558b18be6ecb - test[a8007afcd3effadc]::__rust_begin_short_backtrace::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, fn() -> core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x558b18bf46bb - test[a8007afcd3effadc]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x558b18bf46bb - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x558b18bf46bb - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x558b18bf46bb - std[ec419fa8110287d5]::panicking::catch_unwind::<core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>, core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x558b18bf46bb - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<test[a8007afcd3effadc]::run_test_in_process::{closure#0}>, core[35159d6ffb30e017]::result::Result<(), alloc[a8a7aba520129d98]::string::String>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x558b18bf46bb - test[a8007afcd3effadc]::run_test_in_process
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x558b18bf46bb - test[a8007afcd3effadc]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x558b18bef094 - test[a8007afcd3effadc]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x558b18bef094 - std[ec419fa8110287d5]::sys::backtrace::__rust_begin_short_backtrace::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x558b18bf72c2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x558b18bf72c2 - <core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x558b18bf72c2 - std[ec419fa8110287d5]::panicking::catch_unwind::do_call::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x558b18bf72c2 - std[ec419fa8110287d5]::panicking::catch_unwind::<(), core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x558b18bf72c2 - std[ec419fa8110287d5]::panic::catch_unwind::<core[35159d6ffb30e017]::panic::unwind_safe::AssertUnwindSafe<std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x558b18bf72c2 - std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked::<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x558b18bf72c2 - <std[ec419fa8110287d5]::thread::lifecycle::spawn_unchecked<test[a8007afcd3effadc]::run_test::{closure#1}, ()>::{closure#1} as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x558b18c8ed8f - <alloc[a8a7aba520129d98]::boxed::Box<dyn core[35159d6ffb30e017]::ops::function::FnOnce<(), Output = ()> + core[35159d6ffb30e017]::marker::Send> as core[35159d6ffb30e017]::ops::function::FnOnce<()>>::call_once
[INFO] [stderr] error: test failed, to rerun pass `-p insilo-sandbox --lib`
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x558b18c8ed8f - <std[ec419fa8110287d5]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/33835004928d3bf65db4d4712e1330766263b0bd/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x705f49cb7aa4 - <unknown>
[INFO] [stdout]   45:     0x705f49d44a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     namespace::tests::enter_user_net_ns_in_subprocess
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 21 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2aa8387b43c4533e320cc74801ac7f57f188f08d07cedf9c760cd1eb02295269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2aa8387b43c4533e320cc74801ac7f57f188f08d07cedf9c760cd1eb02295269", kill_on_drop: false }`
[INFO] [stdout] 2aa8387b43c4533e320cc74801ac7f57f188f08d07cedf9c760cd1eb02295269
