[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.98.0-beta.8+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-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/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-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/baden-ballard/bridge on toolchain 1.98.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.8" "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.98.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded infer v0.16.0 [INFO] [stderr] Downloaded uuid v1.23.1 [INFO] [stderr] Downloaded rusqlite v0.31.0 [INFO] [stderr] Downloaded h2 v0.4.13 [INFO] [stderr] Downloaded libsqlite3-sys v0.28.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d [INFO] running `Command { std: "docker" "start" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", 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" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", 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" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [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 openssl v0.10.76 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling native-tls v0.2.18 [INFO] [stderr] Compiling getrandom v0.4.2 [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 serde_json v1.0.149 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling indexmap v2.13.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling openssl-sys v0.9.112 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Compiling cfb v0.7.3 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling hostname v0.4.2 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling infer v0.16.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling zerofrom-derive v0.1.7 [INFO] [stderr] Compiling yoke-derive v0.8.2 [INFO] [stderr] Compiling zerovec-derive v0.11.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.7 [INFO] [stderr] Compiling yoke v0.8.2 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling zerovec v0.11.6 [INFO] [stderr] Compiling zerotrie v0.2.4 [INFO] [stderr] Compiling tinystr v0.8.3 [INFO] [stderr] Compiling potential_utf v0.1.5 [INFO] [stderr] Compiling icu_collections v2.2.0 [INFO] [stderr] Compiling icu_locale_core v2.2.0 [INFO] [stderr] Compiling serde v1.0.228 [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 toml_edit v0.22.27 [INFO] [stderr] Compiling icu_provider v2.2.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling icu_properties v2.2.0 [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 toml v0.8.23 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [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 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 56s [INFO] running `Command { std: "docker" "inspect" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", 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" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.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.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 regex v1.12.3 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling native-tls v0.2.18 [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 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 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 24s [INFO] running `Command { std: "docker" "inspect" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", 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" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.29s [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::one_to_one_chat_guid_format ... ok [INFO] [stdout] test bluebubbles::tests::reaction_map_rejects_unknown ... ok [INFO] [stdout] test bluebubbles::tests::reaction_map_handles_all_known_labels ... ok [INFO] [stdout] test alerter::tests::empty_url_is_treated_as_unset ... ok [INFO] [stdout] test alerter::tests::alert_with_no_url_is_noop ... ok [INFO] [stdout] test bluebubbles::tests::send_attachment_surfaces_5xx_as_api_error ... ok [INFO] [stdout] test alerter::tests::different_kinds_emit_independently ... ok [INFO] [stdout] test bluebubbles::tests::create_chat_posts_addresses_and_auth_query ... ok [INFO] [stdout] test bluebubbles::tests::send_reaction_rejects_unknown_label ... ok [INFO] [stdout] test bluebubbles::tests::send_attachment_rejects_invalid_mime ... ok [INFO] [stdout] test bluebubbles::tests::send_attachment_posts_multipart_to_correct_path ... ok [INFO] [stdout] test bluebubbles::tests::send_attachment_sends_expected_multipart_fields ... ok [INFO] [stdout] test bluebubbles::tests::mark_read_surfaces_5xx_as_api_error ... ok [INFO] [stdout] test bluebubbles::tests::create_chat_surfaces_api_error ... ok [INFO] [stdout] test alerter::tests::debounce_collapses_same_kind_within_window ... ok [INFO] [stdout] test alerter::tests::payload_shape_includes_node_kind_and_ts ... ok [INFO] [stdout] test alerter::tests::http_failure_is_swallowed ... ok [INFO] [stdout] test degraded::tests::clear_after_set_transitions_to_healthy ... ok [INFO] [stdout] test bluebubbles::tests::send_reaction_remove_uses_minus_prefix ... ok [INFO] [stdout] test degraded::tests::clear_when_healthy_is_noop ... ok [INFO] [stdout] test degraded::tests::concurrent_set_and_read_are_deterministic ... ok [INFO] [stdout] test degraded::tests::new_without_alerter_still_works ... ok [INFO] [stdout] test alerter::tests::debounce_expiry_allows_new_alert ... ok [INFO] [stdout] test degraded::tests::set_different_reason_overwrites ... ok [INFO] [stdout] test bluebubbles::tests::send_reaction_posts_wire_format ... ok [INFO] [stdout] test bluebubbles::tests::mark_read_posts_to_chat_read_path ... 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 degraded::tests::set_same_reason_twice_does_not_change_state ... ok [INFO] [stdout] test effects::tests::covers_all_spec_listed_ids ... ok [INFO] [stdout] test effects::tests::known_labels_sample ... 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::unknown_id_returns_none ... ok [INFO] [stdout] test observability::tests::chat_db_poll_tracks_last_success ... ok [INFO] [stdout] test observability::tests::supabase_reachable_tracks_most_recent_when_configured ... 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 observability::tests::supabase_reachable_null_when_unconfigured ... ok [INFO] [stdout] test bluebubbles::tests::send_text_with_options_effect_posts_effect_id ... ok [INFO] [stdout] test bluebubbles::tests::set_typing_surfaces_4xx ... ok [INFO] [stdout] test sender::capability_tests::all_imessage_when_every_participant_has_imessage_history ... ok [INFO] [stdout] test bluebubbles::tests::send_attachment_timeout_surfaces_as_timeout_transport_error ... ok [INFO] [stdout] test sender::gui_timeout_tests::default_osascript_timeout_unchanged ... ok [INFO] [stdout] test sender::capability_tests::mixed_signals_split_into_their_buckets ... ok [INFO] [stdout] test sender::capability_tests::most_recent_signal_wins_per_participant ... ok [INFO] [stdout] test bluebubbles::tests::set_typing_false_is_delete ... ok [INFO] [stdout] test sender::capability_tests::unknown_participant_disqualifies_and_is_named ... ok [INFO] [stdout] test bluebubbles::tests::set_typing_true_is_post ... 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_surfaces_5xx_as_api_error ... ok [INFO] [stdout] test bluebubbles::tests::trailing_slash_in_server_url_is_trimmed ... 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 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::capability_tests::sms_participant_disqualifies_and_is_named ... ok [INFO] [stdout] test bluebubbles::tests::send_text_with_options_reply_posts_selected_message_guid ... ok [INFO] [stdout] test bluebubbles::tests::send_text_with_options_reply_and_effect_posts_both_fields ... 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_text_with_options_timeout_is_is_timeout_variant ... ok [INFO] [stdout] test server::tests::health_ok_is_true_when_reason_is_none ... ok [INFO] [stdout] test server::tests::health_is_cached_for_2s ... 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_queries_counts_when_supabase_ok ... 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 server::tests::health_records_uptime_and_webhook_reachability ... ok [INFO] [stdout] test sender::routed_send_tests::routed_send_bb_4xx_falls_back_to_osascript ... ok [INFO] [stdout] test server::tests::mark_read_requires_phone_or_chat_guid ... 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 server::tests::mark_read_resolves_phone_to_chat_guid ... ok [INFO] [stdout] test server::tests::react_derives_1to1_chat_guid_from_phone ... ok [INFO] [stdout] test server::tests::react_invalid_json_is_400 ... ok [INFO] [stdout] test server::tests::mark_read_returns_502_on_bb_5xx ... ok [INFO] [stdout] test sender::routed_send_tests::routed_send_bb_5xx_falls_back_to_osascript ... ok [INFO] [stdout] test server::tests::react_returns_503_when_bb_unconfigured ... ok [INFO] [stdout] test server::tests::react_requires_target_message_id ... ok [INFO] [stdout] test server::tests::react_rejects_unknown_reaction_label_with_400 ... ok [INFO] [stdout] test sender::routed_send_tests::routed_send_bb_success_skips_osascript ... ok [INFO] [stdout] test server::tests::react_remove_flag_uses_minus_prefix ... ok [INFO] [stdout] test server::tests::react_upstream_bb_error_maps_to_502 ... 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 server::tests::send_attachment_base64_success_hits_bb_with_correct_fields ... ok [INFO] [stdout] test server::tests::send_attachment_base64_invalid_returns_400 ... ok [INFO] [stdout] test server::tests::send_attachment_oversized_returns_413_without_hitting_bb ... ok [INFO] [stdout] test server::tests::send_attachment_normal_success_no_verified_via_field ... ok [INFO] [stdout] test server::tests::send_attachment_path_success_hits_bb ... ok [INFO] [stdout] test server::tests::send_attachment_without_bluebubbles_returns_503 ... ok [INFO] [stdout] test server::tests::send_attachment_unknown_source_returns_400 ... ok [INFO] [stdout] test server::tests::send_attachment_path_nonexistent_returns_400 ... ok [INFO] [stdout] test sender::routed_send_tests::routed_send_bb_timeout_falls_back_to_osascript ... ok [INFO] [stdout] test sender::routed_send_tests::routed_send_no_bb_uses_osascript_unchanged ... 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_attachment_url_success_end_to_end_gif ... ok [INFO] [stdout] test server::tests::send_with_attachment_and_reply_to_returns_400 ... ok [INFO] [stdout] test server::tests::send_with_reply_to_missing_text_returns_400 ... ok [INFO] [stdout] test server::tests::send_with_reply_to_custom_part_index_is_forwarded ... ok [INFO] [stdout] test server::tests::send_with_reply_to_returns_503_when_bb_unconfigured ... ok [INFO] [stdout] test server::tests::send_with_effect_posts_effect_id_to_bb ... ok [INFO] [stdout] test server::tests::send_without_attachment_or_text_is_400 ... 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_posts_selected_message_guid_to_bb ... 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::typing_requires_chat_guid_or_phone ... 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 state::tests::load_partial_write_falls_back_to_default ... 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::save_overwrites_existing ... ok [INFO] [stdout] test server::tests::typing_true_posts_and_false_deletes ... ok [INFO] [stdout] test state::tests::save_then_load_roundtrips ... ok [INFO] [stdout] test tests::dispatch_read_receipt_uses_bluebubbles_when_configured ... ok [INFO] [stdout] test tests::read_receipt_target_only_fires_for_messages_and_attachments ... ok [INFO] [stdout] test server::tests::typing_invalid_json_is_400 ... ok [INFO] [stdout] test watcher::tests::attachment_event_emits_with_caption ... ok [INFO] [stdout] test watcher::tests::decode_tapback_maps_all_known_codes ... ok [INFO] [stdout] test sender::gui_timeout_tests::gui_does_not_timeout_when_competing_with_concurrent_sends ... ok [INFO] [stdout] test watcher::tests::attachment_expands_tilde ... ok [INFO] [stdout] test watcher::tests::edited_only_for_previously_seen_rows ... ok [INFO] [stdout] test watcher::tests::effect_expressive_parses_with_label ... ok [INFO] [stdout] test watcher::tests::effect_balloon_bundle_has_kind_balloon_and_null_label ... ok [INFO] [stdout] test watcher::tests::effect_unknown_id_still_emitted_with_null_label ... ok [INFO] [stdout] test watcher::tests::max_outbound_rowid_for_chat_returns_0_when_chat_absent ... ok [INFO] [stdout] test watcher::tests::group_chat_skipped ... ok [INFO] [stdout] test watcher::tests::max_outbound_rowid_for_chat_returns_max_of_outbound_rows ... ok [INFO] [stdout] test watcher::tests::outbound_attachment_exists_since_finds_new_outbound_with_attachment ... ok [INFO] [stdout] test watcher::tests::outbound_attachment_exists_since_ignores_inbound_and_other_chats ... 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_text_exists_since_ignores_inbound_and_other_chats ... ok [INFO] [stdout] test watcher::tests::outbound_text_exists_since_respects_rowid_cursor ... ok [INFO] [stdout] test watcher::tests::phone_filter_applies_across_all_event_types ... ok [INFO] [stdout] test server::tests::send_attachment_bb_hangs_verified_via_chatdb_returns_200 ... 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::poll_and_record_clears_degraded_on_recovery ... ok [INFO] [stdout] test server::tests::send_attachment_bb_hangs_no_chatdb_match_returns_502 ... ok [INFO] [stdout] test watcher::tests::strip_associated_prefix_removes_part ... 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 watcher::tests::tapback_removed_via_3001 ... 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::unsent_only_for_previously_seen_rows ... ok [INFO] [stdout] test webhook::tests::does_not_retry_on_4xx ... ok [INFO] [stdout] test webhook::tests::plain_message_omits_reply_to_and_effect ... 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::honors_phone_filter ... ok [INFO] [stdout] test webhook::tests::no_signature_when_secret_absent ... ok [INFO] [stdout] test webhook::tests::forwards_each_variant_shape_end_to_end ... 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::webhook_2xx_clears_auth_rejected_flag ... ok [INFO] [stdout] test webhook::tests::webhook_backoff_progression ... ok [INFO] [stdout] test worker::tests::backoff_schedule_progression ... ok [INFO] [stdout] test webhook::tests::signs_when_secret_configured ... ok [INFO] [stdout] test worker::tests::claim_returns_none_when_already_claimed ... ok [INFO] [stdout] test worker::tests::claim_row_sends_optimistic_concurrency_check ... ok [INFO] [stdout] test webhook::tests::webhook_401_sets_degraded_and_records_failure ... 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::fetch_pending_hits_right_filters ... ok [INFO] [stdout] test worker::tests::schema_probe_auth_rejected ... ok [INFO] [stdout] test worker::tests::schema_probe_ok_worker_polls ... ok [INFO] [stdout] test worker::tests::fetch_pending_bubbles_supabase_5xx ... ok [INFO] [stdout] test worker::tests::schema_probe_column_missing_worker_pauses ... ok [INFO] [stdout] test worker::tests::schema_probe_transient_5xx_not_degraded ... ok [INFO] [stdout] test worker::tests::schema_transition_incompatible_to_ok ... ok [INFO] [stdout] test server::tests::send_with_reply_bb_hang_verified_via_chatdb_returns_200 ... ok [INFO] [stdout] test server::tests::send_with_effect_bb_hang_no_chatdb_match_returns_502 ... ok [INFO] [stdout] test worker::tests::send_and_record_skips_bluebubbles_when_unconfigured ... ok [INFO] [stdout] test worker::tests::supabase_401_sets_degraded_flag ... ok [INFO] [stdout] test worker::tests::supabase_2xx_clears_auth_rejected_flag ... ok [INFO] [stdout] test worker::tests::supabase_403_sets_degraded_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::supabase_500_does_not_set_auth_flag ... ok [INFO] [stdout] test worker::tests::tick_skips_rows_in_backoff_window ... 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 webhook::tests::retries_on_5xx_then_succeeds ... ok [INFO] [stdout] test sender::osascript_lock_tests::intervals_never_overlap ... ok [INFO] [stdout] test sender::osascript_lock_tests::bb_http_path_not_blocked_by_osascript_lock ... ok [INFO] [stdout] test sender::osascript_lock_tests::mixed_concurrent_no_deadlock ... ok [INFO] [stdout] test sender::osascript_lock_tests::never_more_than_one_holder ... ok [INFO] [stdout] test sender::osascript_lock_tests::long_gui_completes_before_queued_sends_start ... ok [INFO] [stdout] test sender::osascript_lock_tests::presence_path_serializes_with_send_path ... 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.11s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d", kill_on_drop: false }` [INFO] [stdout] 233d4de27a3176a959857ee176a0ab2f587a1dd783794b0bd06a8e54ea1b109d