[INFO] cloning repository https://github.com/shaond/inboxapi-cli [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/shaond/inboxapi-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaond%2Finboxapi-cli", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaond%2Finboxapi-cli'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 98b7bb49ec4d1df8bebd1c426fd3d2f47e843fbc [INFO] testing shaond/inboxapi-cli against beta-2026-04-21 for beta-1.96-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fshaond%2Finboxapi-cli" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/shaond/inboxapi-cli [INFO] finished tweaking git repo https://github.com/shaond/inboxapi-cli [INFO] tweaked toml for git repo https://github.com/shaond/inboxapi-cli written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/shaond/inboxapi-cli on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/shaond/inboxapi-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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c90da0dc3e5fbc7256ef2f2bf3c8a81a42faf2f7591cf98ebe6a35cd5b6a7889 [INFO] running `Command { std: "docker" "start" "-a" "c90da0dc3e5fbc7256ef2f2bf3c8a81a42faf2f7591cf98ebe6a35cd5b6a7889", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c90da0dc3e5fbc7256ef2f2bf3c8a81a42faf2f7591cf98ebe6a35cd5b6a7889", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c90da0dc3e5fbc7256ef2f2bf3c8a81a42faf2f7591cf98ebe6a35cd5b6a7889", kill_on_drop: false }` [INFO] [stdout] c90da0dc3e5fbc7256ef2f2bf3c8a81a42faf2f7591cf98ebe6a35cd5b6a7889 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=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" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5ab2b9b189670a4eca7c7cf93a20bd9a8d39ca97ebff967db3419ea632e028f0 [INFO] running `Command { std: "docker" "start" "-a" "5ab2b9b189670a4eca7c7cf93a20bd9a8d39ca97ebff967db3419ea632e028f0", kill_on_drop: false }` [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling typenum v1.19.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_json v1.0.149 [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 digest v0.10.7 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [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 displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [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 clap v4.5.60 [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 serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [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 tokio-rustls v0.26.4 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling inboxapi-cli v0.3.13 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.24s [INFO] running `Command { std: "docker" "inspect" "5ab2b9b189670a4eca7c7cf93a20bd9a8d39ca97ebff967db3419ea632e028f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5ab2b9b189670a4eca7c7cf93a20bd9a8d39ca97ebff967db3419ea632e028f0", kill_on_drop: false }` [INFO] [stdout] 5ab2b9b189670a4eca7c7cf93a20bd9a8d39ca97ebff967db3419ea632e028f0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=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" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 74b9224e1879a61d6d6c4d7253406853168a636a0987d1f75a59f19b8d0b6f71 [INFO] running `Command { std: "docker" "start" "-a" "74b9224e1879a61d6d6c4d7253406853168a636a0987d1f75a59f19b8d0b6f71", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling inboxapi-cli v0.3.13 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 13.11s [INFO] running `Command { std: "docker" "inspect" "74b9224e1879a61d6d6c4d7253406853168a636a0987d1f75a59f19b8d0b6f71", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "74b9224e1879a61d6d6c4d7253406853168a636a0987d1f75a59f19b8d0b6f71", kill_on_drop: false }` [INFO] [stdout] 74b9224e1879a61d6d6c4d7253406853168a636a0987d1f75a59f19b8d0b6f71 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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=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" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 527b5e43f5639f2434c551afd0084631e6d618eb07b81c95899481daaf5fb5e8 [INFO] running `Command { std: "docker" "start" "-a" "527b5e43f5639f2434c551afd0084631e6d618eb07b81c95899481daaf5fb5e8", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/inboxapi_cli-57bd31e15a4ff167) [INFO] [stdout] [INFO] [stdout] running 273 tests [INFO] [stdout] test tests::agent_labels_are_human_readable ... ok [INFO] [stdout] test tests::agent_enum_all_returns_four_agents ... ok [INFO] [stdout] test tests::agent_name_has_correct_format ... ok [INFO] [stdout] test tests::agent_binaries_are_correct ... ok [INFO] [stdout] test tests::agent_name_suffix_is_hex ... ok [INFO] [stdout] test tests::agent_names_produce_variety ... ok [INFO] [stdout] test tests::build_help_response_preserves_request_id ... ok [INFO] [stdout] test tests::build_help_response_has_correct_structure ... ok [INFO] [stdout] test tests::compare_versions_newer ... ok [INFO] [stdout] test tests::credentials_path_ends_with_expected_components ... ok [INFO] [stdout] test tests::codex_skills_have_no_claude_frontmatter ... ok [INFO] [stdout] test tests::compare_versions_older ... ok [INFO] [stdout] test tests::credentials_deserialize_from_json ... ok [INFO] [stdout] test tests::credentials_deserialize_rejects_missing_fields ... ok [INFO] [stdout] test tests::credentials_serialization_roundtrip ... ok [INFO] [stdout] test tests::display_name_from_account_converts_hyphenated_names ... ok [INFO] [stdout] test tests::drain_sse_events_filters_non_message_events ... ok [INFO] [stdout] test tests::drain_sse_events_handles_multiline_data ... ok [INFO] [stdout] test tests::drain_sse_events_parses_multiple_events ... ok [INFO] [stdout] test tests::drain_sse_events_parses_single_event ... ok [INFO] [stdout] test tests::drain_sse_events_preserves_incomplete_buffer ... ok [INFO] [stdout] test tests::compare_versions_equal ... ok [INFO] [stdout] test tests::compare_versions_major_diff ... ok [INFO] [stdout] test tests::detect_agents_returns_four_entries ... ok [INFO] [stdout] test tests::drain_sse_events_returns_empty_for_empty_input ... ok [INFO] [stdout] test tests::drain_sse_events_treats_missing_event_type_as_message ... ok [INFO] [stdout] test tests::drain_sse_remainder_filters_non_message_events ... ok [INFO] [stdout] test tests::drain_sse_remainder_parses_trailing_event ... ok [INFO] [stdout] test tests::drain_sse_remainder_returns_none_for_empty_buffer ... ok [INFO] [stdout] test tests::embedded_skill_arrays_have_same_length ... ok [INFO] [stdout] test tests::embedded_skill_names_match_across_agents ... ok [INFO] [stdout] test tests::inject_empty_inbox_nudge_noop_without_content ... ok [INFO] [stdout] test tests::inject_empty_inbox_nudge_appends_content ... ok [INFO] [stdout] test tests::drain_sse_events_returns_empty_for_no_complete_events ... ok [INFO] [stdout] test tests::inject_initialize_instructions_adds_field ... ok [INFO] [stdout] test tests::inject_initialize_instructions_returns_unchanged_on_invalid_json ... ok [INFO] [stdout] test tests::inject_initialize_instructions_preserves_existing_fields ... ok [INFO] [stdout] test tests::inject_initialize_instructions_returns_unchanged_without_result ... ok [INFO] [stdout] test tests::generate_hashcash_contains_resource ... ok [INFO] [stdout] test tests::inject_initialize_instructions_with_creds_includes_identity ... ok [INFO] [stdout] test tests::generate_hashcash_produces_valid_stamp ... ok [INFO] [stdout] test tests::inject_initialize_instructions_with_update ... ok [INFO] [stdout] test tests::inject_initialize_instructions_with_creds_no_email_skips_identity ... ok [INFO] [stdout] test tests::inject_token_adds_token_to_regular_tool ... ok [INFO] [stdout] test tests::inject_token_does_not_inject_encryption_secret_when_token_already_present ... ok [INFO] [stdout] test tests::inject_token_does_not_overwrite_existing_token ... ok [INFO] [stdout] test tests::inject_token_handles_missing_arguments ... ok [INFO] [stdout] test tests::inject_token_handles_missing_name ... ok [INFO] [stdout] test tests::inject_token_handles_missing_params ... ok [INFO] [stdout] test tests::inject_token_handles_null_name ... ok [INFO] [stdout] test tests::inject_initialize_instructions_without_update ... ok [INFO] [stdout] test tests::inject_token_does_not_overwrite_existing_encryption_secret ... ok [INFO] [stdout] test tests::inject_token_ignores_non_tools_call_method ... ok [INFO] [stdout] test tests::inject_token_ignores_notifications ... ok [INFO] [stdout] test tests::inject_token_injects_encryption_secret ... ok [INFO] [stdout] test tests::inject_token_preserves_existing_arguments ... ok [INFO] [stdout] test tests::inject_token_skips_account_create ... ok [INFO] [stdout] test tests::inject_token_skips_account_recover ... ok [INFO] [stdout] test tests::inject_token_skips_auth_exchange ... ok [INFO] [stdout] test tests::inject_token_skips_help ... ok [INFO] [stdout] test tests::inject_update_notice_appends_content ... ok [INFO] [stdout] test tests::inject_update_notice_handles_missing_content ... ok [INFO] [stdout] test tests::inject_update_notice_preserves_existing ... ok [INFO] [stdout] test tests::inject_token_skips_auth_refresh ... ok [INFO] [stdout] test tests::install_skills_to_dir_creates_correct_structure ... ok [INFO] [stdout] test tests::install_opencode_commands_creates_flat_files ... ok [INFO] [stdout] test tests::is_cache_stale_future_timestamp ... ok [INFO] [stdout] test tests::is_cache_stale_invalid_date ... ok [INFO] [stdout] test tests::install_skills_to_dir_idempotent ... ok [INFO] [stdout] test tests::is_cache_stale_fresh_cache ... ok [INFO] [stdout] test tests::is_cache_stale_old_cache ... ok [INFO] [stdout] test tests::is_empty_inbox_response_case_insensitive ... ok [INFO] [stdout] test tests::is_empty_inbox_response_detects_empty_array ... ok [INFO] [stdout] test tests::is_empty_inbox_response_detects_no_emails_found ... ok [INFO] [stdout] test tests::is_empty_inbox_response_handles_error_response ... ok [INFO] [stdout] test tests::is_empty_inbox_response_with_extra_content_items ... ok [INFO] [stdout] test tests::is_help_call_returns_false_for_non_tools_call ... ok [INFO] [stdout] test tests::is_help_call_returns_true_for_help_tool ... ok [INFO] [stdout] test tests::is_newer_false_equal ... ok [INFO] [stdout] test tests::is_newer_false_older ... ok [INFO] [stdout] test tests::is_empty_inbox_response_handles_missing_content ... ok [INFO] [stdout] test tests::is_newer_true ... ok [INFO] [stdout] test tests::is_empty_inbox_response_rejects_non_empty ... ok [INFO] [stdout] test tests::is_help_call_returns_false_for_other_tools ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_auth_error_code ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_auth_error_code_32003 ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_authentication_failed ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_expired_token ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_invalid_token ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_jsonrpc_auth_error ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_revoked_token ... ok [INFO] [stdout] test tests::is_token_expired_error_detects_unauthorized ... ok [INFO] [stdout] test tests::is_token_expired_error_handles_empty_content ... ok [INFO] [stdout] test tests::is_token_expired_error_case_insensitive ... ok [INFO] [stdout] test tests::is_token_expired_error_handles_missing_is_error ... ok [INFO] [stdout] test tests::is_token_expired_error_ignores_non_token_jsonrpc_error ... ok [INFO] [stdout] test tests::is_token_expired_error_rejects_generic_token_mention ... ok [INFO] [stdout] test tests::is_token_expired_error_rejects_non_token_errors ... ok [INFO] [stdout] test tests::is_token_expired_error_rejects_success_response ... ok [INFO] [stdout] test tests::merge_hook_settings_creates_settings_when_missing ... ok [INFO] [stdout] test tests::merge_hook_settings_coerces_non_array_event_entries ... ok [INFO] [stdout] test tests::mutate_feedback_tool_ignores_other_tools ... ok [INFO] [stdout] test tests::merge_hook_settings_preserves_existing_keys ... ok [INFO] [stdout] test tests::merge_hook_settings_errors_on_invalid_json ... ok [INFO] [stdout] test tests::merge_hook_settings_errors_on_non_object_root ... ok [INFO] [stdout] test tests::mutate_feedback_tool_no_stale_token ... ok [INFO] [stdout] test tests::mutate_feedback_tool_handles_missing_args ... ok [INFO] [stdout] test tests::mutate_feedback_tool_rewrites_report_bug ... ok [INFO] [stdout] test tests::merge_hook_settings_errors_on_non_object_hooks ... ok [INFO] [stdout] test tests::mutate_feedback_tool_rewrites_request_feature ... ok [INFO] [stdout] test tests::mutate_feedback_tool_without_creds ... ok [INFO] [stdout] test tests::rewrite_tools_list_injects_feedback_tools ... ok [INFO] [stdout] test tests::rewrite_tools_list_feedback_descriptions_scoped ... ok [INFO] [stdout] test tests::rewrite_tools_list_returns_unchanged_on_invalid_json ... ok [INFO] [stdout] test tests::rewrite_tools_list_returns_unchanged_without_result ... ok [INFO] [stdout] test tests::rewrite_tools_list_preserves_tool_fields ... ok [INFO] [stdout] test tests::rewrite_tools_list_rewrites_auth_tools ... ok [INFO] [stdout] test tests::rewrite_tools_list_whoami_includes_identity_when_creds_present ... ok [INFO] [stdout] test tests::rewrite_tools_list_preserves_other_tools ... ok [INFO] [stdout] test tests::sanitize_for_description_truncates_long_input ... ok [INFO] [stdout] test tests::sanitize_for_description_strips_dangerous_chars ... ok [INFO] [stdout] test tests::test_annotations_destructive_hint_on_rotate_encryption ... ok [INFO] [stdout] test tests::rewrite_tools_list_handles_no_tools ... ok [INFO] [stdout] test tests::rewrite_tools_list_with_creds_annotates_identity_tools ... ok [INFO] [stdout] test tests::test_annotations_readonly_hint_on_get_emails ... ok [INFO] [stdout] test tests::test_build_client_user_agent_strips_control_chars_and_spaces ... ok [INFO] [stdout] test tests::test_build_client_user_agent_normal ... ok [INFO] [stdout] test tests::test_build_jsonrpc_error_preserves_null_id ... ok [INFO] [stdout] test tests::test_announcements_warning ... ok [INFO] [stdout] test tests::test_annotations_readonly_on_whoami ... ok [INFO] [stdout] test tests::test_annotations_merged_into_existing ... ok [INFO] [stdout] test tests::test_download_with_limit_accepts_success_response ... ok [INFO] [stdout] test tests::test_extract_tool_result_text_error ... ok [INFO] [stdout] test tests::test_extract_tool_result_text_jsonrpc_error ... ok [INFO] [stdout] test tests::test_extract_tool_result_text_no_content ... ok [INFO] [stdout] test tests::test_download_with_limit_rejects_http_error_response ... ok [INFO] [stdout] test tests::test_extract_tool_result_text_success ... ok [INFO] [stdout] test tests::test_forward_email_args_preserved ... ok [INFO] [stdout] test tests::test_forward_email_args_with_attachments ... ok [INFO] [stdout] test tests::test_build_jsonrpc_error_preserves_string_id ... ok [INFO] [stdout] test tests::test_guess_content_type_pdf ... ok [INFO] [stdout] test tests::test_guess_content_type_txt ... ok [INFO] [stdout] test tests::test_guess_content_type_unknown ... ok [INFO] [stdout] test tests::test_help_output_contains_examples ... ok [INFO] [stdout] test tests::test_human_output_forward_email ... ok [INFO] [stdout] test tests::test_human_output_get_addressbook ... ok [INFO] [stdout] test tests::test_human_output_auth_introspect_invalid_json ... ok [INFO] [stdout] test tests::test_human_output_get_addressbook_empty ... ok [INFO] [stdout] test tests::test_human_output_get_addressbook_invalid_json ... ok [INFO] [stdout] test tests::test_human_output_auth_introspect ... ok [INFO] [stdout] test tests::test_human_output_get_announcements_empty ... ok [INFO] [stdout] test tests::test_human_output_get_announcements_invalid_json ... ok [INFO] [stdout] test tests::opencode_commands_have_description_frontmatter ... ok [INFO] [stdout] test tests::rewrite_tools_list_feedback_tool_schemas ... ok [INFO] [stdout] test tests::test_human_output_get_announcements ... ok [INFO] [stdout] test tests::rewrite_tools_list_with_creds_no_email_skips_identity_tools ... ok [INFO] [stdout] test tests::test_guess_content_type_png ... ok [INFO] [stdout] test tests::test_help_output_contains_all_commands ... ok [INFO] [stdout] test tests::test_human_output_get_email_count ... ok [INFO] [stdout] test tests::test_human_output_get_email ... ok [INFO] [stdout] test tests::test_human_output_get_email_count_total_field ... ok [INFO] [stdout] test tests::test_human_output_get_email_count_invalid_json ... ok [INFO] [stdout] test tests::test_human_output_get_emails_empty ... ok [INFO] [stdout] test tests::test_human_output_get_emails_with_results ... ok [INFO] [stdout] test tests::test_human_output_get_last_email ... ok [INFO] [stdout] test tests::test_human_output_get_emails_wrapped_object ... ok [INFO] [stdout] test tests::test_human_output_get_sent_emails ... ok [INFO] [stdout] test tests::test_human_output_get_thread_invalid_json ... ok [INFO] [stdout] test tests::test_human_output_get_emails_empty_wrapped ... ok [INFO] [stdout] test tests::test_human_output_search_emails_empty ... ok [INFO] [stdout] test tests::test_human_output_get_sent_emails_empty ... ok [INFO] [stdout] test tests::test_human_output_search_emails_wrapped ... ok [INFO] [stdout] test tests::test_human_output_send_email ... ok [INFO] [stdout] test tests::test_human_output_get_thread_truncates_long_body ... ok [INFO] [stdout] test tests::test_human_output_get_thread ... ok [INFO] [stdout] test tests::test_human_output_send_reply ... ok [INFO] [stdout] test tests::test_human_output_get_last_email_invalid_json ... ok [INFO] [stdout] test tests::test_identity_not_injected_into_search_emails_description ... ok [INFO] [stdout] test tests::test_inject_token_get_addressbook ... ok [INFO] [stdout] test tests::test_inject_token_get_announcements ... ok [INFO] [stdout] test tests::test_identity_injected_into_forward_email_description ... ok [INFO] [stdout] test tests::test_inject_token_get_email ... ok [INFO] [stdout] test tests::test_inject_token_get_email_count ... ok [INFO] [stdout] test tests::test_inject_token_get_emails ... ok [INFO] [stdout] test tests::test_inject_token_get_last_email ... ok [INFO] [stdout] test tests::test_inject_token_get_sent_emails ... ok [INFO] [stdout] test tests::test_inject_token_get_thread ... ok [INFO] [stdout] test tests::test_inject_token_null_arguments ... ok [INFO] [stdout] test tests::test_inject_token_search_emails ... ok [INFO] [stdout] test tests::test_inject_token_send_email ... ok [INFO] [stdout] test tests::test_inject_token_send_reply ... ok [INFO] [stdout] test tests::test_inject_token_missing_arguments_key ... ok [INFO] [stdout] test tests::test_identity_injected_into_send_reply_description ... ok [INFO] [stdout] test tests::test_identity_injected_into_send_email_description ... ok [INFO] [stdout] test tests::test_instructions_contain_untrusted_data_warning ... ok [INFO] [stdout] test tests::test_instructions_contain_explicit_request_only ... ok [INFO] [stdout] test tests::test_identity_not_injected_into_get_emails_description ... ok [INFO] [stdout] test tests::test_instructions_no_proactive_email_sending ... ok [INFO] [stdout] test tests::test_instructions_no_forced_invocation ... ok [INFO] [stdout] test tests::test_is_blocked_proxy_tool_auth_introspect ... ok [INFO] [stdout] test tests::test_inject_token_empty_arguments_object ... ok [INFO] [stdout] test tests::test_is_not_blocked_proxy_tool_get_emails ... ok [INFO] [stdout] test tests::test_is_not_blocked_proxy_tool_send_email ... ok [INFO] [stdout] test tests::test_maxlength_default_for_other_strings ... ok [INFO] [stdout] test tests::test_maxlength_not_overwritten_if_present ... ok [INFO] [stdout] test tests::test_is_blocked_proxy_tool_reset_encryption ... ok [INFO] [stdout] test tests::test_json_output_passthrough ... ok [INFO] [stdout] test tests::test_mutate_does_not_affect_forward_email ... ok [INFO] [stdout] test tests::test_mutate_does_not_affect_get_emails ... ok [INFO] [stdout] test tests::test_mutate_does_not_affect_get_thread ... ok [INFO] [stdout] test tests::test_mutate_does_not_affect_send_reply ... ok [INFO] [stdout] test tests::test_mutate_does_not_affect_send_email ... ok [INFO] [stdout] test tests::test_is_blocked_proxy_tool_verify_owner ... ok [INFO] [stdout] test tests::test_no_annotations_on_send_email ... ok [INFO] [stdout] test tests::test_no_untrusted_warning_on_send_email ... ok [INFO] [stdout] test tests::test_resolve_body_input_prefers_inline_value ... ok [INFO] [stdout] test tests::test_resolve_body_input_rejects_directory ... ok [INFO] [stdout] test tests::test_resolve_body_input_rejects_invalid_utf8 ... ok [INFO] [stdout] test tests::test_resolve_body_input_rejects_both_inline_and_file ... ok [INFO] [stdout] test tests::test_resolve_body_input_reads_file_contents ... ok [INFO] [stdout] test tests::test_resolve_body_input_rejects_nul_bytes ... ok [INFO] [stdout] test tests::test_resolve_body_input_rejects_oversized_file ... ok [INFO] [stdout] test tests::test_rewrite_strips_token_from_required_array ... ok [INFO] [stdout] test tests::test_sanitize_no_domain_key ... ok [INFO] [stdout] test tests::test_sanitize_preserves_normal_params ... ok [INFO] [stdout] test tests::test_sanitize_preserves_token ... ok [INFO] [stdout] test tests::test_rewrite_strips_token_from_all_tool_schemas ... ok [INFO] [stdout] test tests::test_sanitize_skips_non_tool_calls ... ok [INFO] [stdout] test tests::test_sanitize_strips_all_dunder_params ... ok [INFO] [stdout] test tests::test_sanitize_strips_debug_param ... ok [INFO] [stdout] test tests::test_sanitize_strips_domain ... ok [INFO] [stdout] test tests::test_send_email_accepts_body_file_flags ... ok [INFO] [stdout] test tests::test_send_email_args_basic ... ok [INFO] [stdout] test tests::test_sanitize_strips_access_token ... ok [INFO] [stdout] test tests::test_send_email_args_multiple_recipients ... ok [INFO] [stdout] test tests::test_send_email_args_preserved ... ok [INFO] [stdout] test tests::test_send_email_args_with_attachments ... ok [INFO] [stdout] test tests::test_send_email_args_with_all_options ... ok [INFO] [stdout] test tests::test_send_email_args_with_cc_bcc ... ok [INFO] [stdout] test tests::test_send_reply_args_preserved ... ok [INFO] [stdout] test tests::test_send_reply_args_with_attachments ... ok [INFO] [stdout] test tests::test_send_reply_with_all_optional_fields ... ok [INFO] [stdout] test tests::test_send_reply_with_only_required_fields ... ok [INFO] [stdout] test tests::test_rewrite_removes_blocked_tools_from_list ... ok [INFO] [stdout] test tests::test_sensitive_tool_enable_encryption_has_caution ... ok [INFO] [stdout] test tests::test_sensitive_tool_rotate_encryption_has_caution ... ok [INFO] [stdout] test tests::test_split_csv_filters_empty ... ok [INFO] [stdout] test tests::test_split_csv_single ... ok [INFO] [stdout] test tests::mutate_feedback_tool_ignores_non_tools_call ... ok [INFO] [stdout] test tests::test_build_jsonrpc_error_structure ... ok [INFO] [stdout] test tests::test_is_blocked_proxy_tool_auth_revoke ... ok [INFO] [stdout] test tests::test_is_blocked_proxy_tool_auth_revoke_all ... ok [INFO] [stdout] test tests::test_untrusted_warning_on_get_emails ... ok [INFO] [stdout] test tests::test_untrusted_warning_on_get_last_email ... ok [INFO] [stdout] test tests::version_cache_roundtrip ... ok [INFO] [stdout] test tests::test_untrusted_warning_on_search_emails ... ok [INFO] [stdout] test tests::verify_hashcash_rejects_invalid_stamp ... ok [INFO] [stdout] test tests::test_send_reply_rejects_body_and_body_file_together ... ok [INFO] [stdout] test tests::write_if_needed_reports_up_to_date ... ok [INFO] [stdout] test tests::write_if_needed_skips_differing_content ... ok [INFO] [stdout] test tests::write_if_needed_creates_new_file ... ok [INFO] [stdout] test tests::test_maxlength_injected_on_body ... ok [INFO] [stdout] test tests::write_if_needed_force_overwrites ... ok [INFO] [stdout] test tests::merge_hook_settings_does_not_duplicate_hooks ... ok [INFO] [stdout] test tests::test_split_csv_basic ... ok [INFO] [stdout] test tests::test_split_csv_trims_whitespace ... ok [INFO] [stdout] test tests::test_build_attachment_from_file_missing_file ... ok [INFO] [stdout] test tests::test_build_attachment_from_file_reads_and_encodes ... ok [INFO] [stdout] test tests::test_build_client_user_agent_missing_fields ... ok [INFO] [stdout] test tests::test_build_client_user_agent_truncates_long_values ... ok [INFO] [stdout] test tests::test_inject_token_forward_email ... ok [INFO] [stdout] test tests::test_rewrite_preserves_non_token_properties ... ok [INFO] [stdout] test tests::test_rewrite_removes_all_blocked_tools ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 273 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s [INFO] [stdout] [INFO] [stderr] Running tests/mcp_integration_test.rs (/opt/rustwide/target/debug/deps/mcp_integration_test-95bd2cb7b738ee7f) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_mcp_handshake ... ignored, Live MCP proxy test: requires network and credentials. Run with `cargo test -- --ignored`. [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "527b5e43f5639f2434c551afd0084631e6d618eb07b81c95899481daaf5fb5e8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "527b5e43f5639f2434c551afd0084631e6d618eb07b81c95899481daaf5fb5e8", kill_on_drop: false }` [INFO] [stdout] 527b5e43f5639f2434c551afd0084631e6d618eb07b81c95899481daaf5fb5e8