[INFO] cloning repository https://github.com/cat2151/clap-mml-render-tui [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cat2151/clap-mml-render-tui" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcat2151%2Fclap-mml-render-tui", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcat2151%2Fclap-mml-render-tui'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 57f36f41ccd00ab61ee2113c48f59d8fc31c1f0d [INFO] testing cat2151/clap-mml-render-tui 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%2Fcat2151%2Fclap-mml-render-tui" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/cat2151/clap-mml-render-tui [INFO] finished tweaking git repo https://github.com/cat2151/clap-mml-render-tui [INFO] tweaked toml for git repo https://github.com/cat2151/clap-mml-render-tui written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cat2151/clap-mml-render-tui 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/cat2151/clap-mml-render-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" "+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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 7e5cb04f2161f78ee231d03c9acbaa62fde6347599082d8de1603c38d0963dc9 [INFO] running `Command { std: "docker" "start" "-a" "7e5cb04f2161f78ee231d03c9acbaa62fde6347599082d8de1603c38d0963dc9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "7e5cb04f2161f78ee231d03c9acbaa62fde6347599082d8de1603c38d0963dc9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7e5cb04f2161f78ee231d03c9acbaa62fde6347599082d8de1603c38d0963dc9", kill_on_drop: false }` [INFO] [stdout] 7e5cb04f2161f78ee231d03c9acbaa62fde6347599082d8de1603c38d0963dc9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 0ccf80f14e846fb53d55e05cc8a5858675abf7871e9f859db122da86be117115 [INFO] running `Command { std: "docker" "start" "-a" "0ccf80f14e846fb53d55e05cc8a5858675abf7871e9f859db122da86be117115", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling tree-sitter v0.22.6 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling clap-sys v0.5.0 [INFO] [stderr] Compiling ogg v0.8.0 [INFO] [stderr] Compiling mmlabc-to-smf v0.1.0 (https://github.com/cat2151/mmlabc-to-smf-rust.git#9a7c10f8) [INFO] [stderr] Compiling libloading v0.8.9 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling dasp_sample v0.11.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling lewton v0.10.2 [INFO] [stderr] Compiling midly v0.5.3 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling symphonia-core v0.5.5 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling clack-common v0.1.0 (https://github.com/prokopyl/clack.git#f53f8fc1) [INFO] [stderr] Compiling pxfm v0.1.28 [INFO] [stderr] Compiling hound v3.5.1 [INFO] [stderr] Compiling claxon v0.4.3 [INFO] [stderr] Compiling png v0.18.1 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling symphonia-metadata v0.5.5 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling alsa v0.9.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling clack-host v0.1.0 (https://github.com/prokopyl/clack.git#f53f8fc1) [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling webpki-roots v0.26.11 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling clap-mml-render-tui v0.1.0 (/opt/rustwide/workdir/app) [INFO] [stderr] Compiling ascii v1.1.0 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling symphonia v0.5.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling clack-extensions v0.1.0 (https://github.com/prokopyl/clack.git#f53f8fc1) [INFO] [stderr] Compiling moxcms v0.8.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling chunked_transfer v1.5.0 [INFO] [stderr] Compiling cat-self-update-lib v0.1.0 (https://github.com/cat2151/cat-self-update#52075f04) [INFO] [stderr] Compiling tiny_http v0.12.0 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling rodio v0.19.0 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling clap v4.6.0 [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 darling_macro v0.23.0 [INFO] [stderr] Compiling image v0.25.10 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling ratatui v0.28.1 [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 idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling ureq v2.12.1 [INFO] [stderr] Compiling tui-textarea v0.6.1 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling cmrt-daw-client v0.1.0 (/opt/rustwide/workdir/daw-client-lib) [INFO] [stderr] Compiling cmrt-runtime v0.1.0 (/opt/rustwide/workdir/cmrt-runtime) [INFO] [stderr] Compiling cmrt-core v0.1.0 (https://github.com/cat2151/clap-mml-play-server#aa5291ea) [INFO] [stderr] Compiling cmrt-core v0.1.0 (/opt/rustwide/workdir/core-lib) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s [INFO] running `Command { std: "docker" "inspect" "0ccf80f14e846fb53d55e05cc8a5858675abf7871e9f859db122da86be117115", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ccf80f14e846fb53d55e05cc8a5858675abf7871e9f859db122da86be117115", kill_on_drop: false }` [INFO] [stdout] 0ccf80f14e846fb53d55e05cc8a5858675abf7871e9f859db122da86be117115 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 9ff4e753aa58af63a1a7d7703a0abe5a0f8aececbef349ec231b378b11886ed7 [INFO] running `Command { std: "docker" "start" "-a" "9ff4e753aa58af63a1a7d7703a0abe5a0f8aececbef349ec231b378b11886ed7", kill_on_drop: false }` [INFO] [stderr] Compiling cmrt-daw-client v0.1.0 (/opt/rustwide/workdir/daw-client-lib) [INFO] [stderr] Compiling cmrt-core v0.1.0 (/opt/rustwide/workdir/core-lib) [INFO] [stderr] Compiling cmrt-runtime v0.1.0 (/opt/rustwide/workdir/cmrt-runtime) [INFO] [stderr] Compiling clap-mml-render-tui v0.1.0 (/opt/rustwide/workdir/app) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 13.36s [INFO] running `Command { std: "docker" "inspect" "9ff4e753aa58af63a1a7d7703a0abe5a0f8aececbef349ec231b378b11886ed7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9ff4e753aa58af63a1a7d7703a0abe5a0f8aececbef349ec231b378b11886ed7", kill_on_drop: false }` [INFO] [stdout] 9ff4e753aa58af63a1a7d7703a0abe5a0f8aececbef349ec231b378b11886ed7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] a82e52857652c7eae00b5feb745aba8d9e1e92c6a8a737ec65156641b6517913 [INFO] running `Command { std: "docker" "start" "-a" "a82e52857652c7eae00b5feb745aba8d9e1e92c6a8a737ec65156641b6517913", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/clap_mml_render_tui-db3f4ab67886dcf9) [INFO] [stdout] [INFO] [stdout] running 552 tests [INFO] [stdout] test config::tests::config_effective_offline_render_workers_uses_backend_specific_value ... ok [INFO] [stdout] test config::tests::config_file_path_contains_cmrt_subdir ... ok [INFO] [stdout] test config::tests::config_file_path_ends_with_cmrt_config_toml ... ok [INFO] [stdout] test config::tests::config_file_path_uses_test_temp_dir_under_tests ... ok [INFO] [stdout] test config::tests::config_offline_render_workers_parses_explicit_value ... ok [INFO] [stdout] test config::tests::config_offline_render_backend_parses_render_server ... ok [INFO] [stdout] test config::tests::default_config_content_omits_removed_patch_path_key ... ok [INFO] [stdout] test config::tests::default_config_content_preserves_windows_path_format ... ok [INFO] [stdout] test config::tests::config_offline_render_workers_validation_rejects_out_of_range_values ... ok [INFO] [stdout] test config::tests::config_parse_ignores_removed_daw_size_settings ... ok [INFO] [stdout] test config::tests::config_optional_patches_dirs_is_none_by_default ... ok [INFO] [stdout] test config::tests::config_parse_ignores_removed_patch_settings ... ok [INFO] [stdout] test config::tests::config_parse_valid_toml ... ok [INFO] [stdout] test config::tests::core_config_from_config_disables_random_patch ... ok [INFO] [stdout] test config::tests::default_config_content_uses_48000_sample_rate ... ok [INFO] [stdout] test config::tests::log_file_path_ends_with_cmrt_log_txt ... ok [INFO] [stdout] test config::tests::native_probe_log_file_path_ends_with_cmrt_native_probe_log ... ok [INFO] [stdout] test config::tests::default_config_content_uses_offline_render_backend_keys ... ok [INFO] [stdout] test daw::http_server::routes::tests::post_ab_repeat_request_measure_aliases_match_canonical_names ... ok [INFO] [stdout] test daw::http_server::routes::tests::get_status_response_serializes_play_and_cache_status ... ok [INFO] [stdout] test daw::http_server::routes::tests::post_ab_repeat_request_deserializes_measure_aliases ... ok [INFO] [stdout] test config::tests::serialize_patches_dirs_line_escapes_single_quotes ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_http_ab_repeat_rejects_init_column_and_out_of_range_measure ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_http_mml_rejects_measure_index_overflow ... ok [INFO] [stdout] test config::tests::default_config_content_uses_patches_dirs_key ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_start_while_playing_is_noop ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_start_without_playable_data_returns_error ... ok [INFO] [stdout] test config::tests::default_config_content_uses_offline_render_workers_key ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_random_patch_to_track_rejects_out_of_range_track ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_stops_play ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_updates_ab_repeat_range ... ok [INFO] [stdout] test config::tests::config_offline_render_server_workers_validation_rejects_out_of_range_values ... ok [INFO] [stdout] test config::tests::default_config_content_omits_removed_daw_size_keys ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::is_allowed_cors_origin_accepts_known_origins ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::request_header_value_extracts_case_insensitive_header ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::request_origin_extracts_origin_header ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::with_cors_headers_adds_origin_and_vary_headers ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::with_preflight_cors_headers_adds_preflight_headers ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::get_snapshot_mml_rejects_unready_and_out_of_range_requests ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::get_snapshot_mmls_rejects_unready_state_and_returns_all_tracks_measures ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::get_status_snapshot_rejects_unready_state ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_updates_mml_and_expands_grid ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::if_none_match_matches_exact_weak_and_wildcard_etags ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::parse_get_mml_query_accepts_measure_alias_and_zero ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::parse_get_mml_query_rejects_missing_or_invalid_values ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::snapshot_mmls_etag_is_content_based ... ok [INFO] [stdout] test daw::init::tests::try_build_grid_buffers_rejects_measure_overflow ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::filter_and_modes::handle_history_overlay_question_mark_opens_help_and_esc_returns_to_history_overlay ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::filter_and_modes::handle_history_overlay_filter_ctrl_a_uses_tui_textarea_default_binding ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_updates_mixer_gain ... ok [INFO] [stdout] test daw::init::tests::offline_render_startup_log_line_shows_backend_and_workers ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_down_previews_next_history_item ... ok [INFO] [stdout] test daw::init::tests::build_grid_buffers_or_default_falls_back_from_invalid_saved_size ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::filter_and_modes::handle_history_overlay_n_p_t_switch_to_corresponding_overlays ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_enter_from_favorites_uses_selected_favorite ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_j_k_preview_uses_overlay_patch_name ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_j_prefetches_predicted_preview_cache ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_enter_overwrites_measure_and_backs_up_old_phrase ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_normal_h_moves_measure_cursor_left ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_j_k_preview_falls_back_when_track_init_json_is_not_object ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::filter_and_modes::handle_history_overlay_allows_slash_character_in_filter_query ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_normal_shift_h_opens_patch_history_overlay_for_track_patch ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_arrow_and_space_preview_selected_mml ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_normal_shift_h_migrates_legacy_patch_name_to_factory_prefixed_patch_name ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_normal_shift_h_without_track_patch_opens_filtered_history_overlay ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_starts_play ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::handle_history_overlay_enter_without_track_patch_sets_patch_and_backs_up_old_phrase ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::navigation_and_preview::prefetch_preview_snapshot_skips_overlay_cache_for_large_measure_buffers ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::claim_http_server_thread_slot_is_reusable_after_drop ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_allows_slash_character_in_filter_query_without_resetting_restore_point ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_backspace_with_empty_query_exits_filter_input ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_arrow_keys_move_selection_in_left_pane ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::daw_mode_switch_request_is_consumed_once ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_enter_overwrites_current_track_init_patch ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_left_in_filter_query_does_not_repreview ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_updates_random_patch_init_cell ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_filter_ctrl_a_uses_tui_textarea_default_binding ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_j_prefetches_predicted_preview_cache ... ok [INFO] [stdout] test daw::input::tests::insert::handle_insert_ctrl_c_copies_selected_text ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_j_and_k_move_selection_until_slash_starts_filter_input ... ok [INFO] [stdout] test daw::input::tests::mixer::handle_mixer_keeps_cursor_within_playable_track_range ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_j_k_preview_after_favorites_switch ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::start_patch_select_overlay_keeps_favorites_in_registered_order ... ok [INFO] [stdout] test daw::input::tests::mixer::handle_mixer_supports_track_navigation_and_escape ... ok [INFO] [stdout] test daw::http_server::tests::apply_pending_commands::apply_pending_http_commands_updates_patch_init_cell ... ok [INFO] [stdout] test daw::http_server::tests::request_and_cors::daw_mode_switch_request_is_ignored_while_daw_is_active ... ok [INFO] [stdout] test daw::http_server::tests::snapshot_queries::sync_http_status_snapshot_captures_play_grid_and_cache_counts ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_enter_saves_filter_query_in_track_init_json ... ok [INFO] [stdout] test daw::input::tests::insert::commit_insert_triggers_cache_refresh_when_text_changes ... ok [INFO] [stdout] test daw::input::tests::mixer::handle_mixer_adjusts_volume_in_3db_steps ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_filter_space_adds_and_term_instead_of_previewing ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_esc_cancels_filter_input_without_closing_overlay ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::start_patch_select_overlay_migrates_prefixed_favorites_from_legacy_patch_name ... ok [INFO] [stdout] test daw::input::tests::history::history_overlay::filter_and_modes::handle_history_overlay_slash_then_enter_keeps_filtered_results_for_j_navigation ... ok [INFO] [stdout] test daw::input::tests::history::patch_select::handle_patch_select_backspace_to_empty_keeps_filter_input_active ... ok [INFO] [stdout] test daw::input::tests::insert::commit_insert_skips_cache_refresh_when_text_is_unchanged ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_esc_has_no_effect ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_a_cycles_ab_repeat_and_tracks_cursor_until_end_is_fixed ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_h_and_j_preview_new_target_when_not_playing ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_m_enters_mixer_mode_on_playable_track ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_question_mark_enters_help_mode ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_n_returns_to_tui ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_s_enables_solo_for_current_track ... ok [INFO] [stdout] test daw::input::tests::insert::commit_insert_keeps_semicolon_text_in_same_measure ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_s_toggles_tracks_and_turns_off_solo_mode_when_all_false ... ok [INFO] [stdout] test daw::input::tests::normal::patch_and_mode::handle_normal_a_can_turn_off_ab_repeat_from_init_column ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::generate::handle_normal_g_rejects_init_column ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::replace_patch_name_in_mml_preserves_escaped_json_strings ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::handle_normal_shift_space_stops_current_play ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::generate::skips_history_when_generate_is_noop ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::handle_normal_shift_enter_stops_current_play ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::handle_normal_shift_space_stops_current_preview ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::generate::handle_normal_g_sets_random_patch_and_generated_phrase_then_previews ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::play_from_cursor_uses_cursor_measure_index_for_start_position ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::preview_shortcuts_keep_default_playback_start_position ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::preview_target_tracks_can_force_current_track_even_when_solo_mode_differs ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::preview_target_tracks_can_temporarily_open_all_tracks ... ok [INFO] [stdout] test daw::input::tests::normal::playback_and_shortcuts::preview_target_tracks_rejects_non_playable_current_track ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_enter_uses_test_preview_path_when_entry_ptr_is_unavailable ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_l_and_k_do_not_start_preview_while_playing ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_enter_stops_current_preview ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_dd_yanks_current_measure_clears_it_and_records_patch_history ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_cursor_move_restarts_preview_on_new_target ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_enter_stops_current_play ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_rerender::handle_normal_r_ignores_non_playable_track_and_keeps_header_unchanged ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_stops_preview_when_cursor_moves_to_init_column ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::normal_playback_shortcuts_map_correctly ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_includes_timbre_in_measure ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_stops_preview_when_cursor_moves_to_non_playable_track ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_includes_track0_tempo_in_measure ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_p_overwrites_current_measure_from_yank_and_records_previous_phrase ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_p_logs_when_yank_buffer_is_empty ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_empty_notes_cell_has_no_note_content ... ok [INFO] [stdout] test daw::input::tests::normal::preview_and_edit::handle_normal_u_restores_previous_init_measure_after_paste ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_rerender::handle_normal_r_restores_default_tempo_init_when_empty ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_timbre_change_affects_all_measures ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_track0_change_affects_all_tracks ... ok [INFO] [stdout] test daw::mml::tests::build_measure_mml_keeps_only_solo_tracks_when_solo_mode_is_active ... ok [INFO] [stdout] test daw::mml::tests::build_cell_mml_track8_is_accessible ... ok [INFO] [stdout] test daw::mml::tests::build_measure_mml_keeps_only_tracks_with_notes ... ok [INFO] [stdout] test daw::mml::tests::build_measure_mml_reapplies_timbre_to_semicolon_branches_in_same_track ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_prefers_cache_hit ... ok [INFO] [stdout] test daw::mml::tests::build_measure_mml_returns_empty_when_measure_has_no_notes ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_preserves_rendered_tail ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_renders_and_normalizes_length ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::mark_cache_rendering_in_preserves_previous_samples_for_playback_fallback ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::mix_measure_chunk_overlaps_previous_tail_with_next_measure_start ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_returns_silence_for_empty_measure ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::pad_playback_measure_samples_only_pads_short_buffers ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::try_get_cached_samples_applies_track_gain_per_track ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_rerenders_when_stale_cache_measure_length_differs ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_renders_each_track_with_gain ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::try_get_cached_samples_rejects_stale_samples_when_measure_length_differs ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::try_get_cached_samples_uses_stale_samples_while_rendering ... ok [INFO] [stdout] test daw::playback::tests::state::stop_play_logs_play_stop_for_playing_state ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::build_playback_measure_samples_uses_stale_cache_while_measure_is_pending ... ok [INFO] [stdout] test daw::playback::tests::timing::current_play_measure_index_jumps_to_ab_repeat_start_outside_active_range ... ok [INFO] [stdout] test daw::playback::tests::timing::current_play_measure_index_wraps_to_loop_start_when_measure_count_shrinks ... ok [INFO] [stdout] test daw::playback::tests::state::stop_play_logs_preview_stop_for_preview_state ... ok [INFO] [stdout] test daw::playback::tests::cache_mixer::try_get_cached_samples_preserves_cached_tail_beyond_measure_length ... ok [INFO] [stdout] test daw::playback::tests::timing::following_measure_index_wraps_after_last_measure ... ok [INFO] [stdout] test daw::playback::tests::timing::following_measure_index_wraps_inside_ab_repeat_range ... ok [INFO] [stdout] test daw::playback::tests::timing::format_playback_future_append_log_reports_append_lead_time ... ok [INFO] [stdout] test daw::playback::tests::timing::format_playback_measure_advance_log_shows_current_and_next_measure ... ok [INFO] [stdout] test daw::playback::tests::timing::format_playback_measure_resolution_log_shows_cursor_and_resolved_measure ... ok [INFO] [stdout] test daw::playback::tests::timing::format_playback_future_append_log_reports_late_append ... ok [INFO] [stdout] test daw::playback::tests::timing::future_chunk_append_deadline_uses_50ms_margin_before_next_measure ... ok [INFO] [stdout] test daw::playback::tests::timing::future_chunk_append_deadline_clamps_to_measure_start_for_short_measures ... ok [INFO] [stdout] test daw::playback::tests::timing::measure_indices_return_zero_when_effective_count_is_zero ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_rerender::handle_normal_r_prioritizes_next_play_measure_when_playing ... ok [INFO] [stdout] test daw::playback::tests::timing::resolved_measure_start_after_append_keeps_expected_start_when_append_is_early ... ok [INFO] [stdout] test daw::playback::tests::timing::resolved_measure_start_after_append_resyncs_to_late_append_time ... ok [INFO] [stdout] test daw::playback::tests::timing::wait_until_or_stop_returns_false_when_playback_is_not_running ... ok [INFO] [stdout] test daw::playback::tests::timing::wait_until_or_stop_returns_true_when_deadline_is_already_reached ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_all_empty_returns_none ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_all_measures_non_empty ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_single_non_empty_measure ... ok [INFO] [stdout] test daw::preview::tests::begin_preview_output_skips_enqueue_for_stale_preview_session ... ok [INFO] [stdout] test daw::preview::tests::begin_preview_output_skips_enqueue_when_preview_stopped ... ok [INFO] [stdout] test daw::playback_util::tests::play_start_log_lines_use_ab_repeat_start_and_end_when_active ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_includes_internal_empty_measures ... ok [INFO] [stdout] test daw::preview::tests::begin_preview_output_updates_position_before_enqueue ... ok [INFO] [stdout] test daw::playback_util::tests::format_measure_list_merges_consecutive_ranges ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_skips_trailing_empty_measures ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_rerender::handle_normal_r_rerenders_playable_measures_without_rendering_measure_zero ... ok [INFO] [stdout] test daw::playback_util::tests::loop_measure_summary_label_uses_ab_repeat_range_when_active ... ok [INFO] [stdout] test daw::playback_util::tests::loop_measure_summary_label_lists_loop_and_empty_ranges ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::handle_normal_r_uses_saved_patch_filter_query_for_random_selection ... ok [INFO] [stdout] test daw::playback_util::tests::play_start_log_lines_describe_active_and_empty_measures ... ok [INFO] [stdout] test daw::playback_util::tests::effective_measure_count_whitespace_only_treated_as_empty ... ok [INFO] [stdout] test daw::render_queue::tests::render_request_queue_prefers_priority_then_fifo_order ... ok [INFO] [stdout] test daw::save::tests::daw_load_clamps_track_volume_and_ignores_track0_volume ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_keeps_track_volume_for_empty_track ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_non_initial_meas_has_no_description ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_out_of_range_indices_are_ignored_on_load ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_meas0_has_initial_description ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_logs_only_after_last_measure_finishes ... ok [INFO] [stdout] test daw::save::tests::ensure_cmrt_dir_is_idempotent ... ok [INFO] [stdout] test daw::save::tests::load_saved_grid_size_reads_saved_session_from_history_dir ... ok [INFO] [stdout] test daw::save::tests::required_grid_size_uses_largest_saved_track_and_measure ... ok [INFO] [stdout] test daw::save::tests::save_history_state_flushes_dirty_patch_phrase_store ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_skips_empty_tracks_and_meas ... ok [INFO] [stdout] test daw::tests::start_track_rerender_batch::start_track_rerender_batch_logs_only_targeted_measures ... ok [INFO] [stdout] test daw::save::tests::daw_load_clears_defaults_before_applying_json ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_uses_available_worker_slots_while_playing ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_roundtrip_with_notes ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_track0_has_tempo_description ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_respects_global_worker_limit_across_tracks ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_skips_stale_pending_job_and_reserves_next_measure ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_waits_for_last_active_measure_before_logging_done ... ok [INFO] [stdout] test daw::tests::load_wav_samples_reads_back_float_wav_cache ... ok [INFO] [stdout] test daw::save::tests::daw_save_json_roundtrip_default_data ... ok [INFO] [stdout] test daw::timing::tests::compute_measure_samples_beat_zero_clamps_to_one ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_4_4 ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::handle_normal_r_preserves_init_json_formatting_and_whitespace ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_missing_beat_key ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_non_numeric ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_no_json ... ok [INFO] [stdout] test daw::timing::tests::parse_tempo_bpm_at_start ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_malformed_json ... ok [INFO] [stdout] test daw::timing::tests::compute_measure_samples_clamps_bpm_negative ... ok [INFO] [stdout] test daw::timing::tests::parse_tempo_bpm_after_json ... ok [INFO] [stdout] test daw::timing::tests::compute_measure_samples_4_4_t120_44100 ... ok [INFO] [stdout] test daw::timing::tests::compute_measure_samples_clamps_bpm_zero ... ok [INFO] [stdout] test daw::timing::tests::compute_measure_samples_result_is_always_even ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_3_4 ... ok [INFO] [stdout] test daw::timing::tests::parse_beat_numerator_zero_clamps_to_one ... ok [INFO] [stdout] test daw::timing::tests::parse_tempo_bpm_basic ... ok [INFO] [stdout] test daw::timing::tests::parse_tempo_bpm_empty ... ok [INFO] [stdout] test daw::timing::tests::parse_tempo_bpm_no_tempo ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::handle_normal_r_preserves_trailing_init_mml_when_updating_patch_json ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::handle_normal_r_keeps_independent_history_per_filter_query ... ok [INFO] [stdout] test daw::tests::complete_track_rerender_batch_respects_cache_render_worker_limit ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_shows_log_pane_with_all_borders ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_grays_out_muted_tracks_during_solo_mode ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_shows_solo_and_mute_below_init_meas_during_solo_mode ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_shows_outer_border_in_monokai_cyan ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_highlights_failed_logs_in_red ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::normal_footer_shows_shift_h_history_shortcut ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_highlights_future_append_in_monokai_pink ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::history_help_draws_on_top_of_history_overlay ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_keeps_footer_on_last_row_when_idle ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_normal_mode_title_in_top_border ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_insert_mode_title_in_top_border ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_ab_repeat_markers_and_footer_shortcut ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_keeps_footer_color_cyan_across_play_states ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_highlights_selected_mixer_track_with_contrast_background_without_blink ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_renders_pending_indicator_in_visible_color ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_places_playback_status_and_loop_summary_above_footer ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_log_pane_in_lower_half ... ok [INFO] [stdout] test daw::ui::tests::helpers::cache_indicator_color_keeps_pending_animation_visible ... ok [INFO] [stdout] test daw::ui::tests::helpers::cache_indicator_animates_only_while_rendering ... ok [INFO] [stdout] test daw::ui::tests::helpers::cache_indicator_uses_single_dot_for_uncached_cells ... ok [INFO] [stdout] test daw::ui::tests::helpers::loop_status_label_all_empty_returns_none ... ok [INFO] [stdout] test daw::ui::tests::helpers::loop_status_label_shows_ab_repeat_range_when_active ... ok [INFO] [stdout] test daw::ui::tests::helpers::loop_status_label_single_measure_shows_single_measure_loop ... ok [INFO] [stdout] test daw::ui::tests::helpers::loop_status_label_uses_last_non_empty_measure ... ok [INFO] [stdout] test daw::ui::tests::helpers::cache_text_color_keeps_uncached_mml_visible ... ok [INFO] [stdout] test daw::ui::tests::helpers::loop_measure_summary_label_lists_loop_and_empty_ranges ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::draw_shows_mixer_overlay_with_track_labels_and_db_values ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_recent_log_lines ... ok [INFO] [stdout] test history::tests::daw_file_path_same_dir_as_history_json ... ok [INFO] [stdout] test history::tests::daw_file_path_ends_with_daw_json ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::insert_and_filter_modes_use_terminal_bar_cursor ... ok [INFO] [stdout] test history::tests::save_and_load_session_state_roundtrip ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_active_parallel_render_count_above_footer ... ok [INFO] [stdout] test history::tests::patch_phrase_store_path_same_dir_as_history_json ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::help_does_not_show_old_semicolon_guidance ... ok [INFO] [stdout] test history::tests::history_files_use_test_temp_dir_under_tests ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_shows_mml_and_uncached_dot_before_cache_is_ready ... ok [INFO] [stdout] test history::tests::save_and_load_session_state_roundtrip_daw_mode ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::layout_and_logs::draw_uses_contrast_background_for_selected_grid_cell_without_blink ... ok [INFO] [stdout] test history::tests::session_state_default_cursor_is_zero ... ok [INFO] [stdout] test history::tests::session_state_json_empty_lines_passes_through_serde ... ok [INFO] [stdout] test history::tests::session_state_json_from_invalid_returns_default ... ok [INFO] [stdout] test history::tests::session_state_default_is_daw_mode_is_false ... ok [INFO] [stdout] test history::tests::session_state_json_missing_field_returns_default ... ok [INFO] [stdout] test history::tests::session_state_default_lines_is_cde ... ok [INFO] [stdout] test daw::ui::tests::draw_tests::help_and_mixer::help_overlay_size_follows_daw_help_content ... ok [INFO] [stdout] test history::tests::session_state_path_is_in_history_dir ... ok [INFO] [stdout] test history::tests::session_state_serialize_deserialize_is_daw_mode_true ... ok [INFO] [stdout] test history::tests::session_state_json_missing_is_daw_mode_defaults_to_false ... ok [INFO] [stdout] test history::tests::session_state_json_missing_lines_uses_default ... ok [INFO] [stdout] test history::tests::session_state_serialize_deserialize ... ok [INFO] [stdout] test history::tests::session_state_serialize_deserialize_zero ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_shows_patch_select_overlay_title_and_items ... ok [INFO] [stdout] test history::tests::storage_and_migration::patch_phrase_store_serialize_deserialize_roundtrip ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_patch_select_shows_filter_input_keybinds_when_filter_active ... ok [INFO] [stdout] test logging::tests::format_log_file_line_at_floors_pre_epoch_subsecond_to_previous_second ... ok [INFO] [stdout] test logging::tests::format_log_file_line_at_handles_date_boundaries ... ok [INFO] [stdout] test logging::tests::format_log_file_line_at_prefixes_human_readable_jst_timestamp ... ok [INFO] [stdout] test logging::tests::load_log_lines_from_path_keeps_probe_file_out_of_main_log_buffer ... ok [INFO] [stdout] test logging::tests::strip_log_file_timestamp_prefix_returns_original_message ... ok [INFO] [stdout] test offline_render::render_server::tests::current_generation_transport_failure_restarts_server ... ok [INFO] [stdout] test offline_render::render_server::tests::stale_transport_failure_reuses_newer_generation_without_restart ... ok [INFO] [stdout] test logging::tests::append_log_line_to_path_keeps_concurrent_lines_intact ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_history_overlay_uses_contrast_background_for_selected_entry_without_blink ... ok [INFO] [stdout] test offline_render::tests::decode_wav_bytes_accepts_16bit_stereo ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_patch_select_does_not_show_total_patch_count_in_title ... ok [INFO] [stdout] test patches::tests::collect_patch_pairs_combines_factory_and_thirdparty_using_common_base ... ok [INFO] [stdout] test patches::tests::collect_patch_pairs_sorts_display_names_naturally ... ok [INFO] [stdout] test patches::tests::compare_normalized_patch_names_natural_orders_numeric_suffixes ... ok [INFO] [stdout] test offline_render::tests::decode_wav_bytes_rejects_unexpected_sample_rate ... ok [INFO] [stdout] test patches::tests::resolve_display_patch_name_adds_factory_prefix_when_missing ... ok [INFO] [stdout] test patches::tests::resolve_display_patch_name_prefers_existing_prefixed_name ... ok [INFO] [stdout] test patches::tests::shared_patch_root_dir_returns_common_parent_for_multiple_dirs ... ok [INFO] [stdout] test patches::tests::shared_patch_root_dir_returns_none_when_only_empty_root_matches ... ok [INFO] [stdout] test patches::tests::shared_patch_root_dir_returns_single_dir_as_is ... ok [INFO] [stdout] test patches::tests::sort_patch_pairs_can_group_by_category_before_path ... ok [INFO] [stdout] test patches::tests::sort_patch_pairs_category_order_handles_vendorless_thirdparty_paths ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_patch_select_uses_query_cursor_only ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_shows_history_overlay_title_and_items ... ok [INFO] [stdout] test random::tests::random_index_decks_do_not_repeat_within_a_cycle ... ok [INFO] [stdout] test patches::tests::compare_patch_names_natural_orders_numeric_suffixes ... ok [INFO] [stdout] test patches::tests::sort_patch_pairs_path_order_keeps_factory_before_thirdparty ... ok [INFO] [stdout] test random::tests::random_index_decks_keep_progress_per_query ... ok [INFO] [stdout] test random::tests::random_index_decks_reset_after_a_cycle_is_exhausted ... ok [INFO] [stdout] test random::tests::random_index_decks_normalize_query_terms_for_the_same_cycle ... ok [INFO] [stdout] test random::tests::random_index_decks_return_none_for_empty_candidates ... ok [INFO] [stdout] test random::tests::random_index_returns_none_for_empty_input ... ok [INFO] [stdout] test random::tests::random_index_returns_zero_for_single_candidate ... ok [INFO] [stdout] test text_input::tests::apply_key_event_to_textarea_moves_cursor_with_ctrl_a ... ok [INFO] [stdout] test random::tests::random_index_stays_within_bounds ... ok [INFO] [stdout] test text_input::tests::apply_key_event_to_textarea_returns_true_when_text_changes ... ok [INFO] [stdout] test text_input::tests::apply_key_event_to_textarea_returns_false_for_cursor_only_input ... ok [INFO] [stdout] test text_input::tests::single_line_textarea_cursor_position_falls_back_to_area_origin_for_tiny_area ... ok [INFO] [stdout] test text_input::tests::single_line_textarea_cursor_position_stays_within_area_for_small_border_only_rect ... ok [INFO] [stdout] test tui::prefetch::tests::in_process_idle_prefetch_keeps_existing_relaxed_single_slot_policy ... ok [INFO] [stdout] test tui::prefetch::tests::in_process_initial_idle_prefetch_waits_while_immediate_jobs_are_active ... ok [INFO] [stdout] test daw::ui::tests::overlay_tests::draw_history_overlay_uses_query_cursor_only_while_filtering ... ok [INFO] [stdout] test tui::prefetch::tests::render_server_idle_prefetch_fills_to_worker_count ... ok [INFO] [stdout] test tui::prefetch::tests::render_server_initial_idle_prefetch_fills_even_after_immediate_jobs ... ok [INFO] [stdout] test tui::render_queue::tests::newer_prefetch_generation_runs_before_older_prefetch ... ok [INFO] [stdout] test tui::render_queue::tests::pending_queue_deduplicates_same_mml_and_elevates_to_playback ... ok [INFO] [stdout] test tui::render_queue::tests::queue_stats_count_pending_unique_jobs_and_pending_playback_jobs ... ok [INFO] [stdout] test tui::render_queue::tests::render_server_worker_count_uses_configured_workers ... ok [INFO] [stdout] test tui::render_queue::tests::render_worker_count_caps_tui_workers_at_two ... ok [INFO] [stdout] test tui::render_queue::tests::stale_playback_waiters_are_dropped_before_render_selection ... ok [INFO] [stdout] test tui::render_queue::tests::pending_queue_prefers_playback_before_prefetch ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_items_multiple_terms_act_as_and ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_items_whitespace_only_query_returns_all ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_empty_query_returns_all ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_no_match_returns_empty ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_single_term_matches_substring ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_whitespace_only_query_returns_all ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_multiple_terms_act_as_and ... ok [INFO] [stdout] test tui::tests::filter_cache::mark_cache_entry_recent_moves_hit_key_to_back ... ok [INFO] [stdout] test tui::tests::filter_cache::resolve_cached_samples_returns_none_on_cache_miss ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_empty_list_returns_empty ... ok [INFO] [stdout] test tui::tests::filter_cache::filter_patches_case_insensitive ... ok [INFO] [stdout] test tui::tests::filter_cache::resolve_cached_samples_returns_none_without_cache_reference ... ok [INFO] [stdout] test tui::tests::filter_cache::resolve_cached_samples_returns_samples_on_cache_hit ... ok [INFO] [stdout] test tui::tests::filter_cache::try_insert_cache_does_nothing_when_random_patch_true ... ok [INFO] [stdout] test tui::tests::filter_cache::try_insert_cache_evicts_single_oldest_entry_when_full ... ok [INFO] [stdout] test tui::tests::filter_cache::try_insert_cache_inserts_when_random_patch_false ... ok [INFO] [stdout] test tui::tests::insert_mode::handle_insert_ctrl_c_copies_selected_text ... ok [INFO] [stdout] test tui::tests::insert_mode::handle_insert_ctrl_v_pastes_yanked_text ... ok [INFO] [stdout] test tui::tests::filter_cache::try_insert_cache_updates_existing_key_when_full ... ok [INFO] [stdout] test tui::tests::insert_mode::handle_insert_ctrl_x_cuts_selected_text ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_f_enters_patch_phrase_for_current_patch ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_f_shows_error_when_current_line_has_no_patch_json ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_j_prefetches_direction_first_then_fills_remaining_navigation_targets ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_j_prefetches_predicted_navigation_cache ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_o_and_o_insert_blank_line_and_enter_insert_mode ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_p_shows_error_when_yank_buffer_is_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_page_down_and_page_up_move_by_visible_page ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_question_mark_enters_help_mode ... ok [INFO] [stdout] test tui::tests::normal_mode::editing_and_modes::handle_normal_w_launches_daw ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_enter_keeps_saved_patch_filter_when_normalizing_patch_name ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_enter_rewrites_legacy_patch_json_with_prefixed_patch_name ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_g_shows_error_when_patches_are_unavailable ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_g_inserts_generated_line_above_current_line_and_plays_it ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_drops_saved_filter_when_it_matches_no_patch ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_inserts_c_for_empty_line_before_playing ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_inserts_c_when_all_semicolon_branches_are_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_inserts_random_patch_at_start_of_plain_line ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_replaces_existing_patch_at_start_of_current_line ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_replaces_spaced_semicolon_branch_patch_without_duplication ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_prioritizes_saved_patch_filter_over_current_patch_category ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_reapplies_same_patch_to_each_semicolon_branch ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_shows_error_when_patch_list_is_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_keeps_independent_history_per_filter_query ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_shows_error_when_patch_loading_failed ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_shows_error_when_patches_dirs_is_missing ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_shows_error_while_patches_are_loading ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_uses_current_patch_category_when_filter_is_missing ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_t_selects_current_line_patch_when_present ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_d_is_cleared_when_another_key_is_pressed ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_dd_on_single_line_replaces_with_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_dd_yanks_current_line_and_keeps_notepad_non_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_t_enters_patch_select_when_random_timbre_disabled ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_delete_yanks_current_line_and_keeps_notepad_non_empty ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_home_moves_to_first_line_and_plays_destination_line ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_p_and_p_paste_yanked_line_below_or_above_cursor ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_shift_l_has_no_effect ... ok [INFO] [stdout] test tui::tests::normal_mode::yank_and_navigation::handle_normal_upper_l_no_longer_moves_to_last_line ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_normal_enter_records_notepad_history ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_normal_h_no_longer_enters_notepad_history_overlay ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_normal_shift_h_enters_patch_phrase_overlay ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_normal_shift_h_without_patch_name_shows_notepad_history_guide ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_allows_slash_character_in_filter_query ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_d_does_not_arm_delete_when_favorites_empty ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_dd_removes_favorite_and_moves_it_to_history_top ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_enter_overwrites_current_line_and_closes ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_f_adds_selected_history_to_favorites ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_filter_ctrl_a_uses_tui_textarea_default_binding ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_filter_space_updates_query_before_preview_shortcut ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_guide_enter_opens_notepad_history_overlay ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_j_previews_without_reordering_history ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_j_prefetches_predicted_navigation_cache ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_k_prefetches_page_up_before_page_down_then_far_direction_targets ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_left_switches_focus_to_history ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_page_down_and_page_up_move_by_visible_page ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_n_p_t_switch_to_corresponding_overlays ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_question_mark_enters_help_and_esc_returns_to_history ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_right_switches_focus_to_favorites ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_page_up_at_top_does_not_repreview ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_space_previews_selected_item ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_slash_then_enter_keeps_filtered_results_for_j_navigation ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_starts_scrolling_before_cursor_reaches_view_edge ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_patch_phrase_enter_records_notepad_history ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_patch_select_enter_records_notepad_history ... ok [INFO] [stdout] test tui::tests::patch_phrase::extract_patch_phrase_reads_patch_name_and_phrase ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_allows_slash_character_in_filter_query ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_arrow_keys_switch_focus_and_preview ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_enter_inserts_preview_above_current_line_and_closes ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_filter_ctrl_a_uses_tui_textarea_default_binding ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_i_from_favorites_stays_in_patch_phrase ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_i_from_history_enters_insert_with_preview_mml ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_j_prefetches_predicted_navigation_cache ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_left_in_filter_query_does_not_repreview ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_n_p_t_switch_to_corresponding_overlays ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_j_prefetches_direction_first_then_fills_remaining_navigation_targets ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_page_down_and_page_up_move_by_visible_page ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_page_up_at_top_does_not_repreview ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_slash_then_enter_keeps_filtered_results_for_j_navigation ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_question_mark_enters_help_and_esc_returns_to_patch_phrase ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_space_replays_current_preview ... ok [INFO] [stdout] test tui::tests::normal_mode::generate_and_patch::handle_normal_r_does_not_repeat_within_the_same_filter_cycle ... ok [INFO] [stdout] test tui::tests::patch_phrase::handle_patch_phrase_starts_scrolling_before_cursor_reaches_view_edge ... ok [INFO] [stdout] test tui::tests::patch_phrase_history::record_patch_phrase_history_uses_phrase_without_embedded_json ... ok [INFO] [stdout] test tui::tests::patch_phrase_history::record_patch_phrase_history_resolves_factory_prefixed_patch_name ... ok [INFO] [stdout] test tui::tests::patch_phrase_history::record_patch_phrase_history_truncates_to_recent_100_items ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_backspace_with_empty_query_exits_filter_input ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_backspace_to_empty_keeps_filter_input_active ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_char_filters_and_previews_first_result_after_slash ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_filter_ctrl_a_uses_tui_textarea_default_binding ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_enter_exits_filter_input_and_keeps_filtered_results ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_n_p_t_switch_to_corresponding_overlays ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_question_mark_enters_help_and_esc_returns_to_patch_select ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::handle_patch_select_slash_then_chars_filter_and_preview_first_result ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_ctrl_j_moves_cursor_and_previews_destination_patch ... ok [INFO] [stdout] test tui::tests::patch_select::filter_and_modes::open_patch_select_overlay_prefills_saved_patch_filter_from_current_line ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_ctrl_p_moves_cursor_up ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_ctrl_s_toggles_sort_order_and_keeps_selected_patch ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_enter_keeps_saved_patch_filter_on_selected_patch ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_enter_primes_returned_normal_line_into_cache ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_j_and_k_move_cursor_and_preview_destination_patch ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_j_prefetches_direction_first_then_fills_remaining_navigation_targets ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_k_prefetches_page_up_before_page_down_then_far_direction_targets ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_l_moves_focus_to_favorites_and_previews_selected_patch ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_page_down_and_page_up_move_by_visible_page ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_page_down_moves_favorites_when_favorites_pane_is_focused ... ok [INFO] [stdout] test tui::tests::notepad_history::handle_notepad_history_j_prefetches_direction_first_then_fills_remaining_navigation_targets ... ok [INFO] [stdout] test tui::tests::patch_phrase_history::start_patch_phrase_migrates_existing_history_and_favorites_to_prefixed_patch_name ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_ctrl_n_and_ctrl_k_move_cursor ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::open_patch_select_overlay_selects_requested_initial_patch ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::start_patch_select_builds_favorite_items_in_registered_order ... ok [INFO] [stdout] test tui::tests::patch_select_favorites::handle_patch_select_f_adds_selected_patch_and_phrase_to_favorites ... ok [INFO] [stdout] test tui::tests::patch_select_favorites::handle_patch_select_f_moves_newly_added_patch_to_favorites_top ... ok [INFO] [stdout] test tui::tests::session::begin_playback_session_invalidates_previous_session ... ok [INFO] [stdout] test tui::tests::session::clamp_session_cursor_caps_to_last_available_line ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_starts_scrolling_before_cursor_reaches_view_edge ... ok [INFO] [stdout] test tui::tests::session::daw_mode_switch_request_can_be_consumed_from_tui_runtime ... ok [INFO] [stdout] test tui::tests::session::set_play_state_if_current_ignores_stale_session ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::help_screen_uses_light_gray_escape_hint_on_monokai_background ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::insert_and_filter_modes_use_terminal_bar_cursor ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::insert_screen_shows_insert_title_without_duplicate_line_text ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_mode_startup_prime_caches_current_line_and_navigation_targets ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::handle_patch_select_space_previews_current_selection_without_moving ... ok [INFO] [stdout] test tui::tests::patch_select::navigation_and_selection::start_patch_select_migrates_prefixed_favorites_from_legacy_patch_name ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_marks_cached_lines_with_music_note ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_cursor_uses_contrast_background_without_blink ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_marks_rendering_lines_with_dots_before_music_note ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_uses_monokai_background_and_border_color ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_shows_active_parallel_render_count_in_purple ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::status_color_uses_monokai_palette ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::normal_screen_splits_status_and_keybinds_without_line_numbers ... ok [INFO] [stdout] test tui::ui::tests::help_screens::normal_help_screen_mentions_ctrl_clipboard_shortcuts_without_overlay_keybinds ... ok [INFO] [stdout] test tui::ui::tests::colors_and_footer::patch_phrase_screen_uses_monokai_foreground_for_unfocused_list ... ok [INFO] [stdout] test tui::ui::tests::help_screens::help_overlay_size_follows_tui_help_content ... ok [INFO] [stdout] test tui::ui::tests::help_screens::notepad_history_help_screen_keeps_history_base_title_and_keybinds ... ok [INFO] [stdout] test tui::ui::tests::help_screens::patch_phrase_screen_shows_search_prompt ... ok [INFO] [stdout] test tui::ui::tests::help_screens::patch_phrase_help_screen_shows_patch_phrase_shortcuts ... ok [INFO] [stdout] test tui::ui::tests::help_screens::patch_select_help_screen_keeps_patch_select_base_title_and_keybinds ... ok [INFO] [stdout] test tui::ui::tests::help_screens::patch_select_help_screen_shows_patch_select_shortcuts ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_guide_overlay_renders_centered_message ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_guide_overlay_shows_guide_footer_keybinds ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_only_highlights_the_focused_pane ... ok [INFO] [stdout] test tui::ui::tests::help_screens::notepad_history_help_screen_shows_history_shortcuts ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_overlay_marks_cached_items_with_music_note ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_overlay_is_centered_like_daw_overlay ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_overlay_shows_left_right_pane_keybinds ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_overlay_shows_selection_title_when_filter_inactive ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_only_highlights_the_focused_pane ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_overlay_is_centered_like_other_overlays ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::notepad_history::notepad_history_overlay_renders_history_and_favorites_lists ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_screen_renders_as_overlay_on_notepad_screen ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_overlay_marks_cached_preview_items_with_music_note ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_screen_renders_history_and_favorites_lists ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_screen_keeps_status_below_overlay_panes ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_screen_uses_c_as_fallback_for_empty_lists ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_screen_shows_filter_confirm_title_when_filter_active ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_filter_uses_query_cursor_only ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_filter_focus_highlights_query_border_and_dims_both_panes ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_only_highlights_the_focused_pane ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_phrase::patch_phrase_selected_entry_uses_contrast_background_without_blink ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_overlay_uses_yellow_outer_border_and_dims_unfocused_sections ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_renders_as_overlay_on_normal_screen ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_marks_memory_cached_preview_items ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_shows_prefilled_query_when_filter_is_inactive ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_applies_initial_margin_on_first_render ... ok [INFO] [stdout] test ui_utils::tests::centered_rect_with_size_returns_zero_sized_area_unchanged ... ok [INFO] [stdout] test ui_utils::tests::centered_text_block_rect_clamps_large_content_to_area ... ok [INFO] [stdout] test ui_utils::tests::predicted_navigation_indices_in_direction_returns_two_steps ... ok [INFO] [stdout] test ui_utils::tests::predicted_navigation_indices_includes_line_and_page_destinations ... ok [INFO] [stdout] test ui_utils::tests::predicted_navigation_indices_skips_current_and_duplicates ... ok [INFO] [stdout] test ui_utils::tests::predicted_navigation_indices_with_direction_bias_orders_j_targets ... ok [INFO] [stdout] test ui_utils::tests::predicted_navigation_indices_with_direction_bias_orders_k_targets ... ok [INFO] [stdout] test updater::tests::test_check_target_returns_expected_values ... ok [INFO] [stdout] test updater::tests::test_is_valid_sha1_accepts_40_hex_chars ... ok [INFO] [stdout] test updater::tests::test_is_valid_sha1_rejects_non_hex_or_wrong_length ... ok [INFO] [stdout] test updater::tests::test_update_check_target_branch_is_main ... ok [INFO] [stdout] test updater::tests::test_update_target_returns_correct_values ... ok [INFO] [stdout] test updater::tests::test_validate_check_hash_accepts_valid_hash ... ok [INFO] [stdout] test updater::tests::test_validate_check_hash_rejects_invalid_hash ... ok [INFO] [stdout] test updater::tests::test_validate_check_hash_rejects_unknown ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_shows_filter_confirm_title_when_filter_active ... ok [INFO] [stdout] test tui::ui::tests::overlay_screens::patch_select::patch_select_screen_splits_status_and_keybinds ... ok [INFO] [stdout] test history::tests::storage_and_migration::load_daw_session_state_migrates_from_history_json ... ok [INFO] [stdout] test history::tests::storage_and_migration::load_daw_session_state_migrates_from_legacy_history_daw_json ... ok [INFO] [stdout] test history::tests::set_local_dir_envs_redirects_config_history_and_cmrt_base_dir ... ok [INFO] [stdout] test history::tests::storage_and_migration::daw_file_load_path_migrates_from_legacy_daw_json ... ok [INFO] [stdout] test history::tests::storage_and_migration::load_daw_session_state_reads_history_daw_json ... ok [INFO] [stdout] test daw::input::tests::normal::patch_tests::random_patch_selection::handle_normal_r_keeps_filter_cycle_unique_for_160_candidates ... ok [INFO] [stdout] test history::tests::storage_and_migration::save_and_load_patch_phrase_store_roundtrip ... ok [INFO] [stdout] test history::tests::storage_and_migration::load_session_state_migrates_from_legacy_data_local_history_json ... ok [INFO] [stdout] test history::tests::storage_and_migration::load_patch_phrase_store_migrates_from_legacy_patch_history_json ... ok [INFO] [stdout] test tui::tests::notepad_history_persistence::handle_notepad_history_enter_flushes_store ... ok [INFO] [stdout] test tui::tests::notepad_history_persistence::handle_notepad_history_esc_flushes_store ... ok [INFO] [stdout] test tui::tests::patch_phrase_history::patch_phrase_store_flushes_only_when_requested ... ok [INFO] [stdout] test tui::tests::session::save_history_state_persists_tui_cursor_lines_and_mode_flag ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 552 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.17s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cmrt-556645de195f861e) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test tests::check_subcommand_is_recognized ... ok [INFO] [stdout] test tests::check_subcommand_takes_precedence_over_cli_mml_mode ... ok [INFO] [stdout] test tests::check_subcommand_help_is_preserved ... ok [INFO] [stdout] test tests::server_flag_uses_default_port_when_value_is_omitted ... ok [INFO] [stdout] test tests::shutdown_flag_uses_default_port_when_value_is_omitted ... ok [INFO] [stdout] test tests::update_subcommand_takes_precedence_over_cli_mml_mode ... ok [INFO] [stdout] test tests::deprecated_mml_flag_without_value_returns_same_guidance ... ok [INFO] [stdout] test tests::subcommand_help_is_preserved ... ok [INFO] [stdout] test tests::top_level_help_uses_runtime_default_port ... ok [INFO] [stdout] test tests::update_subcommand_is_recognized ... ok [INFO] [stdout] test tests::deprecated_mml_flag_returns_guidance ... ok [INFO] [stdout] test tests::cli_mml_mode_still_accepts_regular_positional_argument ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cmrt_core-ddf443cb94214b91) [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test tests::cache_render_extracts_patch_from_embedded_json ... ok [INFO] [stdout] test tests::cache_render_prepares_inputs_with_resolved_embedded_patch ... ok [INFO] [stdout] test tests::cache_render_returns_none_when_json_patch_is_missing ... ok [INFO] [stdout] test tests::cache_render_prepare_queue_prepares_deferred_render_inputs ... ok [INFO] [stdout] test tests::reexports_patch_helpers ... ok [INFO] [stdout] test tests::mml_with_resolved_embedded_patch_keeps_core_patch_value_relative_to_base ... ok [INFO] [stdout] test tests::render_options_request_core_preroll_100ms ... ok [INFO] [stdout] test tests::native_render_probe_emits_before_and_after_for_overlapping_render ... ok [INFO] [stdout] test tests::native_render_probe_skips_logs_when_no_overlap_is_detected ... ok [INFO] [stdout] test tests::cache_render_extracts_patch_from_embedded_json_with_factory_prefix_fallback ... ok [INFO] [stdout] test tests::reexports_core_config ... ok [INFO] [stdout] test tests::requested_native_render_probe_emits_paired_logs_for_tui_overlap ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cmrt_daw_client-4fb8c102b2973bff) [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test tests::get_mml_rejects_invalid_response_body ... ok [INFO] [stdout] test tests::get_patches_reads_json_response ... ok [INFO] [stdout] test tests::new_rejects_empty_base_url ... ok [INFO] [stdout] test tests::get_mmls_reads_json_response_and_etag ... ok [INFO] [stdout] test tests::local_default_uses_known_base_url ... ok [INFO] [stdout] test tests::get_status_reads_json_response ... ok [INFO] [stdout] test tests::get_mml_reads_json_response_and_supports_init_measure_zero ... ok [INFO] [stdout] test tests::get_mmls_sends_if_none_match_and_returns_none_for_304 ... ok [INFO] [stdout] test tests::post_ab_repeat_sends_expected_request ... ok [INFO] [stdout] test tests::new_trims_whitespace_and_trailing_slashes ... ok [INFO] [stdout] test tests::get_mmls_rejects_missing_etag_header ... ok [INFO] [stdout] test tests::post_mixer_sends_expected_request ... ok [INFO] [stdout] test tests::post_daw_mode_sends_expected_request ... ok [INFO] [stdout] test tests::post_mml_rejects_unexpected_status_response_body ... ok [INFO] [stdout] test tests::post_play_start_sends_expected_request ... ok [INFO] [stdout] test tests::post_play_stop_sends_expected_request ... ok [INFO] [stdout] test tests::post_random_patch_sends_expected_request ... ok [INFO] [stdout] test tests::post_mml_sends_expected_request ... ok [INFO] [stdout] test tests::post_patch_sends_expected_request ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cmrt_runtime-e46ee2349b37672b) [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test tests::shared_patch_root_dir_returns_common_parent ... ok [INFO] [stdout] test tests::default_config_content_contains_render_server_keys ... ok [INFO] [stdout] test tests::config_parse_uses_runtime_defaults ... ok [INFO] [stdout] test tests::core_config_patch_root_dir_uses_shared_patch_root ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests clap_mml_render_tui [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cmrt_core [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cmrt_daw_client [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests cmrt_runtime [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "a82e52857652c7eae00b5feb745aba8d9e1e92c6a8a737ec65156641b6517913", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a82e52857652c7eae00b5feb745aba8d9e1e92c6a8a737ec65156641b6517913", kill_on_drop: false }` [INFO] [stdout] a82e52857652c7eae00b5feb745aba8d9e1e92c6a8a737ec65156641b6517913