[INFO] cloning repository https://github.com/Wagomu056/tudo
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Wagomu056/tudo" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWagomu056%2Ftudo", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWagomu056%2Ftudo'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 608b66d30488f2c0cf8848fe52531442be5843a3
[INFO] testing Wagomu056/tudo against beta-2026-04-21 for beta-1.96-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FWagomu056%2Ftudo" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/Wagomu056/tudo
[INFO] finished tweaking git repo https://github.com/Wagomu056/tudo
[INFO] tweaked toml for git repo https://github.com/Wagomu056/tudo written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Wagomu056/tudo 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/Wagomu056/tudo 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-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] aec2878c2988ee602243e188957a7014f4267e608294a4cb75e11322af84d096
[INFO] running `Command { std: "docker" "start" "-a" "aec2878c2988ee602243e188957a7014f4267e608294a4cb75e11322af84d096", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aec2878c2988ee602243e188957a7014f4267e608294a4cb75e11322af84d096", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aec2878c2988ee602243e188957a7014f4267e608294a4cb75e11322af84d096", kill_on_drop: false }`
[INFO] [stdout] aec2878c2988ee602243e188957a7014f4267e608294a4cb75e11322af84d096
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 7b42271c6149f5442c624628b7330e682f9fb9c95fe717021639e5ca20720be8
[INFO] running `Command { std: "docker" "start" "-a" "7b42271c6149f5442c624628b7330e682f9fb9c95fe717021639e5ca20720be8", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling directories v5.0.1
[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 serde_derive v1.0.228
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling tudo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.49s
[INFO] running `Command { std: "docker" "inspect" "7b42271c6149f5442c624628b7330e682f9fb9c95fe717021639e5ca20720be8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b42271c6149f5442c624628b7330e682f9fb9c95fe717021639e5ca20720be8", kill_on_drop: false }`
[INFO] [stdout] 7b42271c6149f5442c624628b7330e682f9fb9c95fe717021639e5ca20720be8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] e59b6dd4e9871a0d29b6e49dd5546c5d14094e74a0b759219dd6905d243db592
[INFO] running `Command { std: "docker" "start" "-a" "e59b6dd4e9871a0d29b6e49dd5546c5d14094e74a0b759219dd6905d243db592", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling tudo v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 8.73s
[INFO] running `Command { std: "docker" "inspect" "e59b6dd4e9871a0d29b6e49dd5546c5d14094e74a0b759219dd6905d243db592", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e59b6dd4e9871a0d29b6e49dd5546c5d14094e74a0b759219dd6905d243db592", kill_on_drop: false }`
[INFO] [stdout] e59b6dd4e9871a0d29b6e49dd5546c5d14094e74a0b759219dd6905d243db592
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] c6cf688fc603ba1af684e4cbc7153f2993b361ec8577b5ffadf074ca5de13027
[INFO] running `Command { std: "docker" "start" "-a" "c6cf688fc603ba1af684e4cbc7153f2993b361ec8577b5ffadf074ca5de13027", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/tudo-74d7dd8d7c3479d8)
[INFO] [stdout] 
[INFO] [stdout] running 111 tests
[INFO] [stdout] test app::tests::click_memo_switches_from_kanban ... ok
[INFO] [stdout] test app::tests::memo_create_adds_to_board ... ok
[INFO] [stdout] test app::tests::click_memo_sets_focus ... ok
[INFO] [stdout] test app::tests::click_task_switches_from_memo_to_kanban ... ok
[INFO] [stdout] test app::tests::click_task_cross_column_switches_focus ... ok
[INFO] [stdout] test app::tests::click_task_sets_focus ... ok
[INFO] [stdout] test app::tests::click_memo_updates_focused_memo ... ok
[INFO] [stdout] test app::tests::click_in_input_mode_does_not_change_focus ... ok
[INFO] [stdout] test app::tests::memo_create_focuses_new_memo ... ok
[INFO] [stdout] test app::tests::click_empty_area_no_change ... ok
[INFO] [stdout] test app::tests::memo_delete_removes_correct_item ... ok
[INFO] [stdout] test app::tests::memo_enter_from_empty_kanban_column ... ok
[INFO] [stdout] test app::tests::memo_edit_detail ... ok
[INFO] [stdout] test app::tests::memo_enter_from_kanban_bottom ... ok
[INFO] [stdout] test app::tests::memo_move_down_advances_by_memo_cols ... ok
[INFO] [stdout] test app::tests::memo_move_right_boundary_noop ... ok
[INFO] [stdout] test app::tests::memo_move_up_row_subtracts_memo_cols ... ok
[INFO] [stdout] test app::tests::test_advance_at_done_boundary_preserves_focus ... ok
[INFO] [stdout] test app::tests::memo_move_right_advances_index ... ok
[INFO] [stdout] test app::tests::test_create_task_at_top_with_mixed_statuses ... ok
[INFO] [stdout] test app::tests::test_create_task_focuses_new_task ... ok
[INFO] [stdout] test app::tests::memo_move_down_last_row_noop ... ok
[INFO] [stdout] test app::tests::memo_edit_title ... ok
[INFO] [stdout] test app::tests::test_create_task_focuses_new_task_at_top_of_column ... ok
[INFO] [stdout] test app::tests::test_advance_moves_focus_across_all_statuses ... ok
[INFO] [stdout] test app::tests::memo_move_left_boundary_noop ... ok
[INFO] [stdout] test app::tests::test_advance_status_keeps_focus_on_task ... ok
[INFO] [stdout] test app::tests::test_create_task_placed_at_top_of_column_order ... ok
[INFO] [stdout] test app::tests::test_create_task_places_at_top_of_todo ... ok
[INFO] [stdout] test app::tests::test_reorder_does_not_affect_other_columns ... ok
[INFO] [stdout] test app::tests::test_reorder_preserves_task_status ... ok
[INFO] [stdout] test app::tests::test_reorder_task_down_at_last_is_noop ... ok
[INFO] [stdout] test app::tests::test_reorder_task_up_at_first_is_noop ... ok
[INFO] [stdout] test app::tests::test_reorder_task_up_swaps_and_follows_focus ... ok
[INFO] [stdout] test app::tests::test_retreat_at_todo_boundary_preserves_focus ... ok
[INFO] [stdout] test app::tests::test_reorder_task_down_swaps_and_follows_focus ... ok
[INFO] [stdout] test app::tests::test_retreat_moves_focus_across_all_statuses ... ok
[INFO] [stdout] test app::tests::test_retreat_places_task_at_top_of_destination ... ok
[INFO] [stdout] test app::tests::test_reorder_within_status_task_map_up ... ok
[INFO] [stdout] test app::tests::test_source_column_clamped_when_last_task_moves_out ... ok
[INFO] [stdout] test app::tests::memo_delete_clamps_focus ... ok
[INFO] [stdout] test app::tests::memo_delete_last_item_leaves_empty ... ok
[INFO] [stdout] test app::tests::memo_exit_to_kanban_from_first_row ... ok
[INFO] [stdout] test app::tests::memo_move_left_decrements_index ... ok
[INFO] [stdout] test app::tests::test_advance_places_task_at_top_of_destination ... ok
[INFO] [stdout] test model::tests::clear_resets_cursor_and_buffer ... ok
[INFO] [stdout] test model::tests::cursor_stays_on_char_boundary_after_insert ... ok
[INFO] [stdout] test model::tests::delete_char_back_at_beginning_is_noop ... ok
[INFO] [stdout] test model::tests::cursor_starts_at_zero_on_default ... ok
[INFO] [stdout] test model::tests::insert_char_in_middle ... ok
[INFO] [stdout] test model::tests::delete_char_back_at_end ... ok
[INFO] [stdout] test model::tests::delete_char_back_in_middle ... ok
[INFO] [stdout] test model::tests::insert_char_at_end ... ok
[INFO] [stdout] test model::tests::delete_cjk_char_back ... ok
[INFO] [stdout] test model::tests::insert_char_at_beginning ... ok
[INFO] [stdout] test model::tests::cursor_stays_on_char_boundary_after_delete ... ok
[INFO] [stdout] test model::tests::insert_cjk_char_advances_cursor_by_utf8_len ... ok
[INFO] [stdout] test model::tests::move_end_goes_to_buffer_len ... ok
[INFO] [stdout] test model::tests::move_home_goes_to_zero ... ok
[INFO] [stdout] test model::tests::move_left_ascii ... ok
[INFO] [stdout] test model::tests::move_left_cjk ... ok
[INFO] [stdout] test model::tests::move_left_at_start_is_noop ... ok
[INFO] [stdout] test model::tests::move_right_at_end_is_noop ... ok
[INFO] [stdout] test model::tests::move_right_ascii ... ok
[INFO] [stdout] test model::tests::set_buffer_moves_cursor_to_end ... ok
[INFO] [stdout] test model::tests::move_through_mixed_text ... ok
[INFO] [stdout] test model::tests::move_right_cjk ... ok
[INFO] [stdout] test model::tests::status_task_map_new_returns_empty_lists ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_ascii_at_end ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_at_newline_char ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_ascii_no_wrap ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_cjk ... ok
[INFO] [stdout] test model::tests::status_task_map_remove_by_id_noop_when_not_found ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_cjk_mid ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_empty_buffer ... ok
[INFO] [stdout] test model::tests::set_buffer_cjk_cursor_at_end ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_start_of_second_line ... ok
[INFO] [stdout] test model::tests::status_task_map_from_flat_distributes_by_status ... ok
[INFO] [stdout] test model::tests::status_task_map_insert_at_top_places_at_index_zero ... ok
[INFO] [stdout] test model::tests::status_task_map_remove_by_id_removes_correct_task ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_with_newline ... ok
[INFO] [stdout] test ui::tests::cursor_visual_pos_wraps_to_next_row ... ok
[INFO] [stdout] test ui::tests::truncate_ascii_adds_ellipsis ... ok
[INFO] [stdout] test ui::tests::truncate_ascii_short_no_truncation ... ok
[INFO] [stdout] test ui::tests::truncate_cjk_exact_fit ... ok
[INFO] [stdout] test ui::tests::truncate_ascii_exact_width ... ok
[INFO] [stdout] test ui::tests::truncate_cjk_respects_double_width ... ok
[INFO] [stdout] test ui::tests::truncate_empty_string ... ok
[INFO] [stdout] test ui::tests::truncate_mixed_ascii_and_cjk ... ok
[INFO] [stdout] test ui::tests::wrap_ascii_short_no_wrap ... ok
[INFO] [stdout] test ui::tests::wrap_ascii_exact_width ... ok
[INFO] [stdout] test ui::tests::wrap_ascii_splits ... ok
[INFO] [stdout] test ui::tests::wrap_cjk_boundary_breaks_before_overflow ... ok
[INFO] [stdout] test ui::tests::wrap_cjk_exact_width ... ok
[INFO] [stdout] test ui::tests::wrap_cjk_respects_double_width ... ok
[INFO] [stdout] test ui::tests::wrap_lines_ascii_multiline ... ok
[INFO] [stdout] test ui::tests::wrap_lines_cjk_exactly_fills_width_no_extra_wrap ... ok
[INFO] [stdout] test ui::tests::wrap_empty_string ... ok
[INFO] [stdout] test url::tests::simulate_wrap_short_line_no_wrap ... ok
[INFO] [stdout] test url::tests::simulate_wrap_wraps_at_word_boundary ... ok
[INFO] [stdout] test ui::tests::wrap_zero_width_returns_whole_string ... ok
[INFO] [stdout] test url::tests::simulate_wrap_line_exactly_at_width ... ok
[INFO] [stdout] test ui::tests::wrap_lines_cjk_at_boundary_1col_remaining_wraps ... ok
[INFO] [stdout] test ui::tests::wrap_lines_mixed_multiline ... ok
[INFO] [stdout] test ui::tests::wrap_lines_single_line_unchanged ... ok
[INFO] [stdout] test url::tests::simulate_wrap_multi_word_wraps_twice ... ok
[INFO] [stdout] test ui::tests::wrap_mixed_ascii_and_cjk ... ok
[INFO] [stdout] test app::tests::test_retreat_status_keeps_focus_on_task ... ok
[INFO] [stdout] test ui::tests::wrap_lines_cjk_multiline ... ok
[INFO] [stdout] test app::tests::memo_create_empty_title_rejected ... ok
[INFO] [stdout] test app::tests::test_reorder_within_status_task_map_down ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 111 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/tudo-fc97db06c7d05f61)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test tests::test_m_key_idempotent_when_memo_focused ... ok
[INFO] [stdout] test tests::test_t_key_focuses_kanban ... ok
[INFO] [stdout] test tests::test_t_key_idempotent_when_kanban_focused ... ok
[INFO] [stdout] test tests::test_m_key_focuses_memo ... 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]      Running tests/model_tests.rs (/opt/rustwide/target/debug/deps/model_tests-8072fd8c908ceb5f)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test advance_status_done_is_noop ... ok
[INFO] [stdout] test advance_status_todo_to_doing ... ok
[INFO] [stdout] test boardstate_next_id_greater_than_all_task_ids ... ok
[INFO] [stdout] test board_state_missing_memos_field_deserializes_to_empty ... ok
[INFO] [stdout] test boardstate_version_is_one ... ok
[INFO] [stdout] test focused_task_returns_correct_task ... ok
[INFO] [stdout] test delete_focused_card_removes_task ... ok
[INFO] [stdout] test input_state_clear_resets_buffer ... ok
[INFO] [stdout] test board_state_with_memos_round_trips ... ok
[INFO] [stdout] test focused_task_returns_none_on_empty_column ... ok
[INFO] [stdout] test appstate_new_has_empty_clickable_urls ... ok
[INFO] [stdout] test input_state_pop_char_removes_last ... ok
[INFO] [stdout] test input_state_push_char_appends ... ok
[INFO] [stdout] test memo_new_has_correct_fields ... ok
[INFO] [stdout] test retreat_status_doing_to_todo ... ok
[INFO] [stdout] test input_state_pop_char_no_op_when_empty ... ok
[INFO] [stdout] test status_next_done_is_none ... ok
[INFO] [stdout] test status_next_doing_to_checking ... ok
[INFO] [stdout] test status_prev_todo_is_none ... ok
[INFO] [stdout] test retreat_status_todo_is_noop ... ok
[INFO] [stdout] test status_prev_done_to_checking ... ok
[INFO] [stdout] test url_hit_region_derives_debug_clone_partialeq ... ok
[INFO] [stdout] test tasks_for_column_returns_only_matching_status ... ok
[INFO] [stdout] test url_hit_region_fields_accessible ... ok
[INFO] [stdout] test status_next_todo_to_doing ... ok
[INFO] [stdout] test task_title_must_not_be_empty ... ok
[INFO] [stdout] test status_next_checking_to_done ... ok
[INFO] [stdout] test status_prev_checking_to_doing ... ok
[INFO] [stdout] test task_title_valid_when_non_empty ... ok
[INFO] [stdout] test status_prev_doing_to_todo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/storage_tests.rs (/opt/rustwide/target/debug/deps/storage_tests-5457d2ed9d6b0d39)
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test daily_filter_removes_done_tasks_from_previous_days ... ok
[INFO] [stdout] test load_board_errors_on_corrupt_json ... ok
[INFO] [stdout] test save_and_load_board_round_trip ... ok
[INFO] [stdout] test append_done_entry_writes_two_json_lines ... ok
[INFO] [stdout] test board_state_tasks_round_trip_across_multiple_statuses ... ok
[INFO] [stdout] test resolve_data_dir_returns_ok ... ok
[INFO] [stdout] test resolve_data_dir_returns_same_path_on_repeated_calls ... ok
[INFO] [stdout] test load_board_returns_default_when_file_missing ... ok
[INFO] [stdout] test append_done_entry_writes_to_data_dir_not_cwd ... ok
[INFO] [stdout] test save_board_writes_to_data_dir_not_cwd ... ok
[INFO] [stdout] test load_board_reads_from_data_dir ... ok
[INFO] [stdout] test legacy_flat_json_loads_and_distributes_by_status ... ok
[INFO] [stdout] test save_and_load_board_with_memos ... ok
[INFO] [stdout] test save_and_load_round_trip_via_data_dir ... ok
[INFO] [stdout] test resolve_data_dir_creates_directory ... ok
[INFO] [stdout] test resolve_data_dir_path_ends_with_tudo ... ok
[INFO] [stderr]      Running tests/url_tests.rs (/opt/rustwide/target/debug/deps/url_tests-52712b74460e10f4)
[INFO] [stdout] test todo_order_preserved_through_serialization_round_trip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test detail_url_regions_no_wrap_single_region ... ok
[INFO] [stdout] test extract_http_scheme ... ok
[INFO] [stdout] test detail_url_regions_url_spanning_line_break_two_regions ... ok
[INFO] [stdout] test extract_no_url_returns_empty ... ok
[INFO] [stdout] test extract_url_at_end ... ok
[INFO] [stdout] test extract_plain_url_in_middle ... ok
[INFO] [stdout] test extract_url_strips_trailing_period ... ok
[INFO] [stdout] test handle_left_click_non_url_no_status_msg ... ok
[INFO] [stdout] test extract_url_at_start ... ok
[INFO] [stdout] test extract_url_in_parens_matched ... ok
[INFO] [stdout] test extract_url_unmatched_close_paren_terminates ... ok
[INFO] [stdout] test list_item_url_regions_correct_fields ... ok
[INFO] [stdout] test extract_url_with_query_and_fragment ... ok
[INFO] [stdout] test handle_left_click_preserves_focused_col_and_card ... ok
[INFO] [stdout] test open_url_returns_ok_for_valid_https ... ok
[INFO] [stdout] test handle_left_click_opens_url_on_hit ... ok
[INFO] [stderr]    Doc-tests tudo
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr] /usr/bin/xdg-open: 882: www-browser: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: www-browser: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links2: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links2: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: elinks: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: elinks: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: lynx: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: lynx: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: w3m: not found
[INFO] [stderr] xdg-open: no method available for opening 'https://x.com'
[INFO] [stderr] /usr/bin/xdg-open: 882: www-browser: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: w3m: not found
[INFO] [stderr] xdg-open: no method available for opening 'https://x.com'
[INFO] [stderr] /usr/bin/xdg-open: 882: links2: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: elinks: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: links: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: lynx: not found
[INFO] [stderr] /usr/bin/xdg-open: 882: w3m: not found
[INFO] [stderr] xdg-open: no method available for opening 'https://example.com'
[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" "c6cf688fc603ba1af684e4cbc7153f2993b361ec8577b5ffadf074ca5de13027", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6cf688fc603ba1af684e4cbc7153f2993b361ec8577b5ffadf074ca5de13027", kill_on_drop: false }`
[INFO] [stdout] c6cf688fc603ba1af684e4cbc7153f2993b361ec8577b5ffadf074ca5de13027
