[INFO] fetching crate sentinel-guard 0.4.1...
[INFO] testing sentinel-guard-0.4.1 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate sentinel-guard 0.4.1 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate sentinel-guard 0.4.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate sentinel-guard 0.4.1
[INFO] tweaked toml for crates.io crate sentinel-guard 0.4.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sentinel-guard 0.4.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate sentinel-guard 0.4.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544
[INFO] running `Command { std: "docker" "start" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tinyvec_macros v0.1.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling utf8-width v0.1.8
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling html-escape v0.2.13
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling sentinel-guard v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `anyhow`
[INFO] [stderr]  --> Cargo.toml:5:15
[INFO] [stderr]   |
[INFO] [stderr] 5 | [dependencies.anyhow]
[INFO] [stderr]   |               ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `anyhow`
[INFO] [stderr] warning: `sentinel-guard` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
[INFO] running `Command { std: "docker" "inspect" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling assert_cmd v2.2.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling fastrand v2.4.1
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling sentinel-guard v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 16.17s
[INFO] running `Command { std: "docker" "inspect" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/sentinel-guard/a15e1fc3b1219473/out/sentinel-a15e1fc3b1219473)
[INFO] [stdout] 
[INFO] [stdout] running 269 tests
[INFO] [stdout] test audit::report::tests::risk_score_all_vulnerable ... ok
[INFO] [stdout] test audit::report::tests::risk_score_mixed ... ok
[INFO] [stdout] test check::tests::empty_and_invalid_input_error ... ok
[INFO] [stdout] test audit::report::tests::risk_score_empty ... ok
[INFO] [stdout] test check::tests::missing_tool_name_is_rejected ... ok
[INFO] [stdout] test common::normalize::tests::decodes_html_entities ... ok
[INFO] [stdout] test common::normalize::tests::normalizes_unicode_forms ... ok
[INFO] [stdout] test audit::report::tests::risk_score_all_defended ... ok
[INFO] [stdout] test common::normalize::tests::strips_isolates_alm_and_mongolian_separator ... ok
[INFO] [stdout] test common::normalize::tests::preserves_secret_case ... ok
[INFO] [stdout] test common::normalize::tests::strips_unicode_tag_block_and_soft_hyphen ... ok
[INFO] [stdout] test common::normalize::tests::strips_zero_width_controls ... ok
[INFO] [stdout] test common::shell::tests::ansi_c_decodes_command_word ... ok
[INFO] [stdout] test common::shell::tests::ansi_c_hex_decodes_to_path ... ok
[INFO] [stdout] test common::shell::tests::brace_expands_path_list ... ok
[INFO] [stdout] test common::shell::tests::brace_expansion_is_capped ... ok
[INFO] [stdout] test check::tests::output_never_leaks_raw_params ... ok
[INFO] [stdout] test common::shell::tests::ifs_leaves_unrelated_vars_alone ... ok
[INFO] [stdout] test common::shell::tests::ifs_desugar_brace_and_bare ... ok
[INFO] [stdout] test corpus::parser::tests::parse_multi_turn ... ok
[INFO] [stdout] test corpus::parser::tests::parse_valid_sequence ... ok
[INFO] [stdout] test corpus::parser::tests::reject_empty_steps ... ok
[INFO] [stdout] test corpus::parser::tests::reject_invalid_severity ... ok
[INFO] [stdout] test doctor::tests::audit_mode_with_would_blocks_shows_trust_ramp ... ok
[INFO] [stdout] test doctor::tests::canary_audit_mode_denied_is_warn_not_error ... ok
[INFO] [stdout] test check::tests::paths_are_extracted_via_the_real_path ... ok
[INFO] [stdout] test doctor::tests::canary_enforce_deny_is_ok_no_decision_is_err ... ok
[INFO] [stdout] test common::shell::tests::ansi_c_octal_and_unicode ... ok
[INFO] [stdout] test doctor::tests::canary_binary_not_runnable_is_always_error ... ok
[INFO] [stdout] test check::tests::audit_mode_does_not_block_even_on_a_block_rule ... ok
[INFO] [stdout] test check::tests::enforce_mode_block_denies ... ok
[INFO] [stdout] test doctor::tests::canary_no_decision_is_error_in_audit_too ... ok
[INFO] [stdout] test doctor::tests::classify_crash_or_signal_is_not_runnable ... ok
[INFO] [stdout] test doctor::tests::classify_deny_json_wins_even_with_exit_2 ... ok
[INFO] [stdout] test doctor::tests::classify_flat_or_non_deny_decision_is_not_denied ... ok
[INFO] [stdout] test doctor::tests::classify_exit_2_block_convention_is_denied ... ok
[INFO] [stdout] test doctor::tests::classify_noop_shim_output_is_no_decision_never_denied ... ok
[INFO] [stdout] test doctor::tests::classify_old_binary_clap_error_is_not_runnable_not_denied ... ok
[INFO] [stdout] test doctor::tests::count_blocks_filters_action_and_window ... ok
[INFO] [stdout] test doctor::tests::healthy_install_passes_strict ... ok
[INFO] [stdout] test doctor::tests::hooked_command_and_binary_extraction ... ok
[INFO] [stdout] test doctor::tests::idle_healthy_install_is_not_a_failure ... ok
[INFO] [stdout] test doctor::tests::missing_hook_fails_strict ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::cwd_is_modeled_explicitly ... ok
[INFO] [stdout] test doctor::tests::classify_nested_deny_json_is_denied ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::exec_tool_alternate_exec_fields_extracted ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::command_extracted_from_non_bash_shell_tools ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::handle_missing_tool_name ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::extract_paths_from_bash_command ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::graceful_on_unknown_fields ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::parse_bash_tool_call ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::non_exec_tool_code_fields_not_treated_as_command ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::paths_extracted_from_flag_glued_and_redirected_args ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::paths_extracted_through_inner_quotes ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::paths_scanned_in_unmodeled_fields ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::parse_edit_tool_call ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::parse_read_tool_call ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::plain_bash_command_field_still_extracted ... ok
[INFO] [stdout] test evaluate::tests::allow_output_defers_to_normal_flow ... ok
[INFO] [stdout] test evaluate::tests::deny_output_uses_nested_pretooluse_contract ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::exec_tool_argv_array_script_extracted ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::exec_tool_script_field_extracted_as_command ... ok
[INFO] [stdout] test evaluate::hook_schema::tests::paths_with_shell_quoted_or_escaped_spaces_are_preserved ... ok
[INFO] [stdout] test check::tests::no_match_allows ... ok
[INFO] [stdout] test doctor::tests::probe_rejects_disarmed_and_missing_binaries ... ok
[INFO] [stdout] test check::tests::check_applies_preflight_escalation ... ok
[INFO] [stdout] test install::defaults::tests::azure_keys_block ... ok
[INFO] [stdout] test install::defaults::tests::claude_extension_surfaces_warn ... ok
[INFO] [stdout] test install::defaults::tests::agent_config_writes_warn ... ok
[INFO] [stdout] test install::defaults::tests::broadened_credential_rules_do_not_overmatch ... ok
[INFO] [stdout] test install::defaults::tests::browser_profile_data_blocks_macos_and_linux ... ok
[INFO] [stdout] test install::defaults::tests::credential_paths_block ... ok
[INFO] [stdout] test install::defaults::tests::credential_store_deltas_block ... ok
[INFO] [stdout] test install::defaults::tests::alt_http_clients_and_rsync_daemon_warn ... ok
[INFO] [stdout] test install::defaults::tests::binary_overwrite_via_redirect_or_dd_blocks ... ok
[INFO] [stdout] test install::defaults::tests::broadened_credential_stores_block ... ok
[INFO] [stdout] test install::defaults::tests::curl_dotenv_at_file_blocks ... ok
[INFO] [stdout] test install::defaults::tests::curl_redirect_and_nc_file_exfil_blocks ... ok
[INFO] [stdout] test install::defaults::tests::claude_config_dir_disarm_blocks_trailing_slash ... ok
[INFO] [stdout] test install::defaults::tests::curl_data_exfil_blocks_on_dangerous_source ... ok
[INFO] [stdout] test install::defaults::tests::config_dir_disarm_does_not_overmatch ... ok
[INFO] [stdout] test install::defaults::tests::dns_exfil_rules ... ok
[INFO] [stdout] test install::defaults::tests::config_dir_deletion_disarm_blocks ... ok
[INFO] [stdout] test install::defaults::tests::curl_plain_requests_still_allowed_after_glued_rules ... ok
[INFO] [stdout] test install::defaults::tests::gcp_sa_reference_without_key_warns ... ok
[INFO] [stdout] test install::defaults::tests::gcp_service_account_file_blocks_via_private_key_rule ... ok
[INFO] [stdout] test install::defaults::tests::curl_glued_short_flag_exfil_blocks ... ok
[INFO] [stdout] test install::defaults::tests::env_files_warn_across_depth_but_never_block ... ok
[INFO] [stdout] test install::defaults::tests::git_credential_helper_warns ... ok
[INFO] [stdout] test install::defaults::tests::github_workflow_writes_warn ... ok
[INFO] [stdout] test install::defaults::tests::google_api_key_warns ... ok
[INFO] [stdout] test install::defaults::tests::install_writes_enforce_by_default_and_never_overwrites ... ok
[INFO] [stdout] test install::defaults::tests::github_workflow_rule_does_not_overmatch ... ok
[INFO] [stdout] test install::defaults::tests::env_dump_to_file_warns_but_env_prefix_run_does_not ... ok
[INFO] [stdout] test install::defaults::tests::dscl_and_defaults_secret_reads ... ok
[INFO] [stdout] test install::defaults::tests::keychain_and_keyexport_block ... ok
[INFO] [stdout] test install::defaults::tests::kubeconfig_client_key_data_blocks ... ok
[INFO] [stdout] test install::defaults::tests::curl_secret_env_rule_is_flag_case_sensitive ... ok
[INFO] [stdout] test install::defaults::tests::interpreter_read_of_non_credential_file_allowed ... ok
[INFO] [stdout] test install::defaults::tests::keychain_and_keyexport_do_not_overmatch ... ok
[INFO] [stdout] test install::defaults::tests::curl_secret_in_url_or_header_warns ... ok
[INFO] [stdout] test install::defaults::tests::onepassword_group_container_blocks ... ok
[INFO] [stdout] test install::defaults::tests::nc_rule_blocks_redirect_after_quoted_or_escaped_separators ... ok
[INFO] [stdout] test install::defaults::tests::nc_rule_ignores_redirect_in_a_later_command ... ok
[INFO] [stdout] test install::defaults::tests::git_transport_exfil_rules ... ok
[INFO] [stdout] test install::defaults::tests::interpreter_runtime_credential_read_blocks ... ok
[INFO] [stdout] test install::defaults::tests::ordinary_actions_allowed ... ok
[INFO] [stdout] test install::defaults::tests::persistence_unit_writes_warn ... ok
[INFO] [stdout] test install::defaults::tests::egress_binaries_warn ... ok
[INFO] [stdout] test install::defaults::tests::plain_curl_post_warns_not_blocks ... ok
[INFO] [stdout] test install::defaults::tests::project_local_kubeconfig_warns_not_blocks ... ok
[INFO] [stdout] test install::defaults::tests::printenv_named_secret_warns ... ok
[INFO] [stdout] test install::defaults::tests::publish_commands_warn_including_monorepo_forms ... ok
[INFO] [stdout] test install::defaults::tests::self_protect_blocks_policy_writes ... ok
[INFO] [stdout] test install::defaults::tests::self_protect_does_not_overmatch_siblings ... ok
[INFO] [stdout] test install::defaults::tests::self_protect_does_not_block_audit_log_reads ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_binary_paths_block ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_binary_literal_path_rm_blocks ... ok
[INFO] [stdout] test install::defaults::tests::publish_regex_does_not_overmatch ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_install_over_binary_blocks ... ok
[INFO] [stdout] test install::defaults::tests::plain_get_downloads_stay_allowed ... ok
[INFO] [stdout] test install::defaults::tests::secret_blocks_even_in_warn_path ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_tamper_by_name_blocks ... ok
[INFO] [stdout] test install::defaults::tests::pipe_to_filter_naming_a_shell_is_not_blocked ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_disarm_does_not_overmatch_dev_work ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_legit_use_not_blocked ... ok
[INFO] [stdout] test install::defaults::tests::root_deletion_blocks_later_absolute_operands ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_disarm_verbs_block ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_uninstall_blocks ... ok
[INFO] [stdout] test install::defaults::tests::pipe_to_shell_still_blocks_after_curl_rules ... ok
[INFO] [stdout] test install::defaults::tests::vault_hvs_warns_not_blocks ... ok
[INFO] [stdout] test install::hooks::tests::atomic_write_writes_content_and_leaves_no_temp ... ok
[INFO] [stdout] test install::hooks::tests::install_creates_new_settings ... ok
[INFO] [stdout] test install::hooks::tests::install_is_idempotent ... ok
[INFO] [stdout] test install::hooks::tests::install_post_hook_registers_posttooluse_and_is_idempotent ... ok
[INFO] [stdout] test install::hooks::tests::install_preserves_existing_hooks ... ok
[INFO] [stdout] test install::hooks::tests::uninstall_no_settings_is_ok ... ok
[INFO] [stdout] test install::hooks::tests::uninstall_removes_both_pre_and_post_sentinel_hooks ... ok
[INFO] [stdout] test install::hooks::tests::uninstall_removes_sentinel_only ... ok
[INFO] [stdout] test lint::tests::broad_allow_is_a_warning ... ok
[INFO] [stdout] test lint::tests::duplicate_pattern_is_an_unreachable_warning ... ok
[INFO] [stdout] test lint::tests::invalid_regex_is_an_error ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_tamper_rule_still_blocks_final_component_binary ... ok
[INFO] [stdout] test lint::tests::shipped_default_policy_is_clean ... ok
[INFO] [stdout] test lint::tests::two_different_patterns_that_both_match_are_not_flagged ... ok
[INFO] [stdout] test policy::matcher::tests::allow_does_not_deglob_glob_candidate_into_allow_list ... ok
[INFO] [stdout] test policy::matcher::tests::canon_absolute_form_hits_tilde_rule ... ok
[INFO] [stdout] test policy::matcher::tests::canon_case_insensitive ... ok
[INFO] [stdout] test policy::matcher::tests::allow_star_stays_strict_deny_star_is_recursive ... ok
[INFO] [stdout] test policy::matcher::tests::canon_does_not_overmatch_unrelated_paths ... ok
[INFO] [stdout] test policy::matcher::tests::canon_double_slash_and_dotdot ... ok
[INFO] [stdout] test policy::matcher::tests::canon_pattern_resolves_symlinked_dir ... ok
[INFO] [stdout] test policy::matcher::tests::canon_home_var_and_tilde_user ... ok
[INFO] [stdout] test policy::matcher::tests::command_regex_pipe_to_shell ... ok
[INFO] [stdout] test policy::matcher::tests::command_regex_rm_rf ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_bare_dir_hits_aws_rule ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_bracket_class_bare_dir_hits_aws_rule ... ok
[INFO] [stdout] test policy::matcher::tests::deny_brace_expansion_matches_any_target_but_allow_requires_all ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_bracket_class_hits_ssh_rule ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_bracket_class_false_positives_stay_allowed ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_bracket_class_negation_and_range ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_does_not_break_exact_rule_match ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_disarms_self_protect ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_question_mark_hits_ssh_rule ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_star_hits_ssh_rule ... ok
[INFO] [stdout] test policy::matcher::tests::glob_dir_rule_matches_subtree_and_self ... ok
[INFO] [stdout] test policy::matcher::tests::glob_candidate_false_positives_stay_allowed ... ok
[INFO] [stdout] test policy::matcher::tests::glob_exact_match ... ok
[INFO] [stdout] test policy::matcher::tests::glob_double_star_matches_recursive ... ok
[INFO] [stdout] test policy::matcher::tests::glob_question_mark ... ok
[INFO] [stdout] test policy::matcher::tests::glob_star_matches_filename ... ok
[INFO] [stdout] test policy::matcher::tests::secret_alm_and_isolate_injected_github_token_matches ... ok
[INFO] [stdout] test policy::matcher::tests::normalize_canonicalizes_rm_flag_variants ... ok
[INFO] [stdout] test policy::matcher::tests::secret_aws_key ... ok
[INFO] [stdout] test policy::matcher::tests::secret_benign_normalized_text_does_not_newly_match ... ok
[INFO] [stdout] test policy::matcher::tests::secret_fullwidth_aws_key_matches ... ok
[INFO] [stdout] test policy::matcher::tests::secret_github_token ... ok
[INFO] [stdout] test policy::matcher::tests::secret_entity_encoded_aws_key_matches ... ok
[INFO] [stdout] test policy::matcher::tests::secret_pop_directional_isolate_injected_aws_key_matches ... ok
[INFO] [stdout] test policy::matcher::tests::secret_raw_match_still_works_unchanged ... ok
[INFO] [stdout] test policy::matcher::tests::secret_unicode_tag_chars_injected_aws_key_matches ... ok
[INFO] [stdout] test policy::matcher::tests::secret_zero_width_injected_github_token_matches ... ok
[INFO] [stdout] test policy::matcher::tests::secret_zero_width_injected_aws_key_matches ... ok
[INFO] [stdout] test policy::schema::tests::parse_full_policy ... ok
[INFO] [stdout] test policy::schema::tests::reject_invalid_toml ... ok
[INFO] [stdout] test policy::schema::tests::parse_minimal_policy ... ok
[INFO] [stdout] test policy::tests::allow_list_accepts_brace_expansions_covered_by_different_rules ... ok
[INFO] [stdout] test policy::tests::allow_list_fails_closed_when_brace_expansion_exceeds_cap ... ok
[INFO] [stdout] test policy::tests::allow_list_checks_each_brace_expanded_runtime_path ... ok
[INFO] [stdout] test policy::tests::allow_list_star_is_not_widened_to_subtree ... ok
[INFO] [stdout] test policy::tests::allow_list_permits_src ... ok
[INFO] [stdout] test policy::tests::block_secret_overrides_warn_tier_path ... ok
[INFO] [stdout] test policy::tests::allow_list_warns_outside_src ... ok
[INFO] [stdout] test policy::tests::deny_command_blocks_rm_rf ... ok
[INFO] [stdout] test policy::tests::command_block_overrides_warn_tier_path ... ok
[INFO] [stdout] test policy::tests::deny_command_warns_pipe_to_shell ... ok
[INFO] [stdout] test policy::tests::deny_path_blocks_ssh ... ok
[INFO] [stdout] test policy::tests::deny_path_blocks_aws ... ok
[INFO] [stdout] test policy::tests::deny_secret_blocks_aws_key ... ok
[INFO] [stdout] test policy::tests::deny_secret_normalized_match_on_later_rule ... ok
[INFO] [stdout] test policy::tests::deny_tools_blocks_by_name_glob ... ok
[INFO] [stdout] test policy::tests::deny_tools_warn_is_overridden_by_a_command_block ... ok
[INFO] [stdout] test policy::tests::fail_closed_posture_from_on_failure ... ok
[INFO] [stdout] test policy::tests::no_rules_matched_allows ... ok
[INFO] [stdout] test policy::tests::deny_takes_precedence_over_allow ... ok
[INFO] [stdout] test policy_diff::tests::format_rule_is_pasteable_toml ... ok
[INFO] [stdout] test policy_diff::tests::identity_is_section_plus_pattern ... ok
[INFO] [stdout] test policy_diff::tests::regex_rules_are_single_quoted_to_match_the_file ... ok
[INFO] [stdout] test policy_diff::tests::reports_only_rules_absent_from_user ... ok
[INFO] [stdout] test policy_diff::tests::a_bare_policy_is_missing_the_whole_default_pack ... ok
[INFO] [stdout] test preflight::tests::allows_clean_manifest_with_registry_deps_and_no_scripts ... ok
[INFO] [stdout] test preflight::tests::allows_ordinary_lifecycle_scripts ... ok
[INFO] [stdout] test policy_diff::tests::up_to_date_policy_has_no_missing_rules ... ok
[INFO] [stdout] test preflight::tests::apply_allows_install_with_clean_manifest ... ok
[INFO] [stdout] test preflight::tests::allows_repository_url_plus_ordinary_postinstall ... ok
[INFO] [stdout] test preflight::tests::apply_blocks_install_when_cwd_manifest_is_malicious ... ok
[INFO] [stdout] test preflight::tests::apply_does_nothing_for_non_install_command ... ok
[INFO] [stdout] test preflight::tests::apply_does_nothing_when_cwd_absent ... ok
[INFO] [stdout] test preflight::tests::apply_does_nothing_when_manifest_unparseable ... ok
[INFO] [stdout] test preflight::tests::apply_does_nothing_when_manifest_missing ... ok
[INFO] [stdout] test preflight::tests::apply_follows_cd_into_subdir_for_the_real_manifest ... ok
[INFO] [stdout] test preflight::tests::apply_follows_prefix_flag_for_the_real_manifest ... ok
[INFO] [stdout] test preflight::tests::apply_escalates_allow_to_warn ... ok
[INFO] [stdout] test preflight::tests::apply_ignores_trailing_cd_after_install ... ok
[INFO] [stdout] test preflight::tests::apply_never_downgrades_an_existing_block ... ok
[INFO] [stdout] test preflight::tests::apply_skips_when_install_dir_is_not_literal ... ok
[INFO] [stdout] test preflight::tests::apply_ignores_unrelated_later_prefix_argument ... ok
[INFO] [stdout] test preflight::tests::blocks_other_remote_exec_shapes ... ok
[INFO] [stdout] test preflight::tests::blocks_postinstall_curl_pipe_to_shell ... ok
[INFO] [stdout] test preflight::tests::does_not_trigger_on_non_install_commands ... ok
[INFO] [stdout] test preflight::tests::newline_separated_non_install_still_does_not_trigger ... ok
[INFO] [stdout] test preflight::tests::triggers_on_newline_separated_install ... ok
[INFO] [stdout] test preflight::tests::trusted_non_registry_specs_do_not_warn ... ok
[INFO] [stdout] test preflight::tests::url_dep_without_any_lifecycle_script_is_allowed ... ok
[INFO] [stdout] test preflight::tests::warns_on_git_http_dep_with_a_lifecycle_script ... ok
[INFO] [stdout] test preflight::tests::triggers_on_install_like_commands ... ok
[INFO] [stdout] test selfprotect::tests::autorun_commands_checks_all_path_aliases ... ok
[INFO] [stdout] test selfprotect::tests::autorun_commands_extracted_across_config_surfaces ... ok
[INFO] [stdout] test preflight::tests::warns_on_url_dep_with_a_lifecycle_script ... ok
[INFO] [stdout] test selfprotect::tests::edit_not_touching_marker_is_not_escalated ... ok
[INFO] [stdout] test selfprotect::tests::edit_removing_marker_escalates ... ok
[INFO] [stdout] test selfprotect::tests::existing_block_is_left_alone ... ok
[INFO] [stdout] test selfprotect::tests::hook_removal_detected_in_a_later_path_alias ... ok
[INFO] [stdout] test selfprotect::tests::hook_installed_in_file_per_file_semantics ... ok
[INFO] [stdout] test selfprotect::tests::live_hook_detection_covers_settings_local_json ... ok
[INFO] [stdout] test selfprotect::tests::live_hook_detection_covers_non_claude_target_configs ... ok
[INFO] [stdout] test selfprotect::tests::multiedit_not_touching_marker_is_not_escalated ... ok
[INFO] [stdout] test selfprotect::tests::multiedit_removing_marker_escalates ... ok
[INFO] [stdout] test selfprotect::tests::marker_outside_honored_hook_shape_counts_as_removed ... ok
[INFO] [stdout] test selfprotect::tests::no_installed_hook_means_no_escalation ... ok
[INFO] [stdout] test selfprotect::tests::non_claude_agent_edit_removing_marker_escalates ... ok
[INFO] [stdout] test selfprotect::tests::non_claude_agent_hook_configs_are_protected_too ... ok
[INFO] [stdout] test selfprotect::tests::non_settings_write_is_not_escalated ... ok
[INFO] [stdout] test selfprotect::tests::read_of_settings_is_not_escalated ... ok
[INFO] [stdout] test selfprotect::tests::settings_path_matching_is_case_insensitive ... ok
[INFO] [stdout] test selfprotect::tests::settings_path_suffix_matching ... ok
[INFO] [stdout] test selfprotect::tests::write_dropping_hook_escalates_to_block ... ok
[INFO] [stdout] test selfprotect::tests::write_of_malformed_json_escalates ... ok
[INFO] [stdout] test selfprotect::tests::settings_local_json_is_protected_too ... ok
[INFO] [stdout] test selfprotect::tests::write_preserving_hook_is_not_escalated ... ok
[INFO] [stdout] test install::defaults::tests::shell_obfuscation_does_not_overmatch ... ok
[INFO] [stdout] test verify::tests::verify_detects_a_disarmed_policy ... ok
[INFO] [stdout] test install::defaults::tests::shell_obfuscation_evasions_block ... ok
[INFO] [stdout] test verify::tests::absolute_deep_env_is_caught ... ok
[INFO] [stdout] test install::defaults::tests::sentinel_tamper_rule_does_not_overmatch_dev_checkouts ... ok
[INFO] [stdout] test install::defaults::tests::settings_json_read_is_not_blocked ... ok
[INFO] [stdout] test install::defaults::tests::settings_overwrite_and_line_editor_block ... ok
[INFO] [stdout] test install::defaults::tests::settings_json_shell_strip_blocks ... ok
[INFO] [stdout] test verify::tests::bundled_default_policy_passes_all_cases ... ok
[INFO] [stderr]      Running tests/audit_mcp.rs (/opt/rustwide/target/debug/build/sentinel-guard/4f57ba5d2ae8f826/out/audit_mcp-4f57ba5d2ae8f826)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 269 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 130.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test no_servers_configured_is_clean ... ok
[INFO] [stdout] test tofu_baseline_then_flags_a_new_server ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/doctor_canary.rs (/opt/rustwide/target/debug/build/sentinel-guard/8a2178495eda1667/out/doctor_canary-8a2178495eda1667)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test evaluate_normal_path_still_logs_and_denies_in_enforce_mode ... ok
[INFO] [stdout] test spoof_shim_that_noops_evaluate_is_caught ... ok
[INFO] [stdout] test real_binary_enforce_install_is_healthy_and_does_not_pollute_audit_trail ... ok
[INFO] [stdout] test evaluate_normal_path_still_logs_and_never_blocks_in_audit_mode ... ok
[INFO] [stdout] test audit_mode_real_binary_reads_would_deny_warn_not_err ... ok
[INFO] [stdout] test evaluate_canary_emits_allow_for_benign_input ... ok
[INFO] [stdout] test evaluate_canary_reports_would_be_deny_in_audit_mode_without_logging ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/generic_adapter.rs (/opt/rustwide/target/debug/build/sentinel-guard/3750036ae3269fbd/out/generic_adapter-3750036ae3269fbd)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test generic_allow_emits_empty_and_exit_0 ... ok
[INFO] [stdout] test gemini_block_emits_decision_deny ... ok
[INFO] [stdout] test codex_block_emits_claude_code_nested_shape ... ok
[INFO] [stdout] test generic_block_emits_decision_block_and_exit_2 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/hook_contract.rs (/opt/rustwide/target/debug/build/sentinel-guard/b66be4d886cfcab2/out/hook_contract-b66be4d886cfcab2)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test blocked_call_emits_nested_pretooluse_deny ... ok
[INFO] [stderr]      Running tests/hook_injection.rs (/opt/rustwide/target/debug/build/sentinel-guard/e14f87c9d7bc45a7/out/hook_injection-e14f87c9d7bc45a7)
[INFO] [stdout] test allowed_call_defers_to_normal_flow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test mcp_config_write_with_shadowing_path_alias_is_blocked ... ok
[INFO] [stdout] test settings_write_with_benign_hook_is_not_blocked ... ok
[INFO] [stdout] test settings_write_injecting_malicious_hook_is_blocked ... ok
[INFO] [stdout] test mcp_config_write_with_benign_server_is_not_blocked ... ok
[INFO] [stdout] test mcp_config_write_with_malicious_server_is_blocked ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/post_tooluse.rs (/opt/rustwide/target/debug/build/sentinel-guard/5a745a69fe556ffb/out/post_tooluse-5a745a69fe556ffb)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test degraded_input_stays_quiet_and_never_blocks ... ok
[INFO] [stdout] test secret_in_result_emits_detection_nudge ... ok
[INFO] [stdout] test benign_result_emits_nothing ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544", kill_on_drop: false }`
[INFO] [stdout] 3551668a6fbb5ba35014aafd9758fde2b1cd636ffa6be69f59d7e663c73d9544
