[INFO] fetching crate tagpipe-core 0.1.0...
[INFO] testing tagpipe-core-0.1.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate tagpipe-core 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate tagpipe-core 0.1.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate tagpipe-core 0.1.0
[INFO] tweaked toml for crates.io crate tagpipe-core 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate tagpipe-core 0.1.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate tagpipe-core 0.1.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.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-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105
[INFO] running `Command { std: "docker" "start" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", 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" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", 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" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tinyvec v1.12.0
[INFO] [stderr]    Compiling daachorse v1.0.1
[INFO] [stderr]    Compiling syn v3.0.0
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_yaml_ng v0.10.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling tagpipe-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.20s
[INFO] running `Command { std: "docker" "inspect" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", 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" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling console v0.16.4
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling insta v1.48.0
[INFO] [stderr]    Compiling tagpipe-core v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.51s
[INFO] running `Command { std: "docker" "inspect" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", 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" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/tagpipe-core/022cd6516e19919c/out/tagpipe_core-022cd6516e19919c)
[INFO] [stdout] 
[INFO] [stdout] running 197 tests
[INFO] [stdout] test dictionaries::tests::context_filter_validation_rejects_blank_pattern ... ok
[INFO] [stdout] test actrie::tests::build_overlapping_returns_all_matches ... ok
[INFO] [stdout] test dictionaries::tests::context_filter_validation_rejects_duplicate_id ... ok
[INFO] [stdout] test dictionaries::tests::context_filter_validation_rejects_empty_patterns ... ok
[INFO] [stdout] test dictionaries::tests::axis_min_confidence_out_of_range_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::disabled_synonym_surface_can_be_remapped_to_another_tag ... ok
[INFO] [stdout] test dictionaries::tests::duplicate_axis_tag_entries_are_rejected ... ok
[INFO] [stdout] test dictionaries::tests::duplicate_axis_id_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::disabled_tag_surface_can_be_remapped_to_another_tag ... ok
[INFO] [stdout] test dictionaries::tests::context_filter_validation_rejects_zero_window ... ok
[INFO] [stdout] test actrie::tests::u32_index_rejects_overflow_and_converts_back ... ok
[INFO] [stdout] test dictionaries::tests::context_filter_validation_rejects_empty_id ... ok
[INFO] [stdout] test actrie::tests::build_leftmost_longest_prefers_longest_match ... ok
[INFO] [stdout] test dictionaries::tests::empty_tag_id_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::empty_tag_list_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::duplicate_surface_within_axis_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::nan_min_confidence_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::duplicate_synonym_id_across_axes_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_accepts_all_priority_field_variants ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_rejects_top_n_without_max_count ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_rejects_threshold_with_max_count ... ok
[INFO] [stdout] test dictionaries::tests::parse_context_filters_rejects_unknown_action_and_fields ... ok
[INFO] [stdout] test dictionaries::tests::missing_tags_for_axis_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_accepts_match_fields ... ok
[INFO] [stdout] test dictionaries::tests::parse_axes_rejects_unknown_fields_and_bad_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_tags_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_tags_rejects_missing_required_field ... ok
[INFO] [stdout] test dictionaries::tests::empty_axes_are_rejected ... ok
[INFO] [stdout] test dictionaries::tests::duplicate_tag_id_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::empty_axis_id_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::empty_label_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::empty_synonym_list_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::empty_synonym_id_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::parse_normalize_table_rejects_unknown_fields ... ok
[INFO] [stdout] test dictionaries::tests::parse_normalize_table_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_rule_tags_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_rule_tags_rejects_bad_yaml_and_syntax ... ok
[INFO] [stdout] test dictionaries::tests::parse_context_filters_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::parse_fields_accepts_valid_yaml ... ok
[INFO] [stdout] test dictionaries::tests::valid_set_is_accepted_and_iterable ... ok
[INFO] [stdout] test dictionaries::tests::zero_max_count_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::tag_min_confidence_out_of_range_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::rule_tag_validation_rejects_empty_label ... ok
[INFO] [stdout] test dictionaries::tests::threshold_axis_requires_some_min_confidence ... ok
[INFO] [stdout] test dictionaries::tests::same_surface_across_axes_is_allowed ... ok
[INFO] [stdout] test dictionaries::tests::rule_tag_validation_rejects_duplicate_id ... ok
[INFO] [stdout] test error::tests::ingest_error_messages_include_record ... ok
[INFO] [stdout] test dictionaries::tests::top_n_axis_rejects_per_tag_min_confidence ... ok
[INFO] [stdout] test dictionaries::tests::parse_fields_rejects_unknown_fields_and_bad_yaml ... ok
[INFO] [stdout] test dictionaries::tests::empty_surface_is_rejected ... ok
[INFO] [stdout] test dictionaries::tests::tags_for_undeclared_axis_are_rejected ... ok
[INFO] [stdout] test dictionaries::tests::threshold_axis_accepts_per_tag_min_confidence_only ... ok
[INFO] [stdout] test extract::rule_engine::tests::describe_substitutes_fact_values ... ok
[INFO] [stdout] test extract::rule_engine::tests::design_example_salary_rule_works ... ok
[INFO] [stdout] test extract::rule_engine::tests::syntax_errors_are_rejected_at_parse_time ... ok
[INFO] [stdout] test extract::rule_engine::tests::numeric_literals_allow_underscores_and_decimals ... ok
[INFO] [stdout] test extract::rule_engine::tests::simple_comparison_evaluates ... ok
[INFO] [stdout] test dictionaries::tests::rule_tag_validation_rejects_empty_id ... ok
[INFO] [stdout] test error::tests::publish_error_messages_wrap_sources ... ok
[INFO] [stdout] test extract::rule_engine::tests::all_comparators_work ... ok
[INFO] [stdout] test extract::rule_engine::tests::describe_covers_all_operators ... ok
[INFO] [stdout] test extract::rule_engine::tests::missing_fact_is_unevaluable ... ok
[INFO] [stdout] test extract::rule_engine::tests::non_finite_results_are_unevaluable ... ok
[INFO] [stdout] test extract::rule_engine::tests::arithmetic_with_precedence_and_parens ... ok
[INFO] [stdout] test extract::tests::overlapping_hits_across_axes_are_both_kept ... ok
[INFO] [stdout] test extract::tests::leftmost_match_wins_within_axis ... ok
[INFO] [stdout] test extract::tests::surface_normalizing_to_empty_is_rejected ... ok
[INFO] [stdout] test extract::tests::all_disabled_patterns_are_rejected ... ok
[INFO] [stdout] test ingest::tests::adapter_isolates_record_errors_from_jobs ... ok
[INFO] [stdout] test models::tests::newtype_display_returns_inner_string ... ok
[INFO] [stdout] test extract::tests::surfaces_are_normalized_before_matching ... ok
[INFO] [stdout] test models::tests::newtype_serializes_transparently ... ok
[INFO] [stdout] test extract::tests::normalized_surface_collision_within_axis_is_rejected ... ok
[INFO] [stdout] test extract::tests::find_reports_span_surface_and_rule ... ok
[INFO] [stdout] test normalize::tests::error_display_messages ... ok
[INFO] [stdout] test normalize::tests::halfwidth_katakana_is_normalized_and_voiced_mark_composed ... ok
[INFO] [stdout] test extract::tests::same_surface_across_axes_hits_both ... ok
[INFO] [stdout] test normalize::tests::debug_output_summarizes_chain ... ok
[INFO] [stdout] test extract::tests::debug_output_summarizes_matcher ... ok
[INFO] [stdout] test normalize::tests::nfkc_expands_compatibility_char_and_maps_to_same_origin ... ok
[INFO] [stdout] test normalize::tests::nfkc_unifies_fullwidth_ascii ... ok
[INFO] [stdout] test extract::tests::disabled_tag_and_synonym_are_excluded ... ok
[INFO] [stdout] test normalize::tests::replacement_applies_after_nfkc_and_whitespace ... ok
[INFO] [stdout] test error::tests::dictionary_error_messages_include_context ... ok
[INFO] [stdout] test normalize::tests::rule_validation_rejects_duplicate_from ... ok
[INFO] [stdout] test extract::tests::longest_match_wins_within_axis ... ok
[INFO] [stdout] test normalize::tests::empty_rules_skip_replacement_stage ... ok
[INFO] [stdout] test normalize::tests::replacement_reaches_fixpoint_across_rule_interactions ... ok
[INFO] [stdout] test extract::tests::no_hits_on_empty_or_unrelated_text ... ok
[INFO] [stdout] test normalize::tests::replacement_output_maps_to_source_region ... ok
[INFO] [stdout] test normalize::tests::replacement_rewrites_and_identity_protects_longer_form ... ok
[INFO] [stdout] test dictionaries::tests::top_n_without_min_confidence_is_rejected ... ok
[INFO] [stdout] test normalize::tests::replacement_passes_are_capped ... ok
[INFO] [stdout] test normalize::tests::non_canonical_replacement_target_is_normalized ... ok
[INFO] [stdout] test normalize::tests::rule_validation_rejects_self_replacement ... ok
[INFO] [stdout] test normalize::tests::rules_are_prenormalized_before_matching ... ok
[INFO] [stdout] test normalize::tests::rule_validation_rejects_from_to_conflict ... ok
[INFO] [stdout] test normalize::tests::rule_validation_rejects_empty_to ... ok
[INFO] [stdout] test normalize::tests::semi_voiced_mark_is_composed ... ok
[INFO] [stdout] test normalize::tests::voiced_mark_without_composable_base_is_kept ... ok
[INFO] [stdout] test normalize::tests::to_original_on_empty_text_is_out_of_range ... ok
[INFO] [stdout] test normalize::tests::whitespace_runs_are_compressed_and_trimmed ... ok
[INFO] [stdout] test normalize::tests::whitespace_only_from_is_rejected_after_prenormalization ... ok
[INFO] [stdout] test normalize::tests::to_original_rejects_invalid_spans ... ok
[INFO] [stdout] test pipeline::tests::duplicate_field_id_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::empty_field_id_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::empty_fields_fail_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::body_only_hit_below_threshold_is_not_assigned ... ok
[INFO] [stdout] test normalize::tests::zero_width_and_format_chars_are_removed ... ok
[INFO] [stdout] test pipeline::tests::disabled_rule_tag_is_skipped ... ok
[INFO] [stdout] test normalize::tests::whitespace_span_maps_to_whole_run ... ok
[INFO] [stdout] test pipeline::tests::debug_output_summarizes_pipeline ... ok
[INFO] [stdout] test pipeline::tests::out_of_range_base_confidence_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::match_fields_validation_fails_fast ... ok
[INFO] [stdout] test pipeline::tests::matcher_build_failure_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::filter_with_unknown_axis_fails_construction ... ok
[INFO] [stdout] test pipeline::tests::invalid_rules_fail_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::context_filters_change_pipeline_version ... ok
[INFO] [stdout] test pipeline::tests::filter_build_failure_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::match_fields_limits_axis_to_listed_fields ... ok
[INFO] [stdout] test pipeline::tests::explain_reports_all_outcomes ... ok
[INFO] [stdout] test pipeline::tests::explain_reports_rejected_hits_with_filter_events ... ok
[INFO] [stdout] test pipeline::tests::explain_report_is_serializable ... ok
[INFO] [stdout] test pipeline::tests::penalized_attribution_records_filter_id ... ok
[INFO] [stdout] test pipeline::tests::penalize_filter_drops_hit_below_threshold ... ok
[INFO] [stdout] test pipeline::tests::penalize_filter_respects_applies_to ... ok
[INFO] [stdout] test pipeline::tests::priority_field_suppresses_other_field_candidates_through_pipeline ... ok
[INFO] [stdout] test pipeline::tests::per_tag_min_confidence_beats_axis_threshold ... ok
[INFO] [stdout] test pipeline::tests::priority_field_keeps_rule_tag_assignments_through_pipeline ... ok
[INFO] [stdout] test pipeline::tests::process_keeps_raw_and_version_and_empty_unmatched ... ok
[INFO] [stdout] test pipeline::tests::process_assigns_from_multiple_fields_and_merges_attributions ... ok
[INFO] [stdout] test pipeline::tests::reject_filter_drops_hit_entirely ... ok
[INFO] [stdout] test pipeline::tests::replacement_rules_flow_into_matching_and_version ... ok
[INFO] [stdout] test normalize::tests::rule_validation_rejects_empty_from ... ok
[INFO] [stdout] test actrie::tests::duplicate_patterns_are_rejected_as_validation_error ... ok
[INFO] [stdout] test pipeline::tests::process_records_span_and_surface_of_normalized_text ... ok
[INFO] [stdout] test pipeline::tests::reserved_facts_field_id_fails_pipeline_construction ... ok
[INFO] [stdout] test publish::tests::fnv1a_matches_known_vectors ... ok
[INFO] [stdout] test pipeline::tests::undeclared_priority_field_fails_pipeline_construction ... ok
[INFO] [stdout] test pipeline::tests::rule_tags_compete_in_top_n_selection ... ok
[INFO] [stdout] test pipeline::tests::top_n_limits_role_axis_to_max_count ... ok
[INFO] [stdout] test publish::tests::pipeline_version_changes_when_filters_change ... ok
[INFO] [stdout] test pipeline::tests::unmatched_candidates_are_collected_when_axis_has_no_assignment ... ok
[INFO] [stdout] test pipeline::tests::unmatched_is_empty_when_axis_assigned_or_flag_off ... ok
[INFO] [stdout] test pipeline::tests::rule_explain_reports_all_outcomes ... ok
[INFO] [stdout] test pipeline::tests::undeclared_raw_field_is_not_scanned ... ok
[INFO] [stdout] test pipeline::tests::rule_on_threshold_axis_without_any_min_fails_closed ... ok
[INFO] [stdout] test pipeline::tests::rule_tag_fires_only_when_facts_satisfy_it ... ok
[INFO] [stdout] test publish::tests::classify_json_error_separates_io_from_data_errors ... ok
[INFO] [stdout] test pipeline::tests::version_embeds_code_version ... ok
[INFO] [stdout] test publish::tests::pipeline_version_changes_when_rules_change ... ok
[INFO] [stdout] test publish::tests::pipeline_version_changes_with_match_fields ... ok
[INFO] [stdout] test pipeline::tests::rule_tag_validation_errors ... ok
[INFO] [stdout] test publish::tests::pipeline_version_covers_threshold_axes_and_per_tag_settings ... ok
[INFO] [stdout] test publish::tests::pipeline_version_encodes_priority_field_variants ... ok
[INFO] [stdout] test queue::tests::hiragana_breaks_the_stem ... ok
[INFO] [stdout] test publish::tests::pipeline_version_encoding_is_pinned ... ok
[INFO] [stdout] test publish::tests::pipeline_version_is_deterministic ... ok
[INFO] [stdout] test queue::tests::report_write_failure_is_io_error ... ok
[INFO] [stdout] test publish::tests::write_jsonl_maps_body_write_io_failure_to_io ... ok
[INFO] [stdout] test publish::tests::write_jsonl_maps_newline_write_failure ... ok
[INFO] [stdout] test queue::tests::collects_multiple_suffixes_and_dedupes ... ok
[INFO] [stdout] test queue::tests::stem_is_capped_at_max_chars ... ok
[INFO] [stdout] test queue::tests::suffix_without_stem_is_ignored ... ok
[INFO] [stdout] test score::context::tests::pattern_normalizing_to_empty_is_rejected ... ok
[INFO] [stdout] test score::context::tests::patterns_are_normalized_before_matching ... ok
[INFO] [stdout] test score::context::tests::pattern_inside_hit_surface_is_not_context ... ok
[INFO] [stdout] test publish::tests::write_jsonl_emits_one_line_per_job ... ok
[INFO] [stdout] test publish::tests::pipeline_version_changes_when_dictionary_changes ... ok
[INFO] [stdout] test queue::tests::reprocess_updates_only_stale_records ... ok
[INFO] [stdout] test queue::tests::collects_kanji_katakana_stems_with_suffix ... ok
[INFO] [stdout] test queue::tests::aggregation_orders_by_count_then_expression ... ok
[INFO] [stdout] test score::context::tests::empty_filters_scan_nothing ... ok
[INFO] [stdout] test score::context::tests::scan_finds_all_pattern_matches ... ok
[INFO] [stdout] test score::context::tests::shared_pattern_across_filters_fires_both ... ok
[INFO] [stdout] test score::tests::non_finite_confidence_fails_closed ... ok
[INFO] [stdout] test score::tests::assignments_carry_attributions_verbatim ... ok
[INFO] [stdout] test score::tests::candidate_confidence_is_max_of_attributions ... ok
[INFO] [stdout] test score::tests::empty_attributions_never_select ... ok
[INFO] [stdout] test score::tests::priority_excluded_reports_dropped_tags_only_when_triggered ... ok
[INFO] [stdout] test score::tests::threshold_selects_all_above_axis_min ... ok
[INFO] [stdout] test score::context::tests::expand_span_clamps_at_text_bounds ... ok
[INFO] [stdout] test score::tests::threshold_without_any_min_confidence_fails_closed ... ok
[INFO] [stdout] test score::tests::top_n_keeps_multiple_when_allowed ... ok
[INFO] [stdout] test score::tests::threshold_prefers_per_tag_min_confidence ... ok
[INFO] [stdout] test score::tests::top_n_takes_highest_scores_up_to_max_count ... ok
[INFO] [stdout] test score::context::tests::event_fires_only_within_window ... ok
[INFO] [stdout] test score::tests::top_n_without_min_confidence_fails_closed ... ok
[INFO] [stdout] test score::context::tests::pattern_before_hit_fires_within_window ... ok
[INFO] [stdout] test score::context::tests::applies_to_limits_axes ... ok
[INFO] [stdout] test score::tests::priority_field_exempts_rule_tag_candidates ... ok
[INFO] [stdout] test score::tests::priority_field_limits_candidates_when_field_has_hits ... ok
[INFO] [stdout] test publish::tests::pipeline_version_changes_when_fields_change ... ok
[INFO] [stdout] test normalize::tests::normalize_is_idempotent ... ok
[INFO] [stdout] test normalize::tests::normalized_text_has_no_whitespace_runs ... ok
[INFO] [stdout] test normalize::tests::offset_map_preserves_char_boundaries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 197 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.39s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/golden.rs (/opt/rustwide/target/debug/build/tagpipe-core/86f1f23f01a739de/out/golden-86f1f23f01a739de)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test pipeline_output_matches_golden_snapshot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/loader.rs (/opt/rustwide/target/debug/build/tagpipe-core/26fd7c885dcd0d48/out/loader-26fd7c885dcd0d48)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test load_context_filters_reads_fixture_file ... ok
[INFO] [stdout] test missing_file_is_reported_as_io_error_with_path ... ok
[INFO] [stdout] test load_tags_reads_fixture_file ... ok
[INFO] [stdout] test load_fields_reads_fixture_file ... ok
[INFO] [stdout] test load_normalize_table_reads_fixture_file ... ok
[INFO] [stdout] test load_axes_reads_fixture_file ... ok
[INFO] [stdout] test loaded_dictionaries_assemble_into_a_working_pipeline ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests tagpipe_core
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/ingest.rs - ingest (line 8) ... ok
[INFO] [stdout] test src/publish/mod.rs - publish (line 13) ... ok
[INFO] [stdout] test src/normalize/mod.rs - normalize (line 23) ... ok
[INFO] [stdout] test src/extract/mod.rs - extract (line 14) ... ok
[INFO] [stdout] test src/lib.rs - (line 46) ... ok
[INFO] [stdout] test src/dictionaries/mod.rs - dictionaries (line 15) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.73s; merged doctests compilation took 0.71s
[INFO] running `Command { std: "docker" "inspect" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105", kill_on_drop: false }`
[INFO] [stdout] b21f4737c6d1ea4c4d43df6ad0f34fbce1393eb5403a179bb737363a3e467105
