[INFO] fetching crate agentty 0.5.1...
[INFO] testing agentty-0.5.1 against beta-2026-03-05 for beta-1.95-1
[INFO] extracting crate agentty 0.5.1 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate agentty 0.5.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate agentty 0.5.1
[INFO] tweaked toml for crates.io crate agentty 0.5.1 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate agentty 0.5.1 on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate agentty 0.5.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 07485578674b2054b96bfc30654133a954ef847f2b0d30ae1c15119f464adbe6
[INFO] running `Command { std: "docker" "start" "-a" "07485578674b2054b96bfc30654133a954ef847f2b0d30ae1c15119f464adbe6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "07485578674b2054b96bfc30654133a954ef847f2b0d30ae1c15119f464adbe6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "07485578674b2054b96bfc30654133a954ef847f2b0d30ae1c15119f464adbe6", kill_on_drop: false }`
[INFO] [stdout] 07485578674b2054b96bfc30654133a954ef847f2b0d30ae1c15119f464adbe6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7e456cfa3b43b587f976efa58f414090b401caad50bc1d75da462e43329e996a
[INFO] running `Command { std: "docker" "start" "-a" "7e456cfa3b43b587f976efa58f414090b401caad50bc1d75da462e43329e996a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling crc v3.4.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling futures-intrusive v0.5.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling atoi v2.0.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling flume v0.11.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling dotenvy v0.15.7
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling serde v1.0.228
[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 strum v0.27.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling basic-toml v0.1.10
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling askama_parser v0.15.4
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling sqlx-core v0.8.6
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling agent-client-protocol-schema v0.10.8
[INFO] [stderr]    Compiling sqlx-sqlite v0.8.6
[INFO] [stderr]    Compiling askama_derive v0.15.4
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling ignore v0.4.25
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling sqlx-macros-core v0.8.6
[INFO] [stderr]    Compiling askama_macros v0.15.4
[INFO] [stderr]    Compiling sqlx-macros v0.8.6
[INFO] [stderr]    Compiling askama v0.15.4
[INFO] [stderr]    Compiling agent-client-protocol v0.9.4
[INFO] [stderr]    Compiling sqlx v0.8.6
[INFO] [stderr]    Compiling agentty v0.5.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 32s
[INFO] running `Command { std: "docker" "inspect" "7e456cfa3b43b587f976efa58f414090b401caad50bc1d75da462e43329e996a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e456cfa3b43b587f976efa58f414090b401caad50bc1d75da462e43329e996a", kill_on_drop: false }`
[INFO] [stdout] 7e456cfa3b43b587f976efa58f414090b401caad50bc1d75da462e43329e996a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 65bfad2867a90167dfabc7da896165a2ab12686d24dfef5ba8dd6a1cd97cc600
[INFO] running `Command { std: "docker" "start" "-a" "65bfad2867a90167dfabc7da896165a2ab12686d24dfef5ba8dd6a1cd97cc600", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling mockall_derive v0.14.0
[INFO] [stderr]    Compiling predicates-core v1.0.9
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling mockall v0.14.0
[INFO] [stderr]    Compiling fragile v2.0.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling predicates-tree v1.0.12
[INFO] [stderr]    Compiling predicates v3.1.3
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling agentty v0.5.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 47.65s
[INFO] running `Command { std: "docker" "inspect" "65bfad2867a90167dfabc7da896165a2ab12686d24dfef5ba8dd6a1cd97cc600", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "65bfad2867a90167dfabc7da896165a2ab12686d24dfef5ba8dd6a1cd97cc600", kill_on_drop: false }`
[INFO] [stdout] 65bfad2867a90167dfabc7da896165a2ab12686d24dfef5ba8dd6a1cd97cc600
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4a84e80e62520dbbca430c3edc1ad0a030e9c269f3fb945b8aa6f0eb07c13763
[INFO] running `Command { std: "docker" "start" "-a" "4a84e80e62520dbbca430c3edc1ad0a030e9c269f3fb945b8aa6f0eb07c13763", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/agentty-1ea37b2c0160bc4f)
[INFO] [stdout] 
[INFO] [stdout] running 902 tests
[INFO] [stdout] test app::assist::tests::test_failure_tracker_observe_exceeds_after_identical_streak_limit ... ok
[INFO] [stdout] test app::merge_queue::tests::test_is_queued_or_active ... ok
[INFO] [stdout] test app::merge_queue::tests::test_pop_next_follows_fifo_order ... ok
[INFO] [stdout] test app::merge_queue::tests::test_progress_from_status_updates_done_starts_next_and_clears_active ... ok
[INFO] [stdout] test app::merge_queue::tests::test_progress_from_status_updates_handles_synced_done_without_previous_merging ... ok
[INFO] [stdout] test app::merge_queue::tests::test_progress_from_status_updates_ignores_unrelated_batches ... ok
[INFO] [stdout] test app::merge_queue::tests::test_progress_from_status_updates_missing_session_starts_next ... ok
[INFO] [stdout] test app::project::tests::test_next_project_wraps_to_first_row ... ok
[INFO] [stdout] test app::project::tests::test_previous_project_wraps_to_last_row ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_parse_generated_session_title_accepts_protocol_answer_plain_text ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_parse_generated_session_title_returns_none_for_question_only_protocol_payload ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_parse_generated_session_title_normalizes_title_prefix ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_parse_generated_session_title_accepts_plain_title ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_parse_generated_session_title_uses_first_nonempty_line_for_multiline_response ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_prepare_reply_context_first_message_sets_title_from_prompt ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_prepare_reply_context_follow_up_keeps_existing_title ... ok
[INFO] [stdout] test app::session::load::tests::merge_loaded_session_status_prefers_handle_for_non_terminal_db_status ... ok
[INFO] [stdout] test app::session::load::tests::merge_loaded_session_status_prefers_terminal_status_from_db ... ok
[INFO] [stdout] test app::session::lifecycle::tests::test_session_title_generation_prompt_includes_request ... ok
[INFO] [stdout] test app::merge_queue::tests::test_progress_from_status_updates_failure_starts_next_and_clears_active ... ok
[INFO] [stdout] test app::assist::tests::test_format_detail_lines_returns_bulleted_non_empty_lines ... ok
[INFO] [stdout] test app::session::merge::tests::test_detail_message_for_uncommitted_changes_uses_sentence_lines ... ok
[INFO] [stdout] test app::session::merge::tests::test_conflicted_file_fingerprint_changes_with_file_content ... ok
[INFO] [stdout] test app::session::merge::tests::test_format_conflicted_file_list_returns_bulleted_lines ... ok
[INFO] [stdout] test app::session::merge::tests::test_conflicted_file_fingerprint_missing_file_is_stable ... ok
[INFO] [stdout] test app::session::merge::tests::test_conflicted_file_fingerprint_order_independent ... ok
[INFO] [stdout] test app::session::merge::tests::test_conflicted_file_fingerprint_stable_for_unchanged_content ... ok
[INFO] [stdout] test app::session::merge::tests::test_rebase_assist_prompt_includes_branch_and_files ... ok
[INFO] [stdout] test app::assist::tests::test_failure_tracker_observe_resets_streak_for_new_fingerprint ... ok
[INFO] [stdout] test app::session::merge::tests::test_session_title_and_summary_from_commit_message ... ok
[INFO] [stdout] test app::session::merge::tests::test_session_title_and_summary_from_commit_message_empty_uses_fallback ... ok
[INFO] [stdout] test app::session::merge::tests::test_session_title_and_summary_from_commit_message_skips_blank_prefix ... ok
[INFO] [stdout] test app::session::merge::tests::test_sync_main_for_project_fails_after_max_assistance_attempts ... ok
[INFO] [stdout] test app::session::merge::tests::test_sync_main_for_project_resolves_conflicts_with_assistance ... ok
[INFO] [stdout] test app::session::refresh::tests::test_is_session_refresh_due_returns_false_before_deadline ... ok
[INFO] [stdout] test app::session::refresh::tests::test_is_session_refresh_due_returns_true_at_deadline ... ok
[INFO] [stdout] test app::session::task::tests::test_auto_commit_assist_prompt_includes_commit_error ... ok
[INFO] [stdout] test app::session::merge::tests::test_execute_rebase_workflow_aborts_when_assist_loop_fails ... ok
[INFO] [stdout] test app::session::load::tests::test_load_sessions_preserves_live_handle_output_and_status ... ok
[INFO] [stdout] test app::session::merge::tests::test_rebase_assist_input_clone ... ok
[INFO] [stdout] test app::session::merge::tests::test_run_rebase_assist_loop_core_aborts_on_early_error ... ok
[INFO] [stdout] test app::session::merge::tests::test_run_rebase_start_recovers_stale_rebase_state_and_retries ... ok
[INFO] [stdout] test app::session::merge::tests::test_run_rebase_start_reports_cleanup_failure_for_stale_rebase_state ... ok
[INFO] [stdout] test app::session::load::tests::test_load_sessions_terminal_db_status_overrides_handle_status ... ok
[INFO] [stdout] test app::session::task::tests::test_capture_raw_output_routes_progress_lines_to_ui_event_only ... ok
[INFO] [stdout] test app::session::task::tests::test_handle_auto_commit_reports_when_no_changes_exist ... ok
[INFO] [stdout] test app::session::task::tests::test_commit_changes_with_assist_returns_commit_hash_from_mock_git_client ... ok
[INFO] [stdout] test app::session::task::tests::test_capture_raw_output_routes_response_content_to_output_buffer_and_db ... ok
[INFO] [stdout] test app::session::task::tests::test_handle_auto_commit_appends_commit_error_from_mock_git_client ... ok
[INFO] [stdout] test app::session::task::tests::test_format_commit_error_for_display_returns_bulleted_lines ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_streams_claude_output_with_compact_progress ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_streams_codex_output_with_spacing_between_messages ... ok
[INFO] [stdout] test app::session::task::tests::test_status_requires_full_refresh_for_lifecycle_statuses ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_streams_codex_structured_output_without_raw_json ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_streams_codex_output_without_duplication ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_deduplicates_repeated_progress_updates ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_appends_output_without_committing ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_returns_error_for_non_zero_exit_status ... ok
[INFO] [stdout] test app::session::tests::test_capture_raw_output ... ok
[INFO] [stdout] test app::session::tests::test_cleanup_merged_session_worktree_without_repo_hint ... ok
[INFO] [stdout] test app::session::tests::test_commit_changes_amends_existing_session_commit ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_unwraps_structured_output_in_non_stream_fallback ... ok
[INFO] [stdout] test app::session::tests::test_cancel_session ... ok
[INFO] [stdout] test app::session::tests::test_active_project_id_getter ... ok
[INFO] [stdout] test app::session::tests::test_cancel_session_triggers_app_server_shutdown ... ok
[INFO] [stdout] test app::session::tests::test_cancel_session_requires_review_status ... ok
[INFO] [stdout] test app::session::tests::test_cancel_session_invalid_id ... ok
[INFO] [stdout] test app::session::tests::test_create_session ... ok
[INFO] [stdout] test app::session::tests::test_create_session_cleans_up_on_error ... ok
[INFO] [stdout] test app::session::task::tests::test_run_agent_assist_task_streams_gemini_output_with_compact_progress ... ok
[INFO] [stdout] test app::session::tests::test_create_session_keeps_default_smart_model_setting_when_session_model_changes ... ok
[INFO] [stdout] test app::session::tests::test_create_session_reads_legacy_default_model_setting_when_default_smart_key_is_missing ... ok
[INFO] [stdout] test app::session::tests::test_create_session_scoped_to_project ... ok
[INFO] [stdout] test app::session::tests::test_create_session_reads_default_smart_model_from_db_setting ... ok
[INFO] [stdout] test app::session::tests::test_create_session_persists_default_smart_model_setting_when_last_used_model_is_enabled ... ok
[INFO] [stdout] test app::session::tests::test_create_session_without_git ... ok
[INFO] [stdout] test app::session::tests::test_create_session_uses_default_smart_model_setting_and_most_recent_permission_mode ... ok
[INFO] [stdout] test app::session::tests::test_fallback_merge_commit_message ... ok
[INFO] [stdout] test app::session::tests::test_create_session_with_git_no_actual_repo ... ok
[INFO] [stdout] test app::session::tests::test_delete_session_without_git ... ok
[INFO] [stdout] test app::session::tests::test_delete_last_session_update_selection ... ok
[INFO] [stdout] test app::session::tests::test_git_branch_getter_with_branch ... ok
[INFO] [stdout] test app::session::tests::test_git_branch_getter_without_branch ... ok
[INFO] [stdout] test app::session::tests::test_delete_session ... ok
[INFO] [stdout] test app::session::tests::test_delete_selected_session_edge_cases ... ok
[INFO] [stdout] test app::session::tests::test_done_status_triggers_app_server_shutdown ... ok
[INFO] [stdout] test app::session::tests::test_esc_deletes_blank_session ... ok
[INFO] [stdout] test app::session::tests::test_load_done_session_without_folder_kept ... ok
[INFO] [stdout] test app::session::tests::test_load_sessions_invalid_path ... ok
[INFO] [stdout] test app::session::tests::test_merge_commit_message_prompt_uses_git_commit_default_format ... ok
[INFO] [stdout] test app::session::tests::test_load_existing_sessions ... ok
[INFO] [stdout] test app::session::tests::test_load_existing_sessions_ordered_by_updated_at_desc ... ok
[INFO] [stdout] test app::session::tests::test_load_in_progress_session_without_folder_skipped ... ok
[INFO] [stdout] test app::session::tests::test_load_sessions_aggregates_daily_activity ... ok
[INFO] [stdout] test app::session::tests::test_load_sessions_keeps_daily_activity_after_session_deletion ... ok
[INFO] [stdout] test app::session::tests::test_load_sessions_uses_persisted_size_for_done_status ... ok
[INFO] [stdout] test app::session::tests::test_merge_session_invalid_id ... ok
[INFO] [stdout] test app::session::tests::test_load_sessions_uses_persisted_size_for_non_terminal_status ... ok
[INFO] [stdout] test app::session::tests::test_merge_session_no_git ... ok
[INFO] [stdout] test app::session::tests::test_merge_session_marks_done_when_changes_are_already_in_base ... ok
[INFO] [stdout] test app::session::tests::test_navigation_empty ... ok
[INFO] [stdout] test app::session::tests::test_parse_merge_commit_message_response_with_json ... ok
[INFO] [stdout] test app::session::tests::test_parse_merge_commit_message_response_with_wrapped_json ... ok
[INFO] [stdout] test app::session::tests::test_merge_session_queue_processes_sessions_in_fifo_order ... ok
[INFO] [stdout] test app::session::tests::test_navigation ... ok
[INFO] [stdout] test app::session::tests::test_navigation_follows_grouped_order_and_skips_group_headers ... ok
[INFO] [stdout] test app::session::tests::test_new_app_empty ... ok
[INFO] [stdout] test app::session::tests::test_navigation_recovery ... ok
[INFO] [stdout] test app::session::tests::test_merge_session_removes_worktree_and_branch_after_success ... ok
[INFO] [stdout] test app::session::tests::test_next_tab ... ok
[INFO] [stdout] test app::session::tests::test_rebase_session_no_git ... ok
[INFO] [stdout] test app::session::tests::test_rebase_session_auto_commits_uncommitted_changes ... ok
[INFO] [stdout] test app::session::tests::test_rebase_session_invalid_id ... ok
[INFO] [stdout] test app::session::tests::test_refresh_sessions_if_needed_reloads_and_preserves_selection ... ok
[INFO] [stdout] test app::session::tests::test_rebase_session_requires_review_status ... ok
[INFO] [stdout] test app::session::tests::test_refresh_sessions_if_needed_remaps_view_mode_index ... ok
[INFO] [stdout] test app::session::tests::test_rebase_session_updates_session_worktree_to_base_head ... ok
[INFO] [stdout] test app::session::tests::test_session_branch_uses_first_8_chars ... ok
[INFO] [stdout] test app::session::tests::test_session_folder_uses_first_8_chars ... ok
[INFO] [stdout] test app::session::tests::test_refresh_session_size_recomputes_and_persists_size ... ok
[INFO] [stdout] test app::session::tests::test_reply_first_message_uses_full_prompt_text_as_title ... ok
[INFO] [stdout] test app::session::tests::test_selected_session ... ok
[INFO] [stdout] test app::session::tests::test_reply ... ok
[INFO] [stdout] test app::session::tests::test_reply_turn_completion_persists_session_size ... ok
[INFO] [stdout] test app::session::tests::test_sync_main_pushes_local_commits_to_remote ... ok
[INFO] [stdout] test app::session::tests::test_reply_with_backend_replays_history_once_after_model_switch ... ok
[INFO] [stdout] test app::session::tests::test_spawn_session_task_auto_commits_changes ... ok
[INFO] [stdout] test app::session::tests::test_spawn_session_task_skips_commit_when_nothing_to_commit ... ok
[INFO] [stdout] test app::session::tests::test_reply_with_backend_replays_history_after_app_restart_for_review_session ... ok
[INFO] [stdout] test app::session::worker::tests::test_agent_response_questions_preserves_ordered_list_as_single_question_text ... ok
[INFO] [stdout] test app::session::tests::test_spawn_integration ... ok
[INFO] [stdout] test app::session::worker::tests::test_agent_response_questions_returns_only_question_messages ... ok
[INFO] [stdout] test app::session::worker::tests::test_build_assistant_transcript_output_falls_back_to_question_text ... ok
[INFO] [stdout] test app::session::worker::tests::test_build_assistant_transcript_output_returns_none_for_blank_messages ... ok
[INFO] [stdout] test app::session::worker::tests::test_build_assistant_transcript_output_prefers_answer_messages ... ok
[INFO] [stdout] test app::session::tests::test_start_session ... ok
[INFO] [stdout] test app::session::worker::tests::test_session_command_kind_values ... ok
[INFO] [stdout] test app::session::tests::test_sync_main_requires_clean_selected_project_branch ... ok
[INFO] [stdout] test app::session_state::tests::sync_from_handles_updates_output_when_same_length_content_changes ... ok
[INFO] [stdout] test app::session_state::tests::sync_session_with_handles_appends_suffix_for_extended_output ... ok
[INFO] [stdout] test app::session_state::tests::sync_session_with_handles_equal_length_sync ... ok
[INFO] [stdout] test app::session_state::tests::sync_session_with_handles_replaces_output_when_prefix_changes ... ok
[INFO] [stdout] test app::settings::tests::footer_hint_returns_editing_text_when_text_input_is_active ... ok
[INFO] [stdout] test app::settings::tests::is_editing_text_input_returns_false_by_default ... ok
[INFO] [stdout] test app::settings::tests::next_moves_selection_to_default_smart_model_row ... ok
[INFO] [stdout] test app::settings::tests::previous_wraps_to_open_command_row_from_reasoning_level_row ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_default_fast_model ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_default_review_model ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_default_smart_model ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_last_used_model_as_default ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_open_command ... ok
[INFO] [stdout] test app::settings::tests::setting_name_as_str_returns_reasoning_level ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_include_reasoning_smart_fast_review_model_and_open_command ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_cursor_for_open_command_while_editing ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_default_fast_model_value ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_default_review_model_value ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_empty_placeholder_for_open_command ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_last_used_model_as_default_value_when_enabled ... ok
[INFO] [stdout] test app::settings::tests::settings_rows_show_reasoning_level_value ... ok
[INFO] [stdout] test app::tab::tests::test_tab_manager_new_defaults_to_projects ... ok
[INFO] [stdout] test app::tab::tests::test_tab_manager_next_cycles_tabs ... ok
[INFO] [stdout] test app::tab::tests::test_tab_manager_previous_cycles_tabs ... ok
[INFO] [stdout] test app::tab::tests::test_tab_manager_set_updates_current_tab ... ok
[INFO] [stdout] test app::tab::tests::test_tab_next ... ok
[INFO] [stdout] test app::tab::tests::test_tab_previous ... ok
[INFO] [stdout] test app::tab::tests::test_tab_title ... ok
[INFO] [stdout] test app::task::tests::test_focused_review_assist_command_mode_always_uses_start ... ok
[INFO] [stdout] test app::task::tests::test_focused_review_assist_prompt_enforces_read_only_constraints ... ok
[INFO] [stdout] test app::task::tests::test_plain_text_response_passes_through_unchanged ... ok
[INFO] [stdout] test app::task::tests::test_structured_agent_response_is_unwrapped_to_display_text ... ok
[INFO] [stdout] test app::tests::app_event_batch_collect_event_keeps_latest_agent_response_update ... ok
[INFO] [stdout] test app::session::tests::test_start_session_uses_full_prompt_text_as_title ... ok
[INFO] [stdout] test app::tests::app_event_batch_collect_event_keeps_latest_at_mention_entries_update ... ok
[INFO] [stdout] test app::session::tests::test_sync_main_uses_active_project_branch_from_context ... ok
[INFO] [stdout] test app::session::tests::test_sync_main_returns_error_without_upstream_remote ... ok
[INFO] [stdout] test app::tests::discover_home_project_paths_includes_git_repos_and_excludes_session_worktrees ... ok
[INFO] [stdout] test app::session::worker::tests::test_fail_unfinished_operations_from_previous_run_restores_session_review_status ... ok
[INFO] [stdout] test app::tests::is_session_worktree_project_path_returns_false_for_main_repository_path ... ok
[INFO] [stdout] test app::tests::is_session_worktree_project_path_returns_true_for_agentty_worktree_path ... ok
[INFO] [stdout] test app::tests::open_command_to_run_preserves_existing_exec_prefix_when_provided ... ok
[INFO] [stdout] test app::tests::open_command_to_run_returns_none_for_empty_input ... ok
[INFO] [stdout] test app::tests::open_command_to_run_trims_whitespace_without_prefixing_exec ... ok
[INFO] [stdout] test app::session::worker::tests::test_should_skip_worker_command_without_cancel_request ... ok
[INFO] [stdout] test app::session::tests::test_working_dir_getter ... ok
[INFO] [stdout] test app::tests::resolve_agentty_home_falls_back_to_home_directory_when_override_is_empty ... ok
[INFO] [stdout] test app::tests::resolve_agentty_home_falls_back_to_relative_directory_without_home_dir ... ok
[INFO] [stdout] test app::tests::resolve_agentty_home_returns_env_override_when_set ... ok
[INFO] [stdout] test app::session::worker::tests::test_should_skip_worker_command_when_cancel_is_requested ... ok
[INFO] [stdout] test app::tests::apply_app_events_agent_response_switches_view_mode_to_question_mode ... ok
[INFO] [stdout] test app::tests::sync_main_popup_mode_auth_failure_shows_authorization_guidance ... ok
[INFO] [stdout] test app::tests::sync_main_popup_mode_blocked_message_tracks_project_and_branch ... ok
[INFO] [stdout] test app::tests::sync_main_popup_mode_success_message_tracks_project_and_branch ... ok
[INFO] [stdout] test app::tests::discover_home_project_paths_respects_repository_limit ... ok
[INFO] [stdout] test domain::agent::tests::test_parse_model_maps_legacy_gpt_52_codex_to_codex_spark ... ok
[INFO] [stdout] test domain::agent::tests::test_parse_model_returns_none_for_models_from_other_providers ... ok
[INFO] [stdout] test domain::agent::tests::test_reasoning_level_from_str_parses_supported_values ... ok
[INFO] [stdout] test domain::agent::tests::test_reasoning_level_from_str_rejects_unknown_values ... ok
[INFO] [stdout] test domain::input::tests::test_delete_current_line_clears_single_line_content ... ok
[INFO] [stdout] test domain::input::tests::test_delete_current_line_removes_first_line_and_following_newline ... ok
[INFO] [stdout] test domain::input::tests::test_delete_current_line_removes_last_line_and_preceding_newline ... ok
[INFO] [stdout] test domain::input::tests::test_delete_current_line_removes_middle_line_and_preceding_newline ... ok
[INFO] [stdout] test domain::input::tests::test_insert_text_at_end_updates_text_and_cursor ... ok
[INFO] [stdout] test domain::input::tests::test_insert_text_in_middle_preserves_surrounding_content ... ok
[INFO] [stdout] test domain::permission::tests::test_from_str_accepts_auto_edit ... ok
[INFO] [stdout] test domain::permission::tests::test_from_str_rejects_removed_permission_modes ... ok
[INFO] [stdout] test domain::project::tests::test_display_label_falls_back_to_path_folder_name ... ok
[INFO] [stdout] test domain::project::tests::test_display_label_prefers_display_name ... ok
[INFO] [stdout] test domain::session::tests::test_status_display_queued ... ok
[INFO] [stdout] test domain::session::tests::test_status_from_str_queued ... ok
[INFO] [stdout] test domain::session::tests::test_status_transition_queued_to_in_progress_is_rejected ... ok
[INFO] [stdout] test domain::session::tests::test_status_transition_queued_to_merging ... ok
[INFO] [stdout] test domain::session::tests::test_status_transition_review_to_queued ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_agent_command_mode_start_plain_disables_structured_protocol ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_agent_command_mode_start_uses_structured_protocol ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_build_resume_prompt_includes_session_output_and_prompt ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_build_resume_prompt_returns_original_prompt_when_output_is_blank ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_build_resume_prompt_returns_original_prompt_without_output ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_prepend_protocol_instructions_with_schema_adds_protocol_instructions ... ok
[INFO] [stdout] test app::tests::apply_app_events_agent_response_keeps_list_mode_when_not_viewing_session ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_prepend_protocol_instructions_with_schema_is_idempotent ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_prepend_protocol_instructions_without_schema_adds_protocol_instructions ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_prepend_repo_root_path_instructions_adds_contract ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_prepend_repo_root_path_instructions_is_idempotent ... ok
[INFO] [stdout] test infra::agent::backend::tests::test_transport_mode_reports_expected_transport_by_provider ... ok
[INFO] [stdout] test infra::agent::claude::tests::test_claude_auto_edit_mode_uses_allowed_tools_edit ... ok
[INFO] [stdout] test infra::agent::claude::tests::test_claude_command_includes_repo_root_path_instructions ... ok
[INFO] [stdout] test infra::agent::claude::tests::test_claude_start_plain_command_enforces_json_schema ... ok
[INFO] [stdout] test infra::agent::claude::tests::test_claude_start_command_includes_json_schema ... ok
[INFO] [stdout] test infra::agent::codex::tests::build_command_includes_repo_root_path_instructions ... ok
[INFO] [stdout] test infra::agent::codex::tests::build_resume_command_appends_root_instructions_and_session_output ... ok
[INFO] [stdout] test infra::agent::codex::tests::build_resume_command_uses_plain_prompt_without_session_output ... ok
[INFO] [stdout] test infra::agent::codex::tests::build_start_plain_command_skips_protocol_instructions ... ok
[INFO] [stdout] test infra::agent::codex::tests::build_start_command_appends_root_instructions ... ok
[INFO] [stdout] test infra::agent::gemini::tests::test_gemini_setup_creates_no_files ... ok
[INFO] [stdout] test infra::agent::gemini::tests::test_gemini_start_plain_command_skips_protocol_instructions ... ok
[INFO] [stdout] test infra::agent::gemini::tests::test_gemini_command_includes_repo_root_path_instructions ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_output_schema_contains_message_type_enum_values ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_output_schema_contains_required_fields ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_output_schema_does_not_contain_one_of ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_output_schema_ref_objects_have_no_sibling_keywords ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_output_schema_json_is_parseable_value ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_plain_constructor ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_agent_response_serde_round_trip ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_answers_returns_only_answer_messages_in_order ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_normalize_stream_assistant_chunk_plain_text ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_normalize_stream_assistant_chunk_protocol_fragment ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_normalize_stream_assistant_chunk_question_only_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_empty_messages_falls_back_to_plain_text ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_normalize_stream_assistant_chunk_structured_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_malformed_json_fallback ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_non_schema_payload_falls_back_to_plain_text ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_preserves_fallback_whitespace ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_plain_text_fallback ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_strict_extracts_json_object_from_wrapped_text ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_strict_rejects_plain_text ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_strict_skips_invalid_embedded_json_before_valid_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_strict_structured_json_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_structured_json_in_code_fence_extracts_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_structured_json_with_mixed_messages ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_structured_json_payload ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_unknown_message_fields_fallback ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_parse_agent_response_unknown_top_level_fields_fallback ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_questions_returns_only_question_messages_in_order ... ok
[INFO] [stdout] test infra::agent::protocol::tests::test_to_answer_display_text_uses_only_answer_messages ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_claude_parse_response_reads_result_from_json_array_payload ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_claude_parse_response_reads_result_payload ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_claude_parse_response_reads_usage_when_result_is_missing ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::compact_codex_progress_message_returns_compacting_for_context_compaction ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_claude_parse_response_uses_stream_message_when_result_is_empty ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_claude_stream_output_line_ignores_result_events_for_delta_streaming ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_claude_stream_output_line_maps_tool_use_blocks_to_progress ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_claude_stream_output_line_reads_assistant_message_content_blocks ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_claude_stream_output_line_reads_message_event_content ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_response_codex_falls_back_to_reasoning_without_agent_message ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_response_codex_ignores_completion_status_as_final_message ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_response_codex_ignores_trailing_completion_status_message ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_response_codex_prefers_agent_message_over_trailing_reasoning_payload ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_stream_output_line_codex_ignores_completion_status_messages ... ok
[INFO] [stdout] test infra::agent::response_parser::tests::test_parse_stream_output_line_codex_keeps_assistant_message_content ... ok
[INFO] [stdout] test infra::app_server::tests::read_latest_session_output_falls_back_to_snapshot_when_live_buffer_is_empty ... ok
[INFO] [stdout] test infra::app_server::tests::read_latest_session_output_falls_back_to_snapshot_when_no_live_buffer ... ok
[INFO] [stdout] test infra::app_server::tests::read_latest_session_output_prefers_live_buffer_over_snapshot ... ok
[INFO] [stdout] test infra::app_server::tests::read_latest_session_output_returns_none_when_both_are_absent ... ok
[INFO] [stdout] test infra::app_server::tests::run_turn_with_restart_retry_skips_replay_when_runtime_restores_context ... ok
[INFO] [stdout] test infra::app_server::tests::run_turn_with_restart_retry_restarts_once_after_first_failure ... ok
[INFO] [stdout] test infra::app_server::tests::run_turn_with_restart_retry_uses_live_output_on_retry ... ok
[INFO] [stdout] test infra::app_server::tests::take_session_returns_stored_runtime ... ok
[INFO] [stdout] test app::tests::apply_app_events_refresh_sessions_reloads_project_active_session_count ... ok
[INFO] [stdout] test infra::app_server::tests::turn_prompt_for_runtime_adds_repo_root_path_instructions_without_context_reset ... ok
[INFO] [stdout] test infra::app_server::tests::turn_prompt_for_runtime_replays_session_output_after_context_reset_with_path_instructions ... ok
[INFO] [stdout] test infra::app_server_router::tests::run_turn_routes_gemini_models_to_gemini_client ... ok
[INFO] [stdout] test infra::app_server_router::tests::shutdown_session_propagates_to_all_provider_clients ... ok
[INFO] [stdout] test infra::app_server_transport::tests::extract_json_error_message_returns_message_string ... ok
[INFO] [stdout] test infra::app_server_transport::tests::extract_json_error_message_returns_none_without_error ... ok
[INFO] [stdout] test infra::app_server_router::tests::run_turn_returns_error_for_unknown_model ... ok
[INFO] [stdout] test infra::app_server_router::tests::run_turn_routes_codex_models_to_codex_client ... ok
[INFO] [stdout] test infra::app_server_transport::tests::response_id_matches_returns_false_for_different_id ... ok
[INFO] [stdout] test infra::app_server_transport::tests::response_id_matches_returns_false_for_integer_id ... ok
[INFO] [stdout] test infra::app_server_transport::tests::response_id_matches_returns_false_when_id_is_missing ... ok
[INFO] [stdout] test infra::app_server_transport::tests::response_id_matches_returns_true_for_matching_string_id ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_bridges_delta_assistant_message_unchanged ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_bridges_progress_update_as_progress_event ... ok
[INFO] [stdout] test infra::app_server_transport::tests::extract_json_error_message_returns_none_without_message_field ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_client_failure_returns_agent_error ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_codex_suppresses_non_delta_assistant_messages ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_codex_keeps_plain_text_without_repair_retry ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_codex_suppresses_non_delta_structured_json_streaming ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_passes_and_returns_provider_conversation_id ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_gemini_suppresses_streamed_assistant_messages ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_repairs_invalid_structured_output_for_gemini ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_routes_codex_thinking_delta_with_uppercase_phase_to_thought_event ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_routes_codex_thinking_delta_to_thought_event ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_skips_delta_protocol_json_fragments ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_skips_whitespace_only_assistant_messages ... ok
[INFO] [stdout] test infra::channel::app_server::tests::test_run_turn_returns_correct_token_counts_and_context_reset ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_normalize_stream_response_content_keeps_answer_text_only ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_normalize_stream_response_content_suppresses_question_only_payload ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_normalize_stream_response_content_suppresses_json_fragment ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_normalize_stream_response_content_keeps_plain_text ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_run_turn_clean_exit_returns_ok_result_without_context_reset ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_run_turn_spawn_failure_returns_err_without_delta ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_run_turn_kill_signal_returns_err_without_stopped_delta ... ok
[INFO] [stdout] test infra::codex_app_server::tests::approval_policy_maps_auto_edit_mode ... ok
[INFO] [stdout] test infra::codex_app_server::tests::auto_compact_input_token_threshold_falls_back_to_128k_limit_for_unknown_models ... ok
[INFO] [stdout] test infra::codex_app_server::tests::auto_compact_input_token_threshold_uses_128k_limit_for_codex_spark ... ok
[INFO] [stdout] test infra::codex_app_server::tests::auto_compact_input_token_threshold_uses_400k_limit_for_codex_models ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_pre_action_approval_response_for_command_request_uses_mode_decision ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_run_turn_repairs_invalid_structured_output_for_claude ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_pre_action_approval_response_for_legacy_request_uses_legacy_decision ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_pre_action_approval_response_returns_none_for_non_approval_method ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_thread_resume_payload_sets_thread_id_and_model ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_thread_start_payload_does_not_set_root_instruction_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_thread_start_payload_sets_live_web_search_config_without_dynamic_tools ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_thread_start_payload_uses_thread_folder_as_cwd ... ok
[INFO] [stdout] test infra::channel::cli::tests::test_run_turn_streams_deltas_and_progress_for_strict_protocol_provider ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_turn_start_payload_sets_structured_output_schema ... ok
[INFO] [stdout] test infra::codex_app_server::tests::compaction_timeout_error_includes_timeout_seconds ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_accepts_assistant_message_item_alias ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_delta_ignores_content_delta_for_agent_message_item ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_delta_ignores_content_for_agent_message_delta_notification ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_delta_returns_content_delta_for_reasoning_item ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_delta_returns_content_for_plan_delta_notification ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_delta_returns_content_for_reasoning_text_delta_notification ... ok
[INFO] [stdout] test infra::codex_app_server::tests::build_turn_start_payload_uses_thread_folder_as_cwd ... ok
[INFO] [stdout] test infra::codex_app_server::tests::camel_to_snake_converts_camel_case_strings ... ok
[INFO] [stdout] test app::tests::open_session_worktree_in_tmux_runs_configured_open_command_when_window_opens ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_preserves_phase_for_agent_message_item ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_returns_content_text_for_agent_message_item ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_handoff_turn_id_from_completion_returns_none_when_not_waiting_or_active ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_handoff_turn_id_from_completion_returns_turn_id_when_waiting ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_ignores_agent_message_with_thought_phase ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_ignores_completion_status_lines ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_agent_message_ignores_reasoning_item ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_item_started_progress_normalizes_camel_case_item_type ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_item_started_progress_returns_none_for_agent_message ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_item_started_progress_returns_none_for_non_item_started_method ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_item_started_progress_returns_thinking_for_reasoning ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_thread_token_usage_for_turn_ignores_other_turn_ids ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_item_started_progress_returns_progress_for_command_execution ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_thread_token_usage_for_turn_reads_last_usage_for_matching_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_completed_error_message_includes_codex_error_info ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_completed_error_message_omits_absent_codex_error_info ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_start_response_returns_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_start_response_supports_flat_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_start_response_supports_nested_flat_turn_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_started_notification_returns_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_started_notification_supports_flat_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_id_from_turn_started_notification_supports_nested_flat_turn_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_usage_for_turn_ignores_other_turn_ids ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_usage_for_turn_reads_matching_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_usage_reads_camel_case_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::extract_turn_usage_returns_none_when_usage_is_missing ... ok
[INFO] [stdout] test infra::codex_app_server::tests::finalize_turn_completion_returns_latest_non_empty_assistant_message_for_completed_turn ... ok
[INFO] [stdout] test infra::codex_app_server::tests::finalize_turn_completion_streams_error_message_for_non_completed_turn ... ok
[INFO] [stdout] test infra::codex_app_server::tests::interrupted_turn_completion_with_error_is_not_treated_as_handoff ... ok
[INFO] [stdout] test infra::codex_app_server::tests::interrupted_turn_completion_without_error_is_treated_as_handoff ... ok
[INFO] [stdout] test infra::codex_app_server::tests::is_context_window_exceeded_error_detects_structured_error ... ok
[INFO] [stdout] test infra::codex_app_server::tests::is_context_window_exceeded_error_returns_false_for_other_errors ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_accepts_matching_flat_turn_id_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_accepts_matching_nested_flat_turn_id_fields ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_accepts_matching_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_ignores_missing_turn_id_for_expected_turn_id ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_ignores_notifications_before_turn_id_is_known ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_ignores_other_turn_ids ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_returns_error_for_failed_turn ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_returns_error_for_interrupted_turn ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_returns_error_for_unfinished_turn_without_error_payload ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_returns_error_when_status_is_missing ... ok
[INFO] [stdout] test infra::codex_app_server::tests::parse_turn_completed_returns_success_for_completed_turn ... ok
[INFO] [stdout] test infra::codex_app_server::tests::resolve_turn_usage_falls_back_to_stream_usage_when_completed_usage_is_missing ... ok
[INFO] [stdout] test infra::codex_app_server::tests::resolve_turn_usage_prefers_completed_usage_over_stream_usage ... ok
[INFO] [stdout] test infra::codex_app_server::tests::stream_turn_content_from_response_ignores_agent_message_delta_notifications ... ok
[INFO] [stdout] test infra::codex_app_server::tests::stream_turn_content_from_response_emits_phase_progress_once_per_phase ... ok
[INFO] [stdout] test infra::codex_app_server::tests::thread_sandbox_mode_maps_auto_edit_mode ... ok
[INFO] [stdout] test infra::codex_app_server::tests::turn_prompt_for_runtime_adds_repo_root_path_instructions_without_context_reset ... ok
[INFO] [stdout] test infra::codex_app_server::tests::turn_prompt_for_runtime_replays_session_output_after_context_reset_with_path_instructions ... ok
[INFO] [stdout] test infra::codex_app_server::tests::turn_completed_timeout_error_includes_timeout_seconds ... ok
[INFO] [stdout] test infra::codex_app_server::tests::turn_sandbox_policy_enables_network_access_for_workspace_write ... ok
[INFO] [stdout] test infra::codex_app_server::tests::update_turn_usage_from_response_prefers_thread_token_usage_updates ... ok
[INFO] [stdout] test infra::codex_app_server::tests::web_search_mode_maps_auto_edit_mode ... ok
[INFO] [stdout] test app::tests::open_session_worktree_in_tmux_skips_open_command_when_setting_is_blank ... ok
[INFO] [stdout] test app::tests::stats_for_session_returns_duration_and_usage_rows ... ok
[INFO] [stdout] test app::tests::stats_for_session_returns_none_duration_for_unknown_session ... ok
[INFO] [stdout] test app::tests::test_new_prefers_active_session_for_initial_selection ... ok
[INFO] [stdout] test infra::db::tests::test_load_session_activity_timestamps_keeps_deleted_session_history ... ok
[INFO] [stdout] test infra::db::tests::test_insert_session_creation_activity_at_ignores_duplicates_per_session ... ok
[INFO] [stdout] test infra::db::tests::test_insert_session_creation_activity_at_persists_timestamp ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_case_insensitive ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_empty_query_returns_all ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_fuzzy_match ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_fuzzy_no_match_wrong_order ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_fuzzy_ranks_consecutive_higher ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_fuzzy_ranks_segment_start_higher ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_matches_path_segments ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_no_match ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_prioritizes_basename_match ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_trailing_slash_matches_exact_directory ... ok
[INFO] [stdout] test infra::file_index::tests::test_filter_entries_trailing_slash_prioritizes_directories ... ok
[INFO] [stdout] test infra::file_index::tests::test_fuzzy_score_consecutive_beats_scattered ... ok
[INFO] [stdout] test infra::file_index::tests::test_fuzzy_score_returns_none_for_no_match ... ok
[INFO] [stdout] test infra::file_index::tests::test_fuzzy_score_returns_some_for_match ... ok
[INFO] [stdout] test infra::db::tests::test_load_reasoning_level_defaults_when_setting_is_missing_or_invalid ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_empty_directory ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_excludes_root_directory ... ok
[INFO] [stdout] test infra::db::tests::test_load_projects_with_stats_returns_session_counts_and_last_update ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_for_explorer_respects_custom_limits ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_includes_directories ... ok
[INFO] [stdout] test infra::db::tests::test_session_provider_conversation_id_round_trip_and_clear ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_respects_max_depth ... ok
[INFO] [stdout] test infra::db::tests::test_reasoning_level_round_trip_uses_typed_setting_helpers ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_returns_relative_paths ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_returns_sorted_entries ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_sorts_directories_before_files ... ok
[INFO] [stdout] test infra::file_index::tests::test_sort_and_limit_entries_truncates_after_sort ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_includes_non_ignored_dotfiles ... ok
[INFO] [stdout] test infra::gemini_acp::tests::bootstrap_runtime_session_returns_initialize_error_without_session_creation ... ok
[INFO] [stdout] test infra::gemini_acp::tests::bootstrap_runtime_session_initializes_then_creates_session ... ok
[INFO] [stdout] test infra::gemini_acp::tests::build_permission_response_ignores_mismatched_session_id ... ok
[INFO] [stdout] test infra::gemini_acp::tests::build_permission_response_prefers_allow_always_over_allow_once ... ok
[INFO] [stdout] test infra::gemini_acp::tests::build_permission_response_returns_cancelled_when_options_field_is_missing ... ok
[INFO] [stdout] test infra::gemini_acp::tests::build_permission_response_returns_cancelled_without_options ... ok
[INFO] [stdout] test infra::gemini_acp::tests::build_permission_response_selects_allow_once_when_allow_always_is_missing ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_assistant_message_chunk_reads_text_from_nested_parts ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_assistant_message_chunk_returns_text_for_message_chunk ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_progress_update_returns_tool_completed_for_completed_tool_call ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_progress_update_returns_thinking_for_thought_chunks ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_progress_update_returns_tool_title_for_in_progress_tool_call ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_session_update_kind_ignores_mismatched_session ... ok
[INFO] [stdout] test infra::gemini_acp::tests::extract_session_update_kind_reads_matching_update_kind ... ok
[INFO] [stdout] test infra::gemini_acp::tests::initialize_runtime_returns_error_for_json_rpc_error_payload ... ok
[INFO] [stdout] test infra::gemini_acp::tests::initialize_runtime_writes_initialize_then_initialized_notification ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_prompt_completion_response_reads_output_content_parts ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_respects_gitignore ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_prompt_completion_response_reads_snake_case_usage_fields ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_prompt_completion_response_returns_error_without_result_payload ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_prompt_completion_response_returns_usage_and_assistant_message ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_session_new_response_returns_error_when_session_id_is_missing ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_session_new_response_returns_session_id_for_success_payload ... ok
[INFO] [stdout] test infra::gemini_acp::tests::parse_session_new_response_returns_json_rpc_error_message ... ok
[INFO] [stdout] test infra::gemini_acp::tests::run_turn_with_runtime_handles_permission_progress_chunk_and_completion ... ok
[INFO] [stdout] test infra::gemini_acp::tests::start_session_writes_session_new_and_returns_session_id ... ok
[INFO] [stdout] test infra::gemini_acp::tests::stream_assistant_chunk_ignores_empty_chunks ... ok
[INFO] [stdout] test infra::gemini_acp::tests::stream_assistant_chunk_sends_assistant_message_event_for_non_empty_chunks ... ok
[INFO] [stdout] test infra::git::repo::tests::test_apply_non_interactive_environment_sets_git_prompt_controls ... ok
[INFO] [stdout] test infra::db::tests::test_set_and_load_active_project_id_round_trip ... ok
[INFO] [stdout] test infra::db::tests::test_set_project_favorite_updates_project_state ... ok
[INFO] [stdout] test infra::git::rebase::tests::test_run_git_command_with_index_lock_retry_does_not_sleep_for_non_lock_errors ... ok
[INFO] [stdout] test infra::git::rebase::tests::test_run_git_command_with_index_lock_retry_retries_and_sleeps_before_success ... ok
[INFO] [stdout] test infra::db::tests::test_setting_round_trip_supports_default_smart_fast_and_review_models ... ok
[INFO] [stdout] test infra::git::tests::test_abort_rebase_cleans_stale_rebase_merge_metadata ... ok
[INFO] [stdout] test infra::git::tests::test_abort_rebase_returns_error_without_rebase_state_or_stale_metadata ... ok
[INFO] [stdout] test infra::git::tests::test_commit_all_preserving_single_commit_creates_first_commit ... ok
[INFO] [stdout] test infra::git::tests::test_is_no_upstream_error_detects_upstream_hint ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_detects_committing_not_possible ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_detects_conflict_keyword ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_detects_could_not_apply ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_detects_mark_as_resolved ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_detects_unresolved_conflict ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_respects_max_entries ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_returns_false_for_unrelated_error ... ok
[INFO] [stdout] test infra::git::tests::test_is_rebase_conflict_returns_false_for_index_lock_error ... ok
[INFO] [stdout] test infra::file_index::tests::test_list_files_for_explorer_can_be_unbounded ... ok
[INFO] [stdout] test infra::git::tests::test_commit_all_preserving_single_commit_amends_existing_session_commit ... ok
[INFO] [stdout] test infra::git::tests::test_list_local_commit_titles_returns_error_without_upstream ... ok
[INFO] [stdout] test infra::git::tests::test_is_worktree_clean_returns_false_for_dirty_repo ... ok
[INFO] [stdout] test infra::git::tests::test_list_upstream_commit_titles_returns_error_without_upstream ... ok
[INFO] [stdout] test infra::git::tests::test_main_repo_root_returns_repo_root_for_main_worktree ... ok
[INFO] [stdout] test infra::git::tests::test_is_worktree_clean_returns_true_for_clean_repo ... ok
[INFO] [stdout] test infra::git::tests::test_diff_does_not_include_base_only_commits ... ok
[INFO] [stdout] test infra::git::tests::test_pull_rebase_returns_error_without_upstream ... ok
[INFO] [stdout] test infra::git::tests::test_main_repo_root_returns_shared_repo_root_for_linked_worktree ... ok
[INFO] [stdout] test infra::git::tests::test_diff_hides_leading_squash_merged_commit_for_non_rebased_session ... ok
[INFO] [stdout] test infra::git::tests::test_diff_keeps_new_commits_after_leading_squash_merged_commit ... ok
[INFO] [stdout] test infra::git::tests::test_list_local_commit_titles_returns_new_local_commit_titles ... ok
[INFO] [stdout] test infra::tmux::tests::parse_tmux_window_id_returns_none_for_invalid_utf8 ... ok
[INFO] [stdout] test infra::tmux::tests::parse_tmux_window_id_trims_newline_and_returns_window_id ... ok
[INFO] [stdout] test infra::version::tests::test_fetch_latest_npm_version_tag_sync_falls_back_to_registry_curl ... ok
[INFO] [stdout] test infra::git::tests::test_commit_all_preserving_single_commit_retries_index_lock_and_succeeds ... ok
[INFO] [stdout] test infra::version::tests::test_fetch_latest_npm_version_tag_sync_prefers_npm_cli_result ... ok
[INFO] [stdout] test infra::version::tests::test_is_newer_than_current_version_returns_false_when_candidate_is_not_newer ... ok
[INFO] [stdout] test infra::version::tests::test_parse_npm_cli_version_response_accepts_json_string ... ok
[INFO] [stdout] test infra::version::tests::test_is_newer_than_current_version_returns_true_when_candidate_is_newer ... ok
[INFO] [stdout] test infra::version::tests::test_parse_registry_latest_response_extracts_version ... ok
[INFO] [stdout] test infra::version::tests::test_parse_version_accepts_prefixed_version ... ok
[INFO] [stdout] test infra::version::tests::test_parse_version_rejects_invalid_version ... ok
[INFO] [stdout] test infra::version::tests::test_version_tag_prefixes_semver_with_v ... ok
[INFO] [stdout] test runtime::event::tests::test_spawn_event_reader_with_source_forwards_event_to_channel ... ok
[INFO] [stdout] test runtime::event::tests::test_spawn_event_reader_with_source_skips_polling_when_paused ... ok
[INFO] [stdout] test runtime::event::tests::test_spawn_event_reader_with_source_skips_read_when_poll_returns_false ... ok
[INFO] [stdout] test runtime::event::tests::test_spawn_event_reader_with_source_stops_when_receiver_is_dropped ... ok
[INFO] [stdout] test infra::git::tests::test_push_current_branch_returns_error_without_remote ... ok
[INFO] [stdout] test infra::git::tests::test_pull_rebase_targets_local_upstream_when_upstream_name_has_no_remote_prefix ... ok
[INFO] [stdout] test infra::git::tests::test_squash_merge_returns_committed_when_changes_exist ... ok
[INFO] [stdout] test runtime::key_handler::tests::test_handle_confirmation_decision_cancel_returns_to_list ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_enter_uses_selected_option ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_returns_cancel_for_escape ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_returns_cancel_for_no_shortcut ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_returns_confirm_for_yes_shortcut ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_updates_selection_with_arrow_keys ... ok
[INFO] [stdout] test runtime::mode::confirmation::tests::test_handle_updates_selection_with_h_and_l_shortcuts ... ok
[INFO] [stdout] test infra::git::tests::test_squash_merge_returns_already_present_when_changes_exist_in_target ... ok
[INFO] [stdout] test runtime::key_handler::tests::test_handle_confirmation_decision_confirm_quits_when_no_session_context ... ok
[INFO] [stdout] test runtime::key_handler::tests::test_handle_confirmation_decision_cancel_restores_view_for_merge_confirmation ... ok
[INFO] [stdout] test runtime::key_handler::tests::test_handle_confirmation_decision_confirm_queues_merge_with_view_restore ... ok
[INFO] [stdout] test infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles ... FAILED
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_j_resets_scroll_offset ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_down_key_increments_scroll_offset ... ok
[INFO] [stdout] test infra::git::tests::test_pull_rebase_targets_single_upstream_when_merge_targets_are_ambiguous ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_j_wraps_file_selection_from_last_to_first ... ok
[INFO] [stdout] test runtime::key_handler::tests::test_handle_confirmation_decision_confirm_deletes_session_when_context_exists ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_k_resets_scroll_offset ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_up_key_saturates_scroll_offset_at_zero ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_quit_key_returns_to_view_mode ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_non_diff_mode_leaves_mode_unchanged ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_shift_j_increments_scroll_offset ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_k_wraps_file_selection_from_first_to_last ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_shift_k_saturates_scroll_offset_at_zero ... ok
[INFO] [stdout] test runtime::mode::diff::tests::test_handle_question_mark_opens_help_overlay ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_down_key_increments_scroll_offset ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_non_help_mode_leaves_mode_unchanged ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_quit_key_restores_view_mode ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_question_mark_restores_list_mode ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_restores_diff_mode_with_content ... ok
[INFO] [stdout] test runtime::mode::help::tests::test_handle_up_key_saturates_at_zero ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_backspace_key_removes_open_command_character_while_editing ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_add_key_creates_session_and_opens_prompt_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_backtab_key_cycles_tabs_backward ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_char_key_appends_open_command_value_while_editing ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_e_key_without_session_selection_keeps_list_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_delete_key_without_selection_does_nothing ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_delete_key_opens_delete_confirmation ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_e_key_with_selected_session_keeps_list_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_opens_done_session ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_opens_canceled_session ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_opens_selected_question_session_in_question_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_opens_selected_session_in_view_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_refreshes_session_size_in_background ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_question_mark_opens_help_overlay ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_without_session_selection_keeps_list_mode ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_quit_key_shows_confirm_quit_overlay ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_build_stats_markdown_renders_aligned_usage_table_without_box ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_build_stats_markdown_renders_no_usage_message ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_format_duration_large ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_format_duration_mixed ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_switches_to_sessions_tab_from_projects_tab ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_format_duration_zero ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_format_stats_metric_line_uses_tab_delimiter ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_stops_open_command_editing_when_already_editing ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_enter_key_starts_open_command_editing_in_settings_tab ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_sync_key_opens_popup_when_main_has_uncommitted_changes ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_sync_key_shows_failure_when_upstream_is_missing ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_sync_key_is_case_insensitive ... ok
[INFO] [stdout] test runtime::mode::list::tests::test_handle_sync_key_uses_project_name_and_branch_in_popup_message ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_at_mention_select_dismisses_stale_mention_state ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_paste_inserts_multiline_content_with_normalized_newlines ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_at_mention_select_inserts_directory_with_trailing_slash ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_backspace_resets_history_navigation ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_backspace_with_shift_removes_whitespace_separators ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_backspace_with_alt_removes_whole_word ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_backspace_with_shift_removes_whole_word ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_active_at_mention_false_for_email_pattern ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_active_at_mention_false_without_state ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_active_at_mention_true_for_valid_query ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_control_line_delete_key_accepts_ctrl_u ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_control_line_delete_key_rejects_plain_u ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_control_newline_key_accepts_ctrl_j ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_control_newline_key_accepts_ctrl_m ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_control_newline_key_rejects_plain_j ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_enter_key_for_carriage_return ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_enter_key_for_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_enter_key_for_line_feed ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_enter_key_for_other_key ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_line_delete_backspace_accepts_super_modifier ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_line_delete_backspace_rejects_plain_backspace ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_plain_char_key_for_plain_character ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_plain_char_key_rejects_modifier_keys ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_plain_char_key_rejects_other_character ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_word_delete_backspace_accepts_alt_modifier ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_word_delete_backspace_accepts_shift_modifier ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_is_word_delete_backspace_rejects_plain_backspace ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_backspace_with_super_deletes_full_line ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_left_with_shift_moves_cursor_to_previous_word_start ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_char_activates_and_clears_at_mention_state ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_normalize_pasted_text_replaces_carriage_returns ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_commands_lists_all_commands ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_commands_match_model ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_commands_match_stats ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_commands_no_match ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_line_delete_with_ctrl_u_deletes_full_line ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_option_count_for_model_stage ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_insert_newline_for_alt_carriage_return ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_insert_newline_for_alt_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_insert_newline_for_alt_line_feed ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_insert_newline_for_alt_shift_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_control_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_non_enter_key ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_plain_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_slash_option_count_for_agent_stage ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_right_with_shift_moves_cursor_to_next_word_start ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_left_with_shift_skips_whitespace_separators ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_shift_enter ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_shift_line_feed ... ok
[INFO] [stdout] test runtime::mode::question::tests::test_build_question_reply_prompt_formats_all_pairs ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_handle_prompt_cancel_key_deletes_blank_session ... ok
[INFO] [stdout] test runtime::mode::question::tests::test_handle_paste_normalizes_line_endings ... ok
[INFO] [stdout] test runtime::mode::question::tests::test_handle_enter_on_last_question_transitions_to_view_mode ... ok
[INFO] [stdout] test runtime::mode::question::tests::test_handle_enter_with_blank_response_records_no_answer ... ok
[INFO] [stdout] test runtime::mode::question::tests::test_handle_escape_skips_question_with_no_answer ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_can_open_session_worktree_disables_done_state ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_can_open_session_worktree_disables_queued_state ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_can_open_session_worktree_enables_review_state ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_should_not_insert_newline_for_shift_carriage_return ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_can_open_session_worktree_disables_canceled_state ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_navigate_prompt_history_up_selects_latest_entry_and_saves_draft ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_done_output_toggle_key_accepts_done_status_with_t ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_done_output_toggle_key_rejects_control_modified_key ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_done_output_toggle_key_rejects_non_done_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_focused_review_loading_status_message_matches_model_aware_message ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_focused_review_loading_status_message_rejects_unrelated_message ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_action_allowed_only_for_non_done_non_in_progress_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_diff_allowed_only_for_review_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_focused_review_allowed_only_for_review_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_worktree_open_allowed_returns_false_for_canceled ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_worktree_open_allowed_returns_false_for_merge_queue_statuses ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_is_view_worktree_open_allowed_returns_true_for_in_progress ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_prompt_context_marks_email_pattern_as_inactive_mention ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_prompt_history_entries_extracts_user_prompts ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_prompt_history_entries_ignores_non_prompt_lines ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_prompt_history_entries_keeps_multiline_prompts ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_apply_view_scroll_and_output_mode_updates_focused_review_state ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_append_output_for_session_appends_text ... ok
[INFO] [stdout] test runtime::mode::prompt::tests::test_navigate_prompt_history_down_restores_draft_after_latest_entry ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_scroll_offset_down_returns_none_at_end_of_content ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_scroll_offset_up_uses_bottom_when_scroll_is_unset ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_open_merge_confirmation_sets_confirmation_mode_with_view_restore_state ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_focused_review_diff_for_view_session_returns_empty_diff_message ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_question_mark_sets_help_mode_from_view_context ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_context_falls_back_to_list_when_session_is_missing ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_session_state_maps_merge_queue_statuses ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_session_state_maps_rebasing_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_rebase_view_session_appends_error_output_without_review_status ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_focused_review_assist_model_returns_default_review_model_setting ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_format_sync_success_message_includes_markdown_sections ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_focused_review_diff_for_view_session_returns_git_diff_text ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_context_returns_existing_session_details ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_context_returns_none_for_non_view_mode ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_handle_enter_does_not_close_loading_sync_popup ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_scroll_offset_down_does_not_jump_to_bottom_for_wrapped_output ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_handle_enter_closes_sync_blocked_popup ... ok
[INFO] [stdout] test runtime::terminal::tests::launch_external_editor_returns_launcher_error ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_activity_day_key_with_offset_applies_negative_offset ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_activity_day_key_with_offset_applies_positive_offset ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_build_activity_heatmap_grid_places_values_in_expected_cells ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_build_heatmap_month_row_places_labels_on_week_columns ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_build_visible_heatmap_month_row_uses_trailing_weeks ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_heatmap_intensity_level_scales_from_zero_to_max ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_heatmap_max_count_returns_largest_daily_value ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_heatmap_month_markers_start_on_month_changes ... ok
[INFO] [stdout] test ui::activity_heatmap::tests::test_visible_heatmap_week_count_clamps_to_available_width ... ok
[INFO] [stdout] test runtime::terminal::tests::launch_external_editor_passes_working_directory_binary_and_args ... ok
[INFO] [stdout] test ui::components::chat_input::tests::test_builder_methods ... ok
[INFO] [stdout] test ui::components::chat_input::tests::test_total_viewport_line_count_uses_cursor_row_when_cursor_is_below_last_display_line ... ok
[INFO] [stdout] test ui::components::confirmation_overlay::tests::test_confirmation_overlay_new_stores_fields ... ok
[INFO] [stdout] test ui::components::confirmation_overlay::tests::test_confirmation_overlay_render_preserves_choices_for_long_message ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_list_lines_with_nested_structure ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_list_lines_with_no_files ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_list_lines_with_nonstandard_header ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_list_lines_with_rename ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_list_lines_with_same_path ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_tree_items_nested_structure ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_tree_items_returns_folders_and_files ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_file_tree_items_with_rename ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_filter_diff_lines_by_file ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_filter_diff_lines_by_folder ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_next_selected_index_wraps_from_last_to_first ... ok
[INFO] [stdout] test ui::components::file_explorer::tests::test_previous_selected_index_wraps_from_first_to_last ... ok
[INFO] [stdout] test ui::components::footer_bar::tests::test_footer_bar_new_with_git_branch ... ok
[INFO] [stdout] test ui::components::footer_bar::tests::test_footer_bar_new_without_git_branch ... ok
[INFO] [stdout] test ui::components::footer_bar::tests::test_footer_bar_render_with_git_branch ... ok
[INFO] [stdout] test ui::components::confirmation_overlay::tests::test_confirmation_overlay_render_hides_bottom_navigation_hints ... ok
[INFO] [stdout] test ui::components::footer_bar::tests::test_footer_bar_render_without_git_branch ... ok
[INFO] [stdout] test ui::components::footer_bar::tests::test_footer_bar_render_with_git_status ... ok
[INFO] [stdout] test ui::components::help_overlay::tests::test_centered_rect_centers_within_area ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_show_diff_for_view_session_switches_mode_to_diff ... ok
[INFO] [stdout] test ui::components::help_overlay::tests::test_centered_rect_clamps_to_area_when_small ... ok
[INFO] [stdout] test ui::components::help_overlay::tests::test_centered_rect_respects_minimum_dimensions ... ok
[INFO] [stdout] test ui::components::help_overlay::tests::test_help_overlay_new_stores_fields ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_info_overlay_new_stores_fields ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_info_overlay_render_includes_loading_indicator_when_loading ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_info_overlay_render_includes_ok_indicator ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_info_overlay_render_keeps_ok_indicator_for_multiline_message ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_total_lines_counts_wrapped_output_lines ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_markdown_message_with_block_headers_inserts_missing_section_spacing ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_message_lines_highlight_inline_code_segments ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_markdown_message_with_block_headers_formats_sync_sections ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_builder_methods ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_message_lines_keeps_each_sentence_on_its_own_line ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_horizontal_border_width_is_zero_without_vertical_borders ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_appends_empty_line_before_spinner ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_done_focused_review_mode_shows_summary_toggle_action ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_done_output_mode_shows_summary_toggle_action ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_done_summary_mode_shows_output_toggle_action ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_focused_review_mode_prefers_assisted_text ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_focused_review_mode_shows_status_message ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_focused_review_mode_shows_unavailable_message_without_assisted_text ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_render_user_prompt_with_cyan_bold_styling ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_use_full_panel_width_without_vertical_borders ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_uses_streamed_output_for_done_session_in_output_mode ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_uses_summary_for_done_session ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_text_with_spaced_user_input_adds_empty_line_before_and_after ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_uses_summary_for_canceled_session ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_lines_appends_empty_line_when_done ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_text_with_spaced_user_input_keeps_existing_empty_lines ... ok
[INFO] [stdout] test ui::components::info_overlay::tests::test_result_state_centers_branch_header_like_loading_state ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_output_text_with_spaced_user_input_keeps_multiline_user_prompt_together ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_rendered_line_count_counts_wrapped_content ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_status_message_for_merging ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_status_message_for_queued ... ok
[INFO] [stdout] test ui::components::status_bar::tests::test_status_bar_new_stores_versions ... ok
[INFO] [stdout] test ui::components::status_bar::tests::test_status_bar_render_shows_current_version_without_update ... ok
[INFO] [stdout] test ui::components::session_output::tests::test_status_message_uses_active_progress_with_animated_suffix ... ok
[INFO] [stdout] test ui::components::tab::tests::test_tab_spans_highlight_the_active_tab ... ok
[INFO] [stdout] test ui::components::tab::tests::test_tab_spans_include_selected_project_name_in_sessions_label ... ok
[INFO] [stdout] test ui::components::tab::tests::test_tab_spans_use_equal_spacing_between_labels ... ok
[INFO] [stdout] test ui::components::status_bar::tests::test_status_bar_render_shows_update_notice_when_available ... ok
[INFO] [stdout] test ui::diff_util::tests::test_build_focused_review_text_handles_empty_diff ... ok
[INFO] [stdout] test ui::diff_util::tests::test_diff_line_change_totals ... ok
[INFO] [stdout] test ui::diff_util::tests::test_diff_line_change_totals_ignores_headers ... ok
[INFO] [stdout] test ui::diff_util::tests::test_build_focused_review_text_includes_summary_and_critical_highlights ... ok
[INFO] [stdout] test ui::diff_util::tests::test_build_focused_review_text_uses_fallback_when_summary_and_critical_hits_missing ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_diff_lines_empty ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_diff_lines_full ... ok
[INFO] [stdout] test ui::diff_util::tests::test_max_diff_line_number ... ok
[INFO] [stdout] test ui::diff_util::tests::test_max_diff_line_number_empty ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_hunk_header_invalid ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_hunk_header_no_count ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_hunk_header_with_context ... ok
[INFO] [stdout] test ui::diff_util::tests::test_wrap_diff_content_empty ... ok
[INFO] [stdout] test ui::diff_util::tests::test_parse_hunk_header_basic ... ok
[INFO] [stdout] test ui::diff_util::tests::test_wrap_diff_content_exact ... ok
[INFO] [stdout] test ui::diff_util::tests::test_wrap_diff_content_fits ... ok
[INFO] [stdout] test ui::diff_util::tests::test_wrap_diff_content_wraps ... ok
[INFO] [stdout] test ui::icon::tests::test_as_str ... ok
[INFO] [stdout] test ui::icon::tests::test_current_spinner ... ok
[INFO] [stdout] test ui::icon::tests::test_display_matches_as_str ... ok
[INFO] [stdout] test ui::icon::tests::test_spinner_frames ... ok
[INFO] [stdout] test ui::icon::tests::test_spinner_wraps ... ok
[INFO] [stdout] test ui::layout::tests::test_calculate_input_height ... ok
[INFO] [stdout] test ui::layout::tests::test_calculate_input_viewport_clamps_cursor_to_last_line ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_at_mention_highlighting ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_cursor_at_start ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_cursor_before_wrapped_char ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_cursor_in_middle ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_cursor_moves_to_next_line_before_wrapped_word ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_cursor_on_second_line ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_exact_fit ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_empty ... ok
[INFO] [stdout] test ui::layout::tests::test_calculate_input_viewport_with_scroll ... ok
[INFO] [stdout] test ui::layout::tests::test_calculate_input_viewport_without_scroll ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_explicit_newline ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_multiline_exact_fit ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_multiple_newlines ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_no_highlight_for_email ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_wraps_whole_words_when_they_fit_on_next_line ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_single_line ... ok
[INFO] [stdout] test ui::layout::tests::test_compute_input_layout_wrap ... ok
[INFO] [stdout] test ui::layout::tests::test_move_input_cursor_up_on_wrapped_layout ... ok
[INFO] [stdout] test ui::layout::tests::test_input_cursor_position_accounts_for_border_and_offsets ... ok
[INFO] [stdout] test ui::layout::tests::test_move_input_cursor_down_on_wrapped_layout ... ok
[INFO] [stdout] test ui::layout::tests::test_placeholder_cursor_position_accounts_for_border_and_prompt_prefix ... ok
[INFO] [stdout] test ui::layout::tests::test_slash_menu_dropdown_height_includes_border_lines ... ok
[INFO] [stdout] test ui::layout::tests::test_slash_menu_dropdown_height_saturates_at_u16_max ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_keeps_prompt_continuation_line_verbatim ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_parses_inline_styles ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_leaves_unmatched_inline_delimiters_literal ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_renders_fenced_code_without_inline_parsing ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_renders_stats_metric_with_fixed_alignment ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_renders_horizontal_rule ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_renders_stats_section_title_style ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_styles_heading ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_styles_user_prompt ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_styles_multiline_user_prompt ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_treats_unclosed_fence_as_code ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_wraps_blockquote_with_prefix ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_wraps_bullets_with_continuation_indent ... ok
[INFO] [stdout] test ui::markdown::tests::test_render_markdown_wraps_numbered_list_with_continuation_indent ... ok
[INFO] [stdout] test ui::overlays::tests::test_sync_popup_message_with_branch_only ... ok
[INFO] [stdout] test ui::overlays::tests::test_sync_popup_message_with_project_and_branch ... ok
[INFO] [stdout] test ui::overlays::tests::test_sync_popup_message_with_project_only ... ok
[INFO] [stdout] test ui::overlays::tests::test_sync_popup_message_without_project_or_branch ... ok
[INFO] [stdout] test ui::pages::diff::tests::test_selected_diff_lines_returns_filtered_section_for_selected_file ... ok
[INFO] [stdout] test ui::pages::diff::tests::test_selected_diff_lines_returns_full_diff_when_index_is_out_of_bounds ... ok
[INFO] [stdout] test ui::pages::project_list::tests::test_format_last_opened_uses_iso_like_date ... ok
[INFO] [stdout] test ui::pages::project_list::tests::test_project_row_values_mark_active_project_title ... ok
[INFO] [stdout] test ui::pages::project_list::tests::test_session_count_line_colors_active_indicator_yellow ... ok
[INFO] [stdout] test ui::pages::project_list::tests::test_project_row_values_show_metadata ... ok
[INFO] [stdout] test ui::pages::project_list::tests::test_session_count_line_shows_plain_total_without_active ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_bottom_height_caps_prompt_input_panel_to_ten_lines ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_bottom_height_preserves_space_for_output_area ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_bottom_height_question_mode_includes_question_input_and_help_rows ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_caps_at_10 ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_clamps_selected_index ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_directory_has_trailing_slash ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_bottom_height_question_mode_preserves_space_for_output_area ... ok
[INFO] [stdout] test ui::layout::tests::test_first_table_column_width_uses_remaining_layout_space ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_empty_query_returns_all ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_no_matches ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_scroll_window ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_with_trailing_slash_includes_exact_directory ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_at_mention_menu_with_matches ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_slash_menu_for_agent_stage_has_agent_descriptions ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_slash_menu_for_command_stage_has_description ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_slash_menu_for_command_stage_includes_commands ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_build_slash_menu_for_model_stage_has_model_descriptions ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_command_description_stats ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_done_focused_review_mode_shows_summary_toggle_hint ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_rendered_output_line_count_counts_wrapped_content ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_canceled_shows_only_back_scroll_and_help ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_done_output_mode_shows_summary_toggle_hint ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_in_progress_shows_open_and_hides_diff ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_done_hides_open_hint ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_includes_reply_open_and_git_actions ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_review_shows_focused_review_and_hides_diff_hint ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_merge_queue_statuses_hide_open_editor ... ok
[INFO] [stdout] test ui::pages::session_chat::tests::test_view_help_text_rebasing_keeps_open ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_grouped_session_rows_includes_placeholder_for_groups_without_sessions ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_grouped_session_rows_orders_merge_queue_before_active_and_archive_sessions ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_model_column_width_uses_longest_model_value ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_preferred_initial_session_index_falls_back_to_first_grouped_session ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_preferred_initial_session_index_prefers_active_group_when_available ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_prepare_grouped_table_state_resets_offset_and_sets_selected_group_row ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_project_column_width_uses_longest_project_value ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_selected_render_row_maps_original_selection_to_grouped_index ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_content_chunks_use_horizontal_margin_without_top_spacing ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_session_list_help_text_hides_cancel_for_non_review_session ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_grouped_session_indexes_orders_selectable_sessions_without_headers ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_session_list_help_text_includes_open_editor_for_selected_session ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_session_list_help_text_includes_open_for_canceled_session ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_session_list_help_text_includes_sync_for_non_empty_sessions ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_size_color_uses_expected_palette ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_size_column_width_uses_header_width ... ok
[INFO] [stdout] test ui::pages::session_list::tests::test_status_column_width_uses_longest_possible_status_label ... ok
[INFO] [stdout] test ui::pages::stats::tests::test_build_heatmap_lines_trims_visible_weeks_on_narrow_width ... ok
[INFO] [stdout] test ui::pages::stats::tests::test_build_heatmap_lines_uses_persisted_activity_for_max_count ... ok
[INFO] [stdout] test ui::pages::diff::tests::test_render_shows_updated_diff_help_hint ... ok
[INFO] [stdout] test ui::state::app_mode::tests::test_confirmation_view_mode_into_view_mode_restores_snapshot_values ... ok
[INFO] [stdout] test ui::state::app_mode::tests::test_done_session_output_mode_toggle_switches_between_variants ... ok
[INFO] [stdout] test ui::state::app_mode::tests::test_help_context_list_keybindings_return_stored_actions ... ok
[INFO] [stdout] test ui::state::app_mode::tests::test_help_context_restore_mode_ignores_view_help_flags ... ok
[INFO] [stdout] test ui::state::app_mode::tests::test_help_context_view_keybindings_for_in_progress_hide_edit_actions ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_footer_text_joins_actions_in_order ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_session_list_actions_hide_enter_without_openable_session ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_session_list_footer_actions_hides_non_critical_session_commands ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_done_shows_toggle_and_hides_edit_actions ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_in_progress_shows_open_and_hides_edit_actions ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_interactive_hides_diff ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_merge_queue_hides_open_nvim_and_stop ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_rebasing_shows_open_without_stop ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_actions_review_shows_diff ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_footer_actions_merge_queue_hides_open_nvim_and_stop ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_footer_actions_rebasing_shows_open_without_stop ... ok
[INFO] [stdout] test ui::state::help_action::tests::test_view_footer_actions_review_shows_advanced_actions ... ok
[INFO] [stdout] test ui::text_util::tests::test_format_duration_compact ... ok
[INFO] [stdout] test ui::text_util::tests::test_format_token_count ... ok
[INFO] [stdout] test ui::text_util::tests::test_format_token_count_millions ... ok
[INFO] [stdout] test ui::text_util::tests::test_format_token_count_small ... ok
[INFO] [stdout] test ui::text_util::tests::test_format_token_count_thousands ... ok
[INFO] [stdout] test ui::text_util::tests::test_truncate_with_ellipsis_adds_three_dots_when_text_overflows ... ok
[INFO] [stdout] test ui::text_util::tests::test_truncate_with_ellipsis_keeps_full_text_when_it_fits ... ok
[INFO] [stdout] test ui::text_util::tests::test_truncate_with_ellipsis_uses_only_dots_for_tiny_widths ... ok
[INFO] [stdout] test ui::text_util::tests::test_wrap_lines_basic ... ok
[INFO] [stdout] test ui::text_util::tests::test_wrap_lines_wrapping ... ok
[INFO] [stdout] test ui::text_util::tests::test_wrap_styled_line_collapses_extra_whitespace ... ok
[INFO] [stdout] test ui::text_util::tests::test_wrap_styled_line_wraps_and_preserves_style ... ok
[INFO] [stdout] test ui::text_util::tests::test_wrap_styled_line_zero_width_returns_original_line ... ok
[INFO] [stdout] test ui::pages::stats::tests::test_render_shows_session_token_table ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_handle_esc_closes_sync_blocked_popup ... ok
[INFO] [stdout] test ui::pages::stats::tests::test_render_shows_activity_heatmap_legend ... ok
[INFO] [stdout] test ui::pages::stats::tests::test_render_does_not_show_session_summary_panel ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_handle_other_key_keeps_sync_blocked_popup_open ... ok
[INFO] [stdout] test runtime::mode::sync_blocked::tests::test_handle_r_keeps_sync_blocked_popup_open ... ok
[INFO] [stdout] test runtime::mode::session_view::tests::test_view_total_lines_respects_done_output_mode ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles' (1066) panicked at src/infra/git.rs:477:9:
[INFO] [stdout] git command ["push", "origin", "main"] failed: error: src refspec main does not match any
[INFO] [stdout] error: failed to push some refs to '/tmp/.tmpGoKVoN'
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5dd22ef0473a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5dd22ef0473a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5dd22ef0473a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5dd22ef0473a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5dd22ef1cf1a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5dd22ef1cf1a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x5dd22ef0aab2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x5dd22ef0aab2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x5dd22eee028f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5dd22eee028f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5dd22eefb519 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5dd22e6dd11c - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x5dd22e6dd11c - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x5dd22eefb792 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x5dd22eefb792 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x5dd22eee0348 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x5dd22eed79f9 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5dd22eee105d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x5dd22ef1d87c - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5dd22e204b80 - agentty::infra::git::tests::run_git_command::h5088cba0027e1a98
[INFO] [stdout]                                at /opt/rustwide/workdir/src/infra/git.rs:477:9
[INFO] [stdout]   20:     0x5dd22e20cbb6 - agentty::infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles::{{closure}}::he837c22d1e2e1fe5
[INFO] [stdout]                                at /opt/rustwide/workdir/src/infra/git.rs:998:9
[INFO] [stdout]   21:     0x5dd22e47ebf2 - <core::pin::Pin<P> as core::future::future::Future>::poll::h4a3f854b944304a8
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   22:     0x5dd22e47eeed - <core::pin::Pin<P> as core::future::future::Future>::poll::h95c1b81c345e549b
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   23:     0x5dd22e2c7acd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h840149d1ff1b842a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:70
[INFO] [stdout]   24:     0x5dd22e2c79db - tokio::task::coop::with_budget::ha9ceb5b2cd892081
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   25:     0x5dd22e2c79db - tokio::task::coop::budget::h61577ddbc08ea2f1
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   26:     0x5dd22e2c79db - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::he9644245c6acbef3
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:753:25
[INFO] [stdout]   27:     0x5dd22e2c4e30 - tokio::runtime::scheduler::current_thread::Context::enter::h864eccae6b329363
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:442:19
[INFO] [stdout]   28:     0x5dd22e2c6efd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::hfaa0cc3db12f0c69
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:752:44
[INFO] [stdout]   29:     0x5dd22e2c60f4 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::hb06269e8fd57dee6
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:68
[INFO] [stdout]   30:     0x5dd22e670e3b - tokio::runtime::context::scoped::Scoped<T>::set::hf963ed97e13c7161
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   31:     0x5dd22e541539 - tokio::runtime::context::set_scheduler::{{closure}}::h4c90cf9a920f7ae7
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:38
[INFO] [stdout]   32:     0x5dd22e5ddfa2 - std::thread::local::LocalKey<T>::try_with::h5c1466cbd63153b4
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   33:     0x5dd22e5dcb4e - std::thread::local::LocalKey<T>::with::hda7aba7673304cad
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   34:     0x5dd22e5414ed - tokio::runtime::context::set_scheduler::h350d6296de43696b
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context.rs:176:17
[INFO] [stdout]   35:     0x5dd22e2c5a60 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::h7010e4d74f73a892
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:840:27
[INFO] [stdout]   36:     0x5dd22e2c6136 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h367185bc9c8a0185
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:740:24
[INFO] [stdout]   37:     0x5dd22e2be860 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h4f8928b982959099
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   38:     0x5dd22e1ae173 - tokio::runtime::context::runtime::enter_runtime::hc30721315d454c99
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   39:     0x5dd22e2be571 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h51629f8a6a5486ba
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   40:     0x5dd22e421e44 - tokio::runtime::runtime::Runtime::block_on_inner::he8c7dbaf25a5937d
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:368:52
[INFO] [stdout]   41:     0x5dd22e42200f - tokio::runtime::runtime::Runtime::block_on::h025e8b0ca8cb7195
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.49.0/src/runtime/runtime.rs:342:18
[INFO] [stdout]   42:     0x5dd22e20c223 - agentty::infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles::he3d8171d85a865d7
[INFO] [stdout]                                at /opt/rustwide/workdir/src/infra/git.rs:1007:68
[INFO] [stdout]   43:     0x5dd22e20c2b7 - agentty::infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles::{{closure}}::hb5214e143727c05e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/infra/git.rs:965:83
[INFO] [stdout]   44:     0x5dd22dfa16f6 - core::ops::function::FnOnce::call_once::h98fe4e2c1c10371b
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x5dd22e6d11fb - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   46:     0x5dd22e6d11fb - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   47:     0x5dd22e6ddbeb - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   48:     0x5dd22e6ddbeb - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   49:     0x5dd22e6ddbeb - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   50:     0x5dd22e6ddbeb - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   51:     0x5dd22e6ddbeb - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   52:     0x5dd22e6ddbeb - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   53:     0x5dd22e6ddbeb - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   54:     0x5dd22e6d9304 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   55:     0x5dd22e6d9304 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   56:     0x5dd22e6e07f2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   57:     0x5dd22e6e07f2 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   58:     0x5dd22e6e07f2 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   59:     0x5dd22e6e07f2 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   60:     0x5dd22e6e07f2 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   61:     0x5dd22e6e07f2 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   62:     0x5dd22e6e07f2 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   63:     0x5dd22ef0376f - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   64:     0x5dd22ef0376f - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   65:     0x723d92309aa4 - <unknown>
[INFO] [stdout]   66:     0x723d92396a64 - clone
[INFO] [stdout]   67:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     infra::git::tests::test_list_upstream_commit_titles_returns_new_upstream_commit_titles
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 901 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.92s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "4a84e80e62520dbbca430c3edc1ad0a030e9c269f3fb945b8aa6f0eb07c13763", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4a84e80e62520dbbca430c3edc1ad0a030e9c269f3fb945b8aa6f0eb07c13763", kill_on_drop: false }`
[INFO] [stdout] 4a84e80e62520dbbca430c3edc1ad0a030e9c269f3fb945b8aa6f0eb07c13763
