[INFO] cloning repository https://github.com/twitchax/microralph
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/twitchax/microralph" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftwitchax%2Fmicroralph", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftwitchax%2Fmicroralph'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 05b6da9f9fb809088ffcf676ac5be7bbc8f4fa4f
[INFO] testing twitchax/microralph against beta-2026-03-05 for beta-1.95-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftwitchax%2Fmicroralph" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-4-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/twitchax/microralph
[INFO] finished tweaking git repo https://github.com/twitchax/microralph
[INFO] tweaked toml for git repo https://github.com/twitchax/microralph written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/twitchax/microralph on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/twitchax/microralph already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b7ab4887fe9e6f6f25283a05ec54584bc2fc819753bac6471f1c55b80c0dbed9
[INFO] running `Command { std: "docker" "start" "-a" "b7ab4887fe9e6f6f25283a05ec54584bc2fc819753bac6471f1c55b80c0dbed9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b7ab4887fe9e6f6f25283a05ec54584bc2fc819753bac6471f1c55b80c0dbed9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b7ab4887fe9e6f6f25283a05ec54584bc2fc819753bac6471f1c55b80c0dbed9", kill_on_drop: false }`
[INFO] [stdout] b7ab4887fe9e6f6f25283a05ec54584bc2fc819753bac6471f1c55b80c0dbed9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6abbf0393bfe3c5790d5d19c55c30296482615222e6c57a43c2f226ae2e28b51
[INFO] running `Command { std: "docker" "start" "-a" "6abbf0393bfe3c5790d5d19c55c30296482615222e6c57a43c2f226ae2e28b51", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling supports-color v2.1.0
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling env_home v0.1.0
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling indicatif v0.18.3
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling toml v0.9.11+spec-1.1.0
[INFO] [stderr]    Compiling which v8.0.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling microralph v0.10.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 32.87s
[INFO] running `Command { std: "docker" "inspect" "6abbf0393bfe3c5790d5d19c55c30296482615222e6c57a43c2f226ae2e28b51", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6abbf0393bfe3c5790d5d19c55c30296482615222e6c57a43c2f226ae2e28b51", kill_on_drop: false }`
[INFO] [stdout] 6abbf0393bfe3c5790d5d19c55c30296482615222e6c57a43c2f226ae2e28b51
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9439af260369e78a0d2a4ee1a1a960cb496513ee11bda7457efaf818de273da8
[INFO] running `Command { std: "docker" "start" "-a" "9439af260369e78a0d2a4ee1a1a960cb496513ee11bda7457efaf818de273da8", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling which v8.0.0
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling microralph v0.10.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 17.10s
[INFO] running `Command { std: "docker" "inspect" "9439af260369e78a0d2a4ee1a1a960cb496513ee11bda7457efaf818de273da8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9439af260369e78a0d2a4ee1a1a960cb496513ee11bda7457efaf818de273da8", kill_on_drop: false }`
[INFO] [stdout] 9439af260369e78a0d2a4ee1a1a960cb496513ee11bda7457efaf818de273da8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 74ee6a5768a837ff9cfe76f49beebadea9d0030c89dcba58658745e85336cc4a
[INFO] running `Command { std: "docker" "start" "-a" "74ee6a5768a837ff9cfe76f49beebadea9d0030c89dcba58658745e85336cc4a", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mr-b9d27a51c283aac8)
[INFO] [stdout] 
[INFO] [stdout] running 757 tests
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_config_defaults ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_initializes_if_needed ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_plan_generated ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_full_bootstrap_flow ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_plan ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_prds_generated ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_generate_prompt ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_skips_init_if_exists ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_generate ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_prioritizes_env_vars_over_filesystem ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_with_remote_containers_var ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_without_indicators ... ok
[INFO] [stdout] test commands::graph::tests::test_ascii_config_new ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_chain_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_circular_dependencies ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_full_workflow_with_index_regeneration ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_workflow ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt_no_existing_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_edges_sorted ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_summarize_plan ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_empty_depends_on_array ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_nodes_sorted_by_id ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_skips_init_if_exists ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt_includes_existing_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_no_dependencies ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_plan_prompt ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_deduplicates_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_self_referential_dependency ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_idempotent_with_existing_prds ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_with_codespaces_var ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_with_missing_dependency ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_creates_constitution ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_runner_failure ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_with_valid_dependencies ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_count_prd_files ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_creates_prds_from_git_history ... ok
[INFO] [stdout] test commands::graph::tests::test_dot_node_id_removes_hyphens ... ok
[INFO] [stdout] test commands::graph::tests::test_mermaid_config_new ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_node_missing ... ok
[INFO] [stdout] test commands::graph::tests::test_dot_config_new ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_node_from_summary ... ok
[INFO] [stdout] test commands::graph::tests::test_mermaid_node_id_removes_hyphens ... ok
[INFO] [stdout] test commands::graph::tests::test_prd_graph_has_missing_refs_false ... ok
[INFO] [stdout] test commands::graph::tests::test_prd_graph_node_count ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_chain_shows_all_levels ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_with_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_with_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_dot_output_with_real_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_with_reconstructed_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_chain_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_prd_graph_edge_count ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_config_left_right ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_escapes_quotes_in_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_with_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_complex_dependency_chain ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_chain_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_mixed_valid_and_missing_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_config_left_right ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_with_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_mixed_valid_and_missing_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_dependencies ... ok
[INFO] [stdout] test commands::init::tests::test_adapt_language_prompt_placeholders ... ok
[INFO] [stdout] test commands::init::tests::test_constitution_template_content ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_go ... ok
[INFO] [stdout] test commands::init::tests::test_constitution_template_has_under_10_rules ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_java ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_none ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_mixed_valid_and_missing_deps ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_node ... ok
[INFO] [stdout] test commands::init::tests::test_ensure_initialized_no_mr_dir_generic_message ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_priority ... ok
[INFO] [stdout] test commands::init::tests::test_ensure_initialized_partial_init_includes_suggestion ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_python ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_rust ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_escapes_quotes_in_titles ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_idempotent ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_build_from_real_prds ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_creates_dir_and_manifest ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_empty_repository ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_preserves_existing ... ok
[INFO] [stdout] test commands::init::tests::test_init_is_idempotent ... ok
[INFO] [stdout] test commands::init::tests::test_init_preserves_existing_files ... ok
[INFO] [stdout] test commands::init::tests::test_init_creates_structure ... ok
[INFO] [stdout] test commands::init::tests::test_language_build_commands ... ok
[INFO] [stdout] test commands::init::tests::test_language_display ... ok
[INFO] [stdout] test commands::init::tests::test_language_from_str ... ok
[INFO] [stdout] test commands::init::tests::test_prd_template_content ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_missing_dependency_warning ... ok
[INFO] [stdout] test commands::init::tests::test_init_result_created_paths ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_ascii_output_with_real_prds ... ok
[INFO] [stdout] test commands::init::tests::test_run_task_prompt_includes_skills_sections ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_mermaid_output_with_real_prds ... ok
[INFO] [stdout] test commands::init::tests::test_prompts_contain_placeholders ... ok
[INFO] [stdout] test commands::init::tests::test_prompts_are_workflow_focused_no_philosophy ... ok
[INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_no_commit_false ... ok
[INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_with_context ... ok
[INFO] [stdout] test commands::refactor::tests::test_is_no_more_refactors ... ok
[INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_basic ... ok
[INFO] [stdout] test commands::refactor::tests::test_is_preview_complete ... ok
[INFO] [stdout] test commands::refactor::tests::test_refactor_loop_early_termination ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_first_number ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_empty_body ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_headers_only ... ok
[INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_no_commit_true ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_long_text ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_depends_on_counts ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_depends_on_counts_alternative_format ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_depends_on_counts_no_matches ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_link_counts ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_link_counts_alternative_format ... ok
[INFO] [stdout] test commands::reindex::tests::test_parse_link_counts_no_matches ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_from_actual_repo ... ok
[INFO] [stdout] test commands::init::tests::test_is_initialized ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_missing ... ok
[INFO] [stdout] test commands::run::tests::test_build_uat_verify_prompt ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_allow_add_task_true ... ok
[INFO] [stdout] test commands::run::tests::test_build_uat_verify_prompt_allow_skip_uat_false ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_allow_add_task_false ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_commit_false ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_commit_true ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_simple ... ok
[INFO] [stdout] test commands::run::tests::test_build_uat_verify_prompt_allow_skip_uat_true ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_default ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_with_depends_on_inference ... ok
[INFO] [stdout] test commands::run::tests::test_constitution_violation_logging ... ok
[INFO] [stdout] test commands::reindex::tests::test_reindex_integration_depends_on_with_existing_deps ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_no_tasks ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_todo ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_all_done ... ok
[INFO] [stdout] test commands::run::tests::test_parse_opt_out ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_with_trailing_content ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_in_progress ... ok
[INFO] [stdout] test commands::reindex::tests::test_reindex_integration_depends_on_autofix ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_injected ... ok
[INFO] [stdout] test commands::run::tests::test_find_prd_by_id ... ok
[INFO] [stdout] test commands::run::tests::test_pick_prd_no_active_prd ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_all_done_with_unverified_uats ... ok
[INFO] [stdout] test commands::run::tests::test_find_prd_by_id_not_found ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_all_done_and_verified ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_all_done_no_uats ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_explicit_prd ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_none ... ok
[INFO] [stdout] test commands::run::tests::daemon_notifier_returns_none_outside_git_repo ... ok
[INFO] [stdout] test commands::run::tests::test_uat_loop_convergence_all_uats_verified ... ok
[INFO] [stdout] test commands::run::tests::test_uat_result_has_new_tasks_field_default ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_requires_prd_id ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_history_appending ... ok
[INFO] [stdout] test commands::status::tests::test_extract_last_history ... ok
[INFO] [stdout] test commands::run::tests::test_uat_loop_no_new_tasks_means_has_new_tasks_false ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_in_text ... ok
[INFO] [stdout] test commands::status::tests::test_format_status ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_empty ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_integration_flow ... ok
[INFO] [stdout] test commands::status::tests::test_extract_last_history_none ... ok
[INFO] [stdout] test commands::status::tests::test_get_status_empty ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_opt_out ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_max_iterations ... ok
[INFO] [stdout] test commands::status::tests::test_get_status_with_prds ... ok
[INFO] [stdout] test commands::status::tests::test_find_next_task ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_with_no_commit_sends_correct_prompt ... ok
[INFO] [stdout] test commands::status::tests::test_next_task_skips_draft_prds ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_success ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_all_verified_by_runner ... ok
[INFO] [stdout] test commands::suggest::tests::test_build_suggestion_prompt ... ok
[INFO] [stdout] test commands::run::tests::daemon_notifier_returns_none_in_main_worktree ... ok
[INFO] [stdout] test commands::suggest::tests::test_generate_slug ... ok
[INFO] [stdout] test commands::status::tests::test_status_with_history ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies_empty ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies ... ok
[INFO] [stdout] test commands::run::tests::test_uat_loop_breaks_early_when_new_tasks_detected ... ok
[INFO] [stdout] test commands::suggest::tests::test_is_numbered_entry_start ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_complete ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_invalid ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_partial ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_stops_at_next_entry ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestions_empty_output ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestions_incomplete ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_valid ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_whitespace ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_codebase ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_whitespace ... ok
[INFO] [stdout] test commands::suggest::tests::test_get_recent_commits_no_git ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggest_parses_five_suggestions ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_repository_structure ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggestions_include_strategic_and_quick_win ... ok
[INFO] [stdout] test commands::suggest::tests::test_validate_selection ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_constitution_with_valid_frontmatter ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_todo_comments_no_git ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_invalid_yaml ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_no_separator ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggestion_flows_to_prd_new_with_context ... ok
[INFO] [stdout] test commands::worktree::tests::days_to_ymd_unix_epoch ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_valid ... ok
[INFO] [stdout] test commands::worktree::tests::log_file_path_builds_correct_path ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_missing_delimiter ... ok
[INFO] [stdout] test commands::worktree::tests::next_wt_id_increments ... ok
[INFO] [stdout] test commands::worktree::tests::days_to_ymd_known_date ... ok
[INFO] [stdout] test commands::worktree::tests::now_iso_produces_valid_timestamp ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_daemon_stop_when_not_running ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_daemon_start_when_not_initialized ... ok
[INFO] [stdout] test commands::worktree::tests::cmd_wt_run_fails_without_git_repo ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_graph_rejects_unknown_format ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggest_integration_with_mock_runner ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_list_fails_without_git_repo ... ok
[INFO] [stdout] test commands::run::tests::daemon_notifier_connects_and_sends_events ... ok
[INFO] [stdout] test commands::run::tests::test_pick_prd_selects_active_with_tasks ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_daemon_status_runs ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_remove_fails_without_git_repo ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_graph_fails_without_git_repo ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_status_fails_without_git_repo ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_with_separator ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_constitution_no_frontmatter ... ok
[INFO] [stdout] test commands::worktree::tests::next_wt_id_starts_at_001 ... ok
[INFO] [stdout] test commands::worktree::tests::test_overlap_risk_colored_returns_string_for_all_variants ... ok
[INFO] [stdout] test commands::worktree::tests::test_last_event_timestamp_empty_events ... ok
[INFO] [stdout] test commands::worktree::tests::test_print_worktree_detail_not_found ... ok
[INFO] [stdout] test commands::worktree::tests::test_print_worktree_detail_shows_entry ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_ascii_empty ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_ascii_excludes_merged_and_abandoned ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_ascii_with_worktrees ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_dot_empty ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_dot_with_overlaps ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_mermaid_empty ... ok
[INFO] [stdout] test commands::worktree::tests::test_last_event_timestamp_with_events ... ok
[INFO] [stdout] test commands::worktree::tests::test_render_wt_graph_mermaid_with_overlaps ... ok
[INFO] [stdout] test commands::worktree::tests::test_status_colored_returns_string_for_all_variants ... ok
[INFO] [stdout] test commands::worktree::tests::test_wt_risk_level_no_warnings ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_constitution_with_invalid_frontmatter ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_without_no_commit_sends_commit_instructions ... ok
[INFO] [stdout] test commands::worktree::tests::test_wt_risk_level_returns_worst ... ok
[INFO] [stdout] test commands::worktree::tests::validate_prd_exists_fails_for_nonexistent ... ok
[INFO] [stdout] test config::tests::test_config_default ... ok
[INFO] [stdout] test config::constitution::tests::test_parse_questions_for_constitution ... ok
[INFO] [stdout] test config::tests::test_config_load_empty_file ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_remove_rejects_merging_worktree ... ok
[INFO] [stdout] test config::tests::test_config_load_malformed_includes_suggestion ... ok
[INFO] [stdout] test config::tests::test_config_load_missing_file ... ok
[INFO] [stdout] test config::tests::test_config_load_full ... ok
[INFO] [stdout] test config::constitution::tests::test_constitution_edit ... ok
[INFO] [stdout] test config::tests::test_config_load_or_default_missing ... ok
[INFO] [stdout] test config::tests::test_config_load_partial ... ok
[INFO] [stdout] test config::tests::test_effective_model_cli_override ... ok
[INFO] [stdout] test config::tests::test_effective_model_config_value ... ok
[INFO] [stdout] test config::tests::test_effective_model_none ... ok
[INFO] [stdout] test config::tests::test_effective_no_commit_cli_override ... ok
[INFO] [stdout] test config::tests::test_effective_no_commit_config_value ... ok
[INFO] [stdout] test config::tests::test_effective_no_commit_default_false ... ok
[INFO] [stdout] test config::tests::test_effective_runner_cli_override ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_remove_unknown_prd_returns_error ... ok
[INFO] [stdout] test config::tests::test_effective_runner_config_value ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_remove_succeeds_for_active_worktree ... ok
[INFO] [stdout] test config::tests::test_default_config_parses ... ok
[INFO] [stdout] test config::constitution::tests::test_constitution_missing_includes_suggestion ... ok
[INFO] [stdout] test config::tests::test_load_constitution_exists ... ok
[INFO] [stdout] test config::tests::test_config_load_with_no_commit ... ok
[INFO] [stdout] test config::tests::test_effective_runner_default ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_aborts_on_interrupted_signal ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_case_insensitive_id_lookup ... ok
[INFO] [stdout] test config::tests::test_load_constitution_missing ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_constitution_in_prompt ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_context_in_interactive_prompt ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_existing_prds_in_prompt ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_aborts_on_process_failure ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_fails_on_corrupted_file_after_session ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_fails_on_missing_file_after_session ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_no_context ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_interactive_flow ... ok
[INFO] [stdout] test prd::edit::tests::test_old_qa_loop_code_removed ... ok
[INFO] [stdout] test prd::edit::tests::test_find_prd ... ok
[INFO] [stdout] test prd::finalize::tests::finalize_unverified_blocks ... ok
[INFO] [stdout] test prd::edit::tests::test_find_prd_not_found_includes_suggestion ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_prd_path_in_prompt ... ok
[INFO] [stdout] test prd::edit::tests::test_find_prd_not_found ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_validates_and_regenerates_index ... ok
[INFO] [stdout] test prd::finalize::tests::test_format_completed_tasks ... ok
[INFO] [stdout] test prd::finalize::tests::test_format_completed_tasks_empty ... ok
[INFO] [stdout] test prd::finalize::tests::test_append_to_prd_preserves_existing ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_prd_content_in_prompt ... ok
[INFO] [stdout] test prd::finalize::tests::test_constitution_prd_finalize ... ok
[INFO] [stdout] test prd::finalize::tests::test_prd_not_found_error_includes_suggestion ... ok
[INFO] [stdout] test prd::finalize::tests::test_generate_summary_report ... ok
[INFO] [stdout] test prd::finalize::tests::test_generate_summary_report_no_tasks ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_in_progress ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_incomplete ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_all_done ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_no_tasks ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_parked ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_all_skipped ... ok
[INFO] [stdout] test prd::finalize::tests::test_update_prd_status_to_done ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_no_uats ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_all_verified ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_unverified ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_unverified_uats ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_uats_mixed_verified_and_skipped ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_multiple_incomplete_tasks ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_status_with_unknown_prd_fails ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_uats_skipped_with_unverified_fails ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_blocked ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_deduplicates ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_none ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_single ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_multiple_unverified_uats ... ok
[INFO] [stdout] test prd::index::tests::test_generate_cross_references_no_refs ... ok
[INFO] [stdout] test prd::index::tests::test_generate_cross_references_with_refs ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_multiple ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_excludes_self ... ok
[INFO] [stdout] test prd::index::tests::test_generate_dependencies_multiple_deps ... ok
[INFO] [stdout] test prd::index::tests::test_generate_dependencies_no_deps ... ok
[INFO] [stdout] test prd::index::tests::test_generate_dependencies_with_deps ... ok
[INFO] [stdout] test prd::index::tests::test_generate_index_empty ... ok
[INFO] [stdout] test prd::index::tests::test_generate_prd_table ... ok
[INFO] [stdout] test prd::index::tests::test_generate_index_with_prds ... ok
[INFO] [stdout] test prd::finalize::tests::test_update_prd_status_preserves_tasks ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_extracts_references ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_extracts_depends_on ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_no_tasks ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_depends_on_empty ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_progress ... ok
[INFO] [stdout] test prd::index::tests::test_scan_prds_nonexistent_directory ... ok
[INFO] [stdout] test prd::new::tests::test_constitution_in_interactive_prompt ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_placeholder_when_agent_doesnt_write ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_interrupted_signal ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_process_failure ... ok
[INFO] [stdout] test prd::new::tests::test_generate_next_prd_id_empty ... ok
[INFO] [stdout] test prd::new::tests::test_generate_next_prd_id_with_existing ... ok
[INFO] [stdout] test prd::new::tests::test_old_qa_loop_code_removed ... ok
[INFO] [stdout] test prd::new::tests::test_synthesis_phase_code_removed ... ok
[INFO] [stdout] test prd::parser::tests::test_invalid_yaml_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::parser::tests::test_missing_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::new::tests::test_prd_new_context_in_interactive_prompt ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_all_prd_statuses ... ok
[INFO] [stdout] test prd::new::tests::test_prd_new_next_id_and_path_in_prompt ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_basic ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_merge_fails_without_worktree ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_all_task_statuses ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_body ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_tasks ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_missing_frontmatter ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_unclosed_frontmatter ... ok
[INFO] [stdout] test prd::parser::tests::test_roundtrip_preserves_body ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_complex_prd ... ok
[INFO] [stdout] test prd::parser::tests::test_roundtrip_preserves_frontmatter ... ok
[INFO] [stdout] test prd::parser::tests::test_serialize_minimal_prd ... ok
[INFO] [stdout] test prd::parser::tests::test_serialize_prd ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_list_empty_state_shows_hint ... ok
[INFO] [stdout] test prd::types::tests::test_acceptance_test_with_skipped_uat_roundtrip ... ok
[INFO] [stdout] test prd::parser::tests::test_unclosed_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::types::tests::test_prd_incomplete_tasks ... ok
[INFO] [stdout] test prd::types::tests::test_prd_next_task ... ok
[INFO] [stdout] test prd::types::tests::test_prd_status_display ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_display ... ok
[INFO] [stdout] test prd::types::tests::test_task_status_display ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_deserialize_skipped_from_yaml ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_default_is_unverified ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_empty_template ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_serde_roundtrip ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_false ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_missing ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_each_with_index ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_string_empty ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_with_else_false ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_each ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_with_else_true ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_multiple_placeholders ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_nested_placeholders_in_if ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_no_placeholders ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_unknown_placeholder_unchanged ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_single_phase_agent_writes_file ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_string_nonempty ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_true ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_whitespace_in_placeholder ... ok
[INFO] [stdout] test prd::new::tests::test_existing_prds_injected_into_interactive_prompt ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_real_world_prompt ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_insert ... ok
[INFO] [stdout] test commands::suggest::tests::test_get_recent_commits_with_git ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_len_and_empty ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_from_iter ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_value_from_bool ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_value_from_str ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_value_from_string ... ok
[INFO] [stdout] test prompt::loader::tests::test_get_default_prompt_all_kinds ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_convenience ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_exists ... ok
[INFO] [stdout] test prd::finalize::tests::test_build_finalize_prompt ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_with_fallback ... ok
[INFO] [stdout] test prd::finalize::tests::test_append_to_prd ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_missing ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_with_fallback_prefers_file ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_all_exist ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_missing_prompts ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_new ... ok
[INFO] [stdout] test prompt::types::tests::test_prompt_kind_filename ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_with_model ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_manual_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_yolo_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_yolo_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_manual_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_claude_config_default ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_from_invalid_json ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_from_json ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_missing_result_field ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_with_model ... ok
[INFO] [stdout] test runner::claude::tests::test_format_command_display ... ok
[INFO] [stdout] test runner::claude::tests::test_format_command_display_no_model ... ok
[INFO] [stdout] test runner::claude::tests::test_parse_usage_from_json ... ok
[INFO] [stdout] test runner::claude::tests::test_parse_usage_missing_fields ... ok
[INFO] [stdout] test runner::claude::tests::test_runner_name ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_missing_result_field ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_preserves_multiline_result ... ok
[INFO] [stdout] test runner::claude::tests::test_parse_usage_returns_none ... ok
[INFO] [stdout] test runner::claude::tests::test_runner_default ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_empty_result ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_without_model ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_plain_text ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_full_json ... ok
[INFO] [stdout] test runner::claude::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_build_command_removes_node_no_warnings ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_build_command_sets_working_dir ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_check_cli_available_cargo ... ok
[INFO] [stdout] test runner::claude::tests::test_claude_config_builder ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_check_cli_available_nonexistent ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_unsupported_by_default ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_extract_json_result_invalid_json ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_extract_json_result_missing_field ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_no_init ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_format_command_display ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_with_fallback_convenience ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_failure ... ok
[INFO] [stdout] test prompt::types::tests::test_prompt_kind_all ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_extract_json_result_valid ... ok
[INFO] [stdout] test prompt::types::tests::test_prompt_kind_display ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_is_available_delegates_to_check_cli_available ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_invalid_json ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_simple_placeholder ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_codebase_includes_tech_debt_and_dependencies ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_cli_echo ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_multiple_lines ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_no_usage ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_partial ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_valid ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_appends_to_existing ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_empty ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_success ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_not_found_falls_back ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_found ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_signal_name_known_signals ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_without_model ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_signal_name_unknown_signal ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_yolo_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_with_model ... ok
[INFO] [stdout] test runner::codex::tests::test_build_interactive_args_with_model ... ok
[INFO] [stdout] test runner::codex::tests::test_build_interactive_args_manual_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_build_interactive_args_yolo_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_config_builder ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_single_line ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_runner_with_config ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_from_invalid_json ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_from_json ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_missing_result_field ... ok
[INFO] [stdout] test runner::codex::tests::test_format_command_display ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_config_default ... ok
[INFO] [stdout] test runner::codex::tests::test_format_command_display_no_model ... ok
[INFO] [stdout] test commands::worktree::tests::wt_run_creates_branch_worktree_and_registers_state ... ok
[INFO] [stdout] test commands::run::tests::daemon_notifier_returns_none_when_prd_not_in_state ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_manual_mode ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_signal_interrupted ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_from_json ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_no_usage_object ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_missing_fields ... ok
[INFO] [stdout] test runner::codex::tests::test_post_process_output_extracts_result ... ok
[INFO] [stdout] test runner::codex::tests::test_post_process_output_plain_text ... ok
[INFO] [stdout] test runner::codex::tests::test_runner_name ... ok
[INFO] [stdout] test runner::codex::tests::test_runner_default ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_missing_result_field ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_returns_none ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_empty_result ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_full_json ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_plain_text ... ok
[INFO] [stdout] test runner::codex::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_allow_all_mode ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_without_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_interactive_args_manual_mode ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_interactive_args_yolo_mode ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_manual_mode ... ok
[INFO] [stdout] test runner::copilot::tests::test_format_command_display ... ok
[INFO] [stdout] test runner::copilot::tests::test_format_command_display_no_model ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_preserves_multiline_result ... ok
[INFO] [stdout] test commands::worktree::tests::test_cmd_wt_list_shows_registered_worktrees_with_status ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_yolo_mode ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_interactive_args_with_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_copilot_config_default ... ok
[INFO] [stdout] test runner::copilot::tests::test_strip_usage_stats ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_with_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_strip_usage_stats_no_stats ... ok
[INFO] [stdout] test runner::copilot::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_default_response_when_empty ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_execute_interactive_returns_ok ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_execute_interactive_returns_interrupted_error ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_execute_interactive_returns_process_failed_error ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_is_available ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_name ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_records_prompts ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_remaining_responses ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_returns_responses_in_order ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_both_none ... ok
[INFO] [stdout] test runner::types::tests::test_runner_default_execute_interactive_returns_error ... ok
[INFO] [stdout] test runner::types::tests::test_runner_error_interrupted_display ... ok
[INFO] [stdout] test runner::copilot::tests::test_runner_default ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_into_none ... ok
[INFO] [stdout] test runner::types::tests::test_runner_error_is_interrupted ... ok
[INFO] [stdout] test runner::copilot::tests::test_runner_name ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_both_none ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_with_none_new ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_into_some ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_both_some ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_partial ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_has_data ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_records_interactive_prompts ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_add_response ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_language ... ok
[INFO] [stdout] test tests::test_args_parse_graph_ascii_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_model ... ok
[INFO] [stdout] test tests::test_args_parse_graph_ascii_with_flags ... ok
[INFO] [stdout] test tests::test_args_parse_graph_dot_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_scaffold ... ok
[INFO] [stdout] test tests::test_args_parse_edit ... ok
[INFO] [stdout] test tests::test_args_parse_finalize ... ok
[INFO] [stdout] test tests::test_args_parse_graph_dot_with_all_flags ... ok
[INFO] [stdout] test tests::test_args_parse_graph_mermaid_with_lr ... ok
[INFO] [stdout] test tests::test_args_parse_init ... ok
[INFO] [stdout] test tests::test_args_parse_list ... ok
[INFO] [stdout] test runner::copilot::tests::test_copilot_config_builder ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_omits_usage_info ... ok
[INFO] [stdout] test tests::test_args_parse_list_with_done_flag ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize ... ok
[INFO] [stdout] test tests::test_args_parse_graph_mermaid_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_init_with_language ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize_with_options ... ok
[INFO] [stdout] test tests::test_args_parse_no_command ... ok
[INFO] [stdout] test commands::run::tests::daemon_notifier_returns_none_when_no_daemon ... ok
[INFO] [stdout] test tests::test_args_parse_new ... ok
[INFO] [stdout] test tests::test_args_parse_prd_new ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format ... ok
[INFO] [stdout] test tests::test_args_parse_refactor_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize_no_commit ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format_megabytes ... ok
[INFO] [stdout] test tests::test_args_parse_run_default_disallow_flags_off ... ok
[INFO] [stdout] test tests::test_args_parse_prd_new_with_model ... ok
[INFO] [stdout] test tests::test_args_parse_refactor_with_all_flags ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_disallow_skip_uat ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_model ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_positional_prd ... ok
[INFO] [stdout] test tests::test_args_parse_run_without_positional_prd ... ok
[INFO] [stdout] test tests::test_args_parse_run_default_stream_off ... ok
[INFO] [stdout] test tests::test_args_parse_status ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_runner ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_no_stats ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_runner_codex ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_disallow_add_task ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_stream ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_fallback ... ok
[INFO] [stdout] test tests::test_devcontainer_generate_with_mock_runner ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_number ... ok
[INFO] [stdout] test tests::test_quiet_flag ... ok
[INFO] [stdout] test tests::test_restore_fails_if_not_initialized ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_full_id ... ok
[INFO] [stdout] test util::colors::tests::test_error_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::changelog::tests::test_ensure_changelog_exists_preserves_existing ... ok
[INFO] [stdout] test tests::test_verbose_flag ... ok
[INFO] [stdout] test util::changelog::tests::test_changelog_template_format ... ok
[INFO] [stdout] test util::changelog::tests::test_ensure_changelog_exists_creates_new ... ok
[INFO] [stdout] test util::colors::tests::test_info_header_dim_are_identity_in_non_tty ... ok
[INFO] [stdout] test util::colors::tests::test_question_has_emoji_and_styling ... ok
[INFO] [stdout] test util::colors::tests::test_styling_functions_handle_empty_string ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_collect_singleline_answers ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_direct ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_with_ready_signal ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_strip_ansi_escapes ... ok
[INFO] [stdout] test util::colors::tests::test_warning_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_clear_is_idempotent ... ok
[INFO] [stdout] test tests::test_restore_fresh ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_markdown_block ... ok
[INFO] [stdout] test util::spinner::tests::test_disabled_spinner_set_message_empty_string ... ok
[INFO] [stdout] test util::colors::tests::test_success_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_multi_line ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_with_ready_signal ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_single_line ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_cow_static_vs_owned ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_disabled_when_not_enabled ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_disabled_in_non_tty_environment ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_finalize_workflow_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_refactor_iteration_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_message_updates_on_disabled_spinner ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_reindex_workflow_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_with_dynamic_message ... ok
[INFO] [stdout] test util::spinner::tests::test_start_spinner_returns_disabled_in_non_tty ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_explicitly_disabled_has_no_bar ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_operations_do_not_panic ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_suggest_workflow_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_run_task_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_with_static_message ... ok
[INFO] [stdout] test tests::test_restore_after_customization ... ok
[INFO] [stdout] test tests::test_restore_creates_skills_if_missing ... ok
[INFO] [stdout] test worktree::daemon::tests::build_state_summary_merge_failed ... ok
[INFO] [stdout] test worktree::daemon::tests::build_state_summary_no_duplicates ... ok
[INFO] [stdout] test worktree::daemon::tests::build_state_summary_single_merged ... ok
[INFO] [stdout] test worktree::daemon::tests::build_state_summary_mixed_states ... ok
[INFO] [stdout] test worktree::daemon::tests::cleanup_stale_removes_stale_socket ... ok
[INFO] [stdout] test worktree::daemon::tests::build_conflict_prompt_contains_context ... ok
[INFO] [stdout] test worktree::daemon::tests::build_conflict_prompt_truncates_large_diff ... ok
[INFO] [stdout] test worktree::daemon::tests::cleanup_stale_noop_when_nothing_exists ... ok
[INFO] [stdout] test worktree::daemon::tests::cleanup_stale_removes_dead_pid_file ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_merge_order_breaks_tie_by_completion_time ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_merge_order_empty ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_merge_order_prefers_less_overlap ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_merge_order_single_worktree ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_high_risk ... ok
[INFO] [stdout] test worktree::daemon::tests::cleanup_stale_preserves_live_pid ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_ignores_non_active ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_low_risk ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_medium_risk ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_multiple_pairs ... ok
[INFO] [stdout] test worktree::daemon::tests::compute_overlaps_no_overlap ... ok
[INFO] [stdout] test tests::test_restore_idempotency ... ok
[INFO] [stdout] test worktree::daemon::tests::daemon_registers_and_unregisters_in_state ... ok
[INFO] [stdout] test tests::test_restore_preserves_existing_skills ... ok
[INFO] [stdout] test worktree::daemon::tests::is_healthy_false_when_no_daemon ... ok
[INFO] [stdout] test worktree::daemon::tests::is_healthy_false_when_pid_only ... ok
[INFO] [stdout] test worktree::daemon::tests::is_process_alive_returns_false_for_invalid_pid ... ok
[INFO] [stdout] test worktree::daemon::tests::daemon_exits_on_idle_timeout ... ok
[INFO] [stdout] test worktree::daemon::tests::is_process_alive_returns_true_for_self ... ok
[INFO] [stdout] test worktree::daemon::tests::is_running_false_when_no_pid_file ... ok
[INFO] [stdout] test prd::index::tests::test_scan_prds_from_actual_directory ... ok
[INFO] [stdout] test worktree::daemon::tests::list_conflict_files_empty_when_no_conflicts ... ok
[INFO] [stdout] test worktree::daemon::tests::manual_merge_fails_for_unknown_prd ... ok
[INFO] [stdout] test worktree::daemon::tests::manual_merge_rejects_merged_worktree ... ok
[INFO] [stdout] test worktree::daemon::tests::pid_file_write_read_remove ... ok
[INFO] [stdout] test worktree::daemon::tests::process_message_heartbeat_returns_ok ... ok
[INFO] [stdout] test worktree::daemon::tests::commit_state_skips_when_no_changes ... ok
[INFO] [stdout] test worktree::daemon::tests::process_message_ignores_unknown_worktree ... ok
[INFO] [stdout] test worktree::daemon::tests::process_message_run_completed_updates_status ... ok
[INFO] [stdout] test worktree::daemon::tests::process_message_run_failed_marks_abandoned ... ok
[INFO] [stdout] test worktree::daemon::tests::read_pid_returns_none_when_no_file ... ok
[INFO] [stdout] test worktree::daemon::tests::process_message_run_started_updates_state ... ok
[INFO] [stdout] test worktree::daemon::tests::commit_state_stages_and_commits_in_git_repo ... ok
[INFO] [stdout] test worktree::daemon::tests::integrate_target_into_branch_rebase_succeeds ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_completes_dead_process ... ok
[INFO] [stdout] test worktree::daemon::tests::daemon_creates_pid_and_socket_then_cleans_up ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_multiple_issues ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_marks_orphaned_worktree ... ok
[INFO] [stdout] test worktree::daemon::tests::run_uat_returns_false_for_nonexistent_dir ... ok
[INFO] [stdout] test worktree::daemon::tests::attempt_merge_without_runner_marks_conflicted ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_skips_already_merged_and_abandoned ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_noop_when_clean ... ok
[INFO] [stdout] test worktree::daemon::tests::integrate_target_into_branch_falls_back_to_merge ... ok
[INFO] [stdout] test worktree::daemon::tests::tier2_auto_merge_skips_when_no_completed ... ok
[INFO] [stdout] test worktree::daemon::tests::update_wt_status_records_event ... ok
[INFO] [stdout] test worktree::daemon::tests::update_wt_status_with_detail ... ok
[INFO] [stdout] test worktree::daemon::tests::validate_mergeable_status_accepts_valid_states ... ok
[INFO] [stdout] test worktree::daemon::tests::validate_mergeable_status_rejects_invalid_states ... ok
[INFO] [stdout] test worktree::daemon::tests::recover_stale_state_resets_partial_merge_no_operation ... ok
[INFO] [stdout] test worktree::daemon::tests::integrate_target_into_branch_conflicts_both_fail ... ok
[INFO] [stdout] test worktree::daemon::tests::stage_all_and_list_in_clean_repo ... ok
[INFO] [stdout] test worktree::daemon::tests::merge_into_target_succeeds_with_ff ... ok
[INFO] [stdout] test worktree::git::tests::add_file_stages_specific_file ... ok
[INFO] [stdout] test worktree::git::tests::commit_creates_commit_with_message ... ok
[INFO] [stdout] test worktree::git::tests::checkout_switches_branch ... ok
[INFO] [stdout] test worktree::git::tests::current_branch_returns_name ... ok
[INFO] [stdout] test worktree::git::tests::create_branch_is_idempotent ... ok
[INFO] [stdout] test worktree::daemon::tests::smart_merge_into_target_uses_main_for_checkout ... ok
[INFO] [stdout] test worktree::git::tests::create_and_list_worktree ... ok
[INFO] [stdout] test worktree::daemon::tests::start_conflicting_merge_clean_rebase_returns_true ... ok
[INFO] [stdout] test worktree::daemon::tests::attempt_merge_gates_on_uat_failure ... ok
[INFO] [stdout] test worktree::git::tests::git_output_returns_error_on_bad_command ... ok
[INFO] [stdout] test worktree::git::tests::is_linked_worktree_false_for_main ... ok
[INFO] [stdout] test worktree::git::tests::is_merge_in_progress_false_normally ... ok
[INFO] [stdout] test worktree::git::tests::delete_branch_removes_branch ... ok
[INFO] [stdout] test worktree::daemon::tests::manual_merge_triggers_merge_pipeline_for_prd ... ok
[INFO] [stdout] test worktree::git::tests::has_staged_changes_detects_changes ... ok
[INFO] [stdout] test worktree::daemon::tests::resolve_conflicts_with_mock_runner_succeeds ... ok
[INFO] [stdout] test worktree::git::tests::is_rebase_in_progress_false_normally ... ok
[INFO] [stdout] test worktree::git::tests::is_linked_worktree_true_for_worktree ... ok
[INFO] [stdout] test worktree::git::tests::repo_name_extracts_final_component ... ok
[INFO] [stdout] test worktree::git::tests::repo_name_handles_trailing_slash ... ok
[INFO] [stdout] test worktree::git::tests::merge_ff_only_fails_when_diverged ... ok
[INFO] [stdout] test worktree::git::tests::rebase_onto_fails_with_conflicts_and_abort_recovers ... ok
[INFO] [stdout] test worktree::git::tests::rebase_onto_succeeds_with_no_conflicts ... ok
[INFO] [stdout] test worktree::git::tests::worktree_branch_name_handles_edge_cases ... ok
[INFO] [stdout] test worktree::git::tests::worktree_branch_name_strips_prefix_and_zeros ... ok
[INFO] [stdout] test worktree::git::tests::worktree_path_is_sibling ... ok
[INFO] [stdout] test worktree::git::tests::resolve_main_worktree_from_linked ... ok
[INFO] [stdout] test worktree::ipc::tests::client_server_all_message_types ... ok
[INFO] [stdout] test worktree::ipc::tests::client_server_roundtrip ... ok
[INFO] [stdout] test worktree::ipc::tests::is_daemon_reachable_false_when_no_socket ... ok
[INFO] [stdout] test worktree::ipc::tests::client_server_error_response ... ok
[INFO] [stdout] test worktree::ipc::tests::nonblocking_accept_returns_would_block ... ok
[INFO] [stdout] test worktree::ipc::tests::server_binds_and_creates_socket_file ... ok
[INFO] [stdout] test worktree::ipc::tests::server_cleans_up_socket_on_drop ... ok
[INFO] [stdout] test worktree::ipc::tests::server_removes_stale_socket_on_bind ... ok
[INFO] [stdout] test worktree::ipc::tests::socket_path_resolves_correctly ... ok
[INFO] [stdout] test worktree::git::tests::merge_ff_only_succeeds_when_fast_forward ... ok
[INFO] [stdout] test worktree::state::tests::ensure_dir_creates_nested_path ... ok
[INFO] [stdout] test worktree::state::tests::lock_file_created_on_lock ... ok
[INFO] [stdout] test worktree::state::tests::modify_propagates_closure_error ... ok
[INFO] [stdout] test worktree::state::tests::modify_applies_closure ... ok
[INFO] [stdout] test worktree::ipc::tests::is_daemon_reachable_true_when_listening ... ok
[INFO] [stdout] test worktree::state::tests::read_locked_returns_consistent_state ... ok
[INFO] [stdout] test worktree::state::tests::read_returns_default_when_no_file ... ok
[INFO] [stdout] test worktree::state::tests::new_resolves_correct_path ... ok
[INFO] [stdout] test worktree::state::tests::try_modify_succeeds_when_not_locked ... ok
[INFO] [stdout] test worktree::state::tests::write_then_read_roundtrip ... ok
[INFO] [stdout] test worktree::types::tests::default_daemon_config ... ok
[INFO] [stdout] test worktree::types::tests::default_state_has_version_1 ... ok
[INFO] [stdout] test worktree::types::tests::event_type_display ... ok
[INFO] [stdout] test worktree::types::tests::ipc_message_serializes_with_type_tag ... ok
[INFO] [stdout] test worktree::types::tests::ipc_response_helpers ... ok
[INFO] [stdout] test worktree::types::tests::minimal_yaml_deserializes_with_defaults ... ok
[INFO] [stdout] test worktree::state::tests::write_is_atomic_via_rename ... ok
[INFO] [stdout] test worktree::types::tests::overlap_risk_display ... ok
[INFO] [stdout] test worktree::types::tests::worktree_status_display ... ok
[INFO] [stdout] test worktree::types::tests::state_roundtrips_through_yaml ... ok
[INFO] [stdout] test worktree::state::tests::multiple_sequential_modifies ... ok
[INFO] [stdout] test worktree::git::tests::modified_files_empty_when_same ... ok
[INFO] [stdout] test worktree::git::tests::modified_files_detects_changes ... ok
[INFO] [stdout] test worktree::git::tests::remove_worktree_cleans_up ... ok
[INFO] [stdout] test worktree::git::tests::stage_all_stages_new_files ... ok
[INFO] [stdout] test worktree::git::tests::merge_branch_succeeds ... ok
[INFO] [stdout] test worktree::git::tests::resolve_main_worktree_from_main ... ok
[INFO] [stdout] test worktree::git::tests::list_conflict_files_returns_conflicting_paths ... ok
[INFO] [stdout] test worktree::daemon::tests::attempt_merge_with_runner_resolves_conflicts_successfully ... ok
[INFO] [stdout] test worktree::daemon::tests::attempt_merge_with_runner_attempts_resolution ... ok
[INFO] [stdout] test worktree::daemon::tests::daemon_responds_to_programmatic_shutdown ... ok
[INFO] [stdout] test worktree::daemon::tests::is_healthy_true_when_running_and_reachable ... ok
[INFO] [stdout] test worktree::daemon::tests::tier1_heartbeat_updates_liveness_and_overlaps ... ok
[INFO] [stdout] test worktree::daemon::tests::daemon_accepts_ipc_heartbeat ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 757 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.48s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "74ee6a5768a837ff9cfe76f49beebadea9d0030c89dcba58658745e85336cc4a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "74ee6a5768a837ff9cfe76f49beebadea9d0030c89dcba58658745e85336cc4a", kill_on_drop: false }`
[INFO] [stdout] 74ee6a5768a837ff9cfe76f49beebadea9d0030c89dcba58658745e85336cc4a
