[INFO] cloning repository https://github.com/helly25/coderef
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/helly25/coderef" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhelly25%2Fcoderef", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhelly25%2Fcoderef'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0eb7e44fcf145f41f78040601a18e3e9764a960e
[INFO] testing helly25/coderef against 1.98.0-beta.1 for beta-1.98-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhelly25%2Fcoderef" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/helly25/coderef
[INFO] finished tweaking git repo https://github.com/helly25/coderef
[INFO] tweaked toml for git repo https://github.com/helly25/coderef written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/helly25/coderef on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/helly25/coderef 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" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a
[INFO] running `Command { std: "docker" "start" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.122
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling wasm-bindgen v0.2.122
[INFO] [stderr]    Compiling dyn-clone v1.0.20
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling jsonc-parser v0.27.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.122
[INFO] [stderr]    Compiling globset v0.4.18
[INFO] [stderr]    Compiling fancy-regex v0.14.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]    Compiling ignore v0.4.26
[INFO] [stderr]    Compiling rustls-webpki v0.103.13
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.122
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling js-sys v0.3.99
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]    Compiling coderef-core v0.5.0 (/opt/rustwide/workdir/crates/coderef-core)
[INFO] [stderr]    Compiling coderef-cli v0.5.0 (/opt/rustwide/workdir/crates/coderef-cli)
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling coderef-core-wasm v0.5.0 (/opt/rustwide/workdir/crates/coderef-core-wasm)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 50.22s
[INFO] running `Command { std: "docker" "inspect" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.72
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling wasm-bindgen-test-shared v0.2.122
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling wasm-bindgen-futures v0.4.72
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling serde-wasm-bindgen v0.6.5
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling jsonc-parser v0.27.1
[INFO] [stderr]    Compiling wasm-bindgen-test v0.3.72
[INFO] [stderr]    Compiling coderef-core v0.5.0 (/opt/rustwide/workdir/crates/coderef-core)
[INFO] [stderr]    Compiling coderef-core-wasm v0.5.0 (/opt/rustwide/workdir/crates/coderef-core-wasm)
[INFO] [stderr]    Compiling coderef-cli v0.5.0 (/opt/rustwide/workdir/crates/coderef-cli)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.40s
[INFO] running `Command { std: "docker" "inspect" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.21s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/coderef-f39deaf9e14ae280)
[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/lib.rs (/opt/rustwide/target/debug/deps/coderef_core-05343f71c8c4669f)
[INFO] [stdout] 
[INFO] [stdout] running 357 tests
[INFO] [stdout] test anchor::tests::test_extract_headings_basic_atx ... ok
[INFO] [stdout] test anchor::tests::test_extract_headings_seven_hashes_not_a_heading ... ok
[INFO] [stdout] test anchor::tests::test_extract_headings_honours_explicit_id ... ok
[INFO] [stdout] test anchor::tests::test_github_slug_canonical_design_example ... ok
[INFO] [stdout] test anchor::tests::test_github_slug_drops_punctuation ... ok
[INFO] [stdout] test anchor::tests::test_github_slug_lowercases_and_preserves_hyphens ... ok
[INFO] [stdout] test anchor::tests::test_github_slug_preserves_underscores ... ok
[INFO] [stdout] test anchor::tests::test_extract_headings_skips_inside_tilde_fenced_block ... ok
[INFO] [stdout] test anchor::tests::test_gitlab_slug_canonical_design_example ... ok
[INFO] [stdout] test anchor::tests::test_gitlab_slug_period_becomes_hyphen ... ok
[INFO] [stdout] test anchor::tests::test_heading_slug_honours_explicit_id_under_any_slugifier ... ok
[INFO] [stdout] test anchor::tests::test_hugo_slug_matches_gitlab_canonical_example ... ok
[INFO] [stdout] test anchor::tests::test_levenshtein_at_most_1_handles_substitution_insertion_deletion ... ok
[INFO] [stdout] test anchor::tests::test_mkdocs_material_slug_matches_github_canonical_example ... ok
[INFO] [stdout] test anchor::tests::test_pandoc_slug_canonical_design_example ... ok
[INFO] [stdout] test anchor::tests::test_pandoc_slug_trims_trailing_hyphens ... ok
[INFO] [stdout] test anchor::tests::test_pandoc_slug_collapses_consecutive_separators ... ok
[INFO] [stdout] test anchor::tests::test_slugify_dispatches_to_each_named_slugifier ... ok
[INFO] [stdout] test anchor::tests::test_slugify_unknown_name_falls_back_to_github ... ok
[INFO] [stdout] test category::tests::test_display_order_builtins_sort_by_design_order ... ok
[INFO] [stdout] test category::tests::test_infer_category_ifchange_is_coupled_change ... ok
[INFO] [stdout] test category::tests::test_infer_category_url_is_other ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_finds_existing_heading ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_pandoc_resolves_with_pandoc_slug ... ok
[INFO] [stdout] test category::tests::test_builtins_list_matches_design_section_5_7_1 ... ok
[INFO] [stdout] test anchor::tests::test_extract_headings_strips_trailing_hashes ... ok
[INFO] [stdout] test category::tests::test_infer_category_local_is_files ... ok
[INFO] [stdout] test category::tests::test_infer_category_block_is_other ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_missing_returns_not_found_with_suggestion ... ok
[INFO] [stdout] test check::tests::test_check_references_block_marker_counted_as_broken ... ok
[INFO] [stdout] test check::tests::test_check_references_local_missing_path_counted_as_broken ... ok
[INFO] [stdout] test category::tests::test_display_order_user_categories_slot_before_other_after_coupled_change ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_unknown_slugifier_skipped_with_supported_list ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_gitlab_resolves_with_gitlab_slug ... ok
[INFO] [stdout] test check::tests::test_check_references_local_existing_path_counted_as_ok ... ok
[INFO] [stdout] test check::tests::test_check_references_counts_ifchange_kind_as_skipped ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_handles_multibyte_utf8_string_alongside_line_comment ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_lua_dash_line_comment ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_markdown_dispatches_to_fenced_block_aware_parser ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_markdown_inline_code_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_multiple_comments_classified_correctly ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_block_comment_multi_line ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_block_inside_string_classified_as_string_only ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_python_triple_quoted_string_is_a_single_string_literal ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_block_comment_classified_as_block_comment ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_line_comment_classified_as_line_comment ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_string_literal_classified_as_string_literal ... ok
[INFO] [stdout] test comment::detector::tests::test_is_in_any_range_false_when_position_in_no_range ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_string_then_real_comment_classifies_each_correctly ... ok
[INFO] [stdout] test comment::detector::tests::test_is_in_any_range_true_when_position_in_one_range ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_line_comment_at_eof_has_no_trailing_newline ... ok
[INFO] [stdout] test comment::detector::tests::test_is_in_any_range_false_for_empty_range_list ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_is_case_insensitive ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_markdown_advertises_html_comments ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_python_hash_line_comment ... ok
[INFO] [stdout] test anchor::tests::test_verify_anchor_unknown_extension_skipped ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_rust_unterminated_block_extends_to_eof ... ok
[INFO] [stdout] test comment::detector::tests::test_range_contains_inclusive_start_exclusive_end ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_python_hash_inside_string_classifies_string_separately ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_python_has_triple_quote_strings_first ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_rust ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_unknown_returns_none ... ok
[INFO] [stdout] test comment::languages::tests::test_language_for_extension_yaml_uses_hash_only ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_fence_with_info_string_still_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_designdotmd_class_case_emits_each_region_correctly ... ok
[INFO] [stdout] test anchor::tests::test_extract_headings_skips_inside_fenced_code_block ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_fenced_block_then_real_html_comment_classified_separately ... ok
[INFO] [stdout] test check::tests::test_check_report_passed_true_when_no_broken ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_fenced_block_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_html_block_comment_classified_as_block_comment ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_double_backtick_inline_code_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::detector::tests::test_detect_lua_block_comment ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_empty_input_yields_no_regions ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_block_followed_by_real_html_comment_emits_both ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_code_block_after_blank_line_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_code_block_at_doc_start_is_recognised ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_code_block_extends_through_consecutive_indented_lines ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_line_in_middle_of_paragraph_is_not_a_code_block ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_longer_fence_can_be_closed_only_by_at_least_same_length ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_inline_code_with_reference_emits_one_code_snippet ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_multiple_html_comments_in_body ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_leading_whitespace_before_fence_is_accepted ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_tilde_fence_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::region::tests::test_is_in_comment_like_false_when_outside_any_region ... ok
[INFO] [stdout] test comment::region::tests::test_is_in_comment_like_true_for_every_known_kind ... ok
[INFO] [stdout] test comment::region::tests::test_region_kind_at_returns_kind_when_in_range ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_tab_indented_line_after_blank_is_a_code_block ... ok
[INFO] [stdout] test commit_msg::tests::test_effective_scope_block_default_is_skip ... ok
[INFO] [stdout] test commit_msg::tests::test_effective_scope_explicit_required_takes_precedence ... ok
[INFO] [stdout] test commit_msg::tests::test_effective_scope_local_default_is_scan ... ok
[INFO] [stdout] test commit_msg::tests::test_strip_commit_comments_drops_leading_hash_lines ... ok
[INFO] [stdout] test commit_msg::tests::test_effective_scope_url_default_is_scan ... ok
[INFO] [stdout] test commit_msg::tests::test_strip_commit_comments_preserves_inline_hash ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_kind_defaults_to_url ... ok
[INFO] [stdout] test comment::region::tests::test_region_kind_at_returns_none_when_outside ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_unterminated_fence_classified_as_code_snippet_to_eof ... ok
[INFO] [stdout] test commit_msg::tests::test_check_commit_message_ifchange_default_skip_does_not_lint ... ok
[INFO] [stdout] test comment::region::tests::test_region_kind_serializes_as_kebab_case ... ok
[INFO] [stdout] test commit_msg::tests::test_effective_scope_explicit_false_overrides_kind_default ... ok
[INFO] [stdout] test commit_msg::tests::test_check_commit_message_required_pattern_missing_fails ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_minimal_only_regex_required ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_kind_local_parses ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_unknown_top_level_field_rejected ... ok
[INFO] [stdout] test config::resolve::tests::test_case_sensitivity_default_is_fs ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_target_and_targets_both_accepted_by_schema ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_severity_map_parses_with_kebab_case_values ... ok
[INFO] [stdout] test config::resolve::tests::test_anchor_mode_default_is_workspace ... ok
[INFO] [stdout] test config::resolve::tests::test_local_resolve_full_example_parses ... ok
[INFO] [stdout] test config::resolve::tests::test_local_resolve_anchor_mode_file_parses ... ok
[INFO] [stdout] test config::scope::tests::test_scope_comments_only_uses_camel_case_key ... ok
[INFO] [stdout] test config::pattern::tests::test_pattern_kind_ifchange_parses_for_forward_compat ... ok
[INFO] [stdout] test config::resolve::tests::test_local_resolve_unknown_field_rejected ... ok
[INFO] [stdout] test config::scope::tests::test_scope_commit_message_parses_bool_true ... ok
[INFO] [stdout] test config::scope::tests::test_scope_commit_message_parses_bool_false ... ok
[INFO] [stdout] test config::scope::tests::test_scope_commit_message_parses_required_tag ... ok
[INFO] [stdout] test config::scope::tests::test_scope_commit_message_rejects_unknown_string ... ok
[INFO] [stdout] test config::scope::tests::test_scope_empty_object_yields_default ... ok
[INFO] [stdout] test config::scope::tests::test_scope_unknown_field_rejected ... ok
[INFO] [stdout] test config::tests::test_config_empty_input_returns_empty_config_error ... ok
[INFO] [stdout] test config::scope::tests::test_scope_v0_2_fields_accepted_for_forward_compat ... ok
[INFO] [stdout] test config::tests::test_config_empty_object_parses_with_defaults ... ok
[INFO] [stdout] test config::tests::test_config_schema_field_is_preserved ... ok
[INFO] [stdout] test config::tests::test_config_strips_block_comments ... ok
[INFO] [stdout] test config::tests::test_config_preserves_pattern_declaration_order ... ok
[INFO] [stdout] test config::verify::tests::test_verify_toggle_bool_false_parses ... ok
[INFO] [stdout] test config::tests::test_config_unknown_top_level_field_returns_deserialize_error ... ok
[INFO] [stdout] test config::tests::test_config_strips_line_comments_and_trailing_commas ... ok
[INFO] [stdout] test config::tests::test_config_malformed_jsonc_returns_parse_error ... ok
[INFO] [stdout] test config::verify::tests::test_verify_toggle_full_object_with_enabled ... ok
[INFO] [stdout] test config::verify::tests::test_verify_toggle_empty_object_yields_none_enabled ... ok
[INFO] [stdout] test config::verify::tests::test_verify_toggle_unknown_field_in_full_form_rejected ... ok
[INFO] [stdout] test config::verify::tests::test_verify_toggle_bool_true_parses ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_all_disabled_silent_on_empty_config ... ok
[INFO] [stdout] test doctor::tests::test_doctor_block_kind_with_targets_array_is_flagged ... ok
[INFO] [stdout] test doctor::tests::test_doctor_block_kind_without_target_is_clean ... ok
[INFO] [stdout] test doctor::tests::test_doctor_category_unset_fires_for_url_kind_without_category ... ok
[INFO] [stdout] test doctor::tests::test_doctor_category_unset_silent_for_url_with_category_declared ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_all_disabled_fires_when_every_pattern_skips ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_all_disabled_silent_with_url_default ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_config_variable_unknown ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_git_namespace_as_future ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_pattern_missing_target ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_pattern_targets_both_fields_set ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_invalid_regex_as_error ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_template_with_invalid_syntax ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_ifchange_misconfigured_fires_on_required ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_ifchange_misconfigured_silent_on_default ... ok
[INFO] [stdout] test doctor::tests::test_doctor_passed_true_when_no_errors ... ok
[INFO] [stdout] test doctor::tests::test_doctor_commit_message_ifchange_misconfigured_fires_on_explicit_true ... ok
[INFO] [stdout] test doctor::tests::test_doctor_too_broad_other_silent_at_or_below_ceiling ... ok
[INFO] [stdout] test doctor::tests::test_doctor_orders_errors_before_warnings ... ok
[INFO] [stdout] test check::tests::test_check_report_passed_false_when_any_broken ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_indented_block_doesnt_re_emit_inside_fenced_block ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_inline_code_classified_as_code_snippet ... ok
[INFO] [stdout] test comment::markdown::tests::test_markdown_unterminated_block_comment_extends_to_eof ... ok
[INFO] [stdout] test commit_msg::tests::test_strip_commit_comments_drops_indented_hash_lines ... ok
[INFO] [stdout] test doctor::tests::test_doctor_too_broad_other_fires_above_default_ceiling ... ok
[INFO] [stdout] test doctor::tests::test_doctor_category_unset_silent_for_local_kind ... ok
[INFO] [stdout] test explain::tests::test_explain_uncompilable_pattern_listed_as_non_matching_not_panic ... ok
[INFO] [stdout] test ifchange::diff::tests::test_changed_lines_files_lists_touched_only ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_dev_null_old_side_treated_as_create ... ok
[INFO] [stdout] test doctor::tests::test_doctor_passed_false_when_any_error ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_multiple_hunks ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_no_count_defaults_to_one_line ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_pure_deletion_records_position ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_strips_a_b_path_prefix ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_single_file_single_hunk_records_range ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_dev_null_new_side_skipped ... ok
[INFO] [stdout] test ifchange::diff::tests::test_parse_unified_diff_rename_uses_new_path ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_capture_unknown_in_target ... ok
[INFO] [stdout] test explain::tests::test_explain_config_variables_resolve_in_target ... ok
[INFO] [stdout] test doctor::tests::test_doctor_passes_on_a_clean_config ... ok
[INFO] [stdout] test explain::tests::test_explain_includes_scope_notes_when_pattern_has_scope ... ok
[INFO] [stdout] test explain::tests::test_explain_single_pattern_match_yields_resolved_target ... ok
[INFO] [stdout] test commit_msg::tests::test_check_commit_message_required_pattern_present_passes_ ... ok
[INFO] [stdout] test ifchange::parse::tests::test_if_change_strips_matching_double_quotes_around_id ... ok
[INFO] [stdout] test ifchange::parse::tests::test_if_change_strips_matching_single_quotes_around_id ... ok
[INFO] [stdout] test ifchange::parse::tests::test_if_change_preserves_bare_id_without_quotes ... ok
[INFO] [stdout] test ifchange::parse::tests::test_extract_shape_b_id_block ... ok
[INFO] [stdout] test ifchange::parse::tests::test_ifchange_open_paired_with_endlabel_close ... ok
[INFO] [stdout] test ifchange::parse::tests::test_if_change_preserves_unmatched_quote ... ok
[INFO] [stdout] test ifchange::parse::tests::test_endlabel_does_not_match_inside_word ... ok
[INFO] [stdout] test ifchange::parse::tests::test_multiple_blocks_in_one_file_each_pair ... ok
[INFO] [stdout] test ifchange::parse::tests::test_no_verify_inline_same_line_honoured ... ok
[INFO] [stdout] test ifchange::parse::tests::test_no_verify_two_lines_above_not_honoured ... ok
[INFO] [stdout] test ifchange::parse::tests::test_orphan_endlabel_reported ... ok
[INFO] [stdout] test ifchange::parse::tests::test_label_can_target_endlabel_block_via_thenchange ... ok
[INFO] [stdout] test ifchange::parse::tests::test_nested_open_reported_as_orphan_inner_pair_still_parses ... ok
[INFO] [stdout] test ifchange::parse::tests::test_label_bare_open_no_id_is_orphan ... ok
[INFO] [stdout] test ifchange::parse::tests::test_no_verify_inline_line_above_honoured ... ok
[INFO] [stdout] test ifchange::parse::tests::test_orphan_label_reported ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_anchor_and_line_range_targets_coexist_in_same_marker ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_anchor_target ... ok
[INFO] [stdout] test ifchange::parse::tests::test_orphan_then_change_reported ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_anchor_target_with_empty_anchor_rejected ... ok
[INFO] [stdout] test ifchange::parse::tests::test_label_endlabel_produces_block_with_id_and_no_targets ... ok
[INFO] [stdout] test ifchange::parse::tests::test_extract_basic_shape_a_block_with_explicit_targets ... ok
[INFO] [stdout] test explain::tests::test_explain_unresolved_variable_surfaces_as_warning_not_panic ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_anchor_target_with_empty_path_rejected ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_defaults_to_any ... ok
[INFO] [stdout] test ifchange::parse::tests::test_malformed_target_reported_other_targets_kept ... ok
[INFO] [stdout] test ifchange::parse::tests::test_label_open_paired_with_thenchange_close ... ok
[INFO] [stdout] test commit_msg::tests::test_check_commit_message_strips_git_comments_before_scan ... ok
[INFO] [stdout] test ifchange::parse::tests::test_label_endlabel_id_quotes_stripped ... ok
[INFO] [stdout] test explain::tests::test_explain_no_pattern_matches_yields_empty_matches ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_anchor_target_with_hyphens_and_digits_in_anchor ... ok
[INFO] [stdout] test ifchange::parse::tests::test_orphan_if_change_reported ... ok
[INFO] [stdout] test doctor::tests::test_doctor_flags_unused_capture_as_warning ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_and_label_coexist_in_same_marker ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_flag_duplicates_rejected ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_with_all_flag ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_with_any_flag_explicit ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_with_question_mark ... ok
[INFO] [stdout] test ifchange::parse::tests::test_then_change_with_no_args_yields_shape_b_block_with_no_targets ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_label_target_alphanumeric_suffix ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_unknown_glob_flag_rejected ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_label_and_line_targets_coexist_in_same_marker ... ok
[INFO] [stdout] test ifchange::parse::tests::test_then_change_arg_with_only_whitespace_yields_no_targets_no_error ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_with_all_and_soft_flag ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_glob_target_with_soft_flag ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_label_target_with_double_colon_rejected ... ok
[INFO] [stdout] test ifchange::verify::tests::test_anchor_target_unchanged_file_emits_missing_target ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_a_line_range_target_intersection ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_a_line_range_target_miss_outside_range ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_a_target_also_changed_passes ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_b_both_peers_changed_passes ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_b_peer_not_changed_violates ... ok
[INFO] [stdout] test ifchange::verify::tests::test_composable_resolver_none_falls_back_to_literal_id ... ok
[INFO] [stdout] test ifchange::verify::tests::test_composable_resolver_groups_blocks_with_distinct_ids_to_same_resolved_key ... ok
[INFO] [stdout] test ifchange::verify::tests::test_composable_no_resolver_argument_matches_legacy_behaviour ... ok
[INFO] [stdout] test ifchange::verify::tests::test_label_target_unknown_label_treated_as_missing ... ok
[INFO] [stdout] test ifchange::verify::tests::test_label_target_unsatisfied_when_diff_outside_named_block_range ... ok
[INFO] [stdout] test ifchange::verify::tests::test_parse_errors_forwarded_into_report_and_fail_passed ... ok
[INFO] [stdout] test ifchange::verify::tests::test_label_target_resolves_to_named_block_in_target_file ... ok
[INFO] [stdout] test ifchange::verify::tests::test_no_verify_block_skipped_but_counted ... ok
[INFO] [stdout] test ifchange::verify::tests::test_all_glob_without_workspace_falls_back_to_lax ... ok
[INFO] [stdout] test ifchange::verify::tests::test_changed_shape_a_missing_target_emits_violation ... ok
[INFO] [stdout] test ifchange::verify::tests::test_composable_resolver_one_peer_unchanged_emits_missing_peer ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_label_target_disambiguator_digits_win ... ok
[INFO] [stdout] test ifchange::verify::tests::test_glob_target_matches_any_changed_file ... ok
[INFO] [stdout] test ifchange::verify::tests::test_glob_target_doublestar_recursive_match ... ok
[INFO] [stdout] test ifchange::verify::tests::test_glob_target_no_matching_file_changed_fails ... ok
[INFO] [stdout] test ifchange::verify::tests::test_non_soft_glob_target_miss_is_error ... ok
[INFO] [stdout] test explain::tests::test_explain_multiple_patterns_only_matching_ones_in_matches ... ok
[INFO] [stdout] test ifchange::verify::tests::test_anchor_target_changed_file_passes ... ok
[INFO] [stdout] test ifchange::verify::tests::test_peer_mismatch_severity_is_always_error ... ok
[INFO] [stdout] test pattern::tests::test_compile_missing_target_returns_error ... ok
[INFO] [stdout] test ifchange::verify::tests::test_unchanged_block_emits_no_violation ... ok
[INFO] [stdout] test ifchange::verify::tests::test_soft_glob_target_miss_is_warning_not_error ... ok
[INFO] [stdout] test ifchange::verify::tests::test_strict_all_glob_all_matches_changed_passes ... ok
[INFO] [stdout] test ifchange::verify::tests::test_strict_all_glob_every_match_must_change ... ok
[INFO] [stdout] test ifchange::verify::tests::test_strict_all_soft_glob_emits_warning_not_error ... ok
[INFO] [stdout] test ifchange::parse::tests::test_parse_label_target_with_hyphens_treated_as_label_not_range ... ok
[INFO] [stdout] test pattern::tests::test_compile_ifchange_kind_succeeds_without_target_and_ignores_stray_target ... ok
[INFO] [stdout] test pattern::tests::test_compile_multi_target_returns_not_yet_implemented ... ok
[INFO] [stdout] test pattern::tests::test_compile_block_kind_ignores_target_field ... ok
[INFO] [stdout] test pattern::tests::test_compile_command_kind_returns_not_yet_implemented ... ok
[INFO] [stdout] test ifchange::verify::tests::test_strict_all_glob_zero_matches_is_vacuous_pass ... ok
[INFO] [stdout] test pattern::tests::test_compile_block_kind_rejects_targets_array ... ok
[INFO] [stdout] test pattern::tests::test_compile_block_kind_without_target_succeeds ... ok
[INFO] [stdout] test pattern::tests::test_compile_invalid_regex_returns_error ... ok
[INFO] [stdout] test pattern::tests::test_resolve_title_returns_some_when_template_set ... ok
[INFO] [stdout] test pattern::tests::test_compile_target_and_targets_both_set_returns_error ... ok
[INFO] [stdout] test scan::file::tests::test_scan_block_kind_with_no_match_returns_empty ... ok
[INFO] [stdout] test scan::file::tests::test_scan_block_kind_respects_comments_only_filter ... ok
[INFO] [stdout] test pattern::tests::test_resolve_title_returns_none_when_template_unset ... ok
[INFO] [stdout] test scan::file::tests::test_scan_resolve_failure_surfaces_pattern_id_and_byte_offset ... ok
[INFO] [stdout] test scan::file::tests::test_scan_orders_matches_by_byte_start ... ok
[INFO] [stdout] test scan::file::tests::test_scan_orders_simultaneous_matches_by_pattern_id ... ok
[INFO] [stdout] test scan::file::tests::test_scan_returns_empty_when_no_patterns_match ... ok
[INFO] [stdout] test scan::file::tests::test_scan_sets_in_comment_flag_per_match ... ok
[INFO] [stdout] test explain::tests::test_explain_includes_pattern_description_when_present ... ok
[INFO] [stdout] test scan::file::tests::test_scan_reports_line_and_column_correctly_after_newlines ... ok
[INFO] [stdout] test scan::file::tests::test_scan_handles_multibyte_utf8_column_count ... ok
[INFO] [stdout] test scan::file::tests::test_scan_block_kind_emits_match_with_text_as_target ... ok
[INFO] [stdout] test pattern::tests::test_fancy_regex_lookaround_compiles ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_nonexistent_root_returns_error ... ok
[INFO] [stdout] test pattern::tests::test_resolve_target_interpolates_capture ... ok
[INFO] [stdout] test pattern::tests::test_compile_simple_url_pattern_succeeds ... ok
[INFO] [stdout] test scan::file::tests::test_scan_finds_single_match_in_plain_text ... ok
[INFO] [stdout] test severity::tests::test_severity_is_suppressed_only_for_off ... ok
[INFO] [stdout] test severity::tests::test_severity_ordering_off_is_lowest_and_error_is_highest ... ok
[INFO] [stdout] test severity::tests::test_severity_serializes_as_kebab_case ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_empty_name_after_namespace_errors ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_bare_variable_extracts_name ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_empty_namespace_errors ... ok
[INFO] [stdout] test tests::banner_contains_version ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_escape_double_dollar_yields_literal_dollar ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_empty_string_yields_no_segments ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_empty_name_errors ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_handles_multibyte_utf8_between_placeholders ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_literal_then_variable_then_literal ... ok
[INFO] [stdout] test severity::tests::test_severity_is_failure_only_for_error ... ok
[INFO] [stdout] test severity::tests::test_severity_deserializes_from_kebab_case ... ok
[INFO] [stdout] test severity::tests::test_severity_default_is_info ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_dollar_followed_by_non_brace_is_literal ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_namespaced_variable_extracts_both ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_whitespace_around_name_is_trimmed ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_multiple_variables_split_correctly ... ok
[INFO] [stdout] test scan::file::tests::test_scan_finds_multiple_matches_for_same_pattern ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_whitespace_around_namespace_is_trimmed ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_returns_empty_for_empty_workspace ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_plain_text_yields_single_literal ... ok
[INFO] [stdout] test variables::syntax::tests::test_parse_unclosed_expression_errors ... ok
[INFO] [stdout] test scan::file::tests::test_scan_comments_only_in_unknown_language_filters_all ... ok
[INFO] [stdout] test scan::file::tests::test_scan_comments_only_filters_out_code_matches ... ok
[INFO] [stdout] test variables::tests::test_namespace_parse_recognises_all_v0_1_names ... ok
[INFO] [stdout] test variables::tests::test_resolve_builtin_workspace_folder_expands ... ok
[INFO] [stdout] test variables::tests::test_resolve_env_lookup_via_provider ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_finds_matches_in_multiple_files ... ok
[INFO] [stdout] test variables::tests::test_namespace_parse_rejects_unknown ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_orders_by_file_then_byte_start ... ok
[INFO] [stdout] test variables::tests::test_namespace_parse_recognises_future_names ... ok
[INFO] [stdout] test variables::tests::test_resolve_bare_capture_takes_precedence_over_builtin ... ok
[INFO] [stdout] test variables::tests::test_namespace_v0_1_check ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_skips_binary_files_silently ... ok
[INFO] [stdout] test variables::tests::test_resolve_bare_capture_expands ... ok
[INFO] [stdout] test variables::tests::test_resolve_blame_namespace_returns_not_yet_implemented ... ok
[INFO] [stdout] test variables::tests::test_resolve_explicit_builtin_namespace_bypasses_capture ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_respects_gitignore ... ok
[INFO] [stdout] test variables::tests::test_resolve_explicit_capture_namespace_expands ... ok
[INFO] [stdout] test variables::tests::test_resolve_no_placeholders_passes_through ... ok
[INFO] [stdout] test variables::tests::test_resolve_multiple_placeholders_in_one_template ... ok
[INFO] [stdout] test variables::tests::test_resolve_git_namespace_returns_not_yet_implemented ... ok
[INFO] [stdout] test variables::tests::test_resolve_unresolved_in_strict_mode_errors ... ok
[INFO] [stdout] test variables::tests::test_resolve_unknown_namespace_errors ... ok
[INFO] [stdout] test variables::tests::test_resolve_escape_double_dollar_yields_literal_dollar_brace ... ok
[INFO] [stdout] test verify::http::tests::test_http_200_is_ok ... ok
[INFO] [stdout] test verify::http::tests::test_http_404_is_broken_status ... ok
[INFO] [stdout] test scan::workspace::tests::test_workspace_scan_respects_config_ignore_globs ... ok
[INFO] [stdout] test verify::http::tests::test_http_405_falls_back_to_get_and_succeeds ... ok
[INFO] [stdout] test verify::http::tests::test_http_custom_accept_status_overrides_default_2xx ... ok
[INFO] [stdout] test verify::local::tests::test_local_existing_relative_path_is_ok ... ok
[INFO] [stdout] test verify::local::tests::test_local_with_anchor_match_is_ok ... ok
[INFO] [stdout] test verify::tests::test_backoff_delay_grows_with_attempt ... ok
[INFO] [stdout] test verify::local::tests::test_local_existing_directory_is_ok ... ok
[INFO] [stdout] test verify::tests::test_join_under_workspace_relative_path_joins ... ok
[INFO] [stdout] test verify::local::tests::test_local_existing_leading_slash_path_resolves_under_root ... ok
[INFO] [stdout] test verify::local::tests::test_local_missing_path_is_not_found_with_resolved_path ... ok
[INFO] [stdout] test verify::local::tests::test_local_with_empty_anchor_after_hash_treats_as_no_anchor ... ok
[INFO] [stdout] test verify::http::tests::test_http_invalid_url_is_broken_network ... ok
[INFO] [stdout] test verify::tests::test_verify_outcome_serializes_as_kebab_tagged ... ok
[INFO] [stdout] test verify::tests::test_verify_skipped_for_command_kind ... ok
[INFO] [stdout] test verify::http::tests::test_http_connection_refused_is_broken_network ... ok
[INFO] [stdout] test verify::tests::test_verify_block_kind_returns_block_marker_with_matched_text ... ok
[INFO] [stdout] test verify::tests::test_verify_outcome_is_failure_excludes_ok_and_skipped ... ok
[INFO] [stdout] test verify::http::tests::test_http_500_is_broken_status ... ok
[INFO] [stdout] test verify::tests::test_verify_skipped_for_ifchange_kind ... ok
[INFO] [stdout] test verify::tests::test_verify_outcome_block_marker_is_failure ... ok
[INFO] [stdout] test verify::local::tests::test_local_with_anchor_miss_returns_anchor_not_found_with_suggestion ... ok
[INFO] [stdout] test verify::local::tests::test_local_with_anchor_on_missing_file_returns_not_found_not_anchor_error ... ok
[INFO] [stdout] test verify::local::tests::test_local_with_anchor_on_non_markdown_file_is_ok_via_skipped ... ok
[INFO] [stdout] test variables::tests::test_resolve_unresolved_in_non_strict_mode_yields_empty ... ok
[INFO] [stdout] test verify::tests::test_backoff_delay_capped_at_max ... ok
[INFO] [stdout] test verify::http::tests::test_http_retries_transport_errors_up_to_max_attempts ... ok
[INFO] [stdout] test verify::tests::test_join_under_workspace_leading_slash_treated_as_workspace_root ... ok
[INFO] [stdout] test verify::tests::test_verify_outcome_is_ok_only_for_ok ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 357 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/gen_schema.rs (/opt/rustwide/target/debug/deps/coderef_gen_schema-537898c9556ab7f8)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/anchor_verification.rs (/opt/rustwide/target/debug/deps/anchor_verification-af93236b55a9d774)
[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 3 tests
[INFO] [stdout] test integration_no_anchor_in_reference_still_passes_when_file_exists ... ok
[INFO] [stdout] test integration_anchor_present_and_matching_verifies_ok ... ok
[INFO] [stdout] test integration_anchor_present_but_missing_returns_anchor_not_found_with_suggestion ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/block_markers.rs (/opt/rustwide/target/debug/deps/block_markers-a48ea0aff3b20072)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test integration_block_marker_in_comment_is_broken_in_check_report ... ok
[INFO] [stderr]      Running tests/check_pipeline.rs (/opt/rustwide/target/debug/deps/check_pipeline-acd69f2ed3f51c48)
[INFO] [stdout] test integration_block_marker_outside_comment_is_filtered_by_scope ... ok
[INFO] [stdout] test integration_clean_workspace_block_check_passes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test pipeline_empty_workspace_passes_trivially ... ok
[INFO] [stdout] test pipeline_mixed_existing_and_missing_local_refs ... ok
[INFO] [stdout] test pipeline_passes_when_all_local_refs_resolve ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/config_load.rs (/opt/rustwide/target/debug/deps/config_load-f82812921f4c6121)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test integration_two_patterns_preserve_declaration_order ... ok
[INFO] [stdout] test integration_variables_block_round_trips ... ok
[INFO] [stdout] test integration_parse_minimal_config ... ok
[INFO] [stdout] test integration_compile_docref_pattern_is_local_kind ... ok
[INFO] [stdout] test integration_ignore_block_preserved ... ok
[INFO] [stderr]      Running tests/doctor_pipeline.rs (/opt/rustwide/target/debug/deps/doctor_pipeline-b5eaf7c2b11a45ca)
[INFO] [stdout] test integration_compile_todo_user_pattern_and_resolve_url ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.26s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test doctor_anchor_skipped_ext_silent_for_markdown_target_with_anchor ... ok
[INFO] [stdout] test doctor_anchor_style_mismatch_fires_when_target_mixes_explicit_and_implicit_headings ... ok
[INFO] [stdout] test doctor_commit_required_silent_when_pattern_is_not_required ... ok
[INFO] [stdout] test doctor_commit_required_silent_when_corpus_is_none ... ok
[INFO] [stdout] test doctor_commit_required_never_fires_when_corpus_has_no_matches ... ok
[INFO] [stdout] test doctor_anchor_skipped_ext_fires_on_non_markdown_target_with_anchor ... ok
[INFO] [stdout] test doctor_commit_required_silent_when_corpus_is_empty ... ok
[INFO] [stdout] test doctor_anchor_style_mismatch_silent_when_pattern_uses_pandoc_slugifier ... ok
[INFO] [stdout] test doctor_commit_required_silent_when_one_message_matches ... ok
[INFO] [stdout] test doctor_label_orphan_close_fires_on_stray_endlabel_with_pattern_label_configured ... ok
[INFO] [stdout] test doctor_label_orphan_open_silent_without_per_pattern_label_config ... ok
[INFO] [stdout] test doctor_label_orphan_open_fires_when_a_pattern_has_label_configured ... ok
[INFO] [stdout] test doctor_pattern_severity_override_demotes_regex_invalid_from_error_to_warning ... ok
[INFO] [stdout] test doctor_label_ambiguous_name_silent_on_alphanumeric_with_digits ... ok
[INFO] [stdout] test doctor_coupled_composable_typo_fires_when_id_almost_matches_pattern ... ok
[INFO] [stdout] test doctor_label_duplicate_in_file_fires_on_collision ... ok
[INFO] [stdout] test doctor_label_duplicate_works_across_ifchange_and_label_compat_forms ... ok
[INFO] [stdout] test doctor_label_ambiguous_name_fires_on_range_form ... ok
[INFO] [stdout] test doctor_label_unused_silent_when_peer_block_shares_id ... ok
[INFO] [stdout] test doctor_label_unused_fires_when_no_thenchange_references_the_label ... ok
[INFO] [stdout] test doctor_coupled_composable_typo_silent_when_id_resolves ... ok
[INFO] [stdout] test doctor_label_unused_silent_when_a_then_change_references_it ... ok
[INFO] [stdout] test doctor_per_pattern_label_markers_pair_cleanly_no_orphans ... ok
[INFO] [stdout] test doctor_references_uncategorised_spike_fires_at_above_10_percent ... ok
[INFO] [stdout] test doctor_references_uncategorised_spike_silent_at_exactly_threshold ... ok
[INFO] [stdout] test doctor_label_ambiguous_name_fires_on_pure_digits ... ok
[INFO] [stdout] test doctor_references_uncategorised_spike_off_severity_suppresses ... ok
[INFO] [stdout] test doctor_category_mismatch_silent_when_category_matches_sigil ... ok
[INFO] [stdout] test doctor_category_mismatch_fires_when_matches_consistently_use_at_sigil ... ok
[INFO] [stdout] test doctor_pattern_severity_override_off_suppresses_diagnostic ... ok
[INFO] [stdout] test doctor_flags_pattern_unused_in_an_empty_workspace_as_info_not_warning ... ok
[INFO] [stdout] test doctor_pattern_with_matches_is_not_flagged_unused ... ok
[INFO] [stdout] test doctor_static_errors_surface_alongside_scan_dependent_warnings ... ok
[INFO] [stdout] test doctor_workspace_severity_override_demotes_all_patterns_unused_to_off ... ok
[INFO] [stdout] test doctor_category_mismatch_silent_when_below_min_samples ... ok
[INFO] [stdout] test doctor_workspace_severity_override_is_overridden_by_per_pattern ... ok
[INFO] [stdout] test doctor_references_uncategorised_spike_silent_with_no_refs ... ok
[INFO] [stdout] test doctor_pattern_severity_override_escalates_unused_to_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.30s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ifchange_changes.rs (/opt/rustwide/target/debug/deps/ifchange_changes-eddde0ea586e947b)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test integration_shape_a_missing_target_fails ... ok
[INFO] [stdout] test integration_anchor_target_in_thenchange_fails_when_target_file_unchanged ... ok
[INFO] [stdout] test integration_label_target_resolves_to_named_block_and_passes ... ok
[INFO] [stdout] test integration_shape_a_target_also_changed_passes ... ok
[INFO] [stdout] test integration_anchor_target_in_thenchange_passes_when_target_file_changed ... ok
[INFO] [stdout] test integration_label_target_diff_outside_named_block_fails ... ok
[INFO] [stdout] test integration_no_verify_silences_violation ... ok
[INFO] [stdout] test integration_shape_b_peer_unchanged_fails ... ok
[INFO] [stdout] test integration_shape_c_one_peer_unchanged_emits_missing_peer ... ok
[INFO] [stdout] test integration_unrelated_diff_does_not_fire_blocks ... ok
[INFO] [stderr]      Running tests/scan_workspace.rs (/opt/rustwide/target/debug/deps/scan_workspace-da5ad8bc4a75d35b)
[INFO] [stdout] test integration_shape_c_composable_id_groups_via_jira_pattern ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test integration_scan_empty_workspace_returns_no_refs ... ok
[INFO] [stdout] test integration_scan_respects_dot_gitignore_outside_git_repo ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/coderef_core_wasm-a835489530c7d3cf)
[INFO] [stdout] test integration_scan_finds_refs_across_languages_with_comments_only_filtering ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test tests::invalid_jsonc_surfaces_a_message ... ok
[INFO] [stdout] test tests::engine_version_string_is_nonempty ... ok
[INFO] [stdout] test tests::config_round_trips_through_json ... ok
[INFO] [stderr]    Doc-tests coderef_core
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[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]    Doc-tests coderef_core_wasm
[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] running `Command { std: "docker" "inspect" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a", kill_on_drop: false }`
[INFO] [stdout] c6a8c76edfb18363103def8ce0fa071cefbb475b91330035ca03164176da644a
