[INFO] fetching crate vellaveto-engine 6.1.1... [INFO] testing vellaveto-engine-6.1.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate vellaveto-engine 6.1.1 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate vellaveto-engine 6.1.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate vellaveto-engine 6.1.1 [INFO] tweaked toml for crates.io crate vellaveto-engine 6.1.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate vellaveto-engine 6.1.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate vellaveto-engine 6.1.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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8e7f572d7dbaa16fe8a16491ad50036ec1d60c890ce3ed164c3320f5d11fa8fa [INFO] running `Command { std: "docker" "start" "-a" "8e7f572d7dbaa16fe8a16491ad50036ec1d60c890ce3ed164c3320f5d11fa8fa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8e7f572d7dbaa16fe8a16491ad50036ec1d60c890ce3ed164c3320f5d11fa8fa", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8e7f572d7dbaa16fe8a16491ad50036ec1d60c890ce3ed164c3320f5d11fa8fa", kill_on_drop: false }` [INFO] [stdout] 8e7f572d7dbaa16fe8a16491ad50036ec1d60c890ce3ed164c3320f5d11fa8fa [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 91d2a0b373c62c0f1482da392cc342af6deef0008ec9e44a1aa860c735621139 [INFO] running `Command { std: "docker" "start" "-a" "91d2a0b373c62c0f1482da392cc342af6deef0008ec9e44a1aa860c735621139", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling stable_deref_trait v1.2.1 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tinyvec v1.10.0 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling utf8_iter v1.0.4 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [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 zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling metrics v0.24.3 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling globset v0.4.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling vellaveto-types v6.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling vellaveto-engine v6.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 00s [INFO] running `Command { std: "docker" "inspect" "91d2a0b373c62c0f1482da392cc342af6deef0008ec9e44a1aa860c735621139", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "91d2a0b373c62c0f1482da392cc342af6deef0008ec9e44a1aa860c735621139", kill_on_drop: false }` [INFO] [stdout] 91d2a0b373c62c0f1482da392cc342af6deef0008ec9e44a1aa860c735621139 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fe8414426813f286ae5450158be26765027b3f898c7aec938d2986af47f2edb0 [INFO] running `Command { std: "docker" "start" "-a" "fe8414426813f286ae5450158be26765027b3f898c7aec938d2986af47f2edb0", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling vellaveto-types v6.1.1 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling metrics v0.24.3 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Compiling vellaveto-engine v6.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 39s [INFO] running `Command { std: "docker" "inspect" "fe8414426813f286ae5450158be26765027b3f898c7aec938d2986af47f2edb0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe8414426813f286ae5450158be26765027b3f898c7aec938d2986af47f2edb0", kill_on_drop: false }` [INFO] [stdout] fe8414426813f286ae5450158be26765027b3f898c7aec938d2986af47f2edb0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ef4e6539c48f6e657663fe7198968d7863f2b7b6c6952cb5ba39ba59674340e3 [INFO] running `Command { std: "docker" "start" "-a" "ef4e6539c48f6e657663fe7198968d7863f2b7b6c6952cb5ba39ba59674340e3", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vellaveto_engine-962960d10609102a) [INFO] [stdout] [INFO] [stdout] running 1487 tests [INFO] [stdout] test abac::tests::test_compile_empty_policies ... ok [INFO] [stdout] test abac::tests::test_cycle_in_membership_terminates ... ok [INFO] [stdout] test abac::tests::test_entity_store_group_membership ... ok [INFO] [stdout] test abac::tests::test_compile_valid_policies ... ok [INFO] [stdout] test abac::tests::test_entity_store_lookup ... ok [INFO] [stdout] test abac::tests::test_entity_store_lookup_normalizes_unicode_keys ... ok [INFO] [stdout] test abac::tests::test_entity_store_memberships_normalize_parent_keys ... ok [INFO] [stdout] test abac::tests::test_diamond_membership_no_exponential_blowup ... ok [INFO] [stdout] test abac::tests::test_entity_store_transitive_membership_bounded ... ok [INFO] [stdout] test abac::tests::test_evaluate_action_wildcard ... ok [INFO] [stdout] test abac::tests::test_evaluate_action_tool_function_match ... ok [INFO] [stdout] test abac::tests::test_evaluate_condition_eq ... ok [INFO] [stdout] test abac::tests::test_evaluate_condition_gt_lt ... ok [INFO] [stdout] test abac::tests::test_evaluate_condition_ne_not_in ... ok [INFO] [stdout] test abac::tests::test_evaluate_condition_in ... ok [INFO] [stdout] test abac::tests::test_evaluate_condition_starts_with ... ok [INFO] [stdout] test abac::tests::test_evaluate_principal_claims_match ... ok [INFO] [stdout] test abac::tests::test_evaluate_principal_id_glob ... ok [INFO] [stdout] test abac::tests::test_evaluate_principal_type_match ... ok [INFO] [stdout] test abac::tests::test_evaluate_resource_domain_match ... ok [INFO] [stdout] test abac::tests::test_evaluate_resource_path_match ... ok [INFO] [stdout] test abac::tests::test_evaluate_with_risk_score_threshold ... ok [INFO] [stdout] test abac::tests::test_evaluate_forbid_overrides_permit ... ok [INFO] [stdout] test abac::tests::test_find_conflicts_detected ... ok [INFO] [stdout] test abac::tests::test_evaluate_fail_closed_missing_principal ... ok [INFO] [stdout] test abac::tests::test_evaluate_no_match_returns_nomatch ... ok [INFO] [stdout] test abac::tests::test_evaluate_multiple_conditions_all_must_pass ... ok [INFO] [stdout] test abac::tests::test_find_conflicts_none ... ok [INFO] [stdout] test abac::tests::test_evaluate_permit_matches ... ok [INFO] [stdout] test abac::tests::test_p1_5_exact_path_still_works_without_glob ... ok [INFO] [stdout] test abac::tests::test_r215_004_principal_id_homoglyph_normalization ... ok [INFO] [stdout] test abac::tests::test_p1_5_glob_single_star_path_matching ... ok [INFO] [stdout] test abac::tests::test_p1_5_glob_question_mark_path_matching ... ok [INFO] [stdout] test abac::tests::test_evaluate_priority_ordering ... ok [INFO] [stdout] test abac::tests::test_p1_5_glob_double_star_path_matching ... ok [INFO] [stdout] test abac::tests::test_r215_006_compare_numbers_infinity_guard ... ok [INFO] [stdout] test abac::tests::test_r215_006_compare_numbers_nan_guard ... ok [INFO] [stdout] test abac::tests::test_r215_007_principal_type_homoglyph_normalization ... ok [INFO] [stdout] test abac::tests::test_r215_005_principal_claims_homoglyph_normalization ... ok [INFO] [stdout] test abac::tests::test_evaluate_resource_tags_match ... ok [INFO] [stdout] test abac::tests::test_r237_eng3_abac_ne_cyrillic_homoglyph_treated_equal ... ok [INFO] [stdout] test abac::tests::test_r237_eng5_abac_in_case_insensitive_match ... ok [INFO] [stdout] test abac::tests::test_r237_eng5_abac_contains_homoglyph_matches ... ok [INFO] [stdout] test abac::tests::test_r237_eng5_abac_notin_homoglyph_is_found ... ok [INFO] [stdout] test abac::tests::test_r46_001_path_traversal_normalized_in_resource_match ... ok [INFO] [stdout] test abac::tests::test_r46_002_domain_case_normalized_in_resource_match ... ok [INFO] [stdout] test abac::tests::test_r46_008_empty_field_condition_rejected_at_compile ... ok [INFO] [stdout] test abac::tests::test_wide_diamond_membership_completes_quickly ... ok [INFO] [stdout] test acis::tests::test_fingerprint_action_helper ... ok [INFO] [stdout] test acis::tests::test_fingerprint_deterministic_order_independence ... ok [INFO] [stdout] test acis::tests::test_fingerprint_differs_on_function ... ok [INFO] [stdout] test acis::tests::test_fingerprint_differs_on_tool ... ok [INFO] [stdout] test acis::tests::test_fingerprint_includes_paths_and_domains ... ok [INFO] [stdout] test acis::tests::test_fingerprint_is_64_hex_chars ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_allow_under_limit ... ok [INFO] [stdout] test abac::tests::test_r237_eng3_abac_eq_cyrillic_homoglyph_matches ... ok [INFO] [stdout] test abac::tests::test_r237_eng5_abac_startswith_case_normalized ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_clear_anomaly ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_anomaly_minimum_rate_one ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_anomaly_reduces_rate ... ok [INFO] [stdout] test abac::tests::test_p1_5_glob_bracket_pattern ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_clamp_nan_multiplier ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_clear_anomaly_nonexistent ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_default_config ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_get_state_none ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_saturating_counters ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_multiple_entities ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_stats_basic ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_stats_with_anomaly ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_deny_above_burst ... ok [INFO] [stdout] test agent_baseline::tests::test_baseline_not_established_no_findings ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_throttle_above_base ... ok [INFO] [stdout] test agent_baseline::tests::test_known_tool_no_finding ... ok [INFO] [stdout] test agent_baseline::tests::test_baseline_established_after_min_calls ... ok [INFO] [stdout] test agent_baseline::tests::test_novel_tool_deviation ... ok [INFO] [stdout] test agent_baseline::tests::test_sink_class_deviation ... ok [INFO] [stdout] test behavioral::tests::test_absolute_ceiling_zero_does_not_produce_infinity ... ok [INFO] [stdout] test behavioral::tests::test_agent_eviction_by_session_count ... ok [INFO] [stdout] test behavioral::tests::test_anomaly_alert_display ... ok [INFO] [stdout] test behavioral::tests::test_anomaly_after_baseline_established ... ok [INFO] [stdout] test behavioral::tests::test_agent_sessions_none_for_unknown ... ok [INFO] [stdout] test behavioral::tests::test_behavioral_epsilon_ema_triggers_anomaly ... ok [INFO] [stdout] test behavioral::tests::test_behavioral_error_display ... ok [INFO] [stdout] test behavioral::tests::test_behavioral_large_ema_large_count_no_overflow ... ok [INFO] [stdout] test behavioral::tests::test_behavioral_u64_max_count_does_not_panic ... ok [INFO] [stdout] test behavioral::tests::test_check_session_skips_bidi_override_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_check_session_skips_control_char_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_check_session_skips_oversized_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_check_with_zero_count_skipped ... ok [INFO] [stdout] test behavioral::tests::test_behavioral_update_counter_saturates ... ok [INFO] [stdout] test behavioral::tests::test_config_accessor ... ok [INFO] [stdout] test behavioral::tests::test_config_validate_invalid_alpha ... ok [INFO] [stdout] test behavioral::tests::test_config_validate_invalid_max_agents ... ok [INFO] [stdout] test behavioral::tests::test_config_validate_invalid_max_tools ... ok [INFO] [stdout] test behavioral::tests::test_config_validate_invalid_threshold ... ok [INFO] [stdout] test behavioral::tests::test_config_validate_valid ... ok [INFO] [stdout] test behavioral::tests::test_critical_severity ... ok [INFO] [stdout] test behavioral::tests::test_check_session_rejects_oversized_call_counts ... ok [INFO] [stdout] test behavioral::tests::test_ema_decay_unused_tools ... ok [INFO] [stdout] test behavioral::tests::test_ema_decay_does_not_update_last_active ... ok [INFO] [stdout] test behavioral::tests::test_ema_first_observation_initializes ... ok [INFO] [stdout] test behavioral::tests::test_ema_non_finite_clamp ... ok [INFO] [stdout] test behavioral::tests::test_empty_call_counts_no_panic ... ok [INFO] [stdout] test behavioral::tests::test_from_snapshot_accepts_clean_keys ... ok [INFO] [stdout] test behavioral::tests::test_ema_update_formula ... ok [INFO] [stdout] test behavioral::tests::test_from_snapshot_rejects_bidi_override_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_from_snapshot_rejects_control_char_agent_id ... ok [INFO] [stdout] test behavioral::tests::test_from_snapshot_rejects_unicode_format_char_agent_id ... ok [INFO] [stdout] test behavioral::tests::test_from_snapshot_rejects_control_char_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_multiple_agents_independent ... ok [INFO] [stdout] test behavioral::tests::test_multiple_tools_single_session ... ok [INFO] [stdout] test behavioral::tests::test_new_tracker_default_config ... ok [INFO] [stdout] test behavioral::tests::test_no_anomaly_during_agent_cold_start ... ok [INFO] [stdout] test behavioral::tests::test_gradual_increase_adapts ... ok [INFO] [stdout] test behavioral::tests::test_no_anomaly_for_normal_usage ... ok [INFO] [stdout] test behavioral::tests::test_record_session_accepts_valid_tool_key_alongside_invalid ... ok [INFO] [stdout] test behavioral::tests::test_record_session_rejects_control_char_agent_id ... ok [INFO] [stdout] test behavioral::tests::test_record_session_rejects_oversized_agent_id ... ok [INFO] [stdout] test behavioral::tests::test_record_session_skips_control_char_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_record_session_skips_unicode_format_char_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_record_session_skips_oversized_tool_key ... ok [INFO] [stdout] test behavioral::tests::test_record_session_tool_key_at_max_len_accepted ... ok [INFO] [stdout] test behavioral::tests::test_new_tool_no_alert ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_multi_agent_roundtrip ... ok [INFO] [stdout] test behavioral::tests::test_no_anomaly_during_tool_cold_start ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_rejects_infinite_ema ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_rejects_nan_ema ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_preserves_update_counter ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_rejects_negative_ema ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_restored_produces_same_alerts ... ok [INFO] [stdout] test behavioral::tests::test_saturating_session_count ... ok [INFO] [stdout] test behavioral::tests::test_tool_count_zero_for_unknown ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_roundtrip ... ok [INFO] [stdout] test behavioral::tests::test_tool_eviction_by_last_active ... ok [INFO] [stdout] test behavioral::tests::test_warning_severity ... ok [INFO] [stdout] test behavioral::tests::test_unknown_agent_no_alerts ... ok [INFO] [stdout] test behavioral::tests::test_zero_counts_not_recorded ... ok [INFO] [stdout] test cache::tests::test_cache_hit_and_miss ... ok [INFO] [stdout] test cache::tests::test_cacheable_context_with_identity ... ok [INFO] [stdout] test cache::tests::test_cache_key_collision_resistance ... ok [INFO] [stdout] test cache::tests::test_context_dependent_not_cached ... ok [INFO] [stdout] test cache::tests::test_context_dependent_session_state_not_cached ... ok [INFO] [stdout] test cache::tests::test_context_dependent_timestamp_not_cached ... ok [INFO] [stdout] test cache::tests::test_debug_does_not_leak_entries ... ok [INFO] [stdout] test cache::tests::test_deny_verdict_cached ... ok [INFO] [stdout] test cache::tests::test_invalidation_on_policy_change ... ok [INFO] [stdout] test cache::tests::test_is_empty ... ok [INFO] [stdout] test cache::tests::test_lru_eviction ... ok [INFO] [stdout] test cache::tests::test_domain_order_independence ... ok [INFO] [stdout] test cache::tests::test_max_entries_bound ... ok [INFO] [stdout] test cache::tests::test_multiple_invalidations ... ok [INFO] [stdout] test cache::tests::test_path_order_independence ... ok [INFO] [stdout] test cache::tests::test_overwrite_existing_entry ... ok [INFO] [stdout] test cache::tests::test_r237_backward_compat_no_risk_score ... ok [INFO] [stdout] test cache::tests::test_r228_resolved_ips_in_cache_key ... ok [INFO] [stdout] test cache::tests::test_r237_risk_score_prevents_caching ... ok [INFO] [stdout] test cache::tests::test_r245_parameters_in_cache_key ... ok [INFO] [stdout] test cache::tests::test_r227_cache_key_case_insensitive ... ok [INFO] [stdout] test cache::tests::test_r245_same_parameters_cache_hit ... ok [INFO] [stdout] test cache::tests::test_require_approval_verdict_cached ... ok [INFO] [stdout] test cache::tests::test_stats_tracking ... ok [INFO] [stdout] test cache::tests::test_ttl_bounds_clamped ... ok [INFO] [stdout] test cascade_graph::tests::test_cascade_detected ... ok [INFO] [stdout] test cascade_graph::tests::test_single_failure_no_cascade ... ok [INFO] [stdout] test cascade_graph::tests::test_total_failures ... ok [INFO] [stdout] test cascading::tests::test_chain_depth_nonexistent_returns_zero ... ok [INFO] [stdout] test cascading::tests::test_check_pipeline_disabled_ok ... ok [INFO] [stdout] test cascading::tests::test_check_pipeline_healthy_ok ... ok [INFO] [stdout] test cascading::tests::test_config_deny_unknown_fields ... ok [INFO] [stdout] test cascading::tests::test_config_serialization_roundtrip ... ok [INFO] [stdout] test cascading::tests::test_config_validate_above_one_error_rate_rejected ... ok [INFO] [stdout] test cascading::tests::test_config_validate_default_ok ... ok [INFO] [stdout] test cascading::tests::test_config_validate_excessive_depth_rejected ... ok [INFO] [stdout] test cascading::tests::test_config_validate_nan_error_rate_rejected ... ok [INFO] [stdout] test cascading::tests::test_config_validate_negative_error_rate_rejected ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_anomaly_expires ... ok [INFO] [stdout] test cascading::tests::test_config_validate_zero_depth_rejected ... ok [INFO] [stdout] test cascading::tests::test_config_validate_zero_break_duration_rejected ... ok [INFO] [stdout] test cascading::tests::test_config_validate_zero_window_rejected ... ok [INFO] [stdout] test cascading::tests::test_enter_chain_depth_exceeded_denied ... ok [INFO] [stdout] test cascading::tests::test_enter_chain_disabled_returns_zero ... ok [INFO] [stdout] test cascading::tests::test_enter_chain_increments_depth ... ok [INFO] [stdout] test cascading::tests::test_enter_chain_starts_at_depth_one ... ok [INFO] [stdout] test cascading::tests::test_exit_chain_decrements_depth ... ok [INFO] [stdout] test cascading::tests::test_exit_chain_nonexistent_returns_zero ... ok [INFO] [stdout] test cascading::tests::test_exit_chain_removes_at_zero ... ok [INFO] [stdout] test cascading::tests::test_is_pipeline_broken_nonexistent_false ... ok [INFO] [stdout] test cascading::tests::test_pipeline_error_rate_computed_correctly ... ok [INFO] [stdout] test cascading::tests::test_pipeline_error_rate_nonexistent_returns_zero ... ok [INFO] [stdout] test cascading::tests::test_pipeline_summary_empty ... ok [INFO] [stdout] test cascading::tests::test_pipeline_summary_with_data ... ok [INFO] [stdout] test cascading::tests::test_r229_pipeline_capacity_returns_error_not_ok ... ok [INFO] [stdout] test cascading::tests::test_r245_config_validate_one_min_window_events_accepted ... ok [INFO] [stdout] test cascading::tests::test_r245_config_validate_zero_min_window_events_rejected ... ok [INFO] [stdout] test cascading::tests::test_r245_pipeline_broken_display_redacts_error_rate ... ok [INFO] [stdout] test cascading::tests::test_record_pipeline_error_breaks_circuit ... ok [INFO] [stdout] test cascading::tests::test_record_pipeline_mostly_success_no_break ... ok [INFO] [stdout] test cascading::tests::test_summary_deny_unknown_fields ... ok [INFO] [stdout] test cascading::tests::test_summary_serialization_roundtrip ... ok [INFO] [stdout] test cascading::tests::test_validate_chain_id_empty_rejected ... ok [INFO] [stdout] test cascading::tests::test_validate_pipeline_id_control_chars_rejected ... ok [INFO] [stdout] test cascading::tests::test_validate_pipeline_id_empty_rejected ... ok [INFO] [stdout] test cascading::tests::test_validate_pipeline_id_too_long_rejected ... ok [INFO] [stdout] test channel_separation_tests::tests::test_clean_session_no_restrictions ... ok [INFO] [stdout] test channel_separation_tests::tests::test_detection_and_source_taint_stack ... ok [INFO] [stdout] test channel_separation_tests::tests::test_sequence_read_exfil_with_source_taint ... ok [INFO] [stdout] test channel_separation_tests::tests::test_source_taint_blocks_write_after_untrusted_fetch ... ok [INFO] [stdout] test channel_separation_tests::tests::test_three_layer_composition ... ok [INFO] [stdout] test channel_separation_tests::tests::test_unknown_source_taints_with_low_floor ... ok [INFO] [stdout] test channel_separation_tests::tests::test_verified_source_no_taint ... ok [INFO] [stdout] test circuit_breaker::tests::test_can_proceed_allows_after_open_duration_expires ... ok [INFO] [stdout] test channel_separation_tests::tests::test_sequence_privilege_escalation_after_source_taint ... ok [INFO] [stdout] test circuit_breaker::tests::test_can_proceed_rejection_contains_tool_name ... ok [INFO] [stdout] test circuit_breaker::tests::test_can_proceed_success_does_not_panic ... ok [INFO] [stdout] test behavioral::tests::test_snapshot_large_scale ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_starts_closed ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_trips_after_failures ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_failure_reopens ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_full_lifecycle ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_single_failure_reopens_and_requires_full_recovery ... ok [INFO] [stdout] test circuit_breaker::tests::test_half_open_success_threshold_closes_circuit ... ok [INFO] [stdout] test circuit_breaker::tests::test_is_recovering_reflects_half_open_state ... ok [INFO] [stdout] test circuit_breaker::tests::test_manual_reset ... ok [INFO] [stdout] test circuit_breaker::tests::test_reset_allowed_after_cooldown_expires ... ok [INFO] [stdout] test circuit_breaker::tests::test_reset_allowed_for_closed_circuit ... ok [INFO] [stdout] test circuit_breaker::tests::test_reset_allowed_for_nonexistent_circuit ... ok [INFO] [stdout] test circuit_breaker::tests::test_reset_rejected_during_open_cooldown ... ok [INFO] [stdout] test circuit_breaker::tests::test_success_resets_failure_count ... ok [INFO] [stdout] test circuit_breaker::tests::test_summary ... ok [INFO] [stdout] test circuit_breaker::tests::test_summary_record_metrics_does_not_panic ... ok [INFO] [stdout] test circuit_breaker::tests::test_summary_shows_half_open_with_expired_duration ... ok [INFO] [stdout] test circuit_breaker::tests::test_tracked_tools ... ok [INFO] [stdout] test collusion::tests::test_alert_count_returns_zero_initially ... ok [INFO] [stdout] test collusion::tests::test_alert_serialization_roundtrip ... ok [INFO] [stdout] test collusion::tests::test_analyze_parameters_disabled_returns_none ... ok [INFO] [stdout] test collusion::tests::test_analyze_parameters_high_entropy_triggers_alert ... ok [INFO] [stdout] test collusion::tests::test_analyze_parameters_normal_text_no_alert ... ok [INFO] [stdout] test collusion::tests::test_analyze_parameters_short_data_returns_none ... ok [INFO] [stdout] test collusion::tests::test_compute_entropy_empty_data_returns_zero ... ok [INFO] [stdout] test collusion::tests::test_compute_entropy_english_text_moderate ... ok [INFO] [stdout] test collusion::tests::test_compute_entropy_random_data_returns_high ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_window_reset ... ok [INFO] [stdout] test collusion::tests::test_compute_entropy_uniform_data_returns_zero ... ok [INFO] [stdout] test collusion::tests::test_compute_sync_score_different_intervals_returns_low ... ok [INFO] [stdout] test collusion::tests::test_compute_sync_score_empty_timestamps_returns_zero ... ok [INFO] [stdout] test collusion::tests::test_compute_sync_score_identical_intervals_returns_high ... ok [INFO] [stdout] test collusion::tests::test_config_deny_unknown_fields ... ok [INFO] [stdout] test collusion::tests::test_compute_sync_score_single_timestamp_returns_zero ... ok [INFO] [stdout] test collusion::tests::test_config_validate_default_ok ... ok [INFO] [stdout] test collusion::tests::test_config_validate_min_agents_below_two ... ok [INFO] [stdout] test collusion::tests::test_config_validate_nan_entropy_rejected ... ok [INFO] [stdout] test collusion::tests::test_config_validate_negative_entropy_rejected ... ok [INFO] [stdout] test collusion::tests::test_config_validate_nonzero_min_entropy_observations_ok ... ok [INFO] [stdout] test collusion::tests::test_config_validate_sync_threshold_out_of_range ... ok [INFO] [stdout] test collusion::tests::test_config_validate_zero_min_entropy_observations_rejected ... ok [INFO] [stdout] test collusion::tests::test_config_validate_zero_window_rejected ... ok [INFO] [stdout] test collusion::tests::test_drift_config_validate_invalid_threshold ... ok [INFO] [stdout] test collusion::tests::test_drift_config_validate_nan_threshold ... ok [INFO] [stdout] test collusion::tests::test_drift_config_validate_zero_min_actions ... ok [INFO] [stdout] test collusion::tests::test_drift_config_validate_zero_window ... ok [INFO] [stdout] test collusion::tests::test_entropy_decision_helper_biases_borderline_values_toward_alerting ... ok [INFO] [stdout] test collusion::tests::test_entropy_decision_helper_uses_fixed_point_threshold ... ok [INFO] [stdout] test collusion::tests::test_r229_capacity_alert_type_is_capacity_exhaustion ... ok [INFO] [stdout] test collusion::tests::test_r229_capacity_exhaustion_serialization_roundtrip ... ok [INFO] [stdout] test collusion::tests::test_r229_safe_u32_cast_on_observation_count ... ok [INFO] [stdout] test collusion::tests::test_r237_eng7_coordination_window_at_max_ok ... ok [INFO] [stdout] test collusion::tests::test_config_serialization_roundtrip ... ok [INFO] [stdout] test collusion::tests::test_r237_eng7_coordination_window_upper_bound ... ok [INFO] [stdout] test collusion::tests::test_r237_eng7_drift_window_upper_bound ... ok [INFO] [stdout] test collusion::tests::test_r237_eng7_recon_window_upper_bound ... ok [INFO] [stdout] test collusion::tests::test_recent_alerts_returns_empty_initially ... ok [INFO] [stdout] test collusion::tests::test_recent_alerts_returns_most_recent_first ... ok [INFO] [stdout] test collusion::tests::test_recon_config_validate_zero_threshold_rejected ... ok [INFO] [stdout] test collusion::tests::test_recon_config_validate_zero_window_rejected ... ok [INFO] [stdout] test collusion::tests::test_record_agent_action_below_min_actions_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_agent_action_disabled_returns_none ... ok [INFO] [stdout] test collusion::tests::test_record_agent_action_drift_triggers_alert ... ok [INFO] [stdout] test collusion::tests::test_record_agent_action_no_drift_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_denial_at_threshold_triggers_alert ... ok [INFO] [stdout] test collusion::tests::test_record_denial_below_threshold_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_denial_disabled_returns_none ... ok [INFO] [stdout] test collusion::tests::test_record_denial_critical_severity_at_double_threshold ... ok [INFO] [stdout] test collusion::tests::test_record_denial_invalid_agent_id_rejected ... ok [INFO] [stdout] test collusion::tests::test_record_denial_invalid_tool_name_rejected ... ok [INFO] [stdout] test collusion::tests::test_record_denial_outside_window_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_resource_access_coordinated_triggers_alert ... ok [INFO] [stdout] test collusion::tests::test_record_denial_same_tool_repeated_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_resource_access_outside_window_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_resource_access_single_agent_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_tool_timing_disabled_returns_none ... ok [INFO] [stdout] test collusion::tests::test_record_tool_timing_single_agent_no_alert ... ok [INFO] [stdout] test collusion::tests::test_record_tool_timing_synchronized_triggers_alert ... ok [INFO] [stdout] test collusion::tests::test_validate_agent_id_control_chars_rejected ... ok [INFO] [stdout] test collusion::tests::test_validate_agent_id_empty_rejected ... ok [INFO] [stdout] test collusion::tests::test_record_resource_access_disabled_returns_none ... ok [INFO] [stdout] test collusion::tests::test_validate_agent_id_too_long_rejected ... ok [INFO] [stdout] test collusion::tests::test_validate_resource_key_empty_rejected ... ok [INFO] [stdout] test collusion::tests::test_validate_tool_name_too_long_rejected ... ok [INFO] [stdout] test compiled::tests::test_compiled_conditions_default_state ... ok [INFO] [stdout] test compiled::tests::test_compiled_conditions_with_approval ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_match_ne ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_match_one_of ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_match_returns_correct_value ... ok [INFO] [stdout] test cascade_graph::tests::test_capacity_bounded ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_match_all_variants ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_missing_all_variants ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_missing_ne ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_missing_returns_correct_value ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_param_eq ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_on_missing_one_of ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_param_all_variants ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_param_none_of ... ok [INFO] [stdout] test compiled::tests::test_compiled_ip_rules_block_private_default ... ok [INFO] [stdout] test compiled::tests::test_compiled_ip_rules_with_cidrs ... ok [INFO] [stdout] test compiled::tests::test_compiled_network_rules_empty ... ok [INFO] [stdout] test compiled::tests::test_compiled_path_rules_empty_allowed_and_blocked ... ok [INFO] [stdout] test compiled::tests::test_compiled_constraint_param_glob ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_forbidden_param_present_deny ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_all_skipped_fail_closed ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_forbidden_param_absent_allow ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_on_no_match_continue_returns_none ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_require_approval ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_required_param_missing_deny ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_conditions_required_param_present_allow ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_eq_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_eq_no_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_eq_normalizes_unicode_strings ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_ne_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_missing_param_deny ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_none_of_no_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_none_of_normalized_member_does_not_fire ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_one_of_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_none_of_match ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_one_of_normalizes_unicode_strings ... ok [INFO] [stdout] test contagion::tests::test_explicit_declassification ... ok [INFO] [stdout] test contagion::tests::test_clean_session ... ok [INFO] [stdout] test contagion::tests::test_multiple_taints_strictest_floor ... ok [INFO] [stdout] test contagion::tests::test_new_taint_resets_clean_streak ... ok [INFO] [stdout] test contagion::tests::test_privileged_sink_blocked_when_tainted ... ok [INFO] [stdout] test contagion::tests::test_taint_decays_after_clean_actions ... ok [INFO] [stdout] test contagion::tests::test_taint_persists_in_session_mode ... ok [INFO] [stdout] test context_check::tests::test_agent_id_allowed_list_match_allow ... ok [INFO] [stdout] test context_check::tests::test_agent_id_blocked_list_deny ... ok [INFO] [stdout] test context_check::tests::test_agent_id_case_insensitive_normalization ... ok [INFO] [stdout] test constraint_eval::tests::test_evaluate_compiled_constraint_one_of_no_match ... ok [INFO] [stdout] test context_check::tests::test_deputy_validation_delegation_depth_exceeded_deny ... ok [INFO] [stdout] test context_check::tests::test_agent_id_allowed_list_no_match_deny ... ok [INFO] [stdout] test context_check::tests::test_deputy_validation_require_principal_missing_deny ... ok [INFO] [stdout] test context_check::tests::test_empty_context_conditions_allow ... ok [INFO] [stdout] test context_check::tests::test_forbidden_previous_action_absent_allow ... ok [INFO] [stdout] test context_check::tests::test_forbidden_previous_action_case_insensitive ... ok [INFO] [stdout] test context_check::tests::test_forbidden_previous_action_present_deny ... ok [INFO] [stdout] test context_check::tests::test_max_calls_at_limit_deny ... ok [INFO] [stdout] test context_check::tests::test_max_calls_empty_call_counts_fail_closed ... ok [INFO] [stdout] test context_check::tests::test_max_calls_in_window_at_limit_deny ... ok [INFO] [stdout] test context_check::tests::test_max_calls_in_window_under_limit_allow ... ok [INFO] [stdout] test context_check::tests::test_max_calls_under_limit_allow ... ok [INFO] [stdout] test context_check::tests::test_max_calls_wildcard_aggregates_all_tools ... ok [INFO] [stdout] test context_check::tests::test_max_chain_depth_exceeds_limit_deny ... ok [INFO] [stdout] test context_check::tests::test_max_calls_in_window_zero_window_uses_full_history ... ok [INFO] [stdout] test context_check::tests::test_max_chain_depth_within_limit_allow ... ok [INFO] [stdout] test context_check::tests::test_max_chain_depth_zero_allows_empty_chain ... ok [INFO] [stdout] test context_check::tests::test_min_verification_tier_insufficient_deny ... ok [INFO] [stdout] test context_check::tests::test_min_verification_tier_missing_fail_closed ... ok [INFO] [stdout] test context_check::tests::test_min_verification_tier_sufficient_allow ... ok [INFO] [stdout] test context_check::tests::test_require_previous_action_case_insensitive ... ok [INFO] [stdout] test context_check::tests::test_require_previous_action_missing_deny ... ok [INFO] [stdout] test context_check::tests::test_require_previous_action_present_allow ... ok [INFO] [stdout] test context_check::tests::test_session_state_required_matching_allow ... ok [INFO] [stdout] test context_check::tests::test_session_state_required_missing_fail_closed ... ok [INFO] [stdout] test context_check::tests::test_session_state_required_wrong_state_deny ... ok [INFO] [stdout] test context_check::tests::test_step_up_auth_insufficient_level_require_approval ... ok [INFO] [stdout] test context_check::tests::test_step_up_auth_sufficient_level_allow ... ok [INFO] [stdout] test context_check::tests::test_time_window_day_of_week_allow_correct_day ... ok [INFO] [stdout] test context_check::tests::test_agent_id_missing_with_allowed_list_fail_closed ... ok [INFO] [stdout] test context_check::tests::test_time_window_day_of_week_deny_wrong_day ... ok [INFO] [stdout] test context_check::tests::test_time_window_hour_boundary_start_allow ... ok [INFO] [stdout] test context_check::tests::test_time_window_midnight_wrap_allow_after_midnight ... ok [INFO] [stdout] test context_check::tests::test_time_window_midnight_wrap_allow_before_midnight ... ok [INFO] [stdout] test context_check::tests::test_time_window_midnight_wrap_deny_midday ... ok [INFO] [stdout] test context_check::tests::test_time_window_hour_boundary_end_deny ... ok [INFO] [stdout] test coverage::tests::test_coverage_all_active_policies ... ok [INFO] [stdout] test coverage::tests::test_coverage_all_dead_policies ... ok [INFO] [stdout] test coverage::tests::test_coverage_dead_policy_has_no_last_matched ... ok [INFO] [stdout] test coverage::tests::test_coverage_empty_policies_and_records ... ok [INFO] [stdout] test coverage::tests::test_coverage_last_matched_timestamp ... ok [INFO] [stdout] test coverage::tests::test_coverage_match_count_per_policy ... ok [INFO] [stdout] test coverage::tests::test_coverage_mixed_dead_and_active ... ok [INFO] [stdout] test coverage::tests::test_coverage_pct_calculation ... ok [INFO] [stdout] test coverage::tests::test_coverage_no_records_all_dead ... ok [INFO] [stdout] test coverage::tests::test_coverage_policies_with_no_records_for_tool ... ok [INFO] [stdout] test coverage::tests::test_coverage_safe_divide_nan ... ok [INFO] [stdout] test coverage::tests::test_coverage_safe_divide_clamps_to_one ... ok [INFO] [stdout] test coverage::tests::test_coverage_safe_divide_zero_denominator ... ok [INFO] [stdout] test coverage::tests::test_coverage_tool_coverage_score ... ok [INFO] [stdout] test coverage::tests::test_coverage_uncovered_tool_last_seen ... ok [INFO] [stdout] test coverage::tests::test_coverage_uncovered_tools ... ok [INFO] [stdout] test coverage::tests::test_coverage_unknown_policy_id_in_record ... ok [INFO] [stdout] test coverage::tests::test_coverage_uncovered_sorted_by_occurrence ... ok [INFO] [stdout] test cross_session_leak::tests::test_clear_session_removes_data ... ok [INFO] [stdout] test cross_session_leak::tests::test_detect_cross_session_leak ... ok [INFO] [stdout] test cross_session_leak::tests::test_no_leak_separate_sessions ... ok [INFO] [stdout] test cross_session_leak::tests::test_fingerprint_content ... ok [INFO] [stdout] test cumulative_harm::tests::test_benign_chain_no_findings ... ok [INFO] [stdout] test cumulative_harm::tests::test_config_then_execute ... ok [INFO] [stdout] test cross_session_leak::tests::test_same_session_not_flagged ... ok [INFO] [stdout] test cumulative_harm::tests::test_credential_harvest ... ok [INFO] [stdout] test cumulative_harm::tests::test_max_severity ... ok [INFO] [stdout] test cumulative_harm::tests::test_privilege_chain ... ok [INFO] [stdout] test cumulative_harm::tests::test_read_then_exfiltrate ... ok [INFO] [stdout] test delegation::tests::test_clear_session ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_prune_stale ... ok [INFO] [stdout] test delegation::tests::test_delegation_allowed_simple ... ok [INFO] [stdout] test delegation::tests::test_delegation_allowed_target_list ... ok [INFO] [stdout] test delegation::tests::test_delegation_blocked_target ... ok [INFO] [stdout] test delegation::tests::test_delegation_cycle_detected ... ok [INFO] [stdout] test delegation::tests::test_delegation_depth_limit ... ok [INFO] [stdout] test delegation::tests::test_delegation_trust_escalation_allowed_when_disabled ... ok [INFO] [stdout] test denial_of_wallet::tests::test_normal_usage_no_findings ... ok [INFO] [stdout] test denial_of_wallet::tests::test_rate_spike_detected ... ok [INFO] [stdout] test adaptive_rate::tests::test_adaptive_rate_prune_keeps_anomaly ... ok [INFO] [stdout] test denial_of_wallet::tests::test_recursive_loop_detected ... ok [INFO] [stdout] test denial_of_wallet::tests::test_token_exhaustion ... ok [INFO] [stdout] test deputy::tests::test_active_count ... ok [INFO] [stdout] test deputy::tests::test_direct_principal_allowed ... ok [INFO] [stdout] test deputy::tests::test_delegation_depth_exceeded ... ok [INFO] [stdout] test deputy::tests::test_get_context ... ok [INFO] [stdout] test deputy::tests::test_redelegation_from_current_delegate_is_allowed ... ok [INFO] [stdout] test deputy::tests::test_redelegation_requires_parent_delegate_continuity ... ok [INFO] [stdout] test deputy::tests::test_register_delegation_normalizes_homoglyphs ... ok [INFO] [stdout] test deputy::tests::test_remove_context ... ok [INFO] [stdout] test deputy::tests::test_single_delegation_allowed ... ok [INFO] [stdout] test deputy::tests::test_tool_not_in_delegation ... ok [INFO] [stdout] test deputy::tests::test_validate_action_binding_direct_request_is_not_trusted_delegation ... ok [INFO] [stdout] test deputy::tests::test_validate_action_binding_returns_active_delegation_summary ... ok [INFO] [stdout] test deputy::tests::test_validate_action_case_insensitive_principal ... ok [INFO] [stdout] test deputy::tests::test_validate_action_normalizes_claimed_principal_homoglyphs ... ok [INFO] [stdout] test deputy::tests::test_validate_action_rejects_different_principal_after_normalization ... ok [INFO] [stdout] test domain::tests::test_extract_domain_backslash_normalization ... ok [INFO] [stdout] test domain::tests::test_extract_domain_encoded_at ... ok [INFO] [stdout] test domain::tests::test_extract_domain_ipv6 ... ok [INFO] [stdout] test domain::tests::test_extract_domain_simple ... ok [INFO] [stdout] test domain::tests::test_extract_domain_trailing_dot ... ok [INFO] [stdout] test domain::tests::test_extract_domain_userinfo ... ok [INFO] [stdout] test domain::tests::test_match_domain_combining_character_diacritics ... ok [INFO] [stdout] test domain::tests::test_match_domain_cyrillic_homoglyph_does_not_match_latin ... ok [INFO] [stdout] test domain::tests::test_match_domain_cyrillic_homoglyph_normalizes_consistently ... ok [INFO] [stdout] test domain::tests::test_match_domain_fullwidth_latin_characters ... ok [INFO] [stdout] test domain::tests::test_match_domain_mixed_script_fails_closed ... ok [INFO] [stdout] test domain::tests::test_match_domain_pattern_case_insensitive ... ok [INFO] [stdout] test domain::tests::test_match_domain_pattern_exact ... ok [INFO] [stdout] test domain::tests::test_match_domain_pattern_wildcard ... ok [INFO] [stdout] test domain::tests::test_match_domain_zero_width_characters_in_domain ... ok [INFO] [stdout] test domain::tests::test_normalize_domain_for_match_idna ... ok [INFO] [stdout] test domain::tests::test_normalize_domain_for_match_rejects_invalid_ascii ... ok [INFO] [stdout] test domain::tests::test_normalize_domain_for_match_trailing_dot ... ok [INFO] [stdout] test domain::tests::test_validate_domain_pattern_empty ... ok [INFO] [stdout] test domain::tests::test_validate_domain_pattern_invalid_label ... ok [INFO] [stdout] test domain::tests::test_validate_domain_pattern_invalid_wildcard ... ok [INFO] [stdout] test domain::tests::test_validate_domain_pattern_valid ... ok [INFO] [stdout] test entropy_gate::tests::test_entropy_alert_helpers_delegate_to_verified_kernel ... ok [INFO] [stdout] test entropy_gate::tests::test_entropy_observation_millibits_rounds_up ... ok [INFO] [stdout] test entropy_gate::tests::test_entropy_threshold_millibits_rounds_down ... ok [INFO] [stdout] test entropy_gate::tests::test_is_high_entropy_millibits_uses_fixed_point_boundary ... ok [INFO] [stdout] test error::tests::test_engine_error_display ... ok [INFO] [stdout] test error::tests::test_policy_validation_error_display ... ok [INFO] [stdout] test exfil_path::tests::test_benign_read_write_no_exfil ... ok [INFO] [stdout] test exfil_path::tests::test_credential_exfil_path ... ok [INFO] [stdout] test exfil_path::tests::test_file_exfil_path ... ok [INFO] [stdout] test exfil_path::tests::test_max_severity ... ok [INFO] [stdout] test exfil_path::tests::test_no_path_without_acquisition ... ok [INFO] [stdout] test deputy::tests::test_principal_mismatch_denied ... ok [INFO] [stdout] test impact::tests::test_analyze_all_unchanged_same_policies ... ok [INFO] [stdout] test impact::tests::test_analyze_allow_to_deny_policy_removed ... ok [INFO] [stdout] test impact::tests::test_analyze_counter_accuracy ... ok [INFO] [stdout] test impact::tests::test_analyze_deny_to_allow_policy_changed ... ok [INFO] [stdout] test impact::tests::test_analyze_deny_to_require_approval_not_newly_allowed ... ok [INFO] [stdout] test impact::tests::test_analyze_empty_candidate_policies ... ok [INFO] [stdout] test impact::tests::test_analyze_empty_history_zero_changes ... ok [INFO] [stdout] test impact::tests::test_analyze_error_counting ... ok [INFO] [stdout] test delegation::tests::test_delegation_trust_escalation_blocked ... ok [INFO] [stdout] test impact::tests::test_analyze_large_replay_set ... ok [INFO] [stdout] test impact::tests::test_analyze_mixed_changes_correct_counts ... ok [INFO] [stdout] test impact::tests::test_analyze_multiple_deny_to_allow ... ok [INFO] [stdout] test impact::tests::test_analyze_overlapping_policies ... ok [INFO] [stdout] test impact::tests::test_analyze_require_approval_to_deny ... ok [INFO] [stdout] test impact::tests::test_analyze_saturating_counters ... ok [INFO] [stdout] test impact::tests::test_verdict_change_fields_populated ... ok [INFO] [stdout] test impact::tests::test_verdict_summary_from_deny ... ok [INFO] [stdout] test impact::tests::test_verdict_summary_from_require_approval ... ok [INFO] [stdout] test ip::tests::test_6to4_addresses ... ok [INFO] [stdout] test ip::tests::test_extract_embedded_ipv4 ... ok [INFO] [stdout] test ip::tests::test_ipv4_mapped_ipv6 ... ok [INFO] [stdout] test ip::tests::test_ipv4_private_ranges ... ok [INFO] [stdout] test ip::tests::test_ipv6_private_ranges ... ok [INFO] [stdout] test ip::tests::test_nat64_addresses ... ok [INFO] [stdout] test ip::tests::test_nat64_local_use_prefix ... ok [INFO] [stdout] test ip::tests::test_teredo_addresses ... ok [INFO] [stdout] test impact::tests::test_analyze_strict_mode ... ok [INFO] [stdout] test least_agency::tests::test_check_auto_revoke_no_session ... ok [INFO] [stdout] test impact::tests::test_verdict_summary_from_allow ... ok [INFO] [stdout] test impact::tests::test_impact_report_no_changes ... ok [INFO] [stdout] test least_agency::tests::test_check_auto_revoke_recently_granted ... ok [INFO] [stdout] test least_agency::tests::test_grants_within_limit_all_accepted ... ok [INFO] [stdout] test least_agency::tests::test_multiple_agents_isolated ... ok [INFO] [stdout] test least_agency::tests::test_narrowing_recommendations ... ok [INFO] [stdout] test least_agency::tests::test_check_auto_revoke_with_zero_threshold ... ok [INFO] [stdout] test least_agency::tests::test_new_with_config_enforcement_mode ... ok [INFO] [stdout] test least_agency::tests::test_register_and_record_usage ... ok [INFO] [stdout] test least_agency::tests::test_new_with_config_monitor_mode ... ok [INFO] [stdout] test least_agency::tests::test_report_generation_critical ... ok [INFO] [stdout] test least_agency::tests::test_revoke_stale_permissions_enforce_removes_stale ... ok [INFO] [stdout] test least_agency::tests::test_grants_per_session_bounded ... ok [INFO] [stdout] test least_agency::tests::test_revoke_stale_permissions_monitor_does_not_remove ... ok [INFO] [stdout] test least_agency::tests::test_revoke_stale_permissions_used_recently_not_revoked ... ok [INFO] [stdout] test least_agency::tests::test_session_key_no_collision_different_lengths ... ok [INFO] [stdout] test least_agency::tests::test_session_key_no_collision_with_separator_in_id ... ok [INFO] [stdout] test least_agency::tests::test_unused_detection ... ok [INFO] [stdout] test least_agency::tests::test_session_key_collision_isolation_in_tracker ... ok [INFO] [stdout] test legacy::tests::test_apply_policy_allow ... ok [INFO] [stdout] test legacy::tests::test_apply_policy_deny ... ok [INFO] [stdout] test legacy::tests::test_check_network_rules_legacy_blocked_domain ... ok [INFO] [stdout] test legacy::tests::test_check_network_rules_legacy_no_network_rules ... ok [INFO] [stdout] test legacy::tests::test_check_path_rules_legacy_blocked_path ... ok [INFO] [stdout] test legacy::tests::test_check_path_rules_legacy_no_path_rules ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_deep_json_rejected ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_forbidden_params ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_forbidden_params_non_array_fail_closed ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_no_conditions_allow ... ok [INFO] [stdout] test least_agency::tests::test_usage_ratio_calculation ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_require_approval ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_required_params_missing ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_on_no_match_continue ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_strict_mode_unknown_key ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_case_insensitive_via_normalize ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_exact ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_infix_wildcard_fail_closed ... ok [INFO] [stdout] test legacy::tests::test_evaluate_conditions_required_params_non_array_fail_closed ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_prefix_wildcard ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_wildcard_all ... ok [INFO] [stdout] test legacy::tests::test_matches_action_exact_tool_function ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_map_bounded_record_success ... ok [INFO] [stdout] test legacy::tests::test_matches_action_qualifier_suffix_ignored ... ok [INFO] [stdout] test legacy::tests::test_matches_action_tool_only_mismatch ... ok [INFO] [stdout] test legacy::tests::test_matches_action_tool_only_no_colon ... ok [INFO] [stdout] test legacy::tests::test_matches_action_tool_wildcard_function ... ok [INFO] [stdout] test legacy::tests::test_matches_action_wildcard ... ok [INFO] [stdout] test legacy::tests::test_matches_action_wildcard_tool_specific_function ... ok [INFO] [stdout] test lint::tests::test_concrete_prefix_extraction ... ok [INFO] [stdout] test lint::tests::test_is_prefix_pattern_exact ... ok [INFO] [stdout] test lint::tests::test_is_prefix_pattern_glob_double_star ... ok [INFO] [stdout] test lint::tests::test_is_prefix_pattern_glob_single_star ... ok [INFO] [stdout] test lint::tests::test_lint_default_constructor ... ok [INFO] [stdout] test lint::tests::test_lint_empty_policy_set ... ok [INFO] [stdout] test lint::tests::test_lint_finding_has_suggestion ... ok [INFO] [stdout] test lint::tests::test_lint_l001_empty_id ... ok [INFO] [stdout] test least_agency::tests::test_report_generation_optimal ... ok [INFO] [stdout] test lint::tests::test_lint_l001_valid_id_no_finding ... ok [INFO] [stdout] test legacy::tests::test_matches_action_exact_tool_function_mismatch ... ok [INFO] [stdout] test legacy::tests::test_match_pattern_suffix_wildcard ... ok [INFO] [stdout] test lint::tests::test_lint_l002_empty_name ... ok [INFO] [stdout] test lint::tests::test_lint_l003_partial_wildcard_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l003_star_colon_star ... ok [INFO] [stdout] test lint::tests::test_lint_l003_star_only ... ok [INFO] [stdout] test lint::tests::test_lint_l004_allow_no_rules ... ok [INFO] [stdout] test lint::tests::test_lint_l004_allow_with_path_rules_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l004_deny_no_rules_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l005_non_overlapping_paths_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l005_overlapping_paths ... ok [INFO] [stdout] test lint::tests::test_lint_l001_whitespace_only_id ... ok [INFO] [stdout] test lint::tests::test_lint_l002_whitespace_only_name ... ok [INFO] [stdout] test lint::tests::test_lint_l006_deny_with_path_rules ... ok [INFO] [stdout] test lint::tests::test_lint_l006_deny_without_rules_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l007_blocked_prefix_of_allowed ... ok [INFO] [stdout] test lint::tests::test_lint_l007_no_prefix_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l008_both_populated_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l008_empty_allowed_with_blocked ... ok [INFO] [stdout] test lint::tests::test_lint_l009_duplicate_ids ... ok [INFO] [stdout] test lint::tests::test_lint_l006_deny_with_empty_rules_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l009_unique_ids_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l009_triple_duplicate ... ok [INFO] [stdout] test lint::tests::test_lint_l010_priority_collision ... ok [INFO] [stdout] test lint::tests::test_lint_l011_small_policy_set_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_l012_conditional_empty_array ... ok [INFO] [stdout] test lint::tests::test_lint_l012_conditional_empty_object ... ok [INFO] [stdout] test lint::tests::test_lint_l012_conditional_null_conditions ... ok [INFO] [stdout] test lint::tests::test_lint_l012_conditional_with_conditions_no_finding ... ok [INFO] [stdout] test lint::tests::test_lint_report_counts ... ok [INFO] [stdout] test lint::tests::test_lint_report_is_ok_with_errors ... ok [INFO] [stdout] test lint::tests::test_lint_report_is_ok_without_errors ... ok [INFO] [stdout] test lint::tests::test_patterns_overlap_disjoint ... ok [INFO] [stdout] test lint::tests::test_patterns_overlap_identical ... ok [INFO] [stdout] test lint::tests::test_patterns_overlap_prefix ... ok [INFO] [stdout] test matcher::tests::test_compiled_tool_matcher_normalized_method ... ok [INFO] [stdout] test matcher::tests::test_compiled_tool_matcher_tool_and_function ... ok [INFO] [stdout] test matcher::tests::test_compiled_tool_matcher_tool_only ... ok [INFO] [stdout] test matcher::tests::test_compiled_tool_matcher_universal ... ok [INFO] [stdout] test matcher::tests::test_compiled_tool_matcher_with_qualifier ... ok [INFO] [stdout] test lint::tests::test_lint_l010_three_way_collision ... ok [INFO] [stdout] test lint::tests::test_lint_l010_unique_priorities_no_finding ... ok [INFO] [stdout] test matcher::tests::test_cyrillic_homoglyph_tool_name_normalized ... ok [INFO] [stdout] test matcher::tests::test_pattern_exact_normalizes_homoglyphs_at_compile ... ok [INFO] [stdout] test matcher::tests::test_pattern_matcher_any ... ok [INFO] [stdout] test lint::tests::test_lint_l011_large_policy_set ... ok [INFO] [stdout] test matcher::tests::test_pattern_matcher_exact ... ok [INFO] [stdout] test matcher::tests::test_pattern_matcher_infix_treated_as_any ... ok [INFO] [stdout] test matcher::tests::test_pattern_matcher_prefix ... ok [INFO] [stdout] test matcher::tests::test_pattern_prefix_normalizes_homoglyphs ... ok [INFO] [stdout] test matcher::tests::test_pattern_suffix_normalizes_homoglyphs ... ok [INFO] [stdout] test matcher::tests::test_pattern_matcher_suffix ... ok [INFO] [stdout] test nhi_overpermission::tests::test_admin_scope_flagged ... ok [INFO] [stdout] test matcher::tests::test_r227_circled_letter_normalized ... ok [INFO] [stdout] test nhi_overpermission::tests::test_ambient_authority_detected ... ok [INFO] [stdout] test circuit_breaker::tests::test_circuit_map_bounded_record_failure ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_already_normalized ... ok [INFO] [stdout] test nhi_overpermission::tests::test_excessive_scopes_detected ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_ascii_lowercase ... ok [INFO] [stdout] test nhi_overpermission::tests::test_properly_scoped_agent_clean ... ok [INFO] [stdout] test nhi_overpermission::tests::test_trust_inflation_for_delegated_agent ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_mathematical_bold ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_empty_string ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_homoglyph_cyrillic ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_mixed_case_and_homoglyphs ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_idempotent ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_nfkc_parenthesized_letters ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_preserves_underscores_digits ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_unicode_lowercase ... ok [INFO] [stdout] test path::tests::test_normalize_decoded_path_kernel ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_nfkc_circled_letters ... ok [INFO] [stdout] test path::tests::test_normalize_path_above_root ... ok [INFO] [stdout] test path::tests::test_normalize_path_backslash_normalized ... ok [INFO] [stdout] test path::tests::test_normalize_path_encoded_null_rejected ... ok [INFO] [stdout] test path::tests::test_normalize_path_empty_result ... ok [INFO] [stdout] test path::tests::test_normalize_path_iteration_limit ... ok [INFO] [stdout] test path::tests::test_normalize_path_double_encoded ... ok [INFO] [stdout] test normalize::tests::test_normalize_full_nfkc_fullwidth_chars ... ok [INFO] [stdout] test path::tests::test_normalize_path_mixed_separators ... ok [INFO] [stdout] test path::tests::test_normalize_path_percent_encoded_drive_letter ... ok [INFO] [stdout] test path::tests::test_normalize_path_relative ... ok [INFO] [stdout] test path::tests::test_normalize_path_null_byte_rejected ... ok [INFO] [stdout] test path::tests::test_normalize_path_percent_encoded ... ok [INFO] [stdout] test path::tests::test_normalize_path_simple ... ok [INFO] [stdout] test path::tests::test_normalize_path_unc_with_traversal ... ok [INFO] [stdout] test path::tests::test_normalize_path_windows_drive_letter ... ok [INFO] [stdout] test path::tests::test_normalize_path_windows_unc_path ... ok [INFO] [stdout] test policy_compile::tests::test_compile_conditional_require_approval_flag ... ok [INFO] [stdout] test policy_compile::tests::test_compile_conditional_require_approval_non_bool_defaults_true ... ok [INFO] [stdout] test policy_compile::tests::test_compile_conditions_json_depth_exceeded ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_domain_match_valid ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_eq_compiles_successfully ... ok [INFO] [stdout] test path::tests::test_normalize_path_traversal ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_glob_in_constraint_invalid ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_invalid_regex_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_invalid_on_match_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_missing_param_field_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_parameter_constraints_not_array_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_invalid_on_missing_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_redos_regex_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_agent_id_compiles ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_unknown_operator_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_missing_op_field_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_valid_on_match_require_approval ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_time_window_invalid_day_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_max_calls_compiles ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_time_window_valid ... ok [INFO] [stdout] test policy_compile::tests::test_compile_constraint_valid_regex_succeeds ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_time_window_equal_hours_rejected ... ok [INFO] [stdout] test cross_session_leak::tests::test_capacity_bounded ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_unknown_type_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_empty_list_succeeds ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_invalid_allowed_cidr_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_invalid_blocked_cidr_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_invalid_blocked_path_glob_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_invalid_domain_pattern_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_invalid_path_glob_fails ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_ipv6_cidr_succeeds ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_no_path_or_network_rules ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_non_strict_allows_unknown_condition_keys ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_policy_name_too_long_rejected ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_single_allow_policy_succeeds ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_sorted_by_priority_descending ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_stable_sort_by_id_at_same_priority_and_type ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_strict_mode_rejects_unknown_condition_keys ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_valid_cidr_rules ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_accumulates_errors_across_policies ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_valid_network_domains ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_blocked_cidr ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_valid_path_globs_compile ... ok [INFO] [stdout] test policy_compile::tests::test_compile_context_condition_time_window_invalid_hour_over_23 ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_invalid_ip_deny ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_no_resolved_ips_with_domains_fail_closed ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_private_ip_blocked ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_no_rules_returns_none ... ok [INFO] [stdout] test rule_check::tests::test_check_ip_rules_public_ip_allowed ... ok [INFO] [stdout] test rule_check::tests::test_check_network_rules_blocked_domain_deny ... ok [INFO] [stdout] test rule_check::tests::test_check_network_rules_allowed_domain_passes ... ok [INFO] [stdout] test rule_check::tests::test_check_network_rules_domain_not_in_allowlist_deny ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_allowed_path_passes ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_blocked_path_returns_deny ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_empty_rules_returns_none ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_empty_paths_with_allowlist_fail_closed ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_blocked_takes_precedence_over_allowed ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_path_not_in_allowlist_deny ... ok [INFO] [stdout] test sequence::tests::test_max_confidence ... ok [INFO] [stdout] test sequence::tests::test_no_anomaly_clean_session ... ok [INFO] [stdout] test sequence::tests::test_novel_tool_after_untrusted ... ok [INFO] [stdout] test sequence::tests::test_privilege_escalation_after_taint ... ok [INFO] [stdout] test sequence::tests::test_privileged_action_cluster ... ok [INFO] [stdout] test sequence::tests::test_read_then_exfil_detected ... ok [INFO] [stdout] test sequence::tests::test_tool_diversity_spike ... ok [INFO] [stdout] test sequence::tests::test_warmup_suppresses_early_detection ... ok [INFO] [stdout] test rule_check::tests::test_check_network_rules_empty_domains_with_allowlist_fail_closed ... ok [INFO] [stdout] test rule_check::tests::test_check_network_rules_no_rules_returns_none ... ok [INFO] [stdout] test rule_check::tests::test_check_path_rules_no_path_rules_returns_none ... ok [INFO] [stdout] test least_agency::tests::test_bounded_tracker_count ... ok [INFO] [stdout] test policy_compile::tests::test_compile_policies_deny_before_allow_at_same_priority ... ok [INFO] [stdout] test tests::proptests::prop_ambiguous_dotted_path_none ... ok [INFO] [stdout] test tests::proptests::prop_extract_domain_lowercase ... ok [INFO] [stdout] test tests::proptests::prop_deny_wins_at_equal_priority ... ok [INFO] [stdout] test tests::proptests::prop_normalize_path_encoded_idempotent ... ok [INFO] [stdout] test tests::proptests::prop_no_match_denies ... ok [INFO] [stdout] test tests::proptests::prop_higher_priority_deny_wins ... ok [INFO] [stdout] test cache::tests::test_ttl_expiry ... ok [INFO] [stdout] test tests::proptests::prop_pattern_matcher_exact_self ... ok [INFO] [stdout] test tests::proptests::prop_normalize_path_never_empty ... ok [INFO] [stdout] test tests::test_agent_identity_audience_mixed_case_in_jwt_array_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_issuer ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_issuer_case_insensitive ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_issuers_only_no_header_denies_r39_eng_1 ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_issuers_with_header_allows_non_blocked_r39_eng_1 ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_subject ... ok [INFO] [stdout] test tests::test_agent_identity_blocked_subjects_only_no_header_denies_r39_eng_1 ... ok [INFO] [stdout] test tests::test_agent_identity_combined_conditions ... ok [INFO] [stdout] test tests::test_agent_identity_fallback_to_agent_id ... ok [INFO] [stdout] test tests::test_agent_identity_match_no_attestation_audience_required_denies ... ok [INFO] [stdout] test tests::test_agent_identity_match_no_attestation_blocked_only_denies_r39_eng_1 ... ok [INFO] [stdout] test tests::test_agent_identity_match_no_attestation_but_identity_required_denies ... ok [INFO] [stdout] test tests::test_agent_identity_match_no_attestation_claims_required_denies ... ok [INFO] [stdout] test tests::test_agent_identity_match_no_attestation_subject_required_denies ... ok [INFO] [stdout] test tests::test_agent_identity_missing_fails_closed ... ok [INFO] [stdout] test tests::test_agent_identity_missing_with_require_attestation_false ... ok [INFO] [stdout] test tests::test_agent_identity_required_audience ... ok [INFO] [stdout] test tests::proptests::prop_normalize_path_idempotent ... ok [INFO] [stdout] test tests::proptests::prop_empty_policies_deny ... ok [INFO] [stdout] test tests::proptests::prop_same_value_dotted_path_resolves ... ok [INFO] [stdout] test tests::test_agent_identity_required_audience_case_insensitive_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_required_audience_mismatch ... ok [INFO] [stdout] test tests::test_agent_identity_required_claim_match ... ok [INFO] [stdout] test tests::test_agent_identity_required_issuer_lowercase_matches_uppercase_jwt_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_required_issuer_mismatch ... ok [INFO] [stdout] test tests::test_agent_identity_required_claim_mismatch ... ok [INFO] [stdout] test tests::test_agent_identity_required_issuer_case_insensitive_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_required_issuer_match ... ok [INFO] [stdout] test tests::test_agent_identity_required_issuer_mismatch_still_denies_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_required_subject_match ... ok [INFO] [stdout] test tests::test_allow_policy_match ... ok [INFO] [stdout] test tests::test_collect_all_string_values_basic ... ok [INFO] [stdout] test tests::test_agent_identity_required_subject_case_insensitive_r40_eng_2 ... ok [INFO] [stdout] test tests::test_agent_identity_required_subject_mismatch ... ok [INFO] [stdout] test tests::test_collect_all_string_values_empty_object ... ok [INFO] [stdout] test tests::test_compile_conditional_with_require_approval ... ok [INFO] [stdout] test tests::test_collect_all_string_values_depth_limit ... ok [INFO] [stdout] test tests::test_compile_conditional_with_on_no_match_continue ... ok [INFO] [stdout] test tests::test_compile_conditions_json_depth_exceeds_limit_fails ... ok [INFO] [stdout] test tests::test_compile_conditions_max_parameter_constraints_exceeded ... ok [INFO] [stdout] test tests::test_compile_conditions_unknown_key_non_strict_passes ... ok [INFO] [stdout] test tests::test_compile_conditions_unknown_key_strict_mode_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_glob_invalid_pattern_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_invalid_on_missing_value_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_missing_op_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_invalid_on_match_value_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_missing_param_fails ... ok [INFO] [stdout] test tests::test_compile_constraint_regex_invalid_pattern_fails ... ok [INFO] [stdout] test tests::test_compile_forbidden_parameters_preserved ... ok [INFO] [stdout] test tests::test_compile_ip_rules_block_private_and_cidrs ... ok [INFO] [stdout] test tests::test_compile_constraint_regex_dfa_size_limit ... ok [INFO] [stdout] test tests::test_compile_network_rules_domains ... ok [INFO] [stdout] test tests::test_compile_constraint_all_10_operators_compile_correctly ... ok [INFO] [stdout] test tests::test_compile_path_rules_allowed_and_blocked_globs ... ok [INFO] [stdout] test tests::test_compile_policies_collects_all_errors_not_just_first ... ok [INFO] [stdout] test tests::proptests::prop_compiled_deterministic ... ok [INFO] [stdout] test tests::test_compile_policies_empty_input_returns_empty ... ok [INFO] [stdout] test tests::test_compile_policies_id_tiebreaker_at_same_priority_and_type ... ok [INFO] [stdout] test tests::test_compile_policies_invalid_domain_pattern_fails ... ok [INFO] [stdout] test tests::test_compile_policies_invalid_glob_in_path_rules_fails ... ok [INFO] [stdout] test tests::test_compile_policies_single_allow_policy ... ok [INFO] [stdout] test tests::test_compile_policies_sorts_by_priority_descending ... ok [INFO] [stdout] test tests::test_compile_policy_rejects_invalid_domain_in_network_rules ... ok [INFO] [stdout] test tests::test_compile_required_parameters_preserved ... ok [INFO] [stdout] test tests::test_compiled_deep_json_rejected ... ok [INFO] [stdout] test tests::test_compiled_domain_not_in ... ok [INFO] [stdout] test tests::test_compiled_empty_policies_deny ... ok [INFO] [stdout] test tests::test_compiled_eq_ne_one_of_none_of ... ok [INFO] [stdout] test tests::test_compiled_forbidden_parameters ... ok [INFO] [stdout] test tests::test_compiled_glob_constraint ... ok [INFO] [stdout] test tests::test_compile_policies_invalid_cidr_in_ip_rules_fails ... ok [INFO] [stdout] test tests::test_compiled_invalid_regex_rejected_at_load_time ... ok [INFO] [stdout] test tests::test_compile_policies_deny_wins_at_same_priority ... ok [INFO] [stdout] test tests::test_compile_policies_standalone ... ok [INFO] [stdout] test tests::test_compiled_invalid_glob_rejected_at_load_time ... ok [INFO] [stdout] test tests::test_compiled_multiple_errors_collected ... ok [INFO] [stdout] test tests::test_compiled_missing_param_fail_closed ... ok [INFO] [stdout] test tests::test_compiled_on_missing_skip ... ok [INFO] [stdout] test tests::test_compiled_not_glob_allowlist ... ok [INFO] [stdout] test tests::test_compiled_policies_are_sorted ... ok [INFO] [stdout] test tests::test_compiled_parity_with_legacy ... ok [INFO] [stdout] test tests::test_compiled_regex_constraint ... ok [INFO] [stdout] test tests::test_compiled_require_approval ... ok [INFO] [stdout] test tests::test_compiled_strict_mode_unknown_key ... ok [INFO] [stdout] test tests::test_compiled_tool_matcher_qualifier_suffix ... ok [INFO] [stdout] test tests::test_compiled_tool_matcher_variants ... ok [INFO] [stdout] test tests::test_compiled_validation_error_is_descriptive ... ok [INFO] [stdout] test tests::test_compiled_unknown_operator_rejected_at_load_time ... ok [INFO] [stdout] test tests::test_compiled_wildcard_scan ... ok [INFO] [stdout] test tests::test_compiled_with_policies_basic ... ok [INFO] [stdout] test tests::test_conditional_require_approval ... ok [INFO] [stdout] test tests::test_constraint_all_skipped_on_no_match_continue_returns_none ... ok [INFO] [stdout] test tests::test_constraint_all_skipped_fail_closed ... ok [INFO] [stdout] test tests::test_compile_conditions_json_size_exceeds_limit_fails ... ok [INFO] [stdout] test tests::test_constraint_domain_not_in_fires ... ok [INFO] [stdout] test tests::test_constraint_eq_no_match_allows ... ok [INFO] [stdout] test tests::test_constraint_eq_match_fires ... ok [INFO] [stdout] test tests::test_constraint_forbidden_parameter_present_denies ... ok [INFO] [stdout] test tests::test_constraint_glob_match_fires ... ok [INFO] [stdout] test tests::test_constraint_glob_non_string_denies_non_strict ... ok [INFO] [stdout] test tests::test_constraint_glob_no_match_allows ... ok [INFO] [stdout] test tests::test_constraint_missing_op_field_errors ... ok [INFO] [stdout] test tests::test_constraint_missing_param_field_errors ... ok [INFO] [stdout] test tests::test_constraint_missing_param_on_missing_deny ... ok [INFO] [stdout] test tests::test_constraint_missing_param_on_missing_skip ... ok [INFO] [stdout] test tests::test_constraint_ne_fires_when_not_equal ... ok [INFO] [stdout] test tests::test_constraint_none_of_allows_when_in_set ... ok [INFO] [stdout] test tests::test_constraint_nested_param_path ... ok [INFO] [stdout] test tests::test_constraint_not_glob_outside_allowlist_fires ... ok [INFO] [stdout] test tests::test_constraint_domain_match_fires ... ok [INFO] [stdout] test tests::test_constraint_domain_match_no_match_allows ... ok [INFO] [stdout] test tests::test_constraint_none_of_fires_when_not_in_set ... ok [INFO] [stdout] test tests::test_constraint_regex_match_fires ... ok [INFO] [stdout] test tests::test_constraint_require_approval_returns_require_approval ... ok [INFO] [stdout] test tests::test_constraint_one_of_allows_when_not_in_set ... ok [INFO] [stdout] test tests::test_constraint_one_of_fires_when_in_set ... ok [INFO] [stdout] test tests::test_constraint_required_parameter_missing_denies ... ok [INFO] [stdout] test tests::test_constraint_not_glob_in_allowlist_allows ... ok [INFO] [stdout] test tests::test_constraint_regex_no_match_allows ... ok [INFO] [stdout] test tests::test_constraint_wildcard_param_scans_all_values ... ok [INFO] [stdout] test tests::test_constraint_traced_vs_non_traced_consistency ... ok [INFO] [stdout] test tests::test_context_agent_id_allowed ... ok [INFO] [stdout] test tests::test_context_agent_id_blocked_denies ... ok [INFO] [stdout] test tests::test_context_agent_id_allowed_allows ... ok [INFO] [stdout] test tests::test_context_agent_id_missing_fails_closed ... ok [INFO] [stdout] test tests::test_context_agent_id_blocked ... ok [INFO] [stdout] test tests::test_context_agent_id_case_insensitive_compiled ... ok [INFO] [stdout] test tests::test_context_agent_id_case_insensitive ... ok [INFO] [stdout] test tests::test_context_agent_id_none_fail_closed ... ok [INFO] [stdout] test tests::test_context_agent_id_not_in_allowed_denies ... ok [INFO] [stdout] test tests::test_context_agent_identity_blocked_issuer_denies ... ok [INFO] [stdout] test tests::test_context_agent_identity_issuer_match_allows ... ok [INFO] [stdout] test tests::test_context_agent_identity_missing_attestation_denies ... ok [INFO] [stdout] test tests::test_context_agent_identity_missing_with_requirements_denies ... ok [INFO] [stdout] test tests::test_context_async_task_policy_marker_passes_through ... ok [INFO] [stdout] test tests::test_context_capability_case_insensitive ... ok [INFO] [stdout] test tests::test_context_capability_blocked_present_denies ... ok [INFO] [stdout] test tests::test_context_capability_no_identity_denies ... ok [INFO] [stdout] test tests::test_context_capability_required_present_allows ... ok [INFO] [stdout] test tests::test_context_capability_required_missing_denies ... ok [INFO] [stdout] test tests::test_context_circuit_breaker_marker_passes_through ... ok [INFO] [stdout] test tests::test_context_compile_error_invalid_time_window ... ok [INFO] [stdout] test tests::test_context_compile_error_truncated_day_value ... ok [INFO] [stdout] test tests::test_context_compile_error_truncated_hour_value ... ok [INFO] [stdout] test tests::test_context_deputy_validation_no_principal_denies ... ok [INFO] [stdout] test tests::test_context_compile_error_unknown_type ... ok [INFO] [stdout] test tests::test_context_deputy_validation_with_principal_allows ... ok [INFO] [stdout] test tests::test_context_compile_error_zero_width_time_window ... ok [INFO] [stdout] test tests::test_context_deputy_validation_depth_exceeded_denies ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_action_absent_allows ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_action_absent_allows_compiled ... ok [INFO] [stdout] test tests::test_context_max_calls_at_limit_denies ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_action_empty_history ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_action_present_denies_compiled ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_compile_error ... ok [INFO] [stdout] test tests::test_context_forbidden_previous_action_present_denies ... ok [INFO] [stdout] test tests::test_context_max_calls_empty_counts_fail_closed ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_at_limit_denies ... ok [INFO] [stdout] test tests::test_context_max_calls_at_limit_denies_compiled ... ok [INFO] [stdout] test tests::test_context_max_calls_case_insensitive ... ok [INFO] [stdout] test tests::test_context_max_calls_empty_counts_denies_fail_closed ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_compile_error ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_at_limit_denies_compiled ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_large_window_r34_eng_2 ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_empty_history_denies ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_nonempty_counts_empty_history_denies ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_older_calls_outside ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_under_limit ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_under_limit_allows ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_zero_means_all ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_wildcard ... ok [INFO] [stdout] test tests::test_context_max_calls_in_window_zero_window_checks_all ... ok [INFO] [stdout] test tests::test_context_max_calls_under_limit_allows ... ok [INFO] [stdout] test tests::test_context_max_calls_wildcard_empty_counts_denies ... ok [INFO] [stdout] test tests::test_context_max_calls_wildcard_pattern ... ok [INFO] [stdout] test tests::test_context_max_calls_with_zero_count_allows ... ok [INFO] [stdout] test tests::test_context_max_calls_under_limit ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_exact_limit_allows ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_under_allows ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_over_denies ... ok [INFO] [stdout] test tests::test_context_min_verification_tier_insufficient_denies ... ok [INFO] [stdout] test tests::test_context_min_verification_tier_none_fail_closed ... ok [INFO] [stdout] test tests::test_context_min_verification_tier_sufficient_allows ... ok [INFO] [stdout] test tests::test_context_none_allows_when_no_conditions ... ok [INFO] [stdout] test tests::test_context_none_denies_when_conditions_exist ... ok [INFO] [stdout] test tests::test_context_require_capability_token_none_fail_closed ... ok [INFO] [stdout] test tests::test_context_require_capability_token_valid_allows ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_over_limit_denies ... ok [INFO] [stdout] test tests::test_context_require_capability_token_wrong_holder_denies ... ok [INFO] [stdout] test tests::test_context_require_previous_action_absent_denies ... ok [INFO] [stdout] test tests::test_context_require_previous_action_case_insensitive ... ok [INFO] [stdout] test tests::test_context_require_previous_action_present ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_below_limit_allows ... ok [INFO] [stdout] test tests::test_context_max_chain_depth_under_limit_allows ... ok [INFO] [stdout] test tests::test_context_require_previous_action_absent ... ok [INFO] [stdout] test tests::test_context_resource_indicator_missing_when_required_denies ... ok [INFO] [stdout] test tests::test_context_require_previous_action_present_allows ... ok [INFO] [stdout] test tests::test_context_schema_poisoning_marker_passes_through ... ok [INFO] [stdout] test tests::test_context_resource_indicator_not_in_allowed_denies ... ok [INFO] [stdout] test tests::test_context_resource_indicator_no_identity_denies ... ok [INFO] [stdout] test tests::test_context_session_state_allowed_allows ... ok [INFO] [stdout] test tests::test_context_session_state_none_fail_closed ... ok [INFO] [stdout] test tests::test_context_shadow_agent_marker_passes_through ... ok [INFO] [stdout] test tests::test_context_session_state_not_allowed_denies ... ok [INFO] [stdout] test tests::test_context_step_up_auth_insufficient_level_returns_require_approval ... ok [INFO] [stdout] test tests::test_context_time_window_allow_during_hours ... ok [INFO] [stdout] test tests::test_context_step_up_auth_sufficient_level_allows ... ok [INFO] [stdout] test tests::test_context_time_window_day_of_week_filter ... ok [INFO] [stdout] test tests::test_context_time_window_deny_outside_hours ... ok [INFO] [stdout] test tests::test_context_time_window_empty_days_allows_any_day ... ok [INFO] [stdout] test tests::test_context_time_window_midnight_wrap ... ok [INFO] [stdout] test tests::test_context_time_window_midnight_wrap_compiled ... ok [INFO] [stdout] test tests::test_context_time_window_wrong_day_denies_compiled ... ok [INFO] [stdout] test tests::test_context_time_window_within_allows ... ok [INFO] [stdout] test tests::test_context_step_up_auth_no_identity_returns_require_approval ... ok [INFO] [stdout] test tests::test_context_traced_with_context ... ok [INFO] [stdout] test tests::test_deputy_validation_and_capability_token_allow_when_both_satisfied ... ok [INFO] [stdout] test tests::test_deputy_validation_and_capability_token_delegation_depth_denied ... ok [INFO] [stdout] test tests::test_context_resource_indicator_matching_allows ... ok [INFO] [stdout] test tests::test_deputy_validation_and_capability_token_missing_agent_id_denied ... ok [INFO] [stdout] test tests::test_deputy_validation_and_capability_token_missing_token_denied ... ok [INFO] [stdout] test tests::test_deputy_validation_and_capability_token_issuer_allowlist_denied ... ok [INFO] [stdout] test tests::test_differential_all_constraints_skipped_fails_closed_identical ... ok [INFO] [stdout] test tests::test_differential_allow_policy_identical_verdicts ... ok [INFO] [stdout] test tests::proptests::prop_blocked_glob_always_denies ... ok [INFO] [stdout] test tests::test_deny_policy_match ... ok [INFO] [stdout] test tests::test_context_time_window_outside_denies ... ok [INFO] [stdout] test tests::test_differential_conditional_domain_match_identical ... ok [INFO] [stdout] test tests::test_differential_conditional_glob_deny_identical ... ok [INFO] [stdout] test tests::test_differential_conditional_regex_deny_identical ... ok [INFO] [stdout] test tests::test_differential_deny_policy_identical_verdicts ... ok [INFO] [stdout] test tests::test_differential_ip_rules_block_private_identical ... ok [INFO] [stdout] test tests::test_differential_network_rules_blocked_identical ... ok [INFO] [stdout] test tests::test_differential_path_rules_blocked_identical ... ok [INFO] [stdout] test tests::test_differential_require_approval_identical ... ok [INFO] [stdout] test tests::test_domain_match_blocks_exact ... ok [INFO] [stdout] test tests::test_domain_match_blocks_wildcard_subdomain ... ok [INFO] [stdout] test tests::test_domain_match_case_insensitive ... ok [INFO] [stdout] test tests::test_domain_match_no_scheme ... ok [INFO] [stdout] test tests::test_domain_match_strips_port ... ok [INFO] [stdout] test tests::test_domain_match_wildcard_matches_bare_domain ... ok [INFO] [stdout] test tests::test_domain_not_in_blocks_ngrok ... ok [INFO] [stdout] test tests::test_domain_not_in_denies_unlisted_domain ... ok [INFO] [stdout] test tests::test_empty_policies_deny ... ok [INFO] [stdout] test tests::test_eq_does_not_fire_on_mismatch ... ok [INFO] [stdout] test tests::test_eq_fires_on_match ... ok [INFO] [stdout] test tests::test_domain_not_in_allows_wildcard_subdomain ... ok [INFO] [stdout] test tests::test_evaluation_context_validate_action_name_length ... ok [INFO] [stdout] test tests::test_extract_domain_backslash_as_path_separator ... ok [INFO] [stdout] test tests::test_extract_domain_backslash_with_userinfo ... ok [INFO] [stdout] test tests::test_extract_domain_double_encoded_at_sign_r38_eng_2 ... ok [INFO] [stdout] test tests::test_extract_domain_double_encoded_backslash ... ok [INFO] [stdout] test tests::test_extract_domain_fragment_authority_delimiter ... ok [INFO] [stdout] test tests::test_extract_domain_fragment_no_at ... ok [INFO] [stdout] test tests::test_extract_domain_https ... ok [INFO] [stdout] test tests::test_extract_domain_lowercases ... ok [INFO] [stdout] test tests::test_extract_domain_no_double_decode_r38_eng_2 ... ok [INFO] [stdout] test tests::test_extract_domain_no_scheme ... ok [INFO] [stdout] test tests::test_extract_domain_percent_encoded_backslash_before_at ... ok [INFO] [stdout] test tests::test_extract_domain_percent_encoded_dot ... ok [INFO] [stdout] test tests::test_extract_domain_percent_encoded_host ... ok [INFO] [stdout] test tests::test_extract_domain_percent_encoded_slash_in_userinfo_r37_eng_1 ... ok [INFO] [stdout] test tests::test_extract_domain_query_authority_delimiter ... ok [INFO] [stdout] test tests::test_extract_domain_single_decode_still_works_r38_eng_2 ... ok [INFO] [stdout] test tests::test_extract_domain_with_port ... ok [INFO] [stdout] test tests::test_extract_domain_with_query_and_fragment ... ok [INFO] [stdout] test tests::test_extract_domain_with_userinfo ... ok [INFO] [stdout] test tests::test_fix8_extract_domain_at_in_fragment ... ok [INFO] [stdout] test tests::test_fix8_extract_domain_at_in_query_not_authority ... ok [INFO] [stdout] test tests::test_fix8_extract_domain_legitimate_userinfo_still_works ... ok [INFO] [stdout] test tests::test_fix9_normalize_path_empty_returns_root ... ok [INFO] [stdout] test tests::test_fix9_normalize_path_traversal_only ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_case_insensitive_denies ... ok [INFO] [stdout] test tests::test_evaluation_context_validate_called_at_boundary ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_compile_empty_string_errors ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_compile_missing_sequence_errors ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_compile_non_string_errors ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_compile_too_many_steps_errors ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_current_tool_only_partial_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_detects_current_tool_as_final_step ... ok [INFO] [stdout] test tests::test_domain_match_no_match_allows ... ok [INFO] [stdout] test tests::test_domain_match_strips_userinfo ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_empty_history_allows ... ok [INFO] [stdout] test tests::test_domain_not_in_allows_listed_domain ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_compile_empty_sequence_errors ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_evicted_prefix_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_exfiltration_detects ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_ordered_absent_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_ordered_non_consecutive_denies ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_ordered_partial_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_exfiltration_wrong_order_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_ordered_present_denies ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_ordered_reversed_allows ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_unordered_all_present_denies ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_unordered_duplicate_needs_multiple ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_unordered_includes_current_tool ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_unordered_partial_allows ... ok [INFO] [stdout] test tests::test_get_param_by_path_ambiguous_different_values_returns_none ... ok [INFO] [stdout] test tests::test_get_param_by_path_ambiguous_same_values_resolves ... ok [INFO] [stdout] test tests::test_get_param_by_path_array_access_nested ... ok [INFO] [stdout] test tests::test_get_param_by_path_array_access_out_of_bounds ... ok [INFO] [stdout] test tests::test_get_param_by_path_array_access_simple ... ok [INFO] [stdout] test tests::test_get_param_by_path_array_on_non_array ... ok [INFO] [stdout] test tests::test_get_param_by_path_deep_ambiguity_returns_none ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_short_history_allows ... ok [INFO] [stdout] test tests::test_get_param_by_path_exact_key_with_literal_dot ... ok [INFO] [stdout] test tests::test_get_param_by_path_invalid_bracket_syntax ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_single_tool_equivalent ... ok [INFO] [stdout] test tests::test_get_param_by_path_mixed_traversal ... ok [INFO] [stdout] test tests::test_get_param_by_path_nested_only ... ok [INFO] [stdout] test tests::test_get_param_by_path_multidimensional_array ... ok [INFO] [stdout] test tests::test_get_param_by_path_partial_traversal_no_ambiguity ... ok [INFO] [stdout] test tests::test_get_param_by_path_unit ... ok [INFO] [stdout] test tests::test_glob_invalid_pattern_errors ... ok [INFO] [stdout] test tests::test_glob_blocks_ssh_keys ... ok [INFO] [stdout] test tests::test_glob_allows_safe_path ... ok [INFO] [stdout] test tests::test_glob_blocks_etc_passwd ... ok [INFO] [stdout] test tests::test_glob_blocks_sensitive_path ... ok [INFO] [stdout] test tests::test_glob_normalizes_traversal ... ok [INFO] [stdout] test tests::test_glob_normalizes_dot_segments ... ok [INFO] [stdout] test tests::test_glob_null_byte_path_no_match ... ok [INFO] [stdout] test tests::test_glob_require_approval_on_match ... ok [INFO] [stdout] test tests::test_has_ip_rules_returns_false_when_not_configured ... ok [INFO] [stdout] test tests::test_ip_rules_allow_public_ip ... ok [INFO] [stdout] test tests::test_ip_rules_allowed_cidr ... ok [INFO] [stdout] test tests::test_ip_rules_block_6to4_relay_anycast ... ok [INFO] [stdout] test tests::test_ip_rules_block_cgnat_range ... ok [INFO] [stdout] test tests::test_ip_rules_block_class_e_reserved ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_6to4_cgnat ... ok [INFO] [stdout] test tests::test_has_ip_rules_returns_true_when_configured ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_6to4_embedded ... ok [INFO] [stdout] test tests::test_ip_rules_allow_nat64_local_use_public ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv4_compatible_loopback ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv4_compatible_v6 ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv4_mapped_cgnat ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv6_documentation ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv4_mapped_v6 ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv6_link_local ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_loopback ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_nat64_cgnat ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_nat64_embedded ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_nat64_local_use ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv6_ula ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_link_local ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_rfc1918 ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_teredo_cgnat ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_teredo_embedded ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv6_loopback ... ok [INFO] [stdout] test tests::test_ip_rules_blocked_cidr ... ok [INFO] [stdout] test tests::test_ip_rules_invalid_cidr_compile_error ... ok [INFO] [stdout] test tests::test_ip_rules_ipv4_mapped_v6_allowed_cidr ... ok [INFO] [stdout] test tests::test_ip_rules_no_domains_no_resolved_ips_passes ... ok [INFO] [stdout] test tests::test_ip_rules_ipv4_mapped_v6_blocked_by_v4_cidr ... ok [INFO] [stdout] test tests::test_ip_rules_no_resolved_ips_with_domains_denies ... ok [INFO] [stdout] test tests::test_ip_rules_block_zero_network ... ok [INFO] [stdout] test tests::test_ip_rules_block_private_ipv6_multicast ... ok [INFO] [stdout] test tests::test_ip_rules_invalid_resolved_ip_denies ... ok [INFO] [stdout] test tests::test_ip_rules_none_skips_check ... ok [INFO] [stdout] test tests::test_json_path_domain_in_nested_object ... ok [INFO] [stdout] test tests::test_json_path_missing_intermediate_skip ... ok [INFO] [stdout] test tests::test_json_depth_and_scan_depth_use_same_constant ... ok [INFO] [stdout] test tests::test_json_path_nested_allows_safe_value ... ok [INFO] [stdout] test tests::test_json_path_nested_parameter ... ok [INFO] [stdout] test tests::test_json_path_simple_key_still_works ... ok [INFO] [stdout] test tests::test_legacy_apply_policy_allow ... ok [INFO] [stdout] test tests::test_json_path_missing_intermediate_denies ... ok [INFO] [stdout] test tests::test_legacy_apply_policy_deny ... ok [INFO] [stdout] test tests::test_legacy_check_ip_rules_allowed_cidr ... ok [INFO] [stdout] test tests::test_legacy_check_ip_rules_block_private ... ok [INFO] [stdout] test tests::test_legacy_check_ip_rules_blocked_cidr ... ok [INFO] [stdout] test tests::test_legacy_check_ip_rules_invalid_cidr_fail_closed ... ok [INFO] [stdout] test tests::test_legacy_check_ip_rules_ipv6_embedded_ipv4 ... ok [INFO] [stdout] test tests::test_legacy_check_network_rules_allowed_domain ... ok [INFO] [stdout] test tests::test_legacy_check_network_rules_blocked_domain ... ok [INFO] [stdout] test tests::test_legacy_check_network_rules_no_targets_fail_closed ... ok [INFO] [stdout] test tests::test_legacy_check_path_rules_allowed_match ... ok [INFO] [stdout] test tests::test_legacy_check_path_rules_blocked_match ... ok [INFO] [stdout] test tests::test_legacy_check_path_rules_no_targets_with_allowlist_fail_closed ... ok [INFO] [stdout] test tests::test_legacy_matches_action_no_match ... ok [INFO] [stdout] test tests::test_legacy_check_path_rules_path_normalization ... ok [INFO] [stdout] test tests::test_legacy_matches_action_exact ... ok [INFO] [stdout] test tests::test_legacy_matches_action_wildcard ... ok [INFO] [stdout] test tests::test_legacy_matches_action_prefix_wildcard ... ok [INFO] [stdout] test tests::test_legacy_matches_action_suffix_wildcard ... ok [INFO] [stdout] test tests::test_legacy_matches_action_tool_wildcard ... ok [INFO] [stdout] test tests::test_legacy_sort_deny_still_beats_allow_at_same_priority ... ok [INFO] [stdout] test tests::test_legacy_sort_deterministic_with_same_priority_and_type ... ok [INFO] [stdout] test tests::test_match_domain_exact ... ok [INFO] [stdout] test tests::test_match_domain_underscore_exact ... ok [INFO] [stdout] test tests::test_match_domain_case_insensitive ... ok [INFO] [stdout] test tests::test_match_domain_underscore_not_bypassing_wildcard_block ... ok [INFO] [stdout] test tests::test_match_domain_exact_no_match ... ok [INFO] [stdout] test tests::test_match_domain_wildcard_deep_sub ... ok [INFO] [stdout] test tests::test_match_domain_idna_wildcard ... ok [INFO] [stdout] test tests::test_match_domain_wildcard_no_match ... ok [INFO] [stdout] test tests::test_max_calls_in_window_mixed_case_tool_pattern_r36_eng_1 ... ok [INFO] [stdout] test tests::test_match_domain_wildcard_bare ... ok [INFO] [stdout] test tests::test_match_domain_wildcard_subdomain ... ok [INFO] [stdout] test tests::test_max_calls_mixed_case_tool_pattern_r36_eng_1 ... ok [INFO] [stdout] test tests::test_max_json_depth_constant_value ... ok [INFO] [stdout] test tests::test_missing_param_denies_by_default ... ok [INFO] [stdout] test tests::test_missing_param_skips_when_configured ... ok [INFO] [stdout] test tests::test_multiple_constraints_all_must_pass ... ok [INFO] [stdout] test tests::test_ne_does_not_fire_when_equal ... ok [INFO] [stdout] test tests::test_ne_fires_when_not_equal ... ok [INFO] [stdout] test tests::test_network_rules_allowed_only ... ok [INFO] [stdout] test tests::test_multiple_paths_one_blocked_denies_all ... ok [INFO] [stdout] test tests::test_multiple_constraints_first_fires_wins ... ok [INFO] [stdout] test tests::test_network_rules_no_domains_in_action_allows ... ok [INFO] [stdout] test tests::test_network_rules_blocked_domain_denies ... ok [INFO] [stdout] test tests::test_nfkc_agent_id_circled_letter_denied ... ok [INFO] [stdout] test tests::test_network_rules_blocked_subdomain_denies ... ok [INFO] [stdout] test tests::test_nfkc_blocked_issuer_circled_letter_denied ... ok [INFO] [stdout] test tests::test_nfkc_required_previous_action_circled_tool_name ... ok [INFO] [stdout] test tests::test_nfkc_blocked_subject_math_bold_denied ... ok [INFO] [stdout] test tests::test_non_string_value_with_glob_denies_in_non_strict ... ok [INFO] [stdout] test tests::test_none_of_does_not_fire_when_in_set ... ok [INFO] [stdout] test tests::test_normalize_domain_accepts_hyphen_r39_eng_3 ... ok [INFO] [stdout] test tests::test_none_of_fires_when_not_in_set ... ok [INFO] [stdout] test tests::test_normalize_domain_accepts_underscore_srv_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_domain_rejects_at_sign_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_domain_rejects_null_byte_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_domain_rejects_slash_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_domain_rejects_space_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_path_absolute_stays_absolute ... ok [INFO] [stdout] test tests::test_normalize_domain_rejects_colon_r39_eng_3 ... ok [INFO] [stdout] test tests::test_normalize_path_backslash_encoded_r34_eng_1 ... ok [INFO] [stdout] test tests::test_normalize_path_backslash_simple_r34_eng_1 ... ok [INFO] [stdout] test tests::test_normalize_path_backslash_traversal_r34_eng_1 ... ok [INFO] [stdout] test tests::test_normalize_path_bounded_custom_limit ... ok [INFO] [stdout] test tests::test_normalize_path_bounded_zero_limit ... ok [INFO] [stdout] test tests::test_normalize_path_deep_encoding_returns_root ... ok [INFO] [stdout] test tests::test_normalize_path_double_encoding_fully_decoded ... ok [INFO] [stdout] test tests::test_normalize_path_encoded_null_byte ... ok [INFO] [stdout] test tests::test_normalize_path_fully_encoded_path ... ok [INFO] [stdout] test tests::test_normalize_path_mixed_encoded_and_plain ... ok [INFO] [stdout] test tests::test_normalize_path_percent_encoded_filename ... ok [INFO] [stdout] test tests::test_normalize_path_percent_encoded_slash ... ok [INFO] [stdout] test tests::test_nfkc_forbidden_previous_action_parenthesized_tool_name ... ok [INFO] [stdout] test tests::test_non_string_value_with_glob_errors_in_strict ... ok [INFO] [stdout] test tests::test_normalize_path_percent_encoded_traversal ... ok [INFO] [stdout] test tests::test_normalize_path_prevents_root_escape ... ok [INFO] [stdout] test tests::test_normalize_path_resolves_dot ... ok [INFO] [stdout] test tests::test_normalize_path_resolves_parent ... ok [INFO] [stdout] test tests::test_normalize_path_root_on_null_byte ... ok [INFO] [stdout] test tests::test_normalize_path_six_level_encoding_decodes_fully ... ok [INFO] [stdout] test tests::test_not_glob_denies_traversal_outside_allowlist ... ok [INFO] [stdout] test tests::test_not_glob_allows_inside_allowlist ... ok [INFO] [stdout] test tests::test_not_glob_denies_outside_allowlist ... ok [INFO] [stdout] test tests::test_not_glob_multiple_allowed_paths ... ok [INFO] [stdout] test tests::test_on_no_match_continue_all_skip_bypass_demonstrated ... ok [INFO] [stdout] test tests::test_on_no_match_continue_equivalence_compiled_vs_legacy ... ok [INFO] [stdout] test tests::test_on_no_match_continue_fail_closed_exception ... ok [INFO] [stdout] test tests::test_on_no_match_continue_mixed_on_missing_no_bypass ... ok [INFO] [stdout] test tests::test_on_no_match_continue_fail_closed_without_flag ... ok [INFO] [stdout] test tests::test_on_no_match_continue_traced_evaluation ... ok [INFO] [stdout] test tests::test_on_no_match_continue_policy_chain ... ok [INFO] [stdout] test tests::test_on_no_match_continue_with_require_approval ... ok [INFO] [stdout] test tests::test_on_no_match_invalid_value_treated_as_default ... ok [INFO] [stdout] test tests::test_one_of_does_not_fire_when_not_in_set ... ok [INFO] [stdout] test tests::test_on_no_match_continue_skips_to_next_policy ... ok [INFO] [stdout] test tests::test_on_no_match_continue_strict_mode_accepts_key ... ok [INFO] [stdout] test tests::test_on_no_match_default_returns_allow ... ok [INFO] [stdout] test tests::test_parameter_constraints_not_array_errors ... ok [INFO] [stdout] test tests::test_one_of_fires_when_in_set ... ok [INFO] [stdout] test tests::test_path_rules_blocked_denies ... ok [INFO] [stdout] test tests::test_path_and_network_rules_combined ... ok [INFO] [stdout] test tests::test_path_rules_no_paths_in_action_allows ... ok [INFO] [stdout] test tests::test_path_rules_blocked_exact_match_denies ... ok [INFO] [stdout] test tests::test_path_rules_allowed_only_safe_paths ... ok [INFO] [stdout] test tests::test_path_rules_normalization_prevents_bypass ... ok [INFO] [stdout] test tests::test_pattern_matcher_variants ... ok [INFO] [stdout] test tests::test_path_rules_with_deny_policy_still_denies ... ok [INFO] [stdout] test tests::test_path_rules_blocked_takes_precedence_over_allowed ... ok [INFO] [stdout] test tests::test_r203_001_blocked_issuer_long_value_truncated_in_reason ... ok [INFO] [stdout] test tests::test_r203_001_claim_mismatch_denial_reason_has_correct_structure ... ok [INFO] [stdout] test tests::test_r203_001_issuer_mismatch_denial_reason_has_correct_structure ... ok [INFO] [stdout] test tests::test_r203_001_claim_mismatch_long_value_truncated ... ok [INFO] [stdout] test tests::test_priority_ordering ... ok [INFO] [stdout] test tests::test_policy_id_qualifier_e2e_credential_block ... ok [INFO] [stdout] test tests::test_r203_001_blocked_issuer_denial_reason_has_correct_structure ... ok [INFO] [stdout] test tests::test_r203_001_subject_mismatch_denial_reason_has_correct_structure ... ok [INFO] [stdout] test tests::test_r203_001_issuer_mismatch_long_actual_truncated ... ok [INFO] [stdout] test tests::test_r230_deny_reason_does_not_leak_domain_pattern ... ok [INFO] [stdout] test tests::test_r230_deny_reason_does_not_leak_cidr ... ok [INFO] [stdout] test tests::test_r230_deny_reason_does_not_leak_path_pattern ... ok [INFO] [stdout] test tests::test_r237_eng2_regex_constraint_clean_path_allows ... ok [INFO] [stdout] test tests::test_r237_eng2_regex_constraint_normalizes_double_encoded_traversal ... ok [INFO] [stdout] test tests::test_r237_eng2_regex_constraint_normalizes_percent_encoded_traversal ... ok [INFO] [stdout] test tests::test_r35_eng_1_multistage_encoded_backslash ... ok [INFO] [stdout] test tests::test_r34_eng_5_max_calls_case_insensitive ... ok [INFO] [stdout] test tests::test_r35_eng_1_triple_encoded_backslash ... ok [INFO] [stdout] test tests::test_r46_004_legacy_match_pattern_infix_wildcard_treated_as_prefix ... ok [INFO] [stdout] test tests::test_r46_004_compiled_infix_wildcard_treated_as_match_all ... ok [INFO] [stdout] test tests::test_r237_eng2_regex_traced_normalizes_percent_encoded_traversal ... ok [INFO] [stdout] test tests::test_r34_eng_5_max_calls_in_window_case_insensitive ... ok [INFO] [stdout] test tests::test_r46_005_json_depth_normal_json ... ok [INFO] [stdout] test tests::test_r46_006_collect_all_string_values_beyond_depth_limit ... ok [INFO] [stdout] test tests::test_r46_006_collect_all_string_values_deeply_nested ... ok [INFO] [stdout] test tests::test_r46_006_collect_all_string_values_mixed_nesting ... ok [INFO] [stdout] test tests::test_r46_007_redos_alternation_with_quantifier_rejected ... ok [INFO] [stdout] test tests::test_r46_007_redos_escaped_paren_not_confused ... ok [INFO] [stdout] test tests::test_r46_007_redos_group_without_quantifier_allowed ... ok [INFO] [stdout] test tests::test_r46_007_redos_nested_quantifier_rejected ... ok [INFO] [stdout] test tests::test_r46_007_redos_overlength_rejected ... ok [INFO] [stdout] test tests::test_r46_007_redos_simple_quantifier_allowed ... ok [INFO] [stdout] test tests::test_redos_compile_constraint_rejects_unsafe_regex ... ok [INFO] [stdout] test tests::test_redos_legacy_regex_is_match_rejects_unsafe ... ok [INFO] [stdout] test tests::test_r46_007_redos_alternation_star_rejected ... ok [INFO] [stdout] test tests::test_redos_nested_quantifiers_rejected ... ok [INFO] [stdout] test tests::test_redos_star_star_rejected ... ok [INFO] [stdout] test tests::test_redos_valid_patterns_accepted ... ok [INFO] [stdout] test tests::test_regex_allows_safe_query ... ok [INFO] [stdout] test tests::test_regex_invalid_pattern_errors ... ok [INFO] [stdout] test tests::test_redos_overlength_rejected ... ok [INFO] [stdout] test tests::test_regex_require_approval_for_delete ... ok [INFO] [stdout] test tests::test_require_approval_non_boolean_fail_closed ... ok [INFO] [stdout] test tests::test_require_capability_token_depth_insufficient ... ok [INFO] [stdout] test tests::test_require_capability_token_holder_homoglyph_normalization_allows ... ok [INFO] [stdout] test tests::test_require_capability_token_holder_mismatch_denied ... ok [INFO] [stdout] test tests::test_require_capability_token_issuer_allowlist_denied ... ok [INFO] [stdout] test tests::test_require_capability_token_missing_agent_id_denied ... ok [INFO] [stdout] test tests::test_require_capability_token_missing_denied ... ok [INFO] [stdout] test tests::test_require_capability_token_present_allowed ... ok [INFO] [stdout] test tests::test_required_action_sequence_case_insensitive_allows ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_control_chars_rejected ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_empty_sequence_errors ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_empty_string_errors ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_exactly_20_steps_succeeds ... ok [INFO] [stdout] test tests::test_r46_005_json_depth_deeply_nested_returns_capped_depth ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_non_string_errors ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_too_many_steps_errors ... ok [INFO] [stdout] test tests::test_required_action_sequence_duplicate_tools_in_sequence ... ok [INFO] [stdout] test tests::test_required_action_sequence_compile_missing_sequence_errors ... ok [INFO] [stdout] test tests::test_require_capability_token_holder_different_after_normalization_denies ... ok [INFO] [stdout] test tests::test_required_action_sequence_history_shorter_denies ... ok [INFO] [stdout] test tests::test_regex_blocks_sql_injection ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_defaults_true ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_exact_length_allows ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_non_consecutive_allows ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_partial_denies ... ok [INFO] [stdout] test tests::test_required_action_sequence_empty_history_denies ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_absent_denies ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_present_allows ... ok [INFO] [stdout] test tests::test_required_action_sequence_ordered_reversed_denies ... ok [INFO] [stdout] test tests::test_required_action_sequence_repeated_pattern_in_history ... ok [INFO] [stdout] test tests::test_required_action_sequence_single_tool_equivalent ... ok [INFO] [stdout] test tests::test_required_action_sequence_unordered_all_present_allows ... ok [INFO] [stdout] test tests::test_required_action_sequence_unordered_duplicate_needs_multiple ... ok [INFO] [stdout] test tests::test_sem003_fullwidth_tool_name_matches_deny_policy ... ok [INFO] [stdout] test tests::test_required_action_sequence_unordered_missing_one_denies ... ok [INFO] [stdout] test tests::test_sem003_prefix_policy_catches_fullwidth_prefix ... ok [INFO] [stdout] test tests::test_sem003_fullwidth_tool_name_matches_allow_policy ... ok [INFO] [stdout] test tests::test_sem003_cyrillic_tool_name_matches_deny_policy ... ok [INFO] [stdout] test tests::test_set_max_path_decode_iterations ... ok [INFO] [stdout] test tests::test_tool_index_empty_policies ... ok [INFO] [stdout] test tests::test_tool_index_prefix_goes_to_always_check ... ok [INFO] [stdout] test tests::test_tool_index_priority_order_preserved ... ok [INFO] [stdout] test tests::test_tool_index_universal_interleaves_with_indexed ... ok [INFO] [stdout] test tests::test_traced_allow_simple ... ok [INFO] [stdout] test tests::test_traced_all_skipped_fail_closed ... ok [INFO] [stdout] test tests::test_r46_005_json_depth_wide_json_bounded ... ok [INFO] [stdout] test tests::test_traced_constraint_glob ... ok [INFO] [stdout] test tests::test_traced_deny_simple ... ok [INFO] [stdout] test tests::test_traced_constraint_result_type_info ... ok [INFO] [stdout] test tests::test_traced_domain_match_constraint ... ok [INFO] [stdout] test tests::test_traced_duration_recorded ... ok [INFO] [stdout] test tests::test_traced_ip_rules_enforced ... ok [INFO] [stdout] test tests::test_traced_multiple_policies_first_match_wins ... ok [INFO] [stdout] test tests::test_traced_forbidden_parameter ... ok [INFO] [stdout] test tests::test_traced_require_approval ... ok [INFO] [stdout] test tests::test_traced_verdict_consistency ... ok [INFO] [stdout] test tests::test_unknown_on_match_action_errors ... ok [INFO] [stdout] test tests::test_traced_no_matching_policy ... ok [INFO] [stdout] test tests::test_traced_no_policies ... ok [INFO] [stdout] test tests::test_validate_domain_pattern_invalid ... ok [INFO] [stdout] test tests::test_validate_domain_pattern_valid ... ok [INFO] [stdout] test tests::test_validate_domain_pattern_wildcard_prefix_only ... ok [INFO] [stdout] test tests::test_wildcard_scan_allows_when_no_match ... ok [INFO] [stdout] test tests::test_unknown_operator_errors ... ok [INFO] [stdout] test tests::test_wildcard_scan_catches_nested_url ... ok [INFO] [stdout] test tests::test_wildcard_scan_catches_path_in_array ... ok [INFO] [stdout] test tests::test_wildcard_scan_no_string_values_on_missing_deny ... ok [INFO] [stdout] test tests::test_wildcard_scan_deeply_nested_value ... ok [INFO] [stdout] test tests::test_wildcard_scan_combined_with_specific_param ... ok [INFO] [stdout] test tests::test_wildcard_scan_no_string_values_on_missing_skip ... ok [INFO] [stdout] test tests::test_workflow_template_branch_allows_either_successor ... ok [INFO] [stdout] test tests::test_workflow_template_case_insensitive ... ok [INFO] [stdout] test tests::test_workflow_template_compile_control_chars_rejected ... ok [INFO] [stdout] test tests::test_wildcard_scan_require_approval_on_match ... ok [INFO] [stdout] test tests::test_workflow_template_compile_cycle_rejects ... ok [INFO] [stdout] test tests::test_workflow_template_compile_duplicate_step_errors ... ok [INFO] [stdout] test tests::test_workflow_template_compile_empty_steps_errors ... ok [INFO] [stdout] test tests::test_workflow_template_compile_exactly_50_steps_succeeds ... ok [INFO] [stdout] test tests::test_workflow_template_compile_invalid_enforce_errors ... ok [INFO] [stdout] test tests::test_workflow_template_compile_missing_then_errors ... ok [INFO] [stdout] test tests::test_workflow_template_compile_missing_tool_errors ... ok [INFO] [stdout] test tests::test_workflow_template_compile_self_cycle_rejects ... ok [INFO] [stdout] test tests::test_workflow_template_compile_too_many_steps_errors ... ok [INFO] [stdout] test tests::test_workflow_template_disconnected_components ... ok [INFO] [stdout] test tests::test_workflow_template_enforce_defaults_strict ... ok [INFO] [stdout] test tests::test_workflow_template_explicit_terminal_node ... ok [INFO] [stdout] test tests::test_workflow_template_governed_after_non_governed_history ... ok [INFO] [stdout] test tests::test_workflow_template_invalid_successor_strict_denies ... ok [INFO] [stdout] test tests::test_workflow_template_multi_step_full_path ... ok [INFO] [stdout] test tests::test_workflow_template_invalid_successor_warn_allows ... ok [INFO] [stdout] test tests::test_workflow_template_non_entry_point_first_denies ... ok [INFO] [stdout] test tests::test_tool_index_evaluation_matches_linear_scan ... ok [INFO] [stdout] test tests::test_workflow_template_single_node ... ok [INFO] [stdout] test tests::test_workflow_template_terminal_no_successor_denies ... ok [INFO] [stdout] test tests::test_workflow_template_non_governed_tool_passthrough ... ok [INFO] [stdout] test tests::test_workflow_template_terminal_node_allowed ... ok [INFO] [stdout] test tests::test_wildcard_scan_regex_across_all_values ... ok [INFO] [stdout] test traced::tests::test_constraint_expected_str_domain_match ... ok [INFO] [stdout] test traced::tests::test_constraint_expected_str_domain_not_in ... ok [INFO] [stdout] test traced::tests::test_constraint_expected_str_eq ... ok [INFO] [stdout] test tests::test_workflow_template_valid_first_step_allows ... ok [INFO] [stdout] test tests::test_tool_index_is_populated ... ok [INFO] [stdout] test tests::test_workflow_template_valid_successor_allows ... ok [INFO] [stdout] test traced::tests::test_constraint_type_str_all_variants ... ok [INFO] [stdout] test traced::tests::test_describe_value_array_empty ... ok [INFO] [stdout] test traced::tests::test_describe_value_bool_false ... ok [INFO] [stdout] test traced::tests::test_constraint_expected_str_ne ... ok [INFO] [stdout] test traced::tests::test_describe_value_bool_true ... ok [INFO] [stdout] test traced::tests::test_describe_value_object_empty ... ok [INFO] [stdout] test traced::tests::test_describe_value_null ... ok [INFO] [stdout] test traced::tests::test_describe_value_number_float ... ok [INFO] [stdout] test traced::tests::test_describe_value_object_nonempty ... ok [INFO] [stdout] test traced::tests::test_describe_value_string_empty ... ok [INFO] [stdout] test traced::tests::test_describe_value_string_nonempty ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_action_summary_param_count ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_allow_policy ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_conditional_require_approval ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_no_match_deny ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_no_policies_deny ... ok [INFO] [stdout] test traced::tests::test_json_depth_empty_containers ... ok [INFO] [stdout] test traced::tests::test_json_depth_flat_array ... ok [INFO] [stdout] test traced::tests::test_describe_value_number_integer ... ok [INFO] [stdout] test traced::tests::test_json_depth_flat_object ... ok [INFO] [stdout] test traced::tests::test_json_depth_mixed_nesting ... ok [INFO] [stdout] test traced::tests::test_json_depth_nested_arrays ... ok [INFO] [stdout] test traced::tests::test_json_depth_nested_objects ... ok [INFO] [stdout] test traced::tests::test_json_depth_scalar_zero ... ok [INFO] [stdout] test tests::test_forbidden_action_sequence_at_max_capacity_still_evaluates ... ok [INFO] [stdout] test traced::tests::test_json_depth_wide_object ... ok [INFO] [stdout] test traced::tests::test_policy_type_str_deny ... ok [INFO] [stdout] test traced::tests::test_policy_type_str_conditional ... ok [INFO] [stdout] test verified_capability_context::tests::test_capability_holder_binding_valid_fails_closed_without_agent ... ok [INFO] [stdout] test verified_capability_context::tests::test_capability_remaining_depth_sufficient_is_inclusive ... ok [INFO] [stdout] test verified_capability_context::tests::test_capability_issuer_allowed_respects_allowlist ... ok [INFO] [stdout] test verified_capability_delegation_context::tests::test_delegated_capability_context_valid_conjoins_principal_and_depth ... ok [INFO] [stdout] test verified_capability_delegation_context::tests::test_delegated_capability_depths_valid_requires_both_bounds ... ok [INFO] [stdout] test verified_capability_delegation_context::tests::test_delegated_capability_issuer_valid_respects_allowlist ... ok [INFO] [stdout] test traced::tests::test_policy_type_str_allow ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_all_constraints_skipped_detected ... ok [INFO] [stdout] test verified_capability_delegation_context::tests::test_delegated_capability_principal_and_holder_valid_requires_token_and_binding ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_forbidden_parameter_detected ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_conditional_verdict_precedence ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_no_match_verdict ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_conditional_verdict_paths ... ok [INFO] [stdout] test verified_constraint_eval::tests::test_skipped_constraints_continue ... ok [INFO] [stdout] test verified_context_delegation::tests::test_delegation_depth_within_limit_is_inclusive ... ok [INFO] [stdout] test verified_context_delegation::tests::test_chain_depth_within_limit_is_inclusive ... ok [INFO] [stdout] test verified_context_delegation::tests::test_identified_principal_present_accepts_either_identity_source ... ok [INFO] [stdout] test verified_core::tests::test_all_constraints_skipped_continue ... ok [INFO] [stdout] test verified_core::tests::test_all_constraints_skipped_in_chain_then_allow ... ok [INFO] [stdout] test verified_core::tests::test_all_constraints_skipped_no_continue_in_chain ... ok [INFO] [stdout] test verified_core::tests::test_all_constraints_skipped_no_continue_deny ... ok [INFO] [stdout] test verified_core::tests::test_conditional_fired_deny ... ok [INFO] [stdout] test traced::tests::test_evaluate_action_traced_deny_policy ... ok [INFO] [stdout] test verified_core::tests::test_conditional_fired_deny_verdict_from_constraint ... ok [INFO] [stdout] test verified_context_delegation::tests::test_principal_requirement_satisfied_fails_closed_when_required ... ok [INFO] [stdout] test verified_core::tests::test_conditional_fired_allow ... ok [INFO] [stdout] test verified_core::tests::test_conditional_implicit_allow_when_no_continue ... ok [INFO] [stdout] test verified_core::tests::test_conditional_no_fire_no_continue_implicit_allow ... ok [INFO] [stdout] test verified_core::tests::test_conditional_fired_require_approval ... ok [INFO] [stdout] test verified_core::tests::test_context_deny_on_conditional_overrides_fired_allow ... ok [INFO] [stdout] test verified_core::tests::test_context_deny_overrides_allow ... ok [INFO] [stdout] test traced::tests::test_describe_value_array_nonempty ... ok [INFO] [stdout] test verified_core::tests::test_large_policy_set_all_unmatched ... ok [INFO] [stdout] test verified_core::tests::test_mixed_continue_then_continue_then_deny ... ok [INFO] [stdout] test verified_core::tests::test_many_unmatched_then_conditional_fired_allow ... ok [INFO] [stdout] test verified_core::tests::test_mixed_unmatched_continue_deny ... ok [INFO] [stdout] test verified_core::tests::test_mixed_unmatched_then_allow ... ok [INFO] [stdout] test verified_core::tests::test_large_policy_set_first_match_deny ... ok [INFO] [stdout] test verified_core::tests::test_require_approval_in_conditional_chain ... ok [INFO] [stdout] test verified_core::tests::test_require_approval_verdict ... ok [INFO] [stdout] test verified_core::tests::test_rule_override_before_context_deny ... ok [INFO] [stdout] test verified_core::tests::test_rule_override_on_first_match_skips_later_allow ... ok [INFO] [stdout] test verified_core::tests::test_single_unmatched_produces_deny ... ok [INFO] [stdout] test verified_core::tests::test_v2_all_unmatched_produces_deny ... ok [INFO] [stdout] test verified_core::tests::test_v3_allow_not_from_deny_policy ... ok [INFO] [stdout] test verified_core::tests::test_v1_empty_produces_deny ... ok [INFO] [stdout] test verified_core::tests::test_v3_allow_from_allow_policy ... ok [INFO] [stdout] test verified_core::tests::test_v3_allow_not_from_context_deny ... ok [INFO] [stdout] test verified_core::tests::test_v4_rule_override_on_conditional ... ok [INFO] [stdout] test verified_core::tests::test_v4_rule_override_forces_deny ... ok [INFO] [stdout] test verified_core::tests::test_v3_allow_not_from_rule_override ... ok [INFO] [stdout] test verified_core::tests::test_conditional_chain_with_fired_deny_at_end ... ok [INFO] [stdout] test verified_core::tests::test_v4_rule_override_on_deny_policy ... ok [INFO] [stdout] test verified_core::tests::test_context_deny_on_first_match_skips_later_allow ... ok [INFO] [stdout] test verified_core::tests::test_v6_higher_priority_allow_wins ... ok [INFO] [stdout] test verified_core::tests::test_v8_all_conditional_continue_produces_deny ... ok [INFO] [stdout] test verified_core::tests::test_v8_conditional_continue_skips_to_next ... ok [INFO] [stdout] test verified_core::tests::test_v8_conditional_continue_then_deny ... ok [INFO] [stdout] test verified_deputy::tests::test_delegated_principal_and_tool_checks_are_identities ... ok [INFO] [stdout] test verified_deputy::tests::test_delegation_depth_within_limit_is_strict ... ok [INFO] [stdout] test verified_deputy::tests::test_redelegation_chain_principal_valid_requires_parent_delegate_match ... ok [INFO] [stdout] test verified_entropy_gate::tests::test_entropy_alert_level ... ok [INFO] [stdout] test verified_core::tests::test_v7_deny_before_allow_at_equal_priority ... ok [INFO] [stdout] test verified_deputy::tests::test_redelegation_tool_allowed_respects_parent_scope ... ok [INFO] [stdout] test verified_entropy_gate::tests::test_entropy_alert_severity ... ok [INFO] [stdout] test verified_entropy_gate::tests::test_high_severity_entropy_threshold ... ok [INFO] [stdout] test verified_entropy_gate::tests::test_is_high_entropy_millibits ... ok [INFO] [stdout] test verified_entropy_gate::tests::test_should_alert_on_high_entropy_count ... ok [INFO] [stdout] test wasm_plugin::tests::test_duplicate_plugin_name_rejected ... ok [INFO] [stdout] test wasm_plugin::tests::test_evaluate_all_disabled_returns_empty ... ok [INFO] [stdout] test wasm_plugin::tests::test_evaluate_all_allow_and_deny ... ok [INFO] [stdout] test wasm_plugin::tests::test_evaluate_all_empty_returns_empty ... ok [INFO] [stdout] test wasm_plugin::tests::test_fuel_limit_validation_too_high ... ok [INFO] [stdout] test wasm_plugin::tests::test_fuel_limit_validation_too_low ... ok [INFO] [stdout] test wasm_plugin::tests::test_evaluate_all_error_produces_deny ... ok [INFO] [stdout] test wasm_plugin::tests::test_invalid_plugin_name_control_chars ... ok [INFO] [stdout] test wasm_plugin::tests::test_invalid_plugin_name_too_long ... ok [INFO] [stdout] test wasm_plugin::tests::test_invalid_plugin_path_traversal ... ok [INFO] [stdout] test wasm_plugin::tests::test_invalid_plugin_path_empty ... ok [INFO] [stdout] test verified_core::tests::test_v6_higher_priority_deny_wins ... ok [INFO] [stdout] test verified_deputy::tests::test_next_delegation_depth_saturates ... ok [INFO] [stdout] test verified_core::tests::test_v8_conditional_continue_then_allow ... ok [INFO] [stdout] test wasm_plugin::tests::test_load_plugin_success ... ok [INFO] [stdout] test wasm_plugin::tests::test_invalid_plugin_path_control_chars ... ok [INFO] [stdout] test wasm_plugin::tests::test_max_plugins_bound_enforced ... ok [INFO] [stdout] test wasm_plugin::tests::test_memory_limit_bounds_too_low ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_action_deny_unknown_fields ... ok [INFO] [stdout] test wasm_plugin::tests::test_load_plugin_disabled_system ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_config_deny_unknown_fields ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_config_validation_empty_name ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_config_validation_valid ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_error_types_display ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_manager_config_max_plugins_exceeded ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_manager_config_zero_plugins_when_enabled ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_manager_creation_default ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_manager_creation_enabled ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_verdict_deny_unknown_fields ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_verdict_serialization ... ok [INFO] [stdout] test wasm_plugin::tests::test_memory_limit_bounds_edge_values ... ok [INFO] [stdout] test wasm_plugin::tests::test_memory_limit_bounds_too_high ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_verdict_validation_reason_control_chars ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_verdict_validation_reason_too_long ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_action_from_action ... ok [INFO] [stdout] test wasm_plugin::tests::test_plugin_action_serialization_roundtrip ... ok [INFO] [stdout] test wasm_plugin::tests::test_r237_eng1_reload_plugins_case_variant_duplicate_rejected ... ok [INFO] [stdout] test wasm_plugin::tests::test_r252_eng1_invalid_verdict_reason_sanitized ... ok [INFO] [stdout] test wasm_plugin::tests::test_r238_eng1_plugin_action_path_normalization_fail_closed ... ok [INFO] [stdout] test wasm_plugin::tests::test_reload_plugins_disabled_system ... ok [INFO] [stdout] test wasm_plugin::tests::test_r252_eng1_error_reason_sanitized_no_control_chars ... ok [INFO] [stdout] test wasm_plugin::tests::test_timeout_bounds ... ok [INFO] [stdout] test wasm_plugin::tests::test_reload_plugins_replaces_all ... ok [INFO] [stdout] test wasm_plugin::tests::test_reload_plugins_atomic_on_validation_failure ... ok [INFO] [stdout] test tests::proptests::prop_evaluate_deterministic ... ok [INFO] [stdout] test wasm_plugin::tests::test_reload_plugins_duplicate_names_rejected ... ok [INFO] [stdout] test tests::proptests::prop_wildcard_matches_all ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1487 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.83s [INFO] [stdout] [INFO] [stderr] Running tests/conditional_policies.rs (/opt/rustwide/target/debug/deps/conditional_policies-4f8a005086670d54) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test conditional_with_forbidden_parameters ... ok [INFO] [stdout] test conditional_with_required_parameters ... ok [INFO] [stdout] test max_chain_depth_compilation_error_on_missing_max_depth ... ok [INFO] [stdout] test max_chain_depth_one_allows_direct_calls ... ok [INFO] [stdout] test conditional_policy_with_non_matching_action ... ok [INFO] [stdout] test max_chain_depth_one_allows_single_hop ... ok [INFO] [stdout] test conditional_allows_when_no_conditions_triggered ... ok [INFO] [stdout] test max_chain_depth_two_allows_single_hop ... ok [INFO] [stdout] test max_chain_depth_zero_allows_direct_calls ... ok [INFO] [stdout] test max_chain_depth_one_denies_double_hop ... ok [INFO] [stdout] test max_chain_depth_zero_denies_single_hop ... ok [INFO] [stdout] test mixed_policies_conditional_and_deny ... ok [INFO] [stderr] Running tests/cross_crate_pipeline.rs (/opt/rustwide/target/debug/deps/cross_crate_pipeline-260576bebf9536f9) [INFO] [stdout] test conditional_policy_requires_approval ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test test_action_with_complex_parameters ... ok [INFO] [stdout] test test_action_with_null_json_parameter ... ok [INFO] [stdout] test test_deny_overrides_allow_regardless_of_order ... ok [INFO] [stdout] test test_deny_overrides_allow_same_priority ... ok [INFO] [stdout] test test_empty_policy_list_non_strict ... ok [INFO] [stdout] test test_empty_policy_list_strict_mode ... ok [INFO] [stdout] test test_empty_tool_and_function_strings ... ok [INFO] [stdout] test test_higher_priority_policy_wins ... ok [INFO] [stdout] test test_i32_max_min_priority ... ok [INFO] [stdout] test test_no_matching_policy_strict_mode_denies ... ok [INFO] [stdout] test test_no_matching_policy_non_strict ... ok [INFO] [stdout] test test_strict_and_non_strict_agree_on_explicit_allow ... ok [INFO] [stdout] test test_negative_priority ... ok [INFO] [stdout] test test_unicode_in_action_fields ... ok [INFO] [stdout] test test_single_allow_policy_permits_action ... ok [INFO] [stdout] test test_single_deny_policy_blocks_action ... ok [INFO] [stdout] test test_star_star_wildcard_matches_everything ... ok [INFO] [stdout] test test_large_policy_set ... ok [INFO] [stdout] test test_strict_and_non_strict_agree_on_explicit_deny ... ok [INFO] [stdout] test test_wildcard_policy_matches_any_function ... ok [INFO] [stderr] Running tests/engine_edge_cases.rs (/opt/rustwide/target/debug/deps/engine_edge_cases-4708f0cf3216bb95) [INFO] [stdout] test test_very_long_strings ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stderr] Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-9493ad9b85871876) [INFO] [stdout] test test_duplicate_deny_policies_still_deny ... ok [INFO] [stdout] test test_different_parameters_same_tool_function ... ok [INFO] [stdout] test test_duplicate_allow_policies_still_allow ... ok [INFO] [stdout] test test_empty_object_vs_populated_parameters ... ok [INFO] [stdout] test test_engine_alternating_strict_instances ... ok [INFO] [stdout] test test_policy_id_exact_match_required ... ok [INFO] [stdout] test test_policy_id_with_no_colon_separator ... ok [INFO] [stdout] test test_policy_matching_is_case_sensitive ... ok [INFO] [stdout] test test_engine_can_evaluate_multiple_times ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 17 tests [INFO] [stdout] test conditional_does_not_trigger_on_non_matching_action ... ok [INFO] [stdout] test conditional_triggers_require_approval_on_match ... ok [INFO] [stdout] test deny_wins_over_allow_at_equal_priority ... ok [INFO] [stdout] test deny_overrides_conditional_at_higher_priority ... ok [INFO] [stdout] test engine_is_reusable_across_evaluations ... ok [INFO] [stdout] test handles_many_policies ... ok [INFO] [stdout] test highest_priority_allow_overrides_lower_deny ... ok [INFO] [stdout] test highest_priority_deny_overrides_multiple_allows ... ok [INFO] [stdout] test nested_json_parameters ... ok [INFO] [stdout] test non_strict_mode_also_denies_with_empty_policy_list ... ok [INFO] [stdout] test null_parameters ... ok [INFO] [stdout] test strict_mode_denies_with_empty_policy_list ... ok [INFO] [stdout] test unicode_in_tool_and_function_names ... ok [INFO] [stdout] test engine_gives_consistent_results ... ok [INFO] [stdout] test strict_mode_allows_when_explicit_allow_exists ... ok [INFO] [stdout] test very_large_parameter_set ... ok [INFO] [stderr] Running tests/parameter_constraints.rs (/opt/rustwide/target/debug/deps/parameter_constraints-caff43220e487efe) [INFO] [stdout] test empty_string_tool_and_function ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test test_domain_extraction_with_port ... ok [INFO] [stdout] test test_domain_match_blocks_evil_subdomain ... ok [INFO] [stdout] test test_domain_not_in_allows_exact_match ... ok [INFO] [stdout] test test_domain_not_in_allows_listed_domain ... ok [INFO] [stdout] test test_domain_not_in_blocks_unknown_domain ... ok [INFO] [stdout] test test_eq_matches ... ok [INFO] [stdout] test test_eq_no_match ... ok [INFO] [stdout] test test_glob_allows_safe_path ... ok [INFO] [stdout] test test_glob_blocks_aws_credentials ... ok [INFO] [stdout] test test_glob_blocks_ssh_keys ... ok [INFO] [stdout] test test_higher_priority_deny_overrides_constraint_allow ... ok [INFO] [stdout] test test_invalid_regex_pattern_errors ... ok [INFO] [stdout] test test_lower_priority_constraint_not_reached ... ok [INFO] [stdout] test test_missing_parameter_denies_by_default ... ok [INFO] [stdout] test test_ne_fires_when_different ... ok [INFO] [stdout] test test_non_string_on_glob_denies_in_non_strict ... ok [INFO] [stdout] test test_non_string_on_glob_errors_in_strict ... ok [INFO] [stdout] test test_none_of_fires_when_not_in_set ... ok [INFO] [stdout] test test_not_glob_allows_within_allowlist ... ok [INFO] [stdout] test test_multiple_constraints_first_match_wins ... ok [INFO] [stdout] test test_not_glob_blocks_outside_allowlist ... ok [INFO] [stdout] test test_on_missing_skip_all_constraints_skipped_denies ... ok [INFO] [stdout] test test_one_of_matches ... ok [INFO] [stdout] test test_path_traversal_normalized ... ok [INFO] [stdout] test test_path_with_dot_segments_normalized ... ok [INFO] [stdout] test test_require_approval_takes_precedence_over_constraints ... ok [INFO] [stdout] test test_unknown_operator_errors ... ok [INFO] [stdout] test test_regex_allows_safe_command ... ok [INFO] [stderr] Running tests/policy_evaluation.rs (/opt/rustwide/target/debug/deps/policy_evaluation-518b3de754d68639) [INFO] [stdout] test test_none_of_does_not_fire_when_in_set ... ok [INFO] [stdout] test test_invalid_glob_pattern_errors ... ok [INFO] [stdout] test test_regex_blocks_rm_rf ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test engine_denies_action_with_deny_policy ... ok [INFO] [stdout] test wildcard_matches_all ... ok [INFO] [stdout] test evaluate_multiple_actions_sequentially ... ok [INFO] [stdout] test no_matching_policy_denies ... ok [INFO] [stdout] test higher_priority_policy_wins ... ok [INFO] [stdout] test engine_allows_action_with_allow_policy ... ok [INFO] [stderr] Running tests/proptest_properties.rs (/opt/rustwide/target/debug/deps/proptest_properties-968c8effe16c46e6) [INFO] [stdout] test empty_policies_always_deny ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test domain_not_in_allowed_set_denies ... ok [INFO] [stdout] test blocked_domain_always_denies ... ok [INFO] [stdout] test domain_matching_is_case_insensitive ... ok [INFO] [stdout] test deny_at_higher_priority_always_wins ... ok [INFO] [stdout] test empty_target_domains_with_allowlist_denies ... ok [INFO] [stdout] test allowed_domain_permits ... ok [INFO] [stdout] test allowed_path_permits ... ok [INFO] [stdout] test extract_domain_is_consistent ... ok [INFO] [stdout] test blocked_path_always_denies ... ok [INFO] [stdout] test extract_domain_is_lowercase ... ok [INFO] [stdout] test extract_domain_no_path ... ok [INFO] [stdout] test get_param_by_path_ambiguous_returns_none ... ok [INFO] [stdout] test get_param_by_path_exact_key_resolves_alone ... ok [INFO] [stdout] test get_param_by_path_is_deterministic ... ok [INFO] [stdout] test empty_target_paths_with_allowlist_denies ... ok [INFO] [stdout] test get_param_by_path_non_dotted_equals_get ... ok [INFO] [stdout] test evaluate_action_is_deterministic ... ok [INFO] [stdout] test higher_priority_always_wins ... ok [INFO] [stdout] test normalize_path_strips_traversal ... ok [INFO] [stdout] test normalize_path_is_idempotent ... ok [INFO] [stdout] test no_policies_always_denies ... ok [INFO] [stdout] test wildcard_domain_matches_subdomains_not_suffix ... ok [INFO] [stdout] test blocked_takes_precedence_over_allowed ... ok [INFO] [stdout] test normalize_path_no_parent_traversal ... ok [INFO] [stdout] test same_priority_deny_wins_over_allow ... ok [INFO] [stdout] test strict_mode_unknown_tool_always_denies ... ok [INFO] [stdout] test path_normalization_before_match ... ok [INFO] [stdout] test path_not_in_allowed_set_denies ... ok [INFO] [stdout] test evaluate_action_never_panics ... ok [INFO] [stderr] Running tests/refinement_trace.rs (/opt/rustwide/target/debug/deps/refinement_trace-2a41a4e97bcbb6d2) [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.18s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test test_refinement_empty_policy_set_fail_closed ... ok [INFO] [stdout] test test_refinement_first_match_deny_from_sorted_order ... ok [INFO] [stdout] test test_refinement_exhausted_no_match ... ok [INFO] [stdout] test test_refinement_match_miss_then_allow ... ok [INFO] [stdout] test test_refinement_missing_context_fail_closed ... ok [INFO] [stdout] test test_refinement_require_approval_transition ... ok [INFO] [stdout] test test_refinement_conditional_continue_then_next_policy ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/test_phase7_engine_adversarial.rs (/opt/rustwide/target/debug/deps/test_phase7_engine_adversarial-227f44b789d0ad4a) [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test domain_match_very_long_subdomain ... ok [INFO] [stdout] test domain_match_unicode_domain ... ok [INFO] [stdout] test domain_extraction_ipv6_with_zone_id ... ok [INFO] [stdout] test domain_extraction_data_uri ... ok [INFO] [stdout] test exploit_31_path_normalization_deep_encoding_limit ... ok [INFO] [stdout] test exploit_30_percent_encoded_at_policy_bypass ... ok [INFO] [stdout] test exploit_31_null_byte_in_path_rejected ... ok [INFO] [stdout] test exploit_32_unicode_homoglyph_in_tool_name ... ok [INFO] [stdout] test exploit_31_percent_encoded_null_rejected ... ok [INFO] [stdout] test exploit_30_percent_encoded_at_domain_bypass ... ok [INFO] [stdout] test domain_extraction_empty_authority ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] Doc-tests vellaveto_engine [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test src/circuit_breaker.rs - circuit_breaker (line 22) ... ignored [INFO] [stdout] test src/deputy.rs - deputy (line 17) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "ef4e6539c48f6e657663fe7198968d7863f2b7b6c6952cb5ba39ba59674340e3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef4e6539c48f6e657663fe7198968d7863f2b7b6c6952cb5ba39ba59674340e3", kill_on_drop: false }` [INFO] [stdout] ef4e6539c48f6e657663fe7198968d7863f2b7b6c6952cb5ba39ba59674340e3