[INFO] cloning repository https://github.com/cloudbridgeuy/ralph
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cloudbridgeuy/ralph" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcloudbridgeuy%2Fralph", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcloudbridgeuy%2Fralph'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c2771558378b106923d79fe414174b1455ad30c0
[INFO] testing cloudbridgeuy/ralph against try#b8e88e5ddf5521a9f43ee3f62a702388c713e4bb for pr-155114
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcloudbridgeuy%2Fralph" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-3-tc2/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/cloudbridgeuy/ralph
[INFO] finished tweaking git repo https://github.com/cloudbridgeuy/ralph
[INFO] tweaked toml for git repo https://github.com/cloudbridgeuy/ralph written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/cloudbridgeuy/ralph on toolchain b8e88e5ddf5521a9f43ee3f62a702388c713e4bb
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/cloudbridgeuy/ralph 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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f31fdc27a62a8ab32cc1847cd123e07485438c01ff2c94cf9a108211ec42f573
[INFO] running `Command { std: "docker" "start" "-a" "f31fdc27a62a8ab32cc1847cd123e07485438c01ff2c94cf9a108211ec42f573", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f31fdc27a62a8ab32cc1847cd123e07485438c01ff2c94cf9a108211ec42f573", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f31fdc27a62a8ab32cc1847cd123e07485438c01ff2c94cf9a108211ec42f573", kill_on_drop: false }`
[INFO] [stdout] f31fdc27a62a8ab32cc1847cd123e07485438c01ff2c94cf9a108211ec42f573
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6c653f07bc6343e2cf7d61ebc7e1fbec99308f0c04976b3368c4cddafc7a5626
[INFO] running `Command { std: "docker" "start" "-a" "6c653f07bc6343e2cf7d61ebc7e1fbec99308f0c04976b3368c4cddafc7a5626", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling libc v0.2.179
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling pin-project-lite v0.2.16
[INFO] [stderr]    Compiling zmij v1.0.12
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling syn v2.0.113
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling object v0.37.3
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling deranged v0.5.5
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling strict v0.2.0
[INFO] [stderr]    Compiling clap_lex v0.7.6
[INFO] [stderr]    Compiling num-conv v0.1.0
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.64
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling time-core v0.1.6
[INFO] [stderr]    Compiling color-spantrace v0.3.0
[INFO] [stderr]    Compiling gimli v0.32.3
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling clap_builder v4.5.54
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling tracing-error v0.2.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling time v0.3.44
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling quick-xml v0.38.4
[INFO] [stderr]    Compiling rustc-demangle v0.1.26
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling flate2 v1.1.5
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling socket2 v0.6.1
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling minimad v0.14.0
[INFO] [stderr]    Compiling bytes v1.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling uuid v1.20.0
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling ctrlc v3.5.1
[INFO] [stderr]    Compiling addr2line v0.25.1
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.5.1
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling fancy-regex v0.16.2
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling lazy-regex v3.5.1
[INFO] [stderr]    Compiling clap v4.5.54
[INFO] [stderr]    Compiling crokey-proc_macros v1.3.0
[INFO] [stderr]    Compiling coolor v1.1.0
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling color-eyre v0.6.5
[INFO] [stderr]    Compiling chrono v0.4.42
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling crokey v1.3.0
[INFO] [stderr]    Compiling plist v1.8.0
[INFO] [stderr]    Compiling termimad v0.34.1
[INFO] [stderr]    Compiling syntect v5.3.0
[INFO] [stderr]    Compiling ralph_core v0.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling xtask v0.1.0 (/opt/rustwide/workdir/xtask)
[INFO] [stderr]    Compiling ralph v0.1.0 (/opt/rustwide/workdir/crates/ralph)
[INFO] [stderr]     Finished `dev` profile [unoptimized] target(s) in 53.94s
[INFO] running `Command { std: "docker" "inspect" "6c653f07bc6343e2cf7d61ebc7e1fbec99308f0c04976b3368c4cddafc7a5626", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6c653f07bc6343e2cf7d61ebc7e1fbec99308f0c04976b3368c4cddafc7a5626", kill_on_drop: false }`
[INFO] [stdout] 6c653f07bc6343e2cf7d61ebc7e1fbec99308f0c04976b3368c4cddafc7a5626
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 041526c7506a74d2403fc72ff14d66444b57294453ec8325546542e598e1f21c
[INFO] running `Command { std: "docker" "start" "-a" "041526c7506a74d2403fc72ff14d66444b57294453ec8325546542e598e1f21c", kill_on_drop: false }`
[INFO] [stderr]    Compiling ralph_core v0.0.0 (/opt/rustwide/workdir/crates/core)
[INFO] [stderr]    Compiling ralph v0.1.0 (/opt/rustwide/workdir/crates/ralph)
[INFO] [stderr]    Compiling xtask v0.1.0 (/opt/rustwide/workdir/xtask)
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 11.07s
[INFO] running `Command { std: "docker" "inspect" "041526c7506a74d2403fc72ff14d66444b57294453ec8325546542e598e1f21c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "041526c7506a74d2403fc72ff14d66444b57294453ec8325546542e598e1f21c", kill_on_drop: false }`
[INFO] [stdout] 041526c7506a74d2403fc72ff14d66444b57294453ec8325546542e598e1f21c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+b8e88e5ddf5521a9f43ee3f62a702388c713e4bb" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7ab69c38ec79c53dc21e4bab2340f083e8900384f6907ece32ead7ec8fdbc19c
[INFO] running `Command { std: "docker" "start" "-a" "7ab69c38ec79c53dc21e4bab2340f083e8900384f6907ece32ead7ec8fdbc19c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized] target(s) in 0.30s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ralph-c6dd1fba9a66a3e7)
[INFO] [stdout] 
[INFO] [stdout] running 853 tests
[INFO] [stdout] test ask::tests::test_resolve_permission_mode_none_returns_default ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_clone_with_continue ... ok
[INFO] [stdout] test ask::tests::test_resolve_permission_mode_cli_explicit ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_clone_with_session_and_continue ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_history_with_all_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_help_available ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_history_with_continue_and_prompt ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_clone_with_all_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_accept_edits ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_bypass ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_clone_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_not_specified ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_session_after_prompt ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_history_with_session_and_continue ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_plan ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_timeout_default ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_with_other_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_session_before_prompt ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_all_new_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_history_with_continue ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_continue_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_continue_and_session ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_all_flags_combined ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_continue_short_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_no_background ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_session_short_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_continue_session_short_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_no_prompt_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_theme_and_no_background ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_theme_and_continue ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_verbose_tools_specific ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_timeout ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_verbose_tools_all ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_continue_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_no_prompt_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_prompt ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_theme_flags ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_theme_with_file_path ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_multiword_prompt ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_history_flag ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_stdin_indicator ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_verbose_tools ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_theme ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_clone_flag ... ok
[INFO] [stdout] test cli::tests::persona::test_into_action_no_name_no_list ... ok
[INFO] [stdout] test cli::tests::persona::test_persona_list_flag_parses ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_execute_parses_name ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_execute_requires_name ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_max_iterations ... ok
[INFO] [stdout] test cli::tests::persona::test_persona_with_name_parses ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_without_subcommand_fails ... ok
[INFO] [stdout] test cli::tests::persona::test_into_action_list ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_list_parses ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_iterations_command ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_replay_command ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_history_flag ... ok
[INFO] [stdout] test cli::tests::persona::test_persona_list_conflicts_with_name ... ok
[INFO] [stdout] test cli::tests::persona::test_into_action_invoke ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_sync_parses ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_resume ... ok
[INFO] [stdout] test cli::tests::test_cli_parses_sessions_command ... ok
[INFO] [stdout] test cli::tests::test_iterations_without_args ... ok
[INFO] [stdout] test cli::tests::test_replay_with_delay_fractional ... ok
[INFO] [stdout] test cli::tests::test_iterations_with_project_filter ... ok
[INFO] [stdout] test cli::tests::test_replay_with_delay ... ok
[INFO] [stdout] test cli::tests::test_replay_with_slug ... ok
[INFO] [stdout] test cli::tests::test_replay_without_delay ... ok
[INFO] [stdout] test cli::tests::test_sessions_with_both_filters ... ok
[INFO] [stdout] test cli::tests::test_replay_with_iteration ... ok
[INFO] [stdout] test cli::tests::test_sessions_with_interrupted_outcome ... ok
[INFO] [stdout] test cli::tests::test_sessions_with_project_filter ... ok
[INFO] [stdout] test cli::tests::test_sessions_with_outcome_filter ... ok
[INFO] [stdout] test config::tests::test_config_path_contains_ralph ... ok
[INFO] [stdout] test config::tests::test_default_ask_section ... ok
[INFO] [stdout] test cli::tests::test_sessions_without_args ... ok
[INFO] [stdout] test config::tests::test_default_config ... ok
[INFO] [stdout] test cli::tests::test_iterations_with_all_filters ... ok
[INFO] [stdout] test cli::tests::test_iterations_with_outcome_filter ... ok
[INFO] [stdout] test cli::tests::test_replay_with_iteration_long_flag ... ok
[INFO] [stdout] test cli::tests::test_iterations_with_session_filter ... ok
[INFO] [stdout] test config::tests::test_load_ask_permission_mode ... ok
[INFO] [stdout] test config::tests::test_load_empty_file ... ok
[INFO] [stdout] test cli::tests::test_replay_requires_slug ... ok
[INFO] [stdout] test config::tests::test_load_full_ask_and_theme ... ok
[INFO] [stdout] test config::tests::test_serialize_omits_none ... ok
[INFO] [stdout] test config::tests::test_load_theme_name ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_addition ... ok
[INFO] [stdout] test config::tests::test_load_full_config ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_always_produces_ansi ... ok
[INFO] [stdout] test config::tests::test_save_and_load ... ok
[INFO] [stdout] test config::tests::test_load_no_background ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_context_line ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_deletion ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_empty_diff ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_diff_header ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_file_headers ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_multiple_hunks ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_hunk_header ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_index_line ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_full_diff ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_special_characters ... ok
[INFO] [stdout] test config::tests::test_load_nonexistent_returns_default ... ok
[INFO] [stdout] test config::tests::test_load_theme_file_path ... ok
[INFO] [stdout] test config::tests::test_parse_error ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_no_changes ... ok
[INFO] [stdout] test edit::tests::test_iterations_to_messages_basic ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_preserves_content ... ok
[INFO] [stdout] test diff_highlight::tests::test_basic_colors_unicode ... ok
[INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_new ... ok
[INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_highlight_always ... ok
[INFO] [stdout] test edit::tests::test_iterations_to_messages_empty ... ok
[INFO] [stdout] test edit::tests::test_iterations_to_messages_response_only ... ok
[INFO] [stdout] test edit::tests::test_iterations_to_messages_skips_neither ... ok
[INFO] [stdout] test edit::tests::test_messages_to_edit_toml_basic ... ok
[INFO] [stdout] test edit::tests::test_iterations_to_messages_handles_missing_response ... ok
[INFO] [stdout] test edit::tests::test_messages_to_edit_toml_empty ... ok
[INFO] [stdout] test edit::tests::test_messages_to_edit_toml_escapes_triple_quotes ... ok
[INFO] [stdout] test edit::tests::test_messages_to_edit_toml_includes_header ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_consecutive_users ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_user_assistant ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_empty ... ok
[INFO] [stdout] test diff_highlight::tests::test_is_delta_available_does_not_crash ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_user_only ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_content_trimming ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_empty_messages ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_invalid_role ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_invalid_syntax ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_missing_role ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_missing_content ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_valid ... ok
[INFO] [stdout] test edit::tests::test_parse_edit_toml_roundtrip ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_create ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_delete ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_rewrite ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_no_changes ... ok
[INFO] [stdout] test edit::tests::test_toml_roundtrip_four_consecutive_quotes ... ok
[INFO] [stdout] test edit::tests::test_toml_roundtrip_trailing_double_quote ... ok
[INFO] [stdout] test edit::tests::test_toml_roundtrip_trailing_single_quote ... ok
[INFO] [stdout] test formatting::tests::test_format_duration_milliseconds ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_delete_and_create ... ok
[INFO] [stdout] test edit::tests::test_plan_iteration_updates_mixed ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_session ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_with_prompt ... ok
[INFO] [stdout] test ask::tests::test_resolve_permission_mode_cli_explicit_default ... ok
[INFO] [stdout] test formatting::tests::test_format_duration_seconds ... ok
[INFO] [stdout] test formatting::tests::test_format_token_count_millions ... ok
[INFO] [stdout] test formatting::tests::test_format_token_count_thousands ... ok
[INFO] [stdout] test git::tests::test_git_diff_structure ... ok
[INFO] [stdout] test git::tests::test_capture_and_write_diff_in_non_git_dir ... ok
[INFO] [stdout] test git::tests::test_write_diff_file_empty_content ... ok
[INFO] [stdout] test git::tests::test_write_diff_file_creates_parent_dirs ... ok
[INFO] [stdout] test formatting::tests::test_format_duration_minutes ... ok
[INFO] [stdout] test git::tests::test_capture_git_diff_in_non_git_dir ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_without_session ... ok
[INFO] [stdout] test git::tests::test_write_diff_file_overwrites_existing ... ok
[INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_default_mode ... ok
[INFO] [stdout] test cli::tests::ask::test_cli_parses_ask_command ... ok
[INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_all_flags ... ok
[INFO] [stdout] test edit::tests::test_toml_roundtrip_five_consecutive_quotes ... ok
[INFO] [stdout] test cli::tests::test_replay_with_delay_integer ... ok
[INFO] [stdout] test config::tests::test_unknown_fields_ignored ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_assistant_only ... ok
[INFO] [stdout] test edit::tests::test_pair_messages_multiple_pairs ... ok
[INFO] [stdout] test formatting::tests::test_format_token_count_under_thousand ... ok
[INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_default ... ok
[INFO] [stdout] test git::tests::test_is_git_repository_in_non_git_dir ... ok
[INFO] [stdout] test highlight::tests::test_available_themes_not_empty ... ok
[INFO] [stdout] test highlight::tests::test_highlight_code_no_language ... ok
[INFO] [stdout] test highlight::tests::test_highlight_unknown_language ... ok
[INFO] [stdout] test highlight::tests::test_highlight_empty_code ... ok
[INFO] [stdout] test highlight::tests::test_highlighter_default ... ok
[INFO] [stdout] test highlight::tests::test_highlighter_with_config_invalid_theme ... ok
[INFO] [stdout] test highlight::tests::test_highlighter_new ... ok
[INFO] [stdout] test highlight::tests::test_highlight_no_language ... ok
[INFO] [stdout] test highlight::tests::test_highlighter_with_config_valid_theme ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_is_theme_file_with_path ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_is_theme_file_with_name ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_merge_cli_overrides_no_background ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_merge_cli_overrides_theme ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_merge_cli_preserves_no_background_when_false ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_merge_cli_preserves_theme_when_none ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_new ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_with_no_background ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_with_theme ... ok
[INFO] [stdout] test init::tests::test_verify_prd_exists_error_contains_path ... ok
[INFO] [stdout] test init::tests::test_verify_prd_exists_when_missing ... ok
[INFO] [stdout] test init::tests::test_verify_prd_exists_when_present ... ok
[INFO] [stdout] test invoke::tests::build_command_escapes_single_quotes ... ok
[INFO] [stdout] test invoke::tests::build_command_with_agent ... ok
[INFO] [stdout] test invoke::tests::build_command_without_agent ... ok
[INFO] [stdout] test invoke::tests::format_conversation_history_empty ... ok
[INFO] [stdout] test invoke::tests::format_conversation_history_with_messages ... ok
[INFO] [stdout] test invoke::tests::persona_suffix_has_no_single_quotes ... ok
[INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_code ... ok
[INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_code_without_language ... ok
[INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_diff ... ok
[INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_prose ... ok
[INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_serialization_omits_none_language ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_extract_response_text_empty ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_extract_response_text_ignores_non_text_blocks ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_extract_response_text_multiple_text_blocks ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_extract_response_text_single_text_block ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_backward_compatible_without_metadata ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_backward_compatible_without_prompt_response ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_deserialization ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_deserialization_with_metadata ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_empty_chunks ... ok
[INFO] [stdout] test highlight::tests::test_is_language_supported_common_languages ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_with_code_chunk ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_with_metadata ... ok
[INFO] [stdout] test highlight::tests::test_theme_config_is_theme_file_with_tmtheme_extension ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_deserialization ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_empty_fields_skipped ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_from_extracted ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_is_empty ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_new ... ok
[INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_serialization ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_serialization ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunk_code_with_language ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunk_code_without_language ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunk_diff ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunk_prose ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunks_diff_serialization ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunks_empty ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunks_preserves_order ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_from_parsed_chunks_serializes_to_toml ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_chunk_equality ... ok
[INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_iteration_log_with_typed_chunks_from_parsed ... ok
[INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_with_prompt_and_response ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_iteration_log_deserialization_with_tool_calls ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_iteration_log_with_tool_calls ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_from_interaction ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_from_interaction_error ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_from_interaction_no_result ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_deserialization ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_from_interactions ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_serialization ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_serialization_with_error ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_serialization_with_truncated ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_truncate_result_preserves_utf8 ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_truncation ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_write_iteration_log_with_tool_calls ... ok
[INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_no_truncation_for_small_result ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_conversation_message_new ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_count_iterations_empty_dir ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_count_iterations_ignores_other_files ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_empty ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_count_iterations_with_iterations ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_handles_missing_response ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_preserves_order ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_skips_logs_without_prompt ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_load_session_iterations_empty ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_load_session_iterations_ignores_non_iteration_files ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_load_session_iterations_parse_error ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_load_session_iterations_sorted_by_sequence ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_write_iteration_log ... ok
[INFO] [stdout] test iterations::tests::test_error_display_invalid_outcome ... ok
[INFO] [stdout] test iterations::tests::test_format_duration_minutes ... ok
[INFO] [stdout] test iterations::tests::test_format_duration_ms ... ok
[INFO] [stdout] test iterations::tests::test_format_duration_seconds ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_write_iteration_log_with_metadata ... ok
[INFO] [stdout] test iterations::tests::test_iterations_filter_default ... ok
[INFO] [stdout] test iterations::tests::test_iterations_result_fields ... ok
[INFO] [stdout] test iterations::tests::test_load_iteration_log ... ok
[INFO] [stdout] test iterations::tests::test_outcome_filter_case_insensitive ... ok
[INFO] [stdout] test iterations::tests::test_valid_outcome_filter_completed ... ok
[INFO] [stdout] test iterations::tests::test_valid_outcome_filter_failed ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_n_with_modifier_ignored ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_pause ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_skip_ctrl_c ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_skip_n ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_skip_n_uppercase ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_skip_space ... ok
[INFO] [stdout] test keyboard::tests::test_classify_countdown_key_unknown ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_c_without_modifier ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_ctrl_c_interrupt ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_hard_stop ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_pause_lowercase ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_pause_uppercase ... ok
[INFO] [stdout] test iteration::tests::writer_tests::test_write_multiple_iteration_logs ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_release_ignored ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_soft_stop ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_unknown ... ok
[INFO] [stdout] test keyboard::tests::test_countdown_key_action_enum_variants ... ok
[INFO] [stdout] test keyboard::tests::test_raw_mode_guard_default ... ok
[INFO] [stdout] test keyboard::tests::test_raw_mode_guard_tracks_enabled_state ... ok
[INFO] [stdout] test keyboard::tests::test_run_key_action_enum_variants ... ok
[INFO] [stdout] test markdown::tests::test_create_markdown_skin_returns_configured_skin ... ok
[INFO] [stdout] test markdown::tests::test_render_bold_text ... ok
[INFO] [stdout] test markdown::tests::test_render_bulleted_list ... ok
[INFO] [stdout] test markdown::tests::test_render_empty_string ... ok
[INFO] [stdout] test markdown::tests::test_render_header ... ok
[INFO] [stdout] test markdown::tests::test_render_inline_code ... ok
[INFO] [stdout] test markdown::tests::test_render_italic_text ... ok
[INFO] [stdout] test markdown::tests::test_render_multiline ... ok
[INFO] [stdout] test markdown::tests::test_render_nested_formatting ... ok
[INFO] [stdout] test markdown::tests::test_render_numbered_list ... ok
[INFO] [stdout] test markdown::tests::test_render_plain_text ... ok
[INFO] [stdout] test markdown::tests::test_render_preserves_whitespace ... ok
[INFO] [stdout] test markdown::tests::test_render_special_characters ... ok
[INFO] [stdout] test markdown::tests::test_render_unicode ... ok
[INFO] [stdout] test markdown::tests::test_renderer_default ... ok
[INFO] [stdout] test markdown::tests::test_renderer_new ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_handovers_returns_done ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_mixed_asks_with_other_extracts_first_match ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_multiple_asks_none_targeting_other_returns_third_party ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_multiple_asks_one_targeting_other_returns_ask_other ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_none_returns_done ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_single_ask_targeting_other_returns_ask_other ... ok
[INFO] [stdout] test orchestrator::conversation::tests::categorize_single_ask_targeting_third_party_returns_third_party ... ok
[INFO] [stdout] test orchestrator::display::tests::format_directive_banner_contains_payload ... ok
[INFO] [stdout] test orchestrator::display::tests::format_directive_banner_has_separators ... ok
[INFO] [stdout] test orchestrator::display::tests::format_directive_banner_separator_width_matches_minimum ... ok
[INFO] [stdout] test keyboard::tests::test_classify_run_key_s_with_modifier_ignored ... ok
[INFO] [stdout] test orchestrator::display::tests::format_orchestration_summary_full_budget ... ok
[INFO] [stdout] test orchestrator::display::tests::format_orchestration_summary_shows_budget ... ok
[INFO] [stdout] test orchestrator::display::tests::format_persona_banner_contains_ansi_codes ... ok
[INFO] [stdout] test iterations::tests::test_invalid_outcome_filter ... ok
[INFO] [stdout] test orchestrator::display::tests::format_persona_banner_contains_box_drawing ... ok
[INFO] [stdout] test orchestrator::display::tests::format_persona_banner_contains_name ... ok
[INFO] [stdout] test orchestrator::display::tests::format_routing_status_ask ... ok
[INFO] [stdout] test orchestrator::display::tests::format_routing_status_handover ... ok
[INFO] [stdout] test orchestrator::display::tests::format_routing_status_no_payload ... ok
[INFO] [stdout] test orchestrator::tests::budget_new_sets_remaining_and_limit ... ok
[INFO] [stdout] test orchestrator::tests::budget_try_consume_decrements ... ok
[INFO] [stdout] test orchestrator::tests::budget_clone_shares_state ... ok
[INFO] [stdout] test orchestrator::tests::budget_zero_limit ... ok
[INFO] [stdout] test orchestrator::tests::budget_try_consume_returns_false_when_exhausted ... ok
[INFO] [stdout] test orchestrator::display::tests::format_routing_status_contains_glyph ... ok
[INFO] [stdout] test highlight::tests::test_supported_languages_includes_common ... ok
[INFO] [stdout] test orchestrator::tests::scan_no_response_text_returns_none ... ok
[INFO] [stdout] test orchestrator::tests::scan_finds_handover_directive ... ok
[INFO] [stdout] test orchestrator::tests::scan_mixed_verbs_returns_none ... ok
[INFO] [stdout] test orchestrator::tests::scan_well_formed_directive_skips_recovery ... ok
[INFO] [stdout] test persona::tests::test_discover_strategy_personas ... ok
[INFO] [stdout] test orchestrator::tests::scan_orphan_closing_tag_no_matching_persona_returns_none ... ok
[INFO] [stdout] test orchestrator::tests::scan_empty_response_returns_none ... ok
[INFO] [stdout] test persona::tests::test_discover_strategy_personas_missing_file ... ok
[INFO] [stdout] test orchestrator::tests::scan_recovers_orphan_closing_tag_with_matching_persona ... ok
[INFO] [stdout] test persona::tests::test_discover_strategy_uses_key_as_name ... ok
[INFO] [stdout] test persona::tests::test_discover_with_strategy_none_uses_directories ... ok
[INFO] [stdout] test persona::tests::test_format_single ... ok
[INFO] [stdout] test persona::tests::test_resolve_from_strategy_file_missing ... ok
[INFO] [stdout] test persona::tests::test_resolve_from_strategy_found ... ok
[INFO] [stdout] test persona::tests::test_format_multiple ... ok
[INFO] [stdout] test persona::tests::test_format_source_indicator ... ok
[INFO] [stdout] test persona::tests::test_resolve_from_strategy_not_in_table ... ok
[INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_inline ... ok
[INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_none ... ok
[INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_stdin ... ok
[INFO] [stdout] test persona::tests::test_verify_with_strategy_none_falls_through ... ok
[INFO] [stdout] test prompt_source::tests::test_read_from_source_inline ... ok
[INFO] [stdout] test prompt_source::tests::test_read_from_source_none_with_default ... ok
[INFO] [stdout] test prompt_source::tests::test_read_from_source_none_without_default ... ok
[INFO] [stdout] test render::text::tests::test_derive_bottom_border ... ok
[INFO] [stdout] test render::text::tests::test_derive_top_border ... ok
[INFO] [stdout] test render::text::tests::test_enhance_tables_full ... ok
[INFO] [stdout] test render::text::tests::test_enhance_tables_multiple_tables ... ok
[INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_file ... FAILED
[INFO] [stdout] test prompt_source::tests::test_read_from_source_file ... FAILED
[INFO] [stdout] test render::text::tests::test_enhance_tables_no_separator ... ok
[INFO] [stdout] test render::text::tests::test_enhance_tables_no_table ... ok
[INFO] [stdout] test render::text::tests::test_enhance_tables_preserves_surrounding_text ... ok
[INFO] [stdout] test render::text::tests::test_is_separator_line ... ok
[INFO] [stdout] test render::text::tests::test_is_table_line ... ok
[INFO] [stdout] test render::text::tests::test_enhance_tables_trailing_newline_preserved ... ok
[INFO] [stdout] test persona::tests::test_format_empty ... ok
[INFO] [stdout] test highlight::tests::test_is_language_supported_python ... ok
[INFO] [stdout] test highlight::tests::test_is_language_supported_javascript ... ok
[INFO] [stdout] test highlight::tests::test_is_language_supported_unknown ... ok
[INFO] [stdout] test render::text::tests::test_render_code_plain ... ok
[INFO] [stdout] test render::text::tests::test_render_diff_terminal ... ok
[INFO] [stdout] test highlight::tests::test_is_language_supported_rust ... ok
[INFO] [stdout] test render::text::tests::test_render_code_no_language ... ok
[INFO] [stdout] test render::text::tests::test_render_directive_plain_returns_empty ... ok
[INFO] [stdout] test render::text::tests::test_render_directive_returns_empty ... ok
[INFO] [stdout] test render::text::tests::test_render_directive_via_render_text_block_returns_empty ... ok
[INFO] [stdout] test render::text::tests::test_render_diff_plain ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_bash_invocation_multiline ... ok
[INFO] [stdout] test render::text::tests::test_render_prose_terminal_with_skin ... ok
[INFO] [stdout] test render::text::tests::test_render_prose_terminal_without_skin ... ok
[INFO] [stdout] test render::text::tests::test_render_prose_plain ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_glob_result_empty ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_edit_before_after_plain ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_glob_result_grouped ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_grep_invocation_full ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_bash_invocation_single_line_plain ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_grep_invocation_minimal ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_c_cpp ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_case_insensitive ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_data_formats ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_javascript_typescript ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_python ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_rust ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_shell ... ok
[INFO] [stdout] test highlight::tests::test_highlight_code_convenience_function ... ok
[INFO] [stdout] test render::utils::tests::test_extract_language_unknown ... ok
[INFO] [stdout] test render::utils::tests::test_extract_line_number_no_separator ... ok
[INFO] [stdout] test render::utils::tests::test_extract_line_number_non_numeric_prefix ... ok
[INFO] [stdout] test render::utils::tests::test_extract_line_number_with_arrow ... ok
[INFO] [stdout] test render::utils::tests::test_group_files_by_directory ... ok
[INFO] [stdout] test render::utils::tests::test_extract_line_number_with_tab ... ok
[INFO] [stdout] test render::utils::tests::test_group_files_nested_directories ... ok
[INFO] [stdout] test render::utils::tests::test_highlight_grep_match_content_format ... ok
[INFO] [stdout] test render::utils::tests::test_highlight_grep_match_no_line_number ... ok
[INFO] [stdout] test render::utils::tests::test_highlight_grep_match_simple_path ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_alignment_99_to_100 ... ok
[INFO] [stdout] test render::utils::tests::test_group_files_empty_input ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_alignment_9_to_10 ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_todowrite_result_error ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_arrow_double_digit ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_arrow_multiple_lines ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_arrow_single_digit ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_arrow_with_offset ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_empty_content ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_alignment_mixed_widths ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_double_digit ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_mixed_lines ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_multiple_lines ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_pass_through_no_tab ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_pass_through_non_numeric_prefix ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_empty_string ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_preserves_content_with_tabs ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_single_digit ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_with_offset ... ok
[INFO] [stdout] test replay::tests::test_find_iteration_logs_empty_dir ... ok
[INFO] [stdout] test replay::tests::test_find_iteration_logs_ignores_non_iteration_files ... ok
[INFO] [stdout] test replay::tests::test_replay_error_display_iteration_not_found ... ok
[INFO] [stdout] test replay::tests::test_replay_error_display_no_iterations ... ok
[INFO] [stdout] test replay::tests::test_replay_error_display_session_not_found ... ok
[INFO] [stdout] test replay::tests::test_replay_options_builder_chain ... ok
[INFO] [stdout] test replay::tests::test_replay_options_default ... ok
[INFO] [stdout] test replay::tests::test_replay_options_with_delay ... ok
[INFO] [stdout] test replay::tests::test_find_iteration_logs_sorts_by_sequence ... ok
[INFO] [stdout] test replay::tests::test_sessions_index_lookup ... ok
[INFO] [stdout] test replay_countdown::tests::test_apply_delay_with_countdown_none ... ok
[INFO] [stdout] test replay_countdown::tests::test_apply_delay_with_countdown_zero ... ok
[INFO] [stdout] test replay_countdown::tests::test_countdown_result_enum ... ok
[INFO] [stdout] test replay::tests::test_replay_options_with_delay_none ... ok
[INFO] [stdout] test replay_countdown::tests::test_countdown_state_new ... ok
[INFO] [stdout] test replay_countdown::tests::test_spinner_chars_available ... ok
[INFO] [stdout] test replay_countdown::tests::test_wait_with_countdown_negative_delay ... ok
[INFO] [stdout] test replay_countdown::tests::test_wait_with_countdown_zero_delay ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_read_result_empty ... ok
[INFO] [stdout] test highlight::tests::test_highlight_multiline_code ... ok
[INFO] [stdout] test render::utils::tests::test_normalize_cat_n_format_triple_digit ... ok
[INFO] [stdout] test highlight::tests::test_highlight_special_characters ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_read_result_normalizes_cat_n ... ok
[INFO] [stdout] test replay_countdown::tests::test_wait_with_countdown_non_terminal ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_todowrite_result_success ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_todowrite_invocation ... ok
[INFO] [stdout] test highlight::tests::test_highlight_rust_code ... ok
[INFO] [stdout] test highlight::tests::test_highlight_preserves_content ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_bash_invocation_multiline_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_bash_invocation_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_bash_result_success_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_diff_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_bash_result_error_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_glob_result_grouped_by_directory ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_default_invocation_plain ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_edit_before_after_plain ... ok
[INFO] [stdout] test highlight::tests::test_highlighter_with_config_no_background ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_code_plain ... ok
[INFO] [stdout] test session::tests::test_initialize_session_directory_creates_structure ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_glob_result_empty ... ok
[INFO] [stdout] test session::tests::test_load_sessions_index_creates_empty_when_missing ... ok
[INFO] [stdout] test session::tests::test_save_and_load_sessions_index ... ok
[INFO] [stdout] test session::tests::test_session_not_found_error_message ... ok
[INFO] [stdout] test session::tests::test_sessions_index_path_structure ... ok
[INFO] [stdout] test sessions_display::tests::test_aggregate_iteration_stats_empty ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_grep_result_empty ... ok
[INFO] [stdout] test sessions_display::tests::test_aggregate_iteration_stats_partial_data ... ok
[INFO] [stdout] test sessions_display::tests::test_aggregate_iteration_stats_with_data ... ok
[INFO] [stdout] test sessions_display::tests::test_aggregate_session_totals ... ok
[INFO] [stdout] test sessions_display::tests::test_format_duration_milliseconds ... ok
[INFO] [stdout] test sessions_display::tests::test_format_duration_minutes ... ok
[INFO] [stdout] test sessions_display::tests::test_format_cost ... ok
[INFO] [stdout] test sessions_display::tests::test_format_duration_seconds ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_grep_result_files_mode ... ok
[INFO] [stdout] test sessions_display::tests::test_format_tokens_small ... ok
[INFO] [stdout] test sessions_display::tests::test_format_tokens_thousands ... ok
[INFO] [stdout] test sessions_display::tests::test_matches_filter_no_filter ... ok
[INFO] [stdout] test sessions_display::tests::test_matches_filter_outcome_match ... ok
[INFO] [stdout] test sessions_display::tests::test_matches_filter_outcome_no_match ... ok
[INFO] [stdout] test sessions_display::tests::test_matches_filter_project_match ... ok
[INFO] [stdout] test sessions_display::tests::test_matches_filter_project_no_match ... ok
[INFO] [stdout] test sessions_display::tests::test_truncate_left ... ok
[INFO] [stdout] test sessions_display::tests::test_truncate_left_unicode ... ok
[INFO] [stdout] test signal::tests::test_interrupt_context_clone ... ok
[INFO] [stdout] test signal::tests::test_interrupted_flag_default_false ... ok
[INFO] [stdout] test signal::tests::test_set_and_get_interrupt_context ... ok
[INFO] [stdout] test spinner::tests::test_format_key_hints_finishing ... ok
[INFO] [stdout] test spinner::tests::test_format_key_hints_paused ... ok
[INFO] [stdout] test spinner::tests::test_format_key_hints_running ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_empty ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_full ... ok
[INFO] [stdout] test sessions_display::tests::test_format_outcome_terminal_contains_color ... ok
[INFO] [stdout] test session::tests::test_session_dir_path_structure ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_on_behalf_of_without_persona ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_on_behalf_of ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_on_behalf_of_no_slug ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_full_session ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_iteration_no_max ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_iteration_only ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_slug_only ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_unknown_max ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_persona_only ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_iteration_only ... ok
[INFO] [stdout] test spinner::tests::test_format_spinner_time_small_difference ... ok
[INFO] [stdout] test spinner::tests::test_format_session_info_slug_only ... ok
[INFO] [stdout] test spinner::tests::test_format_time_short_minutes ... ok
[INFO] [stdout] test spinner::tests::test_format_time_short_seconds ... ok
[INFO] [stdout] test spinner::tests::test_key_hint_state_default ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_prose_plain ... ok
[INFO] [stdout] test spinner::tests::test_format_spinner_time_with_session ... ok
[INFO] [stdout] test spinner::tests::test_key_hint_state_hint_text ... ok
[INFO] [stdout] test spinner::tests::test_spinner_chars_count ... ok
[INFO] [stdout] test spinner::tests::test_spinner_context_default ... ok
[INFO] [stdout] test spinner::tests::test_spinner_context_messages ... ok
[INFO] [stdout] test spinner::tests::test_spinner_default ... ok
[INFO] [stdout] test spinner::tests::test_spinner_disabled_start_stop ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_context_changes_while_running ... ok
[INFO] [stdout] 
[K[36m⠋[0m Waiting for response... 0s [2m[s: stop | S: halt | p: pause][0m
[K[36m⠋[0m Waiting for response... 0s [2m[s: stop | S: halt | p: pause][0mtest spinner::tests::test_format_spinner_time_iteration_only ... ok
[INFO] [stdout] 
[K[36m⠋[0m Waiting for response... 0s [2m[s: stop | S: halt | p: pause][0mtest render::text::tests::test_render_code_terminal ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_read_result_normalizes_cat_n ... ok
[INFO] [stdout] test spinner::tests::test_spinner_get_context_default ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_enabled_start_stop ... ok
[INFO] [stdout] test spinner::tests::test_spinner_key_hint_state_default ... ok
[INFO] [stdout] 
[K[36m⠋[0m Waiting for response... 0s [2m[s: stop | S: halt | p: pause][0mtest replay_renderer::tests::test_render_read_result_empty ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_todowrite_invocation_plain ... ok
[INFO] [stdout] test spinner::tests::test_spinner_session_info_default ... ok
[INFO] [stdout] test spinner::tests::test_spinner_accumulate_iteration_time ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_session_info_has_info_persona_only ... ok
[INFO] [stdout] test spinner::tests::test_spinner_double_stop ... ok
[INFO] [stdout] test spinner::tests::test_spinner_set_context ... ok
[INFO] [stdout] test spinner::tests::test_spinner_set_key_hint_state ... ok
[INFO] [stdout] 
[K[36m⠋[0m Thinking... 0s [2m[s: stop | S: halt | p: pause][0mtest replay_renderer::tests::test_render_separator ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_double_start ... ok
[INFO] [stdout] test spinner::tests::test_spinner_with_enabled_false ... ok
[INFO] [stdout] test spinner::tests::test_spinner_session_info_new ... ok
[INFO] [stdout] test spinner::tests::test_spinner_with_session_context ... ok
[INFO] [stdout] test spinner::tests::test_spinner_with_session_elapsed ... ok
[INFO] [stdout] test startup::formatters::tests::empty_text_returns_minimum ... ok
[INFO] [stdout] test startup::formatters::tests::multiline_uses_longest_line ... ok
[INFO] [stdout] test startup::formatters::tests::short_text_returns_minimum ... ok
[INFO] [stdout] test startup::formatters::tests::terminal_narrower_than_minimum ... ok
[INFO] [stdout] test startup::formatters::tests::text_exactly_minimum_width ... ok
[INFO] [stdout] test startup::formatters::tests::text_exceeds_terminal_width ... ok
[INFO] [stdout] test startup::formatters::tests::text_wider_than_minimum_but_fits_terminal ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_clone ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_creation ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_failed ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_large_values ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_with_none_values ... ok
[INFO] [stdout] test startup::tests::test_ask_summary_zero_cost ... ok
[INFO] [stdout] test spinner::tests::test_spinner_iteration_elapsed ... ok
[INFO] [stdout] test startup::tests::test_attached_file_path_preserved ... ok
[INFO] [stdout] test startup::tests::test_attached_file_prd ... ok
[INFO] [stdout] test startup::tests::test_attached_file_progress_txt_not_special_cased ... ok
[INFO] [stdout] test startup::tests::test_attached_file_unknown ... ok
[INFO] [stdout] test startup::tests::test_clean_blank_lines_collapses_multiple ... ok
[INFO] [stdout] test startup::tests::test_clean_blank_lines_empty_input ... ok
[INFO] [stdout] test startup::tests::test_clean_blank_lines_only_blanks ... ok
[INFO] [stdout] test startup::tests::test_attached_file_design_md_not_special_cased ... ok
[INFO] [stdout] test sessions_display::tests::test_format_outcome_plain ... ok
[INFO] [stdout] test spinner::tests::test_spinner_new ... ok
[INFO] [stdout] test startup::tests::test_clean_blank_lines_preserves_single ... ok
[INFO] [stdout] test startup::tests::test_clean_blank_lines_preserves_content_lines ... ok
[INFO] [stdout] 
[Ktest startup::tests::test_format_duration_seconds ... ok
[INFO] [stdout] test startup::tests::test_format_token_count_millions ... ok
[INFO] [stdout] test startup::tests::test_format_token_count_small ... ok
[INFO] [stdout] test startup::tests::test_format_token_count_thousands ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_additional_prompt ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_command ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_completion_marker ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_multiple ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_none ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_prd ... ok
[INFO] [stdout] test startup::tests::test_has_custom_config_prompt ... ok
[INFO] [stdout] test startup::tests::test_iteration_header_creation ... ok
[INFO] [stdout] test startup::tests::test_iteration_header_large_numbers ... ok
[INFO] [stdout] test startup::tests::test_iteration_header_singular_story ... ok
[INFO] [stdout] test startup::tests::test_iteration_header_without_max ... ok
[INFO] [stdout] test startup::tests::test_iteration_header_zero_stories ... ok
[INFO] [stdout] test startup::tests::test_iteration_summary_creation ... ok
[INFO] [stdout] test startup::tests::test_iteration_summary_large_values ... ok
[INFO] [stdout] test startup::tests::test_iteration_summary_partial_tokens ... ok
[INFO] [stdout] test startup::tests::test_iteration_summary_with_none_values ... ok
[INFO] [stdout] test startup::tests::test_iteration_summary_zero_cost ... ok
[INFO] [stdout] test startup::tests::test_iterations_from_arg_flag ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_extracts_files ... ok
[INFO] [stdout] test spinner::tests::test_spinner_with_enabled_true ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_handles_at_symbol_in_text ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_no_files ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_preserves_prompt ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_relative_path ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_stripped_prompt_preserves_content ... ok
[INFO] [stdout] test startup::tests::test_prompt_display_stripped_prompt_removes_references ... ok
[INFO] [stdout] test startup::tests::test_run_summary_clone ... ok
[INFO] [stdout] test startup::tests::test_run_summary_creation ... ok
[INFO] [stdout] test startup::tests::test_run_summary_large_values ... ok
[INFO] [stdout] test startup::tests::test_run_summary_partial_completion ... ok
[INFO] [stdout] test startup::tests::test_run_summary_single_iteration ... ok
[INFO] [stdout] test startup::tests::test_run_summary_with_none_values ... ok
[INFO] [stdout] test startup::tests::test_run_summary_zero_cost ... ok
[INFO] [stdout] test startup::tests::test_startup_info_creation ... ok
[INFO] [stdout] test strategy::conversation_loop::tests::build_orchestration_config_sets_fields ... ok
[INFO] [stdout] test strategy::conversation_loop::tests::extract_comments_no_comments ... ok
[INFO] [stdout] test strategy::conversation_loop::tests::extract_comments_separates_comment_directives ... ok
[INFO] [stdout] test strategy::init::tests::test_agent_assets_count ... ok
[INFO] [stdout] test strategy::init::tests::test_bundled_agents_have_frontmatter ... ok
[INFO] [stdout] test strategy::init::tests::test_bundled_assets_not_empty ... ok
[INFO] [stdout] test strategy::init::tests::test_bundled_strategy_assets_are_valid_toml ... ok
[INFO] [stdout] test strategy::init::tests::test_bundled_strategy_assets_not_empty ... ok
[INFO] [stdout] test strategy::init::tests::test_bundled_strategy_toml_has_agents_table ... ok
[INFO] [stdout] test strategy::init::tests::test_format_overwritten_action ... ok
[INFO] [stdout] test strategy::init::tests::test_format_summary_all_created ... ok
[INFO] [stdout] test strategy::init::tests::test_format_summary_includes_strategy_actions ... ok
[INFO] [stdout] test strategy::init::tests::test_format_summary_strategy_skipped ... ok
[INFO] [stdout] test strategy::init::tests::test_format_summary_with_overwritten_strategy_toml ... ok
[INFO] [stdout] test strategy::init::tests::test_format_summary_with_skipped ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_all_existing ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_all_new ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_mixed ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_paths_include_filename ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_strategy_all_existing ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_strategy_all_new ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_strategy_paths_include_filename ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_strategy_toml_existing ... ok
[INFO] [stdout] test strategy::init::tests::test_plan_strategy_toml_new ... ok
[INFO] [stdout] test strategy::init::tests::test_strategy_assets_count ... ok
[INFO] [stdout] test strategy::prd_loop::tests::filter_empty_available_removes_all ... ok
[INFO] [stdout] test strategy::prd_loop::tests::filter_keeps_allowed_personas ... ok
[INFO] [stdout] test strategy::prd_loop::tests::filter_removes_unlisted_persona ... ok
[INFO] [stdout] test strategy::prd_loop::tests::filter_returns_none_when_all_unlisted ... ok
[INFO] [stdout] test strategy::prd_loop::tests::filter_works_for_handovers ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_additional_prompt_empty ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_additional_prompt_multiple ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_additional_prompt_single ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_invocation_config_fields ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_invocation_result_for_orchestrator ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_iteration_log_sets_strategy_and_persona ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_loop_config_command_uses_persona_agent ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_loop_config_sets_fields ... ok
[INFO] [stdout] test strategy::prd_loop::tests::test_build_loop_config_no_aggregates ... ok
[INFO] [stdout] test strategy::tests::test_find_strategy_by_name_empty_list ... ok
[INFO] [stdout] test strategy::tests::test_find_strategy_by_name_found ... ok
[INFO] [stdout] test strategy::tests::test_find_strategy_by_name_not_found ... ok
[INFO] [stdout] test strategy::tests::test_format_column_alignment ... ok
[INFO] [stdout] test strategy::tests::test_format_empty ... ok
[INFO] [stdout] test strategy::tests::test_format_multiple ... ok
[INFO] [stdout] test strategy::tests::test_format_single ... ok
[INFO] [stdout] test strategy::traits::tests::test_custom_between_iterations ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_key_hint_state_while_running ... ok
[INFO] [stdout] test strategy::traits::tests::test_run_strategy_delegates ... ok
[INFO] [stdout] test strategy::traits::tests::test_strategy_between_iterations_default ... ok
[INFO] [stdout] test strategy::traits::tests::test_strategy_key_action_propagated ... ok
[INFO] [stdout] test strategy::traits::tests::test_strategy_execute_returns_result ... ok
[INFO] [stdout] test stream_processor::block_builders::tests::test_build_bash_invocation_block ... ok
[INFO] [stdout] test stream_processor::block_builders::tests::test_build_default_invocation_block ... ok
[INFO] [stdout] test stream_processor::block_builders::tests::test_build_grep_invocation_block ... ok
[INFO] [stdout] test stream_processor::block_builders::tests::test_build_todowrite_invocation_block ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_grep_builder_all_options ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_grep_builder_minimal ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_code_chunk_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_output_block_separator_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_diff_chunk_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_output_block_text_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_grep_builder_serialization_roundtrip ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_invocation_grep_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_invocation_bash_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_invocation_todowrite_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_result_bash_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_result_edit_before_after_serialization ... ok
[INFO] [stdout] test stream_processor::output_block::tests::test_tool_result_write_new_file_serialization ... ok
[INFO] [stdout] test spinner::tests::test_spinner_total_session_elapsed ... ok
[INFO] [stdout] test spinner::tests::test_spinner_drop_stops ... ok
[INFO] [stdout] test spinner::tests::test_spinner_session_info_partial ... ok
[INFO] [stdout] test startup::tests::test_format_duration_hours_as_minutes ... ok
[INFO] [stdout] test startup::tests::test_format_duration_milliseconds ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_without_highlighting_no_ansi ... ok
[INFO] [stdout] 
[Ktest spinner::tests::test_spinner_start_with_context ... ok
[INFO] [stdout] test startup::tests::test_format_duration_minutes ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_write_new_file_plain ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_command_plain_text_format ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_command_shown_in_full_without_truncation ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_multiline_command_in_code_block ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_single_line_inline_format ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_success_with_output ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_empty_output ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_truncates_long_output ... ok
[INFO] [stdout] test stream_processor::tests::core::test_code_block_detection ... ok
[INFO] [stdout] test stream_processor::tests::core::test_diff_block_detection ... ok
[INFO] [stdout] test highlight::tests::test_highlight_python_code ... ok
[INFO] [stdout] test stream_processor::tests::core::test_empty_finish ... ok
[INFO] [stdout] test stream_processor::tests::core::test_process_empty_line ... ok
[INFO] [stdout] test stream_processor::tests::core::test_finish_extracts_metadata ... ok
[INFO] [stdout] test stream_processor::tests::core::test_multiple_messages ... ok
[INFO] [stdout] test stream_processor::tests::core::test_finish_returns_accumulated_text ... ok
[INFO] [stdout] test stream_processor::tests::core::test_stream_processor_new ... ok
[INFO] [stdout] test highlight::tests::test_highlight_javascript_code ... ok
[INFO] [stdout] test stream_processor::tests::core::test_process_assistant_text_event ... ok
[INFO] [stdout] test stream_processor::tests::core::test_process_malformed_json ... ok
[INFO] [stdout] test stream_processor::tests::core::test_process_result_event ... ok
[INFO] [stdout] test stream_processor::tests::core::test_process_system_event ... ok
[INFO] [stdout] test stream_processor::tests::core::test_tool_interaction_correlation ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_error_not_treated_as_diff ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_with_diff_shows_file_header ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_truncates_large_diff ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_with_diff_highlighting_enabled ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_pending_invocation_tracking ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_with_diff_shows_diff_fence ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_with_unified_diff_format ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_non_edit_tool_result_not_treated_as_diff ... ok
[INFO] [stdout] test stream_processor::tests::core::test_stream_processor_with_highlighting ... ok
[INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_without_diff_content ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_non_verbose_uses_compact_format ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_invocation_default_path ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_plain_text_format ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_error ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_empty ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_invocation_shows_pattern ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_groups_by_directory ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_shows_match_count ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_truncates_large_output ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_single_file_grammar ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_with_nested_directories ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_invocation_shows_path ... ok
[INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_with_terminal_highlighting ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_non_verbose_uses_compact_format ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_content_mode_highlights_matches ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_invocation_shows_pattern ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_invocation_shows_mode ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_empty ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_shows_match_count ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_with_terminal_highlighting ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_truncates_large_output ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_error ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_bash ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_file_path_shown_in_full_for_edit ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_glob ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_grep_is_path ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_read ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_task_is_not_path ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_unknown_tool ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_web_fetch_is_path ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_write_is_path ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_edit_is_path ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_glob_pattern_shown_in_full ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_single_match_grammar ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_plain_text_format ... ok
[INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_invocation_shows_filters ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_file_path_shown_in_full_for_read ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_file_path_shown_in_full_for_write ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_truncate_string_long ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_truncate_string_newlines ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_truncate_string_short ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_url_shown_in_full ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_multiple_concurrent_tools ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_grep_pattern_shown_in_full ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_all ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_empty_entries ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_tool_invocation_not_displayed_when_disabled ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_multiple ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_mixed_known_unknown ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_none ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_tool_invocation_displayed ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_tool_error_displayed_distinctly ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_with_spaces ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_new ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_tool_text_mixed_content ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_unknown_tool ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_single ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_plain_text_tool_display ... ok
[INFO] [stdout] test stream_processor::tests::path_display::test_task_prompt_is_truncated ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_star ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_multiple_responses_with_separators ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_stream_processor_with_verbose_tools ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_tool_result_displayed ... ok
[INFO] [stdout] test stream_processor::tests::tool_display::test_with_options_constructor ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_for_first_response ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_if_no_output_yet ... ok
[INFO] [stdout] test stream_processor::tests::verbose_config::test_stream_processor_default_no_verbose_tools ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_response_count_increments_correctly ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_visual_separation_between_responses ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_separator_after_tool_use_cycle ... ok
[INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_for_same_message_id ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_across_multiple_events ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_list_indentation_preserved ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_trailing_newline_in_text ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_before_after_plain ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_before_after_plain_empty_new ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_before_after_plain_empty_old ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_blank_line_before_code_block ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_blank_lines_preserved_between_paragraphs ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_blank_line_after_code_block ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_indentation_preserved_in_code ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_plain_block_no_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_plain_block_truncation ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_leading_spaces_preserved ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_generate_unified_diff_addition ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_generate_unified_diff_deletion ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_generate_unified_diff ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_diff_output_truncation ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_raw_text_matches_original ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_code_block_content_preserved ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_before_after_display_prefers_old_new_strings ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_generate_unified_diff ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_generate_unified_diff_new_cell ... ok
[INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_multiple_blank_lines_preserved ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_no_changes_message_plain ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_plain ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_plain_empty_after ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_plain_empty_before ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_plain_has_separator ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_no_changes_message_highlighted ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_insert_mode ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_diff_output_no_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_no_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_plain_has_indicator ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_plain_has_line_numbers ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_plain_no_diff_markers ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_plain_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_code_cell ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_delete_mode ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_plain_block_has_line_numbers ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_plain_block_no_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_plain_block_truncation ... ok
[INFO] [stdout] test stream_processor::types::grep_params_tests::test_grep_params_empty_input ... ok
[INFO] [stdout] test stream_processor::types::grep_params_tests::test_grep_params_full ... ok
[INFO] [stdout] test stream_processor::types::grep_params_tests::test_grep_params_minimal ... ok
[INFO] [stdout] test tests::test_resolve_ask_prompt_empty_string_error ... ok
[INFO] [stdout] test tests::test_resolve_ask_prompt_from_file ... FAILED
[INFO] [stdout] test tests::test_resolve_ask_prompt_inline ... ok
[INFO] [stdout] test tests::test_resolve_ask_prompt_inline_with_whitespace ... ok
[INFO] [stdout] test tests::test_resolve_ask_prompt_whitespace_only_error ... ok
[INFO] [stdout] test warn::tests::test_warn_if_err_with_err_does_not_panic ... ok
[INFO] [stdout] test warn::tests::test_warn_if_err_with_ok_does_not_panic ... ok
[INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_truncation ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_highlighted_no_diff_markers ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_no_changes_message_overwrite ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_no_changes_message_new_file ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_highlighted_truncation ... ok
[INFO] [stdout] test render::tool_renderers::tests::test_render_bash_invocation_single_line_terminal ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_error_shows_exit_code ... ok
[INFO] [stdout] test replay_renderer::tests::test_render_with_highlighting_has_ansi ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_with_terminal_dimmed_styling ... ok
[INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_before_after_highlighted_has_ansi_codes ... ok
[INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_command_with_terminal_highlighting ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_highlighted_has_separator ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_before_after_highlighted_has_ansi_codes ... ok
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_highlighted_has_indicator ... ok
[INFO] [stderr] error: test failed, to rerun pass `-p ralph --bin ralph`
[INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_new_file_highlighted_has_green_background ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- prompt_source::tests::test_classify_prompt_source_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'prompt_source::tests::test_classify_prompt_source_file' (386) panicked at crates/ralph/src/prompt_source.rs:104:9:
[INFO] [stdout] assertion failed: matches!(source, PromptSource::File(_))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64cced642f5a - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64cced65b63a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    2:     0x64cced6485d2 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]    3:     0x64cced61ed4f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64cced639e19 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]    5:     0x64ccecf6bc2c - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x64cced639fd2 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64cced61ee3a - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64cced613af9 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64cced61fb9d - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]   10:     0x64cced65be7c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64cced65be42 - core[d17f6591d688f3bd]::panicking::panic
[INFO] [stdout]   12:     0x64ccecf4d6ce - ralph[55b694412b66174f]::prompt_source::tests::test_classify_prompt_source_file
[INFO] [stdout]   13:     0x64ccecf46d83 - ralph[55b694412b66174f]::prompt_source::tests::test_classify_prompt_source_file::{closure#0}
[INFO] [stdout]   14:     0x64ccecedd446 - <ralph[55b694412b66174f]::prompt_source::tests::test_classify_prompt_source_file::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x64ccecf5ef0b - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]   16:     0x64ccecf6c6fb - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]   17:     0x64ccecf65e14 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x64ccecf6f302 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x64cced64201f - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7b0d004e8aa4 - <unknown>
[INFO] [stdout]   21:     0x7b0d00575a64 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- prompt_source::tests::test_read_from_source_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'prompt_source::tests::test_read_from_source_file' (390) panicked at crates/ralph/src/prompt_source.rs:134:9:
[INFO] [stdout] assertion failed: result.is_ok()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64cced642f5a - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64cced65b63a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    2:     0x64cced6485d2 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]    3:     0x64cced61ed4f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64cced639e19 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]    5:     0x64ccecf6bc2c - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x64cced639fd2 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64cced61ee3a - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64cced613af9 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64cced61fb9d - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]   10:     0x64cced65be7c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64cced65be42 - core[d17f6591d688f3bd]::panicking::panic
[INFO] [stdout]   12:     0x64ccecf4d1f7 - ralph[55b694412b66174f]::prompt_source::tests::test_read_from_source_file
[INFO] [stdout]   13:     0x64ccecf46d23 - ralph[55b694412b66174f]::prompt_source::tests::test_read_from_source_file::{closure#0}
[INFO] [stdout]   14:     0x64ccecedd3c6 - <ralph[55b694412b66174f]::prompt_source::tests::test_read_from_source_file::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x64ccecf5ef0b - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]   16:     0x64ccecf6c6fb - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]   17:     0x64ccecf65e14 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x64ccecf6f302 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x64cced64201f - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7b0d004e8aa4 - <unknown>
[INFO] [stdout]   21:     0x7b0d00575a64 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_resolve_ask_prompt_from_file stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::test_resolve_ask_prompt_from_file' (881) panicked at crates/ralph/src/main_tests.rs:47:5:
[INFO] [stdout] assertion failed: content.contains("[package]")
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64cced642f5a - <<std[fce30c26ee6459b]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[d17f6591d688f3bd]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64cced65b63a - core[d17f6591d688f3bd]::fmt::write
[INFO] [stdout]    2:     0x64cced6485d2 - <alloc[dad09f3a48280dba]::vec::Vec<u8> as std[fce30c26ee6459b]::io::Write>::write_fmt
[INFO] [stdout]    3:     0x64cced61ed4f - std[fce30c26ee6459b]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64cced639e19 - std[fce30c26ee6459b]::panicking::default_hook
[INFO] [stdout]    5:     0x64ccecf6bc2c - test[9653f4f1d2ca1489]::test_main_inner::<test[9653f4f1d2ca1489]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x64cced639fd2 - std[fce30c26ee6459b]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64cced61ee3a - std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64cced613af9 - std[fce30c26ee6459b]::sys::backtrace::__rust_end_short_backtrace::<std[fce30c26ee6459b]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64cced61fb9d - __rustc[de152adb51f02556]::rust_begin_unwind
[INFO] [stdout]   10:     0x64cced65be7c - core[d17f6591d688f3bd]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64cced65be42 - core[d17f6591d688f3bd]::panicking::panic
[INFO] [stdout]   12:     0x64ccecd4b681 - ralph[55b694412b66174f]::tests::test_resolve_ask_prompt_from_file
[INFO] [stdout]   13:     0x64ccecd48fe3 - ralph[55b694412b66174f]::tests::test_resolve_ask_prompt_from_file::{closure#0}
[INFO] [stdout]   14:     0x64ccecedcb86 - <ralph[55b694412b66174f]::tests::test_resolve_ask_prompt_from_file::{closure#0} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   15:     0x64ccecf5ef0b - test[9653f4f1d2ca1489]::__rust_begin_short_backtrace::<core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>, fn() -> core[d17f6591d688f3bd]::result::Result<(), alloc[dad09f3a48280dba]::string::String>>
[INFO] [stdout]   16:     0x64ccecf6c6fb - test[9653f4f1d2ca1489]::run_test::{closure#0}
[INFO] [stdout]   17:     0x64ccecf65e14 - std[fce30c26ee6459b]::sys::backtrace::__rust_begin_short_backtrace::<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>
[INFO] [stdout]   18:     0x64ccecf6f302 - <std[fce30c26ee6459b]::thread::lifecycle::spawn_unchecked<test[9653f4f1d2ca1489]::run_test::{closure#1}, ()>::{closure#1} as core[d17f6591d688f3bd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   19:     0x64cced64201f - <std[fce30c26ee6459b]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   20:     0x7b0d004e8aa4 - <unknown>
[INFO] [stdout]   21:     0x7b0d00575a64 - clone
[INFO] [stdout]   22:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     prompt_source::tests::test_classify_prompt_source_file
[INFO] [stdout]     prompt_source::tests::test_read_from_source_file
[INFO] [stdout]     tests::test_resolve_ask_prompt_from_file
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 850 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.63s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7ab69c38ec79c53dc21e4bab2340f083e8900384f6907ece32ead7ec8fdbc19c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ab69c38ec79c53dc21e4bab2340f083e8900384f6907ece32ead7ec8fdbc19c", kill_on_drop: false }`
[INFO] [stdout] 7ab69c38ec79c53dc21e4bab2340f083e8900384f6907ece32ead7ec8fdbc19c
