[INFO] cloning repository https://github.com/h4x0r/ccchat [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/h4x0r/ccchat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fh4x0r%2Fccchat", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fh4x0r%2Fccchat'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 09dc785d47342eaccb6c6a2119d7d5c96ec39d2b [INFO] testing h4x0r/ccchat 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%2Fh4x0r%2Fccchat" "/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/h4x0r/ccchat [INFO] finished tweaking git repo https://github.com/h4x0r/ccchat [INFO] tweaked toml for git repo https://github.com/h4x0r/ccchat written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/h4x0r/ccchat 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/h4x0r/ccchat 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 008d66432d9bd7dfde969596365fe88629598e5fa67b3ca620c35f22d947010d [INFO] running `Command { std: "docker" "start" "-a" "008d66432d9bd7dfde969596365fe88629598e5fa67b3ca620c35f22d947010d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "008d66432d9bd7dfde969596365fe88629598e5fa67b3ca620c35f22d947010d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "008d66432d9bd7dfde969596365fe88629598e5fa67b3ca620c35f22d947010d", kill_on_drop: false }` [INFO] [stdout] 008d66432d9bd7dfde969596365fe88629598e5fa67b3ca620c35f22d947010d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 39541d0751e05db676351fabcf8383c3eba7a0d1e8b4538e92bd5a170aa4d435 [INFO] running `Command { std: "docker" "start" "-a" "39541d0751e05db676351fabcf8383c3eba7a0d1e8b4538e92bd5a170aa4d435", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling rustls v0.23.36 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling ipnet v2.11.0 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling clap_builder v4.5.58 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling uuid v1.21.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [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 futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling dashmap v6.1.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling clap v4.5.58 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [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 strum v0.27.2 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling croner v3.0.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [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 tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [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 rusqlite v0.32.1 [INFO] [stderr] Compiling tungstenite v0.24.0 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [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 ccchat v0.1.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s [INFO] running `Command { std: "docker" "inspect" "39541d0751e05db676351fabcf8383c3eba7a0d1e8b4538e92bd5a170aa4d435", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39541d0751e05db676351fabcf8383c3eba7a0d1e8b4538e92bd5a170aa4d435", kill_on_drop: false }` [INFO] [stdout] 39541d0751e05db676351fabcf8383c3eba7a0d1e8b4538e92bd5a170aa4d435 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] e52cb504f7cb601a8f1fd7416194c272e69fe85bdc259c19be642d1c714faa1c [INFO] running `Command { std: "docker" "start" "-a" "e52cb504f7cb601a8f1fd7416194c272e69fe85bdc259c19be642d1c714faa1c", kill_on_drop: false }` [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling http v0.2.12 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling http-types v2.12.0 [INFO] [stderr] Compiling event-listener v2.5.3 [INFO] [stderr] Compiling waker-fn v1.2.0 [INFO] [stderr] Compiling fastrand v1.9.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling mockall_derive v0.13.1 [INFO] [stderr] Compiling rand_core v0.5.1 [INFO] [stderr] Compiling serde_qs v0.8.5 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling rand_chacha v0.2.2 [INFO] [stderr] Compiling async-channel v1.9.0 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling futures-lite v1.13.0 [INFO] [stderr] Compiling num_cpus v1.17.0 [INFO] [stderr] Compiling deadpool-runtime v0.1.4 [INFO] [stderr] Compiling infer v0.2.3 [INFO] [stderr] Compiling retain_mut v0.1.9 [INFO] [stderr] Compiling rand v0.7.3 [INFO] [stderr] Compiling assert-json-diff v2.0.2 [INFO] [stderr] Compiling deadpool v0.9.5 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling fragile v2.0.1 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling tokio-tungstenite v0.24.0 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling mockall v0.13.1 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling croner v3.0.1 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling ccchat v0.1.6 (/opt/rustwide/workdir) [INFO] [stderr] Compiling wiremock v0.5.22 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 54.23s [INFO] running `Command { std: "docker" "inspect" "e52cb504f7cb601a8f1fd7416194c272e69fe85bdc259c19be642d1c714faa1c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e52cb504f7cb601a8f1fd7416194c272e69fe85bdc259c19be642d1c714faa1c", kill_on_drop: false }` [INFO] [stdout] e52cb504f7cb601a8f1fd7416194c272e69fe85bdc259c19be642d1c714faa1c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 356033ec5c69438f731f49abca39601879f558d99973b925837a47c73a755971 [INFO] running `Command { std: "docker" "start" "-a" "356033ec5c69438f731f49abca39601879f558d99973b925837a47c73a755971", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.33s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ccchat-0bb28402c8ad7195) [INFO] [stdout] [INFO] [stdout] running 370 tests [INFO] [stdout] test commands::tests::test_cmd_cron_invalid ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_missing_msg ... ok [INFO] [stdout] test audit::tests::test_log_action_and_retrieve ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_success ... ok [INFO] [stdout] test commands::tests::test_allow_command_creates_audit_entry ... ok [INFO] [stdout] test commands::tests::test_cmd_crons_empty ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_counter_increments ... ok [INFO] [stdout] test commands::tests::test_cmd_daily_invalid_time ... ok [INFO] [stdout] test commands::tests::test_cmd_daily_missing_msg ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_handles_summarize_failure ... ok [INFO] [stdout] test commands::tests::test_cmd_cancel_reminder_success ... ok [INFO] [stdout] test commands::tests::test_cmd_every_invalid ... ok [INFO] [stdout] test commands::tests::test_cmd_every_missing_msg ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_unquoted ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_triggers_at_threshold ... ok [INFO] [stdout] test commands::tests::test_cmd_daily_valid ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_resets_counter ... ok [INFO] [stdout] test commands::tests::test_cmd_remind_invalid_time ... ok [INFO] [stdout] test commands::tests::test_cmd_remind_missing_message ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_saves_memory ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_does_not_reset_session ... ok [INFO] [stdout] test commands::tests::test_cmd_every_hourly ... ok [INFO] [stdout] test commands::tests::test_cmd_reminders_empty ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_pause_and_resume ... ok [INFO] [stdout] test commands::tests::test_cmd_remind_success ... ok [INFO] [stdout] test commands::tests::test_cmd_cancel_reminder_not_found ... ok [INFO] [stdout] test commands::tests::test_cmd_crons_with_jobs ... ok [INFO] [stdout] test commands::tests::test_auto_summarize_does_not_trigger_below_threshold ... ok [INFO] [stdout] test commands::tests::test_cmd_pins_lists_all ... ok [INFO] [stdout] test commands::tests::test_cmd_recall_sets_pending ... ok [INFO] [stdout] test commands::tests::test_download_attachments_audio_sets_flag ... ok [INFO] [stdout] test audit::tests::test_get_recent_actions_ordered ... ok [INFO] [stdout] test commands::tests::test_download_attachments_failure_sends_error ... ok [INFO] [stdout] test commands::tests::test_deliver_due_cron_jobs_sends_message ... ok [INFO] [stdout] test commands::tests::test_download_attachments_image_success ... ok [INFO] [stdout] test commands::tests::test_cmd_recall_returns_content ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_cancel_not_found ... ok [INFO] [stdout] test commands::tests::test_cmd_usage_with_cost ... ok [INFO] [stdout] test commands::tests::test_cmd_usage_shows_model ... ok [INFO] [stdout] test commands::tests::test_cmd_pin_saves_recent ... ok [INFO] [stdout] test commands::tests::test_download_attachments_unsupported_sends_notification ... ok [INFO] [stdout] test commands::tests::test_handle_claude_error_increments_error_count ... ok [INFO] [stdout] test commands::tests::test_deliver_due_cron_jobs_advances_after_delivery ... ok [INFO] [stdout] test commands::tests::test_delete_pin ... ok [INFO] [stdout] test commands::tests::test_deliver_due_cron_jobs_skips_on_send_failure ... ok [INFO] [stdout] test commands::tests::test_handle_claude_error_sends_user_message ... ok [INFO] [stdout] test commands::tests::test_handle_command_allow_invalid ... ok [INFO] [stdout] test commands::tests::test_handle_command_allow_no_arg ... ok [INFO] [stdout] test commands::tests::test_handle_command_cron_cancel ... ok [INFO] [stdout] test commands::tests::test_cmd_cron_cancel_success ... ok [INFO] [stdout] test audit::tests::test_get_recent_actions_limit ... ok [INFO] [stdout] test commands::tests::test_cmd_usage_with_no_history ... ok [INFO] [stdout] test commands::tests::test_handle_command_cron_resume ... ok [INFO] [stdout] test commands::tests::test_cmd_usage_shows_first_message_date ... ok [INFO] [stdout] test commands::tests::test_handle_command_export_config ... ok [INFO] [stdout] test commands::tests::test_cmd_usage_with_messages ... ok [INFO] [stdout] test commands::tests::test_handle_command_audit ... ok [INFO] [stdout] test commands::tests::test_handle_command_crons ... ok [INFO] [stdout] test commands::tests::test_handle_command_help_has_descriptions ... ok [INFO] [stdout] test commands::tests::test_handle_command_help_lists_commands ... ok [INFO] [stdout] test commands::tests::test_handle_command_pending_empty ... ok [INFO] [stdout] test commands::tests::test_handle_command_help_includes_cron ... ok [INFO] [stdout] test commands::tests::test_handle_command_help ... ok [INFO] [stdout] test commands::tests::test_handle_command_pending_with_entries ... ok [INFO] [stdout] test commands::tests::test_handle_command_reminders ... ok [INFO] [stdout] test commands::tests::test_handle_command_allow_valid ... ok [INFO] [stdout] test commands::tests::test_handle_command_every ... ok [INFO] [stdout] test commands::tests::test_handle_command_status ... ok [INFO] [stdout] test commands::tests::test_handle_command_unknown ... ok [INFO] [stdout] test commands::tests::test_handle_command_cron_pause ... ok [INFO] [stdout] test commands::tests::test_handle_command_cancel ... ok [INFO] [stdout] test commands::tests::test_handle_command_model ... ok [INFO] [stdout] test commands::tests::test_handle_command_revoke ... ok [INFO] [stdout] test commands::tests::test_handle_command_remind ... ok [INFO] [stdout] test commands::tests::test_handle_continuation_success ... ok [INFO] [stdout] test commands::tests::test_enqueue_on_claude_error ... ok [INFO] [stdout] test commands::tests::test_handle_command_daily ... ok [INFO] [stdout] test commands::tests::test_handle_message_command_response ... ok [INFO] [stdout] test commands::tests::test_handle_command_usage ... ok [INFO] [stdout] test commands::tests::test_handle_message_more_with_truncated ... ok [INFO] [stdout] test commands::tests::test_handle_message_more_without_truncated ... ok [INFO] [stdout] test commands::tests::test_get_pin_missing ... ok [INFO] [stdout] test commands::tests::test_handle_claude_error_enqueues_retry_when_prompt_present ... ok [INFO] [stdout] test commands::tests::test_handle_message_rate_limited ... ok [INFO] [stdout] test commands::tests::test_handle_claude_error_skips_enqueue_when_prompt_empty ... ok [INFO] [stdout] test commands::tests::test_handle_message_claude_error ... ok [INFO] [stdout] test commands::tests::test_handle_command_cron ... ok [INFO] [stdout] test commands::tests::test_get_recent_messages ... ok [INFO] [stdout] test commands::tests::test_handle_message_attachments_forwarded_to_claude ... ok [INFO] [stdout] test commands::tests::test_handle_message_error_increments_error_count ... ok [INFO] [stdout] test commands::tests::test_handle_message_happy_path ... ok [INFO] [stdout] test commands::tests::test_handle_message_new_session_injects_context ... ok [INFO] [stdout] test commands::tests::test_handle_continuation_claude_error ... ok [INFO] [stdout] test commands::tests::test_handle_message_records_latency ... ok [INFO] [stdout] test commands::tests::test_handle_command_export ... ok [INFO] [stdout] test commands::tests::test_handle_command_pin ... ok [INFO] [stdout] test commands::tests::test_handle_unauthorized_increments_counter ... ok [INFO] [stdout] test commands::tests::test_handle_unauthorized_no_duplicate ... ok [INFO] [stdout] test commands::tests::test_handle_unauthorized_tracks_pending ... ok [INFO] [stdout] test commands::tests::test_search_no_argument ... ok [INFO] [stdout] test commands::tests::test_list_pins_with_data ... ok [INFO] [stdout] test commands::tests::test_retry_loop_skips_max_retries ... ok [INFO] [stdout] test commands::tests::test_list_pins_empty ... ok [INFO] [stdout] test commands::tests::test_handle_message_cost_accumulates_across_messages ... ok [INFO] [stdout] test commands::tests::test_send_file_attachments_missing_file_does_not_panic ... ok [INFO] [stdout] test commands::tests::test_send_file_attachments_multiple_files ... ok [INFO] [stdout] test commands::tests::test_model_command_persists_preference ... ok [INFO] [stdout] test commands::tests::test_send_file_attachments_send_failure_does_not_propagate ... ok [INFO] [stdout] test commands::tests::test_handle_message_reset_with_summarization ... ok [INFO] [stdout] test commands::tests::test_send_file_attachments_sends_existing_file ... ok [INFO] [stdout] test commands::tests::test_status_includes_avg_latency ... ok [INFO] [stdout] test commands::tests::test_handle_message_new_session_injects_context_format ... ok [INFO] [stdout] test commands::tests::test_status_includes_error_count ... ok [INFO] [stdout] test commands::tests::test_status_includes_sender_cost ... ok [INFO] [stdout] test commands::tests::test_send_file_attachments_no_refs_sends_nothing ... ok [INFO] [stdout] test error::tests::test_display_claude_variant ... ok [INFO] [stdout] test error::tests::test_display_signal_variant ... ok [INFO] [stdout] test error::tests::test_from_io_error ... ok [INFO] [stdout] test error::tests::test_from_serde_json_error ... ok [INFO] [stdout] test error::tests::test_from_str ... ok [INFO] [stdout] test error::tests::test_from_string ... ok [INFO] [stdout] test error::tests::test_from_utf8_error ... ok [INFO] [stdout] test commands::tests::test_save_pin_and_get ... ok [INFO] [stdout] test guard::tests::test_guard_decision_debug ... ok [INFO] [stdout] test guard::tests::test_judge_no_api_key_fails_closed ... ok [INFO] [stdout] test guard::tests::test_rejection_message_is_vague ... ok [INFO] [stdout] test commands::tests::test_save_pin_overwrites_existing ... ok [INFO] [stdout] test helpers::tests::test_content_type_from_extension_png ... ok [INFO] [stdout] test helpers::tests::test_content_type_from_extension_unknown ... ok [INFO] [stdout] test helpers::tests::test_extract_file_references_ignores_nonexistent ... ok [INFO] [stdout] test helpers::tests::test_extract_file_references_multiple ... ok [INFO] [stdout] test helpers::tests::test_extract_file_references_none ... ok [INFO] [stdout] test guard::tests::test_lakera_clean_passes ... ok [INFO] [stdout] test commands::tests::test_send_claude_response_sends_attachments ... ok [INFO] [stdout] test helpers::tests::test_find_free_port_returns_valid ... ok [INFO] [stdout] test helpers::tests::test_extract_file_references_single_file ... ok [INFO] [stdout] test helpers::tests::test_find_free_port_preferred ... ok [INFO] [stdout] test helpers::tests::test_hash_message_deterministic ... ok [INFO] [stdout] test guard::tests::test_guard_lakera_timeout_is_fail_open ... ok [INFO] [stdout] test helpers::tests::test_format_cron_human_invalid_falls_back ... ok [INFO] [stdout] test helpers::tests::test_isolated_workdir_unique_per_sender ... ok [INFO] [stdout] test helpers::tests::test_hash_message_different_inputs ... ok [INFO] [stdout] test guard::tests::test_guard_blocks_on_lakera_flagged ... ok [INFO] [stdout] test helpers::tests::test_is_command ... ok [INFO] [stdout] test helpers::tests::test_looks_truncated_ends_with_period ... ok [INFO] [stdout] test helpers::tests::test_format_cron_human_valid ... ok [INFO] [stdout] test helpers::tests::test_looks_truncated_ends_with_question ... ok [INFO] [stdout] test helpers::tests::test_looks_truncated_ends_without_punctuation ... ok [INFO] [stdout] test helpers::tests::test_merge_messages_single ... ok [INFO] [stdout] test helpers::tests::test_merge_messages_multiple ... ok [INFO] [stdout] test helpers::tests::test_parse_daily_time_afternoon ... ok [INFO] [stdout] test helpers::tests::test_parse_daily_time_invalid_format ... ok [INFO] [stdout] test helpers::tests::test_looks_truncated_short ... ok [INFO] [stdout] test helpers::tests::test_looks_truncated_ends_with_backtick ... ok [INFO] [stdout] test helpers::tests::test_parse_duration_days ... ok [INFO] [stdout] test helpers::tests::test_parse_duration_hours ... ok [INFO] [stdout] test helpers::tests::test_parse_duration_invalid ... ok [INFO] [stdout] test helpers::tests::test_parse_daily_time_valid ... ok [INFO] [stdout] test helpers::tests::test_parse_interval_secs_invalid ... ok [INFO] [stdout] test helpers::tests::test_parse_interval_secs_minutes ... ok [INFO] [stdout] test helpers::tests::test_parse_rate_limit ... ok [INFO] [stdout] test helpers::tests::test_split_message_at_double_newline ... ok [INFO] [stdout] test helpers::tests::test_split_message_at_newline ... ok [INFO] [stdout] test helpers::tests::test_parse_daily_time_invalid_hour ... ok [INFO] [stdout] test helpers::tests::test_split_message_exact_max ... ok [INFO] [stdout] test helpers::tests::test_split_message_hard_split ... ok [INFO] [stdout] test helpers::tests::test_split_message_short ... ok [INFO] [stdout] test helpers::tests::test_truncate_exact ... ok [INFO] [stdout] test helpers::tests::test_truncate_long ... ok [INFO] [stdout] test helpers::tests::test_truncate_short ... ok [INFO] [stdout] test helpers::tests::test_voice_prompt_with_text ... ok [INFO] [stdout] test helpers::tests::test_voice_prompt_without_text ... ok [INFO] [stdout] test helpers::tests::test_parse_duration_minutes ... ok [INFO] [stdout] test helpers::tests::test_parse_interval_secs_daily ... ok [INFO] [stdout] test helpers::tests::test_parse_interval_secs_hourly ... ok [INFO] [stdout] test memory::config::tests::test_allowed_file_path_json ... ok [INFO] [stdout] test memory::config::tests::test_config_dir_under_home ... ok [INFO] [stdout] test helpers::tests::test_parse_duration_seconds ... ok [INFO] [stdout] test memory::config::tests::test_export_config_empty ... ok [INFO] [stdout] test memory::config::tests::test_export_config_excludes_account_owner ... ok [INFO] [stdout] test memory::config::tests::test_load_config_invalid_yaml ... ok [INFO] [stdout] test memory::config::tests::test_load_config_json_empty ... ok [INFO] [stdout] test memory::config::tests::test_load_config_invalid_format ... ok [INFO] [stdout] test memory::config::tests::test_load_config_merges_with_persisted ... ok [INFO] [stdout] test memory::config::tests::test_load_config_missing_file ... ok [INFO] [stdout] test memory::config::tests::test_load_config_missing_name_field ... ok [INFO] [stdout] test memory::config::tests::test_load_config_unknown_extension_json_fallback ... ok [INFO] [stdout] test memory::config::tests::test_load_config_json_valid ... ok [INFO] [stdout] test commands::tests::test_search_no_results ... ok [INFO] [stdout] test commands::tests::test_search_empty_memory ... ok [INFO] [stdout] test memory::config::tests::test_load_config_without_system_prompt_defaults_none ... ok [INFO] [stdout] test memory::config::tests::test_load_config_with_system_prompt ... ok [INFO] [stdout] test memory::config::tests::test_persisted_allowed_serde_round_trip ... ok [INFO] [stdout] test memory::config::tests::test_load_config_yml_extension ... ok [INFO] [stdout] test memory::config::tests::test_load_config_yaml_valid ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_file_error_preserves_state ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_adds_new_entries ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_no_config_path_noop ... ok [INFO] [stdout] test commands::tests::test_handle_message_cost_tracking ... ok [INFO] [stdout] test memory::config::tests::test_load_config_yaml_empty ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_preserves_account_owner ... ok [INFO] [stdout] test memory::config::tests::test_validate_entries_duplicates ... ok [INFO] [stdout] test memory::config::tests::test_validate_entries_empty_id ... ok [INFO] [stdout] test memory::config::tests::test_validate_entries_uuid_ok ... ok [INFO] [stdout] test memory::config::tests::test_validate_entries_suspicious_format ... ok [INFO] [stdout] test memory::config::tests::test_validate_entries_valid_e164 ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_removes_gone_entries ... ok [INFO] [stdout] test memory::context::tests::test_format_epoch ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_clears_old_sender_prompts ... ok [INFO] [stdout] test memory::config::tests::test_reload_config_updates_system_prompt ... ok [INFO] [stdout] test commands::tests::test_sender_state_message_count_initializes_zero ... ok [INFO] [stdout] test commands::tests::test_retry_loop_increments_on_failure ... ok [INFO] [stdout] test commands::tests::test_handle_continuation_still_truncated ... ok [INFO] [stdout] test commands::tests::test_search_with_results ... ok [INFO] [stdout] test commands::tests::test_search_results_truncated ... ok [INFO] [stdout] test memory::admin::tests::test_forget_command_no_data ... ok [INFO] [stdout] test memory::admin::tests::test_memory_command_no_data ... ok [INFO] [stdout] test memory::admin::tests::test_memory_command_with_data ... ok [INFO] [stdout] test memory::admin::tests::test_forget_command_with_counts ... ok [INFO] [stdout] test memory::context::tests::test_save_memory_uses_sqlite ... ok [INFO] [stdout] test memory::context::tests::test_forget_clears_memory ... ok [INFO] [stdout] test memory::context::tests::test_inject_context_no_memory ... ok [INFO] [stdout] test commands::tests::test_handle_message_truncated_response ... ok [INFO] [stdout] test memory::messages::tests::test_export_messages_empty ... ok [INFO] [stdout] test memory::messages::tests::test_get_oldest_message_ts_empty ... ok [INFO] [stdout] test memory::context::tests::test_delete_all_memory ... ok [INFO] [stdout] test memory::context::tests::test_inject_context_with_relevant_messages ... ok [INFO] [stdout] test memory::context::tests::test_inject_context_with_memory ... ok [INFO] [stdout] test memory::schema::tests::test_hash_sender_deterministic ... ok [INFO] [stdout] test memory::context::tests::test_store_message_pair ... ok [INFO] [stdout] test memory::messages::tests::test_export_messages_with_data ... ok [INFO] [stdout] test memory::schema::tests::test_memory_db_path_valid ... ok [INFO] [stdout] test memory::messages::tests::test_fts5_search ... ok [INFO] [stdout] test queue::tests::test_enqueue_message ... ok [INFO] [stdout] test queue::tests::test_enqueue_with_attachments_json ... ok [INFO] [stdout] test commands::tests::test_retry_loop_processes_pending ... ok [INFO] [stdout] test queue::tests::test_get_pending_ordered_by_timestamp ... ok [INFO] [stdout] test queue::tests::test_increment_retry_count ... ok [INFO] [stdout] test queue::tests::test_mark_completed ... ok [INFO] [stdout] test queue::tests::test_purge_completed_messages ... ok [INFO] [stdout] test schedule::tests::test_add_cron_job_and_get_active ... ok [INFO] [stdout] test schedule::tests::test_add_cron_job_invalid_pattern_returns_zero ... ok [INFO] [stdout] test schedule::tests::test_add_interval_job_and_get_active ... ok [INFO] [stdout] test schedule::tests::test_add_reminder_and_get_pending ... ok [INFO] [stdout] test memory::messages::tests::test_get_summary_count_empty ... ok [INFO] [stdout] test schedule::tests::test_advance_interval_job_updates_next_delivery ... ok [INFO] [stdout] test schedule::tests::test_cancel_cron_job_removes ... ok [INFO] [stdout] test schedule::tests::test_advance_cron_job_updates_next_delivery ... ok [INFO] [stdout] test queue::tests::test_max_retries_excludes_from_pending ... ok [INFO] [stdout] test schedule::tests::test_cancel_cron_job_wrong_sender ... ok [INFO] [stdout] test schedule::tests::test_cancel_reminder_removes ... ok [INFO] [stdout] test memory::messages::tests::test_get_oldest_message_ts_with_data ... ok [INFO] [stdout] test schedule::tests::test_get_due_cron_jobs_excludes_cancelled ... ok [INFO] [stdout] test schedule::tests::test_cancel_reminder_wrong_sender ... ok [INFO] [stdout] test schedule::tests::test_get_due_reminders_excludes_delivered ... ok [INFO] [stdout] test memory::messages::tests::test_get_summary_count_with_data ... ok [INFO] [stdout] test schedule::tests::test_get_due_cron_jobs_excludes_paused ... ok [INFO] [stdout] test schedule::tests::test_get_due_cron_jobs_only_active_and_past ... ok [INFO] [stdout] test schedule::tests::test_get_active_cron_jobs_for_sender ... ok [INFO] [stdout] test schedule::tests::test_get_pending_reminders_for_sender ... ok [INFO] [stdout] test schedule::tests::test_pause_cron_job ... ok [INFO] [stdout] test schedule::tests::test_purge_delivered_cleans_up ... ok [INFO] [stdout] test signal::tests::test_classify_attachment_audio ... ok [INFO] [stdout] test signal::tests::test_classify_attachment_document ... ok [INFO] [stdout] test schedule::tests::test_mark_delivered ... ok [INFO] [stdout] test signal::tests::test_classify_attachment_other ... ok [INFO] [stdout] test signal::tests::test_classify_attachment_image ... ok [INFO] [stdout] test signal::tests::test_extract_attachments_from_envelope ... ok [INFO] [stdout] test schedule::tests::test_resume_cron_job_recomputes_next ... ok [INFO] [stdout] test signal::tests::test_extract_attachments_none ... ok [INFO] [stdout] test signal::tests::test_extract_attachments_sync_message ... ok [INFO] [stdout] test signal::tests::test_extract_voice_note_flag ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_attachment_only ... ok [INFO] [stdout] test schedule::tests::test_get_due_reminders_only_past ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_empty_text_no_attachments ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_data_message ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_no_source ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_sync_message ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_no_text_no_attachments ... ok [INFO] [stdout] test signal::tests::test_parse_envelope_with_attachments ... ok [INFO] [stdout] test signal::tests::test_supported_audio_formats ... ok [INFO] [stdout] test state::tests::test_add_cost_and_total_cost_usd ... ok [INFO] [stdout] test state::tests::test_add_cost_fractional ... ok [INFO] [stdout] test memory::messages::tests::test_load_model_preference_none_when_absent ... ok [INFO] [stdout] test state::tests::test_get_system_prompt_custom_global ... ok [INFO] [stdout] test state::tests::test_get_system_prompt_default ... ok [INFO] [stdout] test state::tests::test_metrics_error_count_increment ... ok [INFO] [stdout] test state::tests::test_metrics_error_count_initial_zero ... ok [INFO] [stdout] test state::tests::test_rate_limit_blocks ... ok [INFO] [stdout] test memory::messages::tests::test_persist_model_preference_round_trip ... ok [INFO] [stdout] test state::tests::test_per_sender_cost_tracking ... ok [INFO] [stdout] test state::tests::test_get_system_prompt_per_sender_override ... ok [INFO] [stdout] test state::tests::test_shutdown_save_sessions_empty_is_noop ... ok [INFO] [stdout] test memory::messages::tests::test_persist_model_preference_updates_existing ... ok [INFO] [stdout] test state::tests::test_state_is_allowed_empty ... ok [INFO] [stdout] test state::tests::test_shutdown_save_sessions_handles_summarize_failure ... ok [INFO] [stdout] test state::tests::test_state_is_allowed_false ... ok [INFO] [stdout] test state::tests::test_state_is_allowed_true ... ok [INFO] [stdout] test state::tests::test_token_bucket_basic ... ok [INFO] [stdout] test stats::tests::test_build_health_json_has_status_ok ... ok [INFO] [stdout] test stats::tests::test_build_health_json_has_uptime ... ok [INFO] [stdout] test memory::messages::tests::test_store_and_retrieve_messages ... ok [INFO] [stdout] test stats::tests::test_build_health_json_has_version ... ok [INFO] [stdout] test memory::messages::tests::test_store_summaries ... ok [INFO] [stdout] test stats::tests::test_health_endpoint_responds ... ok [INFO] [stdout] test stats::tests::test_build_stats_json_initially_zero ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_cost ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_errors ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_messages ... ok [INFO] [stdout] test stats::tests::test_metrics_endpoint_responds ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_sessions ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_type_annotations ... ok [INFO] [stdout] test stats::tests::test_stats_includes_error_count ... ok [INFO] [stdout] test stats::tests::test_prometheus_metrics_has_uptime ... ok [INFO] [stdout] test stats::tests::test_stats_json_format ... ok [INFO] [stdout] test stats::tests::test_stats_includes_per_sender_costs ... ok [INFO] [stdout] test stats::tests::test_stats_includes_all_fields ... ok [INFO] [stdout] test memory::messages::tests::test_purge_old_messages ... ok [INFO] [stdout] test state::tests::test_token_bucket_refill ... ok [INFO] [stdout] test stats::tests::test_stats_reflects_state_mutations ... ok [INFO] [stdout] test memory::schema::tests::test_json_migration_old_format_removed ... ok [INFO] [stdout] test tests::test_args_config_defaults_to_none ... ok [INFO] [stdout] test stats::tests::test_stats_server_responds_with_json ... ok [INFO] [stdout] test tests::test_args_account_required ... ok [INFO] [stdout] test tests::test_args_config_flag ... ok [INFO] [stdout] test tests::test_args_default_values ... ok [INFO] [stdout] test tests::test_log_format_defaults_to_text ... ok [INFO] [stdout] test tests::test_no_memory_prompt_content ... ok [INFO] [stdout] test memory::schema::tests::test_open_memory_db_creates_schema ... ok [INFO] [stdout] test tests::test_log_format_json_accepted ... ok [INFO] [stdout] test tests::test_log_format_arbitrary_value_accepted ... ok [INFO] [stdout] test tests::test_route_allowed_by_uuid ... ok [INFO] [stdout] test tests::test_route_allowed_sender_direct ... ok [INFO] [stdout] test tests::test_route_attachment_always_direct_even_with_debounce ... ok [INFO] [stdout] test tests::test_route_command_always_direct_even_with_debounce ... ok [INFO] [stdout] test tests::test_route_debounce_when_enabled ... ok [INFO] [stdout] test tests::test_route_sync_bypasses_auth_check ... ok [INFO] [stdout] test traits::tests::test_claude_variant_message_preserved ... ok [INFO] [stdout] test tests::test_route_unauthorized_sender ... ok [INFO] [stdout] test tests::test_log_format_text_explicit ... ok [INFO] [stdout] test tests::test_route_echo_suppressed ... ok [INFO] [stdout] test tests::test_route_sync_message_reply_to_account ... ok [INFO] [stdout] test traits::tests::test_signal_api_download_attachment_failure ... ok [INFO] [stdout] test traits::tests::test_signal_api_send_attachment_success ... ok [INFO] [stdout] test traits::tests::test_signal_api_send_attachment_failure ... ok [INFO] [stdout] test traits::tests::test_signal_api_download_attachment_success ... ok [INFO] [stdout] test traits::tests::test_signal_api_send_failure ... ok [INFO] [stdout] test traits::tests::test_signal_variant_message_preserved ... ok [INFO] [stdout] test webhook::tests::test_fire_if_configured_none_is_noop ... ok [INFO] [stdout] test traits::tests::test_signal_api_set_typing_on ... ok [INFO] [stdout] test traits::tests::test_signal_api_set_typing_off ... ok [INFO] [stdout] test webhook::tests::test_fire_webhook_includes_event ... ok [INFO] [stdout] test webhook::tests::test_fire_webhook_builds_payload ... ok [INFO] [stdout] test traits::tests::test_signal_api_send_multiple_messages_via_http ... ok [INFO] [stdout] test webhook::tests::test_fire_webhook_includes_timestamp ... ok [INFO] [stdout] test webhook::tests::test_webhook_payload_has_detail ... ok [INFO] [stdout] test webhook::tests::test_webhook_does_not_block ... ok [INFO] [stdout] test webhook::tests::test_webhook_payload_has_sender ... ok [INFO] [stdout] test memory::messages::tests::test_summaries_max_5 ... ok [INFO] [stdout] test memory::schema::tests::test_json_migration_to_sqlite ... ok [INFO] [stdout] test traits::tests::test_signal_send_failure_returns_signal_variant ... ok [INFO] [stdout] test traits::tests::test_signal_api_send_success ... ok [INFO] [stdout] test state::tests::test_get_or_create_session_new ... ok [INFO] [stdout] test state::tests::test_get_or_create_session_existing_returns_same ... ok [INFO] [stdout] test state::tests::test_session_expiry_logic ... ok [INFO] [stdout] test state::tests::test_get_or_create_session_uses_persisted_model ... ok [INFO] [stdout] test state::tests::test_shutdown_save_sessions_calls_summarize_for_each ... ok [INFO] [stdout] test webhook::tests::test_fire_if_configured_some_fires ... ok [INFO] [stdout] test state::tests::test_state_send_long_message_splits ... ok [INFO] [stdout] test memory::messages::tests::test_export_messages_limit_100 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 370 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.83s [INFO] [stdout] [INFO] [stderr] Running tests/logging_test.rs (/opt/rustwide/target/debug/deps/logging_test-e5d0c63b260345cf) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test log_format_json_with_help_exits_zero ... ok [INFO] [stdout] test missing_account_fails ... ok [INFO] [stdout] test log_format_text_with_help_exits_zero ... ok [INFO] [stdout] test log_format_env_var_with_help_exits_zero ... ok [INFO] [stdout] test help_describes_log_format_default ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "356033ec5c69438f731f49abca39601879f558d99973b925837a47c73a755971", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "356033ec5c69438f731f49abca39601879f558d99973b925837a47c73a755971", kill_on_drop: false }` [INFO] [stdout] 356033ec5c69438f731f49abca39601879f558d99973b925837a47c73a755971