[INFO] fetching crate rustodo 2.26.0...
[INFO] testing rustodo-2.26.0 against 1.95.0 for beta-1.96-2
[INFO] extracting crate rustodo 2.26.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate rustodo 2.26.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rustodo 2.26.0
[INFO] tweaked toml for crates.io crate rustodo 2.26.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate rustodo 2.26.0 on toolchain 1.95.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate rustodo 2.26.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.95.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded zmij v1.0.17
[INFO] [stderr]   Downloaded directories v6.0.0
[INFO] [stderr]   Downloaded lru v0.16.3
[INFO] [stderr]   Downloaded mac_address v1.1.8
[INFO] [stderr]   Downloaded edit v0.1.5
[INFO] [stderr]   Downloaded scanlex v0.1.4
[INFO] [stderr]   Downloaded ratatui-crossterm v0.1.0
[INFO] [stderr]   Downloaded wezterm-input-types v0.1.0
[INFO] [stderr]   Downloaded clap v4.5.57
[INFO] [stderr]   Downloaded chrono-english v0.1.8
[INFO] [stderr]   Downloaded colored v3.1.1
[INFO] [stderr]   Downloaded ratatui v0.30.0
[INFO] [stderr]   Downloaded clap_builder v4.5.57
[INFO] [stderr]   Downloaded fancy-regex v0.11.0
[INFO] [stderr]   Downloaded compact_str v0.9.0
[INFO] [stderr]   Downloaded finl_unicode v1.4.0
[INFO] [stderr]   Downloaded wezterm-bidi v0.2.3
[INFO] [stderr]   Downloaded ratatui-widgets v0.3.0
[INFO] [stderr]   Downloaded rusqlite v0.38.0
[INFO] [stderr]   Downloaded termios v0.3.3
[INFO] [stderr]   Downloaded csscolorparser v0.6.2
[INFO] [stderr]   Downloaded kasuari v0.4.11
[INFO] [stderr]   Downloaded terminfo v0.9.0
[INFO] [stderr]   Downloaded wezterm-color-types v0.3.0
[INFO] [stderr]   Downloaded wezterm-dynamic-derive v0.1.1
[INFO] [stderr]   Downloaded line-clipping v0.3.5
[INFO] [stderr]   Downloaded ratatui-termwiz v0.1.0
[INFO] [stderr]   Downloaded ratatui-macros v0.7.0
[INFO] [stderr]   Downloaded memmem v0.1.1
[INFO] [stderr]   Downloaded vtparse v0.6.2
[INFO] [stderr]   Downloaded wezterm-blob-leases v0.1.1
[INFO] [stderr]   Downloaded wezterm-dynamic v0.2.1
[INFO] [stderr]   Downloaded ratatui-core v0.1.0
[INFO] [stderr]   Downloaded toml v1.0.3+spec-1.1.0
[INFO] [stderr]   Downloaded unicode-truncate v2.0.1
[INFO] [stderr]   Downloaded termwiz v0.23.3
[INFO] [stderr]   Downloaded deltae v0.3.2
[INFO] [stderr]   Downloaded libsqlite3-sys v0.36.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bac5bd81f949e69ff1c23538b67cc1ea5b466f9be0fd6f30c52878e39764d929
[INFO] running `Command { std: "docker" "start" "-a" "bac5bd81f949e69ff1c23538b67cc1ea5b466f9be0fd6f30c52878e39764d929", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bac5bd81f949e69ff1c23538b67cc1ea5b466f9be0fd6f30c52878e39764d929", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bac5bd81f949e69ff1c23538b67cc1ea5b466f9be0fd6f30c52878e39764d929", kill_on_drop: false }`
[INFO] [stdout] bac5bd81f949e69ff1c23538b67cc1ea5b466f9be0fd6f30c52878e39764d929
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6d3f3d41d0313b3a9e0f859d99264d7ef4813b1a37d67a8f32a9174034ce8204
[INFO] running `Command { std: "docker" "start" "-a" "6d3f3d41d0313b3a9e0f859d99264d7ef4813b1a37d67a8f32a9174034ce8204", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling num_threads v0.1.7
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling line-clipping v0.3.5
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling ureq-proto v0.5.3
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling utf-8 v0.7.6
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling scanlex v0.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling libsqlite3-sys v0.36.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling directories v6.0.0
[INFO] [stderr]    Compiling uuid v1.21.0
[INFO] [stderr]    Compiling colored v3.1.1
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling edit v0.1.5
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling toml v1.0.3+spec-1.1.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.11
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling chrono-english v0.1.8
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling ureq v3.2.0
[INFO] [stderr]    Compiling rusqlite v0.38.0
[INFO] [stderr]    Compiling rustodo v2.26.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "6d3f3d41d0313b3a9e0f859d99264d7ef4813b1a37d67a8f32a9174034ce8204", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6d3f3d41d0313b3a9e0f859d99264d7ef4813b1a37d67a8f32a9174034ce8204", kill_on_drop: false }`
[INFO] [stdout] 6d3f3d41d0313b3a9e0f859d99264d7ef4813b1a37d67a8f32a9174034ce8204
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8ee139a7c40b6f95c438bb09b34372ae140c00d63a265a5bb3afe878f974aa24
[INFO] running `Command { std: "docker" "start" "-a" "8ee139a7c40b6f95c438bb09b34372ae140c00d63a265a5bb3afe878f974aa24", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustodo v2.26.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 12.72s
[INFO] running `Command { std: "docker" "inspect" "8ee139a7c40b6f95c438bb09b34372ae140c00d63a265a5bb3afe878f974aa24", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ee139a7c40b6f95c438bb09b34372ae140c00d63a265a5bb3afe878f974aa24", kill_on_drop: false }`
[INFO] [stdout] 8ee139a7c40b6f95c438bb09b34372ae140c00d63a265a5bb3afe878f974aa24
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] eef5e2be75a461919503463e9a364b90dd4c640e83d945af02a3ed44c16dd1e3
[INFO] running `Command { std: "docker" "start" "-a" "eef5e2be75a461919503463e9a364b90dd4c640e83d945af02a3ed44c16dd1e3", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.55s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rustodo-9e263f126ef26d71)
[INFO] [stdout] 
[INFO] [stdout] running 102 tests
[INFO] [stdout] test models::project::tests::test_resolve_ignores_deleted_projects ... ok
[INFO] [stdout] test models::project::tests::test_resolve_is_case_insensitive ... ok
[INFO] [stdout] test models::project::tests::test_resolve_creates_new_project ... ok
[INFO] [stdout] test models::project::tests::test_resolve_deduplicates_across_calls ... ok
[INFO] [stdout] test models::project::tests::test_resolve_finds_existing_project ... ok
[INFO] [stdout] test models::task::tests::test_detect_no_cycle ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_basic ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_case_insensitive ... ok
[INFO] [stdout] test models::task::tests::test_count_by_project_excludes_deleted ... ok
[INFO] [stdout] test models::task::tests::test_daily_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_deleted_at_none_on_new ... ok
[INFO] [stdout] test models::task::tests::test_deps_not_propagated_to_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_detect_cycle_direct ... ok
[INFO] [stdout] test models::task::tests::test_detect_transitive_cycle ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_completed_dep ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_no_deps ... ok
[INFO] [stdout] test models::task::tests::test_blocking_deps_returns_pending_only ... ok
[INFO] [stdout] test models::task::tests::test_is_blocked_pending_dep ... ok
[INFO] [stdout] test models::task::tests::test_monthly_boundary_case ... ok
[INFO] [stdout] test models::task::tests::test_monthly_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_no_due_date_returns_none ... ok
[INFO] [stdout] test models::task::tests::test_no_recurrence_returns_none ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_sets_deleted_at ... ok
[INFO] [stdout] test models::task::tests::test_recurrence_next_is_not_deleted ... ok
[INFO] [stdout] test models::task::tests::test_project_preserved_in_recurrence ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_deleted_at_lte_updated_at ... ok
[INFO] [stdout] test models::task::tests::test_weekly_recurrence ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_aggregates_across_entities ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_all_tag_names ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_empty ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_ignores_deleted ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_tasks_only ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_sorted_by_total_descending ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_overwrite ... ok
[INFO] [stdout] test services::tag_service::tests::test_collect_tags_ties_broken_alphabetically ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_starts_empty ... ok
[INFO] [stdout] test storage::memory::tests::test_note_add_remove_resource ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_resources ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_with_tasks ... ok
[INFO] [stdout] test models::task::tests::test_updated_at_set_on_new ... ok
[INFO] [stdout] test storage::memory::tests::test_note_links_to_resources ... ok
[INFO] [stdout] test storage::memory::tests::test_note_links_to_both ... ok
[INFO] [stdout] test storage::memory::tests::test_note_links_to_project ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_location ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_notes ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_save_and_load ... ok
[INFO] [stdout] test models::task::tests::test_mark_done_updates_timestamp ... ok
[INFO] [stdout] test storage::memory::tests::test_tasks_and_projects_independent ... ok
[INFO] [stdout] test models::task::tests::test_mark_undone_updates_timestamp ... ok
[INFO] [stdout] test models::task::tests::test_soft_delete_also_updates_updated_at ... ok
[INFO] [stdout] test storage::memory::tests::test_memory_storage_projects ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_strict_past_fails ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_days ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_weeks ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_invalid ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_in_n_months ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_past_fails ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_date_not_in_past_future_ok ... ok
[INFO] [stdout] test models::task::tests::test_touch_updates_timestamp ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_next_week ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_today ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_month_day_format ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_strict_format ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_case_insensitive_match ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_case_insensitive_uppercase ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_exact_match_unchanged ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_no_match_new_tag ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_normalize_tags_multiple ... ok
[INFO] [stdout] test utils::date_parser::tests::test_parse_tomorrow ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_fuzzy_match_typo ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_uuid_visible_skips_deleted ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_index_out_of_range ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_index_returns_real_index ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_normalize_tags_no_existing ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_out_of_range ... ok
[INFO] [stdout] test utils::validation::tests::test_resolve_visible_returns_correct_item ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_empty ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_too_long ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_project_name_valid ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_recurrence ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_tags ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_due_date ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_id ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_existing ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_all_deleted ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_all_visible ... ok
[INFO] [stdout] test utils::validation::tests::test_visible_indices_excludes_deleted ... ok
[INFO] [stdout] test storage::memory::tests::test_note_links_to_task ... ok
[INFO] [stdout] test utils::date_parser::tests::test_lazy_lock_regex_reuse ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_fuzzy_match_longer_tag ... ok
[INFO] [stdout] test utils::tag_normalizer::tests::test_no_false_positive_short_tags ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_new ... ok
[INFO] [stdout] test utils::validation::tests::test_validate_task_text ... ok
[INFO] [stdout] test storage::sqlite::tests::test_save_and_load_projects ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/todo-16256c86ec2a0d6d)
[INFO] [stdout] test storage::sqlite::tests::test_save_and_load_resources ... ok
[INFO] [stderr]      Running tests/helpers.rs (/opt/rustwide/target/debug/deps/helpers-5e3a923b009585b8)
[INFO] [stdout] test storage::sqlite::tests::test_save_and_load_notes ... ok
[INFO] [stdout] test storage::sqlite::tests::test_save_and_load_tasks ... ok
[INFO] [stdout] test storage::sqlite::tests::test_markdown_note_format ... ok
[INFO] [stdout] test storage::sqlite::tests::test_soft_delete_preserved ... ok
[INFO] [stdout] test storage::sqlite::tests::test_upsert_does_not_duplicate ... ok
[INFO] [stdout] test storage::sqlite::tests::test_task_dependencies ... ok
[INFO] [stdout] test storage::sqlite::tests::test_note_resource_links ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 102 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[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] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_add_command.rs (/opt/rustwide/target/debug/deps/test_add_command-d99ad66973a8fb0c)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_add_whitespace_only_text_fails ... ok
[INFO] [stdout] test test_add_recurring_task_requires_due_date ... ok
[INFO] [stdout] test test_add_empty_text_fails ... ok
[INFO] [stdout] test test_add_with_duplicate_tags_fails ... ok
[INFO] [stdout] test test_add_with_invalid_tags_fails ... ok
[INFO] [stdout] test test_add_task_with_all_metadata ... ok
[INFO] [stdout] test test_add_simple_task ... ok
[INFO] [stdout] test test_add_multiple_tasks_preserves_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_deps_command.rs (/opt/rustwide/target/debug/deps/test_deps_command-9e3cd8c6597e94ee)
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test test_deps_all_dependencies_satisfied ... ok
[INFO] [stdout] test test_deps_empty_storage ... ok
[INFO] [stdout] test test_deps_task_with_no_dependencies ... ok
[INFO] [stdout] test test_deps_task_with_pending_dependency ... ok
[INFO] [stdout] test test_edit_clear_all_dependencies ... ok
[INFO] [stdout] test test_deps_partially_satisfied ... ok
[INFO] [stdout] test test_edit_add_self_dependency_fails ... ok
[INFO] [stdout] test test_edit_direct_cycle_fails ... ok
[INFO] [stdout] test test_edit_duplicate_dependency_fails ... ok
[INFO] [stdout] test test_edit_no_cycle_on_valid_dep ... ok
[INFO] [stdout] test test_edit_transitive_cycle_fails ... ok
[INFO] [stdout] test test_recurrence_does_not_inherit_deps ... ok
[INFO] [stdout] test test_add_self_dependency_fails ... ok
[INFO] [stdout] test test_blocking_deps_empty_when_all_done ... ok
[INFO] [stdout] test test_deps_invalid_id_zero ... ok
[INFO] [stdout] test test_deps_invalid_id_out_of_range ... ok
[INFO] [stdout] test test_deps_task_with_completed_dependency ... ok
[INFO] [stdout] test test_edit_remove_nonexistent_dependency_fails ... ok
[INFO] [stdout] test test_deps_task_required_by_others ... ok
[INFO] [stdout] test test_blocking_deps_returns_only_pending ... ok
[INFO] [stderr]      Running tests/test_done_commands.rs (/opt/rustwide/target/debug/deps/test_done_commands-b5247abce771030d)
[INFO] [stdout] test test_edit_remove_existing_dependency ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test test_done_unblocked_all_deps_completed ... ok
[INFO] [stdout] test test_done_chain_must_be_completed_in_order ... ok
[INFO] [stdout] test test_done_blocked_by_pending_dep ... ok
[INFO] [stdout] test test_done_unblocked_after_dep_completed ... ok
[INFO] [stdout] test test_done_blocked_by_one_of_multiple_deps ... ok
[INFO] [stdout] test test_done_no_deps_works_normally ... ok
[INFO] [stdout] test test_done_already_completed_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_edit_command.rs (/opt/rustwide/target/debug/deps/test_edit_command-03c06fd86354a56a)
[INFO] [stdout] 
[INFO] [stdout] running 11 tests
[INFO] [stdout] test test_edit_invalid_id ... ok
[INFO] [stdout] test test_edit_add_invalid_tag_fails ... ok
[INFO] [stdout] test test_edit_remove_nonexistent_tag_fails ... ok
[INFO] [stdout] test test_edit_clear_due_date ... ok
[INFO] [stdout] test test_edit_remove_specific_tag ... ok
[INFO] [stdout] test test_edit_text ... ok
[INFO] [stdout] test test_edit_due_date ... ok
[INFO] [stdout] test test_edit_add_tags_preserves_existing ... ok
[INFO] [stdout] test test_edit_add_and_remove_tags_simultaneously ... ok
[INFO] [stdout] test test_edit_clear_all_tags ... ok
[INFO] [stdout] test test_edit_priority ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_projects_command.rs (/opt/rustwide/target/debug/deps/test_projects_command-47fb1715b1810e43)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test test_add_empty_project_name_fails ... ok
[INFO] [stdout] test test_add_project_name_exactly_max_length_ok ... ok
[INFO] [stdout] test test_add_project_name_too_long_fails ... ok
[INFO] [stdout] test test_edit_assign_project ... ok
[INFO] [stdout] test test_edit_clear_project ... ok
[INFO] [stdout] test test_edit_no_change_when_same_project ... ok
[INFO] [stdout] test test_list_filter_by_nonexistent_project_fails ... ok
[INFO] [stdout] test test_edit_change_project ... ok
[INFO] [stdout] test test_list_filter_by_project_case_insensitive ... ok
[INFO] [stdout] test test_projects_empty_storage_fails ... ok
[INFO] [stdout] test test_list_filter_project_with_status ... ok
[INFO] [stdout] test test_list_filter_project_with_sort ... ok
[INFO] [stdout] test test_projects_mixed_with_and_without_project ... ok
[INFO] [stdout] test test_projects_all_tasks_completed ... ok
[INFO] [stdout] test test_projects_pending_and_done_counts ... ok
[INFO] [stdout] test test_projects_no_projects_fails ... ok
[INFO] [stdout] test test_projects_multiple_projects ... ok
[INFO] [stdout] test test_projects_single_project ... ok
[INFO] [stdout] test test_list_filter_by_project ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_purge_command.rs (/opt/rustwide/target/debug/deps/test_purge_command-b27c70b11053e852)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_purge_no_deleted_tasks_no_error ... ok
[INFO] [stdout] test test_purge_days_zero_is_the_only_threshold_that_catches_new_tombstones ... ok
[INFO] [stdout] test test_purge_days_zero_removes_multiple_tombstones ... ok
[INFO] [stdout] test test_purge_does_not_remove_active_tasks ... ok
[INFO] [stdout] test test_purge_high_days_threshold_keeps_recent_tombstones ... ok
[INFO] [stdout] test test_purge_empty_storage_no_error ... ok
[INFO] [stdout] test test_purge_days_zero_removes_all_tombstones ... ok
[INFO] [stdout] test test_purge_mixed_active_and_tombstones ... ok
[INFO] [stdout] test test_purge_dry_run_does_not_remove ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/test_recur_command.rs (/opt/rustwide/target/debug/deps/test_recur_command-b79c015121010170)
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test test_add_empty_project_name_fails ... ok
[INFO] [stdout] test test_add_project_name_too_long_fails ... ok
[INFO] [stdout] test test_add_project_name_exactly_max_length_ok ... ok
[INFO] [stdout] test test_edit_assign_project ... ok
[INFO] [stdout] test test_edit_change_project ... ok
[INFO] [stdout] test test_edit_no_change_when_same_project ... ok
[INFO] [stdout] test test_edit_clear_project ... ok
[INFO] [stdout] test test_list_filter_by_project_case_insensitive ... ok
[INFO] [stdout] test test_list_filter_by_nonexistent_project_fails ... ok
[INFO] [stdout] test test_list_filter_by_project ... ok
[INFO] [stdout] test test_list_filter_project_with_sort ... ok
[INFO] [stdout] test test_projects_empty_storage_fails ... ok
[INFO] [stdout] test test_projects_mixed_with_and_without_project ... ok
[INFO] [stdout] test test_projects_multiple_projects ... ok
[INFO] [stdout] test test_list_filter_project_with_status ... ok
[INFO] [stdout] test test_projects_no_projects_fails ... ok
[INFO] [stdout] test test_projects_pending_and_done_counts ... ok
[INFO] [stdout] test test_projects_single_project ... ok
[INFO] [stdout] test test_projects_all_tasks_completed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running tests/test_remove_command.rs (/opt/rustwide/target/debug/deps/test_remove_command-3ba08b28b8a8242f)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_remove_all_tasks_one_by_one ... ok
[INFO] [stdout] test test_remove_correct_task_by_text ... ok
[INFO] [stdout] test test_remove_from_empty_storage_fails ... ok
[INFO] [stderr]      Running tests/test_search_command.rs (/opt/rustwide/target/debug/deps/test_search_command-c81874c804c40f56)
[INFO] [stdout] test test_remove_id_zero_fails ... ok
[INFO] [stdout] test test_remove_first_task ... ok
[INFO] [stdout] test test_remove_id_out_of_range_fails ... ok
[INFO] [stdout] test test_remove_middle_task ... ok
[INFO] [stdout] test test_remove_preserves_task_metadata ... ok
[INFO] [stdout] test test_remove_reduces_task_count ... ok
[INFO] [stdout] test test_remove_single_task ... ok
[INFO] [stdout] test test_remove_with_yes_flag_skips_confirmation ... ok
[INFO] [stdout] test test_remove_last_task ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test test_search_empty_storage_fails ... ok
[INFO] [stdout] test test_search_no_results_fails ... ok
[INFO] [stdout] test test_search_finds_matching_task ... ok
[INFO] [stdout] test test_search_project_filter_case_insensitive ... ok
[INFO] [stdout] test test_search_status_done_no_results_fails ... ok
[INFO] [stdout] test test_search_status_all_returns_both ... ok
[INFO] [stdout] test test_search_status_pending_excludes_done ... ok
[INFO] [stdout] test test_search_with_project_filter ... ok
[INFO] [stdout] test test_search_tag_and_project_and_status ... ok
[INFO] [stdout] test test_search_tag_filter_no_match_fails ... ok
[INFO] [stdout] test test_search_status_pending_no_results_fails ... ok
[INFO] [stdout] test test_search_case_insensitive ... ok
[INFO] [stdout] test test_search_status_done_excludes_pending ... ok
[INFO] [stdout] test test_search_with_tag_filter ... ok
[INFO] [stderr]      Running tests/test_undone_command.rs (/opt/rustwide/target/debug/deps/test_undone_command-466e4a8cd3f76192)
[INFO] [stdout] test test_search_partial_match ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rustodo
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_undone_empty_storage_fails ... ok
[INFO] [stdout] test test_undone_allows_redone_after ... ok
[INFO] [stdout] test test_undone_then_done_cycle ... ok
[INFO] [stdout] test test_undone_already_pending_fails ... ok
[INFO] [stdout] test test_undone_id_out_of_range_fails ... ok
[INFO] [stdout] test test_undone_only_affects_target_task ... ok
[INFO] [stdout] test test_undone_reverts_completed_task ... ok
[INFO] [stdout] test test_undone_id_zero_fails ... ok
[INFO] [stdout] test test_undone_clears_completed_at ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test src/models/task.rs - models::task::Task::new (line 118) ... ok
[INFO] [stdout] test src/services/holidays.rs - services::holidays (line 6) - compile ... ok
[INFO] [stdout] test src/utils/date_parser.rs - utils::date_parser::parse_date (line 44) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::Task::create_next_recurrence (line 372) ... ok
[INFO] [stdout] test src/models/project.rs - models::project::Project::resolve_or_create (line 134) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::count_by_project (line 424) ... ok
[INFO] [stdout] test src/models/recurrence.rs - models::recurrence::Recurrence::next_date (line 44) ... ok
[INFO] [stdout] test src/models/task.rs - models::task::Task (line 23) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.72s; merged doctests compilation took 1.66s
[INFO] running `Command { std: "docker" "inspect" "eef5e2be75a461919503463e9a364b90dd4c640e83d945af02a3ed44c16dd1e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eef5e2be75a461919503463e9a364b90dd4c640e83d945af02a3ed44c16dd1e3", kill_on_drop: false }`
[INFO] [stdout] eef5e2be75a461919503463e9a364b90dd4c640e83d945af02a3ed44c16dd1e3
