[INFO] cloning repository https://github.com/baden-ballard/bridge
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/baden-ballard/bridge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaden-ballard%2Fbridge", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaden-ballard%2Fbridge'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a150960f3092da99096dbdf0941e38d43f5b4c21
[INFO] testing baden-ballard/bridge against 1.99.0-beta.1+cargoflags=--release for beta-release-1.99-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fbaden-ballard%2Fbridge" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/baden-ballard/bridge
[INFO] finished tweaking git repo https://github.com/baden-ballard/bridge
[INFO] tweaked toml for git repo https://github.com/baden-ballard/bridge written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/baden-ballard/bridge on toolchain 1.99.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/baden-ballard/bridge 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.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80
[INFO] running `Command { std: "docker" "start" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", 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" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", 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" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling cfb v0.7.3
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling hostname v0.4.2
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling infer v0.16.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling bridge v0.3.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 48s
[INFO] running `Command { std: "docker" "inspect" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", 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" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling tokio v1.51.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling deadpool-runtime v0.1.4
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling assert-json-diff v2.0.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling deadpool v0.12.3
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling wiremock v0.6.5
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling bridge v0.3.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 29s
[INFO] running `Command { std: "docker" "inspect" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", 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" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/bridge-a274caf4c735c192)
[INFO] [stdout] 
[INFO] [stdout] running 217 tests
[INFO] [stdout] test bluebubbles::tests::reaction_map_handles_all_known_labels ... ok
[INFO] [stdout] test bluebubbles::tests::reaction_map_rejects_unknown ... ok
[INFO] [stdout] test bluebubbles::tests::one_to_one_chat_guid_format ... ok
[INFO] [stdout] test alerter::tests::alert_with_no_url_is_noop ... ok
[INFO] [stdout] test alerter::tests::empty_url_is_treated_as_unset ... ok
[INFO] [stdout] test bluebubbles::tests::create_chat_posts_addresses_and_auth_query ... ok
[INFO] [stdout] test bluebubbles::tests::send_attachment_surfaces_5xx_as_api_error ... ok
[INFO] [stdout] test bluebubbles::tests::mark_read_surfaces_5xx_as_api_error ... ok
[INFO] [stdout] test bluebubbles::tests::send_attachment_rejects_invalid_mime ... ok
[INFO] [stdout] test bluebubbles::tests::send_attachment_sends_expected_multipart_fields ... ok
[INFO] [stdout] test bluebubbles::tests::send_reaction_rejects_unknown_label ... ok
[INFO] [stdout] test alerter::tests::debounce_collapses_same_kind_within_window ... ok
[INFO] [stdout] test alerter::tests::different_kinds_emit_independently ... ok
[INFO] [stdout] test alerter::tests::payload_shape_includes_node_kind_and_ts ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_effect_posts_effect_id ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_reply_and_effect_posts_both_fields ... ok
[INFO] [stdout] test bluebubbles::tests::send_attachment_posts_multipart_to_correct_path ... ok
[INFO] [stdout] test degraded::tests::clear_after_set_transitions_to_healthy ... ok
[INFO] [stdout] test alerter::tests::http_failure_is_swallowed ... ok
[INFO] [stdout] test bluebubbles::tests::mark_read_posts_to_chat_read_path ... ok
[INFO] [stdout] test degraded::tests::clear_when_healthy_is_noop ... ok
[INFO] [stdout] test bluebubbles::tests::send_reaction_posts_wire_format ... ok
[INFO] [stdout] test degraded::tests::new_without_alerter_still_works ... ok
[INFO] [stdout] test degraded::tests::concurrent_set_and_read_are_deterministic ... ok
[INFO] [stdout] test degraded::tests::set_different_reason_overwrites ... ok
[INFO] [stdout] test alerter::tests::debounce_expiry_allows_new_alert ... ok
[INFO] [stdout] test degraded::tests::set_same_reason_twice_does_not_change_state ... ok
[INFO] [stdout] test degraded::tests::set_then_clear_returns_none ... ok
[INFO] [stdout] test degraded::tests::set_then_current_returns_the_reason ... ok
[INFO] [stdout] test effects::tests::covers_all_spec_listed_ids ... ok
[INFO] [stdout] test effects::tests::known_labels_has_expected_count ... ok
[INFO] [stdout] test effects::tests::reverse_lookup_roundtrips ... ok
[INFO] [stdout] test effects::tests::known_labels_sample ... ok
[INFO] [stdout] test effects::tests::unknown_id_returns_none ... ok
[INFO] [stdout] test observability::tests::chat_db_poll_tracks_last_success ... ok
[INFO] [stdout] test bluebubbles::tests::create_chat_surfaces_api_error ... ok
[INFO] [stdout] test observability::tests::supabase_reachable_tracks_most_recent_when_configured ... ok
[INFO] [stdout] test observability::tests::supabase_reachable_null_when_unconfigured ... ok
[INFO] [stdout] test observability::tests::webhook_most_recent_result_wins_per_app ... ok
[INFO] [stdout] test observability::tests::webhook_reachable_false_when_all_failed ... ok
[INFO] [stdout] test observability::tests::webhook_reachable_null_when_no_forwards ... ok
[INFO] [stdout] test observability::tests::webhook_reachable_true_when_any_app_succeeded ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_surfaces_5xx_as_api_error ... ok
[INFO] [stdout] test sender::capability_tests::all_imessage_when_every_participant_has_imessage_history ... ok
[INFO] [stdout] test sender::capability_tests::most_recent_signal_wins_per_participant ... ok
[INFO] [stdout] test sender::capability_tests::mixed_signals_split_into_their_buckets ... ok
[INFO] [stdout] test sender::gui_timeout_tests::default_osascript_timeout_unchanged ... ok
[INFO] [stdout] test sender::capability_tests::sms_participant_disqualifies_and_is_named ... ok
[INFO] [stdout] test bluebubbles::tests::set_typing_false_is_delete ... ok
[INFO] [stdout] test sender::gui_timeout_tests::gui_timeout_is_at_least_sixty_seconds ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_omits_reply_fields_when_none ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_reply_posts_selected_message_guid ... ok
[INFO] [stdout] test bluebubbles::tests::trailing_slash_in_server_url_is_trimmed ... ok
[INFO] [stdout] test bluebubbles::tests::send_attachment_timeout_surfaces_as_timeout_transport_error ... ok
[INFO] [stdout] test bluebubbles::tests::set_typing_surfaces_4xx ... ok
[INFO] [stdout] test sender::capability_tests::unknown_participant_disqualifies_and_is_named ... ok
[INFO] [stdout] test degraded::tests::clear_does_not_fire_alerter ... ok
[INFO] [stdout] test degraded::tests::set_different_reasons_fires_alerter_per_transition ... ok
[INFO] [stdout] test bluebubbles::tests::set_typing_true_is_post ... ok
[INFO] [stdout] test sender::gui_timeout_tests::run_command_with_timeout_returns_output_for_fast_process ... ok
[INFO] [stdout] test degraded::tests::set_same_reason_twice_fires_alerter_once ... ok
[INFO] [stdout] test sender::routed_send_tests::routed_send_bb_4xx_falls_back_to_osascript ... ok
[INFO] [stdout] test sender::gui_timeout_tests::run_command_with_timeout_kills_hung_process ... ok
[INFO] [stdout] test server::tests::health_ok_is_false_when_reason_is_set ... ok
[INFO] [stdout] test bluebubbles::tests::send_reaction_remove_uses_minus_prefix ... ok
[INFO] [stdout] test server::tests::health_is_cached_for_2s ... ok
[INFO] [stdout] test server::tests::health_queries_counts_when_supabase_ok ... ok
[INFO] [stdout] test server::tests::health_queue_depth_null_when_supabase_unconfigured ... ok
[INFO] [stdout] test server::tests::health_queue_depth_null_when_schema_incompatible ... ok
[INFO] [stdout] test server::tests::health_ok_is_true_when_reason_is_none ... ok
[INFO] [stdout] test server::tests::health_returns_all_ten_fields ... ok
[INFO] [stdout] test server::tests::health_surfaces_supabase_auth_rejection ... ok
[INFO] [stdout] test server::tests::health_surfaces_webhook_auth_rejection ... ok
[INFO] [stdout] test sender::routed_send_tests::routed_send_bb_5xx_falls_back_to_osascript ... ok
[INFO] [stdout] test server::tests::health_records_uptime_and_webhook_reachability ... ok
[INFO] [stdout] test server::tests::mark_read_accepts_explicit_chat_guid ... ok
[INFO] [stdout] test server::tests::mark_read_returns_503_when_bb_unconfigured ... ok
[INFO] [stdout] test sender::routed_send_tests::routed_send_bb_success_skips_osascript ... ok
[INFO] [stdout] test server::tests::mark_read_requires_phone_or_chat_guid ... ok
[INFO] [stdout] test bluebubbles::tests::send_text_with_options_timeout_is_is_timeout_variant ... ok
[INFO] [stdout] test server::tests::mark_read_resolves_phone_to_chat_guid ... ok
[INFO] [stdout] test server::tests::mark_read_returns_502_on_bb_5xx ... ok
[INFO] [stdout] test server::tests::react_derives_1to1_chat_guid_from_phone ... ok
[INFO] [stdout] test server::tests::react_returns_503_when_bb_unconfigured ... ok
[INFO] [stdout] test server::tests::react_rejects_unknown_reaction_label_with_400 ... ok
[INFO] [stdout] test server::tests::react_invalid_json_is_400 ... ok
[INFO] [stdout] test server::tests::react_remove_flag_uses_minus_prefix ... ok
[INFO] [stdout] test server::tests::react_requires_target_message_id ... ok
[INFO] [stdout] test server::tests::react_requires_chat_guid_or_phone ... ok
[INFO] [stdout] test server::tests::react_uses_explicit_chat_guid_when_provided ... ok
[INFO] [stdout] test sender::routed_send_tests::routed_send_bb_timeout_falls_back_to_osascript ... ok
[INFO] [stdout] test server::tests::react_upstream_bb_error_maps_to_502 ... ok
[INFO] [stdout] test sender::routed_send_tests::routed_send_no_bb_uses_osascript_unchanged ... ok
[INFO] [stdout] test server::tests::send_attachment_path_nonexistent_returns_400 ... ok
[INFO] [stdout] test server::tests::send_attachment_oversized_returns_413_without_hitting_bb ... ok
[INFO] [stdout] test server::tests::send_attachment_base64_invalid_returns_400 ... ok
[INFO] [stdout] test server::tests::send_attachment_without_bluebubbles_returns_503 ... ok
[INFO] [stdout] test server::tests::send_attachment_normal_success_no_verified_via_field ... ok
[INFO] [stdout] test server::tests::send_attachment_base64_success_hits_bb_with_correct_fields ... ok
[INFO] [stdout] test server::tests::send_attachment_path_success_hits_bb ... ok
[INFO] [stdout] test server::tests::send_attachment_unknown_source_returns_400 ... ok
[INFO] [stdout] test server::tests::send_with_effect_returns_503_when_bb_unconfigured ... ok
[INFO] [stdout] test server::tests::send_with_attachment_and_effect_returns_400 ... ok
[INFO] [stdout] test server::tests::send_with_effect_posts_effect_id_to_bb ... ok
[INFO] [stdout] test server::tests::send_with_attachment_and_reply_to_returns_400 ... ok
[INFO] [stdout] test server::tests::send_attachment_url_success_end_to_end_gif ... ok
[INFO] [stdout] test server::tests::send_with_reply_to_and_effect_posts_both_fields_on_one_bb_call ... ok
[INFO] [stdout] test server::tests::send_with_reply_to_returns_503_when_bb_unconfigured ... ok
[INFO] [stdout] test server::tests::send_with_reply_to_custom_part_index_is_forwarded ... ok
[INFO] [stdout] test server::tests::send_without_attachment_or_text_is_400 ... ok
[INFO] [stdout] test server::tests::send_with_reply_to_posts_selected_message_guid_to_bb ... ok
[INFO] [stdout] test sender::gui_timeout_tests::gui_does_not_timeout_when_competing_with_concurrent_sends ... ok
[INFO] [stdout] test server::tests::send_with_unknown_effect_returns_400_with_valid_list ... ok
[INFO] [stdout] test server::tests::typing_returns_503_when_bb_unconfigured ... ok
[INFO] [stdout] test server::tests::send_with_reply_to_missing_text_returns_400 ... ok
[INFO] [stdout] test shutdown::tests::triggers_propagate ... ok
[INFO] [stdout] test shutdown::tests::wait_returns_immediately_if_already_triggered ... ok
[INFO] [stdout] test state::tests::legacy_state_without_new_cursors_loads_with_zeros ... ok
[INFO] [stdout] test state::tests::load_corrupt_file_falls_back_to_default ... ok
[INFO] [stdout] test state::tests::load_empty_file_falls_back_to_default ... ok
[INFO] [stdout] test state::tests::load_missing_returns_default ... ok
[INFO] [stdout] test server::tests::typing_invalid_json_is_400 ... ok
[INFO] [stdout] test state::tests::save_creates_parent_directory ... ok
[INFO] [stdout] test state::tests::save_is_atomic_tmp_cleaned_up ... ok
[INFO] [stdout] test state::tests::load_partial_write_falls_back_to_default ... ok
[INFO] [stdout] test server::tests::typing_requires_chat_guid_or_phone ... ok
[INFO] [stdout] test state::tests::save_then_load_roundtrips ... ok
[INFO] [stdout] test state::tests::save_overwrites_existing ... ok
[INFO] [stdout] test tests::read_receipt_target_only_fires_for_messages_and_attachments ... ok
[INFO] [stdout] test watcher::tests::attachment_event_emits_with_caption ... ok
[INFO] [stdout] test server::tests::typing_true_posts_and_false_deletes ... ok
[INFO] [stdout] test watcher::tests::decode_tapback_maps_all_known_codes ... ok
[INFO] [stdout] test watcher::tests::attachment_expands_tilde ... ok
[INFO] [stdout] test tests::dispatch_read_receipt_uses_bluebubbles_when_configured ... ok
[INFO] [stdout] test watcher::tests::edited_only_for_previously_seen_rows ... ok
[INFO] [stdout] test watcher::tests::effect_balloon_bundle_has_kind_balloon_and_null_label ... ok
[INFO] [stdout] test watcher::tests::effect_expressive_parses_with_label ... ok
[INFO] [stdout] test watcher::tests::effect_unknown_id_still_emitted_with_null_label ... ok
[INFO] [stdout] test watcher::tests::group_chat_skipped ... ok
[INFO] [stdout] test watcher::tests::max_outbound_rowid_for_chat_returns_0_when_chat_absent ... ok
[INFO] [stdout] test watcher::tests::outbound_attachment_exists_since_finds_new_outbound_with_attachment ... ok
[INFO] [stdout] test watcher::tests::max_outbound_rowid_for_chat_returns_max_of_outbound_rows ... ok
[INFO] [stdout] test server::tests::send_attachment_bb_hangs_verified_via_chatdb_returns_200 ... ok
[INFO] [stdout] test watcher::tests::outbound_attachment_exists_since_respects_rowid_cursor ... ok
[INFO] [stdout] test watcher::tests::outbound_text_exists_since_finds_new_outbound_without_attachment ... ok
[INFO] [stdout] test watcher::tests::outbound_attachment_exists_since_ignores_inbound_and_other_chats ... ok
[INFO] [stdout] test server::tests::send_attachment_bb_hangs_no_chatdb_match_returns_502 ... ok
[INFO] [stdout] test watcher::tests::poll_and_record_clears_degraded_on_recovery ... ok
[INFO] [stdout] test watcher::tests::plain_message_has_no_reply_or_effect ... ok
[INFO] [stdout] test watcher::tests::poll_and_record_sets_degraded_when_chat_db_missing ... ok
[INFO] [stdout] test watcher::tests::outbound_text_exists_since_ignores_inbound_and_other_chats ... ok
[INFO] [stdout] test watcher::tests::phone_filter_applies_across_all_event_types ... ok
[INFO] [stdout] test watcher::tests::strip_associated_prefix_removes_part ... ok
[INFO] [stdout] test watcher::tests::outbound_text_exists_since_respects_rowid_cursor ... ok
[INFO] [stdout] test watcher::tests::poll_and_record_only_clears_its_own_reason ... ok
[INFO] [stdout] test watcher::tests::read_receipt_detected_on_outgoing_row_with_date_read ... ok
[INFO] [stdout] test webhook::tests::attachment_payload_uses_type_not_mime_type ... ok
[INFO] [stdout] test webhook::tests::cross_tool_parity_check ... ok
[INFO] [stdout] test watcher::tests::tapback_detected_with_loved_added ... ok
[INFO] [stdout] test watcher::tests::reply_message_carries_reply_to ... ok
[INFO] [stdout] test webhook::tests::edited_payload_shape ... ok
[INFO] [stdout] test webhook::tests::effect_message_serializes_with_label_null_for_unknown_id ... ok
[INFO] [stdout] test webhook::tests::empty_body_still_signed ... ok
[INFO] [stdout] test watcher::tests::tapback_removed_via_3001 ... ok
[INFO] [stdout] test webhook::tests::does_not_retry_on_4xx ... ok
[INFO] [stdout] test webhook::tests::forwards_each_variant_shape_end_to_end ... ok
[INFO] [stdout] test webhook::tests::honors_phone_filter ... ok
[INFO] [stdout] test webhook::tests::read_receipt_payload_shape ... ok
[INFO] [stdout] test webhook::tests::reply_message_includes_reply_to_block ... ok
[INFO] [stdout] test webhook::tests::plain_message_omits_reply_to_and_effect ... ok
[INFO] [stdout] test watcher::tests::unsent_only_for_previously_seen_rows ... ok
[INFO] [stdout] test webhook::tests::no_signature_when_secret_absent ... ok
[INFO] [stdout] test webhook::tests::tapback_payload_shape ... ok
[INFO] [stdout] test webhook::tests::unsent_payload_shape ... ok
[INFO] [stdout] test webhook::tests::succeeds_on_first_try_no_deadletter ... ok
[INFO] [stdout] test webhook::tests::signs_when_secret_configured ... ok
[INFO] [stdout] test webhook::tests::webhook_backoff_progression ... ok
[INFO] [stdout] test worker::tests::backoff_schedule_progression ... ok
[INFO] [stdout] test webhook::tests::webhook_401_sets_degraded_and_records_failure ... ok
[INFO] [stdout] test webhook::tests::webhook_2xx_clears_auth_rejected_flag ... ok
[INFO] [stdout] test worker::tests::claim_row_sends_optimistic_concurrency_check ... ok
[INFO] [stdout] test server::tests::send_with_effect_bb_hang_no_chatdb_match_returns_502 ... ok
[INFO] [stdout] test worker::tests::fetch_pending_bubbles_supabase_5xx ... ok
[INFO] [stdout] test worker::tests::is_ready_to_retry_waits_for_backoff ... ok
[INFO] [stdout] test worker::tests::is_ready_to_retry_zero_attempts ... ok
[INFO] [stdout] test worker::tests::schema_probe_auth_rejected ... ok
[INFO] [stdout] test worker::tests::schema_probe_column_missing_worker_pauses ... ok
[INFO] [stdout] test worker::tests::fetch_pending_hits_right_filters ... ok
[INFO] [stdout] test worker::tests::claim_returns_none_when_already_claimed ... ok
[INFO] [stdout] test worker::tests::schema_probe_ok_worker_polls ... ok
[INFO] [stdout] test worker::tests::schema_transition_incompatible_to_ok ... ok
[INFO] [stdout] test worker::tests::schema_probe_transient_5xx_not_degraded ... ok
[INFO] [stdout] test server::tests::send_with_reply_bb_hang_verified_via_chatdb_returns_200 ... ok
[INFO] [stdout] test worker::tests::supabase_401_sets_degraded_flag ... ok
[INFO] [stdout] test worker::tests::send_and_record_skips_bluebubbles_when_unconfigured ... ok
[INFO] [stdout] test worker::tests::supabase_403_sets_degraded_flag ... ok
[INFO] [stdout] test worker::tests::supabase_500_does_not_set_auth_flag ... ok
[INFO] [stdout] test worker::tests::token_bucket_caps_at_capacity ... ok
[INFO] [stdout] test worker::tests::token_bucket_consumes_burst_then_refills ... ok
[INFO] [stdout] test worker::tests::token_bucket_refills_over_time ... ok
[INFO] [stdout] test worker::tests::truncate_reason_clips_long_strings ... ok
[INFO] [stdout] test worker::tests::truncate_reason_leaves_short_strings ... ok
[INFO] [stdout] test worker::tests::tick_delivers_row_and_marks_delivered ... ok
[INFO] [stdout] test worker::tests::tick_skips_rows_in_backoff_window ... ok
[INFO] [stdout] test worker::tests::supabase_2xx_clears_auth_rejected_flag ... ok
[INFO] [stdout] test worker::tests::send_and_record_routes_through_bluebubbles_when_configured ... ok
[INFO] [stdout] test sender::gui_timeout_tests::gui_call_succeeds_with_queue_wait_under_budget ... ok
[INFO] [stdout] test sender::osascript_lock_tests::bb_http_path_not_blocked_by_osascript_lock ... ok
[INFO] [stdout] test sender::osascript_lock_tests::intervals_never_overlap ... ok
[INFO] [stdout] test webhook::tests::retries_on_5xx_then_succeeds ... ok
[INFO] [stdout] test sender::osascript_lock_tests::presence_path_serializes_with_send_path ... ok
[INFO] [stdout] test sender::osascript_lock_tests::never_more_than_one_holder ... ok
[INFO] [stdout] test sender::osascript_lock_tests::mixed_concurrent_no_deadlock ... ok
[INFO] [stdout] test sender::osascript_lock_tests::long_gui_completes_before_queued_sends_start ... ok
[INFO] [stdout] test tests::dispatch_read_receipt_skips_bluebubbles_when_unconfigured ... ok
[INFO] [stdout] test server::tests::send_without_reply_to_uses_applescript_path_zero_bb_hits ... ok
[INFO] [stdout] test webhook::tests::dead_letters_after_three_5xx ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 217 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.15s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80", kill_on_drop: false }`
[INFO] [stdout] 3894999e62eb3c25815117318ed41650c2a1c4e13b04af37ddda3ad7688cdf80
