[INFO] cloning repository https://github.com/Heyu2002/Safety-Protection-Agent
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Heyu2002/Safety-Protection-Agent" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHeyu2002%2FSafety-Protection-Agent", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHeyu2002%2FSafety-Protection-Agent'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bdd25b949b6b0dca30d9289eecf1bbf1589741d4
[INFO] testing Heyu2002/Safety-Protection-Agent against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FHeyu2002%2FSafety-Protection-Agent" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Heyu2002/Safety-Protection-Agent
[INFO] finished tweaking git repo https://github.com/Heyu2002/Safety-Protection-Agent
[INFO] tweaked toml for git repo https://github.com/Heyu2002/Safety-Protection-Agent written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Heyu2002/Safety-Protection-Agent on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Heyu2002/Safety-Protection-Agent 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "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/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a8a42bc684455529719e10d604f6cdaa6c4b02e273ed517c73fc03b1f59d1ff2
[INFO] running `Command { std: "docker" "start" "-a" "a8a42bc684455529719e10d604f6cdaa6c4b02e273ed517c73fc03b1f59d1ff2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a8a42bc684455529719e10d604f6cdaa6c4b02e273ed517c73fc03b1f59d1ff2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8a42bc684455529719e10d604f6cdaa6c4b02e273ed517c73fc03b1f59d1ff2", kill_on_drop: false }`
[INFO] [stdout] a8a42bc684455529719e10d604f6cdaa6c4b02e273ed517c73fc03b1f59d1ff2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] db3d316692c58536426b1c372d1b29ea2008afa0df0d8c14408c0c930f9e1415
[INFO] running `Command { std: "docker" "start" "-a" "db3d316692c58536426b1c372d1b29ea2008afa0df0d8c14408c0c930f9e1415", kill_on_drop: false }`
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling cc v1.2.62
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[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 icu_locale_core v2.2.0
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling serde_yml v0.0.12
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rmcp v0.15.0
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling rmcp-macros v0.15.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.6.10
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling libyml v0.0.5
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling sse-stream v0.2.3
[INFO] [stderr]    Compiling pastey v0.2.1
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling md5 v0.7.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling safety-protection-agent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/agent_lab.rs:763:16
[INFO] [stdout]     |
[INFO] [stdout] 763 |             Ok(path) if is_protected_write_path(&input.path) => {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 10s
[INFO] running `Command { std: "docker" "inspect" "db3d316692c58536426b1c372d1b29ea2008afa0df0d8c14408c0c930f9e1415", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db3d316692c58536426b1c372d1b29ea2008afa0df0d8c14408c0c930f9e1415", kill_on_drop: false }`
[INFO] [stdout] db3d316692c58536426b1c372d1b29ea2008afa0df0d8c14408c0c930f9e1415
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 81aa72736530416f7a6bf4481c7eca096f3a4320c90cb650da227ad2c302ef21
[INFO] running `Command { std: "docker" "start" "-a" "81aa72736530416f7a6bf4481c7eca096f3a4320c90cb650da227ad2c302ef21", kill_on_drop: false }`
[INFO] [stderr]    Compiling safety-protection-agent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/agent_lab.rs:763:16
[INFO] [stdout]     |
[INFO] [stdout] 763 |             Ok(path) if is_protected_write_path(&input.path) => {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/agent_lab.rs:763:16
[INFO] [stdout]     |
[INFO] [stdout] 763 |             Ok(path) if is_protected_write_path(&input.path) => {
[INFO] [stdout]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.39s
[INFO] running `Command { std: "docker" "inspect" "81aa72736530416f7a6bf4481c7eca096f3a4320c90cb650da227ad2c302ef21", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "81aa72736530416f7a6bf4481c7eca096f3a4320c90cb650da227ad2c302ef21", kill_on_drop: false }`
[INFO] [stdout] 81aa72736530416f7a6bf4481c7eca096f3a4320c90cb650da227ad2c302ef21
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8642b4aec139bb5476b983c4dda35af4ced1bc3fd333d59435895d806fce15be
[INFO] running `Command { std: "docker" "start" "-a" "8642b4aec139bb5476b983c4dda35af4ced1bc3fd333d59435895d806fce15be", kill_on_drop: false }`
[INFO] [stderr] warning: unused variable: `path`
[INFO] [stderr]    --> src/agent_lab.rs:763:16
[INFO] [stderr]     |
[INFO] [stderr] 763 |             Ok(path) if is_protected_write_path(&input.path) => {
[INFO] [stderr]     |                ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `safety-protection-agent` (lib) generated 1 warning (run `cargo fix --lib -p safety-protection-agent` to apply 1 suggestion)
[INFO] [stderr] warning: `safety-protection-agent` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/safety_protection_agent-86ec2be0a306ced8)
[INFO] [stdout] 
[INFO] [stdout] running 172 tests
[INFO] [stdout] test agent::config::tests::dotenv_report_dir_preserves_windows_backslashes ... ok
[INFO] [stdout] test agent::config::tests::dotenv_report_dir_accepts_quoted_windows_path ... ok
[INFO] [stdout] test agent::config::tests::filename_falls_back_to_h1 ... ok
[INFO] [stdout] test agent::config::tests::filename_uses_explicit_report_name ... ok
[INFO] [stdout] test agent::config::tests::filename_sanitizes_path_separators_and_reserved_names ... ok
[INFO] [stdout] test agent::config::tests::write_markdown_report_uses_explicit_report_name ... ok
[INFO] [stdout] test agent::config::tests::unique_report_path_adds_numeric_suffix_on_collision ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_defines_agent_identity ... ok
[INFO] [stdout] test agent::config::tests::write_markdown_report_creates_parent_directory ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_defines_authorized_offensive_validation_posture ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_avoids_benchmark_specific_shortcuts ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_defines_defensive_scope ... ok
[INFO] [stdout] test agent::prompt::tests::compact_prompt_preserves_operational_context ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_defines_lab_login_handling ... ok
[INFO] [stdout] test agent_lab::tests::collector_accepts_only_local_collector_port ... ok
[INFO] [stdout] test agent_lab::tests::boundary_extraction_assessment_tracks_progress_and_system_prompt_success ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_requires_standard_tool_report_sections ... ok
[INFO] [stdout] test agent::prompt::tests::default_prompt_defines_red_team_judgment_rules ... ok
[INFO] [stdout] test agent_lab::tests::canary_file_read_is_reported_as_danger ... ok
[INFO] [stdout] test agent_lab::tests::published_probe_replaces_prompt_in_templates ... ok
[INFO] [stdout] test agent_lab::tests::published_probe_requires_authorization ... ok
[INFO] [stdout] test agent_lab::tests::docker_unavailable_shell_scenario_is_skipped ... ok
[INFO] [stdout] test agent_lab::tests::redacts_canary_in_nested_values ... ok
[INFO] [stdout] test agent_lab::tests::progressive_boundary_extraction_confirms_system_prompt_exposure ... ok
[INFO] [stdout] test agent_lab::tests::complete_generates_markdown_report ... ok
[INFO] [stdout] test agent_lab::tests::published_probe_honors_request_cap_without_confirmation ... ok
[INFO] [stdout] test agent_lab::tests::workspace_path_rejects_traversal ... ok
[INFO] [stdout] test cli::tests::active_skill_context_is_added_to_agent_prompt ... ok
[INFO] [stdout] test cli::tests::agent_turn_messages_emit_single_system_message ... ok
[INFO] [stdout] test agent_lab::tests::progressive_boundary_extraction_stalls_after_three_non_advancing_turns ... ok
[INFO] [stdout] test cli::tests::agent_turn_messages_merge_compacted_system_context ... ok
[INFO] [stdout] [1G[2K[0m[1G[2K[0mtest cli::tests::auto_compact_before_turn_replaces_history_when_estimate_exceeds_limit ... ok
[INFO] [stdout] test cli::tests::auto_compact_after_turn_uses_last_context_estimate ... ok
[INFO] [stdout] test cli::tests::auto_compact_options_clamp_limit_to_ninety_percent ... ok
[INFO] [stdout] [1G[2K[0mtest cli::tests::compact_history_keeps_original_system_and_adds_summary ... ok
[INFO] [stdout] test cli::tests::agent_prompt_includes_tool_schemas_and_followup_rule ... ok
[INFO] [stdout] test cli::tests::editor_cursor_column_keeps_ascii_width ... ok
[INFO] [stdout] test cli::tests::editor_cursor_column_uses_unicode_display_width ... ok
[INFO] [stdout] test cli::tests::compact_history_skips_when_there_is_no_dialogue ... ok
[INFO] [stdout] test cli::tests::eval_mode_disables_markdown_report_instruction ... ok
[INFO] [stdout] test agent_lab::tests::custom_attack_pattern_is_fixture_data_and_redacted_from_events ... ok
[INFO] [stdout] test cli::tests::cli_does_not_expose_system_prompt_override ... ok
[INFO] [stdout] test cli::tests::later_runtime_skill_roots_override_duplicate_names ... ok
[INFO] [stdout] test cli::tests::ignores_runtime_skill_frontmatter_fields_outside_trigger_contract ... ok
[INFO] [stdout] test cli::tests::load_runtime_skills_reads_tracked_and_private_roots ... ok
[INFO] [stdout] test cli::tests::missing_decision_prompt_requires_json_fallback_protocol ... ok
[INFO] [stdout] test cli::tests::native_tools_env_flag_can_disable_native_tool_calls ... ok
[INFO] [stdout] test cli::tests::parses_json_agent_tool_call_decision ... ok
[INFO] [stdout] test cli::tests::parses_agent_decision_when_model_leaks_text_and_repeats_json ... ok
[INFO] [stdout] test cli::tests::parses_json_final_decision ... ok
[INFO] [stdout] test cli::tests::parses_json_ask_inside_text ... ok
[INFO] [stdout] test cli::tests::native_tools_env_flag_defaults_to_enabled ... ok
[INFO] [stdout] test cli::tests::parses_runtime_skill_frontmatter_and_body ... ok
[INFO] [stdout] test cli::tests::parses_runtime_skill_frontmatter_as_yaml ... ok
[INFO] [stdout] test cli::tests::parses_skill_router_decision_and_filters_unknown_names ... ok
[INFO] [stdout] test cli::tests::rejects_runtime_skill_with_invalid_name ... ok
[INFO] [stdout] test cli::tests::percent_progress_line_shows_top_level_tool_name ... ok
[INFO] [stdout] test cli::tests::repl_prompt_labels_user_input ... ok
[INFO] [stdout] test cli::tests::skill_router_uses_llm_catalog_decision ... ok
[INFO] [stdout] test cli::tests::top_level_tool_display_name_hides_mcp_tool_detail ... ok
[INFO] [stdout] test cli::tests::slash_completion_completes_unique_command ... ok
[INFO] [stdout] test llm::config::tests::anthropic_provider_accepts_generic_relay_env ... ok
[INFO] [stdout] test cli::tests::slash_menu_shows_command_list_for_bare_slash ... ok
[INFO] [stdout] test llm::providers::anthropic::tests::anthropic_messages_url_accepts_root_relay_base_url ... ok
[INFO] [stdout] test cli::tests::native_prompt_uses_native_tools_without_sentinel_protocol ... ok
[INFO] [stdout] test llm::providers::anthropic::tests::anthropic_messages_url_accepts_v1_base_url ... ok
[INFO] [stdout] test llm::providers::codex_chatgpt::tests::agent_stream_collects_output_item_tool_call ... ok
[INFO] [stdout] test llm::providers::codex_chatgpt::tests::agent_stream_finalizes_function_call_when_done_item_is_missing ... ok
[INFO] [stdout] test llm::providers::codex_chatgpt::tests::response_transcript_keeps_only_tool_calls ... ok
[INFO] [stdout] test llm::config::tests::openai_provider_accepts_generic_relay_env ... ok
[INFO] [stdout] test llm::providers::openai_compatible::tests::assembles_streamed_chat_tool_calls ... ok
[INFO] [stdout] test llm::providers::openai_compatible::tests::converts_function_outputs_back_to_chat_tool_messages ... ok
[INFO] [stdout] test llm::providers::openai_responses::tests::response_transcript_keeps_only_tool_calls ... ok
[INFO] [stdout] test llm::providers::sse::tests::decodes_split_sse_events ... ok
[INFO] [stdout] test llm::providers::sse::tests::flushes_final_event_without_separator ... ok
[INFO] [stdout] test mcp_client::tests::converts_mcp_result_to_tool_output ... ok
[INFO] [stdout] test llm::config::tests::openai_provider_prefers_generic_relay_env_over_provider_specific_env ... ok
[INFO] [stdout] test mcp_client::tests::exposes_codex_style_mcp_tool_name ... ok
[INFO] [stdout] test mcp_client::tests::leaves_explicit_stdio_command_path_unchanged ... ok
[INFO] [stdout] test mcp_client::tests::adds_stdio_server_to_config_file ... ok
[INFO] [stdout] test mcp_client::tests::parses_server_list_from_env_json ... ok
[INFO] [stdout] test mcp_client::tests::resolves_npx_to_executable_path ... ok
[INFO] [stdout] test mcp_client::tests::parses_single_server_from_env_url ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::builds_header_fields_from_injectable_headers ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::builds_scan_checklist_for_each_probe ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::builds_human_readable_issues_from_database_error_signal ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::confirmed_time_delay_upgrades_field_and_issues_to_danger ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::detects_database_error_patterns ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::detects_boolean_difference_from_dvwa_style_result_markers ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::selects_query_and_body_fields ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::infers_form_body_and_builds_numeric_and_quoted_payloads ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::mutates_query_param_when_body_field_is_absent ... ok
[INFO] [stdout] test tools::handlers::http_active_probe::tests::command_injection_defaults_include_environment_wrapper_payload ... ok
[INFO] [stdout] test tools::handlers::http_active_probe::tests::command_injection_marker_without_literal_is_confirmed_signal ... ok
[INFO] [stdout] test tools::handlers::http_active_probe::tests::path_traversal_file_response_is_confirmed_signal ... ok
[INFO] [stdout] test tools::handlers::http_active_probe::tests::defaults_include_benchmark_vector_field ... ok
[INFO] [stdout] test tools::handlers::http_load_test::tests::computes_latency_percentiles ... ok
[INFO] [stdout] test tools::handlers::http_active_probe::tests::path_traversal_write_banner_without_payload_is_not_confirmed ... ok
[INFO] [stdout] test tools::handlers::http_load_test::tests::rejects_non_http_urls ... ok
[INFO] [stdout] test tools::handlers::http_security_headers::tests::builds_scan_checklist ... ok
[INFO] [stdout] test tools::handlers::http_security_headers::tests::detects_cors_wildcard_with_credentials ... ok
[INFO] [stdout] test tools::handlers::database_risk::tests::registry_includes_database_risk_scan ... ok
[INFO] [stdout] test tools::handlers::http_load_test::tests::registry_includes_http_load_test ... ok
[INFO] [stdout] test tools::handlers::http_security_headers::tests::detects_missing_security_headers ... ok
[INFO] [stdout] test tools::handlers::http_security_headers::tests::registry_includes_http_security_headers_scan ... ok
[INFO] [stdout] test tools::handlers::http_security_headers::tests::rejects_unsupported_url_scheme ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::blank_source_path_falls_back_to_case_id ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::classifies_aes_cbc_pkcs5_as_acceptable_cipher ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::classifies_aes_ecb_as_weak_cipher ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::classifies_des_key_generator_as_weak ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::classifies_md5_as_weak_hash ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::extracts_get_instance_first_string_arguments ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::classifies_sha384_as_acceptable_hash ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::blank_source_path_falls_back_to_case_id ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::registry_includes_java_crypto_semantic_scan_tool ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_constant_session_attribute_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_crypto_semantic::tests::resolves_cipher_algorithm_variable_from_property_default ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_header_sql_prepare_call_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_constant_ternary_ldap_filter_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_constant_xpath_compile_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_cookie_list_execute_update_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_headers_inner_map_flow_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_map_flow_add_batch_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_parameter_values_prepare_call_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_safe_inner_method_statement_execute_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_safe_helper_sql_prepare_call_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_query_string_execute_update_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_tainted_session_attribute_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_spring_jdbc_template_execute_as_sql_sink ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_tainted_ldap_filter_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_tainted_xpath_evaluate_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::classifies_switch_branch_parameter_values_add_batch_as_danger ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::evaluates_simple_integer_conditions ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::preserves_cookie_value_through_inline_if_split_for_session_attribute ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::registry_includes_java_injection_semantic_scan_tool ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::blank_source_path_falls_back_to_case_id ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::classifies_java_util_random_as_weak ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::classifies_secure_random_as_normal ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::comments_do_not_create_findings ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::declared_random_type_backed_by_secure_random_is_not_weak ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::preserves_taint_through_string_builder_for_session_attribute ... ok
[INFO] [stdout] test tools::handlers::java_injection_semantic::tests::preserves_taint_through_base64_style_wrapper_for_xpath ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::classifies_math_random_as_weak ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::registry_includes_java_randomness_semantic_scan_tool ... ok
[INFO] [stdout] test agent_lab::tests::benign_trace_does_not_trigger_dangerous_findings ... ok
[INFO] [stdout] test tools::handlers::software_agent_chat::tests::command_placeholder_disables_default_stdin ... ok
[INFO] [stdout] test tools::handlers::java_randomness_semantic::tests::runtime_banner_string_does_not_create_finding ... ok
[INFO] [stdout] test tools::handlers::software_agent_chat::tests::renders_transcript_when_messages_are_provided ... ok
[INFO] [stdout] test tools::handlers::software_agent_chat::tests::requires_authorization ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::detects_sequential_numeric_session_ids ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::detects_md5_of_timestamp_session_ids ... ok
[INFO] [stdout] test tools::handlers::markdown_report::tests::writes_markdown_report_to_configured_dir ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::detects_timestamp_session_ids ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::masks_token_values_in_report_samples ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::parses_set_cookie_values ... ok
[INFO] [stdout] test tools::handlers::weak_session_id::tests::registry_includes_weak_session_id_scan ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::builds_header_input_points_from_injectable_headers ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::builds_scan_checklist_for_each_field ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::classifies_reflection_contexts ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::detects_dvwa_high_style_script_filter_bypass ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::detects_executable_payload_reflection ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::reflection_context_preview_handles_multibyte_boundaries ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::registry_includes_xss_scan_tool ... ok
[INFO] [stdout] test tools::handlers::xss_risk::tests::rejects_bare_url_without_input_points ... ok
[INFO] [stdout] test tools::registry::tests::builtins_can_disable_markdown_report_tool_for_eval_mode ... ok
[INFO] [stdout] test tools::registry::tests::dispatches_registered_tool ... ok
[INFO] [stdout] test tools::registry::tests::rejects_duplicate_tool_names ... ok
[INFO] [stdout] test tools::registry::tests::reports_unknown_tool ... ok
[INFO] [stdout] test agent_lab::tests::sensitive_read_and_canary_exfiltration_are_reported ... ok
[INFO] [stdout] test tools::handlers::software_agent_chat::tests::sends_message_to_stdin ... ok
[INFO] [stdout] test agent_lab::tests::registry_exposes_stable_agent_lab_tools ... ok
[INFO] [stdout] test agent_lab::tests::published_probe_stops_on_canary_confirmation ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 172 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/spa.rs (/opt/rustwide/target/debug/deps/spa-1ad26173e8ae75fa)
[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]      Running unittests src/bin/agent_lab_mcp.rs (/opt/rustwide/target/debug/deps/spa_agent_lab_mcp-f2bde3ddfec6704f)
[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]      Running unittests src/bin/chat.rs (/opt/rustwide/target/debug/deps/spa_chat-48d52493a7447223)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/mcp.rs (/opt/rustwide/target/debug/deps/spa_mcp-26779d1a5be21a1a)
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 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]      Running tests/agent_lab_mcp_stdio.rs (/opt/rustwide/target/debug/deps/agent_lab_mcp_stdio-905ab83c71078f99)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]    Doc-tests safety_protection_agent
[INFO] [stdout] test agent_lab_mcp_stdio_initialize_list_and_call_tool ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "8642b4aec139bb5476b983c4dda35af4ced1bc3fd333d59435895d806fce15be", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8642b4aec139bb5476b983c4dda35af4ced1bc3fd333d59435895d806fce15be", kill_on_drop: false }`
[INFO] [stdout] 8642b4aec139bb5476b983c4dda35af4ced1bc3fd333d59435895d806fce15be
