[INFO] fetching crate rtcom-tui 0.2.1...
[INFO] testing rtcom-tui-0.2.1 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate rtcom-tui 0.2.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate rtcom-tui 0.2.1
[INFO] finished tweaking crates.io crate rtcom-tui 0.2.1
[INFO] tweaked toml for crates.io crate rtcom-tui 0.2.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rtcom-tui 0.2.1 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 crates.io crate rtcom-tui 0.2.1 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-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 815f416daeb39c00bf5e0461b984ac1ffd540659d7e903b74747fe6065e37ab7
[INFO] running `Command { std: "docker" "start" "-a" "815f416daeb39c00bf5e0461b984ac1ffd540659d7e903b74747fe6065e37ab7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "815f416daeb39c00bf5e0461b984ac1ffd540659d7e903b74747fe6065e37ab7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "815f416daeb39c00bf5e0461b984ac1ffd540659d7e903b74747fe6065e37ab7", kill_on_drop: false }`
[INFO] [stdout] 815f416daeb39c00bf5e0461b984ac1ffd540659d7e903b74747fe6065e37ab7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 2abd3ce40da95087f82215f7514220129f6f8ad43813d19f442673a58b3ec0db
[INFO] running `Command { std: "docker" "start" "-a" "2abd3ce40da95087f82215f7514220129f6f8ad43813d19f442673a58b3ec0db", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling vte v0.15.0
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling vt100 v0.16.2
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling nix v0.26.4
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling libudev v0.3.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling directories v5.0.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling unescaper v0.1.8
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling serialport v4.9.0
[INFO] [stderr]    Compiling mio-serial v5.0.6
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling tui-term v0.3.4
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tokio-serial v5.4.5
[INFO] [stderr]    Compiling rtcom-core v0.2.1
[INFO] [stderr]    Compiling rtcom-config v0.2.1
[INFO] [stderr]    Compiling rtcom-tui v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.49s
[INFO] running `Command { std: "docker" "inspect" "2abd3ce40da95087f82215f7514220129f6f8ad43813d19f442673a58b3ec0db", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2abd3ce40da95087f82215f7514220129f6f8ad43813d19f442673a58b3ec0db", kill_on_drop: false }`
[INFO] [stdout] 2abd3ce40da95087f82215f7514220129f6f8ad43813d19f442673a58b3ec0db
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 67c38f06d75e5d3543ef1866241f11899ff42b5f2b9ad7bbc59c342166cef2f3
[INFO] running `Command { std: "docker" "start" "-a" "67c38f06d75e5d3543ef1866241f11899ff42b5f2b9ad7bbc59c342166cef2f3", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling rtcom-tui v0.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 16.13s
[INFO] running `Command { std: "docker" "inspect" "67c38f06d75e5d3543ef1866241f11899ff42b5f2b9ad7bbc59c342166cef2f3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67c38f06d75e5d3543ef1866241f11899ff42b5f2b9ad7bbc59c342166cef2f3", kill_on_drop: false }`
[INFO] [stdout] 67c38f06d75e5d3543ef1866241f11899ff42b5f2b9ad7bbc59c342166cef2f3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 3985b65cb8946e6cad1cd08d60e18ac759345acbd9ced7999fc79bddc97e13f2
[INFO] running `Command { std: "docker" "start" "-a" "3985b65cb8946e6cad1cd08d60e18ac759345acbd9ced7999fc79bddc97e13f2", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rtcom_tui-16e42aa5e2e99068)
[INFO] [stdout] 
[INFO] [stdout] running 193 tests
[INFO] [stdout] test app::tests::ctrl_a_m_second_press_is_swallowed_by_menu ... ok
[INFO] [stdout] test app::tests::esc_in_root_menu_closes_it ... ok
[INFO] [stdout] test app::tests::enter_emits_cr_byte ... ok
[INFO] [stdout] test app::tests::ctrl_a_then_m_opens_menu ... ok
[INFO] [stdout] test app::tests::mouse_click_does_not_scroll ... ok
[INFO] [stdout] test app::tests::mouse_wheel_ignored_when_menu_open ... ok
[INFO] [stdout] test app::tests::mouse_wheel_down_scrolls_back ... ok
[INFO] [stdout] test app::tests::key_passthrough_when_menu_closed ... ok
[INFO] [stdout] test app::tests::ctrl_q_requests_quit ... ok
[INFO] [stdout] test app::tests::plain_page_up_without_shift_does_not_scroll ... ok
[INFO] [stdout] test app::tests::push_toast_appears_in_queue ... ok
[INFO] [stdout] test app::tests::shift_down_scrolls_back_one_line ... ok
[INFO] [stdout] test app::tests::shift_home_and_end_jump_to_top_and_bottom ... ok
[INFO] [stdout] test app::tests::mouse_wheel_up_scrolls_by_wheel_scroll_lines ... ok
[INFO] [stdout] test app::tests::set_wheel_scroll_lines_clamps_zero_to_one ... ok
[INFO] [stdout] test app::tests::shift_scroll_keys_are_swallowed_when_menu_open ... ok
[INFO] [stdout] test app::tests::shift_page_up_scrolls_up_half_screen ... ok
[INFO] [stdout] test app::tests::overlay_does_not_dim_body_cells ... ok
[INFO] [stdout] test app::tests::fullscreen_menu_hides_serial_pane_content ... ok
[INFO] [stdout] test app::tests::tui_app_builds_without_running ... ok
[INFO] [stdout] test app::tests::dimmed_overlay_actually_dims_body_cells ... ok
[INFO] [stdout] test app::tests::top_bar_hides_scroll_indicator_when_live ... ok
[INFO] [stdout] test app::tests::shift_up_scrolls_one_line ... ok
[INFO] [stdout] test app::tests::top_bar_shows_scroll_indicator_when_scrolled ... ok
[INFO] [stdout] test input::tests::esc_is_0x1b ... ok
[INFO] [stdout] test input::tests::plain_letter_is_ascii ... ok
[INFO] [stdout] test input::tests::ctrl_a_is_0x01 ... ok
[INFO] [stdout] test menu::confirm::tests::enter_confirms ... ok
[INFO] [stdout] test layout::tests::main_chrome_preserves_origin ... ok
[INFO] [stdout] test layout::tests::main_chrome_splits_80x24 ... ok
[INFO] [stdout] test input::tests::enter_is_cr ... ok
[INFO] [stdout] test app::tests::shift_page_down_scrolls_down_half_screen ... ok
[INFO] [stdout] test menu::confirm::tests::esc_cancels ... ok
[INFO] [stdout] test menu::confirm::tests::lowercase_n_cancels ... ok
[INFO] [stdout] test menu::confirm::tests::other_key_consumed ... ok
[INFO] [stdout] test menu::confirm::tests::preferred_size_50x8_centred ... ok
[INFO] [stdout] test menu::confirm::tests::title_round_trips ... ok
[INFO] [stdout] test menu::confirm::tests::uppercase_n_cancels ... ok
[INFO] [stdout] test menu::confirm::tests::uppercase_y_confirms ... ok
[INFO] [stdout] test menu::line_endings::tests::cursor_span_is_six ... ok
[INFO] [stdout] test menu::line_endings::tests::cycling_imap_does_not_touch_omap_or_emap ... ok
[INFO] [stdout] test menu::line_endings::tests::cycle_order_covers_every_variant ... ok
[INFO] [stdout] test menu::line_endings::tests::enter_on_apply_live_button_emits_action ... ok
[INFO] [stdout] test menu::line_endings::tests::dialog_renders_recipe_hint ... ok
[INFO] [stdout] test menu::line_endings::tests::esc_closes ... ok
[INFO] [stdout] test menu::line_endings::tests::f2_emits_apply_line_endings_live ... ok
[INFO] [stdout] test menu::line_endings::tests::preferred_size_accommodates_recipe ... ok
[INFO] [stdout] test menu::line_endings::tests::j_k_nav ... ok
[INFO] [stdout] test menu::line_endings::tests::space_cycles_current_field ... ok
[INFO] [stdout] test menu::line_endings::tests::starts_on_omap ... ok
[INFO] [stdout] test menu::modem_control::tests::cursor_wraps ... ok
[INFO] [stdout] test menu::line_endings::tests::f10_emits_apply_line_endings_and_save ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_lower_rts_emits_set_rts_false ... ok
[INFO] [stdout] test menu::line_endings::tests::enter_on_cancel_closes ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_lower_dtr_emits_set_dtr_false ... ok
[INFO] [stdout] test menu::modem_control::tests::dialog_shows_current_dtr_rts_in_title_area ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_on_close_closes ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_raise_dtr_emits_set_dtr_true ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_raise_rts_emits_set_rts_true ... ok
[INFO] [stdout] test menu::modem_control::tests::enter_send_break_emits_send_break ... ok
[INFO] [stdout] test menu::modem_control::tests::esc_closes ... ok
[INFO] [stdout] test menu::modem_control::tests::preferred_size_40x18 ... ok
[INFO] [stdout] test menu::modem_control::tests::starts_with_raise_dtr_selected ... ok
[INFO] [stdout] test menu::placeholder::tests::placeholder_esc_closes ... ok
[INFO] [stdout] test menu::placeholder::tests::placeholder_other_keys_consumed ... ok
[INFO] [stdout] test menu::placeholder::tests::placeholder_title_round_trips ... ok
[INFO] [stdout] test menu::root::tests::enter_on_exit_closes_menu ... ok
[INFO] [stdout] test menu::root::tests::enter_on_first_item_pushes_serial_setup_dialog ... ok
[INFO] [stdout] test menu::root::tests::enter_on_line_endings_pushes_line_endings_dialog ... ok
[INFO] [stdout] test menu::root::tests::enter_on_modem_control_pushes_modem_control_dialog ... ok
[INFO] [stdout] test menu::line_endings::tests::enter_on_field_cycles ... ok
[INFO] [stdout] test menu::root::tests::enter_on_read_profile_pushes_confirm_dialog ... ok
[INFO] [stdout] test menu::root::tests::enter_on_screen_options_pushes_screen_options_dialog ... ok
[INFO] [stdout] test menu::root::tests::enter_on_write_profile_pushes_confirm_dialog ... ok
[INFO] [stdout] test menu::root::tests::j_k_vim_bindings_work ... ok
[INFO] [stdout] test menu::root::tests::esc_closes ... ok
[INFO] [stdout] test menu::root::tests::new_takes_serial_config ... ok
[INFO] [stdout] test menu::root::tests::root_menu_down_moves_selection ... ok
[INFO] [stdout] test menu::root::tests::root_menu_down_wraps_from_last ... ok
[INFO] [stdout] test menu::screen_options::tests::cursor_max_is_six ... ok
[INFO] [stdout] test menu::screen_options::tests::enter_on_apply_live_button_emits_action ... ok
[INFO] [stdout] test menu::screen_options::tests::down_moves_through_six_slots ... ok
[INFO] [stdout] test menu::screen_options::tests::enter_on_apply_save_button_emits_action ... ok
[INFO] [stdout] test menu::screen_options::tests::enter_on_cancel_closes ... ok
[INFO] [stdout] test menu::screen_options::tests::enter_on_fullscreen_radio_sets_pending ... ok
[INFO] [stdout] test menu::screen_options::tests::enter_on_dimmed_radio_sets_pending ... ok
[INFO] [stdout] test menu::screen_options::tests::esc_closes ... ok
[INFO] [stdout] test menu::screen_options::tests::f10_emits_apply_modal_style_and_save ... ok
[INFO] [stdout] test menu::screen_options::tests::j_k_nav ... ok
[INFO] [stdout] test menu::screen_options::tests::f2_emits_apply_modal_style_live ... ok
[INFO] [stdout] test menu::screen_options::tests::preferred_size_40x16 ... ok
[INFO] [stdout] test menu::root::tests::unknown_key_is_consumed_no_movement ... ok
[INFO] [stdout] test menu::screen_options::tests::starts_at_overlay_radio ... ok
[INFO] [stdout] test menu::serial_port::tests::dialog_starts_with_baud_field_selected ... ok
[INFO] [stdout] test menu::serial_port::tests::dialog_without_cli_overrides_has_no_hint_row ... ok
[INFO] [stdout] test menu::root::tests::root_menu_starts_on_first_item ... ok
[INFO] [stdout] test menu::serial_port::tests::down_wraps_from_last_to_first ... ok
[INFO] [stdout] test menu::root::tests::root_menu_up_wraps_from_first ... ok
[INFO] [stdout] test menu::serial_port::tests::enter_on_apply_live_emits_action ... ok
[INFO] [stdout] test menu::serial_port::tests::enter_on_baud_enters_edit_mode ... ok
[INFO] [stdout] test menu::serial_port::tests::enter_on_parity_cycles_without_edit_mode ... ok
[INFO] [stdout] test menu::serial_port::tests::enum_field_cycles_with_space ... ok
[INFO] [stdout] test menu::serial_port::tests::esc_during_edit_cancels_and_preserves_pending ... ok
[INFO] [stdout] test menu::serial_port::tests::esc_from_field_view_closes ... ok
[INFO] [stdout] test menu::serial_port::tests::f2_emits_apply_live_with_current_pending ... ok
[INFO] [stdout] test menu::serial_port::tests::enter_on_cancel_closes ... ok
[INFO] [stdout] test menu::serial_port::tests::invalid_baud_commit_leaves_pending_unchanged ... ok
[INFO] [stdout] test menu::serial_port::tests::pending_carries_edits_through_f2 ... ok
[INFO] [stdout] test menu::serial_port::tests::preferred_size_is_wider_than_default ... ok
[INFO] [stdout] test menu::serial_port::tests::typing_digits_updates_pending_baud_on_commit ... ok
[INFO] [stdout] test menu::serial_port::tests::up_wraps_to_last_action ... ok
[INFO] [stdout] test modal::tests::centred_rect_clips_to_outer ... ok
[INFO] [stdout] test modal::tests::dialog_action_apply_live_carries_config ... ok
[INFO] [stdout] test modal::tests::dialog_preferred_size_default_is_30x12_centred ... ok
[INFO] [stdout] test modal::tests::modal_stack_close_outcome_pops_top ... ok
[INFO] [stdout] test modal::tests::modal_stack_handle_key_on_empty_is_noop ... ok
[INFO] [stdout] test modal::tests::modal_stack_push_pop ... ok
[INFO] [stdout] test modal::tests::modal_stack_routes_keys_to_top ... ok
[INFO] [stdout] test menu::serial_port::tests::dialog_with_cli_overrides_renders_hint ... ok
[INFO] [stdout] test profile_bridge::tests::line_ending_config_to_section_emits_known_vocabulary ... ok
[INFO] [stdout] test profile_bridge::tests::line_ending_config_to_section_round_trips ... ok
[INFO] [stdout] test profile_bridge::tests::line_endings_from_profile_default_is_all_none ... ok
[INFO] [stdout] test profile_bridge::tests::line_endings_from_profile_reads_all_three_slots ... ok
[INFO] [stdout] test profile_bridge::tests::out_of_range_data_bits_fall_back_to_eight ... ok
[INFO] [stdout] test profile_bridge::tests::out_of_range_stop_bits_fall_back_to_one ... ok
[INFO] [stdout] test profile_bridge::tests::parse_line_ending_covers_all_known_forms ... ok
[INFO] [stdout] test profile_bridge::tests::serial_config_to_section_emits_stable_strings ... ok
[INFO] [stdout] test profile_bridge::tests::serial_section_round_trip ... ok
[INFO] [stdout] test profile_bridge::tests::unknown_flow_string_falls_back_to_none ... ok
[INFO] [stdout] test profile_bridge::tests::unknown_parity_string_falls_back_to_none ... ok
[INFO] [stdout] test menu::serial_port::tests::cursor_reaches_apply_live_at_index_5 ... ok
[INFO] [stdout] test modal::tests::modal_stack_starts_empty ... ok
[INFO] [stdout] test menu::serial_port::tests::down_moves_field_cursor ... ok
[INFO] [stdout] test run::tests::apply_dialog_action_modal_style_live_does_not_publish_and_updates_cache ... ok
[INFO] [stdout] test run::tests::apply_dialog_action_apply_live_publishes_apply_config_command ... ok
[INFO] [stdout] test run::tests::apply_dialog_action_apply_and_save_updates_profile_and_writes ... ok
[INFO] [stdout] test run::tests::apply_dialog_action_apply_modal_style_and_save_persists_and_updates_app ... ok
[INFO] [stdout] test run::tests::apply_live_maps_to_apply_config_command ... ok
[INFO] [stdout] test run::tests::apply_modal_style_live_returns_none_because_handled_locally ... ok
[INFO] [stdout] test run::tests::apply_line_endings_live_still_warns_and_does_not_persist ... ok
[INFO] [stdout] test run::tests::handle_bus_event_closed_breaks_loop ... ok
[INFO] [stdout] test run::tests::handle_bus_event_config_changed_updates_summary ... ok
[INFO] [stdout] test run::tests::handle_bus_event_lagged_is_logged_but_continues ... ok
[INFO] [stdout] test run::tests::handle_bus_event_error_pushes_error_toast ... ok
[INFO] [stdout] test run::tests::handle_bus_event_profile_saved_pushes_info_toast ... ok
[INFO] [stdout] test run::tests::handle_bus_event_profile_load_failed_pushes_error_toast ... ok
[INFO] [stdout] test run::tests::handle_bus_event_modem_lines_changed_reaches_app ... ok
[INFO] [stdout] test run::tests::persist_profile_io_error_publishes_profile_load_failed ... ok
[INFO] [stdout] test run::tests::persist_profile_without_path_is_noop ... ok
[INFO] [stdout] test run::tests::handle_bus_event_rx_bytes_reaches_pane ... ok
[INFO] [stdout] test run::tests::reload_profile_malformed_toml_publishes_profile_load_failed ... ok
[INFO] [stdout] test run::tests::save_flavored_actions_return_none_pending_t18 ... ok
[INFO] [stdout] test run::tests::send_break_maps_to_send_break_command ... ok
[INFO] [stdout] test run::tests::reload_profile_reads_and_dispatches_apply_config ... ok
[INFO] [stdout] test run::tests::set_dtr_maps_to_set_dtr_abs_command ... ok
[INFO] [stdout] test run::tests::set_rts_maps_to_set_rts_abs_command ... ok
[INFO] [stdout] test run::tests::summarise_custom_config ... ok
[INFO] [stdout] test run::tests::summarise_default_is_115200_8n1_none ... ok
[INFO] [stdout] test serial_pane::tests::scroll_down_decrements_offset ... ok
[INFO] [stdout] test serial_pane::tests::scroll_down_saturates_at_zero ... ok
[INFO] [stdout] test serial_pane::tests::scroll_to_top_jumps_to_oldest ... ok
[INFO] [stdout] test serial_pane::tests::scroll_to_bottom_resets_offset ... ok
[INFO] [stdout] test run::tests::apply_line_endings_and_save_persists_profile ... ok
[INFO] [stdout] test serial_pane::tests::serial_pane_custom_scrollback ... ok
[INFO] [stdout] test serial_pane::tests::serial_pane_default_scrollback_is_ten_thousand ... ok
[INFO] [stdout] test serial_pane::tests::serial_pane_ingest_handles_ansi_escape_sequences ... ok
[INFO] [stdout] test serial_pane::tests::serial_pane_ingests_bytes_into_vt100 ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_empty_snapshot ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_menu_open_fullscreen_snapshot ... ok
[INFO] [stdout] test toast::tests::default_lifetime_is_3_seconds ... ok
[INFO] [stdout] test toast::tests::level_colours_are_distinct ... ok
[INFO] [stdout] test toast::tests::level_styles_are_bold ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_menu_open_snapshot ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_menu_open_dimmed_overlay_snapshot ... ok
[INFO] [stdout] test toast::tests::push_adds_toast ... ok
[INFO] [stdout] test toast::tests::queue_drops_oldest_when_full ... ok
[INFO] [stdout] test toast::tests::queue_starts_empty ... ok
[INFO] [stdout] test toast::tests::render_noop_on_zero_area ... ok
[INFO] [stdout] test toast::tests::tick_keeps_live_toasts ... ok
[INFO] [stdout] test toast::tests::render_writes_newest_toast_at_top ... ok
[INFO] [stdout] test serial_pane::tests::serial_pane_resize_updates_size ... ok
[INFO] [stdout] test serial_pane::tests::scroll_up_clamps_to_scrollback_capacity ... ok
[INFO] [stdout] test menu::serial_port::tests::f10_emits_apply_and_save ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_serial_port_setup_open_snapshot ... ok
[INFO] [stdout] test run::tests::apply_line_endings_live_returns_none_pending_v021 ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_with_toast_snapshot ... ok
[INFO] [stdout] test app::tests::main_screen_80x24_with_serial_data_snapshot ... ok
[INFO] [stdout] test app::tests::main_screen_120x40_empty_snapshot ... ok
[INFO] [stdout] test app::tests::main_screen_120x40_menu_open_overlay_snapshot ... ok
[INFO] [stdout] test menu::confirm::tests::lowercase_y_confirms ... ok
[INFO] [stdout] test run::tests::persist_profile_writes_to_disk_and_publishes_profile_saved ... ok
[INFO] [stdout] test serial_pane::tests::scroll_up_increments_offset ... ok
[INFO] [stderr]    Doc-tests rtcom_tui
[INFO] [stdout] test toast::tests::tick_removes_expired_toasts ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 193 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/layout.rs - layout::main_chrome (line 31) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.19s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3985b65cb8946e6cad1cd08d60e18ac759345acbd9ced7999fc79bddc97e13f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3985b65cb8946e6cad1cd08d60e18ac759345acbd9ced7999fc79bddc97e13f2", kill_on_drop: false }`
[INFO] [stdout] 3985b65cb8946e6cad1cd08d60e18ac759345acbd9ced7999fc79bddc97e13f2
