[INFO] cloning repository https://github.com/George-RD/cairn [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/George-RD/cairn" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeorge-RD%2Fcairn", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeorge-RD%2Fcairn'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c9a1bcc16bcd52c17c7554a517e7c56dc9cb341d [INFO] testing George-RD/cairn against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGeorge-RD%2Fcairn" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/George-RD/cairn [INFO] finished tweaking git repo https://github.com/George-RD/cairn [INFO] tweaked toml for git repo https://github.com/George-RD/cairn written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/George-RD/cairn on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/George-RD/cairn 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c5c7e99935dcb64512fd210b6130f6108f043a3e977a62ca627b946ee47e5ba3 [INFO] running `Command { std: "docker" "start" "-a" "c5c7e99935dcb64512fd210b6130f6108f043a3e977a62ca627b946ee47e5ba3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c5c7e99935dcb64512fd210b6130f6108f043a3e977a62ca627b946ee47e5ba3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c5c7e99935dcb64512fd210b6130f6108f043a3e977a62ca627b946ee47e5ba3", kill_on_drop: false }` [INFO] [stdout] c5c7e99935dcb64512fd210b6130f6108f043a3e977a62ca627b946ee47e5ba3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 390f6b20a8dfbeb825ae19240f797b6b8a095b93d8666594ca732436bbebd526 [INFO] running `Command { std: "docker" "start" "-a" "390f6b20a8dfbeb825ae19240f797b6b8a095b93d8666594ca732436bbebd526", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling libc v0.2.185 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling tree-sitter-language v0.1.7 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling tree-sitter-typescript v0.23.2 [INFO] [stderr] Compiling tree-sitter-python v0.25.0 [INFO] [stderr] Compiling tree-sitter-go v0.25.0 [INFO] [stderr] Compiling tree-sitter-rust v0.24.2 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling unsafe-libyaml v0.2.11 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling tree-sitter v0.26.8 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling cairn-macros v0.1.0 (/opt/rustwide/workdir/cairn-macros) [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling cairn v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.61s [INFO] running `Command { std: "docker" "inspect" "390f6b20a8dfbeb825ae19240f797b6b8a095b93d8666594ca732436bbebd526", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "390f6b20a8dfbeb825ae19240f797b6b8a095b93d8666594ca732436bbebd526", kill_on_drop: false }` [INFO] [stdout] 390f6b20a8dfbeb825ae19240f797b6b8a095b93d8666594ca732436bbebd526 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c62a4ece2c3399803935009128a873cc73440008b8fc8a08118ea99e04bc79ab [INFO] running `Command { std: "docker" "start" "-a" "c62a4ece2c3399803935009128a873cc73440008b8fc8a08118ea99e04bc79ab", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling tree-sitter v0.26.8 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling insta v1.47.2 [INFO] [stderr] Compiling cairn v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 49.43s [INFO] running `Command { std: "docker" "inspect" "c62a4ece2c3399803935009128a873cc73440008b8fc8a08118ea99e04bc79ab", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c62a4ece2c3399803935009128a873cc73440008b8fc8a08118ea99e04bc79ab", kill_on_drop: false }` [INFO] [stdout] c62a4ece2c3399803935009128a873cc73440008b8fc8a08118ea99e04bc79ab [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] fe751d39febfc143267d81ad17a8e4abd07f7236be0746460ed03300b90feacb [INFO] running `Command { std: "docker" "start" "-a" "fe751d39febfc143267d81ad17a8e4abd07f7236be0746460ed03300b90feacb", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/cairn-c55d308a97f0d1bd) [INFO] [stdout] [INFO] [stdout] running 791 tests [INFO] [stdout] test artefacts::registry::parse::tests::test_decision_status_all_variants ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_decision_status_binding_alias_is_accepted ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_decision_status_invalid_emits_finding ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_review_type_invalid_emits_finding ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_source_verification_all_variants ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_source_verification_invalid_emits_finding ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_claims_absent_when_no_folder_key ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_todo_status_all_variants ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_todo_status_invalid_emits_finding ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_claims_unknown_mode_returns_none ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_claims_missing_items_defaults_to_empty_not_none ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_empty_nodes_emits_missing_nodes_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_unknown_provenance_emits_warning ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_external_source_valid_url_no_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_indexed_but_missing_source_emits_index_gap_warning ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_only_unknown_nodes_emits_orphaned_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_external_source_non_url_emits_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_research_empty_nodes_emits_missing_nodes_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_research_unknown_source_emits_warning ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_research_unknown_node_emits_unknown_node_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_review_unknown_node_emits_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_todo_unknown_node_emits_orphan_warning ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_unverified_source_emits_info ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_validate_nodes_happy_path_no_findings ... ok [INFO] [stdout] test artefacts::registry::tests::test_load_artefacts_reports_unknown_node_references ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_verified_source_correct_sha256_no_finding ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_unreferenced_source_emits_orphan_warning ... ok [INFO] [stdout] test brownfield::discovery::tests::ignored_dirs_matched ... ok [INFO] [stdout] test artefacts::registry::parse::tests::test_review_type_all_variants ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_claims_exhaustive_with_items_returns_some ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_claims_illustrative_mode_returns_some ... ok [INFO] [stdout] test artefacts::registry::tests::test_load_artefacts_loads_known_records ... ok [INFO] [stdout] test artefacts::registry::tests::test_parse_status_kinds_reject_unknown_values ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_research_no_sources_emits_missing_sources_error ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_orphaned_flag_with_reason_suppresses_error ... ok [INFO] [stdout] test brownfield::discovery::tests::name_extracts_last_segment ... ok [INFO] [stdout] test brownfield::discovery::tests::node_id_replaces_separators ... ok [INFO] [stdout] test brownfield::discovery::tests::share_parent_detects_siblings ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_verified_source_wrong_sha256_emits_mismatch_error ... ok [INFO] [stdout] test brownfield::discovery::tests::test_discover_ignores_target_directory ... ok [INFO] [stdout] test brownfield::discovery::tests::test_discover_creates_candidate_for_directory_with_enough_source_files ... ok [INFO] [stdout] test brownfield::discovery::tests::test_discover_sibling_directories_get_bidirectional_edges ... ok [INFO] [stdout] test brownfield::discovery::tests::test_discover_skips_directory_with_too_few_source_files ... ok [INFO] [stdout] test brownfield::discovery::tests::test_infer_edges_no_edge_for_non_siblings ... ok [INFO] [stdout] test brownfield::discovery::tests::confidence_tiers ... ok [INFO] [stdout] test brownfield::discovery::tests::test_infer_edges_bidirectional_for_siblings ... ok [INFO] [stdout] test brownfield::discovery::tests::test_infer_edges_single_candidate_no_edges ... ok [INFO] [stdout] test brownfield::discovery::tests::test_name_from_path_converts_hyphens_to_spaces ... ok [INFO] [stdout] test brownfield::discovery::tests::test_is_source_file_accepts_known_extensions ... ok [INFO] [stdout] test brownfield::heuristics::tests::candidate_new_derives_id_from_directory ... ok [INFO] [stdout] test brownfield::discovery::tests::test_name_from_path_single_segment_no_separator ... ok [INFO] [stdout] test brownfield::heuristics::tests::candidate_new_strips_leading_dot_slash ... ok [INFO] [stdout] test brownfield::discovery::tests::test_is_source_file_rejects_no_extension ... ok [INFO] [stdout] test brownfield::discovery::tests::test_discover_non_source_files_do_not_count_toward_threshold ... ok [INFO] [stdout] test brownfield::heuristics::tests::candidate_with_id_overrides_path_derived ... ok [INFO] [stdout] test brownfield::heuristics::tests::classify_boundary_cases ... ok [INFO] [stdout] test brownfield::heuristics::tests::coupling_score_high_confidence ... ok [INFO] [stdout] test brownfield::heuristics::tests::coupling_score_low_confidence ... ok [INFO] [stdout] test brownfield::heuristics::tests::path_derived_id_replaces_separators ... ok [INFO] [stdout] test brownfield::heuristics::tests::test_path_derived_id_empty_string_returns_root ... ok [INFO] [stdout] test brownfield::heuristics::tests::test_path_derived_id_bare_dot_returns_root ... ok [INFO] [stdout] test brownfield::onboard::tests::classifies_generated_dirs_as_ignore ... ok [INFO] [stdout] test brownfield::onboard::tests::classifies_source_dirs_as_node ... ok [INFO] [stdout] test brownfield::interview::tests::test_record_answer_advances_cursor ... ok [INFO] [stdout] test brownfield::onboard::tests::empty_findings_produce_empty_report ... ok [INFO] [stdout] test brownfield::onboard::tests::human_output_shows_both_sections ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_supersedes_unknown_decision_emits_warning ... ok [INFO] [stdout] test brownfield::onboard::tests::json_output_parses_as_valid_json ... ok [INFO] [stdout] test brownfield::onboard::tests::nested_ignore_pattern_matches_ancestor ... ok [INFO] [stdout] test brownfield::onboard::tests::root_level_files_cluster_under_dot ... ok [INFO] [stdout] test brownfield::interview::tests::test_resume_session_reads_existing ... ok [INFO] [stdout] test brownfield::onboard::tests::test_analyze_filters_out_non_orphan_code_findings ... ok [INFO] [stdout] test brownfield::onboard::tests::test_capitalize_empty_string ... ok [INFO] [stdout] test brownfield::interview::tests::test_start_session_creates_file ... ok [INFO] [stdout] test brownfield::onboard::tests::test_capitalize_lowercase_first_char ... ok [INFO] [stdout] test brownfield::onboard::tests::test_classify_case_insensitive_for_ignore_patterns ... ok [INFO] [stdout] test brownfield::heuristics::tests::coupling_score_medium_confidence ... ok [INFO] [stdout] test brownfield::onboard::tests::test_capitalize_already_uppercase_unchanged ... ok [INFO] [stdout] test brownfield::interview::tests::test_resume_session_returns_none_when_missing ... ok [INFO] [stdout] test brownfield::onboard::tests::test_classify_root_dir_node_id_is_not_bare_dot ... ok [INFO] [stdout] test brownfield::interview::tests::test_complete_session_writes_genesis ... ok [INFO] [stdout] test brownfield::onboard::tests::test_parent_dir_nested_path ... ok [INFO] [stdout] test brownfield::onboard::tests::test_parent_dir_single_segment_returns_dot ... ok [INFO] [stdout] test brownfield::onboard::tests::test_render_human_empty_report_message ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_candidate_produces_plus_section ... ok [INFO] [stdout] test brownfield::interview::tests::test_abandon_session_removes_file ... ok [INFO] [stdout] test brownfield::interview::tests::test_record_answer_completes_at_end ... ok [INFO] [stdout] test brownfield::onboard::tests::test_render_human_header_shows_cluster_and_file_counts ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_candidate_with_api_segment_is_container ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_empty_extraction_produces_only_header ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_candidate_with_edge_produces_edge_line ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_rename_produces_tilde_line ... ok [INFO] [stdout] test brownfield::refine::tests::test_delta_removal_produces_dash_line ... ok [INFO] [stdout] test brownfield::refine::tests::test_flatten_nodes_empty_list_returns_empty ... ok [INFO] [stdout] test brownfield::refine::tests::test_flatten_nodes_multiple_paths_uses_only_first ... ok [INFO] [stdout] test brownfield::refine::tests::test_flatten_nodes_includes_children_recursively ... ok [INFO] [stdout] test brownfield::refine::tests::test_flatten_nodes_node_without_path_skipped ... ok [INFO] [stdout] test brownfield::refine::tests::test_flatten_nodes_node_with_path_included ... ok [INFO] [stdout] test brownfield::refine::tests::test_unique_change_id_appends_1_when_base_exists ... ok [INFO] [stdout] test brownfield::discovery::tests::test_infer_edges_three_siblings_form_complete_graph ... ok [INFO] [stdout] test brownfield::onboard::tests::test_analyze_deduplicates_same_path ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_supersedes_non_superseded_emits_status_warning ... ok [INFO] [stdout] test brownfield::discovery::tests::test_is_source_file_rejects_unknown_extensions ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_confidence_uses_minimum_of_pair ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_empty_extraction ... ok [INFO] [stdout] test brownfield::onboard::tests::groups_by_parent_directory ... ok [INFO] [stdout] test brownfield::onboard::tests::test_classify_nested_ignore_segment_truncates_to_pattern ... ok [INFO] [stdout] test brownfield::refine::tests::test_unique_change_id_returns_base_when_no_collision ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_skips_when_reverse_edge_exists ... ok [INFO] [stdout] test brownfield::summarise::tests::test_build_map_facts_omits_empty_fields ... ok [INFO] [stdout] test brownfield::summarise::tests::test_build_request_populates_target_and_draft_type ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_no_shared_tags_is_empty ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_produces_bidirectional_entries ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_provenance_fields_are_set ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_multiple_shared_tags_one_entry_per_direction ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_single_candidate_is_empty ... ok [INFO] [stdout] test brownfield::suggest::tests::test_suggest_edges_skips_existing_edges ... ok [INFO] [stdout] test brownfield::templates::tests::test_find_matching_template_by_path ... ok [INFO] [stdout] test brownfield::refine::tests::test_unique_change_id_skips_to_2_when_base_and_1_both_exist ... ok [INFO] [stdout] test brownfield::summarise::tests::test_collect_code_samples_truncates_large_files ... ok [INFO] [stdout] test brownfield::summarise::tests::test_collect_code_samples_bounds_file_count ... ok [INFO] [stdout] test brownfield::templates::tests::test_no_match_returns_none ... ok [INFO] [stdout] test brownfield::templates::tests::test_render_stub_fallback_when_no_templates ... ok [INFO] [stdout] test brownfield::summarise::tests::test_enrich_candidate_extracts_metadata_fields ... ok [INFO] [stdout] test brownfield::tests::test_blueprint_delta_empty_extraction_is_just_header ... ok [INFO] [stdout] test brownfield::tests::test_blueprint_delta_edge_appears_in_output ... ok [INFO] [stdout] test brownfield::templates::tests::test_find_matching_template_by_tag ... ok [INFO] [stdout] test brownfield::summarise::tests::test_enrich_candidate_uses_backend_draft_text ... ok [INFO] [stdout] test brownfield::tests::test_blueprint_delta_api_path_uses_container_kind ... ok [INFO] [stdout] test brownfield::templates::tests::test_first_matching_template_wins ... ok [INFO] [stdout] test brownfield::summarise::tests::test_enrich_candidate_falls_back_on_backend_error ... ok [INFO] [stdout] test brownfield::summarise::tests::test_collect_code_samples_skips_non_source_files ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_api_alone_is_container ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_api_segment_is_container ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_regular_path_is_module ... ok [INFO] [stdout] test brownfield::templates::tests::test_apply_template_replaces_placeholders ... ok [INFO] [stdout] test brownfield::tests::test_blueprint_delta_single_candidate_no_edges ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_apigateway_is_module_not_container ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_backslash_path_api_is_container ... ok [INFO] [stdout] test brownfield::tests::test_stub_contract_body_contains_description ... ok [INFO] [stdout] test brownfield::tests::test_stub_contract_body_has_h1_name ... ok [INFO] [stdout] test brownfield::tests::test_stub_contract_ends_with_newline ... ok [INFO] [stdout] test brownfield::tests::test_stub_contract_frontmatter_contains_node_id ... ok [INFO] [stdout] test brownfield::tests::test_node_kind_service_segment_is_container ... ok [INFO] [stdout] test changes::apply::tests::test_node_kind_name_all_variants ... ok [INFO] [stdout] test changes::apply::tests::test_remove_node_removes_top_level ... ok [INFO] [stdout] test changes::apply::tests::test_rename_node_id_no_match_is_noop ... ok [INFO] [stdout] test changes::apply::tests::test_rename_node_id_renames_nested_child ... ok [INFO] [stdout] test changes::apply::tests::test_remove_node_no_match_is_noop ... ok [INFO] [stdout] test changes::apply::tests::test_remove_node_removes_nested_child ... ok [INFO] [stdout] test changes::apply::tests::test_replace_exact_id_no_substring_replacement ... ok [INFO] [stdout] test changes::apply::tests::test_replace_node_not_found_returns_err ... ok [INFO] [stdout] test changes::apply::tests::test_replace_node_replaces_top_level ... ok [INFO] [stdout] test changes::apply::tests::test_replace_exact_id_exact_match ... ok [INFO] [stdout] test changes::apply::tests::test_same_edge_different_from_is_not_equal ... ok [INFO] [stdout] test changes::apply::tests::test_replace_exact_id_no_match ... ok [INFO] [stdout] test changes::apply::tests::test_same_edge_equal ... ok [INFO] [stdout] test changes::apply::tests::test_same_edge_different_description_is_not_equal ... ok [INFO] [stdout] test artefacts::registry::tests::test_load_artefacts_reports_duplicate_or_invalid_provenance ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_field_values_empty_produces_brackets ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_decision_supersedes_superseded_no_warning ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_node_indent_applied_at_nonzero_level ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_node_owns_files_false_does_not_emit_flag ... ok [INFO] [stdout] test changes::apply::tests::test_rename_node_id_renames_top_level_node ... ok [INFO] [stdout] test changes::apply::tests::test_strip_frontmatter_no_frontmatter_passes_through ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_node_with_path_emits_path_line ... ok [INFO] [stdout] test changes::apply::tests::test_strip_frontmatter_operation_in_body_not_stripped ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_field_values_single_produces_quoted_string ... ok [INFO] [stdout] test artefacts::registry::validate::tests::test_verified_source_without_sha256_emits_error ... ok [INFO] [stdout] test changes::apply::tests::test_strip_frontmatter_always_ends_with_newline ... ok [INFO] [stdout] test changes::apply::tests::test_replace_node_replaces_nested_child ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_field_values_multiple_produces_bracketed_list ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_node_basic_structure ... ok [INFO] [stdout] test changes::apply::tests::test_strip_frontmatter_removes_operation_field ... ok [INFO] [stdout] test changes::artefact_ops::tests::test_parse_operation_all_variants ... ok [INFO] [stdout] test changes::apply::tests::test_strip_frontmatter_removes_renamed_from_field ... ok [INFO] [stdout] test changes::delta::tests::test_clean_list_line_empty_bullet_yields_empty ... ok [INFO] [stdout] test changes::artefact_ops::tests::test_parse_operation_unknown_is_none ... ok [INFO] [stdout] test changes::delta::tests::test_clean_list_line_no_prefix_kept_as_is ... ok [INFO] [stdout] test changes::delta::tests::test_clean_list_line_strips_bullet_prefix ... ok [INFO] [stdout] test changes::delta::tests::test_clean_list_line_empty_string_yields_empty ... ok [INFO] [stdout] test changes::delta::tests::test_clean_scalar_plain_value_unchanged ... ok [INFO] [stdout] test changes::delta::tests::test_clean_scalar_strips_backticks ... ok [INFO] [stdout] test changes::delta::tests::test_clean_list_line_trims_surrounding_whitespace ... ok [INFO] [stdout] test changes::delta::tests::test_delta_sections_captures_section_lines ... ok [INFO] [stdout] test changes::delta::tests::test_clean_scalar_strips_double_quotes ... ok [INFO] [stdout] test changes::delta::tests::test_clean_scalar_strips_single_quotes ... ok [INFO] [stdout] test changes::delta::tests::test_flatten_nodes_empty ... ok [INFO] [stdout] test changes::delta::tests::test_flatten_nodes_no_children ... ok [INFO] [stdout] test changes::delta::tests::test_delta_sections_content_before_first_heading_is_ignored ... ok [INFO] [stdout] test changes::delta::tests::test_flatten_nodes_nested_children_included ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_added_edges_section ... ok [INFO] [stdout] test changes::delta::tests::test_delta_sections_empty_section_present_as_empty_string ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_added_nodes_section ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_empty_document ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_removed_nodes_section ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_node_section_with_edges_is_error ... ok [INFO] [stdout] test changes::delta::tests::test_clean_scalar_trims_whitespace ... ok [INFO] [stdout] test changes::delta::tests::test_delta_sections_extracts_named_sections ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_multiple_sections ... ok [INFO] [stdout] test changes::delta::tests::test_parse_rename_lines_backtick_quoted_ids ... ok [INFO] [stdout] test changes::delta::tests::test_delta_sections_empty_source ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_malformed_rename_is_error ... ok [INFO] [stdout] test changes::delta::tests::test_parse_rename_lines_happy_path ... ok [INFO] [stdout] test changes::delta::tests::test_parse_id_lines_none_gives_empty ... ok [INFO] [stdout] test changes::delta::tests::test_parse_id_lines_plain_ids_without_bullets ... ok [INFO] [stdout] test changes::delta::tests::test_parse_id_lines_strips_bullets_and_filters_empty ... ok [INFO] [stdout] test changes::rename::tests::test_artefact_content_refs_no_match ... ok [INFO] [stdout] test changes::delta::tests::test_parse_delta_renamed_nodes_section ... ok [INFO] [stdout] test changes::delta::tests::test_parse_rename_lines_missing_arrow_is_error ... ok [INFO] [stdout] test changes::rename::tests::test_artefact_content_refs_list_match ... ok [INFO] [stdout] test changes::rename::tests::test_frontmatter_references_list_match ... ok [INFO] [stdout] test changes::rename::tests::test_frontmatter_references_scalar_match ... ok [INFO] [stdout] test changes::rename::tests::test_insert_operation_adds_after_opening_dashes ... ok [INFO] [stdout] test changes::rename::tests::test_frontmatter_references_no_match ... ok [INFO] [stdout] test changes::rename::tests::test_insert_operation_trailing_newline ... ok [INFO] [stdout] test changes::rename::tests::test_insert_operation_without_frontmatter_does_not_insert ... ok [INFO] [stdout] test changes::rename::tests::test_artefact_content_refs_scalar_match ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_empty_heading_is_skipped ... ok [INFO] [stdout] test changes::rename::tests::test_frontmatter_references_body_mention_not_counted ... ok [INFO] [stdout] test changes::rename::tests::test_insert_operation_with_renamed_from ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_from_plain_h1 ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_no_heading_returns_none ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_prefers_first_matching_line ... ok [INFO] [stdout] test changes::rename::tests::test_update_frontmatter_reference_list_value ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_from_proposal_prefix ... ok [INFO] [stdout] test changes::rename::tests::test_update_frontmatter_reference_scalar_value ... ok [INFO] [stdout] test changes::tests::test_active_changes_lines_empty_returns_empty_vec ... ok [INFO] [stdout] test changes::rename::tests::test_update_frontmatter_reference_no_match_is_noop ... ok [INFO] [stdout] test changes::tests::test_active_changes_lines_format ... ok [INFO] [stdout] test changes::rename::tests::test_update_frontmatter_reference_trailing_newline ... ok [INFO] [stdout] test changes::tests::test_operation_summary_artefact_key_uses_lowercase_debug_variant ... ok [INFO] [stdout] test changes::tests::test_operation_summary_empty_returns_no_operations ... ok [INFO] [stdout] test changes::rename::tests::test_update_frontmatter_reference_body_not_modified ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_added_node_in_set ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_edge_endpoint_in_set ... ok [INFO] [stdout] test changes::tests::test_operation_summary_single_category ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_no_match_returns_empty ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_removed_node_in_set ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_renamed_node_matches_from_or_to ... ok [INFO] [stdout] test changes::tests::test_parse_blueprint_delta_added_round_trip ... ok [INFO] [stdout] test changes::tests::test_operations_for_nodes_renamed_edge_is_included ... ok [INFO] [stdout] test changes::tests::test_parse_blueprint_delta_modified_round_trip ... ok [INFO] [stdout] test changes::tests::test_operation_summary_multiple_categories_are_sorted_alphabetically ... ok [INFO] [stdout] test changes::rename::tests::test_proposal_title_trims_whitespace ... ok [INFO] [stdout] test changes::delta::tests::test_parse_rename_lines_none_gives_empty ... ok [INFO] [stdout] test changes::apply::tests::test_serialize_node_owns_files_true_emits_flag ... ok [INFO] [stdout] test changes::tests::test_parse_blueprint_delta_renamed_round_trip ... ok [INFO] [stdout] test changes::validate::tests::test_added_edge_missing_endpoint_errors ... ok [INFO] [stdout] test changes::tests::test_parse_blueprint_delta_removed_round_trip ... ok [INFO] [stdout] test changes::validate::tests::test_added_node_duplicate_in_delta ... ok [INFO] [stdout] test changes::validate::tests::test_existing_findings_are_propagated ... ok [INFO] [stdout] test changes::validate::tests::test_artefact_refs_unknown_node_errors ... ok [INFO] [stdout] test changes::validate::tests::test_added_node_already_in_graph ... ok [INFO] [stdout] test changes::validate::tests::test_modified_node_nonexistent ... ok [INFO] [stdout] test changes::validate::tests::test_artefact_refs_nodes_list_unknown_errors ... ok [INFO] [stdout] test changes::validate::tests::test_removed_edge_existing_succeeds ... ok [INFO] [stdout] test changes::validate::tests::test_artefact_refs_known_node_succeeds ... ok [INFO] [stdout] test changes::validate::tests::test_removed_edge_nonexistent_errors ... ok [INFO] [stdout] test changes::validate::tests::test_added_edge_with_new_node_succeeds ... ok [INFO] [stdout] test changes::validate::tests::test_removed_node_nonexistent ... ok [INFO] [stdout] test changes::validate::tests::test_conflicting_operations_on_same_node ... ok [INFO] [stdout] test changes::validate::tests::test_artefact_duplicate_target_errors ... ok [INFO] [stdout] test changes::validate::tests::test_renamed_artefact_missing_renamed_from_errors ... ok [INFO] [stdout] test changes::tests::test_validate_change_detects_conflicting_operations ... ok [INFO] [stdout] test changes::validate::tests::test_renamed_node_from_nonexistent ... ok [INFO] [stdout] test changes::validate::tests::test_renamed_node_to_concurrently_added_id ... ok [INFO] [stdout] test changes::validate::tests::test_valid_change_has_no_errors ... ok [INFO] [stdout] test cli::accept::tests::test_format_findings_no_blocked_note_when_false ... ok [INFO] [stdout] test changes::validate::tests::test_renamed_node_to_existing_id ... ok [INFO] [stdout] test cli::accept::tests::test_format_findings_single_passed_step ... ok [INFO] [stdout] test cli::accept::tests::test_format_findings_blocked_note_appended ... ok [INFO] [stdout] test cli::accept::tests::test_format_findings_detail_in_parentheses ... ok [INFO] [stdout] test cli::accept::tests::test_format_json_failed_wins_over_blocked ... ok [INFO] [stdout] test cli::accept::tests::test_format_json_produces_valid_json ... ok [INFO] [stdout] test cli::accept::tests::test_truncate_stderr_exactly_at_limit_not_truncated ... ok [INFO] [stdout] test cli::accept::tests::test_format_json_passed_status ... ok [INFO] [stdout] test cli::accept::tests::test_truncate_stderr_multibyte_chars_do_not_panic ... ok [INFO] [stdout] test cli::accept::tests::test_truncate_stderr_ascii_truncates_at_exact_limit ... ok [INFO] [stdout] test cli::accept::tests::test_truncate_stderr_short_string_returned_unchanged ... ok [INFO] [stdout] test cli::commands::tests::test_parse_hook_kind_all_valid_strings ... ok [INFO] [stdout] test cli::commands::tests::test_parse_hook_kind_unknown_returns_none ... ok [INFO] [stdout] test cli::commands::tests::test_legacy_blueprint_warning_both_files_warns ... ok [INFO] [stdout] test cli::commands::tests::test_legacy_blueprint_warning_blueprint_only_no_warning ... ok [INFO] [stdout] test cli::accept::tests::test_state_str_all_variants ... ok [INFO] [stdout] test cli::accept::tests::test_format_json_blocked_status ... ok [INFO] [stdout] test cli::commands::tests::test_requires_valid_map_all_listed_commands_return_true ... ok [INFO] [stdout] test cli::commands::tests::test_shared_exit_code_uppercase_error_severity_not_counted ... ok [INFO] [stdout] test cli::commands::tests::test_requires_valid_map_neighbourhood_is_missing ... ok [INFO] [stdout] test cli::commands::tests::test_shared_flags_multiple_flags_all_set ... ok [INFO] [stdout] test cli::commands::tests::test_shared_exit_code_lint_with_warnings_only_returns_zero ... ok [INFO] [stdout] test cli::commands::tests::test_shared_exit_code_lint_with_error_severity_returns_one ... ok [INFO] [stdout] test cli::commands::tests::test_shared_exit_code_non_lint_always_zero ... ok [INFO] [stdout] test cli::commands::tests::test_requires_valid_map_non_query_commands_return_false ... ok [INFO] [stdout] test cli::commands::tests::test_shared_flags_known_flag_sets_correct_flag ... ok [INFO] [stdout] test cli::commands::tests::test_shared_flags_unknown_arg_produces_empty_set ... ok [INFO] [stdout] test cli::export::builder::tests::format_timestamp_for_known_value ... ok [INFO] [stdout] test cli::export::builder::tests::unix_epoch_formats_to_zero_date ... ok [INFO] [stdout] test cli::export::json::tests::json_escape_handles_low_control_chars ... ok [INFO] [stdout] test cli::export::json::tests::json_escape_handles_specials ... ok [INFO] [stdout] test cli::export::markdown::tests::strip_em_dashes_replaces_with_comma_space ... ok [INFO] [stdout] test cli::export::markdown::tests::strip_em_dashes_passes_through_no_em ... ok [INFO] [stdout] test cli::export::mermaid::tests::empty_envelope_produces_valid_header ... ok [INFO] [stdout] test cli::export::mermaid::tests::edge_produces_arrow_line_with_sanitized_ids ... ok [INFO] [stdout] test cli::export::tests::json_first_key_is_schema_version ... ok [INFO] [stdout] test cli::export::mermaid::tests::mermaid_id_sanitizes_dots_and_hyphens ... ok [INFO] [stdout] test cli::export::tests::markdown_has_no_em_dashes ... ok [INFO] [stdout] test cli::export::runner::tests::parse_export_args_requires_output ... ok [INFO] [stdout] test cli::export::tests::markdown_has_required_sections_in_order ... ok [INFO] [stdout] test cli::format::tests::test_esc_all_specials_in_one_value ... ok [INFO] [stdout] test cli::format::tests::test_esc_backslash ... ok [INFO] [stdout] test cli::export::tests::schema_version_is_one ... ok [INFO] [stdout] test cli::format::tests::test_err_result_has_given_exit_code_and_stderr_message ... ok [INFO] [stdout] test cli::format::tests::test_decision_status_roundtrip ... ok [INFO] [stdout] test cli::export::runner::tests::parse_export_args_rejects_invalid_format ... ok [INFO] [stdout] test cli::format::tests::test_esc_backslash_is_escaped_first_so_replacements_do_not_double_escape ... ok [INFO] [stdout] test cli::format::tests::test_esc_backspace ... ok [INFO] [stdout] test cli::export::runner::tests::parse_export_args_accepts_md_format ... ok [INFO] [stdout] test cli::format::tests::test_esc_carriage_return ... ok [INFO] [stdout] test cli::format::tests::test_esc_empty_string ... ok [INFO] [stdout] test cli::format::tests::test_esc_form_feed ... ok [INFO] [stdout] test cli::format::tests::test_esc_double_quote ... ok [INFO] [stdout] test cli::format::tests::test_esc_newline ... ok [INFO] [stdout] test cli::format::tests::test_esc_no_special_chars ... ok [INFO] [stdout] test cli::format::tests::test_flag_value_found ... ok [INFO] [stdout] test cli::format::tests::test_lines_empty_returns_none ... ok [INFO] [stdout] test cli::format::tests::test_esc_tab ... ok [INFO] [stdout] test cli::format::tests::test_lines_multiple_values_joined_by_newline ... ok [INFO] [stdout] test cli::format::tests::test_flag_value_not_present_returns_none ... ok [INFO] [stdout] test cli::format::tests::test_flag_value_empty_args_returns_none ... ok [INFO] [stdout] test cli::format::tests::test_flag_value_flag_at_last_position_returns_none_not_panic ... ok [INFO] [stdout] test cli::format::tests::test_flag_value_returns_first_occurrence_when_repeated ... ok [INFO] [stdout] test cli::format::tests::test_node_arg_empty_slice_returns_error ... ok [INFO] [stdout] test cli::format::tests::test_parse_todo_status_filter_unknown_returns_none ... ok [INFO] [stdout] test cli::format::tests::test_parse_todo_status_filter_all_variants ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_existing_key ... ok [INFO] [stdout] test cli::format::tests::test_lines_single_value ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_cli_no_blueprint ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_empty_states ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_finding_code_table ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_missing_key_fallback ... ok [INFO] [stdout] test cli::format::tests::test_node_arg_missing_returns_cli_missing_node_finding ... ok [INFO] [stdout] test cli::format::tests::test_node_arg_returns_second_element ... ok [INFO] [stdout] test cli::format::tests::test_ok_result_has_exit_code_zero_and_stdout_message ... ok [INFO] [stdout] test cli::copy::tests::test_lookup_nested_key ... ok [INFO] [stdout] test cli::export::builder::tests::build_export_propagates_scanner_errors_with_ck001 ... ok [INFO] [stdout] test cli::format::tests::test_parse_decision_status_filter_unknown_returns_none ... ok [INFO] [stdout] test cli::format::tests::test_review_type_display_strings ... ok [INFO] [stdout] test cli::format::tests::test_source_verification_display_strings ... ok [INFO] [stdout] test cli::format::tests::test_string_array_json_empty ... ok [INFO] [stdout] test cli::format::tests::test_string_array_json_multiple ... ok [INFO] [stdout] test cli::format::tests::test_string_array_json_value_with_quote_is_escaped ... ok [INFO] [stdout] test cli::format::tests::test_parse_decision_status_filter_all_variants ... ok [INFO] [stdout] test cli::format::tests::test_todo_status_roundtrip ... ok [INFO] [stdout] test cli::format::tests::test_string_array_json_single ... ok [INFO] [stdout] test cli::tests::test_cli_ui_command_surfaces_option_errors ... ok [INFO] [stdout] test cli::tests::test_edit_distance ... ok [INFO] [stdout] test cli::tests::test_help_documents_exit_codes ... ok [INFO] [stdout] test cli::tests::test_help_documents_strict_flag ... ok [INFO] [stdout] test cli::tests::test_help_flag_returns_code_zero_with_command_names ... ok [INFO] [stdout] test cli::tests::test_help_flag_with_other_args ... ok [INFO] [stdout] test cli::tests::test_no_args_shows_help ... ok [INFO] [stdout] test error::tests::test_untriaged_suggested_edges_code_is_cc002 ... ok [INFO] [stdout] test hooks::architecture::tests::test_decision_with_list_affects ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_fires_on_module_add_without_decision ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_fires_on_module_remove_without_decision ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_fires_on_reassign_across_containers ... ok [INFO] [stdout] test error::tests::test_blocked_verification_code_is_cc001 ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_ignores_reorder_and_casing ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_passes_on_module_add_with_decision ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_ignores_path_rename_within_container ... ok [INFO] [stdout] test hooks::architecture::tests::test_gate_passes_with_escape_hatch ... ok [INFO] [stdout] test hooks::render::tests::test_decision_name_block_is_lowercase_block ... ok [INFO] [stdout] test hooks::render::tests::test_decision_name_pass_is_lowercase_pass ... ok [INFO] [stdout] test hooks::render::tests::test_esc_backslash_escaped_first ... ok [INFO] [stdout] test hooks::render::tests::test_esc_double_quote ... ok [INFO] [stdout] test hooks::render::tests::test_esc_newline ... ok [INFO] [stdout] test hooks::render::tests::test_hook_name_all_variants ... ok [INFO] [stdout] test hooks::render::tests::test_optional_json_none_produces_null ... ok [INFO] [stdout] test hooks::render::tests::test_optional_json_some_with_quote_is_escaped ... ok [INFO] [stdout] test hooks::render::tests::test_optional_json_some_produces_quoted_string ... ok [INFO] [stdout] test hooks::render::tests::test_render_human_no_findings_shows_none ... ok [INFO] [stdout] test hooks::render::tests::test_render_human_with_findings_lists_them ... ok [INFO] [stdout] test hooks::render::tests::test_render_json_finding_node_null_when_absent ... ok [INFO] [stdout] test hooks::render::tests::test_render_json_finding_node_present_when_set ... ok [INFO] [stdout] test hooks::render::tests::test_render_json_output_paths_serialized ... ok [INFO] [stdout] test hooks::render::tests::test_render_json_structure ... ok [INFO] [stdout] test hooks::tests::test_clean_id_plain_id_unchanged ... ok [INFO] [stdout] test hooks::tests::test_clean_id_strips_backticks ... ok [INFO] [stdout] test hooks::tests::test_clean_id_strips_double_quotes ... ok [INFO] [stdout] test hooks::render::tests::test_render_json_block_exit_code_is_one ... ok [INFO] [stdout] test hooks::tests::test_clean_id_strips_trailing_comma ... ok [INFO] [stdout] test hooks::tests::test_clean_id_trims_whitespace ... ok [INFO] [stdout] test hooks::tests::test_field_value_absent_field_returns_none ... ok [INFO] [stdout] test hooks::tests::test_field_value_extracts_quoted_value ... ok [INFO] [stdout] test hooks::tests::test_ids_from_text_empty_id_field_not_included ... ok [INFO] [stdout] test hooks::tests::test_ids_from_text_extracts_dotted_id_from_bullet ... ok [INFO] [stdout] test hooks::tests::test_ids_from_text_extracts_id_field ... ok [INFO] [stdout] test hooks::tests::test_ids_from_text_no_dotted_id_returns_empty ... ok [INFO] [stdout] test hooks::tests::test_is_id_char_accepts_valid_chars ... ok [INFO] [stdout] test hooks::tests::test_parse_edge_no_arrow_returns_none ... ok [INFO] [stdout] test hooks::tests::test_is_id_char_rejects_invalid_chars ... ok [INFO] [stdout] test hooks::tests::test_parse_edge_with_description_ignores_description ... ok [INFO] [stdout] test hooks::tests::test_parse_edge_with_spaces ... ok [INFO] [stdout] test hooks::tests::test_parse_edge_without_spaces ... ok [INFO] [stdout] test hooks::tests::test_structural_findings_keeps_only_errors ... ok [INFO] [stdout] test hooks::tests::test_tension_findings_keeps_warning_and_info_not_error ... ok [INFO] [stdout] test map::build::tests::test_build_duplicate_node_id_emits_integrity_error ... ok [INFO] [stdout] test map::build::tests::test_build_edge_with_missing_from_emits_invalid_endpoint ... ok [INFO] [stdout] test map::build::tests::test_build_child_node_has_parent_set ... ok [INFO] [stdout] test map::build::tests::test_build_external_findings_are_preserved ... ok [INFO] [stdout] test map::build::tests::test_build_edge_with_missing_to_emits_invalid_endpoint ... ok [INFO] [stdout] test map::build::tests::test_build_name_index_populated ... ok [INFO] [stdout] test map::build::tests::test_build_node_fields_propagated_correctly ... ok [INFO] [stdout] test map::build::tests::test_build_node_with_no_paths_is_synced ... ok [INFO] [stdout] test map::build::tests::test_build_node_with_nonexistent_path_is_ghost ... ok [INFO] [stdout] test map::build::tests::test_build_parent_children_field_lists_child_ids ... ok [INFO] [stdout] test map::build::tests::test_build_single_node_appears_in_graph ... ok [INFO] [stdout] test map::build::tests::test_build_path_tie_emits_integrity_error ... ok [INFO] [stdout] test map::build::tests::test_build_underscore_in_id_emits_invalid_id ... ok [INFO] [stdout] test map::build::tests::test_build_valid_edge_populates_outbound_and_inbound ... ok [INFO] [stdout] test map::build::tests::test_build_valid_id_produces_no_integrity_finding ... ok [INFO] [stdout] test map::build::tests::test_build_uppercase_id_emits_invalid_id ... ok [INFO] [stdout] test map::graph::tests::test_finding_display_format ... ok [INFO] [stdout] test map::graph::tests::test_has_errors_empty_findings_returns_false ... ok [INFO] [stdout] test map::graph::tests::test_has_errors_warning_only_returns_false ... ok [INFO] [stdout] test map::graph::tests::test_resolve_ambiguous_name_falls_through_to_error ... ok [INFO] [stdout] test map::graph::tests::test_resolve_by_unique_name_returns_node ... ok [INFO] [stdout] test map::graph::tests::test_resolve_exact_id_returns_node ... ok [INFO] [stdout] test map::graph::tests::test_resolve_suggestions_capped_at_three ... ok [INFO] [stdout] test map::graph::tests::test_resolve_unknown_id_error_is_error_severity ... ok [INFO] [stdout] test map::graph::tests::test_resolve_unknown_id_returns_not_found_finding ... ok [INFO] [stdout] test map::graph::tests::test_resolve_unknown_with_no_partial_match_has_no_suggestion ... ok [INFO] [stdout] test map::graph::tests::test_resolve_unknown_with_partial_match_includes_suggestion ... ok [INFO] [stdout] test map::graph::tests::test_severity_name_error ... ok [INFO] [stdout] test map::graph::tests::test_severity_name_info ... ok [INFO] [stdout] test map::graph::tests::test_severity_name_warning ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_acyclic_diamond_returns_no_findings ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_acyclic_linear_chain_returns_no_findings ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_detects_self_loop ... ok [INFO] [stdout] test map::graph::tests::test_has_errors_error_finding_returns_true ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_empty_graph_returns_no_findings ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_message_includes_path ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_node_field_is_set ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_three_node_cycle_returns_cairn_order_cycle ... ok [INFO] [stdout] test map::integrity::tests::test_cycle_findings_two_node_cycle_returns_cairn_order_cycle ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_cycle_returns_err_with_findings ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_all_nodes_present_in_output ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_empty_graph_returns_empty_vec ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_isolated_nodes_all_present ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_linear_chain_build_order ... ok [INFO] [stdout] test map::integrity::tests::test_topological_order_self_loop_returns_err ... ok [INFO] [stdout] test map::query::tests::islands_single_component_via_ownership_only ... ok [INFO] [stdout] test map::query::tests::islands_split_two_dependency_components ... ok [INFO] [stdout] test map::query::tests::islands_two_ownership_trees_stay_separate ... ok [INFO] [stdout] test map::query::tests::neighbourhood_with_options_diverges_against_default ... ok [INFO] [stdout] test map::query::tests::test_dependents_direct_returns_immediate_callers_only ... ok [INFO] [stdout] test map::query::tests::test_dependents_leaf_node_has_no_dependents ... ok [INFO] [stdout] test map::query::tests::test_dependents_transitive_chain ... ok [INFO] [stdout] test map::query::tests::test_dependents_transitive_cyclic_graph_terminates_and_excludes_start ... ok [INFO] [stdout] test map::query::tests::test_depends_direct_returns_immediate_neighbours_only ... ok [INFO] [stdout] test map::query::tests::test_depends_no_outbound_edges_returns_empty ... ok [INFO] [stdout] test map::query::tests::test_depends_transitive_chain ... ok [INFO] [stdout] test map::query::tests::test_depends_transitive_cyclic_graph_terminates_and_excludes_start ... ok [INFO] [stdout] test map::query::tests::test_depends_transitive_diamond_deduplicates ... ok [INFO] [stdout] test map::query::tests::test_depends_transitive_self_loop_excluded_from_result ... ok [INFO] [stdout] test map::query::tests::test_depends_unknown_node_returns_error ... ok [INFO] [stdout] test map::query::tests::test_files_returns_empty_list_for_node_with_no_claims ... ok [INFO] [stdout] test map::query::tests::test_get_returns_node_for_known_id ... ok [INFO] [stdout] test map::query::tests::test_get_unknown_id_returns_query_finding ... ok [INFO] [stdout] test map::query::tests::test_graph_query_edges_sorted_deterministically ... ok [INFO] [stdout] test map::query::tests::test_graph_query_includes_dependency_edges ... ok [INFO] [stdout] test map::query::tests::test_lint_includes_existing_graph_findings ... ok [INFO] [stdout] test map::query::tests::test_neighbourhood_includes_outbound_and_inbound ... ok [INFO] [stdout] test map::query::tests::test_neighbourhood_isolated_node_has_empty_edge_lists ... ok [INFO] [stdout] test map::query::tests::test_neighbourhood_node_id_returned_on_response ... ok [INFO] [stdout] test map::query::tests::test_order_cycle_returns_error ... ok [INFO] [stdout] test map::query::tests::test_order_linear_chain_returns_topological_order ... ok [INFO] [stdout] test map::query::tests::test_lint_detects_cycles_via_cycle_findings ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_allow_mutating_tools_flag ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_changes_dir_sets_path ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_empty_returns_default ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_file_sets_blueprint_path ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_root_missing_value_returns_err ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_help_returns_err_with_usage ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_root_sets_root_path ... ok [INFO] [stdout] test mcp::tests::test_config_from_args_unknown_option_returns_err ... ok [INFO] [stdout] test mcp::tests::test_handle_line_empty_string_returns_parse_error ... ok [INFO] [stdout] test mcp::tests::test_handle_line_id_null_when_absent_from_request ... ok [INFO] [stdout] test mcp::tests::test_handle_line_invalid_json_returns_parse_error ... ok [INFO] [stdout] test mcp::tests::test_handle_line_tools_call_missing_name_returns_invalid_params ... ok [INFO] [stdout] test mcp::tests::test_handle_line_initialize_echoes_id_and_returns_capabilities ... ok [INFO] [stdout] test mcp::tests::test_handle_line_tools_list_returns_tools_array ... ok [INFO] [stdout] test mcp::tests::test_handle_line_unknown_method_returns_method_not_found ... ok [INFO] [stdout] test mcp::tests::test_input_schema_hook_request_documents_kind_field ... ok [INFO] [stdout] test mcp::tests::test_input_schema_returns_object_for_every_registered_schema ... ok [INFO] [stdout] test mcp::tests::test_request_from_arguments_id_field_is_alias_for_node ... ok [INFO] [stdout] test mcp::tests::test_request_from_arguments_mutating_requires_allow_flag ... ok [INFO] [stdout] test mcp::tests::test_request_from_arguments_node_field_used_directly ... ok [INFO] [stdout] test mcp::tests::test_request_from_arguments_status_alias_kind ... ok [INFO] [stdout] test mcp::tests::test_request_from_arguments_node_wins_over_id_alias ... ok [INFO] [stdout] test mcp::tests::test_resolve_path_relative_is_joined_with_root ... ok [INFO] [stdout] test mcp::tests::test_resolve_path_absolute_is_returned_unchanged ... ok [INFO] [stdout] test provenance::trace::tests::higher_version_rejected_via_in_memory_value ... ok [INFO] [stdout] test provenance::trace::tests::prompts_field_is_empty_in_this_phase ... ok [INFO] [stdout] test provenance::trace::tests::read_sidecar_io_error_for_missing_file ... ok [INFO] [stdout] test provenance::trace::tests::read_sidecar_rejects_higher_version ... ok [INFO] [stdout] test provenance::trace::tests::read_sidecar_round_trips_against_disk ... ok [INFO] [stdout] test provenance::trace::tests::sidecar_carries_phase_field ... ok [INFO] [stdout] test provenance::trace::tests::sidecar_round_trips_through_serde ... ok [INFO] [stdout] test provenance::trace::tests::stage_record_token_fields_optional ... ok [INFO] [stdout] test query_api::change_queries::tests::test_accept_draft_missing_id_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_accept_draft_not_found_errors ... ok [INFO] [stdout] test provenance::trace::tests::sidecar_carries_four_native_stages ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_already_accepted_draft_is_rejected ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_already_discarded_draft_is_rejected ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_draft_not_found_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_draft_transitions_to_discarded ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_draft_missing_id_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_accepted_draft_is_rejected ... ok [INFO] [stdout] test query_api::change_queries::tests::test_discard_records_transition ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_discarded_draft_is_rejected ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_draft_not_found_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_draft_writes_editable_file ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_draft_missing_id_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_list_drafts_empty_store ... ok [INFO] [stdout] test query_api::change_queries::tests::test_edit_records_transition ... ok [INFO] [stdout] test query_api::change_queries::tests::test_list_drafts_returns_summaries ... ok [INFO] [stdout] test query_api::change_queries::tests::test_show_draft_missing_id_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_show_draft_not_found_errors ... ok [INFO] [stdout] test query_api::change_queries::tests::test_show_draft_returns_full_draft ... ok [INFO] [stdout] test query_api::registry::tests::test_draft_accept_is_mutating ... ok [INFO] [stdout] test query_api::registry::tests::test_draft_discard_is_mutating ... ok [INFO] [stdout] test query_api::registry::tests::test_draft_edit_is_mutating ... ok [INFO] [stdout] test query_api::registry::tests::test_draft_show_is_readonly ... ok [INFO] [stdout] test query_api::registry::tests::test_drafts_is_readonly ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_contains_draft_discard ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_contains_draft_edit ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_contains_draft_accept ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_contains_draft_show ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_contains_drafts ... ok [INFO] [stdout] test query_api::registry::tests::test_registry_size ... ok [INFO] [stdout] test query_api::tests::test_envelope_json_wraps_response ... ok [INFO] [stdout] test query_api::tests::test_error_json_includes_optional_fields ... ok [INFO] [stdout] test query_api::tests::test_execute_rejects_unknown_or_invalid_requests ... ok [INFO] [stdout] test cli::tests::test_cli_init_and_version_commands ... ok [INFO] [stdout] test query_api::tests::test_execute_returns_node_json_for_valid_request ... ok [INFO] [stdout] test query_api::tests::test_execute_watch_returns_finding_added_events ... ok [INFO] [stdout] test query_api::tests::test_registry_includes_health_tool ... ok [INFO] [stdout] test query_api::tests::test_registry_includes_remediate_tool ... ok [INFO] [stdout] test query_api::tests::test_registry_includes_watch_tool ... ok [INFO] [stdout] test query_api::tests::test_registry_lists_known_tools ... ok [INFO] [stdout] test query_api::tests::test_requires_valid_map_neighbourhood_missing_from_mcp_path ... ok [INFO] [stdout] test query_api::tests::test_visible_tools_filter_mutating_entries ... ok [INFO] [stdout] test reconcile::fixture::tests::test_fixture_reconciler_id_format ... ok [INFO] [stdout] test reconcile::fixture::tests::test_fixture_reconciler_produces_findings ... ok [INFO] [stdout] test scanner::config::tests::test_asymmetry_matches_exact_node_role_and_paths ... ok [INFO] [stdout] test scanner::config::tests::test_asymmetry_rejects_extra_path ... ok [INFO] [stdout] test scanner::config::tests::test_asymmetry_rejects_wrong_node ... ok [INFO] [stdout] test scanner::config::tests::test_asymmetry_rejects_wrong_role ... ok [INFO] [stdout] test scanner::config::tests::test_blueprint_file_is_protected ... ok [INFO] [stdout] test scanner::config::tests::test_cairn_hidden_dir_is_protected ... ok [INFO] [stdout] test cli::tests::test_onboard_json_output_is_valid_json ... ok [INFO] [stdout] test scanner::config::tests::test_config_file_is_protected ... ok [INFO] [stdout] test scanner::config::tests::test_directory_prefix_match ... ok [INFO] [stdout] test scanner::config::tests::test_empty_pattern_is_skipped ... ok [INFO] [stdout] test scanner::config::tests::test_glob_does_not_match_wrong_extension ... ok [INFO] [stdout] test scanner::config::tests::test_exact_match ... ok [INFO] [stdout] test scanner::config::tests::test_glob_extension_match ... ok [INFO] [stdout] test scanner::config::tests::test_load_ignore_file_missing_returns_empty ... ok [INFO] [stdout] test scanner::config::tests::test_load_ignore_file_strips_comments_and_blanks ... ok [INFO] [stdout] test scanner::config::tests::test_meta_prefix_is_protected ... ok [INFO] [stdout] test scanner::config::tests::test_meta_prefix_not_matched_for_metadata ... ok [INFO] [stdout] test scanner::config::tests::test_no_match_returns_false ... ok [INFO] [stdout] test scanner::config::tests::test_parse_config_context_field ... ok [INFO] [stdout] test scanner::config::tests::test_parse_config_ignore_list ... ok [INFO] [stdout] test scanner::config::tests::test_parse_config_rules_map ... ok [INFO] [stdout] test scanner::config::tests::test_parse_config_state_backend_field ... ok [INFO] [stdout] test scanner::config::tests::test_parse_config_targets ... ok [INFO] [stdout] test scanner::config::tests::test_partial_prefix_not_matched ... ok [INFO] [stdout] test scanner::config::tests::test_suffix_match ... ok [INFO] [stdout] test scanner::config::tests::test_normal_paths_are_not_protected ... ok [INFO] [stdout] test scanner::config::tests::test_trailing_slash_in_pattern_is_trimmed ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_added_uncovered_node_emits_finding ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_covered_added_node_no_finding ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_no_finding_when_no_decisions ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_no_finding_when_previous_is_empty ... ok [INFO] [stdout] test cli::tests::test_check_json_output_is_valid_json ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_removed_node_uncovered_emits_finding ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_path_only_no_finding ... ok [INFO] [stdout] test scanner::tests::test_blueprint_change_superseded_decision_covers_added_node ... ok [INFO] [stdout] test scanner::tests::test_dedup_drops_exact_duplicate ... ok [INFO] [stdout] test scanner::tests::test_dedup_empty_is_noop ... ok [INFO] [stdout] test scanner::tests::test_dedup_keeps_different_paths ... ok [INFO] [stdout] test scanner::tests::test_dedup_keeps_different_targets ... ok [INFO] [stdout] test scanner::tests::test_dedup_merges_same_issue_different_message ... ok [INFO] [stdout] test scanner::tests::test_dedup_preserves_order_and_first_occurrence ... ok [INFO] [stdout] test scanner::tests::test_divergence_different_roles_no_finding ... ok [INFO] [stdout] test scanner::tests::test_divergence_single_report_no_finding ... ok [INFO] [stdout] test scanner::tests::test_divergence_two_reports_different_hash_emits_ct001 ... ok [INFO] [stdout] test scanner::tests::test_divergence_two_reports_same_hash_no_finding ... ok [INFO] [stdout] test scanner::tests::test_provenance_coverage_covered_leaf_no_warning ... ok [INFO] [stdout] test scanner::tests::test_provenance_coverage_no_decisions_no_findings ... ok [INFO] [stdout] test scanner::tests::test_provenance_coverage_parent_node_exempt_from_warning ... ok [INFO] [stdout] test scanner::tests::test_provenance_coverage_uncovered_leaf_emits_warning ... ok [INFO] [stdout] test sse::tests::test_connect_errors_on_non_200_status ... ok [INFO] [stdout] test sse::tests::test_parse_http_url_custom_port ... ok [INFO] [stdout] test sse::tests::test_connect_returns_events_from_mock_server ... ok [INFO] [stdout] test sse::tests::test_parse_http_url_host_and_path ... ok [INFO] [stdout] test sse::tests::test_parse_http_url_no_path_defaults_to_slash ... ok [INFO] [stdout] test sse::tests::test_parse_http_url_rejects_non_http ... ok [INFO] [stdout] test query_api::tests::test_execute_health_returns_structured_response ... ok [INFO] [stdout] test sse::tests::test_parse_multiline_data ... ok [INFO] [stdout] test sse::tests::test_parse_ignores_comments_and_retry ... ok [INFO] [stdout] test sse::tests::test_parse_multiple_events ... ok [INFO] [stdout] test query_api::tests::test_execute_remediate_returns_action_plan ... ok [INFO] [stdout] test sse::tests::test_parse_single_event ... ok [INFO] [stdout] test state::tests::beads_create_task_beads_returns_bead_ids ... ok [INFO] [stdout] test state::tests::beads_list_child_tasks_returns_task_titles ... ok [INFO] [stdout] test state::tests::beads_claim_change_succeeds ... ok [INFO] [stdout] test state::tests::list_empty_when_root_missing ... ok [INFO] [stdout] test state::tests::load_missing_returns_none ... ok [INFO] [stdout] test state::tests::query_by_dependency_filters_records ... ok [INFO] [stdout] test state::tests::beads_create_change_epic_returns_bead_id ... ok [INFO] [stdout] test sse::tests::test_parse_empty_stream ... ok [INFO] [stdout] test state::tests::query_by_label_filters_records ... ok [INFO] [stdout] test state::tests::remove_missing_is_idempotent ... ok [INFO] [stdout] test state::tests::round_trip_save_and_load ... ok [INFO] [stdout] test state::tests::remove_deletes_record ... ok [INFO] [stdout] test state::tests::query_by_type_filters_records ... ok [INFO] [stdout] test state::tests::save_overwrites_existing ... ok [INFO] [stdout] test state::tests::storage_backend_unknown_returns_error ... ok [INFO] [stdout] test suggested_edges::tests::count_pending_counts_only_pending ... ok [INFO] [stdout] test state::tests::storage_backend_filesystem_returns_working_backend ... ok [INFO] [stdout] test suggested_edges::tests::queue_round_trips_through_serde ... ok [INFO] [stdout] test suggested_edges::tests::read_queue_rejects_higher_version ... ok [INFO] [stdout] test suggested_edges::tests::read_queue_returns_none_when_absent ... ok [INFO] [stdout] test suggested_edges::tests::triage_state_defaults_to_pending ... ok [INFO] [stdout] test suggested_edges::tests::read_queue_round_trips_against_disk ... ok [INFO] [stdout] test suggested_edges::tests::validate_strict_absent_queue_returns_ok ... ok [INFO] [stdout] test suggested_edges::tests::validate_strict_malformed_file_returns_cc003 ... ok [INFO] [stdout] test suggested_edges::tests::validate_strict_zero_pending_returns_ok ... ok [INFO] [stdout] test suggested_edges::tests::validate_strict_pending_entries_returns_cc002 ... ok [INFO] [stdout] test suggested_edges::tests::write_to_change_creates_directory_and_file ... ok [INFO] [stdout] test suggested_edges::tests::edge_provenance_round_trips ... ok [INFO] [stdout] test suggested_edges::tests::write_to_change_is_idempotent_on_overwrite ... ok [INFO] [stdout] test suggested_edges::tests::write_to_change_round_trips_content ... ok [INFO] [stdout] test state::tests::list_returns_saved_keys ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_already_accepted_draft_is_rejected ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_discarded_draft_is_rejected ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_edited_missing_file_errors ... ok [INFO] [stdout] test state::tests::storage_backend_beads_returns_working_backend ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_missing_draft_errors ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_node_not_found_errors ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_happy_path_replaces_contract ... ok [INFO] [stdout] test summariser::backend::tests::disabled_backend_returns_disabled_error ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_invalid_frontmatter_errors ... ok [INFO] [stdout] test summariser::backend::tests::mode_default_is_disabled ... ok [INFO] [stdout] test summariser::backend::tests::mode_round_trips_through_serde ... ok [INFO] [stdout] test summariser::backend::tests::test_fake_backend_different_requests_returns_same_response ... ok [INFO] [stdout] test summariser::backend::tests::test_fake_backend_err_returns_configured_error ... ok [INFO] [stdout] test summariser::backend::tests::test_fake_backend_ok_returns_configured_response ... ok [INFO] [stdout] test summariser::backend::tests::test_hosted_backend_returns_unsupported_error ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_edited_reads_editable_file ... ok [INFO] [stdout] test summariser::backend::tests::test_hosted_config_round_trips_through_serde ... ok [INFO] [stdout] test summariser::backend::tests::test_hosted_config_with_defaults_parses ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_wrong_node_errors ... ok [INFO] [stdout] test summariser::backend::tests::local_command_mode_exposes_timeout ... ok [INFO] [stdout] test summariser::accept::tests::test_accept_records_interface_hash ... ok [INFO] [stdout] test summariser::backend::tests::test_local_command_backend_invalid_json_returns_parse_error ... ok [INFO] [stdout] test summariser::backend::tests::test_local_command_backend_non_zero_exit_returns_error ... ok [INFO] [stdout] test summariser::backend::tests::test_local_command_backend_echoes_valid_response ... ok [INFO] [stdout] test summariser::config::tests::test_load_missing_file_returns_defaults ... ok [INFO] [stdout] test summariser::config::tests::test_load_disabled_mode_from_file ... ok [INFO] [stdout] test summariser::generate::tests::test_draft_header_metadata_round_trips_through_serde ... ok [INFO] [stdout] test summariser::generate::tests::test_draft_header_omits_none_metadata_from_json ... ok [INFO] [stdout] test summariser::generate::tests::test_draft_header_deserialises_without_metadata_field ... ok [INFO] [stdout] test summariser::config::tests::test_load_local_command_mode ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_draft_contains_node_id ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_preserves_code_samples_in_request ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_none_metadata_stored_as_none ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_creates_pending_draft ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_returns_backend_error ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_returns_store_conflict ... ok [INFO] [stdout] test summariser::generate::tests::test_generate_stores_metadata_from_response ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_filters_interface_findings ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_node_not_found_errors ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_no_contract_returns_none ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_omits_empty_tags_from_map_facts ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_includes_code_samples ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_populates_context_and_rules ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_drops_samples_when_prompt_too_large ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_populates_map_facts ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_request_id_and_target_preserved ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_skips_missing_code_files ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_reads_contract_fallback_when_not_in_set ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_truncates_code_samples_per_file_limit ... ok [INFO] [stdout] test summariser::request::tests::request_omits_empty_defaults ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_uses_contract_body_from_set ... ok [INFO] [stdout] test summariser::request::tests::request_rejects_unknown_fields ... ok [INFO] [stdout] test summariser::request::tests::request_round_trips_through_serde ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_truncates_contract_when_prompt_too_large ... ok [INFO] [stdout] test summariser::request::tests::response_legacy_summary_only_is_rejected ... ok [INFO] [stdout] test summariser::request::tests::response_rejects_unknown_fields ... ok [INFO] [stdout] test summariser::request::tests::response_round_trips_through_serde ... ok [INFO] [stdout] test summariser::request::tests::response_without_metadata_parses ... ok [INFO] [stdout] test summariser::request::tests::response_without_summary_parses ... ok [INFO] [stdout] test summariser::store::tests::accepted_constructor_rejects_empty_hash ... ok [INFO] [stdout] test summariser::store::tests::deserialise_draft_without_transitions_field ... ok [INFO] [stdout] test summariser::store::tests::draft_status_returns_correct_variant ... ok [INFO] [stdout] test summariser::store::tests::draft_with_transitions_serialises_them ... ok [INFO] [stdout] test summariser::store::tests::accepted_carries_non_empty_hash ... ok [INFO] [stdout] test summariser::request::tests::request_serialises_with_design_doc_field_names ... ok [INFO] [stdout] test summariser::store::tests::draft_without_transitions_omits_field_in_json ... ok [INFO] [stdout] test summariser::store::tests::editable_extension_falls_back_to_txt_for_unknown ... ok [INFO] [stdout] test summariser::store::tests::pending_round_trips_through_serde ... ok [INFO] [stdout] test summariser::store::tests::pending_serialised_form_omits_hash_field ... ok [INFO] [stdout] test summariser::store::tests::store_list_returns_sorted_drafts ... ok [INFO] [stdout] test summariser::prompt::tests::test_build_request_omits_empty_description_from_map_facts ... ok [INFO] [stdout] test summariser::store::tests::store_read_missing_returns_not_found ... ok [INFO] [stdout] test summariser::store::tests::store_write_refuses_conflict ... ok [INFO] [stdout] test summariser::store::tests::store_overwrite_replaces_existing ... ok [INFO] [stdout] test summariser::store::tests::store_write_then_read_round_trip ... ok [INFO] [stdout] test summariser::store::tests::transition_accepted_to_any_is_invalid ... ok [INFO] [stdout] test summariser::store::tests::transition_discarded_to_any_is_invalid ... ok [INFO] [stdout] test summariser::store::tests::transition_editable_to_accepted_is_valid ... ok [INFO] [stdout] test summariser::store::tests::transition_editable_to_discarded_is_valid ... ok [INFO] [stdout] test summariser::store::tests::transition_pending_to_accepted_is_valid ... ok [INFO] [stdout] test summariser::store::tests::transition_pending_to_editable_is_valid ... ok [INFO] [stdout] test summariser::test_package_name_returns_cairn ... ok [INFO] [stdout] test summariser::test_package_version_is_not_empty ... ok [INFO] [stdout] test summariser::test_version_label_includes_name_and_version ... ok [INFO] [stdout] test summariser::tests::test_phase_one_registry_safety_classes ... ok [INFO] [stdout] test tests::test_package_name_returns_cairn ... ok [INFO] [stdout] test summariser::store::tests::write_editable_uses_artefact_extension ... ok [INFO] [stdout] test tests::test_package_version_is_not_empty ... ok [INFO] [stdout] test tests::test_phase_one_registry_safety_classes ... ok [INFO] [stdout] test summariser::store::tests::transition_pending_to_discarded_is_valid ... ok [INFO] [stdout] test tests::test_version_label_includes_name_and_version ... ok [INFO] [stdout] test ui::api::tests::test_fmn_block_list_is_matched ... ok [INFO] [stdout] test ui::api::tests::test_fmn_absent_node_key_returns_false ... ok [INFO] [stdout] test ui::api::tests::test_fmn_prefix_node_key_does_not_match_child ... ok [INFO] [stdout] test ui::api::tests::test_fmn_block_list_no_false_positive_for_prefix ... ok [INFO] [stdout] test ui::api::tests::test_fmn_exact_scalar_node_key_matches ... ok [INFO] [stdout] test ui::api::tests::test_fmn_prefix_nodes_inline_list_does_not_false_positive ... ok [INFO] [stdout] test ui::api::tests::test_fmn_inline_list_exact_match ... ok [INFO] [stdout] test ui::api::tests::test_title_from_body_empty_h1_uses_fallback ... ok [INFO] [stdout] test ui::api::tests::test_title_from_body_extracts_h1 ... ok [INFO] [stdout] test ui::api::tests::test_title_from_body_uses_fallback_when_no_h1 ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_empty_string ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_invalid_hex_pair_preserves_both_chars ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_mixed_valid_and_plain ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_no_encoding_unchanged ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_truncated_percent_at_end_preserved ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_valid_sequence_decoded ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_truncated_percent_one_char_preserved ... ok [INFO] [stdout] test ui::tests::test_request_path_supports_get_only ... ok [INFO] [stdout] test ui::serialise::tests::test_percent_decode_plus_becomes_space ... ok [INFO] [stdout] test verification::tests::test_verification_state_serde_roundtrip ... ok [INFO] [stdout] test watch::tests::test_diff_added ... ok [INFO] [stdout] test watch::tests::test_diff_empty_both ... ok [INFO] [stdout] test watch::tests::test_diff_mixed ... ok [INFO] [stdout] test watch::tests::test_diff_resolved ... ok [INFO] [stdout] test cli::tests::test_cli_change_commands_and_error_paths ... ok [INFO] [stdout] test watch::tests::test_diff_same_key_different_message_emits_resolved_and_added ... ok [INFO] [stdout] test watch::tests::test_diff_unchanged ... ok [INFO] [stdout] test watch::tests::test_diff_same_key_different_severity ... ok [INFO] [stdout] test watch::tests::test_unix_to_datetime_epoch ... ok [INFO] [stdout] test watch::tests::test_unix_to_datetime_known_date ... ok [INFO] [stdout] test watch::tests::watch_opts_defaults ... ok [INFO] [stdout] test watch::tests::watch_opts_interval ... ok [INFO] [stdout] test watch::tests::watch_opts_interval_and_once ... ok [INFO] [stdout] test watch::tests::watch_opts_once ... ok [INFO] [stdout] test watch::tests::watch_opts_rejects_invalid_interval ... ok [INFO] [stdout] test watch::tests::watch_opts_rejects_unknown_flags ... ok [INFO] [stdout] test watch::tests::watch_opts_rejects_missing_interval_value ... ok [INFO] [stdout] test watch::tests::watch_opts_rejects_zero_interval ... ok [INFO] [stdout] test ui::tests::test_ui_rejects_unsupported_methods ... ok [INFO] [stdout] test cli::tests::test_cli_import_openspec_migrates_phases ... ok [INFO] [stdout] test cli::tests::test_unknown_command_preserves_existing_behaviour ... ok [INFO] [stdout] test cli::tests::test_check_json_with_target_node ... ok [INFO] [stdout] test cli::tests::test_unknown_command_suggests_close_match ... ok [INFO] [stdout] test cli::tests::test_cli_summarise_disabled_by_default ... ok [INFO] [stdout] test ui::tests::test_ui_returns_not_found_for_unknown_routes ... ok [INFO] [stdout] test ui::tests::test_ui_route_dispatch_and_content_types ... ok [INFO] [stdout] test cli::tests::test_cli_drafts_and_draft_show_json ... ok [INFO] [stdout] test cli::tests::test_unknown_command_lists_available_when_distant ... ok [INFO] [stdout] test cli::tests::test_cli_draft_mutating_commands_json ... ok [INFO] [stdout] test cli::tests::test_cli_core_commands_support_human_and_json_output ... ok [INFO] [stdout] test cli::tests::test_check_output_for_empty_states ... ok [INFO] [stdout] test summariser::backend::tests::test_local_command_backend_timeout_returns_timeout_error ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 791 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.24s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/cairn-d9a67f672ef0942a) [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/cairn-lsp.rs (/opt/rustwide/target/debug/deps/cairn_lsp-5096e2ab758f8163) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/cairn-mcp.rs (/opt/rustwide/target/debug/deps/cairn_mcp-d2faa3f2b41cc687) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/artefacts_contract.rs (/opt/rustwide/target/debug/deps/artefacts_contract-3c1598021711ffa6) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test test_contract_missing_node_frontmatter_emits_error ... ok [INFO] [stdout] test test_contract_body_is_preserved ... ok [INFO] [stdout] test test_missing_contract_file_is_silently_skipped ... ok [INFO] [stdout] test test_contract_wrong_node_emits_error ... ok [INFO] [stdout] test test_happy_path_contract_loads_correctly ... ok [INFO] [stdout] test test_contract_unknown_node_emits_error ... ok [INFO] [stdout] test test_node_with_no_contracts_produces_no_findings ... ok [INFO] [stdout] test test_multiple_contracts_on_different_nodes ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/artefacts_frontmatter.rs (/opt/rustwide/target/debug/deps/artefacts_frontmatter-78a67d5138205692) [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test test_empty_frontmatter_block ... ok [INFO] [stdout] test test_inline_comment_stripped_from_value ... ok [INFO] [stdout] test test_block_list_id_field_items ... ok [INFO] [stdout] test test_block_list_inline_comment_stripped ... ok [INFO] [stdout] test test_body_after_closing_dashes ... ok [INFO] [stdout] test test_inline_list_parsed_into_lists ... ok [INFO] [stdout] test test_body_is_empty_when_only_frontmatter ... ok [INFO] [stdout] test test_block_list_new_key_resets_active_list ... ok [INFO] [stdout] test test_inline_list_empty_brackets ... ok [INFO] [stdout] test test_body_with_dashes_is_not_re_parsed ... ok [INFO] [stdout] test test_block_list_simple_items ... ok [INFO] [stdout] test test_frontmatter_equality_and_clone ... ok [INFO] [stdout] test test_inline_list_single_item ... ok [INFO] [stdout] test test_key_with_colon_in_value ... ok [INFO] [stdout] test test_no_frontmatter_when_dashes_not_first_line ... ok [INFO] [stdout] test test_no_frontmatter_body_is_full_source ... ok [INFO] [stdout] test test_quoted_value_strips_single_quotes ... ok [INFO] [stdout] test test_simple_key_value ... ok [INFO] [stdout] test test_unclosed_frontmatter_parses_keys ... ok [INFO] [stdout] test test_quoted_value_strips_double_quotes ... ok [INFO] [stdout] test test_inline_list_also_stored_in_values ... ok [INFO] [stderr] Running tests/blueprint_lexer.rs (/opt/rustwide/target/debug/deps/blueprint_lexer-bba38c55755f0d0d) [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 32 tests [INFO] [stdout] test test_arrow ... ok [INFO] [stdout] test test_close_bracket ... ok [INFO] [stdout] test test_colon ... ok [INFO] [stdout] test test_comma ... ok [INFO] [stdout] test test_comment_only_source_produces_only_eof ... ok [INFO] [stdout] test test_close_brace ... ok [INFO] [stdout] test test_edge_token_sequence ... ok [INFO] [stdout] test test_comment_to_end_of_line_is_skipped ... ok [INFO] [stdout] test test_empty_source_produces_only_eof ... ok [INFO] [stdout] test test_empty_string ... ok [INFO] [stdout] test test_full_node_declaration_token_sequence ... ok [INFO] [stdout] test test_multiple_tags ... ok [INFO] [stdout] test test_open_bracket ... ok [INFO] [stdout] test test_simple_string ... ok [INFO] [stdout] test test_simple_tag ... ok [INFO] [stdout] test test_simple_word ... ok [INFO] [stdout] test test_string_with_escaped_quote ... ok [INFO] [stdout] test test_string_with_backslash_n_produces_literal_n ... ok [INFO] [stdout] test test_tag_with_hyphen ... ok [INFO] [stdout] test test_token_span_line_increments_after_newline ... ok [INFO] [stdout] test test_token_span_line_starts_at_one ... ok [INFO] [stdout] test test_word_stops_at_colon ... ok [INFO] [stdout] test test_token_span_file_is_propagated ... ok [INFO] [stdout] test test_whitespace_between_tokens_is_skipped ... ok [INFO] [stdout] test test_token_span_column_starts_at_one ... ok [INFO] [stdout] test test_unterminated_string_is_error ... ok [INFO] [stdout] test test_word_stops_at_open_brace ... ok [INFO] [stdout] test test_word_stops_before_arrow ... ok [INFO] [stdout] test test_word_with_dot ... ok [INFO] [stdout] test test_word_with_trailing_hyphen_not_confused_with_arrow ... ok [INFO] [stdout] test test_word_with_hyphen ... ok [INFO] [stdout] test test_open_brace ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/blueprint_parser.rs (/opt/rustwide/target/debug/deps/blueprint_parser-9e3a09fe1c824e41) [INFO] [stdout] [INFO] [stdout] running 27 tests [INFO] [stdout] test test_edge_span_line_is_correct ... ok [INFO] [stdout] test test_edge_missing_arrow_is_error ... ok [INFO] [stdout] test test_multiple_edges_parsed ... ok [INFO] [stdout] test test_nested_child_node ... ok [INFO] [stdout] test test_actor_node_parsed ... ok [INFO] [stdout] test test_node_span_file_matches_input ... ok [INFO] [stdout] test test_module_node_parsed ... ok [INFO] [stdout] test test_node_with_owns_files_false ... ok [INFO] [stdout] test test_node_with_raw_field ... ok [INFO] [stdout] test test_node_with_owns_files_true ... ok [INFO] [stdout] test test_node_with_single_tag ... ok [INFO] [stdout] test test_single_edge_parsed ... ok [INFO] [stdout] test test_nodes_and_edges_in_one_source ... ok [INFO] [stdout] test test_system_node_parsed ... ok [INFO] [stdout] test test_node_with_single_path ... ok [INFO] [stdout] test test_unclosed_brace_is_error ... ok [INFO] [stdout] test test_empty_source_produces_empty_ast ... ok [INFO] [stdout] test test_missing_id_keyword_is_error ... ok [INFO] [stdout] test test_unknown_node_kind_is_edge_not_node ... ok [INFO] [stdout] test test_empty_path_list_produces_no_paths ... ok [INFO] [stdout] test test_node_with_multiple_paths_list_syntax ... ok [INFO] [stdout] test test_container_node_parsed ... ok [INFO] [stdout] test test_deeply_nested_nodes ... ok [INFO] [stderr] Running tests/check_file_sizes.rs (/opt/rustwide/target/debug/deps/check_file_sizes-9d8ebe214c1fbc7b) [INFO] [stdout] test test_node_with_contract ... ok [INFO] [stdout] test test_node_with_multiple_raw_fields ... ok [INFO] [stdout] test test_node_with_multiple_separate_path_declarations ... ok [INFO] [stdout] test test_node_with_multiple_tags ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Running tests/command_reference_consistency.rs (/opt/rustwide/target/debug/deps/command_reference_consistency-432b3f1e64282f4a) [INFO] [stdout] test test_check_file_sizes_script_behaviour ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test test_agent_voice_doc_exists ... ok [INFO] [stdout] test test_agent_principles_doc_exists ... ok [INFO] [stdout] test test_all_registered_commands_are_documented ... ok [INFO] [stdout] test test_agent_graphite_doc_exists_with_gt_content ... ok [INFO] [stdout] test test_architecture_decision_hook_is_documented ... ok [INFO] [stdout] test test_all_documented_commands_exist_in_cli ... ok [INFO] [stdout] test test_ch001_in_error_registry ... ok [INFO] [stdout] test test_claude_md_documents_debate_format ... ok [INFO] [stdout] test test_claude_md_preserves_load_bearing_rules ... ok [INFO] [stdout] test test_claude_md_has_pointers_to_agent_subdocs ... ok [INFO] [stdout] test test_command_reference_doc_up_to_date ... ok [INFO] [stdout] test test_integration_contract_exit_codes_match_cli ... ok [INFO] [stdout] test test_tui_graph_viewer_design_note_exists_and_covers_questions ... ok [INFO] [stdout] test test_hooks_doc_lists_architecture_decision ... ok [INFO] [stdout] test test_architecture_decision_hook_in_integration_contract ... ok [INFO] [stdout] test test_all_registered_commands_in_integration_contract ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running tests/conventions.rs (/opt/rustwide/target/debug/deps/conventions-45fa10b3d35d8aff) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test test_every_allow_attr_has_reason_comment ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s [INFO] [stdout] [INFO] [stderr] Running tests/decision_claims.rs (/opt/rustwide/target/debug/deps/decision_claims-002fe0ad54d352a2) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_no_claims_no_finding ... ok [INFO] [stdout] test test_illustrative_claims_never_emit_finding ... ok [INFO] [stdout] test test_exhaustive_claims_match_emits_no_finding ... ok [INFO] [stdout] test test_exhaustive_claims_missing_file_emits_finding ... ok [INFO] [stdout] test test_exhaustive_claims_extra_file_emits_finding ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stderr] Running tests/fixtures_smoke.rs (/opt/rustwide/target/debug/deps/fixtures_smoke-41de5497195b7098) [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test test_bootstrap_fixture_readable_contains_declared_node ... ok [INFO] [stdout] test test_root_fixture_readable_contains_declared_node ... ok [INFO] [stdout] test test_cli_version_prints_package_name_and_version ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/gitignore_lint.rs (/opt/rustwide/target/debug/deps/gitignore_lint-50a1b7e20f6e34a8) [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_non_gitignored_path_no_warning ... ok [INFO] [stdout] test test_no_gitignore_no_warning ... ok [INFO] [stdout] test test_wildcard_gitignore_pattern_matches ... ok [INFO] [stdout] test test_gitignored_path_emits_warning ... ok [INFO] [stderr] Running tests/graph_explorer.rs (/opt/rustwide/target/debug/deps/graph_explorer-8c94355d6555d23f) [INFO] [stdout] test test_gitignored_path_surfaces_remediation_action ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test test_ui_lint_endpoint_reports_structural_badge_data ... ok [INFO] [stdout] test test_ui_large_graph_api_serves_two_hundred_nodes ... ok [INFO] [stdout] test test_ui_serves_static_assets_with_detail_behaviour ... ok [INFO] [stdout] test test_ui_query_bridge_serves_artefact_layers ... ok [INFO] [stdout] test test_ui_port_zero_starts_and_serves_graph_api ... ok [INFO] [stdout] test test_ui_status_and_lint_endpoints_return_two_hundred ... ok [INFO] [stderr] Running tests/hooks_architecture.rs (/opt/rustwide/target/debug/deps/hooks_architecture-c351103cf3f34111) [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 5 tests [INFO] [stdout] test test_architecture_gate_passes_with_escape_hatch ... ok [INFO] [stdout] test test_architecture_gate_fires_on_module_add_without_decision ... ok [INFO] [stdout] test test_architecture_gate_ignores_reorder_and_casing ... ok [INFO] [stdout] test test_architecture_gate_passes_on_module_add_with_decision ... ok [INFO] [stdout] test test_architecture_gate_fires_on_reassign_across_containers ... ok [INFO] [stderr] Running tests/kernel.rs (/opt/rustwide/target/debug/deps/kernel-813287ca6940e9cf) [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.32s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 45 tests [INFO] [stdout] test test_config_state_backend_defaults_to_filesystem ... ok [INFO] [stdout] test test_config_ignore_layers_and_protected_paths ... ok [INFO] [stdout] test test_config_state_backend_parsing ... ok [INFO] [stdout] test test_blueprint_change_gate_passes_with_decision ... ok [INFO] [stdout] test test_blueprint_change_gate_ignores_first_scan ... ok [INFO] [stdout] test test_blueprint_change_gate_ignores_path_only_rename ... ok [INFO] [stdout] test test_blueprint_change_gate_fires_on_parent_change ... ok [INFO] [stdout] test test_blueprint_change_gate_fires_on_removed_module ... ok [INFO] [stdout] test test_blueprint_change_gate_fires_on_kind_change ... ok [INFO] [stdout] test test_blueprint_change_gate_fires_on_new_module ... ok [INFO] [stdout] test test_contract_wrong_node_and_missing_ghost_pointer_severity ... ok [INFO] [stdout] test test_graph_indexes_integrity_and_cycles ... ok [INFO] [stdout] test test_cli_blocks_queries_on_structural_errors ... ok [INFO] [stdout] test test_hash_stable_across_comments_and_formatting ... ok [INFO] [stdout] test test_archive_guard_runs_conflict_detector_before_mutation ... ok [INFO] [stdout] test test_hash_stable_across_private_symbols ... ok [INFO] [stdout] test test_lexer_tracks_spans_and_tags ... ok [INFO] [stdout] test test_parser_handles_nested_nodes_edges_lists_and_owns_files ... ok [INFO] [stdout] test test_internal_node_ownership_opt_in_controls_direct_files ... ok [INFO] [stdout] test test_contract_frontmatter_must_match_declaring_node ... ok [INFO] [stdout] test test_parser_rejects_legacy_blueprint_extension ... ok [INFO] [stdout] test test_hook_structural_blocks_structural_errors ... ok [INFO] [stdout] test test_contract_loader_and_cli_contract_query ... ok [INFO] [stdout] test test_hash_stable_across_source_order ... ok [INFO] [stdout] test test_divergence_contradiction_ct001 ... ok [INFO] [stdout] test test_active_change_conflicts_cover_artefacts_and_renames ... ok [INFO] [stdout] test test_hook_interface_blocks_changed_interface_hash ... ok [INFO] [stdout] test test_reconciler_dedups_duplicate_orphan_findings ... ok [INFO] [stdout] test test_provenance_lint_skips_when_no_decisions_exist ... ok [INFO] [stdout] test test_orphaned_file_produces_info_finding ... ok [INFO] [stdout] test test_onboard_groups_orphans_and_classifies ... ok [INFO] [stdout] test test_rust_reconciler_extracts_public_symbols_with_tree_sitter ... ok [INFO] [stdout] test test_provenance_lint_warns_for_uncovered_nodes ... ok [INFO] [stdout] test test_scan_exclusions_suppress_orphan_findings ... ok [INFO] [stdout] test test_hook_all_reports_active_change_conflicts ... ok [INFO] [stdout] test test_parser_reports_location_for_malformed_blueprint ... ok [INFO] [stdout] test test_committed_hook_runner_invokes_hook_all ... ok [INFO] [stdout] test test_divergence_intentional_asymmetry_ct002 ... ok [INFO] [stdout] test test_hook_tension_reports_warnings_without_blocking ... ok [INFO] [stdout] test test_neighbourhood_renders_despite_info_findings ... ok [INFO] [stdout] test test_scan_with_only_legacy_blueprint_file_suggests_rename ... ok [INFO] [stdout] test test_scan_warns_when_legacy_blueprint_file_also_exists ... ok [INFO] [stdout] test test_scan_writes_outputs ... ok [INFO] [stdout] test test_phase_2_integrity_findings ... ok [INFO] [stdout] test test_phase_2_loads_artefacts_and_query_commands ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 45 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] Running tests/mcp.rs (/opt/rustwide/target/debug/deps/mcp-93e038a199537743) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test registry_lists_read_only_tools_without_mutations ... ok [INFO] [stdout] test mcp_draft_accept_input_schema_includes_edited ... ok [INFO] [stdout] test mcp_archive_rejects_conflicting_active_changes_before_mutation ... ok [INFO] [stdout] test mcp_tool_list_is_registry_backed_and_gates_mutations ... ok [INFO] [stdout] test cli_json_and_library_query_share_get_data ... ok [INFO] [stdout] test mcp_missing_node_returns_stable_structured_error ... ok [INFO] [stdout] test mcp_response_uses_empty_context_and_rules_without_config ... ok [INFO] [stdout] test mcp_response_composes_context_and_relevant_rules ... ok [INFO] [stderr] Running tests/phase_10_distribution.rs (/opt/rustwide/target/debug/deps/phase_10_distribution-2bec58f64de51b00) [INFO] [stdout] test mcp_binary_stdio_tools_list ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 16 tests [INFO] [stdout] test test_agent_prompts_doc_references_cairn_commands ... ok [INFO] [stdout] test test_installation_and_startup_documented ... ok [INFO] [stdout] test test_claude_code_integration_doc_references_mcp_and_cli ... ok [INFO] [stdout] test test_plugin_docs_cover_cli_mcp_and_project_context ... ok [INFO] [stdout] test test_lsp_binary_is_workspace_member_with_workspace_lints ... ok [INFO] [stdout] test test_cargo_toml_has_required_packaging_metadata ... ok [INFO] [stdout] test test_command_reference_doc_lists_all_commands ... ok [INFO] [stdout] test test_gas_city_adapter_pack_structure ... ok [INFO] [stdout] test test_fixture_reconciler_observations_enter_map_without_new_nodes ... ok [INFO] [stdout] test test_every_cli_command_has_description ... ok [INFO] [stdout] test test_every_extra_cli_command_has_description ... ok [INFO] [stdout] test test_every_registered_command_has_description ... ok [INFO] [stdout] test test_formula_steps_have_required_fields_and_deps ... ok [INFO] [stdout] test test_example_project_exercises_core_capabilities ... ok [INFO] [stdout] test test_all_binaries_support_help ... ok [INFO] [stdout] test test_all_binaries_report_version ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.70s [INFO] [stdout] [INFO] [stderr] Running tests/phase_7_6_ai_provenance.rs (/opt/rustwide/target/debug/deps/phase_7_6_ai_provenance-fce45927b375f2a4) [INFO] [stdout] [INFO] [stdout] running 25 tests [INFO] [stdout] test cli::test_both_forms_delegate_to_library_query ... ok [INFO] [stdout] test changes::test_queue_is_sibling_not_delta_operation ... ok [INFO] [stdout] test changes::test_absent_queue_file_is_not_error ... ok [INFO] [stdout] test changes::test_entry_carries_source_target_relation_and_triage_state ... ok [INFO] [stdout] test provenance_foundation::test_trace_command_delegates_to_library_reader ... ok [INFO] [stdout] test changes::test_validate_without_strict_surfaces_warning ... ok [INFO] [stdout] test query::test_query_islands_handles_single_component ... ok [INFO] [stdout] test provenance_foundation::test_trace_missing_sidecar_exits_cleanly ... ok [INFO] [stdout] test changes::test_triage_state_defaults_to_pending ... ok [INFO] [stdout] test cli::test_islands_json_output_is_versioned ... ok [INFO] [stdout] test query::test_query_islands_response_is_versioned ... ok [INFO] [stdout] test query::test_query_islands_returns_one_entry_per_component ... ok [INFO] [stdout] test changes::test_validate_strict_passes_when_all_non_pending ... ok [INFO] [stdout] test provenance_foundation::test_higher_version_fails_with_clear_error ... ok [INFO] [stdout] test changes::test_validate_strict_fails_cc002_on_pending ... ok [INFO] [stdout] test changes::test_validate_strict_raises_cc003_on_future_version ... ok [INFO] [stdout] test provenance_foundation::test_sidecar_is_state_versioned ... ok [INFO] [stdout] test provenance_foundation::test_sidecar_covers_four_native_stages ... ok [INFO] [stdout] test provenance_foundation::test_prompt_content_reserved_but_empty ... ok [INFO] [stdout] test changes::test_queue_file_is_state_versioned ... ok [INFO] [stdout] test query::test_query_neighbourhood_include_orphans_surfaces_inbound_only ... ok [INFO] [stdout] test changes::test_validate_strict_raises_cc003_on_corrupt_queue ... ok [INFO] [stdout] test cli::test_neighbourhood_include_orphans_surfaces_reverse_only ... ok [INFO] [stdout] test cli::test_islands_returns_component_breakdown ... ok [INFO] [stdout] test changes::test_representative_queue_file_snapshot ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stderr] Running tests/phase_7_7_ux_foundation.rs (/opt/rustwide/target/debug/deps/phase_7_7_ux_foundation-31067f147b600cda) [INFO] [stdout] [INFO] [stdout] running 39 tests [INFO] [stdout] test cli::test_check__inspection_delegates_to_same_library_service_as_lint ... ok [INFO] [stdout] test empty_state::test_empty_state__copy_has_no_em_dashes ... ok [INFO] [stdout] test explorer::test_explorer__banner_cta_has_copy_button ... ok [INFO] [stdout] test explorer::test_explorer__banner_cta_is_copy_pasteable_cli_snippet ... ok [INFO] [stdout] test explorer::test_explorer__banner_renders_highest_severity_finding_nudge ... ok [INFO] [stdout] test explorer::test_explorer__banner_hidden_when_node_has_no_findings ... ok [INFO] [stdout] test explorer::test_explorer__banner_tie_break_by_lowest_numbered_code ... ok [INFO] [stdout] test explorer::test_explorer__category_filter_chips_derive_from_finding_stream ... ok [INFO] [stdout] test explorer::test_explorer__empty_state_component_uses_token_only_styling ... ok [INFO] [stdout] test explorer::test_explorer__banner_substitutes_target_placeholder ... ok [INFO] [stdout] test cli::test_check__json_no_blueprint_uses_ok_status_for_info_severity ... ok [INFO] [stdout] test explorer::test_explorer__info_severity_findings_appear_in_overlay ... ok [INFO] [stdout] test explorer::test_explorer__missing_copy_keys_surface_console_warning ... ok [INFO] [stdout] test explorer::test_explorer__rationale_tension_indicator ... ok [INFO] [stdout] test explorer::test_explorer__panel_reads_only_from_query_consumer_api ... ok [INFO] [stdout] test explorer::test_explorer__interface_contradiction_indicator ... ok [INFO] [stdout] test explorer::test_explorer__structural_error_indicator ... ok [INFO] [stdout] test explorer::test_explorer__scope_toggle_disabled_when_no_node_selected ... ok [INFO] [stdout] test explorer::test_explorer__banner_substitutes_node_name_in_nudge_body ... ok [INFO] [stdout] test explorer::test_explorer__scope_toggle_filters_to_selected_node ... ok [INFO] [stdout] test explorer::test_explorer__ten_inline_empty_state_strings_replaced ... ok [INFO] [stdout] test reconciliation::test_reconciliation__info_findings_do_not_block_hooks_or_gates ... ok [INFO] [stdout] test reconciliation::test_reconciliation__info_findings_round_trip_through_serde_json ... ok [INFO] [stdout] test reconciliation::test_reconciliation__unverified_contract_emits_info_finding ... ok [INFO] [stdout] test reconciliation::test_reconciliation__info_variant_defined_on_kernel_enum ... ok [INFO] [stdout] test reconciliation::test_reconciliation__orphaned_file_emits_info_finding ... ok [INFO] [stdout] test explorer::test_explorer__three_severity_buckets_render_with_count_badges ... ok [INFO] [stdout] test empty_state::test_explorer__ct001_ct002_have_copy_entries ... ok [INFO] [stdout] test cli::test_scan__strict_exits_non_zero_on_warning_findings ... ok [INFO] [stdout] test check_findings::test_check__node_scoped_filters_findings ... ok [INFO] [stdout] test check_findings::test_check__renders_all_three_severity_levels ... ok [INFO] [stdout] test empty_state::test_empty_state__no_blueprint_invocation_renders_cta ... ok [INFO] [stdout] test cli::test_check__node_scoped_inspection_with_positional_argument ... ok [INFO] [stdout] test empty_state::test_empty_state__clean_map_result_renders_cta ... ok [INFO] [stdout] test cli::test_context__summary_includes_info_severity_count ... ok [INFO] [stdout] test empty_state::test_empty_state__entries_have_heading_body_cta ... ok [INFO] [stdout] test cli::test_check__whole_map_inspection_without_arguments ... ok [INFO] [stdout] test cli::test_scan__non_strict_exits_zero_on_warning_only_findings ... FAILED [INFO] [stdout] test cli::test_check__inspection_supports_json_mode ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- cli::test_scan__non_strict_exits_zero_on_warning_only_findings stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'cli::test_scan__non_strict_exits_zero_on_warning_only_findings' (1376) panicked at tests/phase_7_7_ux_foundation.rs:162:9: [INFO] [stdout] assertion `left == right` failed: scan without --strict must exit zero when only warnings exist [INFO] [stdout] left: 1 [INFO] [stdout] right: 0 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60bf54930c08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60bf54930c08 - std[d054f6f42beb1baa]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60bf54930c08 - std[d054f6f42beb1baa]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60bf54930c08 - <::print::DisplayBacktrace as core[5a1c3e9896636f3a]::fmt::Display>::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60bf5494747a - ::fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60bf5494747a - core[5a1c3e9896636f3a]::fmt::write [INFO] [stdout] 6: 0x60bf54935792 - std[d054f6f42beb1baa]::io::default_write_fmt::> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x60bf54935792 - as std[d054f6f42beb1baa]::io::Write>::write_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x60bf5490b256 - ::print [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60bf5490b256 - std[d054f6f42beb1baa]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60bf54926e89 - std[d054f6f42beb1baa]::panicking::default_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60bf548bffcc - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 12: 0x60bf548bffcc - test[fad20673b750c10e]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x60bf54927102 - core[5a1c3e9896636f3a]::ops::function::Fn<(&'a std[d054f6f42beb1baa]::panic::PanicHookInfo<'b>,), Output = ()> + core[5a1c3e9896636f3a]::marker::Send + core[5a1c3e9896636f3a]::marker::Sync> as core[5a1c3e9896636f3a]::ops::function::Fn<(&std[d054f6f42beb1baa]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2291:9 [INFO] [stdout] 14: 0x60bf54927102 - std[d054f6f42beb1baa]::panicking::panic_with_hook [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60bf5490b312 - std[d054f6f42beb1baa]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x60bf549029a9 - std[d054f6f42beb1baa]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60bf5490c0ed - __rustc[7ab284efd7f33ea8]::rust_begin_unwind [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60bf54947c3c - core[5a1c3e9896636f3a]::panicking::panic_fmt [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60bf54947b53 - core[5a1c3e9896636f3a]::panicking::assert_failed_inner [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:434:23 [INFO] [stdout] 20: 0x60bf54772ed9 - core[5a1c3e9896636f3a]::panicking::assert_failed:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x60bf54350b6d - phase_7_7_ux_foundation[580221319e18a7e6]::cli::test_scan__non_strict_exits_zero_on_warning_only_findings [INFO] [stdout] at /opt/rustwide/workdir/tests/phase_7_7_ux_foundation.rs:162:9 [INFO] [stdout] 22: 0x60bf5434c5b7 - phase_7_7_ux_foundation[580221319e18a7e6]::cli::test_scan__non_strict_exits_zero_on_warning_only_findings::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/phase_7_7_ux_foundation.rs:156:67 [INFO] [stdout] 23: 0x60bf54353d56 - >::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x60bf548b30ab - core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x60bf548b30ab - test[fad20673b750c10e]::__rust_begin_short_backtrace::, fn() -> core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x60bf548c0925 - test[fad20673b750c10e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x60bf548c0925 - as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x60bf548c0925 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x60bf548c0925 - std[d054f6f42beb1baa]::panicking::catch_unwind::, core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x60bf548c0925 - std[d054f6f42beb1baa]::panic::catch_unwind::, core[5a1c3e9896636f3a]::result::Result<(), alloc[154f689e5dd3bae5]::string::String>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x60bf548c0925 - test[fad20673b750c10e]::run_test_in_process [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x60bf548c0925 - test[fad20673b750c10e]::run_test::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x60bf548bb484 - test[fad20673b750c10e]::run_test::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x60bf548bb484 - std[d054f6f42beb1baa]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x60bf548c39a2 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x60bf548c39a2 - ::{closure#1}::{closure#0}> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x60bf548c39a2 - std[d054f6f42beb1baa]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x60bf548c39a2 - std[d054f6f42beb1baa]::panicking::catch_unwind::<(), core[5a1c3e9896636f3a]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x60bf548c39a2 - std[d054f6f42beb1baa]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x60bf548c39a2 - std[d054f6f42beb1baa]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x60bf548c39a2 - ::{closure#1} as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x60bf5492fb3f - + core[5a1c3e9896636f3a]::marker::Send> as core[5a1c3e9896636f3a]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/alloc/src/boxed.rs:2277:9 [INFO] [stdout] 43: 0x60bf5492fb3f - ::new::thread_start [INFO] [stdout] at /rustc/28f95933dc0727396c07b48d0a8cb5211b7fb472/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x742395cc6aa4 - [INFO] [stdout] 45: 0x742395d53a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] cli::test_scan__non_strict_exits_zero_on_warning_only_findings [INFO] [stdout] [INFO] [stdout] test result: FAILED. 38 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.65s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test phase_7_7_ux_foundation` [INFO] running `Command { std: "docker" "inspect" "fe751d39febfc143267d81ad17a8e4abd07f7236be0746460ed03300b90feacb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe751d39febfc143267d81ad17a8e4abd07f7236be0746460ed03300b90feacb", kill_on_drop: false }` [INFO] [stdout] fe751d39febfc143267d81ad17a8e4abd07f7236be0746460ed03300b90feacb