[INFO] cloning repository https://github.com/marmot-protocol/wn-tui
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/marmot-protocol/wn-tui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmot-protocol%2Fwn-tui", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmarmot-protocol%2Fwn-tui'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5191bc92f5da0532ebc469e908f6b33ae760b6c9
[INFO] testing marmot-protocol/wn-tui 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%2Fmarmot-protocol%2Fwn-tui" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/marmot-protocol/wn-tui
[INFO] finished tweaking git repo https://github.com/marmot-protocol/wn-tui
[INFO] tweaked toml for git repo https://github.com/marmot-protocol/wn-tui written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/marmot-protocol/wn-tui 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/marmot-protocol/wn-tui 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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d
[INFO] running `Command { std: "docker" "start" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", 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" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d" "/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" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", 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" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d" "/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.182
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling palette v0.7.6
[INFO] [stderr]    Compiling by_address v1.2.1
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling tap v1.0.1
[INFO] [stderr]    Compiling pxfm v0.1.28
[INFO] [stderr]    Compiling zune-jpeg v0.5.12
[INFO] [stderr]    Compiling wyz v0.5.1
[INFO] [stderr]    Compiling radium v0.7.0
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling funty v2.0.0
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling rand_xoshiro v0.7.0
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling bitvec v1.0.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ordered-float v5.1.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling ratatui-image v10.0.6
[INFO] [stderr]    Compiling vsimd v0.8.0
[INFO] [stderr]    Compiling outref v0.5.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling base64-simd v0.8.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling bech32 v0.11.1
[INFO] [stderr]    Compiling moxcms v0.7.11
[INFO] [stderr]    Compiling which v7.0.3
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling palette_derive v0.7.6
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling safe_arch v0.9.3
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling wide v0.8.3
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling image v0.25.9
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling quantette v0.5.1
[INFO] [stderr]    Compiling icy_sixel v0.5.0
[INFO] [stderr]    Compiling wn-tui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 3m 07s
[INFO] running `Command { std: "docker" "inspect" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", 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" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d" "/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 wn-tui v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 12.89s
[INFO] running `Command { std: "docker" "inspect" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", 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" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d" "/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.22s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/wn_tui-1f2480ea64d557c7)
[INFO] [stdout] 
[INFO] [stdout] running 258 tests
[INFO] [stdout] test app::tests::account_select_enter_picks_account ... ok
[INFO] [stdout] test app::tests::a_opens_user_search_for_add_member ... ok
[INFO] [stdout] test app::tests::account_select_j_k_navigates ... ok
[INFO] [stdout] test app::tests::admin_leave_is_blocked_and_explained ... ok
[INFO] [stdout] test app::tests::chat_list_enter_selects_and_focuses_messages ... ok
[INFO] [stdout] test app::tests::chat_list_j_moves_down_and_subscribes ... ok
[INFO] [stdout] test app::tests::chat_stream_ended_emits_reconnect ... ok
[INFO] [stdout] test app::tests::chat_update_adds_new_chat ... ok
[INFO] [stdout] test app::tests::chat_update_replaces_existing ... ok
[INFO] [stdout] test app::tests::chat_update_sets_connected ... ok
[INFO] [stdout] test app::tests::composer_enter_sends_message ... ok
[INFO] [stdout] test app::tests::confirm_delete_emits_effect ... ok
[INFO] [stdout] test app::tests::chat_stream_ended_sets_disconnected ... ok
[INFO] [stdout] test app::tests::d_noop_for_others_message ... ok
[INFO] [stdout] test app::tests::confirm_leave_emits_effect ... ok
[INFO] [stdout] test app::tests::empty_invites_shows_message ... ok
[INFO] [stdout] test app::tests::backtick_toggles_log_panel ... ok
[INFO] [stdout] test app::tests::empty_text_input_not_submitted ... ok
[INFO] [stdout] test app::tests::error_popup_enter_closes ... ok
[INFO] [stdout] test app::tests::d_opens_confirm_for_own_message ... ok
[INFO] [stdout] test app::tests::file_browser_enter_directory ... ok
[INFO] [stdout] test app::tests::file_browser_backspace_goes_to_parent ... ok
[INFO] [stdout] test app::tests::daemon_log_action_appends_to_daemon_buffer ... ok
[INFO] [stdout] test app::tests::error_popup_esc_closes ... ok
[INFO] [stdout] test app::tests::file_browser_navigation ... ok
[INFO] [stdout] test app::tests::esc_from_composer_goes_to_messages ... ok
[INFO] [stdout] test app::tests::file_browser_select_file_emits_upload ... ok
[INFO] [stdout] test app::tests::backtick_types_in_search_instead_of_toggling_logs ... ok
[INFO] [stdout] test app::tests::follow_error_shows_popup ... ok
[INFO] [stdout] test app::tests::esc_from_composer_clears_reply ... ok
[INFO] [stdout] test app::tests::follow_success_reloads_follows ... ok
[INFO] [stdout] test app::tests::follows_loaded_replaces_previous ... ok
[INFO] [stdout] test app::tests::g_opens_group_detail ... ok
[INFO] [stdout] test app::tests::follows_selected_clamped_after_reload ... ok
[INFO] [stdout] test app::tests::follows_loaded_populates_list ... ok
[INFO] [stdout] test app::tests::group_action_success_reloads_detail ... ok
[INFO] [stdout] test app::tests::g_with_no_chats_does_nothing ... ok
[INFO] [stdout] test app::tests::group_action_success_resubscribes_chats ... ok
[INFO] [stdout] test app::tests::group_detail_j_k_navigates_members ... ok
[INFO] [stdout] test app::tests::group_detail_loads_data ... ok
[INFO] [stdout] test app::tests::esc_from_group_detail_returns_to_main ... ok
[INFO] [stdout] test app::tests::group_members_loaded ... ok
[INFO] [stdout] test app::tests::group_action_error_shows_error_popup ... ok
[INFO] [stdout] test app::tests::help_any_key_closes ... ok
[INFO] [stdout] test app::tests::help_esc_closes ... ok
[INFO] [stdout] test app::tests::empty_composer_not_sent ... ok
[INFO] [stdout] test app::tests::image_attachments_extracts_image_hashes ... ok
[INFO] [stdout] test app::tests::image_attachments_handles_byte_vec_hash ... ok
[INFO] [stdout] test app::tests::group_action_success_after_leave_goes_to_main ... ok
[INFO] [stdout] test app::tests::help_on_group_detail_shows_group_detail ... ok
[INFO] [stdout] test app::tests::image_attachments_empty_when_no_attachments ... ok
[INFO] [stdout] test app::tests::image_attachments_skips_non_images ... ok
[INFO] [stdout] test app::tests::image_attachments_mixed_types ... ok
[INFO] [stdout] test app::tests::image_attachments_real_cli_format ... ok
[INFO] [stdout] test app::tests::invite_accept_emits_effect ... ok
[INFO] [stdout] test app::tests::invite_group_id_extracts_from_nested_group ... ok
[INFO] [stdout] test app::tests::i_uppercase_loads_invites ... ok
[INFO] [stdout] test app::tests::invite_popup_clamps_at_bounds ... ok
[INFO] [stdout] test app::tests::invite_popup_j_k_navigates ... ok
[INFO] [stdout] test app::tests::invites_loaded_opens_popup ... ok
[INFO] [stdout] test app::tests::j_moves_selection_down ... ok
[INFO] [stdout] test app::tests::k_moves_selection_up ... ok
[INFO] [stdout] test app::tests::l_uppercase_confirms_leave ... ok
[INFO] [stdout] test app::tests::last_admin_leave_is_blocked_with_promotion_guidance ... ok
[INFO] [stdout] test app::tests::leave_group_removes_from_chat_list ... ok
[INFO] [stdout] test app::tests::log_action_appends_to_buffer ... ok
[INFO] [stdout] test app::tests::log_buffer_trims_when_over_limit ... ok
[INFO] [stdout] test app::tests::login_error_shows_message ... ok
[INFO] [stdout] test app::tests::login_loads_follows ... ok
[INFO] [stdout] test app::tests::login_loads_profile ... ok
[INFO] [stdout] test app::tests::login_success_enters_main_and_subscribes ... ok
[INFO] [stdout] test app::tests::login_success_starts_daemon_log_tail ... ok
[INFO] [stdout] test app::tests::media_download_failed_updates_state ... ok
[INFO] [stdout] test app::tests::media_downloaded_updates_state ... ok
[INFO] [stdout] test app::tests::message_deleted_removes_from_list ... ok
[INFO] [stdout] test app::tests::message_scroll_preserved_when_not_at_bottom ... ok
[INFO] [stdout] test app::tests::message_scroll_stays_at_bottom ... ok
[INFO] [stdout] test app::tests::message_update_auto_scrolls_at_bottom ... ok
[INFO] [stdout] test app::tests::message_update_deduplicates_by_id ... ok
[INFO] [stdout] test app::tests::message_update_ignored_for_wrong_group ... ok
[INFO] [stdout] test app::tests::message_update_skips_reaction_and_deletion_events ... ok
[INFO] [stdout] test app::tests::message_update_triggers_download_for_image ... ok
[INFO] [stdout] test app::tests::message_update_without_id_always_appends ... ok
[INFO] [stdout] test app::tests::multiple_accounts_shows_selector ... ok
[INFO] [stdout] test app::tests::n_opens_create_group_popup ... ok
[INFO] [stdout] test app::tests::non_admin_leave_opens_confirm_popup ... ok
[INFO] [stdout] test app::tests::notification_for_active_chat_ignored ... ok
[INFO] [stdout] test app::tests::notification_increments_unread ... ok
[INFO] [stdout] test app::tests::o_noop_when_no_image_downloaded ... ok
[INFO] [stdout] test app::tests::o_opens_image_when_downloaded ... ok
[INFO] [stdout] test app::tests::p_opens_profile_screen ... ok
[INFO] [stdout] test app::tests::paste_ignored_when_not_in_input ... ok
[INFO] [stdout] test app::tests::paste_into_search ... ok
[INFO] [stdout] test app::tests::paste_multiline_into_composer ... ok
[INFO] [stdout] test app::tests::pending_invites_counts_from_chats ... ok
[INFO] [stdout] test app::tests::pending_invites_zero_when_no_pending ... ok
[INFO] [stdout] test app::tests::popup_enter_submits_create_group ... ok
[INFO] [stdout] test app::tests::popup_esc_closes ... ok
[INFO] [stdout] test app::tests::popup_takes_key_priority ... ok
[INFO] [stdout] test app::tests::profile_a_opens_edit_about ... ok
[INFO] [stdout] test app::tests::profile_d_unfollows_selected ... ok
[INFO] [stdout] test app::tests::profile_edit_name_submits_update ... ok
[INFO] [stdout] test app::tests::profile_enter_views_selected_follow ... ok
[INFO] [stdout] test app::tests::profile_image_fetched_without_picker_is_noop ... ok
[INFO] [stdout] test app::tests::profile_j_navigates_follows ... ok
[INFO] [stdout] test app::tests::profile_loaded_stores_data ... ok
[INFO] [stdout] test app::tests::profile_loaded_with_picture_emits_fetch ... ok
[INFO] [stdout] test app::tests::profile_loaded_without_picture_no_fetch ... ok
[INFO] [stdout] test app::tests::profile_esc_returns_to_main ... ok
[INFO] [stdout] test app::tests::profile_loads_follows ... ok
[INFO] [stdout] test app::tests::profile_n_opens_edit_name ... ok
[INFO] [stdout] test app::tests::profile_update_error_shows_error_popup ... ok
[INFO] [stdout] test app::tests::profile_update_success_reloads ... ok
[INFO] [stdout] test app::tests::q_quits_from_chat_list ... ok
[INFO] [stdout] test app::tests::question_mark_not_available_in_composer ... ok
[INFO] [stdout] test app::tests::question_mark_not_available_on_search_screen ... ok
[INFO] [stdout] test app::tests::question_mark_opens_help ... ok
[INFO] [stdout] test app::tests::r_uppercase_opens_rename ... ok
[INFO] [stdout] test app::tests::react_opens_emoji_popup ... ok
[INFO] [stdout] test app::tests::react_submit_emits_effect ... ok
[INFO] [stdout] test app::tests::react_with_no_messages_is_noop ... ok
[INFO] [stdout] test app::tests::react_without_group_is_noop ... ok
[INFO] [stdout] test app::tests::reaction_error_shows_popup ... ok
[INFO] [stdout] test app::tests::reply_sets_context_and_focuses_composer ... ok
[INFO] [stdout] test app::tests::s_uppercase_opens_settings ... ok
[INFO] [stdout] test app::tests::scroll_to_follow_scrolls_down_when_below_visible ... ok
[INFO] [stdout] test app::tests::scroll_to_follow_scrolls_up_when_above_visible ... ok
[INFO] [stdout] test app::tests::search_arrow_keys_navigate_results ... ok
[INFO] [stdout] test app::tests::search_enter_emits_search ... ok
[INFO] [stdout] test app::tests::scan_dir_sorts_dirs_first_and_hides_dotfiles ... ok
[INFO] [stdout] test app::tests::scroll_to_follow_noop_when_selection_visible ... ok
[INFO] [stdout] test app::tests::search_esc_returns_to_main ... ok
[INFO] [stdout] test app::tests::search_j_types_into_input ... ok
[INFO] [stdout] test app::tests::search_result_adds_to_list ... ok
[INFO] [stdout] test app::tests::search_select_with_add_member_purpose_emits_add_member ... ok
[INFO] [stdout] test app::tests::search_tab_follows_user ... ok
[INFO] [stdout] test app::tests::search_tab_unfollows_if_already_following ... ok
[INFO] [stdout] test app::tests::send_error_shows_error_popup ... ok
[INFO] [stdout] test app::tests::select_chat_clears_media_downloads ... ok
[INFO] [stdout] test app::tests::selecting_same_chat_only_focuses ... ok
[INFO] [stdout] test app::tests::send_with_reply_includes_reply_to ... ok
[INFO] [stdout] test app::tests::send_without_reply_has_none ... ok
[INFO] [stdout] test app::tests::settings_esc_returns_to_main ... ok
[INFO] [stdout] test app::tests::settings_loaded_stores_data ... ok
[INFO] [stdout] test app::tests::single_account_auto_logins_and_subscribes ... ok
[INFO] [stdout] test app::tests::single_account_with_pubkey_auto_logins ... ok
[INFO] [stdout] test app::tests::slash_opens_search_screen ... ok
[INFO] [stdout] test app::tests::starts_in_loading_state ... ok
[INFO] [stdout] test app::tests::startup_checks_accounts ... ok
[INFO] [stdout] test app::tests::switch_account_resets_state_and_checks_accounts ... ok
[INFO] [stdout] test app::tests::tab_cycles_focus ... ok
[INFO] [stdout] test app::tests::tab_does_not_switch_logs_when_panel_hidden ... ok
[INFO] [stdout] test app::tests::tab_switches_log_tabs_when_panel_visible ... ok
[INFO] [stdout] test app::tests::total_unread_sums_all ... ok
[INFO] [stdout] test app::tests::u_uppercase_noop_without_active_group ... ok
[INFO] [stdout] test app::tests::unreact_emits_effect ... ok
[INFO] [stdout] test app::tests::u_uppercase_opens_file_browser ... ok
[INFO] [stdout] test app::tests::upload_success_logs ... ok
[INFO] [stdout] test app::tests::upload_error_shows_popup ... ok
[INFO] [stdout] test app::tests::x_confirms_remove_member ... ok
[INFO] [stdout] test screen::health::tests::build_by_plane_produces_four_sections ... ok
[INFO] [stdout] test screen::health::tests::columnize_empty ... ok
[INFO] [stdout] test screen::health::tests::columnize_single_column_narrow ... ok
[INFO] [stdout] test screen::health::tests::extract_relays_deduplicates_across_sections ... ok
[INFO] [stdout] test screen::health::tests::extract_relays_keeps_worst_status ... ok
[INFO] [stdout] test screen::health::tests::columnize_multiple_columns_wide ... ok
[INFO] [stdout] test screen::health::tests::extract_relays_empty_state ... ok
[INFO] [stdout] test screen::health::tests::extract_plane_relays_returns_section_relays ... ok
[INFO] [stdout] test widget::chat_list::tests::extracts_chat_name ... ok
[INFO] [stdout] test widget::chat_list::tests::extracts_group_id ... ok
[INFO] [stdout] test widget::chat_list::tests::extracts_last_message ... ok
[INFO] [stdout] test widget::chat_list::tests::group_id_empty_byte_vec_returns_none ... ok
[INFO] [stdout] test widget::chat_list::tests::group_id_non_object_non_string_returns_none ... ok
[INFO] [stdout] test widget::chat_list::tests::group_id_prefers_mls_group_id_over_group_id ... ok
[INFO] [stdout] test widget::input::tests::backspace_at_start_does_nothing ... ok
[INFO] [stdout] test widget::input::tests::backspace_multibyte_char ... ok
[INFO] [stdout] test widget::input::tests::cursor_movement ... ok
[INFO] [stdout] test widget::input::tests::delete_at_end_does_nothing ... ok
[INFO] [stdout] test widget::input::tests::cursor_movement_with_multibyte ... ok
[INFO] [stdout] test widget::input::tests::delete_multibyte_at_cursor ... ok
[INFO] [stdout] test widget::input::tests::insert_at_middle ... ok
[INFO] [stdout] test widget::input::tests::backspace_removes_before_cursor ... ok
[INFO] [stdout] test widget::input::tests::insert_characters ... ok
[INFO] [stdout] test widget::input::tests::clear_resets_everything ... ok
[INFO] [stdout] test widget::input::tests::line_count_exact_width_is_one ... ok
[INFO] [stdout] test widget::input::tests::delete_removes_at_cursor ... ok
[INFO] [stdout] test widget::input::tests::line_count_short_text_is_one ... ok
[INFO] [stdout] test widget::input::tests::line_count_multiple_wraps ... ok
[INFO] [stdout] test widget::input::tests::line_count_wraps_at_width ... ok
[INFO] [stdout] test widget::input::tests::line_count_zero_width_is_one ... ok
[INFO] [stdout] test widget::input::tests::masked_display ... ok
[INFO] [stdout] test widget::input::tests::new_input_is_empty ... ok
[INFO] [stdout] test widget::input::tests::render_unfocused_with_multibyte ... ok
[INFO] [stdout] test widget::input::tests::render_long_mixed_content ... ok
[INFO] [stdout] test widget::input::tests::render_with_emoji ... ok
[INFO] [stdout] test widget::input::tests::render_with_cursor_before_multibyte ... ok
[INFO] [stdout] test widget::input::tests::render_with_multibyte_cursor_at_end ... ok
[INFO] [stdout] test widget::message_list::tests::extracts_author_display_name ... ok
[INFO] [stdout] test widget::message_list::tests::extracts_content ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_includes_attachment_lines ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_multiline ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_reply_fallback_when_parent_missing ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_own_same_layout ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_reply_shows_indicator ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_shows_downloading_status ... ok
[INFO] [stdout] test widget::message_list::tests::format_message_shows_non_image_as_file ... ok
[INFO] [stdout] test widget::message_list::tests::format_reactions_empty ... ok
[INFO] [stdout] test widget::message_list::tests::format_reactions_multiple_emojis ... ok
[INFO] [stdout] test widget::message_list::tests::format_reactions_single_emoji ... ok
[INFO] [stdout] test widget::message_list::tests::formats_local_timestamp ... ok
[INFO] [stdout] test widget::message_list::tests::formats_unix_timestamp ... ok
[INFO] [stdout] test widget::message_list::tests::identifies_own_messages ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_includes_attachments ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_includes_reactions ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_long_message ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_includes_reply_line ... ok
[INFO] [stdout] test widget::input::tests::insert_multibyte_chars ... ok
[INFO] [stdout] test widget::input::tests::line_count_empty_is_one ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_newline_plus_wrapping ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_no_reactions ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_short_message ... ok
[INFO] [stdout] test widget::message_list::tests::message_height_with_newlines ... ok
[INFO] [stdout] test widget::message_list::tests::non_reply_no_indicator ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_all_messages_fit ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_at_bottom_shows_newest ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_mid_scroll ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_oversized_message_mid_list ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_oversized_message_not_blank ... ok
[INFO] [stdout] test widget::message_list::tests::visible_range_scroll_to_top_fills_forward ... ok
[INFO] [stdout] test widget::message_list::tests::wrapped_line_count_edge_cases ... ok
[INFO] [stdout] test widget::message_list::tests::wrapped_line_count_multi_line ... ok
[INFO] [stdout] test widget::message_list::tests::wrapped_line_count_single_line ... ok
[INFO] [stdout] test widget::popup::tests::centered_rect_clamps_to_area ... ok
[INFO] [stdout] test widget::popup::tests::centered_rect_fits_in_area ... ok
[INFO] [stdout] test wn::tests::find_wnd_returns_path_or_none ... ok
[INFO] [stdout] test wn::tests::parse_empty_object_returns_null ... ok
[INFO] [stdout] test wn::tests::parse_error_returns_err ... ok
[INFO] [stdout] test wn::tests::parse_error_takes_precedence ... ok
[INFO] [stdout] test wn::tests::parse_invalid_json_returns_err ... ok
[INFO] [stdout] test wn::tests::parse_null_result ... ok
[INFO] [stdout] test wn::tests::parse_result_array ... ok
[INFO] [stdout] test wn::tests::parse_result_object ... ok
[INFO] [stdout] test wn::tests::stream_parse_braces_inside_strings ... ok
[INFO] [stdout] test wn::tests::stream_parse_completes_after_more_data ... ok
[INFO] [stdout] test wn::tests::stream_parse_empty_buffer ... ok
[INFO] [stdout] test wn::tests::stream_parse_escaped_quotes_in_strings ... ok
[INFO] [stdout] test wn::tests::stream_parse_incomplete_waits_for_more ... ok
[INFO] [stdout] test wn::tests::stream_parse_multiple_objects ... ok
[INFO] [stdout] test wn::tests::stream_parse_nested_objects ... ok
[INFO] [stdout] test wn::tests::stream_parse_pretty_printed_json ... ok
[INFO] [stdout] test wn::tests::stream_parse_single_line_json ... ok
[INFO] [stdout] test wn::tests::stream_parse_skips_values_without_result_key ... ok
[INFO] [stdout] test wn::tests::stream_parse_recovers_from_garbage ... ok
[INFO] [stdout] test wn::tests::stream_parse_stream_end_with_result ... ok
[INFO] [stdout] test wn::tests::stream_parse_whitespace_only ... ok
[INFO] [stdout] test wn::tests::stream_parse_whitespace_between_objects ... ok
[INFO] [stdout] test wn::tests::stream_parse_recognises_stream_end ... ok
[INFO] [stdout] test wn::tests::stream_parse_yields_complete_values_before_incomplete_tail ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 258 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d", kill_on_drop: false }`
[INFO] [stdout] 9a3f2f40b947cda8b7617ac560810e88335dba951896a3e0149e00497d02cf0d
