[INFO] cloning repository https://github.com/getdiff/cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/getdiff/cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgetdiff%2Fcli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgetdiff%2Fcli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5a69be44634a3e5e164423390a2c8e96e113534f [INFO] testing getdiff/cli against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgetdiff%2Fcli" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/getdiff/cli [INFO] finished tweaking git repo https://github.com/getdiff/cli [INFO] tweaked toml for git repo https://github.com/getdiff/cli written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/getdiff/cli on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/getdiff/cli 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tokio v1.50.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee [INFO] running `Command { std: "docker" "start" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", 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" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", 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" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling writeable v0.6.2 [INFO] [stderr] Compiling litemap v0.8.1 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling icu_properties_data v2.1.2 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling icu_normalizer_data v2.1.1 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling is-docker v0.2.0 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling notify-types v1.0.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling is-wsl v0.4.0 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling inotify v0.10.2 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling pathdiff v0.2.3 [INFO] [stderr] Compiling open v5.3.3 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling notify v7.0.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling getdiff-gateway v0.1.9 (/opt/rustwide/workdir/crates/gateway) [INFO] [stderr] Compiling gateway-sidecar v0.1.9 (/opt/rustwide/workdir/crates/sidecar) [INFO] [stderr] Compiling getdiff v0.2.3 (/opt/rustwide/workdir/crates/cli) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 11s [INFO] running `Command { std: "docker" "inspect" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", 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" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling tokio-test v0.4.5 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling getdiff-gateway v0.1.9 (/opt/rustwide/workdir/crates/gateway) [INFO] [stderr] Compiling getdiff v0.2.3 (/opt/rustwide/workdir/crates/cli) [INFO] [stderr] Compiling gateway-sidecar v0.1.9 (/opt/rustwide/workdir/crates/sidecar) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 1m 41s [INFO] running `Command { std: "docker" "inspect" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", 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" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.24s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/gateway_sidecar-be727a4786e8c858) [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/main.rs (/opt/rustwide/target/release/deps/getdiff-6d55b6cbbf566cdf) [INFO] [stdout] [INFO] [stdout] running 83 tests [INFO] [stdout] test artifact_scanner::tests::test_name_from_path ... ok [INFO] [stdout] test artifact_scanner::tests::test_build_plugin_ucir_includes_strong_child_refs ... ok [INFO] [stdout] test artifact_scanner::tests::test_project_scan_finds_claude_md ... ok [INFO] [stdout] test artifact_scanner::tests::test_project_scan_finds_amazonq_rules ... ok [INFO] [stdout] test artifact_scanner::tests::test_project_scan_finds_cursorrules ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_all_with_no_project_roots_only_returns_globals ... ok [INFO] [stdout] test artifact_scanner::tests::test_extract_claude_project ... ok [INFO] [stdout] test artifact_scanner::tests::test_redact_credentials ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_claude_settings_extracts_hooks_and_mcps ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_claude_plugins_finds_marketplace_plugins_recursively ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_single_file_nonexistent ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_single_file_empty ... ok [INFO] [stdout] test artifact_scanner::tests::test_sha256_hex ... ok [INFO] [stdout] test artifact_sync::tests::test_cache_key_format ... ok [INFO] [stdout] test artifact_sync::tests::test_extract_plugin_child_refs_reads_contents_shape ... ok [INFO] [stdout] test artifact_scanner::tests::test_symlink_outside_boundary_skipped ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_single_file_with_content ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_codex_plugins_finds_home_local_plugins ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_agent_path_global ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_agent_path_project_scoped ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_command_skill_global_remaps_to_skill_dir ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_command_skill_project_scoped_stays_relative ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_rule_path_global ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_rule_path_project_scoped ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_skill_path_project_scoped ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_amazonq_rules_not_remapped ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_cursor_rules_in_subdir_not_remapped ... ok [INFO] [stdout] test artifact_sync::tests::test_rejects_parent_dir_in_home_scoped_path ... ok [INFO] [stdout] test artifact_sync::tests::test_rejects_parent_dir_in_project_scoped_path ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_codex_project_finds_plugin_and_children ... ok [INFO] [stdout] test artifact_sync::tests::test_atomic_write_no_temp_files_left ... ok [INFO] [stdout] test artifact_sync::tests::test_read_empty_cache ... ok [INFO] [stdout] test config_history::tests::marks_first_snapshot_as_unchanged ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_copilot_agent_path ... ok [INFO] [stdout] test auth::tests::callback_prefers_json_body_values ... ok [INFO] [stdout] test auth::tests::callback_supports_form_encoded_body ... ok [INFO] [stdout] test artifact_sync::tests::test_install_pending_artifact_writes_file ... ok [INFO] [stdout] test parser::tests::provider_accepts_claude_alias ... ok [INFO] [stdout] test parser::tests::provider_from_tool_roundtrips ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_home_expanded_path ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_root_level_files_not_remapped ... ok [INFO] [stdout] test artifact_sync::tests::test_resolve_claude_skill_path_global ... ok [INFO] [stdout] test parser::cursor::tests::strip_user_query_preserves_plain_text ... ok [INFO] [stdout] test config_history::tests::marks_later_snapshot_as_changed_when_fingerprint_differs ... ok [INFO] [stdout] test parser::tests::provider_string_matches_session_tool ... ok [INFO] [stdout] test detectors::tests::composes_inline_regex_flags ... ok [INFO] [stdout] test detectors::tests::namespaces_cache_by_server ... ok [INFO] [stdout] test parser::cursor::tests::strip_user_query_removes_wrapper ... ok [INFO] [stdout] test config_history::tests::ignores_malformed_history_file ... ok [INFO] [stdout] test artifact_sync::tests::test_hash_cache_roundtrip ... ok [INFO] [stdout] test auth::tests::write_secure_file_persists_contents ... ok [INFO] [stdout] test types::tests::omits_config_snapshot_when_none ... ok [INFO] [stdout] test artifact_scanner::tests::test_scan_claude_project_finds_plugin_and_children ... ok [INFO] [stdout] test tests::attaches_real_config_metadata ... ok [INFO] [stdout] test types::tests::serializes_config_snapshot_when_present ... ok [INFO] [stdout] test artifact_sync::tests::test_write_merges_with_existing ... ok [INFO] [stdout] test watcher::tests::test_discover_ignores_non_uuid_jsonl ... ok [INFO] [stdout] test watcher::tests::test_discover_sessions_finds_jsonl_files ... ok [INFO] [stdout] test watcher::tests::test_file_is_idle_with_zero_threshold ... ok [INFO] [stdout] test watcher::tests::test_find_changed_detects_growth ... ok [INFO] [stdout] test watcher::tests::test_discover_nonexistent_dir ... ok [INFO] [stdout] test watcher::tests::test_discover_sessions_empty ... ok [INFO] [stdout] test watcher::tests::test_find_changed_new_session ... ok [INFO] [stdout] test redact::tests::test_preserves_normal_text ... ok [INFO] [stdout] test watcher::tests::test_find_changed_excludes_active_sessions ... ok [INFO] [stdout] test redact::tests::test_redacts_aws_key ... ok [INFO] [stdout] test redact::tests::test_skips_invalid_credit_card ... ok [INFO] [stdout] test redact::tests::test_redacts_credit_card ... ok [INFO] [stdout] test redact::tests::test_redacts_jwt ... ok [INFO] [stdout] test redact::tests::test_redacts_extended_github_token_prefixes ... ok [INFO] [stdout] test redact::tests::test_redacts_phone ... ok [INFO] [stdout] test redact::tests::test_custom_pattern ... ok [INFO] [stdout] test redact::tests::test_redacts_generic_secret ... ok [INFO] [stdout] test redact::tests::test_redacts_github_token ... ok [INFO] [stdout] test watcher::tests::test_freshly_created_file_is_not_idle ... ok [INFO] [stdout] test redact::tests::test_redacts_slack_token ... ok [INFO] [stdout] test watcher::tests::test_migrate_from_legacy_log ... ok [INFO] [stdout] test redact::tests::test_redacts_email ... ok [INFO] [stdout] test watcher::tests::test_find_changed_opencode_uses_update_marker ... ok [INFO] [stdout] test watcher::tests::test_find_changed_skips_unchanged ... ok [INFO] [stdout] test watcher::tests::test_read_empty_state ... ok [INFO] [stdout] test watcher::tests::test_read_state_migrates_legacy_state_json_keys ... ok [INFO] [stderr] Running tests/parser_tests.rs (/opt/rustwide/target/release/deps/parser_tests-79a09304d628f350) [INFO] [stdout] test watcher::tests::test_update_and_read_state ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 83 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 59 tests [INFO] [stdout] test test_copilot_thinking_detected ... ok [INFO] [stdout] test test_codex_skips_developer_harness_messages ... ok [INFO] [stdout] test test_codex_session_parses ... ok [INFO] [stdout] test test_copilot_files_tracked ... ok [INFO] [stdout] test test_copilot_timestamps ... ok [INFO] [stdout] test test_codex_tool_and_token_parsing ... ok [INFO] [stdout] test test_copilot_session_parses ... ok [INFO] [stdout] test test_files_modified_tracked ... ok [INFO] [stdout] test test_codex_reliability_and_files ... ok [INFO] [stdout] test test_cursor_strips_user_query_wrapper ... ok [INFO] [stdout] test test_copilot_tool_errors_tracked ... ok [INFO] [stdout] test test_duration_computed ... ok [INFO] [stdout] test test_copilot_reliability_telemetry ... ok [INFO] [stdout] test test_gemenicli_files_tracked ... ok [INFO] [stdout] test test_cursor_session_parses ... ok [INFO] [stdout] test test_gemenicli_message_counts ... ok [INFO] [stdout] test test_gemenicli_timestamps ... ok [INFO] [stdout] test test_copilot_message_counts ... ok [INFO] [stdout] test test_gemenicli_reliability ... ok [INFO] [stdout] test test_files_read_tracked ... ok [INFO] [stdout] test test_gemenicli_tokens ... ok [INFO] [stdout] test test_copilot_tool_calls ... ok [INFO] [stdout] test test_gemenicli_tool_calls ... ok [INFO] [stdout] test test_gemenicli_session_parses ... ok [INFO] [stdout] test test_git_branch_extracted ... ok [INFO] [stdout] test test_openclaw_cost_estimated ... ok [INFO] [stdout] test test_cursor_no_tool_calls ... ok [INFO] [stdout] test test_openclaw_files_tracked ... ok [INFO] [stdout] test test_cursor_has_timestamps_from_file_metadata ... ok [INFO] [stdout] test test_cost_estimation ... ok [INFO] [stdout] test test_message_counts ... ok [INFO] [stdout] test test_openclaw_tokens ... ok [INFO] [stdout] test test_opencode_session_parses ... ok [INFO] [stdout] test test_opencode_tokens_tools_and_files ... ok [INFO] [stdout] test test_openclaw_stop_reasons_normalized ... ok [INFO] [stdout] test test_openclaw_session_parses ... ok [INFO] [stdout] test test_openclaw_thinking_detected ... ok [INFO] [stdout] test test_secrets_redacted_in_user_messages ... ok [INFO] [stdout] test test_skips_non_conversation_lines ... ok [INFO] [stdout] test test_openclaw_tool_calls ... ok [INFO] [stdout] test test_secrets_redacted_in_tool_results ... ok [INFO] [stdout] test test_stop_reasons_captured ... ok [INFO] [stdout] test test_reliability_telemetry_extracted ... ok [INFO] [stdout] test test_thinking_detected_but_not_captured ... ok [INFO] [stdout] test test_session_id_extracted ... ok [INFO] [stdout] test test_sensitive_values_are_redacted_before_upload ... ok [INFO] [stdout] test test_tool_call_summary ... ok [INFO] [stdout] test test_tool_version_extracted ... ok [INFO] [stdout] test test_tool_is_claude_code ... ok [INFO] [stdout] test test_openclaw_reliability_telemetry ... ok [INFO] [stdout] test test_primary_model_extracted ... ok [INFO] [stdout] test test_openclaw_message_counts ... ok [INFO] [stdout] test test_gemenicli_thinking_detected ... ok [INFO] [stdout] test test_opencode_exported_sample_parses ... ok [INFO] [stdout] test test_tool_result_errors_captured ... ok [INFO] [stdout] test test_tool_calls_extracted ... ok [INFO] [stdout] test test_tool_input_summarized ... ok [INFO] [stdout] test test_timestamps_captured ... ok [INFO] [stdout] test test_token_totals ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/deps/getdiff_gateway-c19a8ec536fc6702) [INFO] [stdout] [INFO] [stdout] running 206 tests [INFO] [stdout] test adapter::generic::tests::test_adapter_config_from_yaml ... ok [INFO] [stdout] test adapter::generic::tests::test_extract_graphql_operation_type ... ok [INFO] [stdout] test adapter::generic::tests::test_extract_integer ... ok [INFO] [stdout] test adapter::generic::tests::test_extract_string ... ok [INFO] [stdout] test adapter::generic::tests::test_gmail_empty_body ... ok [INFO] [stdout] test adapter::generic::tests::test_gmail_delete_message ... ok [INFO] [stdout] test adapter::generic::tests::test_extract_graphql_operation_name ... ok [INFO] [stdout] test adapter::generic::tests::test_gmail_send_email ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_adapter_config_from_yaml ... ok [INFO] [stdout] test adapter::generic::tests::test_gmail_modify_message ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_preserves_string_variable_types ... ok [INFO] [stdout] test adapter::generic::tests::test_gmail_list_messages ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_query_extracted_name ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_subscription ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_arguments_flattened ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_gql_prefix_not_spoofable ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_operation_name_field_preferred ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_tools_call_without_config ... ok [INFO] [stdout] test adapter::generic::tests::test_match_host ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_empty_body ... ok [INFO] [stdout] test adapter::generic::tests::test_match_host_empty ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_input_object_flattening ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_anonymous_query ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_policy_integration ... ok [INFO] [stdout] test adapter::generic::tests::test_parse_address_list_display_names ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_mutation_with_operation_name ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_non_tools_call ... ok [INFO] [stdout] test adapter::generic::tests::test_parse_json_body ... ok [INFO] [stdout] test adapter::generic::tests::test_parse_form_body ... ok [INFO] [stdout] test adapter::generic::tests::test_path_exact ... ok [INFO] [stdout] test adapter::generic::tests::test_path_wildcard ... ok [INFO] [stdout] test adapter::generic::tests::test_stripe_create_charge ... ok [INFO] [stdout] test adapter::generic::tests::test_stripe_create_transfer ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_invalid_json ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_tools_call_with_config ... ok [INFO] [stdout] test adapter::tests::test_registry_skips_providers_without_adapter ... ok [INFO] [stdout] test audit::tests::test_log_writes_json_line ... ok [INFO] [stdout] test adapter::tests::test_registry_parses_request ... ok [INFO] [stdout] test audit::tests::test_omits_empty_optional_fields ... ok [INFO] [stdout] test audit::tests::test_query_by_decision ... ok [INFO] [stdout] test audit::tests::test_query_by_provider ... ok [INFO] [stdout] test audit::tests::test_query_by_session_id ... ok [INFO] [stdout] test adapter::generic::tests::test_graphql_empty_body ... ok [INFO] [stdout] test audit::tests::test_query_with_limit_and_offset ... ok [INFO] [stdout] test adapter::tests::test_registry_from_config ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_adapter_config_from_yaml ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_policy_integration ... ok [INFO] [stdout] test adapter::generic::tests::test_parse_address_list_simple ... ok [INFO] [stdout] test config::tests::test_default_config_with_overrides ... ok [INFO] [stdout] test adapter::generic::tests::test_parse_empty_body ... ok [INFO] [stdout] test adapter::generic::tests::test_path_mismatch_length ... ok [INFO] [stdout] test adapter::tests::test_registry_find_by_host ... ok [INFO] [stdout] test adapter::generic::tests::test_jsonrpc_config_extraction_overrides ... ok [INFO] [stdout] test audit::tests::test_stats_learning_blocks ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test audit::tests::test_stats_returns_correct_aggregates ... ok [INFO] [stdout] test config::tests::test_provider_for_host_non_bedrock_aws ... ok [INFO] [stdout] test config::tests::test_deserialize_config ... ok [INFO] [stdout] test config::tests::test_github_provider_config ... ok [INFO] [stdout] test config::tests::test_gmail_provider_config ... ok [INFO] [stdout] test config::tests::test_provider_for_host_unknown ... ok [INFO] [stdout] test counter::tests::test_increment_and_get ... ok [INFO] [stdout] test counter::tests::test_increment_if_under_allows ... ok [INFO] [stdout] test counter::tests::test_increment_if_under_rejects ... ok [INFO] [stdout] test counter::tests::test_increment_with_custom_ttl ... ok [INFO] [stdout] test config::tests::test_stripe_provider_config ... ok [INFO] [stdout] test counter::tests::test_key_format ... ok [INFO] [stdout] test adapter::generic::tests::test_path_mismatch_segment ... ok [INFO] [stdout] test counter::tests::test_multiple_providers_independent ... ok [INFO] [stdout] test counter::tests::test_negative_amount_ignored ... ok [INFO] [stdout] test config::tests::test_merge_with_defaults ... ok [INFO] [stdout] test daemon_config::tests::test_deserialize_daemon_config ... ok [INFO] [stdout] test counter::tests::test_zero_amount_ignored ... ok [INFO] [stdout] test adapter::generic::tests::test_path_multi_wildcard ... ok [INFO] [stdout] test config::tests::test_provider_for_host_bedrock ... ok [INFO] [stdout] test adapter::generic::tests::test_stripe_list_charges ... ok [INFO] [stdout] test daemon_config::tests::test_platform_config_default ... ok [INFO] [stdout] test events::tests::test_daemon_id_persistence ... ok [INFO] [stdout] test daemon_config::tests::test_deserialize_daemon_config_observe ... ok [INFO] [stdout] test adapter::generic::tests::test_stripe_unknown ... ok [INFO] [stdout] test events::tests::test_event_batch_serialization ... ok [INFO] [stdout] test events::tests::test_event_from_audit_learning_mode ... ok [INFO] [stdout] test events::tests::test_hash_request_body_different_inputs ... ok [INFO] [stdout] test events::tests::test_daemon_id_generation ... ok [INFO] [stdout] test events::tests::test_event_from_audit ... ok [INFO] [stdout] test events::tests::test_hash_request_body_empty ... ok [INFO] [stdout] test events::tests::test_hash_request_body ... ok [INFO] [stdout] test forward_proxy::tests::test_extract_target_host_absolute_uri ... ok [INFO] [stdout] test forward_proxy::tests::test_extract_target_host_connect ... ok [INFO] [stdout] test counter::tests::test_new_counter_starts_at_zero ... ok [INFO] [stdout] test config::tests::test_intersection_policies ... ok [INFO] [stdout] test events::tests::test_batch_response_deserialization ... ok [INFO] [stdout] test config::tests::test_provider_for_host_known ... ok [INFO] [stdout] test counter::tests::test_saturating_add_no_overflow ... ok [INFO] [stdout] test forward_proxy::tests::test_is_not_forward_proxy_relative_uri ... ok [INFO] [stdout] test forward_proxy::tests::test_is_forward_proxy_absolute_uri ... ok [INFO] [stdout] test forward_proxy::tests::test_is_forward_proxy_connect ... ok [INFO] [stdout] test forward_proxy::tests::test_parse_host_port_custom_port ... ok [INFO] [stdout] test forward_proxy::tests::test_parse_host_port_invalid_port ... ok [INFO] [stdout] test forward_proxy::tests::test_parse_host_port_ipv6 ... ok [INFO] [stdout] test forward_proxy::tests::test_parse_host_port_with_port ... ok [INFO] [stdout] test harvester::tests::test_basic_auth ... ok [INFO] [stdout] test forward_proxy::tests::test_parse_host_port_without_port ... ok [INFO] [stdout] test harvester::tests::test_api_key_header ... ok [INFO] [stdout] test harvester::tests::test_different_credentials_different_fingerprints ... ok [INFO] [stdout] test counter::tests::test_expired_entry_resets_on_increment ... ok [INFO] [stdout] test harvester::tests::test_fingerprint_consistent ... ok [INFO] [stdout] test harvester::tests::test_query_parameter_key ... ok [INFO] [stdout] test harvester::tests::test_bearer_token ... ok [INFO] [stdout] test harvester::tests::test_list_omits_raw_values ... ok [INFO] [stdout] test harvester::tests::test_same_credential_increments ... ok [INFO] [stdout] test intersection::tests::test_compute_intersections_three_way ... ok [INFO] [stdout] test counter::tests::test_expired_entries_return_zero ... ok [INFO] [stdout] test intersection::tests::test_compute_intersections_one_provider_missing ... ok [INFO] [stdout] test counter::tests::test_evict_expired ... ok [INFO] [stdout] test intersection::tests::test_merge_base_not_modified ... ok [INFO] [stdout] test counter::tests::test_len_excludes_expired ... ok [INFO] [stdout] test intersection::tests::test_merge_blocked_lists_union ... ok [INFO] [stdout] test harvester::tests::test_stats ... ok [INFO] [stdout] test harvester::tests::test_get_value_by_fingerprint ... ok [INFO] [stdout] test harvester::tests::test_github_token_style ... ok [INFO] [stdout] test harvester::tests::test_no_credential ... ok [INFO] [stdout] test intersection::tests::test_compute_intersections_two_providers_match ... ok [INFO] [stdout] test intersection::tests::test_merge_no_rules ... ok [INFO] [stdout] test intersection::tests::test_merge_does_not_loosen ... ok [INFO] [stdout] test intersection::tests::test_merge_numeric_caps_minimum ... ok [INFO] [stdout] test intersection::tests::test_rules_from_config ... ok [INFO] [stdout] test mcp_stdio::tests::test_evaluate_allowed_operations_whitelist ... ok [INFO] [stdout] test intersection::tests::test_merge_recipient_cap_minimum ... ok [INFO] [stdout] test intersection::tests::test_merge_multiple_intersections ... ok [INFO] [stdout] test mcp_stdio::tests::test_evaluate_non_tools_call ... ok [INFO] [stdout] test mcp_stdio::tests::test_evaluate_tools_call_allowed ... ok [INFO] [stdout] test mcp_stdio::tests::test_evaluate_tools_call_blocked ... ok [INFO] [stdout] test mcp_stdio::tests::test_evaluate_empty_line ... ok [INFO] [stdout] test mockapi::tests::test_github_requires_auth ... ok [INFO] [stdout] test mockapi::tests::test_gmail_messages ... ok [INFO] [stdout] test mockapi::tests::test_github_user ... ok [INFO] [stdout] test mockapi::tests::test_match_github_path ... ok [INFO] [stdout] test mockapi::tests::test_health_endpoint ... ok [INFO] [stdout] test policy::tests::test_allowed_operation ... ok [INFO] [stdout] test mcp_stdio::tests::test_jsonrpc_error_response_string_id ... ok [INFO] [stdout] test mockapi::tests::test_stripe_charges ... ok [INFO] [stdout] test policy::tests::test_allowed_currencies ... ok [INFO] [stdout] test audit::tests::test_thread_safety ... ok [INFO] [stdout] test mockapi::tests::test_parse_stripe_body_json ... ok [INFO] [stdout] test mcp_stdio::tests::test_jsonrpc_error_response ... ok [INFO] [stdout] test policy::tests::test_allowed_path ... ok [INFO] [stdout] test policy::tests::test_blocked_operation ... ok [INFO] [stdout] test mcp_stdio::tests::test_jsonrpc_error_response_no_id ... ok [INFO] [stdout] test policy::tests::test_blocked_path_exact ... ok [INFO] [stdout] test policy::tests::test_blocked_path_glob ... ok [INFO] [stdout] test policy::tests::test_allowed_recipients ... ok [INFO] [stdout] test policy::tests::test_empty_policies_allow_all ... ok [INFO] [stdout] test policy::tests::test_blocked_path_takes_precedence ... ok [INFO] [stdout] test policy::tests::test_match_glob ... ok [INFO] [stdout] test policy::tests::test_max_amount_cents ... ok [INFO] [stdout] test policy::tests::test_max_recipients_per_message ... ok [INFO] [stdout] test policy::tests::test_combined_gmail_policy ... ok [INFO] [stdout] test policy::tests::test_path_segment_count_mismatch ... ok [INFO] [stdout] test policy::tests::test_combined_stripe_policy ... ok [INFO] [stdout] test profiler::tests::test_multiple_records ... ok [INFO] [stdout] test mockapi::tests::test_match_github_path_exact ... ok [INFO] [stdout] test policy::tests::test_blocked_method ... ok [INFO] [stdout] test mockapi::tests::test_parse_stripe_body_form ... ok [INFO] [stdout] test policy::tests::test_unlisted_method_denied ... ok [INFO] [stdout] test policy::tests::test_allowed_method ... ok [INFO] [stdout] test profiler::tests::test_blocked_count ... ok [INFO] [stdout] test profiler::tests::test_methods_counted ... ok [INFO] [stdout] test policy::tests::test_full_policy_stack ... ok [INFO] [stdout] test policy::tests::test_path_not_in_allowed_list ... ok [INFO] [stdout] test profiler::tests::test_suggest_method_restriction ... ok [INFO] [stdout] test profiler::tests::test_operations_counted_per_provider ... ok [INFO] [stdout] test profiler::tests::test_multiple_sessions ... ok [INFO] [stdout] test proxy::tests::test_daily_limit_blocks_when_exceeded ... ok [INFO] [stdout] test proxy::tests::test_path_extraction ... ok [INFO] [stdout] test profiler::tests::test_new_session ... ok [INFO] [stdout] test proxy::tests::test_daily_limit_no_amount_passes_through ... ok [INFO] [stdout] test profiler::tests::test_unknown_session ... ok [INFO] [stdout] test proxy::tests::test_add_then_remove_multiple_sessions ... ok [INFO] [stdout] test proxy::tests::test_add_session_inserts_providers ... ok [INFO] [stdout] test proxy::tests::test_daily_limit_allows_within_budget ... ok [INFO] [stdout] test profiler::tests::test_suggest_operation_restriction ... ok [INFO] [stdout] test proxy::tests::test_daily_limit_skips_already_denied ... ok [INFO] [stdout] test transparent::tests::test_generate_iptables_cleanup ... ok [INFO] [stdout] test transparent::tests::test_generate_iptables_init ... ok [INFO] [stdout] test transparent::tests::test_iptables_rejects_invalid_ports ... ok [INFO] [stdout] test proxy::tests::test_path_extraction_empty ... ok [INFO] [stdout] test transparent::tests::test_resolve_hostname_from_host_header ... ok [INFO] [stdout] test transparent::tests::test_resolve_hostname_ipv6_bracket ... ok [INFO] [stdout] test proxy::tests::test_path_extraction_single_segment ... ok [INFO] [stdout] test transparent::tests::test_resolve_hostname_ipv6_bracket_no_port ... ok [INFO] [stdout] test transparent::tests::test_resolve_hostname_missing_header ... ok [INFO] [stdout] test proxy::tests::test_remove_unknown_session_returns_not_found ... ok [INFO] [stdout] test session::tests::test_session_context_creation ... ok [INFO] [stdout] test transparent::tests::test_generate_iptables_init_no_excluded_ports ... ok [INFO] [stdout] test transparent::tests::test_get_original_dst_non_linux ... ok [INFO] [stdout] test policy::tests::test_blocked_recipients ... ok [INFO] [stdout] test session::tests::test_provider_session_policy_evaluation ... ok [INFO] [stdout] test transparent::tests::test_extract_hostname_variants ... ok [INFO] [stdout] test transparent::tests::test_resolve_hostname_strips_port ... ok [INFO] [stdout] test proxy::tests::test_remove_session_deletes_providers ... ok [INFO] [stdout] test forward_proxy::tests::test_connect_to_unreachable_host_returns_502 ... ok [INFO] [stdout] test forward_proxy::tests::test_connect_tunnel_established ... ok [INFO] [stdout] test forward_proxy::tests::test_http_forward_proxy_request ... ok [INFO] [stdout] test forward_proxy::tests::test_path_prefix_request_through_forward_proxy ... ok [INFO] [stdout] test events::tests::test_event_sender_does_not_block ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 206 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stderr] Doc-tests getdiff_gateway [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" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee", kill_on_drop: false }` [INFO] [stdout] d59f0600a962b5eb13cde8b6255609be92bab69fa7096b2c433842d47b5f34ee