[INFO] fetching crate microralph 0.9.0... [INFO] testing microralph-0.9.0 against master#d933cf483edf1605142ac6899ff32536c0ad8b22 for pr-150933 [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 d933cf483edf1605142ac6899ff32536c0ad8b22 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "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" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded zmij v1.0.19 [INFO] [stderr] Downloaded supports-color v2.1.0 [INFO] [stderr] Downloaded is_ci v1.2.0 [INFO] [stderr] Downloaded supports-color v3.0.2 [INFO] [stderr] Downloaded owo-colors v4.2.3 [INFO] [stderr] Downloaded clap_lex v0.7.7 [INFO] [stderr] Downloaded unit-prefix v0.5.2 [INFO] [stderr] Downloaded toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Downloaded is-terminal v0.4.17 [INFO] [stderr] Downloaded console v0.16.2 [INFO] [stderr] Downloaded clap v4.5.57 [INFO] [stderr] Downloaded ryu v1.0.22 [INFO] [stderr] Downloaded toml v0.9.11+spec-1.1.0 [INFO] [stderr] Downloaded indicatif v0.18.3 [INFO] [stderr] Downloaded clap_builder v4.5.57 [INFO] [stderr] Downloaded regex-syntax v0.8.9 [INFO] [stderr] Downloaded portable-atomic v1.13.1 [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" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ba6a337922d9d714012e8911ee486e96024596330ef04e634903b47c38a6583b [INFO] running `Command { std: "docker" "start" "-a" "ba6a337922d9d714012e8911ee486e96024596330ef04e634903b47c38a6583b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ba6a337922d9d714012e8911ee486e96024596330ef04e634903b47c38a6583b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba6a337922d9d714012e8911ee486e96024596330ef04e634903b47c38a6583b", kill_on_drop: false }` [INFO] [stdout] ba6a337922d9d714012e8911ee486e96024596330ef04e634903b47c38a6583b [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" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 25f293f242af55d268e3fee293eee3c148565beaa7a973ca836f8af04cf39d6e [INFO] running `Command { std: "docker" "start" "-a" "25f293f242af55d268e3fee293eee3c148565beaa7a973ca836f8af04cf39d6e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling regex-syntax v0.8.9 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling is_ci v1.2.0 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling owo-colors v4.2.3 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling supports-color v3.0.2 [INFO] [stderr] Compiling env_home v0.1.0 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling supports-color v2.1.0 [INFO] [stderr] Compiling console v0.16.2 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling indicatif v0.18.3 [INFO] [stderr] Compiling toml_parser v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling which v8.0.0 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling toml_datetime v0.7.5+spec-1.1.0 [INFO] [stderr] Compiling toml v0.9.11+spec-1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [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_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 26.13s [INFO] running `Command { std: "docker" "inspect" "25f293f242af55d268e3fee293eee3c148565beaa7a973ca836f8af04cf39d6e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "25f293f242af55d268e3fee293eee3c148565beaa7a973ca836f8af04cf39d6e", kill_on_drop: false }` [INFO] [stdout] 25f293f242af55d268e3fee293eee3c148565beaa7a973ca836f8af04cf39d6e [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" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7a3aee05076596533d42eb97d084d58398bf38ef82e6424a4eb2cc9fcf93337a [INFO] running `Command { std: "docker" "start" "-a" "7a3aee05076596533d42eb97d084d58398bf38ef82e6424a4eb2cc9fcf93337a", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling fastrand v2.3.0 [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.35s [INFO] running `Command { std: "docker" "inspect" "7a3aee05076596533d42eb97d084d58398bf38ef82e6424a4eb2cc9fcf93337a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7a3aee05076596533d42eb97d084d58398bf38ef82e6424a4eb2cc9fcf93337a", kill_on_drop: false }` [INFO] [stdout] 7a3aee05076596533d42eb97d084d58398bf38ef82e6424a4eb2cc9fcf93337a [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" "+d933cf483edf1605142ac6899ff32536c0ad8b22" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 616b1854bad7bfc240d06404b4f86a5b21d0a4c05a8215b70b811b9a44e06f82 [INFO] running `Command { std: "docker" "start" "-a" "616b1854bad7bfc240d06404b4f86a5b21d0a4c05a8215b70b811b9a44e06f82", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mr-f1d09e5b94bbca4a) [INFO] [stdout] [INFO] [stdout] running 584 tests [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_config_defaults ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_prds_generated ... ok [INFO] [stdout] test commands::bootstrap::tests::test_count_prd_files ... ok [INFO] [stdout] test commands::bootstrap::tests::test_full_bootstrap_flow ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_plan_generated ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_creates_constitution ... ok [INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_full_workflow_with_index_regeneration ... ok [INFO] [stdout] test commands::bootstrap::tests::test_summarize_plan ... 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_codespaces_var ... 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::bootstrap::tests::test_reconstruct_integration_idempotent_with_existing_prds ... 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::graph::tests::test_build_graph_deduplicates_missing_refs ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_empty_depends_on_array ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_edges_sorted ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_initializes_if_needed ... 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_self_referential_dependency ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_generate ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_with_missing_dependency ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_skips_init_if_exists ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_with_valid_dependencies ... ok [INFO] [stdout] test commands::graph::tests::test_dot_node_id_removes_hyphens ... ok [INFO] [stdout] test commands::graph::tests::test_dot_config_new ... 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::bootstrap::tests::test_bootstrap_reconstruct_workflow ... 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_mermaid_output_with_real_prds ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_multiple_dependencies ... 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_from_summary ... 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_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_graph_integration_missing_dependency_warning ... ok [INFO] [stdout] test commands::graph::tests::test_mermaid_node_id_removes_hyphens ... ok [INFO] [stdout] test commands::graph::tests::test_render_ascii_chain_shows_all_levels ... ok [INFO] [stdout] test commands::graph::tests::test_render_ascii_empty_graph ... ok [INFO] [stdout] test commands::graph::tests::test_render_ascii_config_no_titles ... 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_multiple_dependencies ... ok [INFO] [stdout] test commands::graph::tests::test_render_ascii_single_node_no_deps ... ok [INFO] [stdout] test commands::graph::tests::test_render_ascii_truncates_long_titles ... 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_config_left_right ... ok [INFO] [stdout] test commands::graph::tests::test_render_dot_empty_graph ... ok [INFO] [stdout] test commands::graph::tests::test_render_dot_escapes_quotes_in_titles ... 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_multiple_dependencies ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_runner_failure ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_reconstruct_skips_init_if_exists ... 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_with_dependencies ... ok [INFO] [stdout] test commands::graph::tests::test_render_dot_with_missing_refs ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_chain_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_config_left_right ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_escapes_quotes_in_titles ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_single_node_no_deps ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_multiple_dependencies ... ok [INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt ... ok [INFO] [stdout] test commands::graph::tests::test_render_dot_chain_dependencies ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_mixed_valid_and_missing_deps ... ok [INFO] [stdout] test commands::bootstrap::tests::test_build_plan_prompt ... ok [INFO] [stdout] test commands::graph::tests::test_render_dot_config_no_titles ... ok [INFO] [stdout] test commands::graph::tests::test_graph_integration_empty_repository ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_truncates_long_titles ... ok [INFO] [stdout] test commands::init::tests::test_adapt_language_prompt_placeholders ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_dependencies ... ok [INFO] [stdout] test commands::init::tests::test_constitution_template_has_under_10_rules ... ok [INFO] [stdout] test commands::graph::tests::test_render_mermaid_with_missing_refs ... ok [INFO] [stdout] test commands::init::tests::test_constitution_template_content ... ok [INFO] [stdout] test commands::bootstrap::tests::test_bootstrap_runner_failure_plan ... ok [INFO] [stdout] test commands::bootstrap::tests::test_build_generate_prompt ... ok [INFO] [stdout] test commands::graph::tests::test_graph_integration_with_reconstructed_prds ... ok [INFO] [stdout] test commands::init::tests::test_detect_language_priority ... 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_go ... ok [INFO] [stdout] test commands::init::tests::test_detect_language_none ... ok [INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt_no_existing_prds ... ok [INFO] [stdout] test commands::init::tests::test_detect_language_rust ... ok [INFO] [stdout] test commands::bootstrap::tests::test_build_reconstruct_prompt_includes_existing_prds ... ok [INFO] [stdout] test commands::init::tests::test_detect_language_python ... ok [INFO] [stdout] test commands::init::tests::test_language_build_commands ... ok [INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_creates_prds_from_git_history ... 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_ensure_initialized_no_mr_dir_generic_message ... 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::init::tests::test_init_skills_preserves_existing ... ok [INFO] [stdout] test commands::init::tests::test_ensure_initialized_partial_init_includes_suggestion ... ok [INFO] [stdout] test commands::init::tests::test_prompts_contain_placeholders ... ok [INFO] [stdout] test commands::init::tests::test_init_skills_creates_dir_and_manifest ... ok [INFO] [stdout] test commands::refactor::tests::test_is_no_more_refactors ... ok [INFO] [stdout] test commands::refactor::tests::test_is_preview_complete ... ok [INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_basic ... ok [INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_no_commit_true ... ok [INFO] [stdout] test commands::refactor::tests::test_refactor_loop_early_termination ... ok [INFO] [stdout] test commands::init::tests::test_init_preserves_existing_files ... 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::reindex::tests::test_parse_depends_on_counts ... ok [INFO] [stdout] test commands::reindex::tests::test_extract_summary_long_text ... ok [INFO] [stdout] test commands::init::tests::test_init_skills_idempotent ... ok [INFO] [stdout] test commands::reindex::tests::test_extract_first_number ... 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::refactor::tests::test_build_refactor_prompt_no_commit_false ... ok [INFO] [stdout] test commands::init::tests::test_prompts_are_workflow_focused_no_philosophy ... ok [INFO] [stdout] test commands::reindex::tests::test_parse_link_counts_alternative_format ... ok [INFO] [stdout] test commands::refactor::tests::test_build_refactor_prompt_with_context ... ok [INFO] [stdout] test commands::reindex::tests::test_parse_link_counts_no_matches ... ok [INFO] [stdout] test commands::init::tests::test_init_creates_structure ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_commit_false ... ok [INFO] [stdout] test commands::init::tests::test_init_result_created_paths ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_allow_add_task_false ... ok [INFO] [stdout] test commands::reindex::tests::test_reindex_integration_depends_on_autofix ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_allow_add_task_true ... ok [INFO] [stdout] test commands::init::tests::test_is_initialized ... ok [INFO] [stdout] test commands::run::tests::test_build_uat_verify_prompt_allow_skip_uat_false ... 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_build_uat_verify_prompt_allow_skip_uat_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 ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_default ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_injected ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_skills_manifest_omitted_when_missing ... ok [INFO] [stdout] test commands::run::tests::test_build_prompt_commit_true ... ok [INFO] [stdout] test commands::init::tests::test_init_is_idempotent ... ok [INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_all_done ... ok [INFO] [stdout] test commands::run::tests::test_extract_prd_id_with_trailing_content ... ok [INFO] [stdout] test commands::run::tests::test_find_prd_by_id_not_found ... 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_has_incomplete_tasks_with_todo ... ok [INFO] [stdout] test commands::run::tests::test_parse_opt_out ... 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_run_task_all_done_no_uats ... ok [INFO] [stdout] test commands::run::tests::test_extract_prd_id_none ... ok [INFO] [stdout] test commands::run::tests::test_run_task_without_no_commit_sends_commit_instructions ... ok [INFO] [stdout] test commands::run::tests::test_run_task_all_done_and_verified ... ok [INFO] [stdout] test commands::run::tests::test_run_task_requires_prd_id ... ok [INFO] [stdout] test commands::run::tests::test_has_incomplete_tasks_with_no_tasks ... ok [INFO] [stdout] test commands::run::tests::test_find_prd_by_id ... ok [INFO] [stdout] test commands::run::tests::test_run_task_with_no_commit_sends_correct_prompt ... ok [INFO] [stdout] test commands::run::tests::test_run_task_explicit_prd ... ok [INFO] [stdout] test commands::run::tests::test_run_task_success ... 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_loop_convergence_all_uats_verified ... ok [INFO] [stdout] test commands::run::tests::test_pick_prd_selects_active_with_tasks ... 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_uat_result_has_new_tasks_field_default ... ok [INFO] [stdout] test commands::bootstrap::tests::test_reconstruct_integration_with_depends_on_inference ... ok [INFO] [stdout] test commands::status::tests::test_extract_last_history ... ok [INFO] [stdout] test commands::status::tests::test_extract_last_history_none ... 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::suggest::tests::test_build_suggestion_prompt ... ok [INFO] [stdout] test commands::run::tests::test_uat_verification_loop_all_verified_by_runner ... ok [INFO] [stdout] test commands::status::tests::test_status_with_history ... ok [INFO] [stdout] test commands::status::tests::test_get_status_empty ... 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::suggest::tests::test_is_numbered_entry_start ... ok [INFO] [stdout] test commands::status::tests::test_find_next_task ... ok [INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_invalid ... ok [INFO] [stdout] test commands::suggest::tests::test_parse_numbered_entry_valid ... ok [INFO] [stdout] test commands::suggest::tests::test_parse_suggestion_metadata_complete ... 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_title_description_no_separator ... ok [INFO] [stdout] test commands::suggest::tests::test_parse_title_description_whitespace ... ok [INFO] [stdout] test commands::suggest::tests::test_parse_title_description_with_separator ... 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::status::tests::test_next_task_skips_draft_prds ... ok [INFO] [stdout] test commands::validate::tests::test_validate_constitution_with_invalid_frontmatter ... ok [INFO] [stdout] test commands::run::tests::test_uat_verification_integration_flow ... 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_valid ... ok [INFO] [stdout] test commands::validate::tests::test_validate_prd_frontmatter_invalid_yaml ... ok [INFO] [stdout] test commands::run::tests::test_uat_verification_loop_opt_out ... ok [INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies_empty ... ok [INFO] [stdout] test commands::suggest::tests::test_analyze_repository_structure ... ok [INFO] [stdout] test config::constitution::tests::test_constitution_missing_includes_suggestion ... ok [INFO] [stdout] test config::constitution::tests::test_parse_questions_for_constitution ... ok [INFO] [stdout] test commands::run::tests::test_uat_verification_loop_max_iterations ... ok [INFO] [stdout] test config::tests::test_config_load_full ... ok [INFO] [stdout] test config::tests::test_config_load_missing_file ... ok [INFO] [stdout] test config::tests::test_config_load_empty_file ... ok [INFO] [stdout] test config::tests::test_config_load_malformed_includes_suggestion ... ok [INFO] [stdout] test config::tests::test_config_load_with_no_commit ... ok [INFO] [stdout] test config::tests::test_default_config_parses ... ok [INFO] [stdout] test config::tests::test_config_default ... ok [INFO] [stdout] test commands::validate::tests::test_validate_constitution_no_frontmatter ... ok [INFO] [stdout] test config::tests::test_config_load_or_default_missing ... ok [INFO] [stdout] test config::constitution::tests::test_constitution_edit ... ok [INFO] [stdout] test config::tests::test_effective_model_config_value ... 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 commands::suggest::tests::test_detect_todo_comments_no_git ... ok [INFO] [stdout] test config::tests::test_effective_no_commit_cli_override ... ok [INFO] [stdout] test commands::suggest::tests::test_detect_tools_and_dependencies ... ok [INFO] [stdout] test config::tests::test_effective_no_commit_config_value ... ok [INFO] [stdout] test config::tests::test_effective_model_none ... ok [INFO] [stdout] test config::tests::test_effective_no_commit_default_false ... ok [INFO] [stdout] test config::tests::test_effective_runner_config_value ... ok [INFO] [stdout] test config::tests::test_effective_runner_default ... ok [INFO] [stdout] test config::tests::test_effective_runner_cli_override ... ok [INFO] [stdout] test config::tests::test_load_constitution_exists ... ok [INFO] [stdout] test config::tests::test_load_constitution_missing ... ok [INFO] [stdout] test commands::suggest::tests::test_get_recent_commits_no_git ... 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_aborts_on_process_failure ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_fails_on_corrupted_file_after_session ... ok [INFO] [stdout] test commands::suggest::tests::test_analyze_codebase ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_aborts_on_interrupted_signal ... 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_path_in_prompt ... ok [INFO] [stdout] test commands::suggest::tests::test_suggest_integration_with_mock_runner ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_case_insensitive_id_lookup ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_no_context ... ok [INFO] [stdout] test prd::edit::tests::test_old_qa_loop_code_removed ... ok [INFO] [stdout] test prd::finalize::tests::finalize_unverified_blocks ... ok [INFO] [stdout] test commands::graph::tests::test_build_graph_from_actual_repo ... 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_generate_summary_report ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_validates_and_regenerates_index ... ok [INFO] [stdout] test prd::finalize::tests::test_prd_not_found_error_includes_suggestion ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_prd_content_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_constitution_in_prompt ... ok [INFO] [stdout] test prd::edit::tests::test_find_prd ... ok [INFO] [stdout] test prd::edit::tests::test_edit_prd_interactive_flow ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_all_done ... ok [INFO] [stdout] test prd::finalize::tests::test_append_to_prd ... 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_incomplete ... ok [INFO] [stdout] test prd::finalize::tests::test_append_to_prd_preserves_existing ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_all_tasks_done_with_parked ... ok [INFO] [stdout] test commands::run::tests::test_uat_verification_history_appending ... ok [INFO] [stdout] test prd::finalize::tests::test_update_prd_status_to_done ... ok [INFO] [stdout] test prd::finalize::tests::test_build_finalize_prompt ... ok [INFO] [stdout] test prd::edit::tests::test_find_prd_not_found ... 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_uats_verified_with_all_skipped ... 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_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_constitution_prd_finalize ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_all_unverified_uats ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_multiple_incomplete_tasks ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_multiple_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_uats_skipped_with_unverified_fails ... 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::finalize::tests::test_update_prd_status_preserves_tasks ... 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_extract_prd_references_single ... 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_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_index_with_prds ... ok [INFO] [stdout] test prd::index::tests::test_prd_summary_depends_on_empty ... ok [INFO] [stdout] test prd::index::tests::test_generate_prd_table ... ok [INFO] [stdout] test prd::index::tests::test_prd_summary_no_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_progress ... ok [INFO] [stdout] test prd::index::tests::test_scan_prds_nonexistent_directory ... ok [INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_process_failure ... ok [INFO] [stdout] test prd::new::tests::test_constitution_in_interactive_prompt ... ok [INFO] [stdout] test prd::new::tests::test_create_prd_aborts_on_interrupted_signal ... 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_missing_frontmatter_includes_suggestion ... 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_all_prd_statuses ... ok [INFO] [stdout] test prd::new::tests::test_create_prd_placeholder_when_agent_doesnt_write ... ok [INFO] [stdout] test prd::parser::tests::test_parse_all_task_statuses ... ok [INFO] [stdout] test prd::parser::tests::test_parse_prd_basic ... 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_body ... ok [INFO] [stdout] test prd::parser::tests::test_parse_prd_unclosed_frontmatter ... ok [INFO] [stdout] test prd::parser::tests::test_parse_complex_prd ... ok [INFO] [stdout] test prd::new::tests::test_create_prd_single_phase_agent_writes_file ... 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_unclosed_frontmatter_includes_suggestion ... ok [INFO] [stdout] test prd::types::tests::test_acceptance_test_with_skipped_uat_roundtrip ... ok [INFO] [stdout] test prd::types::tests::test_prd_incomplete_tasks ... ok [INFO] [stdout] test prd::parser::tests::test_serialize_prd ... ok [INFO] [stdout] test prd::new::tests::test_prd_new_context_in_interactive_prompt ... 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_task_status_display ... ok [INFO] [stdout] test prd::types::tests::test_uat_status_default_is_unverified ... ok [INFO] [stdout] test prd::types::tests::test_uat_status_deserialize_skipped_from_yaml ... 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::parser::tests::test_roundtrip_preserves_body ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_each ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_each_with_index ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_empty_template ... 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 prd::new::tests::test_existing_prds_injected_into_interactive_prompt ... 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 prompt::expand::tests::test_expand_if_true ... 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_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_real_world_prompt ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_simple_placeholder ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_unknown_placeholder_unchanged ... ok [INFO] [stdout] test prompt::expand::tests::test_expand_whitespace_in_placeholder ... ok [INFO] [stdout] test prompt::expand::tests::test_placeholder_context_from_iter ... 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_string ... ok [INFO] [stdout] test prompt::loader::tests::test_get_default_prompt_all_kinds ... ok [INFO] [stdout] test prompt::loader::tests::test_load_prompt_no_init ... ok [INFO] [stdout] test prompt::loader::tests::test_load_prompt_with_fallback_convenience ... ok [INFO] [stdout] test prompt::loader::tests::test_load_prompt_convenience ... ok [INFO] [stdout] test prompt::expand::tests::test_placeholder_value_from_str ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_exists ... ok [INFO] [stdout] test prd::index::tests::test_scan_prds_from_actual_directory ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_with_fallback ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_missing ... ok [INFO] [stdout] test prompt::types::tests::test_prompt_kind_display ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load ... ok [INFO] [stdout] test runner::claude::tests::test_build_args_manual_mode ... ok [INFO] [stdout] test runner::claude::tests::test_build_args_with_model ... ok [INFO] [stdout] test runner::claude::tests::test_build_args_without_model ... 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_with_model ... ok [INFO] [stdout] test runner::claude::tests::test_claude_config_builder ... 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 commands::suggest::tests::test_analyze_codebase_includes_tech_debt_and_dependencies ... 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_format_command_display_no_model ... ok [INFO] [stdout] test runner::claude::tests::test_format_command_display ... ok [INFO] [stdout] test runner::claude::tests::test_parse_usage_missing_fields ... ok [INFO] [stdout] test runner::claude::tests::test_parse_usage_from_json ... ok [INFO] [stdout] test runner::claude::tests::test_parse_usage_returns_none ... ok [INFO] [stdout] test prompt::types::tests::test_prompt_kind_filename ... ok [INFO] [stdout] test prompt::types::tests::test_prompt_kind_all ... ok [INFO] [stdout] test runner::claude::tests::test_build_interactive_args_manual_mode ... ok [INFO] [stdout] test runner::claude::tests::test_runner_default ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_all_exist ... ok [INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_missing_result_field ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_missing_prompts ... ok [INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_preserves_multiline_result ... 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_with_full_json ... ok [INFO] [stdout] test runner::claude::tests::test_strip_usage_stats_with_plain_text ... 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_runner_name ... 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_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_no_usage ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_load_with_fallback_prefers_file ... ok [INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_invalid_json ... ok [INFO] [stdout] test prompt::loader::tests::test_prompt_loader_new ... ok [INFO] [stdout] test runner::cli_runner::tests::test_parse_json_usage_partial ... ok [INFO] [stdout] test runner::cli_runner::tests::test_extract_json_result_missing_field ... ok [INFO] [stdout] test runner::cli_runner::tests::test_execute_interactive_cli_signal_interrupted ... 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_single_line ... 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_multiple_lines ... ok [INFO] [stdout] test runner::cli_runner::tests::test_read_stream_lines_empty ... ok [INFO] [stdout] test runner::codex::tests::test_build_args_with_model ... ok [INFO] [stdout] test runner::cli_runner::tests::test_signal_name_unknown_signal ... ok [INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_found ... ok [INFO] [stdout] test runner::cli_runner::tests::test_check_cli_available_nonexistent ... ok [INFO] [stdout] test runner::cli_runner::tests::test_resolve_binary_not_found_falls_back ... ok [INFO] [stdout] test runner::codex::tests::test_build_args_without_model ... ok [INFO] [stdout] test runner::codex::tests::test_build_args_yolo_mode ... 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_interactive_args_yolo_mode ... ok [INFO] [stdout] test runner::codex::tests::test_codex_config_default ... 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_codex_config_builder ... ok [INFO] [stdout] test runner::codex::tests::test_parse_usage_from_json ... ok [INFO] [stdout] test runner::codex::tests::test_format_command_display_no_model ... ok [INFO] [stdout] test runner::codex::tests::test_parse_usage_returns_none ... ok [INFO] [stdout] test runner::codex::tests::test_parse_usage_no_usage_object ... ok [INFO] [stdout] test runner::cli_runner::tests::test_signal_name_known_signals ... ok [INFO] [stdout] test runner::codex::tests::test_post_process_output_plain_text ... ok [INFO] [stdout] test runner::codex::tests::test_runner_default ... ok [INFO] [stdout] test runner::codex::tests::test_build_args_manual_mode ... ok [INFO] [stdout] test runner::codex::tests::test_post_process_output_extracts_result ... ok [INFO] [stdout] test runner::codex::tests::test_codex_runner_with_config ... ok [INFO] [stdout] test runner::codex::tests::test_format_command_display ... ok [INFO] [stdout] test runner::cli_runner::tests::test_execute_cli_echo ... 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_preserves_multiline_result ... 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_execute_interactive_cli_success ... 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_parse_usage_missing_fields ... ok [INFO] [stdout] test runner::codex::tests::test_with_model_constructor ... ok [INFO] [stdout] test prd::parser::tests::test_invalid_yaml_frontmatter_includes_suggestion ... ok [INFO] [stdout] test prd::finalize::tests::test_validate_all_uats_verified_with_no_uats ... ok [INFO] [stdout] test prd::finalize::tests::test_generate_summary_report_no_tasks ... ok [INFO] [stdout] test runner::copilot::tests::test_build_args_manual_mode ... ok [INFO] [stdout] test runner::copilot::tests::test_build_args_with_model ... ok [INFO] [stdout] test runner::copilot::tests::test_build_args_without_model ... 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_build_interactive_args_yolo_mode ... ok [INFO] [stdout] test runner::copilot::tests::test_build_interactive_args_manual_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 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::cli_runner::tests::test_execute_interactive_cli_failure ... 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_ok ... ok [INFO] [stdout] test runner::mock::tests::test_mock_runner_execute_interactive_returns_process_failed_error ... ok [INFO] [stdout] test runner::copilot::tests::test_runner_default ... ok [INFO] [stdout] test runner::copilot::tests::test_runner_name ... ok [INFO] [stdout] test runner::copilot::tests::test_strip_usage_stats ... 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_add_response ... ok [INFO] [stdout] test runner::mock::tests::test_mock_runner_default_response_when_empty ... 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_omits_usage_info ... ok [INFO] [stdout] test runner::mock::tests::test_mock_runner_records_interactive_prompts ... 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::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_runner_error_is_interrupted ... ok [INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_both_none ... ok [INFO] [stdout] test runner::types::tests::test_usage_info_aggregate_into_none ... 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::types::tests::test_usage_info_merge_partial ... 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_bootstrap_with_model ... ok [INFO] [stdout] test runner::types::tests::test_usage_info_has_data ... 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_returns_responses_in_order ... ok [INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format ... 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_ascii_defaults ... 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_list ... ok [INFO] [stdout] test tests::test_args_parse_graph_ascii_with_flags ... ok [INFO] [stdout] test tests::test_args_parse_graph_mermaid_defaults ... ok [INFO] [stdout] test tests::test_args_parse_prd_finalize_no_commit ... ok [INFO] [stdout] test tests::test_args_parse_new ... ok [INFO] [stdout] test runner::copilot::tests::test_parse_usage_no_stats ... ok [INFO] [stdout] test tests::test_args_parse_no_command ... ok [INFO] [stdout] test tests::test_args_parse_graph_dot_defaults ... ok [INFO] [stdout] test tests::test_args_parse_list_with_done_flag ... ok [INFO] [stdout] test tests::test_args_parse_prd_new ... ok [INFO] [stdout] test tests::test_args_parse_init ... ok [INFO] [stdout] test tests::test_args_parse_prd_new_with_model ... 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_init_with_language ... 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_refactor_with_all_flags ... ok [INFO] [stdout] test tests::test_args_parse_run_with_disallow_add_task ... 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_default_disallow_flags_off ... ok [INFO] [stdout] test tests::test_args_parse_run_with_positional_prd ... ok [INFO] [stdout] test tests::test_args_parse_run_with_runner ... ok [INFO] [stdout] test tests::test_args_parse_run_with_runner_codex ... ok [INFO] [stdout] test tests::test_args_parse_run_with_stream ... ok [INFO] [stdout] test runner::copilot::tests::test_parse_usage_copilot_format_megabytes ... ok [INFO] [stdout] test tests::test_args_parse_run_without_positional_prd ... ok [INFO] [stdout] test tests::test_normalize_prd_id_fallback ... ok [INFO] [stdout] test tests::test_args_parse_status ... 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 util::colors::tests::test_info_header_dim_are_identity_in_non_tty ... 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_error_has_correct_emoji_prefix ... ok [INFO] [stdout] test tests::test_verbose_flag ... ok [INFO] [stdout] test util::changelog::tests::test_ensure_changelog_exists_preserves_existing ... ok [INFO] [stdout] test tests::test_restore_creates_skills_if_missing ... ok [INFO] [stdout] test tests::test_devcontainer_generate_with_mock_runner ... ok [INFO] [stdout] test util::colors::tests::test_styling_functions_handle_empty_string ... ok [INFO] [stdout] test util::colors::tests::test_question_has_emoji_and_styling ... ok [INFO] [stdout] test util::colors::tests::test_success_has_correct_emoji_prefix ... ok [INFO] [stdout] test util::qa_workflow::tests::test_collect_singleline_answers ... ok [INFO] [stdout] test tests::test_normalize_prd_id_full_id ... ok [INFO] [stdout] test util::colors::tests::test_warning_has_correct_emoji_prefix ... ok [INFO] [stdout] test tests::test_restore_preserves_existing_skills ... ok [INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_with_ready_signal ... ok [INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_markdown_block ... ok [INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_multi_line ... ok [INFO] [stdout] test util::qa_workflow::tests::test_parse_questions_single_line ... ok [INFO] [stdout] test util::qa_workflow::tests::test_extract_prd_content_direct ... 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_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 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::spinner::tests::test_spinner_explicitly_disabled_has_no_bar ... ok [INFO] [stdout] test tests::test_restore_idempotency ... ok [INFO] [stdout] test util::spinner::tests::test_spinner_finalize_workflow_simulation ... ok [INFO] [stdout] test tests::test_restore_fresh ... ok [INFO] [stdout] test util::spinner::tests::test_spinner_operations_do_not_panic ... ok [INFO] [stdout] test util::spinner::tests::test_spinner_refactor_iteration_simulation ... ok [INFO] [stdout] test util::spinner::tests::test_spinner_reindex_workflow_simulation ... 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_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 util::spinner::tests::test_spinner_message_updates_on_disabled_spinner ... ok [INFO] [stdout] test tests::test_restore_after_customization ... ok [INFO] [stdout] test commands::suggest::tests::test_get_recent_commits_with_git ... ok [INFO] [stdout] test runner::copilot::tests::test_build_args_allow_all_mode ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 584 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "616b1854bad7bfc240d06404b4f86a5b21d0a4c05a8215b70b811b9a44e06f82", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "616b1854bad7bfc240d06404b4f86a5b21d0a4c05a8215b70b811b9a44e06f82", kill_on_drop: false }` [INFO] [stdout] 616b1854bad7bfc240d06404b4f86a5b21d0a4c05a8215b70b811b9a44e06f82