[INFO] fetching crate microralph 0.9.0...
[INFO] testing microralph-0.9.0 against master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[INFO] extracting crate microralph 0.9.0 into /workspace/builds/worker-3-tc1/source
[INFO] removed /workspace/builds/worker-3-tc1/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate microralph 0.9.0
[INFO] finished tweaking crates.io crate microralph 0.9.0
[INFO] tweaked toml for crates.io crate microralph 0.9.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate microralph 0.9.0 on toolchain f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate microralph 0.9.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded is_ci v1.2.0
[INFO] [stderr]   Downloaded which v8.0.0
[INFO] [stderr]   Downloaded owo-colors v4.2.3
[INFO] [stderr]   Downloaded clap_builder v4.5.57
[INFO] [stderr]   Downloaded supports-color v2.1.0
[INFO] [stderr]   Downloaded clap v4.5.57
[INFO] [stderr]   Downloaded supports-color v3.0.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f0633f5802623b6fbfbae053c26a0b74a2bbf3bf5abd4885f8bc3eeecfe83969
[INFO] running `Command { std: "docker" "start" "-a" "f0633f5802623b6fbfbae053c26a0b74a2bbf3bf5abd4885f8bc3eeecfe83969", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f0633f5802623b6fbfbae053c26a0b74a2bbf3bf5abd4885f8bc3eeecfe83969", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f0633f5802623b6fbfbae053c26a0b74a2bbf3bf5abd4885f8bc3eeecfe83969", kill_on_drop: false }`
[INFO] [stdout] f0633f5802623b6fbfbae053c26a0b74a2bbf3bf5abd4885f8bc3eeecfe83969
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e75ff45d2ef587546cb84176a2d00d2c1bd658099b5c7e44e9d738a5788a0cb2
[INFO] running `Command { std: "docker" "start" "-a" "e75ff45d2ef587546cb84176a2d00d2c1bd658099b5c7e44e9d738a5788a0cb2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling owo-colors v4.2.3
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling console v0.16.2
[INFO] [stderr]    Compiling supports-color v2.1.0
[INFO] [stderr]    Compiling toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling indicatif v0.18.3
[INFO] [stderr]    Compiling which v8.0.0
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml v0.9.11+spec-1.1.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[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 thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[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.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.03s
[INFO] running `Command { std: "docker" "inspect" "e75ff45d2ef587546cb84176a2d00d2c1bd658099b5c7e44e9d738a5788a0cb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e75ff45d2ef587546cb84176a2d00d2c1bd658099b5c7e44e9d738a5788a0cb2", kill_on_drop: false }`
[INFO] [stdout] e75ff45d2ef587546cb84176a2d00d2c1bd658099b5c7e44e9d738a5788a0cb2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c36d5f8165dc6fc563d821b1ae27be590067e7b81a761505ced4f09110ed1acd
[INFO] running `Command { std: "docker" "start" "-a" "c36d5f8165dc6fc563d821b1ae27be590067e7b81a761505ced4f09110ed1acd", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling which v8.0.0
[INFO] [stderr]    Compiling microralph v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.32s
[INFO] running `Command { std: "docker" "inspect" "c36d5f8165dc6fc563d821b1ae27be590067e7b81a761505ced4f09110ed1acd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c36d5f8165dc6fc563d821b1ae27be590067e7b81a761505ced4f09110ed1acd", kill_on_drop: false }`
[INFO] [stdout] c36d5f8165dc6fc563d821b1ae27be590067e7b81a761505ced4f09110ed1acd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 864bae6b4bb859f0492e385a717e07fd7f006e0e2b70ba8ed101eb644c193fdb
[INFO] running `Command { std: "docker" "start" "-a" "864bae6b4bb859f0492e385a717e07fd7f006e0e2b70ba8ed101eb644c193fdb", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mr-fa4d6e29556ca4db)
[INFO] [stdout] 
[INFO] [stdout] running 584 tests
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_initializes_if_needed ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_config_defaults ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_generate ... 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_reconstruct_skips_init_if_exists ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_full_bootstrap_flow ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_plan_prompt ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_summarize_plan ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_plan_generated ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_full_workflow_with_index_regeneration ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_with_codespaces_var ... ok
[INFO] [stdout] test commands::devcontainer::tests::test_is_dev_container_prioritizes_env_vars_over_filesystem ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_runner_failure ... ok
[INFO] [stdout] test commands::graph::tests::test_ascii_config_new ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_circular_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_chain_dependencies ... 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::bootstrap::tests::test_count_prd_files ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_workflow ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_plan ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_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_deduplicates_missing_refs ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt_no_existing_prds ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_idempotent_with_existing_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_edges_sorted ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_empty_depends_on_array ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_creates_constitution ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_self_referential_dependency ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_no_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_nodes_sorted_by_id ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_with_missing_dependency ... ok
[INFO] [stdout] test commands::graph::tests::test_dot_node_id_removes_hyphens ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_empty_repository ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_with_valid_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_mermaid_output_with_real_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_ascii_output_with_real_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_build_from_real_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_complex_dependency_chain ... ok
[INFO] [stdout] test commands::graph::tests::test_dot_config_new ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_missing_dependency_warning ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_dot_output_with_real_prds ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_node_missing ... ok
[INFO] [stdout] test commands::graph::tests::test_mermaid_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_edge_count ... 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_chain_shows_all_levels ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_mixed_valid_and_missing_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_with_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_with_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_escapes_quotes_in_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_mixed_valid_and_missing_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_with_missing_refs ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_with_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_config_left_right ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_chain_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_config_left_right ... ok
[INFO] [stdout] test commands::graph::tests::test_render_dot_chain_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_ascii_multiple_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_config_no_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_empty_graph ... 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_single_node_no_deps ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_truncates_long_titles ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_escapes_quotes_in_titles ... ok
[INFO] [stdout] test commands::init::tests::test_adapt_language_prompt_placeholders ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_missing_refs ... ok
[INFO] [stdout] test commands::init::tests::test_constitution_template_has_under_10_rules ... ok
[INFO] [stdout] test commands::init::tests::test_constitution_template_content ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_multiple_dependencies ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_java ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_node ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_priority ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_python ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_go ... ok
[INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_dependencies ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_none ... ok
[INFO] [stdout] test commands::graph::tests::test_graph_integration_with_reconstructed_prds ... ok
[INFO] [stdout] test commands::init::tests::test_ensure_initialized_partial_init_includes_suggestion ... ok
[INFO] [stdout] test commands::init::tests::test_ensure_initialized_no_mr_dir_generic_message ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_idempotent ... ok
[INFO] [stdout] test commands::init::tests::test_init_preserves_existing_files ... 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_prompts_contain_placeholders ... ok
[INFO] [stdout] test commands::init::tests::test_prd_template_content ... ok
[INFO] [stdout] test commands::init::tests::test_run_task_prompt_includes_skills_sections ... ok
[INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_basic ... 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_refactor_loop_early_termination ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_first_number ... ok
[INFO] [stdout] test commands::refactor::tests::test_is_preview_complete ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_headers_only ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_long_text ... ok
[INFO] [stdout] test commands::reindex::tests::test_extract_summary_empty_body ... 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::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_no_commit_true ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_creates_dir_and_manifest ... ok
[INFO] [stdout] test commands::init::tests::test_detect_language_rust ... 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::init::tests::test_is_initialized ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt ... ok
[INFO] [stdout] test commands::init::tests::test_init_result_created_paths ... ok
[INFO] [stdout] test commands::init::tests::test_init_creates_structure ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_allow_add_task_false ... ok
[INFO] [stdout] test commands::init::tests::test_init_is_idempotent ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_creates_prds_from_git_history ... ok
[INFO] [stdout] test commands::init::tests::test_init_skills_preserves_existing ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_commit_true ... ok
[INFO] [stdout] test commands::run::tests::test_constitution_violation_logging ... 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_allow_add_task_true ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_simple ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_injected ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_all_done ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_missing ... ok
[INFO] [stdout] test commands::reindex::tests::test_reindex_integration_depends_on_autofix ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_in_text ... ok
[INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_in_progress ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_with_trailing_content ... 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_commit_false ... ok
[INFO] [stdout] test commands::run::tests::test_build_uat_verify_prompt ... ok
[INFO] [stdout] test commands::run::tests::test_extract_prd_id_none ... ok
[INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_default ... ok
[INFO] [stdout] test commands::reindex::tests::test_reindex_integration_depends_on_with_existing_deps ... ok
[INFO] [stdout] test commands::run::tests::test_parse_opt_out ... 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_run_task_all_done_and_verified ... ok
[INFO] [stdout] test commands::run::tests::test_uat_loop_convergence_all_uats_verified ... ok
[INFO] [stdout] test commands::run::tests::test_find_prd_by_id_not_found ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_requires_prd_id ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_all_done_no_uats ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_without_no_commit_sends_commit_instructions ... 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_pick_prd_no_active_prd ... ok
[INFO] [stdout] test commands::run::tests::test_uat_result_has_new_tasks_field_default ... ok
[INFO] [stdout] test commands::status::tests::test_extract_last_history ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_all_done_with_unverified_uats ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_explicit_prd ... ok
[INFO] [stdout] test commands::run::tests::test_find_prd_by_id ... ok
[INFO] [stdout] test commands::status::tests::test_extract_last_history_none ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_all_verified_by_runner ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_with_no_commit_sends_correct_prompt ... ok
[INFO] [stdout] test commands::status::tests::test_format_status ... ok
[INFO] [stdout] test commands::status::tests::test_next_task_skips_draft_prds ... ok
[INFO] [stdout] test commands::status::tests::test_format_status_empty ... ok
[INFO] [stdout] test commands::run::tests::test_run_task_success ... ok
[INFO] [stdout] test commands::status::tests::test_status_with_history ... ok
[INFO] [stdout] test commands::suggest::tests::test_build_suggestion_prompt ... ok
[INFO] [stdout] test commands::run::tests::test_pick_prd_selects_active_with_tasks ... ok
[INFO] [stdout] test commands::status::tests::test_get_status_with_prds ... ok
[INFO] [stdout] test commands::suggest::tests::test_generate_slug ... ok
[INFO] [stdout] test commands::run::tests::test_uat_loop_breaks_early_when_new_tasks_detected ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_integration_flow ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_history_appending ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_repository_structure ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_invalid ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_complete ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies_empty ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_opt_out ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_partial ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_suggestions_empty_output ... 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_incomplete ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_whitespace ... ok
[INFO] [stdout] test commands::suggest::tests::test_is_numbered_entry_start ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_whitespace ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggest_parses_five_suggestions ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggestion_flows_to_prd_new_with_context ... 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_no_frontmatter ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_constitution_with_invalid_frontmatter ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_constitution_with_valid_frontmatter ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_missing_delimiter ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_invalid_yaml ... ok
[INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_valid ... ok
[INFO] [stdout] test config::constitution::tests::test_constitution_missing_includes_suggestion ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_codebase ... ok
[INFO] [stdout] test config::constitution::tests::test_constitution_edit ... ok
[INFO] [stdout] test commands::status::tests::test_find_next_task ... ok
[INFO] [stdout] test config::constitution::tests::test_parse_questions_for_constitution ... ok
[INFO] [stdout] test config::tests::test_config_default ... ok
[INFO] [stdout] test config::tests::test_config_load_empty_file ... ok
[INFO] [stdout] test config::tests::test_config_load_full ... 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_config_load_malformed_includes_suggestion ... ok
[INFO] [stdout] test commands::status::tests::test_get_status_empty ... ok
[INFO] [stdout] test config::tests::test_config_load_missing_file ... ok
[INFO] [stdout] test config::tests::test_default_config_parses ... 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_model_cli_override ... ok
[INFO] [stdout] test commands::run::tests::test_uat_verification_loop_max_iterations ... 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::suggest::tests::test_get_recent_commits_no_git ... ok
[INFO] [stdout] test config::tests::test_effective_runner_default ... ok
[INFO] [stdout] test config::tests::test_load_constitution_exists ... ok
[INFO] [stdout] test config::tests::test_load_constitution_missing ... ok
[INFO] [stdout] test config::tests::test_effective_no_commit_cli_override ... ok
[INFO] [stdout] test config::tests::test_effective_runner_config_value ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_with_separator ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_case_insensitive_id_lookup ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_valid ... 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_interactive_flow ... ok
[INFO] [stdout] test config::tests::test_config_load_with_no_commit ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_aborts_on_interrupted_signal ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_prd_path_in_prompt ... ok
[INFO] [stdout] test commands::suggest::tests::test_suggest_integration_with_mock_runner ... ok
[INFO] [stdout] test commands::graph::tests::test_build_graph_from_actual_repo ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_aborts_on_process_failure ... 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_old_qa_loop_code_removed ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_no_context ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_constitution_in_prompt ... ok
[INFO] [stdout] test prd::finalize::tests::test_append_to_prd_preserves_existing ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_context_in_interactive_prompt ... ok
[INFO] [stdout] test prd::finalize::tests::test_format_completed_tasks ... ok
[INFO] [stdout] test prd::finalize::tests::test_constitution_prd_finalize ... ok
[INFO] [stdout] test prd::finalize::tests::test_format_completed_tasks_empty ... ok
[INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_with_depends_on_inference ... 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::edit::tests::test_edit_prd_existing_prds_in_prompt ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_prd_content_in_prompt ... ok
[INFO] [stdout] test prd::finalize::tests::test_build_finalize_prompt ... 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_in_progress ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_no_tasks ... ok
[INFO] [stdout] test prd::edit::tests::test_find_prd_not_found_includes_suggestion ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_blocked ... 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_append_to_prd ... ok
[INFO] [stdout] test prd::finalize::tests::test_update_prd_status_preserves_tasks ... 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_tasks_done_with_incomplete ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_unverified ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_all_verified ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_uats_skipped_with_unverified_fails ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_multiple_incomplete_tasks ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_all_unverified_uats ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_deduplicates ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_uats_mixed_verified_and_skipped ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_multiple ... ok
[INFO] [stdout] test prd::index::tests::test_extract_prd_references_single ... ok
[INFO] [stdout] test prd::index::tests::test_generate_cross_references_with_refs ... ok
[INFO] [stdout] test prd::index::tests::test_generate_cross_references_no_refs ... 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_extract_prd_references_none ... 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_extract_prd_references_excludes_self ... ok
[INFO] [stdout] test commands::suggest::tests::test_detect_todo_comments_no_git ... ok
[INFO] [stdout] test prd::index::tests::test_generate_dependencies_with_deps ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_fails_on_corrupted_file_after_session ... ok
[INFO] [stdout] test prd::finalize::tests::test_validate_multiple_unverified_uats ... ok
[INFO] [stdout] test prd::index::tests::test_generate_index_with_prds ... 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_extracts_references ... ok
[INFO] [stdout] test prd::edit::tests::test_find_prd_not_found ... ok
[INFO] [stdout] test prd::finalize::tests::test_prd_not_found_error_includes_suggestion ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_progress ... ok
[INFO] [stdout] test prd::edit::tests::test_edit_prd_validates_and_regenerates_index ... ok
[INFO] [stdout] test commands::suggest::tests::test_parse_title_description_no_separator ... ok
[INFO] [stdout] test prd::index::tests::test_scan_prds_nonexistent_directory ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_interrupted_signal ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_placeholder_when_agent_doesnt_write ... ok
[INFO] [stdout] test prd::finalize::tests::test_update_prd_status_to_done ... ok
[INFO] [stdout] test prd::parser::tests::test_missing_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::new::tests::test_generate_next_prd_id_empty ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_all_prd_statuses ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_process_failure ... ok
[INFO] [stdout] test prd::new::tests::test_synthesis_phase_code_removed ... ok
[INFO] [stdout] test prd::new::tests::test_prd_new_next_id_and_path_in_prompt ... ok
[INFO] [stdout] test prd::new::tests::test_generate_next_prd_id_with_existing ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_missing_frontmatter ... 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_unclosed_frontmatter ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_prd_basic ... ok
[INFO] [stdout] test prd::new::tests::test_create_prd_single_phase_agent_writes_file ... ok
[INFO] [stdout] test prd::new::tests::test_old_qa_loop_code_removed ... ok
[INFO] [stdout] test prd::index::tests::test_prd_summary_extracts_depends_on ... ok
[INFO] [stdout] test prd::parser::tests::test_serialize_minimal_prd ... ok
[INFO] [stdout] test prd::new::tests::test_existing_prds_injected_into_interactive_prompt ... ok
[INFO] [stdout] test prd::parser::tests::test_parse_complex_prd ... ok
[INFO] [stdout] test prd::new::tests::test_constitution_in_interactive_prompt ... ok
[INFO] [stdout] test prd::parser::tests::test_invalid_yaml_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::types::tests::test_prd_next_task ... ok
[INFO] [stdout] test prd::parser::tests::test_roundtrip_preserves_body ... ok
[INFO] [stdout] test prd::parser::tests::test_roundtrip_preserves_frontmatter ... ok
[INFO] [stdout] test prd::new::tests::test_prd_new_context_in_interactive_prompt ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_default_is_unverified ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_display ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_serde_roundtrip ... ok
[INFO] [stdout] test prd::types::tests::test_uat_status_deserialize_skipped_from_yaml ... ok
[INFO] [stdout] test prd::types::tests::test_prd_status_display ... ok
[INFO] [stdout] test prd::parser::tests::test_serialize_prd ... ok
[INFO] [stdout] test prd::parser::tests::test_unclosed_frontmatter_includes_suggestion ... ok
[INFO] [stdout] test prd::types::tests::test_acceptance_test_with_skipped_uat_roundtrip ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_each_with_index ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_false ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_empty_template ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_each ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_missing ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_string_empty ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_string_nonempty ... ok
[INFO] [stdout] test prd::types::tests::test_task_status_display ... ok
[INFO] [stdout] test prd::types::tests::test_prd_incomplete_tasks ... 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_if_true ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_simple_placeholder ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_with_else_false ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_if_with_else_true ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_no_placeholders ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_real_world_prompt ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_whitespace_in_placeholder ... ok
[INFO] [stdout] test prompt::loader::tests::test_get_default_prompt_all_kinds ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_from_iter ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_with_fallback_convenience ... ok
[INFO] [stdout] test prompt::expand::tests::test_expand_unknown_placeholder_unchanged ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_insert ... ok
[INFO] [stdout] test prompt::expand::tests::test_placeholder_context_len_and_empty ... 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_prompt_loader_load ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_no_init ... ok
[INFO] [stdout] test prompt::loader::tests::test_load_prompt_convenience ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_all_exist ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_exists ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_new ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_with_fallback ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_without_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 prompt::types::tests::test_prompt_kind_filename ... 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_missing_prompts ... ok
[INFO] [stdout] test prompt::types::tests::test_prompt_kind_all ... ok
[INFO] [stdout] test runner::claude::tests::test_build_args_with_model ... ok
[INFO] [stdout] test prompt::types::tests::test_prompt_kind_display ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_manual_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_yolo_mode ... ok
[INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_missing ... ok
[INFO] [stdout] test runner::claude::tests::test_build_interactive_args_with_model ... ok
[INFO] [stdout] test runner::claude::tests::test_claude_config_builder ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_missing_result_field ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_from_json ... 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_missing_fields ... ok
[INFO] [stdout] test runner::claude::tests::test_runner_default ... 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_with_empty_result ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_preserves_multiline_result ... ok
[INFO] [stdout] test runner::claude::tests::test_parse_usage_from_json ... ok
[INFO] [stdout] test runner::claude::tests::test_extract_result_from_invalid_json ... ok
[INFO] [stdout] test runner::claude::tests::test_claude_config_default ... ok
[INFO] [stdout] test runner::claude::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_build_command_sets_working_dir ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_full_json ... ok
[INFO] [stdout] test runner::claude::tests::test_parse_usage_returns_none ... 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 runner::cli_runner::tests::test_extract_json_result_valid ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_format_command_display ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_invalid_json ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_no_usage ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_unsupported_by_default ... 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_empty ... 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_multiple_lines ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_single_line ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_signal_name_known_signals ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_signal_name_unknown_signal ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_manual_mode ... ok
[INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_plain_text ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_with_model ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_without_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_with_model ... ok
[INFO] [stdout] test runner::codex::tests::test_build_args_yolo_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_build_interactive_args_yolo_mode ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_build_command_removes_node_no_warnings ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_check_cli_available_cargo ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_config_builder ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_config_default ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_found ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_cli_echo ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_not_found_falls_back ... 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_check_cli_available_nonexistent ... ok
[INFO] [stdout] test runner::codex::tests::test_codex_runner_with_config ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_signal_interrupted ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_success ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_missing_result_field ... ok
[INFO] [stdout] test runner::codex::tests::test_format_command_display_no_model ... ok
[INFO] [stdout] test runner::codex::tests::test_format_command_display ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_no_usage_object ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_from_json ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_returns_none ... ok
[INFO] [stdout] test runner::codex::tests::test_post_process_output_plain_text ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_from_json ... ok
[INFO] [stdout] test runner::codex::tests::test_runner_default ... ok
[INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_failure ... ok
[INFO] [stdout] test runner::codex::tests::test_parse_usage_missing_fields ... ok
[INFO] [stdout] test runner::codex::tests::test_extract_result_from_invalid_json ... ok
[INFO] [stdout] test runner::codex::tests::test_post_process_output_extracts_result ... ok
[INFO] [stdout] test runner::codex::tests::test_runner_name ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_missing_result_field ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_empty_result ... ok
[INFO] [stdout] test runner::codex::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_plain_text ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_allow_all_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_with_full_json ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_manual_mode ... ok
[INFO] [stdout] test runner::codex::tests::test_strip_usage_stats_preserves_multiline_result ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_with_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_yolo_mode ... 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_copilot_config_builder ... ok
[INFO] [stdout] test runner::copilot::tests::test_copilot_config_default ... ok
[INFO] [stdout] test commands::suggest::tests::test_get_recent_commits_with_git ... 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::copilot::tests::test_build_interactive_args_with_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_runner_name ... ok
[INFO] [stdout] test runner::copilot::tests::test_strip_usage_stats_no_stats ... ok
[INFO] [stdout] test runner::copilot::tests::test_runner_default ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_default_response_when_empty ... ok
[INFO] [stdout] test runner::copilot::tests::test_with_model_constructor ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_add_response ... ok
[INFO] [stdout] test runner::copilot::tests::test_build_args_without_model ... ok
[INFO] [stdout] test runner::copilot::tests::test_strip_usage_stats ... 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_execute_interactive_returns_ok ... 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_interactive_prompts ... 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::types::tests::test_usage_info_aggregate_into_some ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_with_none_new ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_records_prompts ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_into_none ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_returns_responses_in_order ... ok
[INFO] [stdout] test runner::types::tests::test_runner_error_is_interrupted ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_has_data ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_both_none ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_both_none ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_both_some ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_remaining_responses ... ok
[INFO] [stdout] test runner::types::tests::test_usage_info_merge_partial ... ok
[INFO] [stdout] test runner::mock::tests::test_mock_runner_omits_usage_info ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_language ... 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 ... 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_mermaid_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_init ... ok
[INFO] [stdout] test tests::test_args_parse_graph_dot_with_all_flags ... ok
[INFO] [stdout] test tests::test_args_parse_init_with_language ... ok
[INFO] [stdout] test tests::test_args_parse_graph_ascii_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_list ... ok
[INFO] [stdout] test tests::test_args_parse_new ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_model ... ok
[INFO] [stdout] test tests::test_args_parse_bootstrap_with_scaffold ... ok
[INFO] [stdout] test tests::test_args_parse_graph_mermaid_with_lr ... ok
[INFO] [stdout] test tests::test_args_parse_list_with_done_flag ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize_no_commit ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize ... ok
[INFO] [stdout] test tests::test_args_parse_prd_finalize_with_options ... ok
[INFO] [stdout] test tests::test_args_parse_prd_new_with_model ... ok
[INFO] [stdout] test tests::test_args_parse_no_command ... ok
[INFO] [stdout] test tests::test_args_parse_refactor_with_all_flags ... ok
[INFO] [stdout] test tests::test_args_parse_run_default_stream_off ... ok
[INFO] [stdout] test tests::test_args_parse_refactor_defaults ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_disallow_skip_uat ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_positional_prd ... ok
[INFO] [stdout] test tests::test_args_parse_prd_new ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_disallow_add_task ... ok
[INFO] [stdout] test tests::test_args_parse_run_default_disallow_flags_off ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format_megabytes ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_runner ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_stream ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_model ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_full_id ... ok
[INFO] [stdout] test tests::test_args_parse_run_with_runner_codex ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_number ... ok
[INFO] [stdout] test tests::test_args_parse_status ... 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_verbose_flag ... ok
[INFO] [stdout] test tests::test_devcontainer_generate_with_mock_runner ... ok
[INFO] [stdout] test tests::test_normalize_prd_id_fallback ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format ... ok
[INFO] [stdout] test util::colors::tests::test_error_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::changelog::tests::test_changelog_template_format ... ok
[INFO] [stdout] test util::colors::tests::test_info_header_dim_are_identity_in_non_tty ... ok
[INFO] [stdout] test tests::test_args_parse_run_without_positional_prd ... ok
[INFO] [stdout] test util::colors::tests::test_question_has_emoji_and_styling ... ok
[INFO] [stdout] test util::changelog::tests::test_ensure_changelog_exists_creates_new ... 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::colors::tests::test_styling_functions_handle_empty_string ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_markdown_block ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_with_ready_signal ... ok
[INFO] [stdout] test util::changelog::tests::test_ensure_changelog_exists_preserves_existing ... ok
[INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_single_line ... 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_strip_ansi_escapes ... ok
[INFO] [stdout] test util::spinner::tests::test_disabled_spinner_set_message_empty_string ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_clear_is_idempotent ... ok
[INFO] [stdout] test util::colors::tests::test_warning_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::colors::tests::test_success_has_correct_emoji_prefix ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_cow_static_vs_owned ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_disabled_in_non_tty_environment ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_disabled_when_not_enabled ... ok
[INFO] [stdout] test tests::test_restore_preserves_existing_skills ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_message_updates_on_disabled_spinner ... 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_reindex_workflow_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_run_task_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_refactor_iteration_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_suggest_workflow_simulation ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_with_dynamic_message ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_with_static_message ... ok
[INFO] [stdout] test util::spinner::tests::test_start_spinner_returns_disabled_in_non_tty ... ok
[INFO] [stdout] test runner::copilot::tests::test_parse_usage_no_stats ... ok
[INFO] [stdout] test util::spinner::tests::test_spinner_finalize_workflow_simulation ... ok
[INFO] [stdout] test tests::test_restore_fresh ... ok
[INFO] [stdout] test tests::test_restore_creates_skills_if_missing ... ok
[INFO] [stdout] test tests::test_restore_after_customization ... ok
[INFO] [stdout] test tests::test_restore_idempotency ... ok
[INFO] [stdout] test commands::suggest::tests::test_analyze_codebase_includes_tech_debt_and_dependencies ... ok
[INFO] [stdout] test prd::index::tests::test_scan_prds_from_actual_directory ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 584 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "864bae6b4bb859f0492e385a717e07fd7f006e0e2b70ba8ed101eb644c193fdb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "864bae6b4bb859f0492e385a717e07fd7f006e0e2b70ba8ed101eb644c193fdb", kill_on_drop: false }`
[INFO] [stdout] 864bae6b4bb859f0492e385a717e07fd7f006e0e2b70ba8ed101eb644c193fdb
