[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#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcloudbridgeuy%2Fralph" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-6-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/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-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/cloudbridgeuy/ralph on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 035924d80e5fb946165101fddad2aa3f9e35ce0bd979a53e52be1d4185b62795 [INFO] running `Command { std: "docker" "start" "-a" "035924d80e5fb946165101fddad2aa3f9e35ce0bd979a53e52be1d4185b62795", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "035924d80e5fb946165101fddad2aa3f9e35ce0bd979a53e52be1d4185b62795", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "035924d80e5fb946165101fddad2aa3f9e35ce0bd979a53e52be1d4185b62795", kill_on_drop: false }` [INFO] [stdout] 035924d80e5fb946165101fddad2aa3f9e35ce0bd979a53e52be1d4185b62795 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 11018d3722dcb3f4412b1ebd5962a5d536e58ad0e203b4f020b7ebccd8418dba [INFO] running `Command { std: "docker" "start" "-a" "11018d3722dcb3f4412b1ebd5962a5d536e58ad0e203b4f020b7ebccd8418dba", kill_on_drop: false }` [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling libc v0.2.179 [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling zmij v1.0.12 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling syn v2.0.113 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling object v0.37.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling owo-colors v4.2.3 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling clap_lex v0.7.6 [INFO] [stderr] Compiling eyre v0.6.12 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling color-spantrace v0.3.0 [INFO] [stderr] Compiling time-core v0.1.6 [INFO] [stderr] Compiling gimli v0.32.3 [INFO] [stderr] Compiling strict v0.2.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling time v0.3.44 [INFO] [stderr] Compiling clap_builder v4.5.54 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.0.4 [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 crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling quick-xml v0.38.4 [INFO] [stderr] Compiling indexmap v2.12.1 [INFO] [stderr] Compiling indenter v0.3.4 [INFO] [stderr] Compiling linked-hash-map v0.5.6 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling base64 v0.22.1 [INFO] [stderr] Compiling rustc-demangle v0.1.26 [INFO] [stderr] Compiling option-ext v0.2.0 [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 rand v0.10.0 [INFO] [stderr] Compiling flate2 v1.1.5 [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 unicode-width v0.1.14 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling tempfile v3.24.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.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 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 addr2line v0.25.1 [INFO] [stderr] Compiling toml v1.0.3+spec-1.1.0 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling backtrace v0.3.76 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling coolor v1.1.0 [INFO] [stderr] Compiling color-eyre v0.6.5 [INFO] [stderr] Compiling lazy-regex-proc_macros v3.5.1 [INFO] [stderr] Compiling fancy-regex v0.16.2 [INFO] [stderr] Compiling crokey-proc_macros v1.3.0 [INFO] [stderr] Compiling clap v4.5.54 [INFO] [stderr] Compiling lazy-regex v3.5.1 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling bincode v1.3.3 [INFO] [stderr] Compiling plist v1.8.0 [INFO] [stderr] Compiling crokey v1.3.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 1m 02s [INFO] running `Command { std: "docker" "inspect" "11018d3722dcb3f4412b1ebd5962a5d536e58ad0e203b4f020b7ebccd8418dba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11018d3722dcb3f4412b1ebd5962a5d536e58ad0e203b4f020b7ebccd8418dba", kill_on_drop: false }` [INFO] [stdout] 11018d3722dcb3f4412b1ebd5962a5d536e58ad0e203b4f020b7ebccd8418dba [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a62c17fd54ae485ea21603e1cea6fcb7d2b3f71074bb949abbf35a5f71deb49f [INFO] running `Command { std: "docker" "start" "-a" "a62c17fd54ae485ea21603e1cea6fcb7d2b3f71074bb949abbf35a5f71deb49f", 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.77s [INFO] running `Command { std: "docker" "inspect" "a62c17fd54ae485ea21603e1cea6fcb7d2b3f71074bb949abbf35a5f71deb49f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a62c17fd54ae485ea21603e1cea6fcb7d2b3f71074bb949abbf35a5f71deb49f", kill_on_drop: false }` [INFO] [stdout] a62c17fd54ae485ea21603e1cea6fcb7d2b3f71074bb949abbf35a5f71deb49f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 53dc3d4587f2079ed45b6c817954f126670f51e4f1c5b49d2e383cd842e06b93 [INFO] running `Command { std: "docker" "start" "-a" "53dc3d4587f2079ed45b6c817954f126670f51e4f1c5b49d2e383cd842e06b93", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized] target(s) in 0.31s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ralph-04cfc187dee9274d) [INFO] [stdout] [INFO] [stdout] running 853 tests [INFO] [stdout] test ask::tests::test_resolve_permission_mode_cli_explicit ... ok [INFO] [stdout] test ask::tests::test_resolve_permission_mode_cli_explicit_default ... ok [INFO] [stdout] test cli::tests::ask::test_ask_clone_with_all_flags ... ok [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 cli::tests::ask::test_ask_history_with_session_and_continue ... ok [INFO] [stdout] test cli::tests::ask::test_ask_session_after_prompt ... 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_history_with_all_flags ... ok [INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_not_specified ... ok [INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_plan ... ok [INFO] [stdout] test cli::tests::ask::test_ask_history_with_continue ... ok [INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_default_mode ... ok [INFO] [stdout] test cli::tests::ask::test_ask_theme_with_file_path ... ok [INFO] [stdout] test cli::tests::ask::test_ask_help_available ... ok [INFO] [stdout] test cli::tests::ask::test_ask_session_before_prompt ... ok [INFO] [stdout] test cli::tests::ask::test_ask_permission_mode_with_other_flags ... 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_continue_and_prompt ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_all_new_flags ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_all_flags_combined ... ok [INFO] [stdout] test cli::tests::ask::test_ask_timeout_default ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_continue_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_history_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_prompt ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_session ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_clone_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_continue_and_session ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_multiword_prompt ... 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_timeout ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_no_prompt_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_continue_session_short_flags ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_clone_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_verbose_tools_specific ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_continue_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_verbose_tools_all ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_continue_short_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_prompt ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_history_flag ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_theme ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_theme_and_continue ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_session ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_theme_and_no_background ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_theme_flags ... ok [INFO] [stdout] test cli::tests::ask::test_ask_with_stdin_indicator ... ok [INFO] [stdout] test cli::tests::ask::test_cli_parses_ask_command ... ok [INFO] [stdout] test cli::tests::persona::test_into_action_list ... ok [INFO] [stdout] test cli::tests::persona::test_into_action_invoke ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_resume ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_max_iterations ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_without_subcommand_fails ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_verbose_tools ... ok [INFO] [stdout] test cli::tests::test_cli_parses_iterations_command ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_execute_requires_name ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_execute_with_all_flags ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_list_parses ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_sync_parses ... ok [INFO] [stdout] test cli::tests::persona::test_into_action_no_name_no_list ... ok [INFO] [stdout] test cli::tests::persona::test_persona_list_conflicts_with_name ... ok [INFO] [stdout] test cli::tests::persona::test_persona_list_flag_parses ... ok [INFO] [stdout] test cli::tests::persona::test_persona_with_name_parses ... ok [INFO] [stdout] test cli::tests::strategy::test_strategy_execute_parses_name ... ok [INFO] [stdout] test cli::tests::test_cli_parses_sessions_command ... ok [INFO] [stdout] test cli::tests::test_cli_parses_replay_command ... ok [INFO] [stdout] test cli::tests::test_iterations_with_all_filters ... ok [INFO] [stdout] test cli::tests::ask::test_ask_without_no_prompt_flag ... ok [INFO] [stdout] test cli::tests::test_iterations_with_outcome_filter ... ok [INFO] [stdout] test cli::tests::test_iterations_without_args ... ok [INFO] [stdout] test cli::tests::test_replay_requires_slug ... ok [INFO] [stdout] test cli::tests::test_iterations_with_session_filter ... ok [INFO] [stdout] test cli::tests::test_replay_with_delay ... ok [INFO] [stdout] test cli::tests::test_replay_with_delay_fractional ... ok [INFO] [stdout] test cli::tests::test_replay_with_iteration_long_flag ... ok [INFO] [stdout] test cli::tests::test_replay_with_delay_integer ... ok [INFO] [stdout] test cli::tests::test_replay_with_iteration ... ok [INFO] [stdout] test cli::tests::test_sessions_without_args ... ok [INFO] [stdout] test config::tests::test_config_path_contains_ralph ... ok [INFO] [stdout] test config::tests::test_default_config ... ok [INFO] [stdout] test cli::tests::test_sessions_with_both_filters ... ok [INFO] [stdout] test cli::tests::test_replay_with_slug ... ok [INFO] [stdout] test cli::tests::test_sessions_with_interrupted_outcome ... ok [INFO] [stdout] test cli::tests::test_replay_without_delay ... 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_default_ask_section ... ok [INFO] [stdout] test config::tests::test_load_empty_file ... 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 diff_highlight::tests::test_basic_colors_deletion ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_addition ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_empty_diff ... ok [INFO] [stdout] test config::tests::test_load_theme_name ... ok [INFO] [stdout] test config::tests::test_load_nonexistent_returns_default ... ok [INFO] [stdout] test config::tests::test_unknown_fields_ignored ... ok [INFO] [stdout] test config::tests::test_parse_error ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_diff_header ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_always_produces_ansi ... ok [INFO] [stdout] test config::tests::test_load_theme_file_path ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_context_line ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_file_headers ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_full_diff ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_multiple_hunks ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_unicode ... 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_hunk_header ... ok [INFO] [stdout] test edit::tests::test_iterations_to_messages_handles_missing_response ... ok [INFO] [stdout] test config::tests::test_save_and_load ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_index_line ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_special_characters ... 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 config::tests::test_load_no_background ... ok [INFO] [stdout] test diff_highlight::tests::test_basic_colors_preserves_content ... ok [INFO] [stdout] test config::tests::test_load_ask_permission_mode ... ok [INFO] [stdout] test config::tests::test_load_full_config ... ok [INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_default ... ok [INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_highlight_always ... ok [INFO] [stdout] test diff_highlight::tests::test_diff_highlighter_new ... ok [INFO] [stdout] test cli::tests::test_iterations_with_project_filter ... 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_assistant_only ... ok [INFO] [stdout] test edit::tests::test_pair_messages_consecutive_users ... ok [INFO] [stdout] test edit::tests::test_pair_messages_empty ... ok [INFO] [stdout] test edit::tests::test_pair_messages_multiple_pairs ... ok [INFO] [stdout] test edit::tests::test_pair_messages_user_assistant ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_content_trimming ... ok [INFO] [stdout] test edit::tests::test_pair_messages_user_only ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_invalid_role ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_roundtrip ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_delete_and_create ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_delete ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_no_changes ... ok [INFO] [stdout] test formatting::tests::test_format_duration_milliseconds ... ok [INFO] [stdout] test edit::tests::test_toml_roundtrip_trailing_double_quote ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_invalid_syntax ... ok [INFO] [stdout] test edit::tests::test_toml_roundtrip_five_consecutive_quotes ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_missing_content ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_mixed ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_missing_role ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_empty_messages ... ok [INFO] [stdout] test edit::tests::test_toml_roundtrip_four_consecutive_quotes ... ok [INFO] [stdout] test formatting::tests::test_format_duration_seconds ... ok [INFO] [stdout] test formatting::tests::test_format_token_count_under_thousand ... ok [INFO] [stdout] test formatting::tests::test_format_token_count_millions ... ok [INFO] [stdout] test edit::tests::test_parse_edit_toml_valid ... ok [INFO] [stdout] test formatting::tests::test_format_token_count_thousands ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_create ... ok [INFO] [stdout] test git::tests::test_git_diff_structure ... ok [INFO] [stdout] test git::tests::test_write_diff_file_empty_content ... ok [INFO] [stdout] test edit::tests::test_toml_roundtrip_trailing_single_quote ... ok [INFO] [stdout] test git::tests::test_write_diff_file_overwrites_existing ... ok [INFO] [stdout] test edit::tests::test_plan_iteration_updates_rewrite ... ok [INFO] [stdout] test formatting::tests::test_format_duration_minutes ... ok [INFO] [stdout] test git::tests::test_capture_and_write_diff_in_non_git_dir ... ok [INFO] [stdout] test git::tests::test_is_git_repository_in_non_git_dir ... ok [INFO] [stdout] test git::tests::test_capture_git_diff_in_non_git_dir ... ok [INFO] [stdout] test git::tests::test_write_diff_file_creates_parent_dirs ... ok [INFO] [stdout] test diff_highlight::tests::test_is_delta_available_does_not_crash ... 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_highlighter_with_config_invalid_theme ... ok [INFO] [stdout] test highlight::tests::test_highlight_empty_code ... ok [INFO] [stdout] test highlight::tests::test_highlighter_with_config_valid_theme ... ok [INFO] [stdout] test highlight::tests::test_highlight_unknown_language ... 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_theme_config_is_theme_file_with_name ... 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_tmtheme_extension ... 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_highlighter_default ... ok [INFO] [stdout] test highlight::tests::test_theme_config_with_theme ... ok [INFO] [stdout] test highlight::tests::test_theme_config_with_no_background ... 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_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 highlight::tests::test_is_language_supported_common_languages ... ok [INFO] [stdout] test iteration::tests::chunk_tests::test_chunk_diff ... 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_prompt_response ... 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_deserialization ... ok [INFO] [stdout] test iteration::tests::log_tests::test_extract_response_text_multiple_text_blocks ... 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_with_code_chunk ... ok [INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_empty_chunks ... ok [INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_serialization ... ok [INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_with_metadata ... ok [INFO] [stdout] test iteration::tests::log_tests::test_iteration_log_with_prompt_and_response ... ok [INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_deserialization ... ok [INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_is_empty ... 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_new ... ok [INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_serialization ... ok [INFO] [stdout] test iteration::tests::metadata_tests::test_log_metadata_from_extracted ... 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_equality ... 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_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_chunk_diff ... 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::tool_call_tests::test_iteration_log_deserialization_with_tool_calls ... ok [INFO] [stdout] test iteration::tests::parsed_chunk_tests::test_iteration_log_with_typed_chunks_from_parsed ... ok [INFO] [stdout] test iteration::tests::tool_call_tests::test_iteration_log_with_tool_calls ... ok [INFO] [stdout] test highlight::tests::test_supported_languages_includes_common ... 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_deserialization ... 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_from_interactions ... ok [INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_no_truncation_for_small_result ... 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_truncated ... ok [INFO] [stdout] test iteration::tests::tool_call_tests::test_log_tool_call_truncation ... ok [INFO] [stdout] test iteration::tests::tool_call_tests::test_truncate_result_preserves_utf8 ... 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::tool_call_tests::test_log_tool_call_serialization_with_error ... ok [INFO] [stdout] test iteration::tests::tool_call_tests::test_write_iteration_log_with_tool_calls ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_empty ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_extract_conversation_messages_handles_missing_response ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_count_iterations_with_iterations ... 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_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_count_iterations_ignores_other_files ... 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_with_metadata ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_write_multiple_iteration_logs ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_load_session_iterations_parse_error ... 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_invalid_outcome_filter ... ok [INFO] [stdout] test iteration::tests::writer_tests::test_write_iteration_log ... ok [INFO] [stdout] test iterations::tests::test_format_duration_ms ... 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_outcome_filter_case_insensitive ... ok [INFO] [stdout] test iterations::tests::test_format_duration_seconds ... ok [INFO] [stdout] test iterations::tests::test_load_iteration_log ... ok [INFO] [stdout] test iterations::tests::test_valid_outcome_filter_completed ... ok [INFO] [stdout] test keyboard::tests::test_classify_countdown_key_n_with_modifier_ignored ... ok [INFO] [stdout] test iterations::tests::test_valid_outcome_filter_failed ... 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_ctrl_c_interrupt ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_c_without_modifier ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_pause_lowercase ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_hard_stop ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_s_with_modifier_ignored ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_soft_stop ... ok [INFO] [stdout] test keyboard::tests::test_countdown_key_action_enum_variants ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_pause_uppercase ... ok [INFO] [stdout] test keyboard::tests::test_raw_mode_guard_default ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_release_ignored ... ok [INFO] [stdout] test keyboard::tests::test_classify_run_key_unknown ... 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 keyboard::tests::test_run_key_action_enum_variants ... ok [INFO] [stdout] test markdown::tests::test_render_italic_text ... ok [INFO] [stdout] test markdown::tests::test_render_nested_formatting ... ok [INFO] [stdout] test markdown::tests::test_render_multiline ... ok [INFO] [stdout] test markdown::tests::test_render_plain_text ... ok [INFO] [stdout] test markdown::tests::test_render_numbered_list ... 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 keyboard::tests::test_raw_mode_guard_tracks_enabled_state ... 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 markdown::tests::test_renderer_new ... ok [INFO] [stdout] test orchestrator::conversation::tests::categorize_handovers_returns_done ... 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::display::tests::format_directive_banner_contains_payload ... 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_has_separators ... ok [INFO] [stdout] test orchestrator::display::tests::format_orchestration_summary_shows_budget ... ok [INFO] [stdout] test orchestrator::display::tests::format_directive_banner_separator_width_matches_minimum ... ok [INFO] [stdout] test orchestrator::display::tests::format_orchestration_summary_full_budget ... ok [INFO] [stdout] test orchestrator::display::tests::format_persona_banner_contains_ansi_codes ... 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_contains_glyph ... ok [INFO] [stdout] test orchestrator::display::tests::format_routing_status_no_payload ... ok [INFO] [stdout] test orchestrator::tests::budget_clone_shares_state ... ok [INFO] [stdout] test orchestrator::tests::budget_new_sets_remaining_and_limit ... ok [INFO] [stdout] test orchestrator::tests::budget_try_consume_returns_false_when_exhausted ... ok [INFO] [stdout] test orchestrator::tests::budget_try_consume_decrements ... ok [INFO] [stdout] test orchestrator::display::tests::format_persona_banner_contains_box_drawing ... ok [INFO] [stdout] test orchestrator::tests::budget_zero_limit ... ok [INFO] [stdout] test orchestrator::tests::scan_no_response_text_returns_none ... ok [INFO] [stdout] test highlight::tests::test_is_language_supported_javascript ... 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 persona::tests::test_discover_strategy_personas ... ok [INFO] [stdout] test persona::tests::test_discover_strategy_personas_missing_file ... ok [INFO] [stdout] test orchestrator::tests::scan_empty_response_returns_none ... ok [INFO] [stdout] test orchestrator::tests::scan_orphan_closing_tag_no_matching_persona_returns_none ... ok [INFO] [stdout] test persona::tests::test_format_empty ... ok [INFO] [stdout] test orchestrator::tests::scan_recovers_orphan_closing_tag_with_matching_persona ... ok [INFO] [stdout] test persona::tests::test_format_multiple ... ok [INFO] [stdout] test persona::tests::test_discover_with_strategy_none_uses_directories ... ok [INFO] [stdout] test persona::tests::test_format_source_indicator ... 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_resolve_from_strategy_not_in_table ... ok [INFO] [stdout] test persona::tests::test_verify_with_strategy_none_falls_through ... ok [INFO] [stdout] test persona::tests::test_format_single ... ok [INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_inline ... ok [INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_stdin ... ok [INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_none ... 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 render::text::tests::test_enhance_tables_no_separator ... ok [INFO] [stdout] test highlight::tests::test_is_language_supported_python ... ok [INFO] [stdout] test render::text::tests::test_enhance_tables_preserves_surrounding_text ... ok [INFO] [stdout] test prompt_source::tests::test_read_from_source_file ... FAILED [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 persona::tests::test_discover_strategy_uses_key_as_name ... ok [INFO] [stdout] test prompt_source::tests::test_classify_prompt_source_file ... FAILED [INFO] [stdout] test render::text::tests::test_enhance_tables_no_table ... ok [INFO] [stdout] test render::text::tests::test_enhance_tables_trailing_newline_preserved ... ok [INFO] [stdout] test highlight::tests::test_is_language_supported_rust ... ok [INFO] [stdout] test orchestrator::tests::scan_well_formed_directive_skips_recovery ... ok [INFO] [stdout] test highlight::tests::test_is_language_supported_unknown ... ok [INFO] [stdout] test render::text::tests::test_render_code_no_language ... ok [INFO] [stdout] test render::text::tests::test_render_directive_returns_empty ... ok [INFO] [stdout] test render::text::tests::test_render_diff_plain ... 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 render::text::tests::test_render_directive_via_render_text_block_returns_empty ... ok [INFO] [stdout] test render::text::tests::test_render_directive_plain_returns_empty ... 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_bash_invocation_single_line_plain ... ok [INFO] [stdout] test render::text::tests::test_render_prose_terminal_with_skin ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_bash_invocation_multiline ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_edit_before_after_plain ... ok [INFO] [stdout] test highlight::tests::test_highlighter_with_config_no_background ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_glob_result_empty ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_glob_result_grouped ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_read_result_empty ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_grep_invocation_full ... 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_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_extract_line_number_with_tab ... ok [INFO] [stdout] test render::utils::tests::test_group_files_by_directory ... ok [INFO] [stdout] test render::utils::tests::test_group_files_empty_input ... 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_extract_language_shell ... 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_normalize_cat_n_format_alignment_9_to_10 ... 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_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_double_digit ... 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_empty_string ... 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_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_triple_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_find_iteration_logs_sorts_by_sequence ... 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_replay_options_with_delay_none ... 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 render::utils::tests::test_highlight_grep_match_no_line_number ... 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_countdown_result_enum ... ok [INFO] [stdout] test replay_countdown::tests::test_wait_with_countdown_zero_delay ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_grep_invocation_minimal ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_todowrite_invocation ... 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_error ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_todowrite_result_success ... ok [INFO] [stdout] test replay_renderer::tests::test_render_bash_invocation_plain ... ok [INFO] [stdout] test highlight::tests::test_highlight_code_convenience_function ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_read_result_normalizes_cat_n ... ok [INFO] [stdout] test replay_renderer::tests::test_render_bash_invocation_multiline_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_bash_result_error_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_bash_result_success_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_code_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_default_invocation_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_diff_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_glob_result_empty ... ok [INFO] [stdout] test highlight::tests::test_highlight_preserves_content ... ok [INFO] [stdout] test highlight::tests::test_highlight_special_characters ... ok [INFO] [stdout] test replay_renderer::tests::test_render_glob_result_grouped_by_directory ... ok [INFO] [stdout] test replay_renderer::tests::test_render_read_result_empty ... ok [INFO] [stdout] test replay_renderer::tests::test_render_read_result_normalizes_cat_n ... ok [INFO] [stdout] test session::tests::test_initialize_session_directory_creates_structure ... ok [INFO] [stdout] test replay_renderer::tests::test_render_prose_plain ... ok [INFO] [stdout] test session::tests::test_load_sessions_index_creates_empty_when_missing ... ok [INFO] [stdout] test session::tests::test_session_dir_path_structure ... 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 session::tests::test_save_and_load_sessions_index ... ok [INFO] [stdout] test sessions_display::tests::test_aggregate_iteration_stats_partial_data ... ok [INFO] [stdout] test sessions_display::tests::test_aggregate_iteration_stats_empty ... 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_cost ... 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_duration_seconds ... ok [INFO] [stdout] test sessions_display::tests::test_format_outcome_terminal_contains_color ... ok [INFO] [stdout] test render::text::tests::test_render_code_terminal ... ok [INFO] [stdout] test sessions_display::tests::test_format_tokens_small ... ok [INFO] [stdout] test sessions_display::tests::test_format_outcome_plain ... 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_no_match ... ok [INFO] [stdout] test sessions_display::tests::test_truncate_left ... ok [INFO] [stdout] test sessions_display::tests::test_format_tokens_thousands ... 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 sessions_display::tests::test_truncate_left_unicode ... ok [INFO] [stdout] test sessions_display::tests::test_matches_filter_project_match ... ok [INFO] [stdout] test replay_renderer::tests::test_render_edit_before_after_plain ... ok [INFO] [stdout] test signal::tests::test_set_and_get_interrupt_context ... ok [INFO] [stdout] test replay_renderer::tests::test_render_separator ... ok [INFO] [stdout] test replay_renderer::tests::test_render_grep_result_files_mode ... ok [INFO] [stdout] test replay_renderer::tests::test_render_todowrite_invocation_plain ... ok [INFO] [stdout] test replay_renderer::tests::test_render_without_highlighting_no_ansi ... ok [INFO] [stdout] test spinner::tests::test_format_key_hints_running ... ok [INFO] [stdout] test spinner::tests::test_format_session_info_iteration_only ... 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_empty ... ok [INFO] [stdout] test spinner::tests::test_format_session_info_persona_with_slug_only ... ok [INFO] [stdout] test spinner::tests::test_format_key_hints_paused ... ok [INFO] [stdout] test spinner::tests::test_format_key_hints_finishing ... ok [INFO] [stdout] test spinner::tests::test_format_session_info_persona_only ... ok [INFO] [stdout] test spinner::tests::test_format_spinner_time_iteration_only ... ok [INFO] [stdout] test spinner::tests::test_format_spinner_time_small_difference ... ok [INFO] [stdout] test spinner::tests::test_format_spinner_time_with_session ... ok [INFO] [stdout] test spinner::tests::test_format_time_short_minutes ... ok [INFO] [stdout] test spinner::tests::test_key_hint_state_default ... 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] ⠋ Waiting for response... 0s [s: stop | S: halt | p: pause]test spinner::tests::test_spinner_context_default ... ok [INFO] [stdout] test spinner::tests::test_format_session_info_slug_only ... ok [INFO] [stdout] test replay_renderer::tests::test_render_write_new_file_plain ... ok [INFO] [stdout] test spinner::tests::test_format_session_info_full ... ok [INFO] [stdout] test spinner::tests::test_format_time_short_seconds ... ok [INFO] [stdout] ⠋ Waiting for response... 0s [s: stop | S: halt | p: pause] ⠋ Waiting for response... 0s [s: stop | S: halt | p: pause]test spinner::tests::test_format_session_info_persona_with_unknown_max ... ok [INFO] [stdout] test spinner::tests::test_spinner_default ... ok [INFO] [stdout] test spinner::tests::test_spinner_get_context_default ... ok [INFO] [stdout] test replay_renderer::tests::test_render_grep_result_empty ... ok [INFO] [stdout] test spinner::tests::test_spinner_context_messages ... ok [INFO] [stdout] test spinner::tests::test_spinner_disabled_start_stop ... ok [INFO] [stdout] test spinner::tests::test_spinner_new ... ok [INFO] [stdout] test spinner::tests::test_spinner_session_info_default ... ok [INFO] [stdout] test spinner::tests::test_spinner_session_info_has_info_persona_only ... ok [INFO] [stdout] test spinner::tests::test_spinner_key_hint_state_default ... ok [INFO] [stdout] test spinner::tests::test_spinner_session_info_new ... ok [INFO] [stdout] test spinner::tests::test_spinner_set_context ... ok [INFO] [stdout] ⠋ Waiting for response... 0s [s: stop | S: halt | p: pause] ⠋ Waiting for response... 0s [s: stop | S: halt | p: pause]test spinner::tests::test_spinner_session_info_partial ... ok [INFO] [stdout] test spinner::tests::test_spinner_set_key_hint_state ... ok [INFO] [stdout] ⠋ Thinking... 0s [s: stop | S: halt | p: pause]test spinner::tests::test_spinner_iteration_elapsed ... ok [INFO] [stdout] test spinner::tests::test_spinner_with_enabled_false ... ok [INFO] [stdout] test spinner::tests::test_spinner_with_enabled_true ... 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 startup::tests::test_attached_file_design_md_not_special_cased ... 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_clean_blank_lines_preserves_content_lines ... ok [INFO] [stdout] test startup::tests::test_clean_blank_lines_preserves_single ... 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 startup::tests::test_format_duration_minutes ... ok [INFO] [stdout] test 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 spinner::tests::test_spinner_drop_stops ... 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 highlight::tests::test_highlight_rust_code ... ok [INFO] [stdout] test startup::tests::test_iteration_header_singular_story ... ok [INFO] [stdout] test spinner::tests::test_spinner_total_session_elapsed ... ok [INFO] [stdout] test startup::tests::test_has_custom_config_completion_marker ... ok [INFO] [stdout] test startup::tests::test_iteration_header_without_max ... ok [INFO] [stdout] test spinner::tests::test_spinner_context_changes_while_running ... ok [INFO] [stdout] test startup::tests::test_iteration_summary_creation ... ok [INFO] [stdout] test startup::tests::test_iteration_summary_partial_tokens ... ok [INFO] [stdout] test startup::tests::test_iteration_summary_large_values ... ok [INFO] [stdout] test startup::tests::test_iteration_header_zero_stories ... ok [INFO] [stdout] test startup::tests::test_iterations_from_arg_flag ... 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_preserves_prompt ... ok [INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_relative_path ... ok [INFO] [stdout] test startup::tests::test_prompt_display_from_prompt_no_files ... ok [INFO] [stdout] test spinner::tests::test_spinner_double_start ... ok [INFO] [stdout] test spinner::tests::test_spinner_double_stop ... ok [INFO] [stdout] test startup::tests::test_iteration_summary_zero_cost ... 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_large_values ... ok [INFO] [stdout] test startup::tests::test_run_summary_clone ... 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_creation ... 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_prompt_display_from_prompt_extracts_files ... 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 startup::tests::test_startup_info_creation ... ok [INFO] [stdout] test strategy::init::tests::test_bundled_assets_not_empty ... 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_strategy_assets_are_valid_toml ... 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_with_overwritten_strategy_toml ... ok [INFO] [stdout] test strategy::init::tests::test_format_summary_strategy_skipped ... ok [INFO] [stdout] test strategy::init::tests::test_format_summary_includes_strategy_actions ... ok [INFO] [stdout] test strategy::init::tests::test_bundled_strategy_assets_not_empty ... ok [INFO] [stdout] test strategy::conversation_loop::tests::extract_comments_separates_comment_directives ... ok [INFO] [stdout] test spinner::tests::test_spinner_accumulate_iteration_time ... ok [INFO] [stdout] test strategy::init::tests::test_bundled_strategy_toml_has_agents_table ... ok [INFO] [stdout] test startup::tests::test_iteration_summary_with_none_values ... ok [INFO] [stdout] test strategy::init::tests::test_format_summary_with_skipped ... ok [INFO] [stdout] test strategy::init::tests::test_plan_paths_include_filename ... 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_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::init::tests::test_plan_mixed ... ok [INFO] [stdout] test strategy::init::tests::test_plan_strategy_toml_existing ... ok [INFO] [stdout] test strategy::init::tests::test_plan_all_new ... ok [INFO] [stdout] test strategy::init::tests::test_plan_strategy_all_existing ... ok [INFO] [stdout] test strategy::init::tests::test_plan_all_existing ... ok [INFO] [stdout] test strategy::prd_loop::tests::filter_removes_unlisted_persona ... ok [INFO] [stdout] test strategy::init::tests::test_plan_strategy_toml_new ... 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_result_for_orchestrator ... ok [INFO] [stdout] test strategy::prd_loop::tests::test_build_invocation_config_fields ... 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_no_aggregates ... ok [INFO] [stdout] test strategy::prd_loop::tests::test_build_loop_config_sets_fields ... ok [INFO] [stdout] test strategy::tests::test_find_strategy_by_name_empty_list ... 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_single ... ok [INFO] [stdout] test strategy::tests::test_format_empty ... ok [INFO] [stdout] test strategy::tests::test_find_strategy_by_name_found ... ok [INFO] [stdout] test strategy::traits::tests::test_custom_between_iterations ... ok [INFO] [stdout] test strategy::traits::tests::test_strategy_key_action_propagated ... ok [INFO] [stdout] test strategy::tests::test_format_multiple ... ok [INFO] [stdout] test stream_processor::block_builders::tests::test_build_default_invocation_block ... ok [INFO] [stdout] test strategy::traits::tests::test_run_strategy_delegates ... ok [INFO] [stdout] test strategy::traits::tests::test_strategy_execute_returns_result ... ok [INFO] [stdout] test strategy::traits::tests::test_strategy_between_iterations_default ... 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_diff_chunk_serialization ... ok [INFO] [stdout] test spinner::tests::test_spinner_enabled_start_stop ... ok [INFO] [stdout] test stream_processor::block_builders::tests::test_build_bash_invocation_block ... ok [INFO] [stdout] test spinner::tests::test_spinner_key_hint_state_while_running ... ok [INFO] [stdout] test spinner::tests::test_spinner_start_with_context ... ok [INFO] [stdout] test stream_processor::output_block::tests::test_output_block_text_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_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_tool_invocation_grep_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_grep_builder_all_options ... 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_invocation_todowrite_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_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 highlight::tests::test_highlight_python_code ... ok [INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_truncates_long_output ... 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_command_shown_in_full_without_truncation ... ok [INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_empty_output ... ok [INFO] [stdout] test highlight::tests::test_highlight_javascript_code ... ok [INFO] [stdout] test stream_processor::tests::core::test_code_block_detection ... ok [INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_command_plain_text_format ... ok [INFO] [stdout] test stream_processor::tests::core::test_empty_finish ... ok [INFO] [stdout] test stream_processor::tests::core::test_diff_block_detection ... ok [INFO] [stdout] test stream_processor::tests::core::test_finish_extracts_metadata ... ok [INFO] [stdout] test stream_processor::tests::core::test_finish_returns_accumulated_text ... ok [INFO] [stdout] test highlight::tests::test_highlight_multiline_code ... ok [INFO] [stdout] test stream_processor::tests::core::test_process_malformed_json ... ok [INFO] [stdout] test stream_processor::tests::core::test_process_assistant_text_event ... 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_process_empty_line ... ok [INFO] [stdout] test stream_processor::tests::core::test_stream_processor_new ... 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_error_not_treated_as_diff ... ok [INFO] [stdout] test stream_processor::tests::core::test_multiple_messages ... 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_truncates_large_diff ... 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_edit_tool_result_with_diff_shows_file_header ... ok [INFO] [stdout] test stream_processor::tests::edit_diff::test_edit_tool_result_without_diff_content ... 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_non_edit_tool_result_not_treated_as_diff ... 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_shows_pattern ... 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_invocation_default_path ... ok [INFO] [stdout] test stream_processor::tests::core::test_stream_processor_with_highlighting ... 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_groups_by_directory ... 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_result_shows_match_count ... ok [INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_content_mode_highlights_matches ... 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::glob_verbose::test_glob_verbose_result_with_nested_directories ... 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::glob_verbose::test_glob_verbose_result_single_file_grammar ... ok [INFO] [stdout] test stream_processor::tests::glob_verbose::test_glob_verbose_result_truncates_large_output ... 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_plain_text_format ... 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_single_match_grammar ... ok [INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_invocation_shows_filters ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_bash ... ok [INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_with_terminal_highlighting ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_extract_key_argument_edit_is_path ... 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_task_is_not_path ... 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_read ... ok [INFO] [stdout] test stream_processor::tests::grep_verbose::test_grep_verbose_result_shows_match_count ... 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::path_display::test_file_path_shown_in_full_for_edit ... ok [INFO] [stdout] test render::tool_renderers::tests::test_render_bash_invocation_single_line_terminal ... 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_grep_pattern_shown_in_full ... ok [INFO] [stdout] test stream_processor::tests::path_display::test_task_prompt_is_truncated ... ok [INFO] [stdout] test stream_processor::tests::path_display::test_glob_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::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_multiple ... ok [INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_none ... ok [INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_single ... ok [INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_from_arg_star ... 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_with_spaces ... ok [INFO] [stdout] test stream_processor::tests::verbose_config::test_verbose_tools_config_new ... ok [INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_with_terminal_dimmed_styling ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_tool_error_displayed_distinctly ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_tool_invocation_displayed ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_multiple_concurrent_tools ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_tool_result_displayed ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_tool_text_mixed_content ... ok [INFO] [stdout] test stream_processor::tests::path_display::test_url_shown_in_full ... 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_stream_processor_default_no_verbose_tools ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_plain_text_tool_display ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_multiple_responses_with_separators ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_for_first_response ... ok [INFO] [stdout] test replay_renderer::tests::test_render_with_highlighting_has_ansi ... ok [INFO] [stdout] test stream_processor::tests::verbose_config::test_stream_processor_with_verbose_tools ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_if_no_output_yet ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_visual_separation_between_responses ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_response_count_increments_correctly ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_no_separator_for_same_message_id ... ok [INFO] [stdout] test stream_processor::tests::visual_separation::test_separator_after_tool_use_cycle ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_indentation_preserved_in_code ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_leading_spaces_preserved ... 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_across_multiple_events ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_code_block_content_preserved ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_blank_line_after_code_block ... 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::tool_results::edit::tests::test_generate_unified_diff ... ok [INFO] [stdout] test stream_processor::tool_results::edit::tests::test_generate_unified_diff_addition ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_blank_line_before_code_block ... ok [INFO] [stdout] test stream_processor::tool_results::edit::tests::test_generate_unified_diff_deletion ... ok [INFO] [stdout] test stream_processor::tests::tool_display::test_with_options_constructor ... 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_multiple_blank_lines_preserved ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_trailing_newline_in_text ... ok [INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_generate_unified_diff ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_list_indentation_preserved ... ok [INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_generate_unified_diff_new_cell ... 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_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_before_after_display_prefers_old_new_strings ... ok [INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_diff_output_truncation ... ok [INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_diff_output_no_truncation ... ok [INFO] [stdout] test stream_processor::tests::whitespace::test_whitespace_raw_text_matches_original ... 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::notebookedit::tests::test_format_diff_output_code_cell ... 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_no_truncation ... 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_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_new_file_plain_no_diff_markers ... 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_full ... ok [INFO] [stdout] test stream_processor::types::grep_params_tests::test_grep_params_minimal ... ok [INFO] [stdout] test stream_processor::types::grep_params_tests::test_grep_params_empty_input ... ok [INFO] [stdout] test stream_processor::tool_results::edit::tests::test_format_no_changes_message_highlighted ... ok [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_from_file ... FAILED [INFO] [stdout] test warn::tests::test_warn_if_err_with_err_does_not_panic ... ok [INFO] [stdout] test tests::test_resolve_ask_prompt_whitespace_only_error ... 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_delete_mode ... ok [INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_truncation ... ok [INFO] [stdout] test stream_processor::tool_results::notebookedit::tests::test_format_diff_output_insert_mode ... 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_new_file_highlighted_truncation ... ok [INFO] [stdout] test tests::test_resolve_ask_prompt_empty_string_error ... ok [INFO] [stdout] test stream_processor::tool_results::write::tests::test_format_no_changes_message_overwrite ... ok [INFO] [stdout] test stream_processor::tests::bash_rendering::test_bash_tool_result_error_shows_exit_code ... 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_before_after_highlighted_has_separator ... ok [INFO] [stdout] test stream_processor::tool_results::edit::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] [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_green_background ... ok [INFO] [stdout] [INFO] [stdout] failures: [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' (388) panicked at crates/ralph/src/prompt_source.rs:134:9: [INFO] [stdout] assertion failed: result.is_ok() [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x58ed7a14112a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] 1: 0x58ed7a15974a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 2: 0x58ed7a1467f2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] 3: 0x58ed7a11d2ef - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x58ed7a1381b9 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] 5: 0x58ed79a691ac - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] 6: 0x58ed7a138372 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] 7: 0x58ed7a11d3da - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x58ed7a114829 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x58ed7a11e13d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] 10: 0x58ed7a159f8c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] 11: 0x58ed7a159f52 - core[6aaeda2c7ad07a48]::panicking::panic [INFO] [stdout] 12: 0x58ed79a03317 - ralph[65f2bbd57b43efc0]::prompt_source::tests::test_read_from_source_file [INFO] [stdout] 13: 0x58ed799fde13 - ralph[65f2bbd57b43efc0]::prompt_source::tests::test_read_from_source_file::{closure#0} [INFO] [stdout] 14: 0x58ed7981a706 - >::call_once [INFO] [stdout] 15: 0x58ed79a5d28b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] 16: 0x58ed79a69c7b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] 17: 0x58ed79a65394 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x58ed79a6c882 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x58ed7a1401ef - ::new::thread_start [INFO] [stdout] 20: 0x73762b0c0aa4 - [INFO] [stdout] 21: 0x73762b14da64 - clone [INFO] [stdout] 22: 0x0 - [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' (384) 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: 0x58ed7a14112a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] 1: 0x58ed7a15974a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 2: 0x58ed7a1467f2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] 3: 0x58ed7a11d2ef - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x58ed7a1381b9 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] 5: 0x58ed79a691ac - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] 6: 0x58ed7a138372 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] 7: 0x58ed7a11d3da - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x58ed7a114829 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x58ed7a11e13d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] 10: 0x58ed7a159f8c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] 11: 0x58ed7a159f52 - core[6aaeda2c7ad07a48]::panicking::panic [INFO] [stdout] 12: 0x58ed79a037ee - ralph[65f2bbd57b43efc0]::prompt_source::tests::test_classify_prompt_source_file [INFO] [stdout] 13: 0x58ed799fde73 - ralph[65f2bbd57b43efc0]::prompt_source::tests::test_classify_prompt_source_file::{closure#0} [INFO] [stdout] 14: 0x58ed7981a786 - >::call_once [INFO] [stdout] 15: 0x58ed79a5d28b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] 16: 0x58ed79a69c7b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] 17: 0x58ed79a65394 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x58ed79a6c882 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x58ed7a1401ef - ::new::thread_start [INFO] [stdout] 20: 0x73762b0c0aa4 - [INFO] [stdout] 21: 0x73762b14da64 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tests::test_resolve_ask_prompt_from_file stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tests::test_resolve_ask_prompt_from_file' (879) panicked at crates/ralph/src/main_tests.rs:47:5: [INFO] [stdout] assertion failed: content.contains("[package]") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x58ed7a14112a - <::print::DisplayBacktrace as core[6aaeda2c7ad07a48]::fmt::Display>::fmt [INFO] [stdout] 1: 0x58ed7a15974a - core[6aaeda2c7ad07a48]::fmt::write [INFO] [stdout] 2: 0x58ed7a1467f2 - as std[e72de78501789eb0]::io::Write>::write_fmt [INFO] [stdout] 3: 0x58ed7a11d2ef - std[e72de78501789eb0]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x58ed7a1381b9 - std[e72de78501789eb0]::panicking::default_hook [INFO] [stdout] 5: 0x58ed79a691ac - test[4f12b380f1fb68c5]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] 6: 0x58ed7a138372 - std[e72de78501789eb0]::panicking::panic_with_hook [INFO] [stdout] 7: 0x58ed7a11d3da - std[e72de78501789eb0]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x58ed7a114829 - std[e72de78501789eb0]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x58ed7a11e13d - __rustc[78a4cf188af856fc]::rust_begin_unwind [INFO] [stdout] 10: 0x58ed7a159f8c - core[6aaeda2c7ad07a48]::panicking::panic_fmt [INFO] [stdout] 11: 0x58ed7a159f52 - core[6aaeda2c7ad07a48]::panicking::panic [INFO] [stdout] 12: 0x58ed79981981 - ralph[65f2bbd57b43efc0]::tests::test_resolve_ask_prompt_from_file [INFO] [stdout] 13: 0x58ed7997e2c3 - ralph[65f2bbd57b43efc0]::tests::test_resolve_ask_prompt_from_file::{closure#0} [INFO] [stdout] 14: 0x58ed79819ec6 - >::call_once [INFO] [stdout] 15: 0x58ed79a5d28b - test[4f12b380f1fb68c5]::__rust_begin_short_backtrace::, fn() -> core[6aaeda2c7ad07a48]::result::Result<(), alloc[28d2dab30c1dc666]::string::String>> [INFO] [stdout] 16: 0x58ed79a69c7b - test[4f12b380f1fb68c5]::run_test::{closure#0} [INFO] [stdout] 17: 0x58ed79a65394 - std[e72de78501789eb0]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x58ed79a6c882 - ::{closure#1} as core[6aaeda2c7ad07a48]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x58ed7a1401ef - ::new::thread_start [INFO] [stdout] 20: 0x73762b0c0aa4 - [INFO] [stdout] 21: 0x73762b14da64 - clone [INFO] [stdout] 22: 0x0 - [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.82s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p ralph --bin ralph` [INFO] running `Command { std: "docker" "inspect" "53dc3d4587f2079ed45b6c817954f126670f51e4f1c5b49d2e383cd842e06b93", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "53dc3d4587f2079ed45b6c817954f126670f51e4f1c5b49d2e383cd842e06b93", kill_on_drop: false }` [INFO] [stdout] 53dc3d4587f2079ed45b6c817954f126670f51e4f1c5b49d2e383cd842e06b93