[INFO] cloning repository https://github.com/cryptoli/vps-sentinel
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cryptoli/vps-sentinel" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcryptoli%2Fvps-sentinel", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcryptoli%2Fvps-sentinel'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 54569b2731e0f0d8a018ddbb4ecc127b78b59247
[INFO] testing cryptoli/vps-sentinel against 1.100.0-beta.1 for beta-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcryptoli%2Fvps-sentinel" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/cryptoli/vps-sentinel
[INFO] finished tweaking git repo https://github.com/cryptoli/vps-sentinel
[INFO] tweaked toml for git repo https://github.com/cryptoli/vps-sentinel written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/cryptoli/vps-sentinel on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/cryptoli/vps-sentinel already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963
[INFO] running `Command { std: "docker" "start" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.46
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling rustls v0.23.41
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling syn v2.0.118
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling tinyvec v1.11.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling arrayvec v0.7.7
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling crc-catalog v2.5.0
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling unicode-bidi v0.3.18
[INFO] [stderr]    Compiling unicode-properties v0.1.4
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling stringprep v0.1.5
[INFO] [stderr]    Compiling pkcs1 v0.7.5
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling email-encoding v0.4.1
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling uuid v1.23.3
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling whoami v1.6.1
[INFO] [stderr]    Compiling quoted_printable v0.5.2
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling ipnetwork v0.21.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tungstenite v0.24.0
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling maxminddb v0.28.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling rsa v0.9.10
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling hyper v1.10.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling tokio-tungstenite v0.24.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling lettre v0.11.22
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling sentinel-core v0.3.1 (/opt/rustwide/workdir/crates/sentinel-core)
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling sqlx-mysql v0.8.6
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling sentinel-agent v0.3.1 (/opt/rustwide/workdir/crates/sentinel-agent)
[INFO] [stderr]    Compiling sentinel-panel v0.3.1 (/opt/rustwide/workdir/crates/sentinel-panel)
[INFO] [stderr]    Compiling sentinel-cli v0.3.1 (/opt/rustwide/workdir/crates/sentinel-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 22s
[INFO] running `Command { std: "docker" "inspect" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.13.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling sqlx-mysql v0.8.6
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling sqlx-postgres v0.8.6
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling sentinel-agent v0.3.1 (/opt/rustwide/workdir/crates/sentinel-agent)
[INFO] [stderr]    Compiling sentinel-core v0.3.1 (/opt/rustwide/workdir/crates/sentinel-core)
[INFO] [stderr]    Compiling sentinel-panel v0.3.1 (/opt/rustwide/workdir/crates/sentinel-panel)
[INFO] [stderr]    Compiling sentinel-cli v0.3.1 (/opt/rustwide/workdir/crates/sentinel-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 39.87s
[INFO] running `Command { std: "docker" "inspect" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.69s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/sentinel-agent/a75d6033e4b47ac5/out/sentinel_agent-a75d6033e4b47ac5)
[INFO] [stdout] 
[INFO] [stdout] running 424 tests
[INFO] [stdout] test active_response::tests::legacy_port_guard_rule_detection_is_narrow ... ok
[INFO] [stdout] test active_response::tests::fingerprint_action_hint_does_not_block_unresolved_proxy_source ... ok
[INFO] [stdout] test active_response::tests::allowlisted_and_non_public_ips_are_never_blocked ... ok
[INFO] [stdout] test active_response::tests::grouped_web_probe_family_list_can_trigger_aggregate_block ... ok
[INFO] [stdout] test active_response::tests::fingerprint_action_hint_can_block_below_rule_threshold ... ok
[INFO] [stdout] test active_response::tests::malicious_fingerprint_verdict_uses_permanent_response_layer ... ok
[INFO] [stdout] test active_response::tests::multi_family_web_probe_aggregate_blocks_low_and_slow_scan ... ok
[INFO] [stdout] test active_response::tests::public_ip_classifier_rejects_non_routable_ranges ... ok
[INFO] [stdout] test active_response::tests::benign_fingerprint_feedback_suppresses_active_response ... ok
[INFO] [stdout] test active_response::tests::high_confidence_web_exploit_blocks_on_single_attempt ... ok
[INFO] [stdout] test active_response::tests::ssh_success_after_bruteforce_uses_same_response_policy ... ok
[INFO] [stdout] test active_response::tests::split_iptables_rule_preserves_quoted_comment ... ok
[INFO] [stdout] test active_response::tests::strong_web_signal_uses_layered_ttl_and_permanent_threshold ... ok
[INFO] [stdout] test active_response::tests::ssh_bruteforce_blocks_only_at_block_threshold ... ok
[INFO] [stdout] test active_response::tests::trusted_proxy_cidr_ips_are_never_block_candidates ... ok
[INFO] [stdout] test active_response::tests::response_policy_explicit_ttl_and_permanent_threshold_override_layer ... ok
[INFO] [stdout] test active_response::tests::unresolved_trusted_proxy_web_findings_are_not_block_candidates ... ok
[INFO] [stdout] test attack_fingerprint::tests::explanation_prioritizes_interpretable_cluster_signals ... ok
[INFO] [stdout] test attack_fingerprint::tests::privacy_mask_ip_stores_stable_hash_not_raw_ip ... ok
[INFO] [stdout] test active_response::tests::multi_family_web_probe_aggregate_honors_policy_and_ip_safety ... ok
[INFO] [stdout] test active_response::tests::strict_strategy_requires_repeated_rejected_exploit_probes ... ok
[INFO] [stdout] test advice::tests::process_advice_includes_evidence_preservation ... ok
[INFO] [stdout] test baseline::approval::tests::approval_key_is_stable_for_same_diff ... ok
[INFO] [stdout] test active_response::tests::web_probe_blocks_only_after_strict_thresholds ... ok
[INFO] [stdout] test baseline::diff::tests::detects_authorized_keys_hash_change ... ok
[INFO] [stdout] test baseline::diff::tests::detects_listener_owner_change ... ok
[INFO] [stdout] test baseline::approval::tests::approval_items_score_dynamic_udp_drift_with_current_config ... ok
[INFO] [stdout] test attack_fingerprint::tests::web_fingerprint_ignores_source_ip_but_keeps_source_as_observation ... ok
[INFO] [stdout] test attack_fingerprint::tests::simhash_groups_small_path_shape_variants ... ok
[INFO] [stdout] test attack_fingerprint::tests::action_hint_requires_repeated_unknown_fingerprint ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_downgrades_dynamic_udp_listener_drift ... ok
[INFO] [stdout] test baseline::approval::tests::refresh_applies_only_approved_changes ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_assessment_uses_change_magnitude_without_path_allowlists ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_downgrades_low_non_privileged_udp6_listener_drift ... ok
[INFO] [stdout] test attack_fingerprint::tests::ssh_fingerprint_uses_user_dictionary_not_ip ... ok
[INFO] [stdout] test baseline::diff::tests::parses_ipv6_listener_key_for_new_port ... ok
[INFO] [stdout] test baseline::diff::tests::detects_persistence_semantic_delta ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_downgrades_non_public_listener_drift ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_keeps_low_udp_listener_reviewable ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_scores_semantic_persistence_traits ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_scores_sudoers_privilege_traits ... ok
[INFO] [stdout] test baseline::drift::tests::approval_event_treats_authorized_keys_as_sensitive_drift ... ok
[INFO] [stdout] test baseline::drift::tests::authorized_keys_drift_stays_high_risk_with_package_context ... ok
[INFO] [stdout] test baseline::drift::tests::dynamic_udp_service_profile_finding_stays_routine ... ok
[INFO] [stdout] test baseline::drift::tests::non_baseline_previous_fields_are_not_reclassified_as_drift ... ok
[INFO] [stdout] test baseline::drift::tests::managed_service_listener_drift_stays_low_risk ... ok
[INFO] [stdout] test baseline::drift::tests::package_context_downgrades_generic_file_drift ... ok
[INFO] [stdout] test baseline::semantic::tests::authorized_keys_profile_hashes_key_material_without_raw_key ... ok
[INFO] [stdout] test baseline::semantic::tests::semantic_delta_summarizes_change ... ok
[INFO] [stdout] test baseline::semantic::tests::sshd_config_profile_flags_risky_auth_directives ... ok
[INFO] [stdout] test baseline::semantic::tests::web_and_package_configs_have_semantic_profiles ... ok
[INFO] [stdout] test baseline::snapshot::tests::builds_listener_service_baseline ... ok
[INFO] [stdout] test baseline::snapshot::tests::builds_snapshot_from_file_and_user_events ... ok
[INFO] [stdout] test baseline::snapshot::tests::canonicalizes_equivalent_systemd_unit_paths ... ok
[INFO] [stdout] test collectors::audit::tests::parses_execve_record ... ok
[INFO] [stdout] test collectors::config_risk::tests::ignores_commented_ssh_config_lines ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::normalizes_connect_events_for_outbound_profiles ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::file_bridge_reads_only_new_jsonl_lines ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::file_bridge_resets_cursor_after_truncation ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::normalizes_file_activity_events ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::normalizes_runtime_probe_exec_fields ... ok
[INFO] [stdout] test collectors::ebpf_bridge::tests::parses_jsonl_bridge_events ... ok
[INFO] [stdout] test collectors::file_integrity::tests::detects_webshell_content_markers ... ok
[INFO] [stdout] test collectors::firewall::tests::classifies_active_and_observed_firewall_sources ... ok
[INFO] [stdout] test collectors::file_integrity::tests::collects_ssh_authorized_keys_when_file_integrity_is_disabled ... ok
[INFO] [stdout] test collectors::firewall::tests::reports_inactive_when_tools_exist_without_rules ... ok
[INFO] [stdout] test collectors::firewall::tests::extracts_unrestricted_iptables_drop_ports ... ok
[INFO] [stdout] test collectors::gpu::tests::parses_numeric_memory_prefix ... ok
[INFO] [stdout] test collectors::firewall::tests::extracts_unrestricted_nft_drop_ports ... ok
[INFO] [stdout] test collectors::gpu::tests::parses_nvidia_compute_apps_with_gpu_uuid ... ok
[INFO] [stdout] test collectors::gpu::tests::parses_nvidia_compute_apps_without_gpu_uuid ... ok
[INFO] [stdout] test collectors::file_integrity::tests::skips_non_web_ssh_key_like_content ... ok
[INFO] [stdout] test collectors::file_integrity::tests::skips_ssh_authorized_keys_when_ssh_monitoring_is_disabled ... ok
[INFO] [stdout] test collectors::gpu::tests::parses_nvidia_gpu_utilization_and_power_stats ... ok
[INFO] [stdout] test collectors::gpu::tests::parses_rocm_json_process_objects ... ok
[INFO] [stdout] test collectors::gpu::tests::skips_non_process_lines ... ok
[INFO] [stdout] test collectors::log_integrity::tests::collects_log_file_snapshot ... ok
[INFO] [stdout] test collectors::log_integrity::tests::detects_recent_rotated_sibling ... ok
[INFO] [stdout] test collectors::network::tests::marks_special_use_remote_address_as_non_public ... ok
[INFO] [stdout] test collectors::network::tests::parses_established_tcp_connection ... ok
[INFO] [stdout] test collectors::network::tests::parses_listening_tcp_socket ... ok
[INFO] [stdout] test collectors::network::tests::parses_socket_inode_symlink ... ok
[INFO] [stdout] test collectors::persistence::tests::identifies_persistence_command_candidates ... ok
[INFO] [stdout] test collectors::ssh::tests::aggregates_failed_ssh_attempts_without_losing_counts ... ok
[INFO] [stdout] test collectors::network::tests::parses_proc_tcp6_loopback_address ... ok
[INFO] [stdout] test collectors::ssh::tests::failure_aggregate_takes_priority_when_event_cap_is_reached ... ok
[INFO] [stdout] test collectors::ssh::tests::filters_auth_lines_by_recent_syslog_timestamp ... ok
[INFO] [stdout] test collectors::ssh::tests::filters_auth_lines_by_recent_iso_timestamp ... ok
[INFO] [stdout] test collectors::ssh::tests::parses_failed_invalid_user_login ... ok
[INFO] [stdout] test collectors::ssh::tests::parses_journalctl_short_iso_login ... ok
[INFO] [stdout] test collectors::ssh::tests::parses_successful_password_login ... ok
[INFO] [stdout] test collectors::users::tests::parses_uid_zero_user ... ok
[INFO] [stdout] test collectors::web_logs::tests::filters_rotated_log_lines_outside_lookback ... ok
[INFO] [stdout] test collectors::web_logs::tests::marks_unresolved_trusted_proxy_common_log_source ... ok
[INFO] [stdout] test collectors::web_logs::tests::parses_common_access_log_line ... ok
[INFO] [stdout] test collectors::web_logs::tests::parses_json_access_log_line ... ok
[INFO] [stdout] test collectors::web_logs::tests::parses_nginx_error_log_request_context ... ok
[INFO] [stdout] test collectors::web_logs::tests::resolves_real_client_ip_from_trusted_proxy_json_logs ... ok
[INFO] [stdout] test collectors::web_logs::tests::strips_raw_log_line_when_disabled ... ok
[INFO] [stdout] test daemon::tests::legacy_scheduled_report_state_is_mapped_to_its_daily_slot ... ok
[INFO] [stdout] test daemon::tests::scheduled_report_state_suppresses_only_the_same_daily_slot ... ok
[INFO] [stdout] test daemon::tests::scheduled_report_waits_until_configured_utc_hour ... ok
[INFO] [stdout] test detectors::audit_rules::tests::detects_audit_network_execution_bridge ... ok
[INFO] [stdout] test detectors::audit_rules::tests::ignores_plain_admin_command ... ok
[INFO] [stdout] test detectors::audit_rules::tests::detects_noninteractive_privilege_execution ... ok
[INFO] [stdout] test collectors::package_manager::tests::collects_recent_package_manager_activity ... ok
[INFO] [stdout] test detectors::behavior_profile::tests::execstart_matching_uses_executable_or_process_basename ... ok
[INFO] [stdout] test detectors::behavior_profile::tests::outbound_profile_counts_public_connections_and_caps_address_sample ... ok
[INFO] [stdout] test detectors::command_profile::tests::detects_common_network_execution_bridges ... ok
[INFO] [stdout] test detectors::command_profile::tests::ignores_non_shell_exec_bridges ... ok
[INFO] [stdout] test detectors::command_profile::tests::tty_detection_requires_pty_option_boundary ... ok
[INFO] [stdout] test detectors::command_profile::tests::ignores_plain_forwarders_and_shell_wrappers ... ok
[INFO] [stdout] test detectors::external_rules::tests::parses_yara_cli_output ... ok
[INFO] [stdout] test detectors::file_rules::tests::detects_authorized_keys2_baseline_drift_as_ssh_finding ... ok
[INFO] [stdout] test detectors::file_rules::tests::detects_authorized_keys_symlink_to_temp_target ... ok
[INFO] [stdout] test detectors::file_rules::tests::authorized_keys_drift_includes_semantic_delta ... ok
[INFO] [stdout] test detectors::file_rules::tests::ignores_strict_authorized_keys_permissions ... ok
[INFO] [stdout] test detectors::file_rules::tests::recognizes_authorized_keys_and_legacy_authorized_keys2 ... ok
[INFO] [stdout] test detectors::file_rules::tests::short_lived_file_activity_ignores_plain_reads_and_non_sensitive_paths ... ok
[INFO] [stdout] test detectors::network_rules::tests::classifies_public_listener_addresses_without_loopback_noise ... ok
[INFO] [stdout] test detectors::file_rules::tests::critical_file_drift_includes_package_activity_context ... ok
[INFO] [stdout] test detectors::file_rules::tests::detects_unsafe_authorized_keys_permissions ... ok
[INFO] [stdout] test detectors::external_rules::tests::validates_external_rule_files_with_actionable_issues ... ok
[INFO] [stdout] test detectors::network_rules::tests::allowlist_suppresses_high_risk_public_port ... ok
[INFO] [stdout] test detectors::external_rules::tests::sigma_like_rule_matches_structured_fields ... ok
[INFO] [stdout] test detectors::network_rules::tests::command_allowlist_suppresses_listener_process_risk ... ok
[INFO] [stdout] test detectors::file_rules::tests::short_lived_sensitive_file_activity_alerts ... ok
[INFO] [stdout] test detectors::network_rules::tests::coalesces_dual_stack_high_risk_public_port ... ok
[INFO] [stdout] test detectors::file_rules::tests::webshell_content_requires_combined_risk_markers ... ok
[INFO] [stdout] test detectors::network_rules::tests::expected_high_risk_public_port_suppresses_exposure_only_alert ... ok
[INFO] [stdout] test detectors::network_rules::tests::expected_high_risk_public_port_still_reports_suspicious_owner ... ok
[INFO] [stdout] test detectors::network_rules::tests::coalesces_dual_stack_new_public_port_drift ... ok
[INFO] [stdout] test detectors::network_rules::tests::high_risk_public_port_includes_firewall_context_when_available ... ok
[INFO] [stdout] test detectors::network_rules::tests::does_not_mark_shell_listener_as_managed_service_drift ... ok
[INFO] [stdout] test detectors::network_rules::tests::high_risk_public_port_dedup_ignores_firewall_source_churn ... ok
[INFO] [stdout] test detectors::network_rules::tests::ignores_ipv6_loopback_listener_baseline_drift ... ok
[INFO] [stdout] test detectors::network_rules::tests::marks_managed_service_port_drift_for_noise_scoring ... ok
[INFO] [stdout] test detectors::network_rules::tests::keeps_distinct_specific_public_listener_addresses ... ok
[INFO] [stdout] test detectors::network_rules::tests::ignores_plain_forwarding_command_on_expected_port ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_new_public_port_from_baseline_drift ... ok
[INFO] [stdout] test detectors::network_rules::tests::protected_high_risk_port_still_reports_suspicious_listener_process ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_high_risk_public_port_from_current_state ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_high_risk_udp_public_port ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_non_suspicious_owner_change_on_expected_web_port ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_suspicious_process_on_expected_web_port ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_suspicious_process_on_high_risk_port_as_one_behavior_alert ... ok
[INFO] [stdout] test detectors::network_rules::tests::suppresses_expected_web_ports ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_specific_public_ip_high_risk_listener ... ok
[INFO] [stdout] test detectors::network_rules::tests::suppresses_generic_udp_high_port_from_baseline_drift ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_suspicious_udp_listener_process ... ok
[INFO] [stdout] test detectors::network_rules::tests::suppresses_new_public_tcp_port_when_firewall_protects_port ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::detector_ignores_cloud_init_hotplug_shell_wrapper ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_drift_includes_package_activity_context ... ok
[INFO] [stdout] test detectors::network_rules::tests::suppresses_high_risk_public_port_when_firewall_protects_tcp_port ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_drift_respects_file_path_glob_allowlist ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_risk_model_detects_download_to_shell ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_risk_model_ignores_plain_shell_wrappers ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_risk_model_detects_temp_autostart_payload ... ok
[INFO] [stdout] test detectors::network_rules::tests::suppresses_stable_generic_public_ports_without_baseline_drift ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_drift_includes_semantic_delta ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_risk_model_uses_network_execution_profile ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_detects_privileged_kernel_thread_masquerade ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_detects_renamed_web_path_process ... ok
[INFO] [stdout] test detectors::persistence_rules::tests::persistence_risk_model_parses_systemd_exec_prefix ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_does_not_treat_plain_opt_service_as_web_executable ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_detects_short_lived_hidden_network_process ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_detects_long_lived_unowned_shell_network_process ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_ignores_short_lived_operator_network_push ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_still_detects_temp_cwd_payload ... ok
[INFO] [stdout] test detectors::process_rules::tests::deleted_executable_model_detects_memfd_payload ... ok
[INFO] [stdout] test detectors::process_rules::tests::deleted_executable_model_detects_temp_deleted_payload ... ok
[INFO] [stdout] test detectors::process_rules::tests::deleted_executable_model_ignores_package_upgrade_residue ... ok
[INFO] [stdout] test detectors::process_rules::tests::deleted_runtime_executable_still_alerts ... ok
[INFO] [stdout] test detectors::process_rules::tests::detector_ignores_standard_deleted_service_binaries ... ok
[INFO] [stdout] test detectors::process_rules::tests::gpu_assessment_requires_configured_memory_floor ... ok
[INFO] [stdout] test detectors::process_rules::tests::gpu_memory_alone_is_not_a_process_alert ... ok
[INFO] [stdout] test active_response::tests::observe_strategy_reports_candidates_without_firewall_backend ... ok
[INFO] [stdout] test detectors::process_rules::tests::high_cpu_contributes_to_behavior_cluster_with_other_context ... ok
[INFO] [stdout] test detectors::process_rules::tests::high_gpu_utilization_alone_does_not_alert_for_training_workload ... ok
[INFO] [stdout] test attack_fingerprint::tests::similar_match_keeps_canonical_hash_stable ... ok
[INFO] [stdout] test active_response::tests::lists_active_block_state_without_firewall_verification ... ok
[INFO] [stdout] test detectors::process_rules::tests::local_behavior_profile_drift_is_only_a_supporting_signal ... ok
[INFO] [stdout] test active_response::tests::disabled_permanent_block_keeps_temporary_block ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_command_allowlist_matches_configured_fragments ... ok
[INFO] [stdout] test active_response::tests::block_report_tracks_per_finding_actions ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_patterns_ignore_plain_traffic_forwarding ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_patterns_match_known_bad_fragments ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_start_drift_is_only_a_supporting_behavior_signal ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_tool_indicators_prefer_structured_argv ... ok
[INFO] [stdout] test active_response::tests::observed_candidates_do_not_increment_permanent_block_history ... ok
[INFO] [stdout] test active_response::tests::existing_permanent_block_is_reported_explicitly ... ok
[INFO] [stdout] test active_response::tests::repeated_candidates_escalate_existing_block_to_permanent ... ok
[INFO] [stdout] test detectors::process_rules::tests::high_cpu_alone_is_not_a_process_alert ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_ignores_normal_service_with_many_sockets ... ok
[INFO] [stdout] test detectors::process_rules::tests::renamed_gpu_process_with_pool_port_alerts ... ok
[INFO] [stdout] test detectors::process_rules::tests::known_tool_finding_includes_match_source_and_cpu_context ... ok
[INFO] [stdout] test detectors::network_rules::tests::ignores_plain_business_listener_with_public_outbound_fanout ... ok
[INFO] [stdout] test detectors::network_rules::tests::owner_change_with_systemd_execstart_mismatch_is_suspicious_listener ... ok
[INFO] [stdout] test detectors::process_rules::tests::ordinary_cuda_training_process_with_public_https_is_ignored ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_uses_public_outbound_context_for_renamed_process ... ok
[INFO] [stdout] test detectors::process_rules::tests::runtime_executable_path_alone_is_context_not_alert ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_treats_runtime_cwd_as_context_not_primary_signal ... ok
[INFO] [stdout] test detectors::process_rules::tests::runtime_executable_with_behavior_still_alerts ... ok
[INFO] [stdout] test detectors::risk::tests::merges_signals_with_stable_feature_and_reason_order ... ok
[INFO] [stdout] test detectors::network_rules::tests::reports_hidden_listener_process_on_expected_port_with_outbound_profile ... ok
[INFO] [stdout] test detectors::process_rules::tests::rust_build_script_under_target_suppresses_temp_path_noise ... ok
[INFO] [stdout] test detectors::rule_matrix_tests::root_password_login_is_one_combined_alert ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::does_not_duplicate_root_or_password_login ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::correlates_bruteforce_followed_by_success ... ok
[INFO] [stdout] test detectors::risk::tests::merge_max_keeps_highest_score_and_unions_context ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::reports_non_root_key_successful_login ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::brute_force_dedup_ignores_volatile_failure_count ... ok
[INFO] [stdout] test detectors::process_rules::tests::behavior_cluster_ignores_business_service_with_root_sockets_and_restart ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::successful_login_evidence_preserves_auth_time ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::trusted_admin_root_publickey_login_can_be_reported_as_info ... ok
[INFO] [stdout] test detectors::tamper_rules::tests::ignores_log_truncation_with_recent_rotation_context ... ok
[INFO] [stdout] test detectors::tamper_rules::tests::ignores_ordinary_log_file ... ok
[INFO] [stdout] test detectors::ssh_rules::tests::trusted_admin_root_publickey_login_is_suppressed_without_hiding_password_logins ... ok
[INFO] [stdout] test detectors::tamper_rules::tests::detects_sensitive_log_truncation_without_rotation_context ... ok
[INFO] [stdout] test detectors::user_rules::tests::package_created_system_user_is_low_with_package_context ... ok
[INFO] [stdout] test detectors::process_rules::tests::known_gpu_miner_identity_alerts_even_without_high_cpu ... ok
[INFO] [stdout] test detectors::user_rules::tests::uid_zero_user_is_not_downgraded_by_package_context ... ok
[INFO] [stdout] test detectors::tamper_rules::tests::detects_sensitive_log_disappeared_from_previous_state ... ok
[INFO] [stdout] test detectors::tamper_rules::tests::detects_sensitive_log_redirected_to_null ... ok
[INFO] [stdout] test detectors::web_rules::tests::active_response_probe_family_policy_is_owned_by_web_rules ... ok
[INFO] [stdout] test detectors::web_rules::tests::exploit_payload_probe_aggregates_as_medium_when_rejected ... ok
[INFO] [stdout] test detectors::web_rules::tests::encoded_command_payload_is_classified_without_flagging_normal_query ... ok
[INFO] [stdout] test detectors::web_rules::tests::probe_family_ids_round_trip ... ok
[INFO] [stdout] test evidence_score::tests::enrichment_adds_standard_score_fields ... ok
[INFO] [stdout] test detectors::web_rules::tests::web_error_burst_threshold_is_configurable ... ok
[INFO] [stdout] test detectors::web_rules::tests::successful_sensitive_probe_is_high_value ... ok
[INFO] [stdout] test detectors::web_rules::tests::pearcmd_php_config_injection_is_high_confidence_exploit ... ok
[INFO] [stdout] test evidence_score::tests::scores_strong_process_evidence_without_global_state ... ok
[INFO] [stdout] test detectors::web_rules::tests::recognizes_common_web_probe_paths ... ok
[INFO] [stdout] test findings::tests::coalesced_drift_keeps_package_activity_context ... ok
[INFO] [stdout] test detectors::web_rules::tests::unresolved_trusted_proxy_sources_are_suppressed_by_default ... ok
[INFO] [stdout] test detectors::web_rules::tests::web_probe_paths_are_aggregated_by_source_ip ... ok
[INFO] [stdout] test detectors::web_rules::tests::high_confidence_web_exploit_families_are_classified ... ok
[INFO] [stdout] test evidence_score::tests::downgrade_package_activity_context ... ok
[INFO] [stdout] test findings::tests::coalesces_account_file_drift_with_user_change ... ok
[INFO] [stdout] test findings::tests::coalesces_account_file_drift_without_user_change ... ok
[INFO] [stdout] test findings::tests::coalesces_equivalent_systemd_unit_paths ... ok
[INFO] [stdout] test findings::tests::coalesces_file_and_persistence_findings_for_same_path ... ok
[INFO] [stdout] test incident::tests::correlates_findings_by_source_ip ... ok
[INFO] [stdout] test findings::tests::coalesces_process_findings_by_pid_evidence_when_subjects_differ ... ok
[INFO] [stdout] test incident::tests::expands_timeline_finding_into_attack_chain_stages ... ok
[INFO] [stdout] test findings::tests::coalesces_regular_and_template_systemd_units_for_same_service_family ... ok
[INFO] [stdout] test local_behavior::tests::mature_profile_marks_new_remote_ports_as_supporting_drift ... ok
[INFO] [stdout] test findings::tests::keeps_unrelated_file_findings_separate ... ok
[INFO] [stdout] test maintenance::tests::maintenance_suppresses_interactive_logins_but_keeps_ssh_attack_signals ... ok
[INFO] [stdout] test findings::tests::coalesces_process_findings_for_same_pid ... ok
[INFO] [stdout] test maintenance::tests::maintenance_suppresses_only_lower_severity_baseline_drift ... ok
[INFO] [stdout] test maintenance::tests::maintenance_state_activity_uses_expiration_time ... ok
[INFO] [stdout] test node_metrics::tests::parses_cpu_ticks_from_proc_stat ... ok
[INFO] [stdout] test node_metrics::tests::parses_memory_and_network_without_loopback ... ok
[INFO] [stdout] test maintenance::tests::maintenance_can_keep_interactive_login_notifications_enabled ... ok
[INFO] [stdout] test local_behavior::tests::profile_state_is_bounded_by_recent_identities ... ok
[INFO] [stdout] test local_behavior::tests::public_fanout_requires_multiplier_and_delta ... ok
[INFO] [stdout] test local_behavior::tests::first_seen_process_is_enriched_but_not_marked_as_drift ... ok
[INFO] [stdout] test notify::dingtalk::tests::rejects_failed_business_code ... ok
[INFO] [stdout] test local_behavior::tests::saturated_remote_port_profile_does_not_report_new_port_drift ... ok
[INFO] [stdout] test notify::dingtalk::tests::accepts_success_business_code ... ok
[INFO] [stdout] test notify::email::tests::builds_multipart_email_message ... ok
[INFO] [stdout] test node_metrics::tests::computes_cpu_and_network_delta_metrics ... ok
[INFO] [stdout] test notify::email::tests::builds_plaintext_local_transport ... ok
[INFO] [stdout] test notify::feishu::tests::accepts_code_success ... ok
[INFO] [stdout] test notify::feishu::tests::accepts_status_code_success ... ok
[INFO] [stdout] test notify::render::tests::localizes_process_start_drift_evidence_value ... ok
[INFO] [stdout] test notify::render::tests::renders_active_response_summary_reason_in_chinese_alert ... ok
[INFO] [stdout] test notify::render::tests::localizes_web_probe_family_evidence_value ... ok
[INFO] [stdout] test notify::render::tests::renders_chinese_alert_body ... ok
[INFO] [stdout] test notify::render::tests::renders_chinese_root_password_login_as_single_combined_alert ... ok
[INFO] [stdout] test notify::render::tests::renders_active_response_status_in_chinese_alert ... ok
[INFO] [stdout] test notify::feishu::tests::rejects_failed_business_code ... ok
[INFO] [stdout] test notify::render::tests::localizes_common_evidence_keys_and_values ... ok
[INFO] [stdout] test notify::render::tests::renders_configured_vps_name_in_subject ... ok
[INFO] [stdout] test notify::render::tests::default_render_helpers_use_chinese ... ok
[INFO] [stdout] test notify::render::tests::localizes_attack_fingerprint_evidence ... ok
[INFO] [stdout] test notify::render::tests::renders_service_profile_rule_in_chinese ... ok
[INFO] [stdout] test notify::render::tests::renders_normalized_utc_time ... ok
[INFO] [stdout] test notify::render::tests::renders_html_without_raw_markup_in_values ... ok
[INFO] [stdout] test notify::render::tests::renders_standard_alert_body ... ok
[INFO] [stdout] test notify::render::tests::renders_unknown_rule_in_chinese_without_raw_english_message ... ok
[INFO] [stdout] test notify::render::tests::renders_technical_fields_only_when_enabled ... ok
[INFO] [stdout] test notify::render::tests::renders_telegram_html_without_full_html_document ... ok
[INFO] [stdout] test panel::tests::evidence_is_filtered_and_truncated_for_panel_findings ... ok
[INFO] [stdout] test notify::tests::delivery_plan_bypasses_rate_limit_for_high_findings ... ok
[INFO] [stdout] test panel::tests::panel_active_blocks_prioritize_current_risky_entries ... ok
[INFO] [stdout] test notify::tests::planned_delivery_count_respects_channel_severity ... ok
[INFO] [stdout] test panel::tests::panel_active_blocks_keep_admin_source_ip ... ok
[INFO] [stdout] test panel::tests::panel_probe_sources_derive_category_from_block_rule ... ok
[INFO] [stdout] test panel::tests::panel_probe_sources_aggregate_public_sources ... ok
[INFO] [stdout] test panel::tests::remote_ip_intel_limit_covers_panel_batch_size ... ok
[INFO] [stdout] test panel::tests::parse_cymru_ip_intel_line_builds_cidr_entry ... ok
[INFO] [stdout] test panel::tests::signing_is_deterministic_for_payload_hash_shape ... ok
[INFO] [stdout] test path_match::tests::exact_and_directory_prefix_patterns_match_paths ... ok
[INFO] [stdout] test path_match::tests::glob_patterns_match_full_paths_and_basenames ... ok
[INFO] [stdout] test report::tests::last24h_period_uses_rolling_window ... ok
[INFO] [stdout] test report::tests::report_counts_findings_and_active_response ... ok
[INFO] [stdout] test report::tests::today_period_respects_utc_report_timezone ... ok
[INFO] [stdout] test report::tests::report_splits_blocked_many_temporary_and_permanent_counts ... ok
[INFO] [stdout] test report::tests::today_period_starts_before_now ... ok
[INFO] [stdout] test resource_budget::tests::budget_keeps_high_priority_evidence ... ok
[INFO] [stdout] test resource_budget::tests::budget_keeps_highest_risk_findings ... ok
[INFO] [stdout] test risk_score::tests::unified_score_reads_enriched_value ... ok
[INFO] [stdout] test risk_score::tests::uses_baseline_drift_score_when_it_is_stronger_than_severity ... ok
[INFO] [stdout] test risk_score::tests::uses_detector_score_when_it_is_stronger_than_severity ... ok
[INFO] [stdout] test rules::engine::tests::attack_stage_classifier_uses_rule_prefix_before_text_fallback ... ok
[INFO] [stdout] test risk_score::tests::uses_evidence_score_when_it_is_stronger_than_severity ... ok
[INFO] [stdout] test rules::engine::tests::builtin_rule_ids_are_unique_and_normalized ... ok
[INFO] [stdout] test rules::engine::tests::find_rule_is_case_insensitive ... ok
[INFO] [stdout] test rules::packs::tests::builtin_pack_groups_rules_by_owner ... ok
[INFO] [stdout] test runtime_probe::tests::script_can_include_mutating_file_activity ... ok
[INFO] [stdout] test runtime_probe::tests::script_contains_exec_probe_by_default ... ok
[INFO] [stdout] test scanner::event_budget::tests::raw_event_budget_keeps_security_events_before_noisy_web_rows ... ok
[INFO] [stdout] test rules::engine::tests::builtin_rules_have_owner_matrix_contracts ... ok
[INFO] [stdout] test scanner::tests::active_response_annotation_adds_block_status_to_finding ... ok
[INFO] [stdout] test rules::engine::tests::builtin_rules_include_system_generated_findings ... ok
[INFO] [stdout] test scanner::tests::active_response_annotation_applies_to_related_findings_by_source_ip ... ok
[INFO] [stdout] test scanner::tests::active_response_keeps_small_block_details ... ok
[INFO] [stdout] test scanner::tests::active_response_summary_replaces_many_block_details ... ok
[INFO] [stdout] test scanner::tests::incremental_file_filter_retains_only_detection_relevant_snapshots ... ok
[INFO] [stdout] test scanner::tests::incremental_file_filter_reduces_high_volume_stable_snapshots ... ok
[INFO] [stdout] test fleet::tests::stores_imported_fleet_snapshot ... ok
[INFO] [stdout] test panel::tests::outbox_respects_max_items ... ok
[INFO] [stdout] test panel::tests::panel_transport_body_hides_attack_text_until_decoded ... ok
[INFO] [stdout] test panel::tests::strict_panel_identity_is_privacy_safe ... ok
[INFO] [stdout] test panel::tests::panel_node_location_uploads_safe_public_location ... ok
[INFO] [stdout] test scanner::tests::notification_policy_suppresses_already_handled_active_response_findings ... ok
[INFO] [stdout] test scanner::tests::notification_policy_groups_same_source_web_findings ... ok
[INFO] [stdout] test panel::tests::legacy_panel_outbox_payload_is_sanitized ... ok
[INFO] [stdout] test scanner::tests::log_integrity_state_does_not_save_synthetic_missing_snapshot ... ok
[INFO] [stdout] test scanner::tests::existing_active_response_block_still_uses_recent_duplicate_suppression ... ok
[INFO] [stdout] test scanner::tests::quiet_hours_keep_high_value_findings_by_default ... ok
[INFO] [stdout] test scanner::tests::redacts_finding_subject_and_evidence ... ok
[INFO] [stdout] test scanner::tests::log_integrity_state_ignores_recent_rotation_context ... ok
[INFO] [stdout] test scanner::tests::new_active_response_block_is_retained_when_not_recently_seen ... ok
[INFO] [stdout] test scanner::tests::state_findings_use_longer_reminder_window ... ok
[INFO] [stdout] test scanner::tests::storage_compaction_removes_duplicate_process_argv_and_raw_log_lines ... ok
[INFO] [stdout] test scanner::tests::storage_preparation_can_keep_all_web_events_when_configured ... ok
[INFO] [stdout] test scanner::tests::storage_preparation_keeps_only_relevant_web_events_by_default ... ok
[INFO] [stdout] test scanner::tests::suppresses_duplicate_findings_within_one_scan ... ok
[INFO] [stdout] test scanner::tests::truncation_preserves_utf8_boundaries ... ok
[INFO] [stdout] test scenario_tests::replay_authorized_keys_semantic_drift_alerts ... ok
[INFO] [stdout] test scanner::tests::log_integrity_state_marks_previously_seen_log_missing ... ok
[INFO] [stdout] test detectors::process_rules::tests::process_dedup_ignores_volatile_runtime_metrics ... ok
[INFO] [stdout] test scanner::tests::log_integrity_state_marks_abrupt_truncation ... ok
[INFO] [stdout] test detectors::process_rules::tests::rust_source_build_context_suppresses_cargo_behavior_noise ... ok
[INFO] [stdout] test scenario_tests::scenario_trusted_admin_ssh_success_is_negative_case ... ok
[INFO] [stdout] test scanner::tests::permanent_active_response_upgrade_uses_recent_duplicate_suppression ... ok
[INFO] [stdout] test security_wizard::tests::ready_when_core_defaults_are_notified_and_allowlisted ... ok
[INFO] [stdout] test security_wizard::tests::reports_missing_notification_channel ... ok
[INFO] [stdout] test scanner::tests::process_start_state_ignores_missing_or_changed_identity ... ok
[INFO] [stdout] test detectors::process_rules::tests::shell_started_renamed_gpu_process_with_public_network_alerts ... ok
[INFO] [stdout] test detectors::process_rules::tests::short_lived_process_exec_reuses_process_rules ... ok
[INFO] [stdout] test scanner::tests::process_start_state_marks_same_identity_start_drift ... ok
[INFO] [stdout] test scanner::tests::state_duplicate_suppression_uses_identity_when_dedup_key_changes ... ok
[INFO] [stdout] test scanner::tests::ssh_login_duplicate_suppression_ignores_volatile_port_after_enrichment ... ok
[INFO] [stdout] test detectors::process_rules::tests::temp_payload_named_like_build_script_still_alerts_without_build_context ... ok
[INFO] [stdout] test scanner::tests::state_duplicates_are_suppressed_after_event_window ... ok
[INFO] [stdout] test service_profile::tests::dynamic_public_udp_without_owner_is_grouped_as_low_signal ... ok
[INFO] [stdout] test scenario_tests::scenario_web_rotating_ip_clusters_by_method_not_ip ... ok
[INFO] [stdout] test detectors::process_rules::tests::temporary_process_dedup_uses_executable_path_not_pid ... ok
[INFO] [stdout] test scenario_tests::scenario_benign_fingerprint_feedback_prevents_block ... ok
[INFO] [stdout] test scenario_tests::scenario_malicious_fingerprint_still_respects_allowlist ... ok
[INFO] [stdout] test service_profile::tests::unknown_owner_dynamic_udp_requires_confirmation_before_finding ... ok
[INFO] [stdout] test scenario_tests::replay_suspicious_listener_on_expected_port_still_alerts ... ok
[INFO] [stdout] test scenario_tests::replay_plain_service_fanout_is_negative_case ... ok
[INFO] [stdout] test service_profile::tests::dynamic_public_udp6_ports_are_profiled_by_process_identity ... ok
[INFO] [stdout] test service_profile::tests::low_udp6_ports_are_profiled_by_service_identity_not_port_range ... ok
[INFO] [stdout] test service_profile::tests::ignores_loopback_ssh_forwarding_listeners ... ok
[INFO] [stdout] test service_profile::tests::legacy_port_based_dynamic_udp_profile_migrates_silently ... ok
[INFO] [stdout] test storage::sqlite::tests::clear_all_history_keeps_baseline_and_rule_state ... ok
[INFO] [stdout] test storage::sqlite::tests::counts_notification_attempts ... ok
[INFO] [stdout] test service_profile::tests::privileged_udp_port_change_still_requires_review ... ok
[INFO] [stdout] test storage::sqlite::tests::size_prune_policy_is_more_aggressive_under_high_pressure ... ok
[INFO] [stdout] test service_profile::tests::refresh_uses_configured_dynamic_udp_policy ... ok
[INFO] [stdout] test storage::sqlite::tests::finding_dedup_state_survives_finding_row_cleanup ... ok
[INFO] [stdout] test storage::sqlite::tests::lists_findings_between_time_bounds ... ok
[INFO] [stdout] test storage::sqlite::tests::raw_event_storage_replaces_duplicate_web_log_lines ... ok
[INFO] [stdout] test storage::sqlite::tests::sqlite_connections_set_busy_timeout ... ok
[INFO] [stdout] test suppress_rules::tests::expired_entries_do_not_suppress_findings ... ok
[INFO] [stdout] test suppress_rules::tests::scoped_entries_match_rule_subject_and_path_pattern ... ok
[INFO] [stdout] test suppress_rules::tests::top_level_rule_ids_suppress_matching_findings ... ok
[INFO] [stdout] test threat_intel::tests::enriches_finding_when_indicator_matches_evidence ... ok
[INFO] [stdout] test timeline::tests::correlates_by_executable_hash_when_path_changes ... ok
[INFO] [stdout] test timeline::tests::correlates_process_and_persistence_on_same_path ... ok
[INFO] [stdout] test timeline::tests::ignores_single_phase_baseline_noise ... ok
[INFO] [stdout] test utils::command::tests::missing_command_returns_none ... ok
[INFO] [stdout] test utils::fs::tests::hash_file_limited_respects_size_limit ... ok
[INFO] [stdout] test utils::fs::tests::hidden_file_detection_uses_file_name ... ok
[INFO] [stdout] test utils::ip::tests::cidr_pattern_matcher_supports_ipv4_ipv6_and_exact_ips ... ok
[INFO] [stdout] test utils::ip::tests::listener_classifier_uses_listener_exposure_semantics ... ok
[INFO] [stdout] test utils::ip::tests::public_ip_classifier_rejects_special_use_ranges ... ok
[INFO] [stdout] test utils::ip::tests::remote_addr_classifier_rejects_non_ip_text ... ok
[INFO] [stdout] test utils::memory::tests::parses_linux_status_kb_field ... ok
[INFO] [stdout] test utils::package::tests::cache_rejects_paths_that_cannot_have_package_owners ... ok
[INFO] [stdout] test utils::package::tests::ignores_non_absolute_or_anonymous_paths ... ok
[INFO] [stdout] test utils::procfs::tests::collect_processes_extracts_linux_status_and_argv_fields ... ok
[INFO] [stdout] test utils::procfs::tests::parses_container_runtime_and_id_from_cgroup ... ok
[INFO] [stdout] test utils::procfs::tests::parses_process_cpu_from_proc_stat ... ok
[INFO] [stdout] test utils::redact::tests::redacts_ip_and_command_arguments ... ok
[INFO] [stdout] test utils::redact::tests::redacts_ipv4_inside_text ... ok
[INFO] [stdout] test utils::redact::tests::removes_ipv4_for_remote_telemetry ... ok
[INFO] [stdout] test utils::redact::tests::removes_ipv6_for_remote_telemetry ... ok
[INFO] [stdout] test utils::ssh_config::tests::discovers_include_files_under_scan_root ... ok
[INFO] [stdout] test service_profile::tests::sing_box_dynamic_udp_port_churn_stays_silent ... ok
[INFO] [stdout] test utils::ssh_config::tests::expands_authorized_keys_paths_for_root_and_home_users ... ok
[INFO] [stdout] test utils::ssh_config::tests::parses_comments_equals_and_match_context ... ok
[INFO] [stdout] test utils::text::tests::truncates_without_splitting_utf8 ... ok
[INFO] [stdout] test storage::sqlite::tests::stores_and_reads_findings ... ok
[INFO] [stdout] test storage::sqlite::tests::stores_and_reads_rule_state ... ok
[INFO] [stdout] test service_profile::tests::detects_new_public_service_after_profile_exists ... ok
[INFO] [stdout] test storage::sqlite::tests::summarizes_scan_runs_between_time_bounds ... ok
[INFO] [stdout] test storage::sqlite::tests::stores_attack_fingerprints_and_observations ... ok
[INFO] [stdout] test service_profile::tests::new_dynamic_public_udp_identity_is_low_severity ... ok
[INFO] [stdout] test service_profile::tests::dynamic_public_udp_ports_are_profiled_by_process_identity ... ok
[INFO] [stdout] test service_profile::tests::ignores_configured_dynamic_udp_client_processes ... ok
[INFO] [stdout] test storage::sqlite::tests::enforce_size_limit_keeps_latest_baseline_snapshot ... ok
[INFO] [stdout] test service_profile::tests::unprivileged_udp_port_churn_for_same_identity_is_suppressed ... ok
[INFO] [stdout] test service_profile::tests::unprivileged_udp_extra_port_for_seen_identity_is_silent ... ok
[INFO] [stdout] test storage::sqlite::tests::enforce_size_limit_prunes_old_raw_events ... ok
[INFO] [stdout] test service_profile::tests::suspicious_dynamic_udp_service_still_alerts_immediately ... ok
[INFO] [stdout] test detectors::rule_matrix_tests::every_builtin_risk_rule_has_positive_and_negative_coverage ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 424 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.36s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/sentinel-cli/22573b4a6f8dbeed/out/vps_sentinel-22573b4a6f8dbeed)
[INFO] [stdout] 
[INFO] [stdout] running 27 tests
[INFO] [stdout] test commands::config::tests::migrates_legacy_default_notification_language ... ok
[INFO] [stdout] test commands::config::tests::preserves_explicit_english_notification_language ... ok
[INFO] [stdout] test commands::config::tests::migrates_legacy_ssh_response_policy_rule_ids ... ok
[INFO] [stdout] test commands::config::tests::preserves_custom_ssh_response_policy_rule_ids ... ok
[INFO] [stdout] test commands::config::tests::preserves_custom_ebpf_event_paths ... ok
[INFO] [stdout] test commands::config::tests::preserves_custom_dynamic_udp_min_port ... ok
[INFO] [stdout] test commands::config::tests::flattens_toml_keys ... ok
[INFO] [stdout] test commands::config::tests::detects_and_removes_deprecated_keys ... ok
[INFO] [stdout] test commands::config::tests::preserves_custom_ssh_thresholds ... ok
[INFO] [stdout] test commands::config::tests::migrates_legacy_empty_ebpf_event_paths ... ok
[INFO] [stdout] test commands::config::tests::migrates_legacy_dynamic_udp_min_port_default ... ok
[INFO] [stdout] test commands::config::tests::migrates_legacy_default_ssh_thresholds_together ... ok
[INFO] [stdout] test commands::doctor::tests::formats_capability_line_without_raw_quotes ... ok
[INFO] [stdout] test commands::config::tests::normalizes_allowlist_section_to_canonical_multiline_arrays ... ok
[INFO] [stdout] test commands::maintenance::tests::status_line_reports_expired_window_as_inactive ... ok
[INFO] [stdout] test commands::config::tests::repairs_partially_synced_ssh_threshold_defaults ... ok
[INFO] [stdout] test commands::maintenance::tests::status_line_reports_unexpired_window_as_active ... ok
[INFO] [stdout] test commands::config::tests::backup_path_does_not_overwrite_existing_backups ... ok
[INFO] [stdout] test commands::menu::tests::yes_no_parser_defaults_to_false ... ok
[INFO] [stdout] test commands::reload::tests::reload_requires_config_path ... ok
[INFO] [stdout] test commands::config::tests::normalizes_managed_sections_without_duplicate_suppress_rules ... ok
[INFO] [stdout] test commands::config::tests::suppress_rule_update_preserves_unrelated_config_text ... ok
[INFO] [stdout] test commands::config::tests::allowlist_add_file_path_deduplicates_and_validates_config ... ok
[INFO] [stdout] test commands::config::tests::sync_defaults_is_noop_for_full_default_config ... ok
[INFO] [stdout] test commands::config::tests::sync_defaults_adds_missing_keys_without_overwriting_existing_values ... ok
[INFO] [stdout] test commands::config::tests::sync_defaults_handles_utf8_bom_without_duplicate_sections ... ok
[INFO] [stdout] test commands::config::tests::sync_defaults_repairs_legacy_empty_ebpf_event_paths ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/sentinel-core/5d37d148a84aae80/out/sentinel_core-5d37d148a84aae80)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test config::tests::invalid_storage_retention_is_rejected ... ok
[INFO] [stdout] test config::tests::display_name_prefers_configured_vps_name ... ok
[INFO] [stdout] test config::tests::invalid_resource_budget_is_rejected ... ok
[INFO] [stdout] test config::tests::host_id_prefers_configured_hostname_before_runtime_fallback ... ok
[INFO] [stdout] test config::tests::invalid_ssh_time_windows_are_rejected ... ok
[INFO] [stdout] test config::tests::invalid_storage_type_is_rejected ... ok
[INFO] [stdout] test config::tests::invalid_web_error_threshold_is_rejected ... ok
[INFO] [stdout] test config::tests::invalid_notification_timeout_is_rejected ... ok
[INFO] [stdout] test config::tests::plaintext_email_rejects_credentials ... ok
[INFO] [stdout] test config::tests::enabled_email_requires_delivery_settings ... ok
[INFO] [stdout] test config::tests::invalid_package_manager_windows_are_rejected ... ok
[INFO] [stdout] test config::tests::invalid_service_profile_settings_are_rejected ... ok
[INFO] [stdout] test config::tests::invalid_quiet_hour_window_is_rejected ... ok
[INFO] [stdout] test config::tests::invalid_advanced_settings_are_rejected ... ok
[INFO] [stdout] test config::tests::invalid_process_suspicious_dirs_are_rejected ... ok
[INFO] [stdout] test config::tests::invalid_risk_thresholds_are_rejected ... ok
[INFO] [stdout] test evidence_schema::tests::canonicalizes_source_ip_aliases ... ok
[INFO] [stdout] test config::tests::invalid_active_response_settings_are_rejected ... ok
[INFO] [stdout] test config::tests::enabled_notification_channels_require_delivery_settings ... ok
[INFO] [stdout] test severity::tests::severity_ordering_supports_minimum_filters ... ok
[INFO] [stdout] test panel_auth::tests::panel_nonce_includes_node_prefix ... ok
[INFO] [stdout] test panel_auth::tests::constant_time_compare_checks_full_string ... ok
[INFO] [stdout] test evidence_schema::tests::normalizes_list_values_deterministically ... ok
[INFO] [stdout] test panel_auth::tests::panel_signature_uses_transmitted_nonce ... ok
[INFO] [stdout] test time_window::tests::parses_wrapping_window ... ok
[INFO] [stdout] test time_window::tests::parses_daytime_window ... ok
[INFO] [stdout] test time_window::tests::rejects_invalid_window ... ok
[INFO] [stdout] test finding::tests::dedup_key_is_stable_when_evidence_order_changes ... ok
[INFO] [stdout] test severity::tests::severity_uses_pascal_case_serialization ... ok
[INFO] [stdout] test finding::tests::finding_can_dedup_by_stable_evidence_subset ... ok
[INFO] [stdout] test finding::tests::normalize_evidence_preserves_detector_dedup_identity ... ok
[INFO] [stdout] test finding::tests::finding_contains_required_fields ... ok
[INFO] [stdout] test config::tests::legacy_config_missing_network_lists_uses_policy_defaults ... ok
[INFO] [stdout] test config::tests::default_config_round_trips_as_toml ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/build/sentinel-panel/f86f4b8d766dd4a8/out/vps_sentinel_panel-f86f4b8d766dd4a8)
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test geoip::tests::geoip_skips_non_public_addresses ... ok
[INFO] [stdout] test tests::panel_review_rejects_unknown_target_type ... ok
[INFO] [stdout] test geoip::tests::geo_text_rejects_ips_and_control_chars ... ok
[INFO] [stdout] test tests::finding_review_rejects_unknown_verdict ... ok
[INFO] [stdout] test tests::panel_token_rejects_missing_or_malformed_header ... ok
[INFO] [stdout] test tests::panel_token_rejects_legacy_header ... ok
[INFO] [stdout] test tests::panel_token_accepts_bearer_authorization ... ok
[INFO] [stdout] test tests::panel_node_status_uses_explicit_staleness_windows ... ok
[INFO] [stdout] test tests::page_request_rejects_inverted_time_range ... ok
[INFO] [stdout] test tests::panel_review_accepts_baseline_drift_target ... ok
[INFO] [stdout] test tests::page_request_clamps_limit_and_parses_dates ... ok
[INFO] [stdout] test tests::panel_write_body_limit_uses_default_and_global_cap ... ok
[INFO] [stdout] test tests::redacts_ip_text_without_touching_normal_text ... ok
[INFO] [stdout] test tests::page_request_normalizes_search_query ... ok
[INFO] [stdout] test tests::panel_admin_path_and_theme_config_are_normalized ... ok
[INFO] [stdout] test tests::scope_removes_sensitive_fields_for_public ... ok
[INFO] [stdout] test tests::redacts_ipv4_and_ipv6_from_panel_values ... ok
[INFO] [stdout] test tests::baseline_drift_review_signature_uses_stored_category ... ok
[INFO] [stdout] test tests::per_node_secret_overrides_shared_secret ... ok
[INFO] [stdout] test tests::repository_search_clause_binds_and_escapes_like_pattern ... ok
[INFO] [stdout] test tests::panel_token_can_read_and_write ... ok
[INFO] [stdout] test tests::public_role_requires_enabled_public_access ... ok
[INFO] [stdout] test tests::settings_requires_auth_on_management_route_even_with_public_pages ... ok
[INFO] [stdout] test tests::probe_source_page_preserves_public_block_source_ip ... ok
[INFO] [stdout] test tests::node_page_expands_probe_metrics_without_sensitive_identity ... ok
[INFO] [stdout] test tests::repository_read_paths_redact_legacy_raw_ip_rows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sentinel_agent
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sentinel_core
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963", kill_on_drop: false }`
[INFO] [stdout] efe74e810be8ba7414c820d028dd6bd6fbfb7fb43cb12ed953fb05d28d871963
