[INFO] cloning repository https://github.com/MichaelVessia/grove [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/MichaelVessia/grove" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelVessia%2Fgrove", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelVessia%2Fgrove'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d4876a7c2014a1aceba5c12472133a39c679298e [INFO] testing MichaelVessia/grove against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FMichaelVessia%2Fgrove" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/MichaelVessia/grove [INFO] finished tweaking git repo https://github.com/MichaelVessia/grove [INFO] tweaked toml for git repo https://github.com/MichaelVessia/grove written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/MichaelVessia/grove on toolchain f9988fefd3add01f414f52b414308e7872622fee [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/MichaelVessia/grove 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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating git repository `https://github.com/Dicklesworthstone/frankentui.git` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rusty-fork v0.3.1 [INFO] [stderr] Downloaded toml_parser v1.0.8+spec-1.1.0 [INFO] [stderr] Downloaded unicode-display-width v0.3.0 [INFO] [stderr] Downloaded str_indices v0.4.4 [INFO] [stderr] Downloaded portable-pty v0.9.0 [INFO] [stderr] Downloaded serial2 v0.2.34 [INFO] [stderr] Downloaded signal-hook v0.4.3 [INFO] [stderr] Downloaded proptest v1.10.0 [INFO] [stderr] Downloaded arc-swap v1.8.2 [INFO] [stderr] Downloaded ropey v1.6.1 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] [stderr] Downloaded syn v2.0.115 [INFO] [stderr] Downloaded frankenterm-core v0.2.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aa8b147b04c7848d3f1d2f33901ff5448ca7329f0ba6213588eee4c4d32f2cd7 [INFO] running `Command { std: "docker" "start" "-a" "aa8b147b04c7848d3f1d2f33901ff5448ca7329f0ba6213588eee4c4d32f2cd7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aa8b147b04c7848d3f1d2f33901ff5448ca7329f0ba6213588eee4c4d32f2cd7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aa8b147b04c7848d3f1d2f33901ff5448ca7329f0ba6213588eee4c4d32f2cd7", kill_on_drop: false }` [INFO] [stdout] aa8b147b04c7848d3f1d2f33901ff5448ca7329f0ba6213588eee4c4d32f2cd7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ffc20f85c98d4e50774780404f5bd8793135d0e5d27fe478be935809972f9d2f [INFO] running `Command { std: "docker" "start" "-a" "ffc20f85c98d4e50774780404f5bd8793135d0e5d27fe478be935809972f9d2f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.181 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling signal-hook v0.4.3 [INFO] [stderr] Compiling unicode-display-width v0.3.0 [INFO] [stderr] Compiling bumpalo v3.20.2 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling str_indices v0.4.4 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling ropey v1.6.1 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling ftui-i18n v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling arc-swap v1.8.2 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling png v0.18.0 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling serial2 v0.2.34 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling toml_parser v1.0.8+spec-1.1.0 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling toml v0.9.12+spec-1.1.0 [INFO] [stderr] Compiling sysinfo v0.33.1 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling portable-pty v0.9.0 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling ftui-core v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling tungstenite v0.28.0 [INFO] [stderr] Compiling ftui-render v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling ftui-layout v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling frankenterm-core v0.2.0 [INFO] [stderr] Compiling ftui-style v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-backend v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-pty v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling rusqlite v0.32.1 [INFO] [stderr] Compiling ftui-text v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-runtime v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-widgets v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-extras v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling grove v0.1.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 38s [INFO] running `Command { std: "docker" "inspect" "ffc20f85c98d4e50774780404f5bd8793135d0e5d27fe478be935809972f9d2f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ffc20f85c98d4e50774780404f5bd8793135d0e5d27fe478be935809972f9d2f", kill_on_drop: false }` [INFO] [stdout] ffc20f85c98d4e50774780404f5bd8793135d0e5d27fe478be935809972f9d2f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 37bd9129bfd2cf5c3b65f2b0eeeeb4fa13ae5fe80249f6b5fe7a47769c1eeb55 [INFO] running `Command { std: "docker" "start" "-a" "37bd9129bfd2cf5c3b65f2b0eeeeb4fa13ae5fe80249f6b5fe7a47769c1eeb55", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling ftui-core v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling ftui-render v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-layout v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-pty v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-style v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-backend v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-text v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-runtime v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-widgets v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling ftui-extras v0.2.1 (https://github.com/Dicklesworthstone/frankentui.git?tag=v0.2.1#87fc5e94) [INFO] [stderr] Compiling grove v0.1.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 13s [INFO] running `Command { std: "docker" "inspect" "37bd9129bfd2cf5c3b65f2b0eeeeb4fa13ae5fe80249f6b5fe7a47769c1eeb55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37bd9129bfd2cf5c3b65f2b0eeeeb4fa13ae5fe80249f6b5fe7a47769c1eeb55", kill_on_drop: false }` [INFO] [stdout] 37bd9129bfd2cf5c3b65f2b0eeeeb4fa13ae5fe80249f6b5fe7a47769c1eeb55 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] abd90b66484a1fb5567a927e83be13c119f9b5c35de1da847594f292f50a8d83 [INFO] running `Command { std: "docker" "start" "-a" "abd90b66484a1fb5567a927e83be13c119f9b5c35de1da847594f292f50a8d83", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.40s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/grove-3cd92ddf8b90a25b) [INFO] [stdout] [INFO] [stdout] running 994 tests [INFO] [stdout] test application::agent_runtime::agents::claude::tests::session_signal_claude_marks_recent_activity_independently_of_excerpt ... ok [INFO] [stdout] test application::agent_runtime::agents::claude::tests::session_signal_claude_extracts_waiting_excerpt_from_message_content ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::session_cwd_cache_reloads_when_file_modification_changes ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::session_lookup_cache_prunes_oldest_entries_when_over_limit ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::session_lookup_cache_ttl_evicts_stale_entries_and_recomputes ... ok [INFO] [stdout] test application::agent_runtime::agents::shared::tests::cwd_matches_accepts_equal_or_descendant_paths ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::message_status_cache_keeps_old_entries_when_within_size_cap ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_preserves_carriage_return_for_render_output ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_strips_ansi_control_sequences ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_normalizes_colon_delimited_sgr_sequences ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_strips_sgr_and_preserves_unicode_text ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_strips_terminal_control_bytes ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::normalize_colon_delimited_sgr_sequences_rewrites_linux_style_colors ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_command_with_skips_empty_commands ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_command_with_invokes_executor_for_non_empty_commands ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::session_signal_codex_marks_recent_activity_independently_of_excerpt ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_commands_with_executor_skips_empty_commands ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_commands_for_mode_process_returns_string_errors ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_with_prefixes_script_write_errors ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_for_mode_delegating_prefixes_script_write_errors ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_with_executor_runs_cleanup_then_prelaunch_then_launch ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_keeps_unprefixed_script_write_errors ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_commands_with_uses_supplied_executor ... ok [INFO] [stdout] test application::agent_runtime::agents::shared::tests::cwd_matches_rejects_non_component_prefixes ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::kill_workspace_session_command_uses_project_scoped_tmux_session_name ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_request_with_result_for_mode_includes_workspace_context ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::default_agent_command_maps_permission_modes_to_flags ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_commands_returns_error_for_missing_program ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_applies_tmux_theme_commands_before_agent_start ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_cleanup_kills_stale_session_before_creating_new_one ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_includes_exit_code_hook ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_disables_mouse_on_managed_sessions ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_agent_env_exports_before_agent_start ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::workspace_session_name_matches_accepts_numbered_agent_and_shell_tabs ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_workspace_init_runs_before_agent ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_drops_charset_escape_with_multibyte_suffix ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::kill_workspace_session_commands_include_agent_git_and_shell_sessions ... ok [INFO] [stdout] test application::agent_runtime::capture::tests::capture_change_first_capture_marks_changed ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_stop_workspace_with_result_for_mode_includes_workspace_context ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::agent_command_override_normalization_ignores_empty_values ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::agent_command_override_normalization_trims_whitespace ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::workspace_session_names_for_cleanup_filters_to_workspace_tabs ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_capture_dimensions_resizes_before_send_keys ... ok [INFO] [stdout] test application::agent_runtime::agents::codex::tests::session_signal_codex_extracts_waiting_excerpt_from_output_text ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::workspace_launch_plan_cleanup_kills_stale_session ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_non_direnv_init_does_not_wrap_agent_command_in_direnv_exec ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::build_task_launch_plan_targets_task_root_session ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::tmux_missing_session_error_detection_matches_known_patterns ... ok [INFO] [stdout] test application::agent_runtime::polling::tests::workspace_status_poll_policy_requires_supported_agent ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_commands_runs_successful_command_sequence ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_without_prompt_sends_agent_directly ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::stop_plan_uses_ctrl_c_then_kill_session_then_cleanup ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::tmux_duplicate_session_error_detection_matches_known_patterns ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_workspace_init_wraps_agent_start_command ... ok [INFO] [stdout] test application::agent_runtime::polling::tests::poll_intervals_follow_preview_and_interactive_rules ... ok [INFO] [stdout] test application::agent_runtime::launch_plan::tests::launch_plan_with_prompt_writes_launcher_script ... ok [INFO] [stdout] test application::agent_runtime::polling::tests::workspace_status_targets_for_polling_skip_selected_session ... ok [INFO] [stdout] test application::agent_runtime::polling::tests::workspace_status_session_target_skips_selected_live_session ... ok [INFO] [stdout] test application::agent_runtime::polling::tests::workspace_status_targets_for_polling_with_live_preview_skips_selected_session ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_ignores_codex_rust_string_artifact ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_returns_latest_claude_resume_command ... ok [INFO] [stdout] test application::agent_runtime::reconciliation::tests::reconciliation_marks_active_orphaned_and_orphan_sessions ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_ignores_codex_prose_resume_phrase ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_adds_permission_mode_for_claude_resume ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_parses_claude_resume_with_flag_before_resume ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_adds_permission_mode_for_codex_dash_resume ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_adds_permission_mode_for_codex_resume ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_parses_claude_short_resume_flag ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_sends_ctrl_c_for_codex ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_parses_real_claude_exit_output ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_parses_real_codex_exit_output ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_applies_agent_env_before_resume ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::build_shell_launch_plan_with_direnv_init_wraps_run_command_in_direnv_exec ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::build_shell_launch_plan_with_workspace_init_runs_before_empty_command ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::git_preview_session_if_ready_requires_matching_ready_session ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_sends_exit_and_resume_commands ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::build_shell_launch_plan_skips_send_keys_when_command_is_empty ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::git_session_name_uses_project_context_when_present ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::codex_session_permission_mode_detects_approval_policy ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_resume_missing_error_includes_capture_excerpt ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::restart_workspace_in_pane_with_io_returns_error_when_resume_missing ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_normalizes_codex_dash_resume_to_subcommand ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::extract_agent_resume_command_ignores_codex_placeholder_id ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::build_shell_launch_plan_with_capture_dimensions_resizes_before_send_keys ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::launch_request_for_workspace_copies_workspace_context_and_options ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::live_preview_session_for_tab_uses_git_or_agent_policy ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::session_name_for_workspace_ref_uses_project_context_when_present ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::session_name_sanitizes_workspace_label ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::session_names_distinguish_task_root_and_worktree_scope ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_writes_launcher_script_and_executes_commands ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::shell_launch_request_for_workspace_uses_workspace_path_and_options ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::shell_session_name_uses_project_context_when_present ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::task_session_names_reuse_workspace_sanitization ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::workspace_can_enter_interactive_depends_on_preview_tab_mode ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::workspace_can_start_agent_depends_on_status_and_support ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::workspace_can_stop_agent_depends_on_session_status ... ok [INFO] [stdout] test application::agent_runtime::execution::tests::execute_launch_plan_with_executor_tolerates_cleanup_cmd_failure ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::live_preview_capture_target_for_tab_sets_capture_mode ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::workspace_session_for_preview_tab_respects_preview_tab_mode ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::workspace_init_runs_directly_without_lock_wrapper ... ok [INFO] [stdout] test application::agent_runtime::sessions::tests::live_preview_agent_session_requires_live_workspace_session ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::infer_codex_permission_mode_in_home_uses_workspace_session_file ... ok [INFO] [stdout] test application::agent_runtime::status::tests::exit_code_file_determines_error_status ... ok [INFO] [stdout] test application::agent_runtime::status::tests::missing_exit_code_file_falls_through_to_heuristics ... ok [INFO] [stdout] test application::agent_runtime::status::tests::exit_code_file_takes_priority_over_text_content ... ok [INFO] [stdout] test application::agent_runtime::status::tests::read_session_exit_code_returns_none_for_invalid_content ... ok [INFO] [stdout] test application::agent_runtime::status::tests::invalid_exit_code_file_falls_through_to_heuristics ... ok [INFO] [stdout] test application::agent_runtime::status::tests::claude_session_file_marks_waiting_when_last_message_is_assistant ... ok [INFO] [stdout] test application::agent_runtime::status::tests::codex_attention_marker_exists_when_last_message_is_assistant ... ok [INFO] [stdout] test application::agent_runtime::status::tests::read_session_exit_code_returns_none_for_missing_file ... ok [INFO] [stdout] test application::agent_runtime::restart::tests::infer_claude_permission_mode_in_home_uses_project_session_file ... ok [INFO] [stdout] test application::agent_runtime::status::tests::codex_session_file_marks_waiting_when_last_message_is_assistant ... ok [INFO] [stdout] test application::agent_runtime::status::tests::exit_code_file_determines_done_status ... ok [INFO] [stdout] test application::agent_runtime::status::tests::exit_code_file_nonzero_is_error_regardless_of_code ... ok [INFO] [stdout] test application::agent_runtime::status::tests::read_session_exit_code_parses_valid_file ... ok [INFO] [stdout] test application::agent_runtime::status::tests::text_based_done_error_patterns_no_longer_trigger_without_exit_file ... ok [INFO] [stdout] test application::agent_runtime::status::tests::background_status_signal_reads_waiting_from_session_files_without_pane_text ... ok [INFO] [stdout] test application::agent_runtime::status::tests::claude_attention_marker_exists_when_last_message_is_assistant ... ok [INFO] [stdout] test application::agent_runtime::status::tests::status_resolution_requires_unclosed_thinking_tags ... ok [INFO] [stdout] test application::agent_runtime::status::tests::status_override_uses_session_files_for_active_waiting ... ok [INFO] [stdout] test application::agent_runtime::status::tests::waiting_prompt_detects_codex_shortcuts_hint ... ok [INFO] [stdout] test application::agent_runtime::status::tests::waiting_prompt_detects_unicode_prompt_prefix ... ok [INFO] [stdout] test application::agent_runtime::status::tests::waiting_prompt_does_not_treat_generic_skills_hint_as_waiting ... ok [INFO] [stdout] test application::agent_runtime::status::tests::waiting_prompt_does_not_treat_plain_shell_angle_prompt_as_waiting ... ok [INFO] [stdout] test application::agent_runtime::status::tests::waiting_prompt_checks_tail_lines_only ... ok [INFO] [stdout] test application::agent_runtime::tmux_theme::tests::tmux_theme_commands_do_not_override_window_default_colors ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_legacy_grove_session_missing_metadata ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_configured_repo_missing_base_task_manifest ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_invalid_task_manifest ... ok [INFO] [stdout] test application::agent_runtime::status::tests::status_resolution_core_priority_order ... ok [INFO] [stdout] test application::doctor::tests::diagnose_warns_when_tmux_checks_are_unavailable ... ok [INFO] [stdout] test application::doctor::tests::report_counts_findings_by_severity ... ok [INFO] [stdout] test application::doctor::tests::report_deduplicates_repair_steps_for_same_root_cause ... ok [INFO] [stdout] test application::interactive::tests::alt_copy_and_paste_map_to_special_actions ... ok [INFO] [stdout] test application::hardening::tests::generation_helpers_increment_and_cleanup ... ok [INFO] [stdout] test application::interactive::tests::back_tab_maps_to_tmux_btab ... ok [INFO] [stdout] test application::doctor::tests::report_orders_repair_steps_deterministically ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_missing_base_marker ... ok [INFO] [stdout] test application::interactive::tests::key_mapping_covers_named_and_literal_tmux_forms ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_missing_worktree_path ... ok [INFO] [stdout] test application::doctor::tests::diagnose_skips_hidden_base_project_paths ... ok [INFO] [stdout] test application::interactive::tests::ctrl_backslash_exits_immediately ... ok [INFO] [stdout] test application::interactive::tests::cursor_overlay_marks_current_column ... ok [INFO] [stdout] test application::hardening::tests::missing_workspaces_trigger_prune_signal ... ok [INFO] [stdout] test application::hardening::tests::orphaned_sessions_are_sessions_without_matching_workspace ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_orphaned_grove_session ... ok [INFO] [stdout] test application::interactive::tests::modified_enter_forwards_via_tmux_literal_send_keys ... ok [INFO] [stdout] test application::hardening::tests::working_directory_recovers_to_repo_root_when_deleted ... ok [INFO] [stdout] test application::interactive::tests::ansi_cursor_overlay_preserves_ansi_and_inserts_marker ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_duplicate_task_slug ... ok [INFO] [stdout] test application::interactive::tests::modified_enter_maps_to_kitty_csi_u_sequence ... ok [INFO] [stdout] test application::preview::tests::apply_capture_uses_terminal_text_for_carriage_return_overwrite ... ok [INFO] [stdout] test application::preview::tests::capture_record_contains_expected_fields ... ok [INFO] [stdout] test application::preview::tests::capture_ignores_mouse_noise_in_clean_diff ... ok [INFO] [stdout] test application::interactive::tests::paste_payload_wraps_only_when_bracketed_mode_and_large_input ... ok [INFO] [stdout] test application::interactive::tests::repeated_escape_is_forwarded_again ... ok [INFO] [stdout] test application::preview::tests::apply_capture_builds_plain_and_styled_preview_from_ansi ... ok [INFO] [stdout] test application::preview::tests::apply_capture_builds_parsed_lines_for_plain_multiline_text ... ok [INFO] [stdout] test application::preview::tests::apply_capture_builds_plain_and_styled_preview_from_colon_delimited_ansi ... ok [INFO] [stdout] test application::preview::tests::capture_record_ring_buffer_caps_at_10 ... ok [INFO] [stdout] test application::preview::tests::apply_capture_carries_style_across_lines_until_reset ... ok [INFO] [stdout] test application::preview::tests::apply_capture_replaces_lines_when_clean_output_changes ... ok [INFO] [stdout] test application::interactive::tests::double_escape_is_forwarded_to_the_session ... ok [INFO] [stdout] test application::preview::tests::apply_capture_preserves_text_after_wide_characters ... ok [INFO] [stdout] test application::session_cleanup::tests::plan_includes_stale_auxiliary_only_when_opted_in ... ok [INFO] [stdout] test application::doctor::tests::diagnose_reports_stale_auxiliary_session ... ok [INFO] [stdout] test application::preview::tests::split_output_lines_preserves_trailing_blank_rows ... ok [INFO] [stdout] test application::preview::tests::split_output_lines_normalizes_crlf_line_endings ... ok [INFO] [stdout] test application::preview::tests::raw_only_control_sequence_change_does_not_rewrite_visible_preview ... ok [INFO] [stdout] test application::scale_benchmark::tests::compare_baseline_flags_severe_p95_regression ... ok [INFO] [stdout] test application::scale_benchmark::tests::flow_stats_percentiles_use_nearest_rank ... ok [INFO] [stdout] test application::session_cleanup::tests::parse_tmux_sessions_output_keeps_task_and_worktree_sessions ... ok [INFO] [stdout] test application::agent_runtime::tmux_theme::tests::grove_managed_tmux_sessions_filters_and_deduplicates_known_prefixes ... ok [INFO] [stdout] test application::preview::tests::apply_capture_with_empty_output_keeps_parsed_lines_empty ... ok [INFO] [stdout] test application::session_cleanup::tests::plan_marks_orphan_task_sessions ... ok [INFO] [stdout] test application::session_cleanup::tests::plan_marks_numbered_shell_session_stale_when_enabled ... ok [INFO] [stdout] test application::session_cleanup::tests::plan_skips_attached_by_default ... ok [INFO] [stdout] test application::session_cleanup::tests::session_cleanup_targets_task_and_worktree_sessions ... ok [INFO] [stdout] test application::session_cleanup::tests::plan_recognizes_numbered_agent_and_shell_sessions_as_expected ... ok [INFO] [stdout] test application::scale_benchmark::tests::synthetic_scale_fixture_discovers_tasks ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_base_task_validates_repository_path_exists ... ok [INFO] [stdout] test application::task_discovery::tests::bootstrap_task_data_reconciles_running_worktree_sessions ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_base_task_registers_repo_root_as_main_worktree ... ok [INFO] [stdout] test application::task_lifecycle::tests::delete_base_task_removes_only_manifest_directory ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_request_accepts_pull_request_source ... ok [INFO] [stdout] test application::task_lifecycle::tests::delete_created_base_task_removes_manifest_directory ... ok [INFO] [stdout] test application::task_lifecycle::tests::delete_task_removes_all_worktrees_and_task_root ... ok [INFO] [stdout] test application::task_lifecycle::tests::repo_directory_name_uses_repository_path_basename ... ok [INFO] [stdout] test application::task_lifecycle::tests::delete_task_removes_manifest_directory_for_migrated_task ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::copy_env_files_only_copies_known_env_files ... ok [INFO] [stdout] test application::task_discovery::tests::bootstrap_task_data_reports_invalid_manifests ... ok [INFO] [stdout] test application::task_discovery::tests::bootstrap_task_data_loads_tasks_from_task_manifests ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::ensure_git_exclude_entries_does_not_modify_gitignore ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::ensure_git_exclude_entries_is_idempotent ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::ensure_git_exclude_entries_supports_gitdir_pointer_file ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_builds_one_worktree_per_repository_under_task_root ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_cleans_up_empty_dir_on_git_failure ... ok [INFO] [stdout] test application::task_lifecycle::tests::add_worktree_to_task_in_root_appends_repository_and_rewrites_manifest ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_resolves_base_branch_per_repository ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::read_workspace_markers_rejects_empty_base_marker ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::read_workspace_markers_requires_base_marker ... ok [INFO] [stdout] test application::task_lifecycle::tests::materialize_base_task_manifest_skips_project_already_represented_by_task ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::delete_workspace_prunes_missing_worktree ... ok [INFO] [stdout] test application::task_lifecycle::tests::detect_repository_base_branch_prefers_current_then_common_names ... ok [INFO] [stdout] test application::task_lifecycle::tests::materialize_base_task_manifest_creates_base_task_for_unrepresented_project ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::delete_workspace_records_branch_delete_failure_as_warning ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::workspace_lifecycle_error_messages_are_user_friendly ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::write_workspace_base_marker_writes_expected_value ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_benchmark_scale_options ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_cleanup_sessions_options ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_debug_record_flag ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_doctor_options ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_event_log_and_print_hello ... ok [INFO] [stdout] test cli::tests::cli_parser_reads_replay_options ... ok [INFO] [stdout] test cli::tests::cli_parser_rejects_benchmark_and_replay_combination ... ok [INFO] [stdout] test cli::tests::cli_parser_rejects_benchmark_flags_without_benchmark_subcommand ... ok [INFO] [stdout] test cli::tests::cli_parser_rejects_cleanup_flags_without_cleanup_subcommand ... ok [INFO] [stdout] test cli::tests::cli_parser_rejects_doctor_combined_with_other_modes ... ok [INFO] [stdout] test cli::tests::cli_parser_rejects_replay_flags_without_replay_subcommand ... ok [INFO] [stdout] test cli::tests::cli_parser_requires_event_log_path ... ok [INFO] [stdout] test cli::tests::debug_record_path_uses_grove_directory_and_timestamp_prefix ... ok [INFO] [stdout] test cli::tests::doctor_exit_code_is_nonzero_for_actionable_findings ... ok [INFO] [stdout] test cli::tests::doctor_exit_code_is_zero_for_clean_report ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::delete_workspace_updates_task_manifest_to_remove_worktree ... ok [INFO] [stdout] test cli::tests::ensure_event_log_parent_directory_creates_missing_directories ... ok [INFO] [stdout] test cli::tests::resolve_event_log_path_keeps_absolute_paths_unchanged ... ok [INFO] [stdout] test cli::tests::resolve_event_log_path_keeps_grove_prefixed_relative_paths ... ok [INFO] [stdout] test domain::tests::agent_type_cycles_all_variants ... ok [INFO] [stdout] test domain::tests::agent_type_metadata_roundtrips_marker ... ok [INFO] [stdout] test cli::tests::resolve_event_log_path_places_relative_paths_under_grove_directory ... ok [INFO] [stdout] test domain::tests::main_workspace_requires_main_status ... ok [INFO] [stdout] test domain::tests::permission_mode_cycles_claude_through_three_states ... ok [INFO] [stdout] test domain::tests::permission_mode_cycles_codex_through_two_states ... ok [INFO] [stdout] test domain::tests::permission_mode_codex_auto_falls_back_to_default ... ok [INFO] [stdout] test domain::tests::permission_mode_from_legacy_bool ... ok [INFO] [stdout] test domain::tests::permission_mode_global_cycles_three_states ... ok [INFO] [stdout] test domain::tests::permission_mode_from_marker_parses_legacy_and_new_values ... ok [INFO] [stdout] test domain::tests::permission_mode_is_unsafe ... ok [INFO] [stdout] test domain::tests::permission_mode_serde_roundtrip ... ok [INFO] [stdout] test domain::tests::task_accepts_single_repository_worktree ... ok [INFO] [stdout] test domain::tests::task_requires_non_empty_name_slug_root_and_worktrees ... ok [INFO] [stdout] test domain::tests::workspace_accepts_pull_request_metadata ... ok [INFO] [stdout] test domain::tests::workspace_accepts_valid_values ... ok [INFO] [stdout] test domain::tests::workspace_requires_non_empty_name_and_branch ... ok [INFO] [stdout] test domain::tests::worktree_requires_repository_name_and_paths ... ok [INFO] [stdout] test infrastructure::adapters::tests::build_workspaces_includes_main_and_unmanaged_worktrees ... ok [INFO] [stdout] test infrastructure::adapters::tests::parse_branch_activity_collects_unix_timestamps ... ok [INFO] [stdout] test infrastructure::adapters::tests::parse_worktree_porcelain_rejects_metadata_before_worktree ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::delete_workspace_without_project_path_uses_current_directory ... ok [INFO] [stdout] test infrastructure::adapters::tests::parse_worktree_porcelain_supports_branch_and_detached_entries ... ok [INFO] [stdout] test infrastructure::adapters::tests::workspace_name_from_path_strips_repo_prefix_for_non_main_worktrees ... ok [INFO] [stdout] test infrastructure::config::tests::missing_config_uses_defaults ... ok [INFO] [stdout] test infrastructure::config::tests::repository_aliases_share_project_config_shape ... ok [INFO] [stdout] test infrastructure::config::tests::load_old_config_without_projects_defaults_to_empty_projects ... ok [INFO] [stdout] test infrastructure::config::tests::load_project_without_defaults_uses_project_defaults_fallback ... ok [INFO] [stdout] test infrastructure::config::tests::save_global_to_path_does_not_clear_projects_state ... ok [INFO] [stdout] test infrastructure::config::tests::task_order_round_trips_through_projects_state ... ok [INFO] [stdout] test infrastructure::config::tests::save_and_load_round_trip ... ok [INFO] [stdout] test infrastructure::event_log::tests::file_event_logger_writes_ndjson ... ok [INFO] [stdout] test infrastructure::event_log::tests::null_event_logger_is_noop ... ok [INFO] [stdout] test infrastructure::paths::tests::different_paths_compare_not_equal ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::update_workspace_from_base_rejects_matching_branch_for_non_main_workspace ... ok [INFO] [stdout] test infrastructure::paths::tests::raw_paths_compare_equal_when_canonicalize_fails ... ok [INFO] [stdout] test infrastructure::paths::tests::tasks_root_defaults_under_home_directory ... ok [INFO] [stdout] test infrastructure::config::tests::save_projects_to_path_does_not_clear_global_settings ... ok [INFO] [stdout] test infrastructure::paths::tests::canonicalized_paths_compare_equal ... ok [INFO] [stdout] test infrastructure::process::tests::execute_command_ignores_empty_commands ... ok [INFO] [stdout] test infrastructure::process::tests::stderr_trimmed_ignores_shell_init_getcwd_noise ... ok [INFO] [stdout] test infrastructure::process::tests::execute_command_reports_exit_status_when_stderr_missing ... ok [INFO] [stdout] test infrastructure::process_metrics::tests::unavailable_snapshot_formats_as_unavailable ... ok [INFO] [stdout] test ui::mouse::tests::clamp_sidebar_ratio_bounds_values ... ok [INFO] [stdout] test ui::mouse::tests::drag_ratio_is_clamped_between_ten_and_sixty_percent ... ok [INFO] [stdout] test ui::state::tests::app_state_tracks_selected_task_and_selected_worktree ... ok [INFO] [stdout] test ui::state::tests::reducer_moves_selection_with_bounds ... ok [INFO] [stdout] test ui::state::tests::reducer_switches_modes ... ok [INFO] [stdout] test ui::state::tests::select_index_syncs_task_and_worktree_indices ... ok [INFO] [stdout] test ui::state::tests::select_workspace_path_restores_selection_fields ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::parse_shell_lookup_line_extracts_built_in_message_path ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::parse_shell_lookup_line_extracts_direct_path ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::update_workspace_from_base_never_stops_sessions ... ok [INFO] [stdout] test infrastructure::task_manifest::tests::task_manifest_round_trips_multi_repo_task ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::resolve_lazygit_command_prefers_override ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::resolve_lazygit_command_prefers_path_when_available ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::resolve_lazygit_command_falls_back_to_plain_command ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::resolve_lazygit_command_uses_login_shell_path ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::parse_shell_lookup_line_ignores_noise_path_with_different_binary_name ... ok [INFO] [stdout] test infrastructure::process_metrics::tests::format_memory_bytes_uses_human_readable_units ... ok [INFO] [stdout] test ui::tui::bootstrap_app::tests::resolve_lazygit_command_uses_standard_location ... ok [INFO] [stdout] test ui::tui::bootstrap_discovery::tests::bootstrap_task_data_ignores_configured_repo_without_manifest ... ok [INFO] [stdout] test ui::tui::bootstrap_discovery::tests::bootstrap_task_data_keeps_manifest_tasks_only ... ok [INFO] [stdout] test infrastructure::process::tests::execute_command_reports_stderr_when_available ... ok [INFO] [stdout] test ui::tui::dialogs_projects_search::tests::discover_project_repo_roots_finds_nested_git_directories ... ok [INFO] [stdout] test ui::tui::dialogs::tests::modal_actions_row_pads_to_exact_width_after_truncation ... ok [INFO] [stdout] test ui::tui::dialogs_projects_search::tests::project_path_search_input_uses_nearest_existing_ancestor ... ok [INFO] [stdout] test ui::tui::dialogs::tests::modal_labeled_input_row_uses_native_single_cell_truncation ... ok [INFO] [stdout] test ui::tui::dialogs_projects_search::tests::rank_project_path_matches_prefers_basename_and_ancestor_repo ... ok [INFO] [stdout] test ui::tui::dialogs_state::tests::launch_dialog_field_previous_cycles_through_all_fields ... ok [INFO] [stdout] test ui::tui::dialogs_state::tests::launch_dialog_field_next_cycles_through_all_fields ... ok [INFO] [stdout] test ui::tui::performance::tests::duration_window_computes_recent_average_and_p95 ... ok [INFO] [stdout] test ui::tui::dialogs_projects_search::tests::rank_project_path_matches_expands_tilde_queries_before_scoring ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::merge_workspace_failure_does_not_stop_sessions ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_key_event_round_trip_preserves_code_modifiers_and_kind ... ok [INFO] [stdout] test ui::tui::bootstrap_discovery::tests::bootstrap_task_data_skips_hidden_base_project_paths ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::merge_workspace_requires_clean_base_and_workspace_worktrees ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::update_workspace_from_base_requires_clean_workspace_worktree ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_reuses_existing_branch_instead_of_failing ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_bootstrap_snapshot_restores_task_tree ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_unit_result_round_trip ... ok [INFO] [stdout] test ui::tui::replay::tests::sanitize_fixture_name_strips_invalid_characters ... ok [INFO] [stdout] test ui::tui::runner::tests::program_config_enables_kitty_keyboard ... ok [INFO] [stdout] test ui::tui::runner::tests::tmux_extended_keys_needs_enable_only_when_off ... ok [INFO] [stdout] test ui::tui::shared::tests::activate_first_running_non_home_tab_keeps_home_when_no_running_tabs ... ok [INFO] [stdout] test ui::tui::shared::tests::activate_first_running_non_home_tab_selects_running_agent ... ok [INFO] [stdout] test ui::tui::shared::tests::activate_first_running_non_home_tab_skips_stopped_tabs ... ok [INFO] [stdout] test ui::tui::shared::tests::insert_restored_tab_rejects_duplicate_session_name ... ok [INFO] [stdout] test ui::tui::shared::tests::move_active_tab_left_is_noop_at_first_movable_slot ... ok [INFO] [stdout] test ui::tui::shared::tests::move_active_tab_left_swaps_with_left_neighbor_and_keeps_active_tab ... ok [INFO] [stdout] test ui::tui::shared::tests::move_active_tab_right_is_noop_at_last_slot ... ok [INFO] [stdout] test ui::tui::shared::tests::move_active_tab_right_swaps_with_right_neighbor_and_keeps_active_tab ... ok [INFO] [stdout] test ui::tui::shared::tests::next_tab_ordinal_ignores_other_kinds ... ok [INFO] [stdout] test ui::tui::shared::tests::next_tab_ordinal_returns_1_for_home_and_git ... ok [INFO] [stdout] test ui::tui::shared::tests::next_tab_ordinal_returns_1_when_no_tabs_of_kind ... ok [INFO] [stdout] test ui::tui::shared::tests::next_tab_ordinal_uses_max_not_count ... ok [INFO] [stdout] test ui::tui::terminal::clipboard::tests::clipboard_write_returns_all_errors_when_every_path_fails ... ok [INFO] [stdout] test ui::tui::shared::tests::next_tab_ordinal_sequential_agents ... ok [INFO] [stdout] test ui::tui::terminal::clipboard::tests::clipboard_write_succeeds_when_only_osc52_succeeds ... ok [INFO] [stdout] test ui::tui::terminal::clipboard::tests::osc52_sequence_formats_plain_payload ... ok [INFO] [stdout] test ui::tui::terminal::clipboard::tests::osc52_sequence_wraps_tmux_passthrough ... ok [INFO] [stdout] test ui::tui::terminal::clipboard::tests::write_osc52_to_writes_unicode_payload ... ok [INFO] [stdout] test ui::tui::terminal::preview_stream::tests::control_mode_startup_commands_enable_pane_output ... ok [INFO] [stdout] test ui::tui::terminal::tmux::tests::capture_pane_args_include_escape_flag_when_requested ... ok [INFO] [stdout] test ui::tui::terminal::tmux::tests::capture_pane_args_include_trailing_spaces_flag ... ok [INFO] [stdout] test ui::tui::terminal::tmux::tests::capture_pane_args_join_wrapped_lines_when_requested ... ok [INFO] [stdout] test ui::tui::terminal::tmux::tests::capture_pane_args_use_history_start_for_full_scrollback ... ok [INFO] [stdout] test ui::tui::shared::tests::move_active_tab_by_rejects_home_tab ... ok [INFO] [stdout] test ui::tui::terminal::preview_stream::tests::control_mode_output_line_decodes_incremental_chunk_without_snapshot ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::merge_workspace_cleanup_stops_sessions_after_success ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::merge_workspace_merges_branch_and_cleans_up_when_requested ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_state_snapshot_tracks_task_and_worktree_selection ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_string_result_round_trip ... ok [INFO] [stdout] test ui::tui::bootstrap_discovery::tests::bootstrap_task_data_materializes_missing_base_task_manifest_for_project ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_in_root_fails_when_pull_request_branch_is_checked_out_locally ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::update_workspace_from_base_merges_base_into_workspace_branch ... ok [INFO] [stdout] test ui::tui::tests::acknowledge_key_clears_selected_attention_item ... ok [INFO] [stdout] test ui::tui::tests::active_workspace_activity_window_expires_after_inactive_frames ... ok [INFO] [stdout] test ui::tui::terminal::preview_stream::tests::startup_writer_keeps_stdin_open_for_long_lived_client ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_debug_record_writes_snapshot_when_requested ... ok [INFO] [stdout] test ui::tui::replay::tests::replay_debug_record_replays_minimal_trace ... ok [INFO] [stdout] test ui::tui::tests::acknowledge_key_falls_back_to_workspace_when_no_next_attention_item_exists ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_in_root_creates_pull_request_worktree_from_remote_branch_name ... ok [INFO] [stdout] test ui::tui::tests::acknowledge_key_clears_selected_attention_item_while_interactive ... ok [INFO] [stdout] test ui::tui::tests::acknowledge_key_advances_to_next_attention_item_when_present ... ok [INFO] [stdout] test ui::tui::tests::active_workspace_with_stale_attention_marker_does_not_enter_inbox ... ok [INFO] [stdout] test ui::tui::tests::active_workspace_without_recent_activity_uses_static_indicators ... ok [INFO] [stdout] test ui::tui::tests::activity_animation_time_advances_with_visual_ticks ... ok [INFO] [stdout] test ui::tui::tests::background_workspace_recent_activity_means_working ... ok [INFO] [stdout] test ui::tui::tests::active_workspace_with_recent_activity_animates_indicators ... ok [INFO] [stdout] test ui::tui::tests::background_workspace_structured_waiting_wins_over_active_text_capture ... ok [INFO] [stdout] test ui::tui::tests::attention_workspace_lookup_supports_numbered_tab_sessions ... ok [INFO] [stdout] test ui::tui::tests::background_workspace_recent_activity_clears_when_observation_resolution_is_missing ... ok [INFO] [stdout] test ui::tui::tests::agent_preview_unstyled_cells_use_theme_background ... ok [INFO] [stdout] test ui::tui::tests::activity_animation_time_starts_at_zero ... ok [INFO] [stdout] test application::task_lifecycle::tests::create_task_in_root_moves_existing_unused_pull_request_branch_to_fetch_head ... ok [INFO] [stdout] test ui::tui::tests::activity_animation_time_advances_monotonically ... ok [INFO] [stdout] test ui::tui::tests::active_workspace_with_recent_activity_window_animates_indicators ... ok [INFO] [stdout] test ui::tui::tests::activity_spinner_does_not_shift_header_or_status_layout ... ok [INFO] [stdout] test ui::tui::tests::base_workspace_hides_pull_request_list ... ok [INFO] [stdout] test ui::tui::tests::command_palette_ctrl_n_moves_selection_down ... ok [INFO] [stdout] test ui::tui::tests::command_palette_exposes_update_action_for_main_workspace ... ok [INFO] [stdout] test ui::tui::tests::command_palette_hides_start_parent_agent_off_task_home ... ok [INFO] [stdout] test ui::tui::tests::background_workspace_output_change_alone_does_not_mean_working ... ok [INFO] [stdout] test ui::tui::tests::command_palette_ctrl_p_moves_selection_up ... ok [INFO] [stdout] test ui::tui::tests::command_palette_exposes_move_tab_actions_when_preview_tab_selected ... ok [INFO] [stdout] test ui::tui::tests::command_palette_escape_clears_palette_mode ... ok [INFO] [stdout] test ui::tui::tests::command_palette_exposes_cleanup_sessions_action ... ok [INFO] [stdout] test ui::tui::tests::command_palette_exposes_rename_active_tab_action_when_preview_tab_selected ... ok [INFO] [stdout] test ui::tui::tests::command_palette_max_visible_prevents_overlay_clipping ... ok [INFO] [stdout] test ui::tui::tests::command_palette_max_visible_scales_with_viewport_height ... ok [INFO] [stdout] test ui::tui::tests::command_palette_lists_open_repository_in_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::command_palette_enter_executes_selected_action ... ok [INFO] [stdout] test ui::tui::tests::command_palette_exposes_attention_inbox_actions ... ok [INFO] [stdout] test ui::tui::tests::command_palette_lists_performance_action ... ok [INFO] [stdout] test ui::tui::tests::command_palette_blocks_background_navigation_keys ... ok [INFO] [stdout] test ui::tui::tests::command_palette_repeat_down_arrow_moves_selection_down ... ok [INFO] [stdout] test ui::tui::tests::background_workspace_waiting_does_not_render_working ... ok [INFO] [stdout] test ui::tui::tests::command_palette_renders_full_category_labels ... ok [INFO] [stdout] test ui::tui::tests::command_palette_repeat_ctrl_n_moves_selection_down ... ok [INFO] [stdout] test ui::tui::tests::command_palette_switches_a_between_add_worktree_and_new_agent_by_pane ... ok [INFO] [stdout] test ui::tui::tests::command_tmux_input_uses_background_send_mode ... ok [INFO] [stdout] test ui::tui::tests::command_tmux_input_uses_background_poll_mode ... ok [INFO] [stdout] test ui::tui::tests::command_tmux_input_uses_background_launch_mode ... ok [INFO] [stdout] test ui::tui::tests::command_palette_overlay_uses_native_widget_width ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_pr_tab_uses_repo_scoped_copy ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_allows_paste_into_pr_url_field ... ok [INFO] [stdout] test ui::tui::tests::codex_interactive_preview_keeps_ansi_colors ... ok [INFO] [stdout] test ui::tui::tests::command_palette_action_set_scopes_to_focus_and_mode ... ok [INFO] [stdout] test ui::tui::tests::command_palette_keeps_full_category_visible_on_narrow_width ... ok [INFO] [stdout] test ui::tui::tests::command_palette_lists_start_parent_agent_on_task_home ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_project_picker_opens_from_project_field ... ok [INFO] [stdout] test ui::tui::tests::connected_preview_stream_snapshot_does_not_enter_terminal_wrap_mode ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_alt_brackets_switch_between_manual_and_pr_tabs ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_selected_included_row_uses_highlight_background ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_project_picker_selection_updates_defaults ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_unfocused_included_row_uses_base_background ... ok [INFO] [stdout] test ui::tui::tests::ctrl_b_control_character_toggles_sidebar_visibility ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_manual_mode_uses_included_as_the_only_project_selection_row ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_no_projects_toast_mentions_p_and_ctrl_a ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_pr_mode_uses_single_selected_project ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_pr_project_picker_hides_multi_select_hint ... ok [INFO] [stdout] test ui::tui::tests::ctrl_k_opens_command_palette ... ok [INFO] [stdout] test ui::tui::tests::ctrl_k_control_character_opens_command_palette ... ok [INFO] [stdout] test ui::tui::tests::ctrl_b_toggles_sidebar_visibility_and_backslash_is_noop ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_mode_tabs_are_mouse_clickable ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_pr_mode_hides_included_projects_row ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_manual_mode_selection_summary_ignores_project_cursor_state ... ok [INFO] [stdout] test ui::tui::tests::enter_on_attention_row_focuses_running_agent_tab ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_renders_action_buttons ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_uses_opaque_background_fill ... ok [INFO] [stdout] test ui::tui::tests::ctrl_k_is_blocked_while_modal_is_open ... ok [INFO] [stdout] test ui::tui::tests::ctrl_k_is_blocked_in_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_project_picker_does_not_scroll_while_selection_is_still_visible ... ok [INFO] [stdout] test ui::tui::tests::focus_attention_inbox_key_ignored_in_preview_focus ... ok [INFO] [stdout] test ui::tui::tests::done_workspace_row_shows_done_attention_indicator ... ok [INFO] [stdout] test ui::tui::tests::error_toast_uses_error_style_and_long_duration ... ok [INFO] [stdout] test ui::tui::tests::error_workspace_row_shows_error_attention_indicator ... ok [INFO] [stdout] test ui::tui::tests::execute_performance_palette_action_opens_dialog ... ok [INFO] [stdout] test ui::tui::tests::follow_up_local_echo_frames_do_not_trigger_working ... ok [INFO] [stdout] test ui::tui::tests::create_dialog_wrapped_hint_rows_keep_hint_style ... ok [INFO] [stdout] test ui::tui::tests::help_registry_includes_current_discoverability_entries ... ok [INFO] [stdout] test ui::tui::tests::focus_attention_inbox_command_switches_preview_to_attention_tab ... ok [INFO] [stdout] test ui::tui::tests::help_catalog_lists_workspace_jump_shortcut ... ok [INFO] [stdout] test ui::tui::tests::interactive_copy_sets_success_toast_message ... ok [INFO] [stdout] test ui::tui::tests::focus_attention_inbox_command_selects_first_attention_item ... ok [INFO] [stdout] test ui::tui::tests::info_toast_uses_info_style_and_duration ... ok [INFO] [stdout] test ui::tui::tests::focus_attention_inbox_key_selects_first_attention_item_from_list ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_modal_blocks_navigation_keys ... ok [INFO] [stdout] test ui::tui::tests::finished_attention_requires_two_polls_before_entering_inbox ... ok [INFO] [stdout] test ui::tui::tests::focus_attention_inbox_command_exits_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::interactive_preview_poll_is_not_blocked_by_healthy_stream ... ok [INFO] [stdout] test ui::tui::tests::interactive_preview_border_is_teal_and_shows_insert_label ... ok [INFO] [stdout] test ui::tui::tests::interactive_input_echo_does_not_trigger_activity_spinner ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_projects_modal_shortcuts_without_truncation ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_add_worktree_in_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::launch_dialog_keeps_compact_footer ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_modal_closes_on_escape ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_attention_shortcuts_in_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_open_repository_in_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::live_preview_scrollback_lines_uses_full_window_with_recent_activity ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_uses_available_height_to_show_footer ... ok [INFO] [stdout] test ui::tui::tests::manual_refresh_completion_shows_success_toast ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_start_parent_agent ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_mouse_capture_toggle ... ok [INFO] [stdout] test ui::tui::tests::live_preview_scrollback_lines_uses_full_history_when_preview_scrolled_up ... ok [INFO] [stdout] test ui::tui::tests::live_preview_scrollback_lines_uses_idle_window_when_inactive ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_overlay_renders_when_help_modal_open ... ok [INFO] [stdout] test ui::tui::tests::manual_refresh_completion_shows_error_toast ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_mentions_tasks_and_worktrees ... ok [INFO] [stdout] test ui::tui::tests::live_preview_scrollback_lines_uses_full_window_in_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::local_input_pending_does_not_change_sidebar_status ... ok [INFO] [stdout] test ui::tui::tests::open_repository_normalizes_common_remote_forms ... ok [INFO] [stdout] test ui::tui::tests::modal_dialog_renders_over_sidebar ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::canonical_tree_resolves_all_required_roles ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::canonical_tree_solves_for_tiny_viewport ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::workspace_list_and_preview_fill_middle ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::header_and_status_are_fixed_height ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::app_bootstrap_creates_pane_model ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_bootstrap::canonical_tree_solves_for_normal_viewport ... ok [INFO] [stdout] test ui::tui::tests::non_interactive_live_capture_keeps_snapshot_rendering_when_stream_is_connected ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_lists_interactive_reserved_keys ... ok [INFO] [stdout] test ui::tui::tests::mouse_wheel_on_sidebar_moves_workspace_selection ... ok [INFO] [stdout] test ui::tui::tests::new_task_dialog_does_not_render_base_branch_field ... ok [INFO] [stdout] test ui::tui::tests::mouse_click_on_workspace_pr_link_selects_workspace ... ok [INFO] [stdout] test ui::tui::tests::keybind_help_overlay_uses_native_bracketed_entries ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_hit_regions::point_in_header_classifies_as_header ... ok [INFO] [stdout] test ui::tui::tests::open_command_palette_sizes_page_navigation_to_viewport_height ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_hit_regions::point_in_workspace_list_classifies_as_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_overlays::keybind_help_renders_over_full_frame ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_hit_regions::point_in_status_classifies_as_status ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::status_renders_in_status_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_hit_regions::hit_grid_still_wins_when_available ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_overlays::dialog_renders_over_full_frame_not_inside_pane ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::header_renders_in_header_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::clicking_workspace_row_selects_workspace ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::workspace_list_renders_in_workspace_list_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::header_uses_bracketed_identity_labels ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::header_shows_jump_badge_when_workspace_jump_is_open ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::effective_workspace_rects_sidebar_hidden ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::preview_content_viewport_uses_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::preview_output_dimensions_uses_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::preview_tab_id_at_pointer_uses_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::preview_renders_in_preview_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_workspace_preview_interactions::sidebar_selection_uses_pane_rect ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_render_layout::status_row_shows_jump_state_when_workspace_jump_is_open ... ok [INFO] [stdout] test ui::tui::tests::mouse_workspace_selection_uses_row_hit_data_after_render ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_renders_session_table_headers ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_shows_background_session_exclusion_reason ... ok [INFO] [stdout] test ui::tui::tests::preview_capture_rows_do_not_soft_wrap_long_ansi_lines ... ok [INFO] [stdout] test ui::tui::tests::preview_header_omits_workspace_agent_label ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_hit_regions::point_in_preview_classifies_as_preview ... ok [INFO] [stdout] test ui::tui::tests::launch_dialog_uses_opaque_background_fill ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_reports_selected_preview_stream_source ... ok [INFO] [stdout] test ui::tui::tests::parent_agent_launch_dialog_uses_parent_title ... ok [INFO] [stdout] test ui::tui::tests::preview_pane_maps_ansi_foreground_to_theme_terminal_palette ... ok [INFO] [stdout] test ui::tui::tests::preview_pane_border_is_blue_when_preview_focused_without_interactive_input ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_overlays::overlays_render_after_pane_content ... ok [INFO] [stdout] test ui::tui::tests::preview_pane_preserves_exact_truecolor_foreground ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_disconnects_when_agent_preview_is_not_visible ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_uses_named_footer_state ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_renders_summary_sections ... ok [INFO] [stdout] test ui::tui::tests::pane_tree_overlays::command_palette_renders_over_full_frame ... ok [INFO] [stdout] test ui::tui::tests::preview_pane_renders_ansi_colors ... ok [INFO] [stdout] test application::workspace_lifecycle::tests::update_workspace_from_base_pulls_main_workspace_from_origin ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_output_outside_interactive_preserves_capture_rendering_until_poll ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_marks_disconnected_after_disconnect ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_retargets_on_workspace_change ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_output_requests_prioritized_snapshot_poll ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_output_in_interactive_mode_preserves_snapshot_until_bootstrap_capture ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_output_in_interactive_mode_polls ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_disconnect_resumes_selected_poll_via_fallback ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_output_preserves_snapshot_until_bootstrap_capture ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_retargets_while_workspace_list_is_focused ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_reconnect_produces_fresh_output ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_stays_connected_when_preview_pane_blurs ... ok [INFO] [stdout] test ui::tui::tests::preview_activity_label_render_uses_native_animation_clock ... ok [INFO] [stdout] test ui::tui::tests::preview_pane_renders_colon_delimited_ansi_colors ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_stays_targeted_in_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::preview_stream_state_defaults_to_disconnected ... ok [INFO] [stdout] test ui::tui::tests::preview_working_workspace_header_uses_theme_accent_color ... ok [INFO] [stdout] test ui::tui::tests::pull_upstream_dialog::pull_upstream_only_available_on_base_worktree ... ok [INFO] [stdout] test ui::tui::tests::refresh_preview_summary_does_not_clobber_ready_agent_preview ... ok [INFO] [stdout] test ui::tui::tests::question_key_opens_keybind_help_modal ... ok [INFO] [stdout] test ui::tui::tests::pull_upstream_dialog::pull_upstream_opens_dialog_on_base_worktree ... ok [INFO] [stdout] test ui::tui::tests::project_dialog_keeps_compact_footer ... ok [INFO] [stdout] test ui::tui::tests::pull_upstream_dialog::pull_upstream_counts_propagate_targets ... ok [INFO] [stdout] test ui::tui::tests::restore_warning_toast_message_format ... ok [INFO] [stdout] test ui::tui::tests::raw_waiting_status_without_attention_does_not_render_waiting_label ... ok [INFO] [stdout] test ui::tui::tests::restore_warning_toast_singular_session ... ok [INFO] [stdout] test ui::tui::tests::restore_preserves_tmux_tab_order ... ok [INFO] [stdout] test ui::tui::tests::restore_shows_warning_toast_when_sessions_skipped ... ok [INFO] [stdout] test ui::tui::tests::performance_dialog_uses_available_height_for_workspace_rows ... ok [INFO] [stdout] test ui::tui::tests::restore_silently_skips_sessions_with_no_grove_metadata ... ok [INFO] [stdout] test ui::tui::tests::restored_agent_tab_auto_activates_after_rebuild ... ok [INFO] [stdout] test ui::tui::tests::restore_shows_no_warning_toast_when_all_sessions_restored ... ok [INFO] [stdout] test ui::tui::tests::refresh_preview_summary_does_not_clobber_diff_capture ... ok [INFO] [stdout] test ui::tui::tests::restore_recovers_legacy_git_session_without_metadata ... ok [INFO] [stdout] test ui::tui::tests::restored_agent_tab_has_ready_session_after_selection ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::background_restart_key_queues_lifecycle_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::alt_k_exits_interactive_and_selects_previous_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::alt_x_noop_in_noninteractive_shell_preview ... ok [INFO] [stdout] test ui::tui::tests::rendered_frames_update_performance_snapshot ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::alt_x_does_not_exit_interactive_or_open_stop_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::background_stop_key_queues_lifecycle_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::codex_live_preview_capture_keeps_tmux_escape_output ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::double_escape_stays_in_interactive_mode_and_sends_both_escapes ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::double_escape_does_not_focus_sidebar ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::ctrl_backslash_control_character_exits_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_interactive_immediately_polls_preview_and_cursor ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::ctrl_backslash_exits_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::command_palette_cursor_takes_priority_over_preview_cursor ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::ctrl_four_exits_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_on_active_main_workspace_starts_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::render_uses_selected_theme_palette ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::claude_live_preview_capture_keeps_tmux_escape_output ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::divider_ratio_changes_are_session_only ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_on_active_workspace_resizes_tmux_session_to_preview_dimensions ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_on_main_workspace_in_shell_tab_launches_shell_and_enters_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::in_flight_preview_poll_schedules_short_tick_for_task_results ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::home_tab_main_workspace_summary_mentions_tabs_in_base ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::home_tab_non_main_workspace_summary_uses_home_copy ... ok [INFO] [stdout] test ui::tui::tests::project_dialog_wraps_help_text_without_truncation ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::focused_preview_schedules_fast_poll_deadline ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_live_capture_updates_preview_lines ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_input_latency_correlates_forwarded_key_with_preview_update ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_on_idle_workspace_launches_shell_session_and_enters_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_keys_forward_to_tmux_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::enter_on_active_workspace_starts_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_key_schedules_debounced_poll_interval ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_exit_clears_preview_for_one_frame_before_restoring_output ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::alt_bracket_exits_interactive_and_switches_to_git_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_preview_places_real_cursor_on_missing_trailing_blank_row ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_preview_poll_uses_unjoined_capture_for_live_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_agent_preview_renders_real_cursor_for_claude_in_frame ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_send_clears_attention_for_agent_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_agent_preview_renders_real_cursor_for_codex_in_frame ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::multi_repo_workspace_home_tab_title_indicates_task_scope ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::parse_cursor_metadata_requires_five_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::escape_cancels_restart_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::l_then_x_opens_stop_dialog_from_agent_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::preview_poll_drops_cursor_capture_for_non_interactive_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::live_capture_uses_snapshot_rendering_outside_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::resize_verify_retries_once_then_stops ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_exit_clears_pending_input_traces ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_shift_enter_forwards_to_tmux_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::preview_update_logs_coalesced_input_range ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_applies_project_agent_env_defaults_before_resume ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_update_flow_sequences_tick_copy_paste_and_exit ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_preview_ignores_offscreen_real_cursor ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_shell_preview_keeps_wrapped_rows_split_for_cursor_mapping ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::resize_in_interactive_mode_immediately_resizes_and_polls ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::interactive_shift_tab_forwards_to_tmux_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_uses_workspace_skip_permissions_marker_for_codex_resume ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_restarts_claude_agent_in_same_tmux_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_restarts_selected_workspace_agent ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::mouse_workspace_switch_exits_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_reuses_skip_permissions_mode_for_codex_resume ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_rejects_invalid_project_agent_env_defaults ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::mouse_click_on_list_selects_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_uses_workspace_skip_permissions_marker_for_main_codex_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_name_sets_new_agent_tab_title ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_key_in_preview_on_running_workspace_opens_launch_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_launches_numbered_agent_session_for_task_worktree ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::schedule_next_tick_does_not_postpone_existing_due_tick ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_noop_in_git_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_key_in_preview_on_main_workspace_opens_launch_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_blank_name_keeps_default_tab_title ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_on_task_home_launches_task_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::restart_key_without_running_agent_shows_toast ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_key_in_workspace_list_opens_add_worktree_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_name_field_accepts_text_input ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::shell_tab_main_workspace_summary_uses_shell_status_copy ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_key_stops_selected_workspace_agent ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stale_tick_before_due_is_ignored ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::start_dialog_launches_numbered_agent_session_for_base_worktree ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_dialog_blocks_navigation_and_escape_cancels ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::task_home_tab_polls_parent_agent_preview_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::task_home_tab_stop_dialog_targets_parent_agent_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_key_noop_in_git_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_key_on_active_main_workspace_stops_agent ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::tick_polls_cursor_metadata_and_updates_real_cursor_state ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_agent_completed_updates_workspace_status_and_exits_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_key_opens_stop_dialog_for_selected_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::open_repository_key_in_workspace_list_opens_selected_origin_in_browser ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::copy_selection_joins_wrapped_rows_when_joined_capture_still_has_newlines ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::task_home_tab_launches_selected_workspace_agent_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::stop_key_without_running_agent_shows_toast ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::x_opens_stop_dialog_from_agent_preview_when_list_is_focused ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::enter_on_git_tab_attaches_to_lazygit_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::tick_polls_live_tmux_output_into_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::frame_debug_record_includes_interactive_cursor_snapshot ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::git_tab_queues_async_lazygit_launch_when_supported ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::empty_preview_summary_promotes_command_palette_help ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::copy_selection_joins_terminal_wrapped_rows ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::workspace_home_summary_mentions_bracket_tab_navigation ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::x_opens_stop_dialog_from_agent_preview_when_preview_is_focused_in_list_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::lazygit_launch_completion_success_marks_session_ready ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::copy_selection_reflows_wrapped_rows_without_interactive_state ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::copy_selection_logs_full_preview_payload ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::git_tab_launches_lazygit_with_dedicated_tmux_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::open_repository_key_shows_error_toast_when_origin_is_missing ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::interactive_runtime::tick_logs_skip_reason_when_not_due ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::frame_debug_record_logs_every_view ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::git_tab_renders_lazygit_placeholder_and_launches_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_workspace_click_exits_interactive_without_selection_change ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_click_preview_tab_does_not_clear_attention_when_it_focuses_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_mode_keys_scroll_and_jump_to_bottom ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_drag_from_divider_hit_padding_does_not_jump_on_first_drag_event ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::lazygit_launch_completion_duplicate_session_marks_session_ready ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_scroll_in_preview_scrolls_output ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_drag_on_divider_updates_sidebar_ratio ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_mode_arrow_page_keys_and_end_control_scrollback ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_mode_scroll_keys_noop_when_content_fits_viewport ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_drag_near_divider_still_updates_sidebar_ratio ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_click_preview_tab_exits_interactive_and_switches_tabs ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_drag_uses_rendered_width_without_resize_message ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::selected_preview_text_lines_use_visual_columns ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_click_preview_tab_switches_tabs ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::shell_renders_discovery_error_state ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::frame_debug_record_includes_frame_lines ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_output_rows_use_theme_background_for_agent_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::workspace_shell_launch_completion_duplicate_session_marks_session_ready ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::lazygit_launch_completion_failure_marks_session_failed ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::alt_arrows_hl_bf_and_alt_with_extra_modifier_resize_sidebar_globally ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::workspace_shell_launch_completion_success_marks_session_ready ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_mode_scroll_keys_noop_in_git_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::workspace_shell_launch_completion_success_polls_from_list_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_selection_highlight_ignores_trailing_pane_padding ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::comma_opens_rename_tab_dialog_for_active_non_home_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::comma_rename_updates_tab_title_and_persists_tmux_metadata ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::shell_contains_list_preview_and_status_placeholders ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_output_rows_use_theme_background_for_shell_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::alt_j_and_alt_k_move_workspace_selection_from_preview_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_c_maps_to_key_message ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::task_home_preview_mode_keys_scroll_and_jump_to_bottom ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::mouse_click_preview_enters_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_mode_bracket_keys_cycle_tabs ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::selection_snapshot_fields_log_full_line_values ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::startup_attention_focus_does_not_reenter_preview_poll ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::alt_resize_keeps_interactive_mode_active ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::mouse_preview::preview_plain_lines_render_when_parsed_lines_are_missing ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::alt_brackets_switch_preview_tab_from_list_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_key_opens_delete_dialog_for_selected_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_key_on_main_workspace_opens_non_destructive_remove_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_c_opens_quit_dialog_when_not_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_d_with_task_running_does_not_quit ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_c_with_task_running_does_not_quit ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_d_quits_when_idle_via_action_mapper ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_task_key_does_not_open_delete_dialog_outside_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_c_dismisses_delete_modal_via_action_mapper ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::ctrl_q_quits_via_action_mapper ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::enter_on_default_no_cancels_quit_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_dialog_blocks_navigation_and_escape_cancels ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::edit_dialog_save_rejects_empty_base_branch ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::key_q_maps_to_key_message ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_worktree_key_opens_delete_dialog_for_selected_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::edit_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::h_and_l_toggle_focus_between_panes_when_not_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::edit_dialog_save_updates_workspace_base_branch_marker ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::edit_workspace_key_opens_edit_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::tick_maps_to_tick_message ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::preview_tab_reorder_left_moves_active_tab_and_rewrites_tmux_metadata ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::tmux_runtime_paths_avoid_status_calls_in_tui_module ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::delete_dialog_space_toggles_kill_tmux_sessions ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::key_message_updates_model_state ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::preview_tab_reorder_right_moves_active_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::preview_tab_reorder_is_disabled_outside_preview_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::unsafe_toggle_cycles_launch_permission_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::uppercase_x_does_not_close_active_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::escape_cancels_quit_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::async_preview_rate_limits_background_workspace_status_targets ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::async_preview_polls_workspace_status_targets_when_live_preview_missing ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::x_opens_close_tab_confirm_for_running_active_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::new_workspace_key_opens_create_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::async_preview_capture_failure_sets_toast_message ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::start_agent_completed_updates_workspace_status ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::y_confirms_quit_dialog_and_quits ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::async_preview_status_targets_use_other_running_agent_tab_when_live_session_selected ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::start_agent_completed_duplicate_task_session_marks_parent_ready ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::q_opens_quit_dialog_when_not_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::delete_dialog_focus_enter_uses_ftui_focused_delete_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::create_dialog_focus_ftui_tab_traverses_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::create_dialog_focus_ftui_trap_restores_workspace_list_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::confirm_dialog_focus_enter_uses_ftui_focused_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_bounds_resize_updates_main_pane_nodes ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::create_dialog_focus_ftui_enter_uses_focused_cancel_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::entering_interactive_does_not_clear_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::command_palette_focus_preview_actions_follow_focus_manager ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::edit_dialog_focus_enter_uses_ftui_focused_save_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::first_fresh_capture_after_workspace_switch_does_not_mark_working ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::navigation_and_agent_lifecycle::edit_dialog_save_switches_main_workspace_branch ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::background_status_observation_sets_waiting_prompt_without_capture_text ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::async_preview_still_polls_background_workspace_status_targets_when_live_preview_exists ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::launch_dialog_focus_enter_uses_ftui_focused_cancel_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::missing_agent_tab_capture_marks_tab_stopped_and_clears_tracker ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_manager_shadow_mouse_click_preview_matches_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_manager_shadow_toggle_focus_matches_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::modal_focus_trap_confirm_dialog_traps_focus_and_restores_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::mismatched_missing_agent_tab_capture_still_clears_stale_tab ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_preview_command_does_not_clear_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::launch_dialog_focus_trap_restores_preview_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_manager_shadow_default_focus_matches_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::follow_up_bootstrap_capture_after_workspace_switch_stays_suppressed ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_manager_shadow_mouse_click_workspace_list_matches_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::poll_preview_marks_request_when_background_poll_is_in_flight ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::launch_dialog_focus_tab_traverses_ftui_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::modal_focus_trap_confirm_dialog_tab_cycles_within_trap ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::background_poll_transition_from_waiting_to_active_clears_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::prepare_live_preview_session_resizes_after_exiting_interactive ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::focus_manager_shadow_focus_label_follows_focus_manager ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::prepare_live_preview_session_launches_shell_from_list_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::pane_arrow_navigation_left_moves_focus_to_workspace_list ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::launch_dialog_status_field_follows_focus_manager ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::pane_arrow_navigation_right_moves_focus_to_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_waiting_prompt_sets_waiting_status ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_transition_from_done_to_thinking_clears_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_missing_live_session_with_other_agent_tab_keeps_workspace_running ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_ignores_done_pattern_embedded_in_control_sequence ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_completion_runs_deferred_background_poll_request ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_uses_cleaned_change_for_status_lane ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::project_dialog_focus_trap_nested_defaults_dialog_restores_outer_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::selected_workspace_status_capture_updates_preview_when_live_capture_is_absent ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_missing_session_marks_workspace_orphaned_idle ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::refresh_preview_summary_uses_active_shell_tab_session_state ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_non_selected_missing_session_with_other_agent_tab_keeps_workspace_running ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_capture_completed_logs_scrollback_lines ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::project_dialog_focus_trap_nested_add_dialog_restores_outer_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::rename_tab_dialog_focus_enter_uses_ftui_focused_rename_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_non_selected_missing_session_marks_orphaned_idle ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_updates_non_selected_workspace_status_from_background_capture ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::session_cleanup_dialog_uses_injected_tmux_session_rows ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_change_emits_output_changed_event ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::session_cleanup_focus_space_uses_ftui_focused_toggle ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::prepare_live_preview_session_resizes_selected_agent_tab_once_per_target ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::selecting_workspace_does_not_clear_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_poll_preserves_manual_viewport_when_scrollback_window_expands ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::settings_dialog_focus_enter_uses_ftui_focused_save_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::preview_scroll_emits_scrolled_and_autoscroll_events ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::stop_agent_emits_dialog_and_lifecycle_events ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::task_home_preview_poll_applies_parent_session_capture ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::status_focus_preview_line_follows_focus_manager ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::toggle_focus_to_preview_does_not_clear_attention ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::sidebar_hidden_focus_hides_workspace_list_node_and_moves_focus_to_preview ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::start_agent_emits_dialog_and_lifecycle_events ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::sidebar_hidden_focus_restores_workspace_list_focusability_when_sidebar_returns ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::stale_preview_poll_result_is_dropped_by_generation ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::tick_queues_async_poll_for_background_workspace_statuses_only ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::tmux_workspace_status_poll_targets_skip_idle_workspaces ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::tick_queues_async_preview_poll_with_background_io ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::switching_to_active_workspace_keeps_existing_preview_until_fresh_capture ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_workspace_completed_success_queues_refresh_task_in_background_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::new_workspace_dialog_prefills_from_project_defaults ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::polling_and_status::switching_workspace_drops_in_flight_capture_for_previous_session ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_allows_paste_into_path_field ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_duplicate_match_enter_does_not_accept_result ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_ctrl_n_and_ctrl_p_match_arrow_keys_in_path_field ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_duplicate_match_mouse_click_does_not_accept_result ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_ctrl_n_and_ctrl_p_do_not_cycle_modal_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_focus_mouse_click_name_input_updates_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_confirmed_event_includes_implicit_branch_payload ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_register_as_base_creates_base_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_focus_enter_uses_ftui_focused_cancel_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_enter_accepts_ranked_repo_match ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_wraps_hints_and_keeps_gap_above_buttons ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_focus_enter_uses_ftui_focused_cancel_button ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_allows_paste_into_focused_input ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_focus_tab_traverses_ftui_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_delete_completion_clears_in_flight_and_applies_projects ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_save_persists_defaults ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_focus_tab_traverses_ftui_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_defaults_dialog_focus_mouse_click_codex_input_updates_focus ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_ctrl_e_opens_project_defaults_dialog ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_ctrl_n_and_ctrl_p_match_tab_navigation ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_creates_base_task_manifest_for_new_project ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_duplicate_match_renders_already_added_marker ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_native_mouse_click_accepts_search_result ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_ctrl_r_does_not_enter_reorder_mode ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_j_and_k_are_treated_as_filter_input ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_native_state_opens_with_focused_filter_input ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_filter_accepts_shift_modified_characters ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_native_state_defaults_dialog_opens_with_native_inputs ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_ctrl_x_queues_background_project_delete ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_native_state_add_dialog_opens_with_native_inputs ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_blocks_navigation_and_escape_cancels ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::task_reorder_escape_restores_original_order ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_ctrl_n_and_ctrl_p_follow_tab_navigation ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::sidebar_uses_task_order_over_project_order ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::task_reorder_enter_saves_task_order ... ok [INFO] [stderr] Cloning into bare repository '/tmp/grove-test-workspace-pr-bare-remote-16-1777869851328579062/github.com/flocasts/flohome'... [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_tab_and_shift_tab_navigate_selection ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_ctrl_x_removes_selected_project ... ok [INFO] [stderr] done. [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_register_as_base_filters_projects_with_existing_base ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_enter_on_cancel_closes_modal ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_dialog_native_switcher_mouse_click_selects_project_row ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_enter_without_name_shows_validation_toast ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_ctrl_n_and_ctrl_p_move_focus_from_project ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_tab_cycles_focus_field ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_register_as_base_shows_toast_when_no_projects_are_eligible ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_base_task_completion_keeps_matching_project_config ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_dialog_confirm_marks_all_worktrees_in_selected_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::refresh_workspace_completion_does_not_auto_launch_sessions_for_new_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::add_worktree_dialog_attaches_repository_to_selected_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::create_dialog_manual_mode_hint_mentions_project_defaults ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_dialog_confirm_queues_background_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_dialog_confirm_queues_additional_delete_request_when_one_is_in_flight ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_worktree_dialog_confirm_targets_only_selected_worktree ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::merge_dialog_confirm_queues_background_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_workspace_completion_clears_in_flight_workspace_marker ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::merge_completion_conflict_error_shows_compact_conflict_summary ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::merge_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::update_dialog_confirm_queues_background_task ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::settings_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::update_dialog_ctrl_n_and_ctrl_p_cycle_fields ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_workspace_completion_starts_next_queued_delete_request ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::merge_key_opens_merge_dialog_for_selected_workspace ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::delete_worktree_dialog_for_last_worktree_warns_that_task_will_be_deleted ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::merge_key_on_main_workspace_shows_guard_toast ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::update_key_on_main_workspace_opens_upstream_update_dialog ... ok [INFO] [stdout] test ui::tui::tests::selected_workspace_row_has_selection_marker ... ok [INFO] [stdout] test ui::tui::tests::selected_preview_stream_drops_stale_output_for_old_generation ... ok [INFO] [stdout] test ui::tui::tests::selected_preview_stream_stays_stream_only_after_disconnect ... ok [INFO] [stdout] test ui::tui::tests::selected_workspace_recent_activity_means_working ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::workspace_operations::update_key_opens_update_from_base_dialog_for_selected_workspace ... ok [INFO] [stdout] test ui::tui::tests::session_performance_rows_include_known_non_polled_workspaces ... ok [INFO] [stdout] test ui::tui::tests::session_performance_rows_preserve_background_cadence_when_selected_preview_is_fast ... ok [INFO] [stdout] test ui::tui::tests::selected_workspace_working_hold_requires_two_idle_polls_after_expiry ... ok [INFO] [stdout] test ui::tui::tests::selected_workspace_waiting_does_not_render_working ... ok [INFO] [stdout] test ui::tui::tests::settings_dialog_save_rethemes_existing_grove_tmux_sessions ... ok [INFO] [stdout] test ui::tui::tests::settings_dialog_theme_preview_applies_while_cycling ... ok [INFO] [stdout] test ui::tui::tests::shell_lines_show_workspace_and_agent_labels_without_status_badges ... ok [INFO] [stdout] test ui::tui::tests::settings_dialog_cancel_restores_theme_after_preview ... ok [INFO] [stdout] test ui::tui::tests::settings_dialog_save_persists_selected_theme ... ok [INFO] [stdout] test ui::tui::tests::selected_preview_stream_replaces_stale_placeholder_with_snapshot ... ok [INFO] [stdout] test ui::tui::tests::selected_preview_stream_reports_connecting_before_first_stream_event ... ok [INFO] [stdout] test ui::tui::tests::sidebar_hides_repo_name_for_base_task_even_when_repo_differs ... ok [INFO] [stdout] test ui::tui::tests::selected_workspace_hold_keeps_working_label ... ok [INFO] [stdout] test ui::tui::tests::sidebar_renders_attention_inbox_above_task_tree ... ok [INFO] [stdout] test ui::tui::tests::sidebar_mouse_wheel_burst_same_direction_is_debounced ... ok [INFO] [stdout] test ui::tui::tests::sidebar_renders_empty_attention_inbox_placeholder_above_task_tree ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_creates_task_with_multiple_repositories ... ok [INFO] [stdout] test ui::tui::tests::sidebar_row_omits_duplicate_workspace_and_branch_text ... ok [INFO] [stdout] test ui::tui::tests::sidebar_shows_workspace_names ... ok [INFO] [stdout] test ui::tui::tests::sidebar_row_shows_pull_request_status_icons ... ok [INFO] [stdout] test ui::tui::tests::sidebar_shows_repo_name_for_single_repo_task ... ok [INFO] [stdout] test ui::tui::tests::sidebar_selection_moves_from_attention_row_into_workspace_rows ... ok [INFO] [stdout] test ui::tui::tests::sidebar_empty_state_promotes_command_palette_help ... ok [INFO] [stdout] test ui::tui::tests::sidebar_mouse_wheel_allows_fast_direction_change ... ok [INFO] [stdout] test ui::tui::tests::sidebar_row_shows_deleting_indicator_for_in_flight_delete ... ok [INFO] [stdout] test ui::tui::tests::slash_opens_workspace_jump_palette ... ok [INFO] [stdout] test ui::tui::tests::sidebar_working_workspace_animation_uses_theme_accent_color ... ok [INFO] [stdout] test ui::tui::tests::sidebar_working_row_colors_do_not_change_across_visual_ticks ... ok [INFO] [stdout] test ui::tui::tests::slash_is_forwarded_in_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::sidebar_renders_task_headers_with_nested_worktrees ... ok [INFO] [stdout] test ui::tui::tests::sidebar_keeps_selected_workspace_visible_with_many_rows ... ok [INFO] [stdout] test ui::tui::tests::stale_preview_stream_output_does_not_corrupt_preview ... ok [INFO] [stdout] test ui::tui::tests::sidebar_keeps_first_project_header_visible_after_tiny_initial_render ... ok [INFO] [stdout] test ui::tui::tests::slash_appends_into_open_command_palette_query ... ok [INFO] [stdout] test ui::tui::tests::startup_restores_workspace_tabs_from_tmux_metadata ... ok [INFO] [stdout] test ui::tui::tests::slash_appends_into_create_dialog_pr_url ... ok [INFO] [stdout] test ui::tui::tests::startup_ignores_malformed_tmux_tab_metadata_rows ... ok [INFO] [stdout] test ui::tui::tests::startup_helper_selects_first_attention_item_when_inbox_exists ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_edit_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_merge_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_preview_mode ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_create_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_delete_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_interactive_mode ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_launch_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_shows_palette_hints_when_palette_open ... ok [INFO] [stdout] test ui::tui::tests::startup_restores_running_task_root_sessions ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_shell_tab ... ok [INFO] [stdout] test ui::tui::tests::startup_restores_workspace_tabs_from_tmux_metadata_when_order_is_blank ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_stop_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_git_tab ... ok [INFO] [stdout] test ui::tui::tests::status_row_keeps_compact_footer_in_update_from_base_dialog ... ok [INFO] [stdout] test ui::tui::tests::status_row_ignores_toast_and_shows_compact_footer ... ok [INFO] [stdout] test ui::tui::tests::startup_selects_attention_inbox_when_first_item_becomes_visible ... ok [INFO] [stdout] test ui::tui::tests::ui_command_help_entries_are_structured ... ok [INFO] [stdout] test ui::tui::tests::ui_command_help_hint_labels_match_context_command_lists ... ok [INFO] [stdout] test ui::tui::tests::ui_command_help_hints_have_unique_contexts_per_command ... ok [INFO] [stdout] test ui::tui::tests::ui_command_keybinding_specs_have_no_duplicates_per_command ... ok [INFO] [stdout] test ui::tui::tests::ui_command_keybound_commands_are_discoverable ... ok [INFO] [stdout] test ui::tui::tests::ui_command_metadata_counts_match_expected_snapshot ... ok [INFO] [stdout] test ui::tui::tests::stream_blocking_poll_preserves_preview_content ... ok [INFO] [stdout] test ui::tui::tests::switching_ready_agent_tabs_clears_stale_preview_until_new_session_bootstraps ... ok [INFO] [stdout] test ui::tui::tests::ui_command_registry_covers_every_command ... ok [INFO] [stdout] test ui::tui::tests::ui_command_workspace_jump_is_discoverable_in_global_help ... ok [INFO] [stdout] test ui::tui::tests::toast_overlay_renders_message ... ok [INFO] [stdout] test ui::tui::tests::ui_command_palette_ids_are_unique_and_roundtrip ... ok [INFO] [stdout] test ui::tui::tests::status_row_uses_list_state_chip_when_workspace_list_is_focused_in_preview_mode ... ok [INFO] [stdout] test ui::tui::tests::toast_messages_are_sanitized_and_truncated_to_fit_width ... ok [INFO] [stdout] test ui::tui::tests::status_row_uses_ui_mode_as_state_chip ... ok [INFO] [stdout] test ui::tui::tests::uppercase_m_toggles_mouse_capture_and_emits_runtime_command ... ok [INFO] [stdout] test ui::tui::tests::uppercase_r_is_debounced_after_recent_manual_refresh ... ok [INFO] [stdout] test ui::tui::tests::status_row_uses_task_and_worktree_context_labels ... ok [INFO] [stdout] test ui::tui::tests::task_home_keybind_upper_a_opens_parent_agent_launch_dialog ... ok [INFO] [stdout] test ui::tui::tests::task_home_start_parent_agent_launches_task_root_session ... ok [INFO] [stdout] test ui::tui::tests::uppercase_s_opens_settings_dialog ... ok [INFO] [stdout] test ui::tui::tests::uppercase_r_refreshes_workspaces_from_list_mode ... ok [INFO] [stdout] test ui::tui::tests::view_registers_hit_regions_for_panes_and_workspace_rows ... ok [INFO] [stdout] test ui::tui::tests::visible_palette_action_none_mode_does_not_execute_fallback_command ... ok [INFO] [stdout] test ui::tui::tests::waiting_workspace_row_has_no_status_badge_or_input_banner ... ok [INFO] [stdout] test ui::tui::tests::waiting_workspace_row_clears_after_preview_focus ... ok [INFO] [stdout] test ui::tui::tests::waiting_workspace_row_shows_waiting_only_and_suppresses_details ... ok [INFO] [stdout] test ui::tui::tests::view_hides_terminal_cursor_without_focused_input_widget ... ok [INFO] [stdout] test ui::tui::tests::visible_attention_item_requires_three_absent_polls_before_leaving_inbox ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_finds_main_workspace_by_branch_fragment ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_enter_selects_workspace_preserves_tab_and_focuses_preview ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_finds_feature_workspace_by_task_slug ... ok [INFO] [stdout] test ui::tui::tests::workspace_age_renders_in_preview_header_not_sidebar_row ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_executes_opaque_id_for_search_result ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_empty_query_enter_is_noop ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::project_add_dialog_accepts_shift_modified_uppercase_path_characters ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_finds_repo_worktree_by_name ... ok [INFO] [stdout] test ui::tui::tests::working_workspace_row_shows_attention_indicator_when_present ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_finds_workspace_by_unique_basename ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_visit_order_is_seeded_and_pruned_on_refresh ... ok [INFO] [stdout] test ui::tui::update_lifecycle_workspace_refresh::tests::refreshed_app_state_loads_tasks_from_manifests ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_to_selected_workspace_from_list_refreshes_preview_without_resetting_context ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_from_attention_selected_state_clears_attention_selection ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_rows_split_visible_text_from_search_terms ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::format_diff_summary_header_single_file ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::format_diff_summary_header_with_changes ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_deletions_only ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_empty ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_insertions_only ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_multiple_files ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_shortstat_output ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::parse_diff_stat_summary_typical_output ... ok [INFO] [stdout] test ui::tui::view_preview_content::tests::plain_preview_line_preserves_unicode_text ... ok [INFO] [stdout] test ui::tui::update_polling_capture_diff::tests::format_diff_summary_header_no_changes ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_hidden_suffix_terms_remain_searchable_after_row_split ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_visit_order_is_pruned_on_sync_refresh ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_repo_prefix_beats_branch_only_match ... ok [INFO] [stdout] test ui::tui::tests::workspace_jump_orders_non_current_results_by_mru ... ok [INFO] [stdout] test ui::tui::tests::runtime_flow::projects_and_creation::create_dialog_pr_mode_creates_task_with_single_repository ... ok [INFO] [stdout] test ui::tui::update_lifecycle_workspace_refresh::tests::refreshed_app_state_skips_hidden_base_project_paths ... ok [INFO] [stdout] test ui::tui::tests::workspace_pr_token_registers_link_hit_data ... ok [INFO] [stdout] test ui::tui::update_lifecycle_workspace_refresh::tests::refreshed_app_state_migrates_configured_repo_into_base_task_manifest ... ok [INFO] [stdout] test ui::tui::tests::view_fills_status_bar_row ... ok [INFO] [stdout] test ui::tui::tests::no_panic_on_random_messages ... ok [INFO] [stdout] test ui::tui::tests::view_never_panics ... ok [INFO] [stdout] test ui::tui::tests::modal_exclusivity ... ok [INFO] [stdout] test ui::tui::tests::scroll_offset_in_bounds ... ok [INFO] [stdout] test ui::tui::tests::selection_always_in_bounds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 994 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 22.24s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/grove-b131d3f98e1fd915) [INFO] [stderr] Running tests/debug_record_cli_smoke.rs (/opt/rustwide/target/debug/deps/debug_record_cli_smoke-a93a752e1ef16a1a) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Running tests/event_log_cli_smoke.rs (/opt/rustwide/target/debug/deps/event_log_cli_smoke-ff366c0a477bdd98) [INFO] [stdout] test print_hello_with_debug_record_creates_timestamped_file_in_dot_grove ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test print_hello_with_event_log_creates_log_file ... ok [INFO] [stdout] test print_hello_with_relative_event_log_creates_file_under_grove_directory ... FAILED [INFO] [stderr] error: test failed, to rerun pass `--test event_log_cli_smoke` [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- print_hello_with_relative_event_log_creates_file_under_grove_directory stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'print_hello_with_relative_event_log_creates_file_under_grove_directory' (2814) panicked at tests/event_log_cli_smoke.rs:61:5: [INFO] [stdout] binary exited non-zero [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5896ed9e8bda - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5896ed9e8bda - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5896ed9e8bda - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5896ed9e8bda - <::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5896ed9fcf8a - ::fmt [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5896ed9fcf8a - core[4a92201981c6b77a]::fmt::write [INFO] [stdout] 6: 0x5896ed9ed412 - std[1209cfb42f6d497f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11 [INFO] [stdout] 7: 0x5896ed9ed412 - as std[1209cfb42f6d497f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13 [INFO] [stdout] 8: 0x5896ed9c77bf - ::print [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5896ed9c77bf - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5896ed9e0f89 - std[1209cfb42f6d497f]::panicking::default_hook [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5896ed97d3bc - core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9 [INFO] [stdout] 12: 0x5896ed97d3bc - test[59e67a9bc0e119f1]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5896ed9e1142 - core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9 [INFO] [stdout] 14: 0x5896ed9e1142 - std[1209cfb42f6d497f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5896ed9c78aa - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x5896ed9bc9d9 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5896ed9c858d - __rustc[4effac393e9f3da6]::rust_begin_unwind [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5896ed9fd67c - core[4a92201981c6b77a]::panicking::panic_fmt [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5896ed96d129 - event_log_cli_smoke[31e9b8ff487a182e]::print_hello_with_relative_event_log_creates_file_under_grove_directory [INFO] [stdout] at /opt/rustwide/workdir/tests/event_log_cli_smoke.rs:61:5 [INFO] [stdout] 20: 0x5896ed96c687 - event_log_cli_smoke[31e9b8ff487a182e]::print_hello_with_relative_event_log_creates_file_under_grove_directory::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/event_log_cli_smoke.rs:49:76 [INFO] [stdout] 21: 0x5896ed9702c6 - >::call_once [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 22: 0x5896ed97069b - core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5896ed97069b - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18 [INFO] [stdout] 24: 0x5896ed97de8b - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74 [INFO] [stdout] 25: 0x5896ed97de8b - as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 26: 0x5896ed97de8b - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40 [INFO] [stdout] 27: 0x5896ed97de8b - std[1209cfb42f6d497f]::panicking::catch_unwind::, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19 [INFO] [stdout] 28: 0x5896ed97de8b - std[1209cfb42f6d497f]::panic::catch_unwind::, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14 [INFO] [stdout] 29: 0x5896ed97de8b - test[59e67a9bc0e119f1]::run_test_in_process [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27 [INFO] [stdout] 30: 0x5896ed97de8b - test[59e67a9bc0e119f1]::run_test::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43 [INFO] [stdout] 31: 0x5896ed9775a4 - test[59e67a9bc0e119f1]::run_test::{closure#1} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41 [INFO] [stdout] 32: 0x5896ed9775a4 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 33: 0x5896ed980a92 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 34: 0x5896ed980a92 - ::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 35: 0x5896ed980a92 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40 [INFO] [stdout] 36: 0x5896ed980a92 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19 [INFO] [stdout] 37: 0x5896ed980a92 - std[1209cfb42f6d497f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14 [INFO] [stdout] 38: 0x5896ed980a92 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 39: 0x5896ed980a92 - ::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 40: 0x5896ed9e84ef - + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9 [INFO] [stdout] 41: 0x5896ed9e84ef - ::new::thread_start [INFO] [stdout] at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 42: 0x70a564a52aa4 - [INFO] [stdout] 43: 0x70a564adfa64 - clone [INFO] [stdout] 44: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] print_hello_with_relative_event_log_creates_file_under_grove_directory [INFO] [stdout] [INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "abd90b66484a1fb5567a927e83be13c119f9b5c35de1da847594f292f50a8d83", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "abd90b66484a1fb5567a927e83be13c119f9b5c35de1da847594f292f50a8d83", kill_on_drop: false }` [INFO] [stdout] abd90b66484a1fb5567a927e83be13c119f9b5c35de1da847594f292f50a8d83