[INFO] fetching crate doing-ops 0.2.5...
[INFO] testing doing-ops-0.2.5 against 1.97.0-beta.6 for beta-1.98-1
[INFO] extracting crate doing-ops 0.2.5 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate doing-ops 0.2.5
[INFO] finished tweaking crates.io crate doing-ops 0.2.5
[INFO] tweaked toml for crates.io crate doing-ops 0.2.5 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate doing-ops 0.2.5 on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate doing-ops 0.2.5 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.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded doing-taskpaper v0.4.0
[INFO] [stderr]   Downloaded sublime_fuzzy v0.7.0
[INFO] [stderr]   Downloaded md5 v0.8.0
[INFO] [stderr]   Downloaded doing-error v0.1.1
[INFO] [stderr]   Downloaded yaml_serde v0.10.4
[INFO] [stderr]   Downloaded typed-env v0.3.0
[INFO] [stderr]   Downloaded json_comments v0.2.2
[INFO] [stderr]   Downloaded dir_spec v0.5.2
[INFO] [stderr]   Downloaded doing-config v0.1.6
[INFO] [stderr]   Downloaded libyaml-rs v0.3.0
[INFO] [stderr]   Downloaded doing-time v0.1.8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/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] 6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1
[INFO] running `Command { std: "docker" "start" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", 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" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", 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" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling libyaml-rs v0.3.0
[INFO] [stderr]    Compiling json_comments v0.2.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling md5 v0.8.0
[INFO] [stderr]    Compiling dir_spec v0.5.2
[INFO] [stderr]    Compiling sublime_fuzzy v0.7.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling doing-error v0.1.1
[INFO] [stderr]    Compiling typed-env v0.3.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling yaml_serde v0.10.4
[INFO] [stderr]    Compiling doing-time v0.1.8
[INFO] [stderr]    Compiling doing-taskpaper v0.4.0
[INFO] [stderr]    Compiling doing-config v0.1.6
[INFO] [stderr]    Compiling doing-ops v0.2.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 36.88s
[INFO] running `Command { std: "docker" "inspect" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", 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" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling doing-ops v0.2.5 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.92s
[INFO] running `Command { std: "docker" "inspect" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", 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" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/doing_ops-13b63568e9dd9d39)
[INFO] [stdout] 
[INFO] [stdout] running 227 tests
[INFO] [stdout] test autotag::test::apply_default_tags::it_adds_default_tags ... ok
[INFO] [stdout] test autotag::test::apply_synonyms::it_skips_when_parent_tag_already_exists ... ok
[INFO] [stdout] test autotag::test::apply_transform::it_generates_multiple_tags ... ok
[INFO] [stdout] test autotag::test::apply_transform::it_replaces_original_with_r_flag ... ok
[INFO] [stdout] test autotag::test::apply_transform::it_skips_invalid_rules ... ok
[INFO] [stdout] test autotag::test::apply_default_tags::it_does_not_duplicate_existing_tags ... ok
[INFO] [stdout] test autotag::test::apply_whitelist::it_does_not_match_partial_words ... ok
[INFO] [stdout] test autotag::test::apply_whitelist::it_matches_case_insensitively ... ok
[INFO] [stdout] test autotag::test::apply_whitelist::it_skips_when_tag_already_exists ... ok
[INFO] [stdout] test autotag::test::apply_synonyms::it_matches_case_insensitively ... ok
[INFO] [stdout] test autotag::test::apply_synonyms::it_adds_parent_tag_when_synonym_matches ... ok
[INFO] [stdout] test autotag::test::autotag::it_is_idempotent ... ok
[INFO] [stdout] test autotag::test::apply_transform::it_uses_double_colon_delimiter ... ok
[INFO] [stdout] test autotag::test::apply_whitelist::it_preserves_case_from_whitelist_entry ... ok
[INFO] [stdout] test autotag::test::parse_transform_rule::it_returns_none_for_no_delimiter ... ok
[INFO] [stdout] test autotag::test::autotag::it_applies_all_rules ... ok
[INFO] [stdout] test autotag::test::parse_transform_rule::it_splits_on_double_colon ... ok
[INFO] [stdout] test autotag::test::apply_synonyms::it_supports_wildcard_patterns ... ok
[INFO] [stdout] test autotag::test::parse_transform_rule::it_splits_on_single_colon ... ok
[INFO] [stdout] test autotag::test::wildcard_to_word_regex::it_converts_question_wildcard ... ok
[INFO] [stdout] test backup::test::backup_prefix::it_produces_deterministic_hash ... ok
[INFO] [stdout] test autotag::test::wildcard_to_word_regex::it_matches_exact_word ... ok
[INFO] [stdout] test autotag::test::parse_transform_flags::it_detects_replace_flag ... ok
[INFO] [stdout] test autotag::test::parse_transform_flags::it_returns_false_without_flag ... ok
[INFO] [stdout] test autotag::test::parse_transform_rule::it_returns_none_for_empty_parts ... ok
[INFO] [stdout] test backup::test::create_backup::it_copies_file_to_backup_dir ... ok
[INFO] [stdout] test backup::test::create_backup::it_uses_timestamped_bak_filename ... ok
[INFO] [stdout] test backup::test::prune_backups::it_does_nothing_when_under_limit ... ok
[INFO] [stdout] test backup::test::fnv1a_hash::it_produces_known_output_for_known_input ... ok
[INFO] [stdout] test backup::test::create_backup::it_creates_backup_dir_if_missing ... ok
[INFO] [stdout] test backup::test::list_backups::it_isolates_backups_by_source_path ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_combines_with_existing_note ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_extracts_trailing_parenthetical ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_handles_nested_parens ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_ignores_empty_parenthetical ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_ignores_non_trailing_parenthetical ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_ignores_tag_values ... ok
[INFO] [stdout] test extract_note::test::extract_note::it_returns_none_for_no_parenthetical ... ok
[INFO] [stdout] test filter::test::apply_sort_and_limit::it_keeps_newest_entries_by_default ... ok
[INFO] [stdout] test filter::test::apply_sort_and_limit::it_keeps_oldest_entries_when_age_is_oldest ... ok
[INFO] [stdout] test backup::test::write_with_backup::it_creates_backup_before_writing ... ok
[INFO] [stdout] test backup::test::prune_backups::it_keeps_only_history_size_newest_backups ... ok
[INFO] [stdout] test autotag::test::wildcard_to_word_regex::it_converts_star_wildcard ... ok
[INFO] [stdout] test filter::test::apply_sort_and_limit::it_sorts_by_title_when_dates_are_equal ... ok
[INFO] [stdout] test filter::test::apply_sort_and_limit::it_returns_all_when_count_exceeds_length ... ok
[INFO] [stdout] test filter::test::apply_sort_and_limit::it_sorts_descending_when_specified ... ok
[INFO] [stdout] test autotag::test::apply_transform::it_generates_tag_from_capture_group ... ok
[INFO] [stdout] test backup::test::write_with_backup::it_writes_document_content ... ok
[INFO] [stdout] test autotag::test::apply_whitelist::it_adds_tag_for_matching_word ... ok
[INFO] [stdout] test filter::test::filter_entries::it_applies_full_pipeline ... ok
[INFO] [stdout] test filter::test::matches_date_range::it_excludes_entries_after_before_date ... ok
[INFO] [stdout] test filter::test::matches_date_range::it_excludes_entries_before_after_date ... ok
[INFO] [stdout] test backup::test::write_with_backup::it_skips_backup_for_new_file ... ok
[INFO] [stdout] test filter::test::filter_entries::it_negates_all_filters ... ok
[INFO] [stdout] test filter::test::filter_entries::it_short_circuits_on_empty_after_filter ... ok
[INFO] [stdout] test filter::test::matches_date_range::it_passes_when_no_date_range ... ok
[INFO] [stdout] test filter::test::matches_only_timed::it_excludes_unfinished_entries_when_only_timed ... ok
[INFO] [stdout] test filter::test::filter_entries::it_returns_empty_for_empty_input ... ok
[INFO] [stdout] test filter::test::matches_only_timed::it_excludes_zero_duration_entries_when_only_timed ... ok
[INFO] [stdout] test filter::test::matches_only_timed::it_includes_finished_entries_when_only_timed ... ok
[INFO] [stdout] test filter::test::matches_only_timed::it_passes_when_not_only_timed ... ok
[INFO] [stdout] test filter::test::matches_search::it_passes_when_no_search ... ok
[INFO] [stdout] test filter::test::filter_entries::it_returns_all_with_default_options ... ok
[INFO] [stdout] test filter::test::matches_search::it_rejects_non_matching_text ... ok
[INFO] [stdout] test filter::test::matches_section::it_matches_case_insensitively ... ok
[INFO] [stdout] test filter::test::matches_search::it_matches_note_text_when_included ... ok
[INFO] [stdout] test filter::test::matches_section::it_excludes_wrong_section ... ok
[INFO] [stdout] test filter::test::matches_section::it_passes_all_section ... ok
[INFO] [stdout] test filter::test::matches_section::it_passes_matching_section ... ok
[INFO] [stdout] test filter::test::matches_date_range::it_includes_entries_within_range ... ok
[INFO] [stdout] test filter::test::matches_section::it_passes_when_no_section_filter ... ok
[INFO] [stdout] test filter::test::matches_search::it_matches_title_text ... ok
[INFO] [stdout] test filter::test::matches_tag_queries::it_passes_when_no_queries ... ok
[INFO] [stdout] test filter::test::matches_tag_queries::it_rejects_when_any_query_fails ... ok
[INFO] [stdout] test filter::test::matches_tag_queries::it_requires_all_queries_to_match ... ok
[INFO] [stdout] test filter::test::matches_unfinished::it_excludes_finished_entries_when_unfinished ... ok
[INFO] [stdout] test filter::test::matches_unfinished::it_passes_when_not_filtering_unfinished ... ok
[INFO] [stdout] test filter::test::matches_tags::it_excludes_when_tags_dont_match ... ok
[INFO] [stdout] test filter::test::matches_unfinished::it_includes_unfinished_entries_when_unfinished ... ok
[INFO] [stdout] test filter::test::matches_tags::it_matches_when_tags_match ... ok
[INFO] [stdout] test search::test::contains_word::it_finds_case_sensitive_match ... ok
[INFO] [stdout] test filter::test::matches_tags::it_passes_when_no_tag_filter ... ok
[INFO] [stdout] test search::test::contains_word::it_finds_case_insensitive_match ... ok
[INFO] [stdout] test search::test::contains_word::it_rejects_case_mismatch_when_sensitive ... ok
[INFO] [stdout] test search::test::detect_mode::it_detects_fuzzy_mode_from_config ... ok
[INFO] [stdout] test search::test::detect_mode::it_detects_pattern_mode_by_default ... ok
[INFO] [stdout] test search::test::detect_mode::it_detects_exact_mode_with_quote_prefix ... ok
[INFO] [stdout] test search::test::matches_entry::it_does_not_match_tag_spanning_two_tags ... ok
[INFO] [stdout] test search::test::matches_entry::it_does_not_match_across_tag_boundaries ... ok
[INFO] [stdout] test search::test::matches_entry::it_does_not_duplicate_results_for_title_and_tag_match ... ok
[INFO] [stdout] test search::test::matches_entry::it_matches_title ... ok
[INFO] [stdout] test search::test::matches_exact::it_matches_case_insensitive_substring ... ok
[INFO] [stdout] test search::test::matches_exact::it_rejects_missing_substring ... ok
[INFO] [stdout] test search::test::matches_entry::it_matches_tag_name ... ok
[INFO] [stdout] test search::test::matches_entry::it_matches_tag_name_without_at_prefix ... ok
[INFO] [stdout] test search::test::matches_exact::it_matches_case_sensitive_substring ... ok
[INFO] [stdout] test search::test::matches_entry::it_matches_note_when_include_notes_enabled ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_matches_adjacent_characters_within_distance ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_matches_characters_in_order_with_gaps ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_matches_when_gap_within_distance ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_rejects_characters_out_of_order ... ok
[INFO] [stdout] test search::test::matches_pattern::it_matches_quoted_phrase ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_rejects_when_gap_exceeds_distance ... ok
[INFO] [stdout] test search::test::matches_fuzzy::it_skips_distance_check_when_zero ... ok
[INFO] [stdout] test search::test::matches_pattern::it_matches_all_include_tokens ... ok
[INFO] [stdout] test search::test::parse_pattern_tokens::it_parses_bare_words_as_include ... ok
[INFO] [stdout] test search::test::parse_pattern_tokens::it_parses_exclude_tokens ... ok
[INFO] [stdout] test search::test::matches_pattern::it_rejects_when_exclude_token_found ... ok
[INFO] [stdout] test search::test::parse_pattern_tokens::it_parses_include_tokens ... ok
[INFO] [stdout] test search::test::matches_pattern::it_rejects_when_include_token_missing ... ok
[INFO] [stdout] test search::test::parse_pattern_tokens::it_parses_quoted_phrases ... ok
[INFO] [stdout] test search::test::detect_mode::it_detects_regex_mode_with_slashes ... ok
[INFO] [stdout] test search::test::parse_query::it_returns_pattern_mode_by_default ... ok
[INFO] [stdout] test search::test::parse_query::it_returns_none_for_empty_query ... ok
[INFO] [stdout] test search::test::resolve_case::it_returns_ignore_for_all_lowercase ... ok
[INFO] [stdout] test search::test::parse_query::it_returns_none_for_whitespace_query ... ok
[INFO] [stdout] test search::test::parse_pattern_tokens::it_parses_mixed_tokens ... ok
[INFO] [stdout] test search::test::resolve_case::it_returns_ignore_when_config_is_ignore ... ok
[INFO] [stdout] test search::test::resolve_case::it_returns_sensitive_for_mixed_case ... ok
[INFO] [stdout] test search::test::matches_entry::it_returns_false_when_nothing_matches ... ok
[INFO] [stdout] test search::test::resolve_case::it_returns_sensitive_when_config_is_sensitive ... ok
[INFO] [stdout] test search::test::try_extract_regex::it_returns_none_for_empty_pattern ... ok
[INFO] [stdout] test search::test::try_extract_regex::it_extracts_pattern_from_slashes ... ok
[INFO] [stdout] test search::test::try_extract_regex::it_returns_none_for_single_slash ... ok
[INFO] [stdout] test search::test::try_extract_regex::it_returns_none_for_no_slashes ... ok
[INFO] [stdout] test search::test::matches_entry::it_skips_note_when_include_notes_disabled ... ok
[INFO] [stdout] test tag_filter::test::has_tag::it_matches_case_insensitively ... ok
[INFO] [stdout] test tag_filter::test::has_tag::it_matches_exact_tag ... ok
[INFO] [stdout] test tag_filter::test::has_tag::it_matches_question_wildcard ... ok
[INFO] [stdout] test tag_filter::test::has_tag::it_returns_false_when_no_match ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::not_mode::it_matches_when_no_tags_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::not_mode::it_rejects_when_any_tag_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::and_mode::it_matches_when_all_tags_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::and_mode::it_rejects_when_any_tag_missing ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::or_mode::it_matches_when_any_tag_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::or_mode::it_rejects_when_no_tags_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::pattern_mode::it_rejects_when_included_tag_missing ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::pattern_mode::it_rejects_when_excluded_tag_present ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::pattern_mode::it_treats_bare_terms_as_include ... ok
[INFO] [stdout] test tag_filter::test::has_tag::it_matches_star_wildcard ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::pattern_mode::it_requires_included_and_excludes_excluded ... ok
[INFO] [stdout] test tag_filter::test::new::it_parses_pattern_terms ... ok
[INFO] [stdout] test tag_filter::test::parse_pattern_terms::it_strips_at_prefix ... ok
[INFO] [stdout] test tag_filter::test::parse_pattern_terms::it_skips_empty_strings ... ok
[INFO] [stdout] test tag_filter::test::new::it_strips_at_prefix_from_tags ... ok
[INFO] [stdout] test tag_filter::test::parse_pattern_terms::it_parses_exclude_prefix ... ok
[INFO] [stdout] test tag_filter::test::parse_pattern_terms::it_parses_include_prefix ... ok
[INFO] [stdout] test tag_filter::test::parse_pattern_terms::it_treats_bare_as_include ... ok
[INFO] [stdout] test tag_filter::test::strip_at::it_strips_at_prefix ... ok
[INFO] [stdout] test tag_filter::test::strip_at::it_returns_unchanged_without_prefix ... ok
[INFO] [stdout] test tag_query::test::compare_ord::it_compares_greater_than_or_equal ... ok
[INFO] [stdout] test tag_query::test::compare_ord::it_compares_less_than ... ok
[INFO] [stdout] test tag_query::test::compare_ord::it_compares_less_than_or_equal ... ok
[INFO] [stdout] test tag_query::test::compare_ord::it_compares_equal ... ok
[INFO] [stdout] test tag_query::test::compare_ord::it_compares_greater_than ... ok
[INFO] [stdout] test tag_query::test::is_string_op::it_returns_false_for_non_string_operators ... ok
[INFO] [stdout] test tag_query::test::is_string_op::it_returns_true_for_string_operators ... ok
[INFO] [stdout] test tag_query::test::matches_entry::date_property::it_returns_false_for_ends_with_operator ... ok
[INFO] [stdout] test tag_query::test::matches_entry::date_property::it_returns_false_for_starts_with_operator ... ok
[INFO] [stdout] test tag_query::test::matches_entry::date_property::it_returns_false_for_contains_operator ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::and_mode::it_supports_wildcards ... ok
[INFO] [stdout] test tag_query::test::matches_entry::duration_property::it_returns_false_for_contains_operator ... ok
[INFO] [stdout] test tag_query::test::matches_entry::duration_property::it_returns_false_for_finished_entry ... ok
[INFO] [stdout] test tag_query::test::matches_entry::interval_property::it_returns_false_for_unfinished_entry ... ok
[INFO] [stdout] test tag_filter::test::matches_entry::pattern_mode::it_supports_wildcards_in_pattern_terms ... ok
[INFO] [stdout] test tag_query::test::matches_entry::note_property::it_matches_note_contains ... ok
[INFO] [stdout] test tag_query::test::matches_entry::note_property::it_rejects_note_not_found ... ok
[INFO] [stdout] test tag_query::test::matches_entry::negation::it_negates_with_exclamation_prefix ... ok
[INFO] [stdout] test tag_query::test::matches_entry::numeric_tag::it_handles_percentage_values ... ok
[INFO] [stdout] test tag_query::test::matches_entry::numeric_tag::it_rejects_below_threshold ... ok
[INFO] [stdout] test tag_query::test::matches_entry::string_tag::it_matches_contains ... ok
[INFO] [stdout] test tag_query::test::matches_entry::string_tag::it_matches_ends_with ... ok
[INFO] [stdout] test tag_query::test::matches_entry::numeric_tag::it_compares_numeric_tag_value ... ok
[INFO] [stdout] test tag_query::test::matches_entry::string_tag::it_matches_starts_with ... ok
[INFO] [stdout] test tag_query::test::matches_entry::interval_property::it_matches_interval_greater_than ... ok
[INFO] [stdout] test tag_query::test::matches_entry::tag_missing::it_returns_false_for_missing_tag ... ok
[INFO] [stdout] test tag_query::test::matches_entry::duration_property::it_matches_unfinished_entry_duration ... ok
[INFO] [stdout] test tag_query::test::matches_entry::interval_property::it_rejects_interval_too_large ... ok
[INFO] [stdout] test tag_query::test::matches_entry::text_property::it_searches_title_and_note ... ok
[INFO] [stdout] test tag_query::test::matches_entry::time_property::it_compares_time_of_day ... ok
[INFO] [stdout] test tag_query::test::matches_entry::time_property::it_returns_false_for_contains_operator ... ok
[INFO] [stdout] test tag_query::test::matches_entry::title_property::it_matches_title_contains ... ok
[INFO] [stdout] test tag_query::test::matches_entry::title_property::it_matches_title_starts_with ... ok
[INFO] [stdout] test tag_query::test::matches_entry::date_property::it_rejects_date_less_than ... ok
[INFO] [stdout] test tag_query::test::matches_entry::date_property::it_matches_date_greater_than ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_basic_query ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_contains_operator ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_equal_operator ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_ends_with_operator ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_greater_than_or_equal ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_less_than_or_equal ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_negated_query ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_not_equal_operator ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_single_equal_sign ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_with_at_prefix ... ok
[INFO] [stdout] test tag_query::test::parse::it_parses_starts_with_operator ... ok
[INFO] [stdout] test tag_query::test::parse::it_returns_none_for_invalid_input ... ok
[INFO] [stdout] test tag_query::test::parse_numeric::it_parses_float ... ok
[INFO] [stdout] test tag_query::test::parse_numeric::it_parses_integer ... ok
[INFO] [stdout] test tag_query::test::parse_numeric::it_returns_none_for_non_numeric ... ok
[INFO] [stdout] test tag_query::test::parse_numeric::it_strips_percentage ... ok
[INFO] [stdout] test tag_query::test::parse_operator::it_parses_all_operators ... ok
[INFO] [stdout] test tag_query::test::parse_operator::it_returns_none_for_invalid ... ok
[INFO] [stdout] test tag_query::test::parse_property::it_parses_virtual_properties_case_insensitively ... ok
[INFO] [stdout] test tag_query::test::parse_property::it_treats_unknown_as_tag ... ok
[INFO] [stdout] test tag_query::test::parse_property::it_parses_virtual_properties ... ok
[INFO] [stdout] test tag_query::test::strip_quotes::it_returns_unquoted_string_unchanged ... ok
[INFO] [stdout] test tag_query::test::strip_quotes::it_strips_surrounding_double_quotes ... ok
[INFO] [stdout] test tag_query::test::wildcard_match::it_matches_exact_string ... ok
[INFO] [stdout] test tag_query::test::wildcard_match::it_matches_question_mark_wildcard ... ok
[INFO] [stdout] test undo::test::redo::it_returns_error_when_count_is_zero ... ok
[INFO] [stdout] test undo::test::redo::it_returns_error_when_no_undone_files ... ok
[INFO] [stdout] test undo::test::redo::it_converts_all_undone_files_back_to_bak ... ok
[INFO] [stdout] test undo::test::redo::it_restores_from_newest_undone_file ... ok
[INFO] [stdout] test undo::test::undo::it_consumes_backup_after_restoring ... ok
[INFO] [stdout] test undo::test::undo::it_restores_atomically_without_temp_file_residue ... ok
[INFO] [stdout] test undo::test::undo::it_creates_undone_snapshot_of_current_state ... ok
[INFO] [stdout] test tag_query::test::matches_entry::text_property::it_searches_note_content ... ok
[INFO] [stdout] test undo::test::undo::it_returns_error_when_count_is_zero ... ok
[INFO] [stdout] test undo::test::undo::it_returns_error_when_count_exceeds_history ... ok
[INFO] [stdout] test undo::test::undo::it_restores_from_nth_backup ... ok
[INFO] [stdout] test tag_query::test::wildcard_match::it_matches_star_wildcard ... ok
[INFO] [stdout] test undo::test::undo::it_restores_from_most_recent_by_default ... ok
[INFO] [stdout] test undo::test::undo::it_walks_backwards_on_sequential_calls ... ok
[INFO] [stdout] test tag_query::test::matches_entry::string_tag::it_strips_quotes_from_value ... ok
[INFO] [stdout] test tag_query::test::matches_entry::string_tag::it_matches_exact_with_wildcard ... ok
[INFO] [stdout] test tag_query::test::matches_entry::negation::it_negates_with_not_equal_operator ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 227 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests doing_ops
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/extract_note.rs - extract_note::extract_note (line 10) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/extract_note.rs - extract_note::extract_note (line 10) stdout ----
[INFO] [stdout] error[E0425]: cannot find function `extract_note` in this scope
[INFO] [stdout]   --> src/extract_note.rs:11:21
[INFO] [stdout]    |
[INFO] [stdout] 11 | let (title, note) = extract_note("Working on project (some context)");
[INFO] [stdout]    |                     ^^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/extract_note.rs - extract_note::extract_note (line 10)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.36s; merged doctests compilation took 0.14s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1", kill_on_drop: false }`
[INFO] [stdout] 6bc9491da667c2ce3482f739e385f2632ec4c087fb11b338643c1d6d64e860c1
