[INFO] fetching crate clawft-tools 0.6.12... [INFO] testing clawft-tools-0.6.12 against 1.95.0 for beta-1.96-1 [INFO] extracting crate clawft-tools 0.6.12 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate clawft-tools 0.6.12 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate clawft-tools 0.6.12 [INFO] tweaked toml for crates.io crate clawft-tools 0.6.12 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate clawft-tools 0.6.12 on toolchain 1.95.0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate clawft-tools 0.6.12 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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded notify v7.0.0 [INFO] [stderr] Downloaded notify-types v1.0.1 [INFO] [stderr] Downloaded cron v0.15.0 [INFO] [stderr] Downloaded instant-distance v0.6.1 [INFO] [stderr] Downloaded eml-core v0.1.0 [INFO] [stderr] Downloaded inotify v0.10.2 [INFO] [stderr] Downloaded ordered-float v3.9.2 [INFO] [stderr] Downloaded clawft-llm v0.6.12 [INFO] [stderr] Downloaded clawft-types v0.6.12 [INFO] [stderr] Downloaded clawft-plugin v0.6.12 [INFO] [stderr] Downloaded clawft-services v0.6.12 [INFO] [stderr] Downloaded clawft-platform v0.6.12 [INFO] [stderr] Downloaded winnow v0.6.26 [INFO] [stderr] Downloaded clawft-core v0.6.12 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 2720687d084686b09f15b2d6d457bfe40c44d26263db48575c81e9610b76f6fb [INFO] running `Command { std: "docker" "start" "-a" "2720687d084686b09f15b2d6d457bfe40c44d26263db48575c81e9610b76f6fb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "2720687d084686b09f15b2d6d457bfe40c44d26263db48575c81e9610b76f6fb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2720687d084686b09f15b2d6d457bfe40c44d26263db48575c81e9610b76f6fb", kill_on_drop: false }` [INFO] [stdout] 2720687d084686b09f15b2d6d457bfe40c44d26263db48575c81e9610b76f6fb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 13fa8c6c7ecf5c8071612cf06e627fe8561e013bf390fa2dd05789b9d1adffca [INFO] running `Command { std: "docker" "start" "-a" "13fa8c6c7ecf5c8071612cf06e627fe8561e013bf390fa2dd05789b9d1adffca", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling openssl v0.10.75 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling notify-types v1.0.1 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling openssl-sys v0.9.111 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling inotify v0.10.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling notify v7.0.0 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling eml-core v0.1.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling clawft-types v0.6.12 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-tls v0.6.0 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling clawft-llm v0.6.12 [INFO] [stderr] Compiling clawft-plugin v0.6.12 [INFO] [stderr] Compiling clawft-platform v0.6.12 [INFO] [stderr] Compiling clawft-core v0.6.12 [INFO] [stderr] Compiling clawft-tools v0.6.12 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "13fa8c6c7ecf5c8071612cf06e627fe8561e013bf390fa2dd05789b9d1adffca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "13fa8c6c7ecf5c8071612cf06e627fe8561e013bf390fa2dd05789b9d1adffca", kill_on_drop: false }` [INFO] [stdout] 13fa8c6c7ecf5c8071612cf06e627fe8561e013bf390fa2dd05789b9d1adffca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 960a3dfd70c22c6e45f1b3761423fabf4b1961bf39e225dd39b05e8e1ff71266 [INFO] running `Command { std: "docker" "start" "-a" "960a3dfd70c22c6e45f1b3761423fabf4b1961bf39e225dd39b05e8e1ff71266", kill_on_drop: false }` [INFO] [stderr] Compiling clawft-tools v0.6.12 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.41s [INFO] running `Command { std: "docker" "inspect" "960a3dfd70c22c6e45f1b3761423fabf4b1961bf39e225dd39b05e8e1ff71266", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "960a3dfd70c22c6e45f1b3761423fabf4b1961bf39e225dd39b05e8e1ff71266", kill_on_drop: false }` [INFO] [stdout] 960a3dfd70c22c6e45f1b3761423fabf4b1961bf39e225dd39b05e8e1ff71266 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.95.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] dd436d5129434e01d36c2fa55b926eb55a4e6b98677fe8a71fe04a56c9bec77b [INFO] running `Command { std: "docker" "start" "-a" "dd436d5129434e01d36c2fa55b926eb55a4e6b98677fe8a71fe04a56c9bec77b", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/clawft_tools-b899043c5d6946ca) [INFO] [stdout] [INFO] [stdout] running 152 tests [INFO] [stdout] test file_tools::tests::test_read_file_missing_path_param ... ok [INFO] [stdout] test file_tools::tests::test_validate_path_accepts_valid ... ok [INFO] [stdout] test file_tools::tests::test_read_file_success ... ok [INFO] [stdout] test file_tools::tests::test_validate_path_rejects_traversal ... ok [INFO] [stdout] test file_tools::tests::test_symlink_outside_workspace_rejected ... ok [INFO] [stdout] test file_tools::tests::test_edit_file_ambiguous_match ... ok [INFO] [stdout] test file_tools::tests::test_edit_file_success ... ok [INFO] [stdout] test file_tools::tests::test_symlink_to_directory_outside_workspace_rejected ... ok [INFO] [stdout] test file_tools::tests::test_validate_path_rejects_absolute_outside ... ok [INFO] [stdout] test file_tools::tests::test_write_file_success ... ok [INFO] [stdout] test file_tools::tests::test_read_file_not_found ... ok [INFO] [stdout] test file_tools::tests::test_edit_file_old_text_not_found ... ok [INFO] [stdout] test memory_tool::tests::test_search_paragraphs_basic ... ok [INFO] [stdout] test file_tools::tests::test_edit_file_not_found ... ok [INFO] [stdout] test memory_tool::tests::test_search_paragraphs_empty_content ... ok [INFO] [stdout] test memory_tool::tests::test_search_paragraphs_case_insensitive ... ok [INFO] [stdout] test memory_tool::tests::test_search_paragraphs_no_match ... ok [INFO] [stdout] test message_tool::tests::description_not_empty ... ok [INFO] [stdout] test message_tool::tests::missing_chat_id_returns_error ... ok [INFO] [stdout] test message_tool::tests::missing_channel_returns_error ... ok [INFO] [stdout] test message_tool::tests::missing_content_returns_error ... ok [INFO] [stdout] test file_tools::tests::test_list_directory_success ... ok [INFO] [stdout] test message_tool::tests::parameters_has_required_fields ... ok [INFO] [stdout] test message_tool::tests::successful_dispatch ... ok [INFO] [stdout] test message_tool::tests::tool_is_object_safe ... ok [INFO] [stdout] test security_policy::tests::allowlist_permits_cat ... ok [INFO] [stdout] test security_policy::tests::allowlist_permits_echo ... ok [INFO] [stdout] test security_policy::tests::allowlist_permits_ls ... ok [INFO] [stdout] test security_policy::tests::allowlist_permits_path_to_listed_binary ... ok [INFO] [stdout] test security_policy::tests::allowlist_permits_pwd ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_bash ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_curl ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_nc ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_nmap ... ok [INFO] [stdout] test file_tools::tests::test_list_directory_not_found ... ok [INFO] [stdout] test security_policy::tests::case_insensitive_mixed_case_blocked ... ok [INFO] [stdout] test security_policy::tests::case_insensitive_sudo_blocked ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_path_to_unlisted_binary ... ok [INFO] [stdout] test security_policy::tests::dangerous_patterns_checked_in_allowlist_mode ... ok [INFO] [stdout] test security_policy::tests::allowlist_rejects_wget ... ok [INFO] [stdout] test security_policy::tests::dangerous_patterns_checked_in_denylist_mode ... ok [INFO] [stdout] test security_policy::tests::denylist_blocks_rm_rf_root ... ok [INFO] [stdout] test security_policy::tests::denylist_blocks_sudo ... ok [INFO] [stdout] test security_policy::tests::extract_first_token_empty ... ok [INFO] [stdout] test security_policy::tests::denylist_permits_curl_when_not_denied ... ok [INFO] [stdout] test security_policy::tests::extract_first_token_leading_whitespace ... ok [INFO] [stdout] test security_policy::tests::extract_first_token_whitespace_only ... ok [INFO] [stdout] test security_policy::tests::extract_first_token_simple ... ok [INFO] [stdout] test security_policy::tests::extract_first_token_with_path ... ok [INFO] [stdout] test security_policy::tests::policy_error_from_command_policy_error ... ok [INFO] [stdout] test security_policy::tests::safe_defaults_denylist_matches_dangerous ... ok [INFO] [stdout] test security_policy::tests::safe_defaults_has_dangerous_patterns ... ok [INFO] [stdout] test security_policy::tests::tab_in_sudo_command_still_matched ... ok [INFO] [stdout] test security_policy::tests::safe_defaults_has_expected_allowlist ... ok [INFO] [stdout] test security_policy::tests::safe_defaults_creates_correct_mode ... ok [INFO] [stdout] test file_tools::tests::test_symlink_within_workspace_allowed ... ok [INFO] [stdout] test shell_tool::tests::test_dangerous_mkfs ... ok [INFO] [stdout] test shell_tool::tests::test_dangerous_fork_bomb ... ok [INFO] [stdout] test message_tool::tests::name_is_message ... ok [INFO] [stdout] test shell_tool::tests::test_captures_stderr ... ok [INFO] [stdout] test file_tools::tests::test_list_directory_empty ... ok [INFO] [stdout] test shell_tool::tests::test_default_timeout_used ... ok [INFO] [stdout] test file_tools::tests::test_read_file_traversal_rejected ... ok [INFO] [stdout] test shell_tool::tests::test_policy_rejects_unlisted_command ... ok [INFO] [stdout] test shell_tool::tests::test_missing_command_param ... ok [INFO] [stdout] test shell_tool::tests::test_nonzero_exit_code ... ok [INFO] [stdout] test shell_tool::tests::test_dangerous_sudo ... ok [INFO] [stdout] test shell_tool::tests::test_safe_command_allowed ... ok [INFO] [stdout] test spawn_tool::tests::active_spawns_starts_at_zero ... ok [INFO] [stdout] test shell_tool::tests::test_dangerous_dd ... ok [INFO] [stdout] test shell_tool::tests::test_echo_command ... ok [INFO] [stdout] test shell_tool::tests::test_working_directory ... ok [INFO] [stdout] test memory_tool::tests::test_memory_write_tool_missing_content ... ok [INFO] [stdout] test file_tools::tests::test_write_file_traversal_rejected ... ok [INFO] [stdout] test shell_tool::tests::test_dangerous_rm_rf ... ok [INFO] [stdout] test memory_tool::tests::test_resolve_memory_path_returns_primary ... ok [INFO] [stdout] test memory_tool::tests::test_memory_write_and_read_roundtrip ... ok [INFO] [stdout] test url_safety::tests::allow_private_permits_private_ips ... ok [INFO] [stdout] test url_safety::tests::allowed_domain_bypasses_checks ... ok [INFO] [stdout] test url_safety::tests::blocked_domain ... ok [INFO] [stdout] test url_safety::tests::default_policy_is_enabled ... ok [INFO] [stdout] test url_safety::tests::invalid_url ... ok [INFO] [stdout] test memory_tool::tests::test_memory_read_no_file ... ok [INFO] [stdout] test url_safety::tests::ipv6_link_local ... ok [INFO] [stdout] test url_safety::tests::ipv6_loopback ... ok [INFO] [stdout] test url_safety::tests::ipv6_unique_local ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v4_mapped_v6 ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v4_mapped_v6_public ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v4_private ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v4_public ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v6_public ... ok [INFO] [stdout] test url_safety::tests::is_blocked_ip_v6_reserved ... ok [INFO] [stdout] test url_safety::tests::link_local_169_254_1_1 ... ok [INFO] [stdout] test url_safety::tests::loopback_127_0_0_1 ... ok [INFO] [stdout] test url_safety::tests::loopback_127_0_0_2 ... ok [INFO] [stdout] test url_safety::tests::metadata_aws ... ok [INFO] [stdout] test url_safety::tests::metadata_gcp ... ok [INFO] [stdout] test url_safety::tests::permissive_policy_is_disabled ... ok [INFO] [stdout] test url_safety::tests::policy_disabled_allows_everything ... ok [INFO] [stdout] test url_safety::tests::private_ip_10_network ... ok [INFO] [stdout] test url_safety::tests::private_ip_172_16_network ... ok [INFO] [stdout] test url_safety::tests::private_ip_192_168_network ... ok [INFO] [stdout] test spawn_tool::tests::concurrency_limit_enforced ... ok [INFO] [stdout] test url_safety::tests::public_url_openai_api ... ok [INFO] [stdout] test url_safety::tests::public_url_example_com ... ok [INFO] [stdout] test url_safety::tests::zero_network_blocked ... ok [INFO] [stdout] test url_safety::tests::public_url_with_path_and_query ... ok [INFO] [stdout] test file_tools::tests::test_write_file_creates_parent_dirs ... ok [INFO] [stdout] test spawn_tool::tests::name_is_spawn ... ok [INFO] [stdout] test url_safety::tests::ipv4_mapped_ipv6 ... ok [INFO] [stdout] test spawn_tool::tests::spawn_with_no_args ... ok [INFO] [stdout] test web_fetch::tests::missing_url_returns_error ... ok [INFO] [stdout] test web_fetch::tests::description_not_empty ... ok [INFO] [stdout] test web_fetch::tests::oversized_response_is_truncated ... ok [INFO] [stdout] test web_fetch::tests::invalid_url_scheme_returns_error ... ok [INFO] [stdout] test web_fetch::tests::name_is_web_fetch ... ok [INFO] [stdout] test file_tools::tests::test_write_file_missing_content ... ok [INFO] [stdout] test spawn_tool::tests::parameters_has_command ... ok [INFO] [stdout] test spawn_tool::tests::tool_is_object_safe ... ok [INFO] [stdout] test web_search::tests::config_configured_with_api_key ... ok [INFO] [stdout] test web_search::tests::config_configured_with_endpoint ... ok [INFO] [stdout] test web_search::tests::config_not_configured_when_empty ... ok [INFO] [stdout] test web_search::tests::config_not_configured_with_empty_strings ... ok [INFO] [stdout] test spawn_tool::tests::missing_command_returns_error ... ok [INFO] [stdout] test web_fetch::tests::parameters_has_url ... ok [INFO] [stdout] test memory_tool::tests::test_memory_write_append_mode ... ok [INFO] [stdout] test web_fetch::tests::response_within_limit_not_truncated ... ok [INFO] [stdout] test spawn_tool::tests::description_not_empty ... ok [INFO] [stdout] test web_fetch::tests::tool_is_object_safe ... ok [INFO] [stdout] test shell_tool::tests::test_timeout ... ok [INFO] [stdout] test memory_tool::tests::test_memory_write_overwrite_mode ... ok [INFO] [stdout] test web_fetch::tests::default_max_response_bytes_is_10mb ... ok [INFO] [stdout] test web_fetch::tests::with_max_bytes_sets_custom_limit ... ok [INFO] [stdout] test web_search::tests::description_is_not_empty ... ok [INFO] [stdout] test web_search::tests::urlencoding_plain ... ok [INFO] [stdout] test web_search::tests::urlencoding_spaces ... ok [INFO] [stdout] test web_search::tests::urlencoding_special_chars ... ok [INFO] [stdout] test spawn_tool::tests::spawn_echo_succeeds ... ok [INFO] [stdout] test web_search::tests::execute_missing_query_returns_error ... ok [INFO] [stdout] test web_search::tests::execute_with_empty_endpoint_returns_not_configured ... ok [INFO] [stdout] test web_search::tests::build_request_encodes_special_chars ... ok [INFO] [stdout] test web_search::tests::build_request_custom_endpoint ... ok [INFO] [stdout] test web_search::tests::from_endpoint_with_some ... ok [INFO] [stdout] test web_search::tests::execute_without_endpoint_returns_not_configured ... ok [INFO] [stdout] test web_search::tests::tool_is_object_safe ... ok [INFO] [stdout] test web_search::tests::build_request_brave_api_key ... ok [INFO] [stdout] test web_search::tests::parameters_has_query ... ok [INFO] [stdout] test web_search::tests::name_is_web_search ... ok [INFO] [stdout] test web_search::tests::execute_with_api_key_not_configured_message ... ok [INFO] [stdout] test web_search::tests::execute_uses_config_max_results_default ... ok [INFO] [stdout] test web_search::tests::from_endpoint_with_none ... ok [INFO] [stdout] test shell_tool::tests::test_timeout_clamped_to_max ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 152 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.07s [INFO] [stdout] [INFO] [stderr] Running tests/security_integration.rs (/opt/rustwide/target/debug/deps/security_integration-5e21e5ba1db5ef2f) [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test is_blocked_ip_ipv6_loopback ... ok [INFO] [stdout] test shell_dangerous_pattern_blocked_in_allowlist_mode ... ok [INFO] [stdout] test shell_env_var_injection_attempt ... ok [INFO] [stdout] test shell_piped_command_dangerous_pattern ... ok [INFO] [stdout] test shell_dangerous_pattern_blocked_in_denylist_mode ... ok [INFO] [stdout] test shell_empty_allowlist_blocks_everything ... ok [INFO] [stdout] test shell_denylist_rejects_denylisted_command ... ok [INFO] [stdout] test is_blocked_ip_public_v4_safe ... ok [INFO] [stdout] test shell_allowlist_permits_listed_command ... ok [INFO] [stdout] test url_192_168_blocked ... ok [INFO] [stdout] test shell_custom_allowlist ... ok [INFO] [stdout] test url_10_network_blocked ... ok [INFO] [stdout] test url_cloud_metadata_blocked ... ok [INFO] [stdout] test url_custom_blocked_domain ... ok [INFO] [stdout] test url_disabled_policy_allows_all ... ok [INFO] [stdout] test url_ipv6_loopback_blocked ... ok [INFO] [stdout] test url_loopback_127_blocked ... ok [INFO] [stdout] test url_loopback_with_port_blocked ... ok [INFO] [stdout] test url_allowed_domain_overrides ... ok [INFO] [stdout] test shell_rm_rf_build_not_blocked_by_root_pattern ... ok [INFO] [stdout] test url_public_allowed ... ok [INFO] [stdout] test shell_allowlist_rejects_unlisted_command ... ok [INFO] [stdout] test cross_tool_safe_defaults_behavior ... ok [INFO] [stdout] test shell_denylist_permits_normal_command ... ok [INFO] [stdout] test cross_tool_mode_switch_changes_behavior ... ok [INFO] [stdout] test spawn_allowed_command_succeeds ... ok [INFO] [stdout] test spawn_path_traversal_rejected ... ok [INFO] [stdout] test cross_tool_dangerous_always_blocked ... ok [INFO] [stdout] test spawn_dangerous_sudo_rejected ... ok [INFO] [stdout] test spawn_dangerous_mkfs_rejected ... ok [INFO] [stdout] test spawn_policy_error_is_informative ... ok [INFO] [stdout] test cross_tool_same_policy_same_rejection ... ok [INFO] [stdout] test spawn_unlisted_command_rejected ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s [INFO] [stdout] [INFO] [stderr] Doc-tests clawft_tools [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/url_safety.rs - url_safety::validate_url (line 115) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 1.23s; merged doctests compilation took 1.19s [INFO] running `Command { std: "docker" "inspect" "dd436d5129434e01d36c2fa55b926eb55a4e6b98677fe8a71fe04a56c9bec77b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dd436d5129434e01d36c2fa55b926eb55a4e6b98677fe8a71fe04a56c9bec77b", kill_on_drop: false }` [INFO] [stdout] dd436d5129434e01d36c2fa55b926eb55a4e6b98677fe8a71fe04a56c9bec77b