[INFO] cloning repository https://github.com/wegel/carlos [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wegel/carlos" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwegel%2Fcarlos", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwegel%2Fcarlos'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a8c0ca905b88e33bd6bd6650481e2f2f9e81e410 [INFO] testing wegel/carlos against 1.98.0-beta.6+cargoflags=--release for beta-1.98-release-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwegel%2Fcarlos" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/wegel/carlos [INFO] finished tweaking git repo https://github.com/wegel/carlos [INFO] tweaked toml for git repo https://github.com/wegel/carlos written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/wegel/carlos on toolchain 1.98.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/wegel/carlos already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:00c5645b54fe3ce5dae1417175e3c7fb6a6646c021d554ecd63a097b8b9f3602" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0 [INFO] running `Command { std: "docker" "start" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling allocator-api2 v0.2.21 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling winnow v1.0.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling unicode-truncate v2.0.1 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling onig_sys v69.9.1 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling pin-project-lite v0.2.17 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling foldhash v0.1.5 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling pulldown-cmark v0.13.1 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling yaml-rust v0.4.5 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling plist v1.8.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling simdutf8 v0.1.5 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling unicode-linebreak v0.1.5 [INFO] [stderr] Compiling smawk v0.3.2 [INFO] [stderr] Compiling textwrap v0.16.2 [INFO] [stderr] Compiling onig v6.5.1 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling ansi-to-tui v8.0.1 [INFO] [stderr] Compiling ratatui-textarea v0.8.0 [INFO] [stderr] Compiling syntect v5.3.0 [INFO] [stderr] Compiling ratatui-interact v0.2.0 [INFO] [stderr] Compiling tui-markdown v0.3.7 (https://github.com/lightsofapollo/tui-markdown.git?rev=819cbca7675178947357a88e9e4a007bfb085ccf#819cbca7) [INFO] [stderr] Compiling carlos v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 59s [INFO] running `Command { std: "docker" "inspect" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling carlos v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 42.49s [INFO] running `Command { std: "docker" "inspect" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.6" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.24s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/release/deps/carlos-6307efbc27149dda) [INFO] [stdout] [INFO] [stdout] running 277 tests [INFO] [stdout] test app::tests::claude_backend_tests::build_claude_command_allows_plan_mode_when_opted_in ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_model_catalog_includes_current_claude_code_models ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_recovery_launch_mode_falls_back_without_live_session_id ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_recovery_launch_mode_prefers_live_session_id ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_project_dir_name_encodes_current_worktree_path ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_exit_plan_follow_up_text_matches_accept_and_decline ... ok [INFO] [stdout] test app::tests::claude_backend_tests::build_claude_command_disallows_plan_mode_by_default ... ok [INFO] [stdout] test app::tests::claude_backend_tests::claude_model_catalog_includes_all_supported_efforts ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_ignores_malformed_tool_result_after_pending_exit_plan ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_follows_latest_active_branch ... ok [INFO] [stdout] test app::tests::claude_backend_tests::live_claude_item_ids_are_unique_across_process_respawns ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_hides_internal_plan_mode_tool_rows ... ok [INFO] [stdout] test app::tests::claude_backend_tests::load_claude_local_history_uses_tilde_claude_config_dir ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_imports_user_assistant_and_tool_items ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_clears_pending_exit_plan_when_session_progresses ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_continue_is_disabled_without_authoritative_session_id ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_recovers_context_usage_from_hinted_assistant_usage ... ok [INFO] [stdout] test app::tests::claude_backend_tests::fork_claude_local_history_branches_from_selected_prefix ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_recovers_pending_exit_plan_approval ... ok [INFO] [stdout] test app::tests::claude_backend_tests::parse_cli_args_supports_backend_flag ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_returns_none_when_session_file_is_missing ... ok [INFO] [stdout] test app::tests::claude_backend_tests::parse_cli_args_uses_backend_env_default ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_skips_context_usage_without_authoritative_window ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_ignores_synthetic_interrupt_records ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_keeps_pending_exit_plan_when_later_tool_result_shares_record ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_returns_none_for_partially_malformed_jsonl ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_returns_none_when_session_file_cannot_be_opened ... ok [INFO] [stdout] test app::tests::claude_backend_tests::local_claude_history_returns_none_for_malformed_jsonl ... ok [INFO] [stdout] test app::tests::claude_backend_tests::session_misroute_event_surfaces_as_error_with_expected_and_actual_ids ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_appends_user_message_for_claude_start ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_does_not_queue_behind_delayed_ralph_continuation ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_marks_claude_turn_active_immediately ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_queues_behind_existing_claude_turns ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_sends_claude_steer_when_turn_active ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_backfills_existing_history_for_claude_start ... ok [INFO] [stdout] test app::tests::claude_backend_tests::submit_turn_text_skips_history_for_internal_claude_turns ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_assistant_snapshot_backfills_missing_text_blocks ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_assistant_snapshot_does_not_duplicate_streamed_text ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_bash_tool_result_emits_tool_call_and_tool_output_rows ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_hides_internal_agent_and_plan_write_tools ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_result_prefers_model_usage_when_available ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_system_init_does_not_export_backend_model ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_usage_without_window_hint_skips_token_update ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translated_claude_init_preserves_selected_runtime_settings ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_exit_plan_fallback_emits_pending_approval_request ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_hides_plan_write_tools_under_tilde_config_dir ... ok [INFO] [stdout] test app::tests::input_tests::apply_mobile_mouse_scroll_honors_invert_toggle ... ok [INFO] [stdout] test app::tests::input_tests::apply_mobile_mouse_scroll_uses_natural_touch_direction ... ok [INFO] [stdout] test app::tests::input_tests::can_submit_queued_turn_only_blocks_on_pending_server_output ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_plain_pending_new_gesture_keeps_prior_direction ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_does_not_swallow_plain_digits ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_assistant_snapshot_emits_follow_up_message_after_tool_result ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_plain_pending_repeated_pair_reuses_direction ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_plain_pending_pair_applies_scroll ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_applies_scroll_on_terminator ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_requires_prefix_to_activate ... ok [INFO] [stdout] test app::tests::input_tests::context_label_reserved_cells_expands_for_longer_labels ... ok [INFO] [stdout] test app::tests::input_tests::context_label_reserved_cells_uses_fixed_minimum ... ok [INFO] [stdout] test app::tests::input_tests::context_usage_label_formats_k_and_percent ... ok [INFO] [stdout] test app::tests::input_tests::ctrl_d_restarts_dictation_while_transcribing ... ok [INFO] [stdout] test app::tests::input_tests::ctrl_d_toggles_dictation_recording_to_transcribing ... ok [INFO] [stdout] test app::tests::input_tests::decide_mouse_drag_mode_prefers_scroll_for_vertical_swipe ... ok [INFO] [stdout] test app::tests::input_tests::consume_mobile_mouse_char_accepts_csi_bracket_prefix ... ok [INFO] [stdout] test app::tests::input_tests::duration_samples_tracks_percentiles_and_window ... ok [INFO] [stdout] test app::tests::input_tests::dictation_profile_picker_state_is_tracked ... ok [INFO] [stdout] test app::tests::claude_backend_tests::translate_claude_text_turn_emits_codex_style_notifications ... ok [INFO] [stdout] test app::tests::input_tests::dictation_final_text_commits_and_returns_to_idle ... ok [INFO] [stdout] test app::tests::input_tests::dictation_does_not_start_during_active_turn ... ok [INFO] [stdout] test app::tests::input_tests::enter_stops_dictation_recording_to_transcribing ... ok [INFO] [stdout] test app::tests::input_tests::escape_cancels_recording_and_transcribing ... ok [INFO] [stdout] test app::tests::input_tests::escape_key_disables_ralph_mode ... ok [INFO] [stdout] test app::tests::input_tests::f9_toggles_dictation_endpoint_mode ... ok [INFO] [stdout] test app::tests::input_tests::is_key_press_like_accepts_repeat ... ok [INFO] [stdout] test app::tests::input_tests::is_newline_enter_accepts_shift_and_alt ... ok [INFO] [stdout] test app::tests::input_tests::mobile_mouse_key_candidate_accepts_plain_coords_when_pending ... ok [INFO] [stdout] test app::tests::input_tests::missing_dictation_model_reports_error_without_recording ... ok [INFO] [stdout] test app::tests::input_tests::mobile_mouse_key_candidate_accepts_alt_prefixed_csi_chars ... ok [INFO] [stdout] test app::tests::input_tests::model_settings_can_toggle_dictation_endpoint_mode ... ok [INFO] [stdout] test app::tests::input_tests::normalize_pasted_text_converts_crlf_and_cr ... ok [INFO] [stdout] test app::tests::input_tests::parse_mobile_mouse_coords_accepts_plain_and_sgr_fragments ... ok [INFO] [stdout] test app::tests::input_tests::pending_claude_exit_plan_accept_uses_approval_path_not_chat_input ... ok [INFO] [stdout] test app::tests::input_tests::parse_repeated_plain_mobile_pair_accepts_concatenated_repetition ... ok [INFO] [stdout] test app::tests::input_tests::perf_metrics_tracks_repeat_transition_buckets ... ok [INFO] [stdout] test app::tests::input_tests::is_priority_server_line_identifies_control_notifications ... ok [INFO] [stdout] test app::tests::input_tests::kitt_head_index_bounces_across_separator ... ok [INFO] [stdout] test app::tests::claude_backend_tests::probe_claude_startup_reports_early_stderr_exit ... ok [INFO] [stdout] test app::tests::input_tests::perf_metrics_overlay_lines_include_latency_rows ... ok [INFO] [stdout] test app::tests::input_tests::prioritize_events_handles_terminal_first_and_budgets_server_lines ... ok [INFO] [stdout] test app::tests::input_tests::prioritize_events_drains_deferred_server_lines_without_new_input ... ok [INFO] [stdout] test app::tests::input_tests::prioritize_events_promotes_turn_completed_even_when_budget_is_zero ... ok [INFO] [stdout] test app::tests::input_tests::submit_rewind_turn_text_forks_codex_thread_before_resubmitting ... ok [INFO] [stdout] test app::tests::notification_tests::append_history_from_thread_includes_context_compaction_marker ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_codex_event_token_count_ignores_null_info ... ok [INFO] [stdout] test app::tests::notification_tests::claude_exit_plan_approval_response_supports_accept_and_decline ... ok [INFO] [stdout] test app::tests::notification_tests::append_history_from_thread_preserves_agent_commentary_phase ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_codex_event_token_count_sets_context_usage ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_codex_event_turn_diff_adds_diff_message ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_item_completed_context_compaction_appends_marker ... ok [INFO] [stdout] test app::tests::notification_tests::append_turn_interrupted_marker_is_deduplicated ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_raw_function_call_renders_tool_call ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_compacted_appends_system_marker ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_item_completed_reasoning_replaces_live_delta_with_summary_objects ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_compacted_clears_context_usage ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_initialized_clears_context_usage_when_thread_changes ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_initialized_preserves_existing_effort_when_only_model_arrives ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_raw_function_call_output_diff_is_rendered_as_diff ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_initialized_preserves_context_usage_for_same_thread ... ok [INFO] [stdout] test app::tests::notification_tests::append_history_from_thread_reads_reasoning_summary_text_objects ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_raw_function_call_output_updates_existing_call ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_initialized_updates_thread_id ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_token_count_prefers_last_when_total_exceeds_window ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_token_usage_updated_sets_context_usage ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_turn_completed_interrupted_appends_system_message ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_thread_token_usage_prefers_last_when_total_exceeds_window ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_turn_diff_updated_upserts_diff_message ... ok [INFO] [stdout] test app::tests::notification_tests::incoming_agent_delta_does_not_reenable_auto_follow_when_scrolled_up ... ok [INFO] [stdout] test app::tests::notification_tests::handle_server_request_claude_exit_plan_sets_pending_approval ... ok [INFO] [stdout] test app::tests::notification_tests::handle_notification_updates_context_usage_when_present ... ok [INFO] [stdout] test app::tests::notification_tests::handle_server_request_command_execution_sets_pending_approval ... ok [INFO] [stdout] test app::tests::notification_tests::item_started_agent_message_uses_commentary_role_when_phase_present ... ok [INFO] [stdout] test app::tests::notification_tests::load_history_does_not_seed_context_usage_from_start_response ... ok [INFO] [stdout] test app::tests::notification_tests::load_history_seeds_input_history_from_user_messages ... ok [INFO] [stdout] test app::tests::notification_tests::permissions_approval_response_allows_turn_or_session_grant ... ok [INFO] [stdout] test app::tests::notification_tests::raw_function_call_dedupes_with_command_execution_item_started ... ok [INFO] [stdout] test app::tests::notification_tests::turn_completed_keeps_pending_claude_exit_plan_approval ... ok [INFO] [stdout] test app::tests::notification_tests::unsupported_server_request_returns_jsonrpc_error_action ... ok [INFO] [stdout] test app::tests::runtime_tests::apply_model_settings_omits_summary_when_backend_does_not_support_it ... ok [INFO] [stdout] test app::tests::runtime_tests::apply_model_settings_returns_defaults_for_persistence ... ok [INFO] [stdout] test app::tests::runtime_tests::backend_runtime_settings_drop_summary_when_backend_cannot_use_it ... ok [INFO] [stdout] test app::tests::runtime_tests::backend_runtime_settings_keep_compatible_model_and_clamp_effort ... ok [INFO] [stdout] test app::tests::runtime_tests::backend_runtime_settings_keep_gpt56_ultra_effort ... ok [INFO] [stdout] test app::tests::runtime_tests::backend_runtime_settings_replace_incompatible_persisted_model ... ok [INFO] [stdout] test app::tests::runtime_tests::claude_startup_defaults_use_opus_xhigh_without_summary ... ok [INFO] [stdout] test app::tests::runtime_tests::codex_model_catalog_includes_gpt56_family_with_extended_efforts ... ok [INFO] [stdout] test app::tests::runtime_tests::codex_model_catalog_refreshes_stale_gpt56_efforts ... ok [INFO] [stdout] test app::tests::runtime_tests::codex_startup_defaults_use_gpt55_high_concise ... ok [INFO] [stdout] test app::tests::runtime_tests::delayed_ralph_continuation_does_not_block_ready_user_turns ... ok [INFO] [stdout] test app::tests::runtime_tests::commentary_blocked_marker_disables_ralph_mode_immediately ... ok [INFO] [stdout] test app::tests::runtime_tests::detect_turn_markers_matches_inline_marker_tokens ... ok [INFO] [stdout] test app::tests::runtime_tests::detect_turn_markers_matches_trimmed_commentary_marker_lines ... ok [INFO] [stdout] test app::tests::runtime_tests::next_turn_runtime_settings_falls_back_to_current_values ... ok [INFO] [stdout] test app::tests::runtime_tests::osc52_generates_both_clipboard_targets ... ok [INFO] [stdout] test app::tests::runtime_tests::osc52_screen_sequence_uses_dcs_wrapper ... ok [INFO] [stdout] test app::tests::runtime_tests::osc52_wrap_detects_tmux_and_screen ... ok [INFO] [stdout] test app::tests::runtime_tests::params_thread_archive_includes_thread_id ... ok [INFO] [stdout] test app::tests::runtime_tests::params_turn_start_includes_model_effort_and_summary_when_set ... ok [INFO] [stdout] test app::tests::runtime_tests::params_turn_start_omits_model_effort_and_summary_when_missing ... ok [INFO] [stdout] test app::tests::runtime_tests::next_turn_runtime_settings_prefers_pending_over_current_values ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_cli_args_supports_dictation_profile ... ok [INFO] [stdout] test app::tests::runtime_tests::osc52_tmux_sequence_uses_passthrough_and_escaped_esc ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_cli_args_supports_perf_session_mode ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_cli_args_supports_continue_mode ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_cli_args_supports_synthetic_perf_session_mode ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_thread_list_reads_session_summary_fields ... ok [INFO] [stdout] test app::tests::runtime_tests::pending_ralph_continuation_becomes_ready_after_deadline ... ok [INFO] [stdout] test app::tests::runtime_tests::promoted_ralph_continuation_still_counts_as_pending_until_sent ... ok [INFO] [stdout] test app::tests::runtime_tests::queued_user_turns_record_history_but_ralph_turns_do_not ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_thread_runtime_settings_reads_model_and_effort ... ok [INFO] [stdout] test app::tests::runtime_tests::load_claude_thread_summaries_reads_local_session_metadata ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_cli_args_supports_ralph_resume_and_markers ... ok [INFO] [stdout] test app::tests::runtime_tests::request_ralph_toggle_defers_while_turn_active ... ok [INFO] [stdout] test app::tests::runtime_tests::parse_thread_runtime_settings_accepts_effort_alias ... ok [INFO] [stdout] test app::tests::runtime_tests::ralph_interrupted_turn_does_not_queue_continuation ... ok [INFO] [stdout] test app::tests::runtime_tests::ralph_turn_completion_disables_ralph_mode ... ok [INFO] [stdout] test app::tests::runtime_tests::ralph_turn_completion_disables_ralph_mode_on_blocked_marker ... ok [INFO] [stdout] test app::tests::runtime_tests::ralph_turn_completion_queues_continuation_when_not_blocked_or_complete ... ok [INFO] [stdout] test app::tests::runtime_tests::ready_ralph_continuation_stays_ahead_of_later_user_turns ... ok [INFO] [stdout] test app::tests::runtime_tests::resolve_initial_runtime_settings_falls_back_to_persisted_defaults ... ok [INFO] [stdout] test app::tests::runtime_tests::request_ralph_toggle_enables_and_disables_when_idle ... ok [INFO] [stdout] test app::tests::runtime_tests::resume_hint_formats_resume_command ... ok [INFO] [stdout] test app::tests::runtime_tests::runtime_settings_label_omits_missing_trailing_fields ... ok [INFO] [stdout] test app::tests::runtime_tests::sort_threads_for_picker_prefers_most_recent_update_first ... ok [INFO] [stdout] test app::tests::runtime_tests::ssh_detection_works ... ok [INFO] [stdout] test app::tests::runtime_tests::styled_resume_hint_colors_only_command_line ... ok [INFO] [stdout] test app::tests::runtime_tests::runtime_defaults_round_trip_json_file ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_nl_sed_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_rg_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_rtk_nl_sed_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_rtk_proxy_semeja_related_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::runtime_tests::synthetic_perf_messages_change_with_seed ... ok [INFO] [stdout] test app::tests::runtime_tests::runtime_settings_label_shows_pending_summary_override ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_sed_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_semeja_related_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_semeja_search_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_generic_shell_rtk_semeja_search_is_summarized_as_search ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_parsed_edit_type_is_summarized_as_edit ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_read_override_suppresses_large_read_output_on_success ... ok [INFO] [stdout] test app::tests::runtime_tests::synthetic_perf_messages_are_reproducible ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_search_override_suppresses_large_output_on_success ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_search_override_kept_on_error_with_output ... ok [INFO] [stdout] test app::tests::tool_tests::exec_command_end_shell_git_diff_is_summarized_as_diff ... ok [INFO] [stdout] test app::tests::tool_tests::format_command_execution_call_rewrites_ssh_transport_as_remote_exec ... ok [INFO] [stdout] test app::tests::tool_tests::format_command_execution_call_uses_action_command ... ok [INFO] [stdout] test app::tests::tool_tests::format_command_execution_output_uses_aggregated_output ... ok [INFO] [stdout] test app::tests::tool_tests::format_tool_item_read_call_shows_offset_bracket ... ok [INFO] [stdout] test app::tests::tool_tests::format_tool_item_collects_stdout_stderr_and_exit_code ... ok [INFO] [stdout] test app::tests::tool_tests::format_tool_item_run_style_from_command_fields ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_bare_pipe_does_not_panic ... ok [INFO] [stdout] test app::tests::tool_tests::format_command_execution_output_rewrites_ssh_transport_as_remote_exec ... ok [INFO] [stdout] test app::tests::tool_tests::format_command_execution_output_preserves_sgr_sequences_but_strips_control_noise ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_command_execution_diff_output_renders_diff_message_kind ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_pipeline_with_empty_rhs_does_not_panic ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_rg_falls_back_to_search_summary_without_exec_command_end ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_sed_falls_back_to_search_summary_without_exec_command_end ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_semeja_falls_back_to_search_summary_without_exec_command_end ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_nl_sed_pipeline_falls_back_to_search_summary_without_exec_command_end ... ok [INFO] [stdout] test app::tests::tool_tests::parse_ssh_remote_command_extracts_destination_and_payload ... ok [INFO] [stdout] test app::tests::tool_tests::item_completed_shell_rg_multi_path_falls_back_to_search_summary_without_exec_command_end ... ok [INFO] [stdout] test app::tests::tool_tests::strip_terminal_controls_preserving_sgr_handles_unknown_escape_before_unicode ... ok [INFO] [stdout] test app::tests::tool_tests::strip_terminal_controls_preserving_sgr_removes_control_noise ... ok [INFO] [stdout] test app::tests::tool_tests::strip_terminal_controls_removes_sgr_sequences_too ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_diff_styles_added_and_removed_lines ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_diff_viewer_hides_raw_hunk_headers ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_expands_user_tabs_for_display ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_diff_viewer_wraps_long_hunk_body_lines ... ok [INFO] [stdout] test app::tests::ui_render_tests::append_message_does_not_coalesce_read_summaries_across_other_messages ... ok [INFO] [stdout] test app::tests::ui_render_tests::append_message_coalesces_successive_read_summaries ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_groups_commentary_with_following_tool_call ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_inserts_separator_rows_between_messages ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_reasoning_uses_markdown_text_without_markers ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_renders_commentary_as_preamble ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_skips_empty_placeholders_and_their_separators ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_tool_output_multiline_has_no_indent ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_tool_output_uses_ansi_styles_without_escape_text ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_with_hidden_omits_selected_user_message ... ok [INFO] [stdout] test app::tests::ui_render_tests::compute_input_layout_wraps_input_at_word_boundaries ... ok [INFO] [stdout] test app::tests::ui_render_tests::command_execution_diff_output_detects_unified_diff ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_renders_assistant_tables ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_user_code_block_adds_spacing_and_background ... ok [INFO] [stdout] test app::tests::ui_render_tests::count_rendered_block_for_ansi_tool_output_matches_materialized_block_len ... ok [INFO] [stdout] test app::tests::ui_render_tests::draw_rendered_line_renders_uncovered_styled_tail ... ok [INFO] [stdout] test app::tests::ui_render_tests::draw_picker_delete_dialog_shows_prompt_and_session_id ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_hides_markdown_fence_delimiters ... ok [INFO] [stdout] test app::tests::ui_render_tests::count_rendered_block_for_diff_matches_materialized_block_len ... ok [INFO] [stdout] test app::tests::ui_render_tests::count_rendered_block_for_plain_tool_output_matches_materialized_block_len ... ok [INFO] [stdout] test app::tests::ui_render_tests::ensure_rendered_lines_non_user_fence_counts_match_rendered_block ... ok [INFO] [stdout] test app::tests::ui_render_tests::compute_selection_range_normalizes_reversed_coordinates ... ok [INFO] [stdout] test app::tests::ui_render_tests::ensure_rendered_lines_incremental_agent_delta_matches_full_rebuild ... ok [INFO] [stdout] test app::tests::ui_render_tests::ensure_rendered_lines_incremental_append_matches_full_rebuild ... ok [INFO] [stdout] test app::tests::ui_render_tests::esc_chord_triggers_on_second_press_within_window ... ok [INFO] [stdout] test app::tests::ui_render_tests::extract_diff_blocks_reads_nested_metadata_files ... ok [INFO] [stdout] test app::tests::ui_render_tests::normalize_styled_segments_for_part_falls_back_on_mismatch ... ok [INFO] [stdout] test app::tests::ui_render_tests::esc_chord_expires_after_window ... ok [INFO] [stdout] test app::tests::ui_render_tests::input_cursor_visual_position_tracks_wrapped_rows ... ok [INFO] [stdout] test app::tests::ui_render_tests::params_turn_interrupt_includes_thread_and_turn_id ... ok [INFO] [stdout] test app::tests::ui_render_tests::reasoning_summary_delta_inserts_newline_between_bold_chunks ... ok [INFO] [stdout] test app::tests::ui_render_tests::reasoning_summary_delta_normalizes_split_adjacent_bold_chunks ... ok [INFO] [stdout] test app::tests::ui_render_tests::record_input_history_backfills_pending_message_index ... ok [INFO] [stdout] test app::tests::ui_render_tests::reasoning_summary_delta_trims_space_before_split_closing_marker ... ok [INFO] [stdout] test app::tests::ui_render_tests::rewind_edit_keeps_selected_anchor_for_fork ... ok [INFO] [stdout] test app::tests::ui_render_tests::input_history_up_down_cycles_and_restores_draft ... ok [INFO] [stdout] test app::tests::ui_render_tests::input_history_up_noops_when_empty ... ok [INFO] [stdout] test app::tests::ui_render_tests::render_main_view_shows_dictation_indicator_with_ralph_label ... ok [INFO] [stdout] test app::tests::ui_render_tests::render_main_view_shows_dictation_indicator_in_rewind_mode ... ok [INFO] [stdout] test app::tests::ui_render_tests::render_main_view_shows_dictation_indicator ... ok [INFO] [stdout] test app::tests::ui_render_tests::rewind_mode_populates_latest_history_and_restores_draft ... ok [INFO] [stdout] test app::tests::ui_render_tests::rewind_fork_drops_selected_message_and_newer_history ... ok [INFO] [stdout] test app::tests::ui_render_tests::rewind_scroll_aligns_to_selected_prompt_history_position ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_does_not_insert_space_into_hard_wrapped_long_token ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_keeps_newline_on_hard_break_rows ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_restores_space_for_soft_wrapped_words ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_soft_wrapped_commentary_strips_prefix_and_restores_space ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_joins_soft_wrapped_rows_without_newline ... ok [INFO] [stdout] test app::tests::ui_render_tests::shift_selection_focus_extends_copy_beyond_visible_screen ... ok [INFO] [stdout] test app::tests::ui_render_tests::widechar_selection_uses_cell_offsets ... ok [INFO] [stdout] test app::tests::ui_render_tests::set_command_override_coalesces_with_previous_read_summary ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_input_line_count_matches_wrapped_output_len ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_keeps_left_padding_in_selection ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_natural_by_cells_keeps_trailing_space_visible ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_input_line_uses_natural_word_wrapping ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_natural_by_cells_prefers_word_boundaries ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_natural_count_by_cells_matches_wrapped_output_len ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_natural_by_cells_expands_tabs_for_display_width ... ok [INFO] [stdout] test app::tests::ui_render_tests::selected_text_preserves_reasoning_heading_and_paragraph_breaks ... ok [INFO] [stdout] test app::tests::ui_render_tests::wrap_input_line_keeps_trailing_space_visible ... ok [INFO] [stdout] test app::tests::ui_render_tests::build_rendered_lines_styles_assistant_code_lines ... ok [INFO] [stdout] test app::tests::claude_backend_tests::probe_claude_startup_accepts_first_stdout_line ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 277 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.03s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0", kill_on_drop: false }` [INFO] [stdout] f8fd0eb45cb196207c86246f4902861d57de8a00b701c8058f0875f5694f3cc0