[INFO] cloning repository https://github.com/aaronmallen/doing [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/aaronmallen/doing" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faaronmallen%2Fdoing", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faaronmallen%2Fdoing'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0e03a915a181c75abbde9aee1893863d64bc3098 [INFO] testing aaronmallen/doing against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faaronmallen%2Fdoing" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/aaronmallen/doing [INFO] finished tweaking git repo https://github.com/aaronmallen/doing [INFO] tweaked toml for git repo https://github.com/aaronmallen/doing written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/aaronmallen/doing on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/aaronmallen/doing 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded serde_spanned v1.1.0 [INFO] [stderr] Downloaded toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded clap_mangen v0.3.0 [INFO] [stderr] Downloaded dir_spec v0.5.0 [INFO] [stderr] Downloaded assert_cmd v2.2.0 [INFO] [stderr] Downloaded clap_derive v4.6.0 [INFO] [stderr] Downloaded console v0.16.3 [INFO] [stderr] Downloaded indicatif v0.18.4 [INFO] [stderr] Downloaded tar v0.4.45 [INFO] [stderr] Downloaded mio v1.2.0 [INFO] [stderr] Downloaded ureq-proto v0.6.0 [INFO] [stderr] Downloaded iri-string v0.7.12 [INFO] [stderr] Downloaded ureq v3.3.0 [INFO] [stderr] Downloaded toml_edit v0.25.8+spec-1.1.0 [INFO] [stderr] Downloaded yaml_serde v0.10.4 [INFO] [stderr] Downloaded self_update v0.43.1 [INFO] [stderr] Downloaded toml v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded libyaml-rs v0.3.0 [INFO] [stderr] Downloaded self-replace v1.5.0 [INFO] [stderr] Downloaded filetime v0.2.27 [INFO] [stderr] Downloaded simd-adler32 v0.3.9 [INFO] [stderr] Downloaded zipsign-api v0.1.5 [INFO] [stderr] Downloaded toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Downloaded roff v1.1.1 [INFO] [stderr] Downloaded sublime_fuzzy v0.7.0 [INFO] [stderr] Downloaded json_comments v0.2.2 [INFO] [stderr] Downloaded typed-env v0.3.0 [INFO] [stderr] Downloaded num-conv v0.2.1 [INFO] [stderr] Downloaded utf8-zero v0.8.1 [INFO] [stderr] Downloaded md5 v0.8.0 [INFO] [stderr] Downloaded web-sys v0.3.92 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aff5c1a54838fd70a524c199077323f917be3a9c2698d369593025695ca82524 [INFO] running `Command { std: "docker" "start" "-a" "aff5c1a54838fd70a524c199077323f917be3a9c2698d369593025695ca82524", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aff5c1a54838fd70a524c199077323f917be3a9c2698d369593025695ca82524", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aff5c1a54838fd70a524c199077323f917be3a9c2698d369593025695ca82524", kill_on_drop: false }` [INFO] [stdout] aff5c1a54838fd70a524c199077323f917be3a9c2698d369593025695ca82524 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ff540dc73f6f8105e8bc6242488ef760e2b3d958a4751a939ef5b5686c8041f4 [INFO] running `Command { std: "docker" "start" "-a" "ff540dc73f6f8105e8bc6242488ef760e2b3d958a4751a939ef5b5686c8041f4", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling itoa v1.0.18 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling cc v1.2.58 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling winnow v1.0.0 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling toml_datetime v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling toml_writer v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_spanned v1.1.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling libyaml-rs v0.3.0 [INFO] [stderr] Compiling md5 v0.8.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling dir_spec v0.5.0 [INFO] [stderr] Compiling json_comments v0.2.2 [INFO] [stderr] Compiling siphasher v1.0.2 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling portable-atomic v1.13.1 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling phf_shared v0.12.1 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling chrono-tz v0.10.4 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling iri-string v0.7.12 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling phf v0.12.1 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling xattr v1.6.1 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling unit-prefix v0.5.2 [INFO] [stderr] Compiling self_update v0.43.1 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling self-replace v1.5.0 [INFO] [stderr] Compiling tar v0.4.45 [INFO] [stderr] Compiling sublime_fuzzy v0.7.0 [INFO] [stderr] Compiling urlencoding v2.1.3 [INFO] [stderr] Compiling jiff v0.2.23 [INFO] [stderr] Compiling roff v1.1.1 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling toml_parser v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling indicatif v0.18.4 [INFO] [stderr] Compiling semver v1.0.27 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling dialoguer v0.12.0 [INFO] [stderr] Compiling toml v1.1.0+spec-1.1.0 [INFO] [stderr] Compiling toml_edit v0.25.8+spec-1.1.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling env_filter v1.0.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling doing-error v0.1.1 (/opt/rustwide/workdir/crates/error) [INFO] [stderr] Compiling typed-env v0.3.0 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling clap_mangen v0.3.0 [INFO] [stderr] Compiling clap_complete v4.6.0 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling yaml_serde v0.10.4 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling rustls-webpki v0.103.10 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling doing-time v0.1.5 (/opt/rustwide/workdir/crates/time) [INFO] [stderr] Compiling doing-taskpaper v0.2.0 (/opt/rustwide/workdir/crates/taskpaper) [INFO] [stderr] Compiling doing-config v0.1.2 (/opt/rustwide/workdir/crates/config) [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling doing-template v0.1.6 (/opt/rustwide/workdir/crates/template) [INFO] [stderr] Compiling doing-ops v0.2.0 (/opt/rustwide/workdir/crates/ops) [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling doing-plugins v0.2.1 (/opt/rustwide/workdir/crates/plugins) [INFO] [stderr] Compiling doing v0.1.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 15s [INFO] running `Command { std: "docker" "inspect" "ff540dc73f6f8105e8bc6242488ef760e2b3d958a4751a939ef5b5686c8041f4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ff540dc73f6f8105e8bc6242488ef760e2b3d958a4751a939ef5b5686c8041f4", kill_on_drop: false }` [INFO] [stdout] ff540dc73f6f8105e8bc6242488ef760e2b3d958a4751a939ef5b5686c8041f4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4a248fcece9e39f947885473ca3d5e4c65643efaa2fb74339993522ca07d0a5c [INFO] running `Command { std: "docker" "start" "-a" "4a248fcece9e39f947885473ca3d5e4c65643efaa2fb74339993522ca07d0a5c", kill_on_drop: false }` [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling doing-time v0.1.5 (/opt/rustwide/workdir/crates/time) [INFO] [stderr] Compiling doing-taskpaper v0.2.0 (/opt/rustwide/workdir/crates/taskpaper) [INFO] [stderr] Compiling env_filter v1.0.1 [INFO] [stderr] Compiling self_update v0.43.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling env_logger v0.11.10 [INFO] [stderr] Compiling doing-config v0.1.2 (/opt/rustwide/workdir/crates/config) [INFO] [stderr] Compiling doing-template v0.1.6 (/opt/rustwide/workdir/crates/template) [INFO] [stderr] Compiling doing-ops v0.2.0 (/opt/rustwide/workdir/crates/ops) [INFO] [stderr] Compiling doing-plugins v0.2.1 (/opt/rustwide/workdir/crates/plugins) [INFO] [stderr] Compiling doing v0.1.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 31.87s [INFO] running `Command { std: "docker" "inspect" "4a248fcece9e39f947885473ca3d5e4c65643efaa2fb74339993522ca07d0a5c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4a248fcece9e39f947885473ca3d5e4c65643efaa2fb74339993522ca07d0a5c", kill_on_drop: false }` [INFO] [stdout] 4a248fcece9e39f947885473ca3d5e4c65643efaa2fb74339993522ca07d0a5c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7775ff099dbbff2a5f3202e9a7a20d9660e69244f773f64ed86ef1637b62fecc [INFO] running `Command { std: "docker" "start" "-a" "7775ff099dbbff2a5f3202e9a7a20d9660e69244f773f64ed86ef1637b62fecc", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.46s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/doing-239345cddf5638a1) [INFO] [stdout] [INFO] [stdout] running 436 tests [INFO] [stdout] test cli::args::test::bool_arg::it_converts_to_boolean_mode ... ok [INFO] [stdout] test cli::args::test::age_arg::it_converts_to_age ... ok [INFO] [stdout] test cli::args::test::display_args::render_entries::it_renders_with_template_when_no_output_specified ... ok [INFO] [stdout] test cli::args::test::filter_args::it_builds_tag_filter_from_comma_separated_tags ... ok [INFO] [stdout] test cli::args::test::filter_args::it_builds_tag_filter_with_default_bool ... ok [INFO] [stdout] test cli::args::test::filter_args::it_sets_only_timed ... ok [INFO] [stdout] test cli::args::test::filter_args::it_passes_section_through ... ok [INFO] [stdout] test cli::args::test::sort_arg::it_converts_to_sort_order ... ok [INFO] [stdout] test cli::args::test::filter_args::it_rejects_invalid_tag_queries ... ok [INFO] [stdout] test cli::args::test::filter_args::it_parses_tag_queries ... ok [INFO] [stdout] test cli::args::test::filter_args::it_sets_negate_from_not_flag ... ok [INFO] [stdout] test cli::commands::again::test::find_source_entry::it_errors_when_no_entries_exist ... ok [INFO] [stdout] test cli::commands::again::test::find_source_entry::it_finds_done_entry_when_no_active_entries ... ok [INFO] [stdout] test cli::commands::again::test::find_source_entry::it_finds_most_recent_unfinished_entry ... ok [INFO] [stdout] test cli::args::test::display_args::render_entries::it_returns_error_for_unrecognized_output_format ... ok [INFO] [stdout] test cli::commands::again::test::call::it_filters_by_tag ... ok [INFO] [stdout] test cli::args::test::filter_args::it_converts_default_args_to_default_options ... ok [INFO] [stdout] test cli::commands::again::test::call::it_preserves_notes_from_source ... ok [INFO] [stdout] test cli::commands::again::test::call::it_repeats_done_entry_when_no_active_entries ... ok [INFO] [stdout] test cli::commands::again::test::call::it_replaces_note_when_specified ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_does_nothing_when_section_is_empty ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_adds_from_tag_by_default ... ok [INFO] [stdout] test cli::args::test::display_args::render_entries::it_renders_with_recognized_output_format ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_keeps_entries_in_source_section ... ok [INFO] [stdout] test cli::commands::again::test::call::it_copies_tags_from_source_without_done ... ok [INFO] [stdout] test cli::commands::again::test::call::it_marks_source_entry_as_done ... ok [INFO] [stdout] test cli::commands::again::test::call::it_places_entry_in_target_section ... ok [INFO] [stdout] test cli::commands::again::test::call::it_applies_autotagging ... ok [INFO] [stdout] test cli::commands::again::test::call::it_repeats_last_unfinished_entry ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_limits_entries_with_count ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_moves_nothing_when_keep_exceeds_candidates ... ok [INFO] [stdout] test cli::commands::again::test::find_source_entry::it_finds_entry_by_tag_filter ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_moves_entries_from_positional_section ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_applies_default_tags ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_applies_to_last_n_entries ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_does_not_add_from_tag_when_no_label ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_moves_unfinished_entries_to_archive ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_moves_all_entries_to_archive ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_applies_whitelist_rules ... ok [INFO] [stdout] test cli::commands::archive::test::call::it_moves_entries_matching_positional_tag ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_applies_synonym_rules ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_is_idempotent ... ok [INFO] [stdout] test cli::commands::budget::test::compute_tracked_time::it_returns_empty_for_no_entries ... ok [INFO] [stdout] test cli::commands::budget::test::call::it_shows_message_when_no_budgets ... ok [INFO] [stdout] test cli::commands::budget::test::compute_tracked_time::it_ignores_tags_without_budgets ... ok [INFO] [stdout] test cli::commands::budget::test::remove_budget::it_removes_budget_from_toml ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] test cli::commands::budget::test::call::it_errors_when_tag_not_budgeted ... ok [INFO] [stdout] test cli::commands::autotag::test::call::it_targets_specified_section ... ok [INFO] [stdout] test cli::commands::budget::test::call::it_errors_when_tag_missing_for_remove ... ok [INFO] [stdout] test cli::commands::budget::test::compute_tracked_time::it_computes_tracked_time_for_budgeted_tags ... ok [INFO] [stdout] test cli::commands::budget::test::show_budget::it_errors_for_unconfigured_tag ... ok [INFO] [stdout] test cli::commands::budget::test::set_budget::it_validates_budget_amounts ... ok [INFO] [stdout] test cli::commands::budget::test::call::it_lists_budgets_when_no_args ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_cancels_last_entry_without_timestamp ... ok [INFO] [stdout] test cli::commands::changes::test::extract_version_number::it_extracts_from_bracketed_header ... ok [INFO] [stdout] test cli::commands::budget::test::show_budget::it_shows_single_tag_budget ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_errors_when_all_entries_already_done_with_unfinished_flag ... ok [INFO] [stdout] test cli::commands::changes::test::filter_versions::it_filters_by_type ... ok [INFO] [stdout] test cli::commands::changes::test::filter_versions::it_returns_all_when_flag_set ... ok [INFO] [stdout] test cli::commands::changes::test::format_output::it_formats_changes_only ... ok [INFO] [stdout] test cli::commands::changes::test::format_output::it_formats_default_output ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] test cli::commands::changes::test::format_output::it_formats_markdown ... ok [INFO] [stdout] test cli::commands::changes::test::format_output::it_formats_with_prefix ... ok [INFO] [stdout] test cli::commands::changes::test::lookup_versions::it_finds_exact_version ... ok [INFO] [stdout] test cli::commands::changes::test::extract_version_number::it_extracts_from_bare_header ... ok [INFO] [stdout] test cli::commands::changes::test::lookup_versions::it_finds_with_greater_than ... ok [INFO] [stdout] test cli::commands::changes::test::filter_versions::it_returns_latest_by_default ... ok [INFO] [stdout] test cli::commands::changes::test::lookup_versions::it_finds_with_range ... ok [INFO] [stdout] test cli::commands::changes::test::parse_changelog::it_parses_continuation_lines ... ok [INFO] [stdout] test cli::commands::changes::test::parse_changelog::it_parses_entries_with_types ... ok [INFO] [stdout] test cli::commands::changes::test::filter_versions::it_filters_by_search ... ok [INFO] [stdout] test cli::commands::changes::test::parse_changelog::it_skips_unreleased ... ok [INFO] [stdout] test cli::commands::changes::test::strip_issue_ref::it_strips_issue_reference ... ok [INFO] [stdout] test cli::commands::changes::test::parse_changelog::it_parses_versions ... ok [INFO] [stdout] test cli::commands::changes::test::parse_changelog::it_strips_issue_references ... ok [INFO] [stdout] test cli::commands::changes::test::strip_issue_ref::it_preserves_text_without_reference ... ok [INFO] [stdout] test cli::commands::changes::test::lookup_versions::it_finds_with_wildcard ... ok [INFO] [stdout] test cli::commands::changes::test::version_cmp::it_compares_equal_versions ... ok [INFO] [stdout] test cli::commands::changes::test::version_cmp::it_handles_alpha_suffixes ... ok [INFO] [stdout] test cli::commands::choose::test::action_archive::it_creates_archive_section_if_missing ... ok [INFO] [stdout] test cli::commands::choose::test::action_archive::it_archives_the_entry ... ok [INFO] [stdout] test cli::commands::choose::test::action_cancel::it_skips_already_finished_entries ... ok [INFO] [stdout] test cli::commands::choose::test::action_delete::it_deletes_the_entry ... ok [INFO] [stdout] test cli::commands::choose::test::action_finish::it_finishes_the_entry ... ok [INFO] [stdout] test cli::commands::choose::test::action_cancel::it_cancels_the_entry ... ok [INFO] [stdout] test cli::commands::choose::test::action_finish::it_skips_already_finished_entries ... ok [INFO] [stdout] test cli::commands::choose::test::action_flag::it_unflags_a_flagged_entry ... ok [INFO] [stdout] test cli::commands::choose::test::action_flag::it_flags_an_unflagged_entry ... ok [INFO] [stdout] test cli::commands::choose::test::find_entries::it_filters_by_search ... ok [INFO] [stdout] test cli::commands::choose::test::find_entries::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::budget::test::set_budget::it_rejects_invalid_duration ... ok [INFO] [stdout] test cli::commands::colors::test::call::it_runs_without_error ... ok [INFO] [stdout] test cli::commands::choose::test::find_entries::it_returns_all_entries_when_no_filters ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::changes::test::build_search_pattern::it_builds_case_insensitive_literal ... ok [INFO] [stdout] test cli::commands::colors::test::print_section::it_prints_header_and_entries ... ok [INFO] [stdout] test cli::commands::commands::test::list_commands::it_does_not_error ... ok [INFO] [stdout] test cli::commands::choose::test::find_entries::it_uses_query_as_search ... ok [INFO] [stdout] test cli::commands::commands::test::validate_command_name::it_rejects_unknown_command ... ok [INFO] [stdout] test cli::commands::commands_accepting::test::call::it_does_not_error ... ok [INFO] [stdout] test cli::commands::commands::test::list_commands::it_excludes_hidden_commands ... ok [INFO] [stdout] test cli::commands::config::test::get_value::it_retrieves_top_level_value ... ok [INFO] [stdout] test cli::commands::commands::test::write_disabled_toml::it_creates_new_toml_file_with_disabled_commands ... ok [INFO] [stdout] test cli::commands::commands::test::write_disabled_toml::it_preserves_existing_values ... ok [INFO] [stdout] test cli::commands::config::test::get_value::it_returns_error_for_missing_key ... ok [INFO] [stdout] test cli::commands::config::test::parse_raw_value::it_parses_booleans ... ok [INFO] [stdout] test cli::commands::config::test::parse_raw_value::it_parses_integers ... ok [INFO] [stdout] test cli::commands::config::test::parse_raw_value::it_parses_strings ... ok [INFO] [stdout] test cli::commands::config::test::remove_dot_path::it_removes_nested_key ... ok [INFO] [stdout] test cli::commands::config::test::remove_dot_path::it_returns_false_for_missing_key ... ok [INFO] [stdout] test cli::commands::config::test::get_value::it_retrieves_nested_value ... ok [INFO] [stdout] test cli::commands::changes::test::build_search_pattern::it_builds_regex_from_slashes ... ok [INFO] [stdout] test cli::commands::commands_accepting::test::call::it_matches_with_leading_dashes ... ok [INFO] [stdout] test cli::commands::changes::test::version_cmp::it_compares_greater_version ... ok [INFO] [stdout] test cli::commands::config::test::remove_dot_path::it_removes_top_level_key ... ok [INFO] [stdout] test cli::commands::config::test::remove_dot_path::it_returns_false_for_missing_parent ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_generic::it_removes_json_key ... ok [INFO] [stdout] test cli::commands::config::test::list_configs::it_runs_without_error ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_generic::it_returns_error_for_missing_key ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_toml::it_returns_error_for_missing_key ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_generic::it_removes_yaml_key ... ok [INFO] [stdout] test cli::commands::config::test::resolve_dot_path::it_returns_none_for_missing_path ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_toml::it_removes_top_level_key ... ok [INFO] [stdout] test cli::commands::config::test::reset_config_to_defaults::it_creates_default_toml_config ... ok [INFO] [stdout] test cli::commands::config::test::set_dot_path::it_creates_intermediate_objects ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_toml::it_removes_nested_key ... ok [INFO] [stdout] test cli::commands::config::test::set_dot_path::it_sets_top_level_values ... ok [INFO] [stdout] test cli::commands::config::test::set_dot_path::it_sets_nested_values ... ok [INFO] [stdout] test cli::commands::config::test::set_value_generic::it_sets_yaml_value ... ok [INFO] [stdout] test cli::commands::config::test::set_value_generic::it_sets_json_value ... ok [INFO] [stdout] test cli::commands::config::test::set_value_toml::it_preserves_comments ... ok [INFO] [stdout] test cli::commands::config::test::set_value_toml::it_sets_nested_toml_values ... ok [INFO] [stdout] test cli::commands::config::test::set_value_toml::it_preserves_existing_values ... ok [INFO] [stdout] test cli::commands::done::test::call::it_adds_done_entry_to_archive_when_flag_set ... ok [INFO] [stdout] test cli::commands::done::test::call::it_adds_done_entry_with_title ... ok [INFO] [stdout] test cli::commands::done::test::call::it_adds_done_entry_without_date_when_no_date ... ok [INFO] [stdout] test cli::commands::config::test::set_value_toml::it_creates_new_toml_file ... ok [INFO] [stdout] test cli::commands::done::test::call::it_attaches_note_to_new_entry ... ok [INFO] [stdout] test cli::commands::done::test::call::it_respects_never_time_config ... ok [INFO] [stdout] test cli::commands::config::test::reset_config_to_defaults::it_overwrites_existing_config ... ok [INFO] [stdout] test cli::commands::done::test::call::it_applies_autotagging ... ok [INFO] [stdout] test cli::commands::done::test::remove_done_tag::it_removes_done_tag_from_last_entry ... ok [INFO] [stdout] test cli::commands::config::test::remove_value_toml::it_preserves_comments ... ok [INFO] [stdout] test cli::commands::done::test::call::it_tags_last_entry_when_no_args ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_defaults_to_now ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_uses_back_for_start_date ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_uses_took_to_calculate_start ... ok [INFO] [stdout] test cli::commands::done::test::tag_last_entry::it_archives_entry_after_marking_done ... ok [INFO] [stdout] test cli::commands::done::test::tag_last_entry::it_attaches_note_when_tagging_last ... ok [INFO] [stdout] test cli::commands::commands::test::validate_command_name::it_accepts_known_command ... ok [INFO] [stdout] test cli::commands::done::test::tag_last_entry::it_finds_unfinished_entry_when_last_is_done ... ok [INFO] [stdout] test cli::commands::config::test::resolve_dot_path::it_resolves_nested_paths ... ok [INFO] [stdout] test cli::args::test::filter_args::it_parses_before_date ... ok [INFO] [stdout] test cli::args::test::filter_args::it_parses_after_date ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_combines_at_and_took ... ok [INFO] [stdout] test cli::commands::done::test::call::it_errors_on_empty_title ... ok [INFO] [stdout] test cli::commands::done::test::tag_last_entry::it_reports_all_done_when_no_unfinished_entries ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_archives_finished_entry ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_uses_at_for_finish_date ... ok [INFO] [stdout] test cli::commands::done::test::resolve_dates::it_uses_from_for_start_date ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_errors_when_all_entries_already_done_with_unfinished_flag ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_finishes_last_entry ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_respects_never_time_config ... ok [INFO] [stdout] test cli::commands::finish::test::format_duration::it_formats_hours_and_minutes ... ok [INFO] [stdout] test cli::commands::finish::test::format_duration::it_formats_hours_only ... ok [INFO] [stdout] test cli::commands::finish::test::format_duration::it_formats_minutes_only ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_combines_at_and_took ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_defaults_to_now_with_no_start_change ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_errors_when_at_and_back_both_set ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_updates_existing_done_tag ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_uses_at_time_with_no_start_change ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_sets_start_from_back_and_done_to_now ... ok [INFO] [stdout] test cli::commands::finish::test::resolve_timing::it_sets_start_from_took_and_done_to_now ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_finishes_last_n_entries ... ok [INFO] [stdout] test cli::commands::grep::test::build_filter_options::it_defaults_to_all_sections ... ok [INFO] [stdout] test cli::commands::grep::test::build_filter_options::it_overrides_case_sensitivity ... ok [INFO] [stdout] test cli::commands::grep::test::build_filter_options::it_populates_search_from_query ... ok [INFO] [stdout] test cli::commands::grep::test::build_filter_options::it_sets_section_from_argument ... ok [INFO] [stdout] test cli::commands::grep::test::build_search_query::it_prepends_quote_for_exact_mode ... ok [INFO] [stdout] test cli::commands::grep::test::action_delete::it_deletes_all_matching_entries ... ok [INFO] [stdout] test cli::commands::grep::test::build_search_query::it_preserves_existing_regex_slashes ... ok [INFO] [stdout] test cli::commands::grep::test::build_search_query::it_returns_query_as_is_for_pattern_mode ... ok [INFO] [stdout] test cli::commands::grep::test::build_search_query::it_wraps_regex_in_slashes ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_finishes_with_auto_timing ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_removes_done_tag ... ok [INFO] [stdout] test cli::commands::commands::test::write_disabled_toml::it_writes_empty_array_when_no_disabled_commands ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_finishes_with_no_date ... ok [INFO] [stdout] test cli::commands::grep::test::action_delete::it_deletes_matching_entries ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_respects_never_finish_config ... ok [INFO] [stdout] test cli::commands::done::test::call::it_tags_last_unfinished_entry ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_skips_already_done_entry_without_error ... ok [INFO] [stdout] test cli::commands::changes::test::version_cmp::it_compares_lesser_version ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_cancels_last_n_entries ... ok [INFO] [stdout] test cli::commands::cancel::test::call::it_archives_cancelled_entry ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_respects_never_finish_config ... ok [INFO] [stdout] test cli::commands::grep::test::action_editor::it_persists_edited_titles ... ok [INFO] [stdout] test cli::commands::finish::test::call::it_overwrites_existing_done_date ... ok [INFO] [stdout] test cli::commands::import::test::resolve_format::it_defaults_to_doing_format ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] test cli::commands::import::test::call::it_imports_from_doing_file ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] test cli::commands::import::test::has_overlap::it_detects_overlapping_entries ... ok [INFO] [stdout] test cli::commands::import::test::call::it_applies_tags_to_imported_entries ... ok [INFO] [stdout] test cli::commands::grep::test::call::it_searches_with_exact_mode ... ok [INFO] [stdout] test cli::commands::import::test::has_overlap::it_returns_false_for_non_overlapping ... ok [INFO] [stdout] test cli::commands::import::test::call::it_imports_from_timing_json ... ok [INFO] [stdout] test cli::commands::import::test::call::it_skips_overlapping_entries_with_no_overlap ... ok [INFO] [stdout] test cli::commands::grep::test::call::it_searches_specific_section ... ok [INFO] [stdout] test cli::commands::import::test::resolve_format::it_uses_explicit_type ... ok [INFO] [stdout] test cli::commands::import::test::resolve_format::it_infers_timing_from_json_extension ... ok [INFO] [stdout] test cli::commands::import::test::call::it_applies_prefix_to_imported_entries ... ok [INFO] [stdout] test cli::commands::grep::test::call::it_searches_with_fuzzy_mode ... ok [INFO] [stdout] test cli::commands::import::test::call::it_returns_ok_for_empty_source ... ok [INFO] [stdout] test cli::commands::last::test::call::it_handles_empty_document ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [INFO] [stdout] 03/17/24 2:00pm ║ Active task @coding [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [INFO] [stdout] test cli::commands::last::test::call::it_returns_ok ... ok [INFO] [stdout] test cli::commands::last::test::call::it_skips_done_entries ... ok [INFO] [stdout] test cli::commands::last::test::call::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::last::test::action_delete::it_deletes_the_last_entry ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [INFO] [stdout] test cli::commands::last::test::call::it_filters_by_section ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_adds_date_value_to_marker_tag ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_marks_last_entry_including_done_without_unfinished_flag ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_uses_configured_marker_tag ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_adds_meanwhile_entry ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_archives_finished_meanwhile_entry ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_explicitly_removes_with_remove_flag ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_adds_marker_tag_to_unflagged_entry ... ok [INFO] [stdout] test cli::commands::import::test::call::it_imports_into_custom_section ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_marks_last_unfinished_entry_skipping_done_with_unfinished_flag ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_adds_meanwhile_entry_to_custom_section_with_archive ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_removes_marker_tag_from_flagged_entry ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_applies_autotagging ... ok [INFO] [stdout] test cli::commands::mark::test::call::it_toggles_multiple_entries ... ok [INFO] [stdout] test cli::commands::meanwhile::test::finish_meanwhile_entries::it_skips_already_finished_meanwhile ... ok [INFO] [stdout] test cli::commands::meanwhile::test::finish_meanwhile_entries::it_omits_time_when_never_time_matches ... ok [INFO] [stdout] test cli::commands::meanwhile::test::finish_meanwhile_entries::it_respects_never_finish ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_adds_meanwhile_entry_to_custom_section ... ok [INFO] [stdout] test cli::commands::meanwhile::test::finish_meanwhile_entries::it_does_nothing_when_no_meanwhile_entries ... ok [INFO] [stdout] test cli::commands::note::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] test cli::commands::meanwhile::test::finish_meanwhile_entries::it_finishes_meanwhile_entries ... ok [INFO] [stdout] test cli::commands::grep::test::call::it_handles_no_matches ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_attaches_note ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_finishes_meanwhile_with_no_args ... ok [INFO] [stdout] test cli::commands::note::test::call::it_appends_note_text_to_last_entry ... ok [INFO] [stdout] test cli::commands::note::test::call::it_appends_note_to_last_unfinished_entry_skipping_done ... ok [INFO] [stdout] test cli::commands::now::test::call::it_skips_autotagging_with_noauto ... ok [INFO] [stdout] test cli::commands::note::test::call::it_appends_to_existing_note ... ok [INFO] [stdout] test cli::commands::note::test::call::it_combines_text_and_note_flags ... ok [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_does_not_finish_already_done_entry ... ok [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_does_nothing_for_empty_section ... ok [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_adds_done_tag_to_last_entry ... ok [INFO] [stdout] test cli::commands::meanwhile::test::call::it_skips_autotagging_with_noauto ... ok [INFO] [stdout] test cli::commands::note::test::call::it_removes_notes ... ok [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [Currently ] [INFO] [stdout] test cli::commands::meanwhile::test::call::it_archives_finished_meanwhile_with_no_title ... ok [INFO] [stdout] test cli::commands::on::test::call::it_handles_empty_document ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_does_nothing_for_missing_section ... ok [INFO] [stdout] test cli::commands::on::test::call::it_filters_by_section ... ok [INFO] [stdout] test cli::commands::now::test::call::it_finishes_last_entry ... ok [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_omits_time_when_never_time_matches ... ok [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [Currently ] [INFO] [stdout] test cli::commands::meanwhile::test::call::it_finishes_existing_meanwhile_and_starts_new ... ok [INFO] [stdout] test cli::commands::now::test::call::it_adds_entry_to_current_section ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/15/24 10:00am ║ Old entry [Currently ] [INFO] [stdout] test cli::commands::grep::test::call::it_searches_with_regex_mode ... ok [INFO] [stdout] test cli::commands::now::test::call::it_applies_autotagging ... ok [INFO] [stdout] test cli::commands::note::test::call::it_appends_multiple_note_flags ... ok [INFO] [stdout] test cli::commands::now::test::call::it_adds_entry_to_custom_section ... ok [INFO] [stdout] test cli::commands::open::test::resolve_open_editor::it_falls_back_to_default_editor ... ok [INFO] [stdout] test cli::commands::open::test::resolve_open_editor::it_uses_app_flag_when_provided ... ok [INFO] [stdout] test cli::commands::open::test::resolve_open_editor::it_uses_doing_file_editor_when_set ... ok [INFO] [stdout] test cli::commands::on::test::call::it_returns_ok_with_single_date ... ok [INFO] [stdout] test cli::commands::open::test::resolve_open_editor::it_uses_editor_flag_over_config ... ok [INFO] [stdout] test cli::commands::grep::test::call::it_searches_across_all_sections ... ok [INFO] [stdout] test cli::commands::on::test::call::it_returns_ok_with_date_range ... ok [INFO] [stdout] test cli::commands::now::test::call::it_accepts_empty_title ... ok [INFO] [stdout] test cli::commands::open::test::resolve_open_editor::it_uses_editor_flag_when_provided ... ok [INFO] [stdout] test cli::commands::plugins::test::call::it_errors_on_invalid_type ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] test cli::commands::recent::test::call::it_handles_empty_document ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] test cli::commands::recent::test::call::it_filters_by_section ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] test cli::commands::recent::test::call::it_respects_count_override ... ok [INFO] [stdout] test cli::commands::now::test::call::it_attaches_note ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_resets_with_back_date ... ok [INFO] [stdout] test cli::commands::now::test::finish_last_entry::it_respects_never_finish ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_resets_multiple_entries ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_back_takes_precedence_over_date_string ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_removes_done_tag_by_default ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_from_takes_precedence_over_back ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_resets_start_date_to_now ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_sets_done_date_with_took_and_date_string ... ok [INFO] [stdout] test cli::commands::reset::test::set_date::it_updates_entry_date ... ok [INFO] [stdout] test cli::commands::rotate::test::archive_path::it_generates_dated_archive_filename ... ok [INFO] [stdout] test cli::commands::rotate::test::call::it_does_nothing_when_section_is_empty ... ok [INFO] [stdout] test cli::commands::sections::test::add_section::it_returns_error_for_duplicate_section ... ok [INFO] [stdout] test cli::commands::sections::test::list_sections::it_handles_empty_document ... ok [INFO] [stdout] test cli::commands::sections::test::list_sections::it_lists_sections ... ok [INFO] [stdout] test cli::commands::plugins::test::call::it_does_not_error ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_removes_empty_section ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_sets_done_date_with_took ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_archives_entries_before_removing_section ... ok [INFO] [stdout] test cli::commands::select::test::action_archive::it_archives_selected_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_archive::it_creates_archive_section_if_missing ... ok [INFO] [stdout] test cli::commands::rotate::test::call::it_creates_archive_file ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_returns_error_for_missing_section ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_creates_archive_section_when_missing ... ok [INFO] [stdout] test cli::commands::select::test::action_cancel::it_cancels_selected_entries ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_removes_empty_section_with_archive_flag ... ok [INFO] [stdout] test cli::commands::select::test::action_cancel::it_skips_already_finished_entries ... ok [INFO] [stdout] test cli::commands::rotate::test::call::it_keeps_entries_in_source_section ... ok [INFO] [stdout] test cli::commands::select::test::action_flag::it_unflags_flagged_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_delete::it_deletes_selected_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_move::it_creates_target_section_if_missing ... ok [INFO] [stdout] test cli::commands::select::test::action_finish::it_finishes_selected_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_move::it_moves_entries_to_target_section ... ok [INFO] [stdout] test cli::commands::select::test::action_finish::it_skips_already_finished_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_flag::it_flags_unflagged_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_tag::it_adds_tags_to_selected_entries ... ok [INFO] [stdout] test cli::commands::select::test::action_tag::it_errors_when_no_tags_specified ... ok [INFO] [stdout] test cli::commands::select::test::find_entries::it_filters_by_search ... ok [INFO] [stdout] test cli::commands::select::test::present_menu::it_formats_entries_with_tags ... ok [INFO] [stdout] test cli::commands::select::test::find_entries::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::select::test::action_output::it_saves_to_file ... ok [INFO] [stdout] test cli::commands::select::test::find_entries::it_returns_all_entries_when_no_filters ... ok [INFO] [stdout] 03/17/24 4:00pm ║ Plan next ready [Later ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 4:00pm ║ Plan next ready [Later ] [INFO] [stdout] test cli::commands::select::test::find_entries::it_uses_query_as_search ... ok [INFO] [stdout] test cli::commands::on::test::call::it_rejects_invalid_date ... ok [INFO] [stdout] test cli::commands::sections::test::remove_section::it_returns_error_for_non_empty_section ... ok [INFO] [stdout] test cli::commands::show::test::call::it_displays_named_section ... ok [INFO] [stdout] test cli::commands::show::test::build_filter_options::it_sets_section_from_argument ... ok [INFO] [stdout] test cli::commands::show::test::build_filter_options::it_combines_positional_tags_with_filter_tags ... ok [INFO] [stdout] test cli::commands::rotate::test::call::it_removes_rotated_entries_from_source ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_keeps_done_tag_with_no_resume ... ok [INFO] [stdout] test cli::commands::rotate::test::call::it_moves_entries_before_date ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_resets_with_from_range ... ok [INFO] [stdout] test cli::commands::reset::test::call::it_resets_with_date_string ... ok [INFO] [stdout] test cli::commands::show::test::build_filter_options::it_strips_at_prefix_from_positional_tags ... ok [INFO] [stdout] test cli::commands::recent::test::call::it_returns_ok ... ok [INFO] [stdout] test cli::commands::show::test::call::it_displays_all_sections ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] test cli::commands::tag::test::call::it_errors_when_no_tags_specified_for_add ... ok [INFO] [stdout] test cli::commands::show::test::call::it_handles_empty_section ... ok [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] test cli::commands::tag::test::call::it_errors_on_empty_section ... ok [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 4:00pm ║ Plan next ready [Later ] [INFO] [stdout] test cli::commands::show::test::call::it_filters_by_tag ... ok [INFO] [stdout] test cli::commands::show::test::call::it_displays_current_section_by_default ... ok [INFO] [stdout] test cli::commands::show::test::call::it_prefers_positional_arg_over_section_flag ... ok [INFO] [stdout] test cli::commands::since::test::call::it_filters_by_section ... ok [INFO] [stdout] test cli::commands::show::test::call::it_displays_all_sections_via_section_flag ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_adds_tags_to_last_entry ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_adds_tag_with_value ... ok [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [Currently ] [INFO] [stdout] 03/17/24 4:00pm ║ Plan next ready [Later ] [INFO] [stdout] test cli::commands::since::test::call::it_rejects_invalid_date ... ok [INFO] [stdout] test cli::commands::since::test::call::it_returns_ok ... ok [INFO] [stdout] test cli::commands::show::test::call::it_displays_named_section_via_section_flag ... ok [INFO] [stdout] test cli::commands::tag_dir::test::merge_tags::it_creates_default_tags_when_missing ... ok [INFO] [stdout] test cli::commands::tag_dir::test::write_new_rc::it_creates_doingrc_with_tags ... ok [INFO] [stdout] test cli::commands::tag_dir::test::write_new_rc::it_writes_valid_yaml ... ok [INFO] [stdout] test cli::commands::tags::test::collect_tags::it_deduplicates_case_insensitively ... ok [INFO] [stdout] test cli::commands::tag_dir::test::merge_tags::it_handles_empty_file ... ok [INFO] [stdout] test cli::commands::tag_dir::test::merge_tags::it_deduplicates_case_insensitively ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_removes_tags ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_count::it_breaks_ties_by_name ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_count::it_sorts_descending_by_count ... ok [INFO] [stdout] test cli::commands::tags::test::collect_tags::it_returns_empty_for_no_tags ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_count::it_sorts_ascending_by_count ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_name::it_sorts_ascending ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_name::it_sorts_descending ... ok [INFO] [stdout] test cli::commands::tag_dir::test::merge_tags::it_adds_new_tags_to_existing_config ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_time::it_sorts_descending_by_time ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_renames_tags ... ok [INFO] [stdout] test cli::commands::tags::test::sort_by_time::it_sorts_by_total_interval ... ok [INFO] [stdout] test cli::commands::template::test::call::it_shows_path ... ok [INFO] [stdout] test cli::commands::template::test::call::it_shows_css_template ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_tags_last_n_entries ... ok [INFO] [stdout] test cli::commands::template::test::show_path::it_runs_without_error ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_removes_tags_by_regex ... ok [INFO] [stdout] test cli::commands::template::test::show_template::it_shows_builtin_css ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_tags_last_unfinished_entry_skipping_done_with_unfinished_flag ... ok [INFO] [stdout]  7:55pm ║ Working on project today @coding [Currently ] [INFO] [stdout]  7:55pm ║ Working on project today @coding [Currently ] [INFO] [stdout] test cli::commands::tag::test::call::it_tags_last_entry_including_done_without_unfinished_flag ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_removes_tags_by_wildcard ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_renames_tags_by_wildcard ... ok [INFO] [stdout] test cli::commands::today::test::call::it_filters_by_section ... ok [INFO] [stdout] test cli::commands::today::test::call::it_handles_empty_document ... ok [INFO] [stdout] test cli::commands::today::test::call::it_returns_ok ... ok [INFO] [stdout] test cli::commands::template::test::template_source::it_returns_builtin_for_known_format ... ok [INFO] [stdout] test cli::commands::view::test::build_filter_options::it_applies_view_tags_when_no_cli_tags ... ok [INFO] [stdout] test cli::commands::view::test::build_filter_options::it_prefers_cli_count_over_view_count ... ok [INFO] [stdout] test cli::commands::undo::test::call::it_returns_error_when_no_backups ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] test cli::commands::view::test::build_filter_options::it_prefers_cli_tags_over_view_tags ... ok [INFO] [stdout] test cli::commands::update::test::version_diff::fmt::it_displays_version_diff ... ok [INFO] [stdout] test cli::commands::tag::test::call::it_adds_tag_with_date_value ... ok [INFO] [stdout] test cli::commands::undo::test::call::it_restores_nth_backup ... ok [INFO] [stdout] test cli::commands::undo::test::call::it_restores_from_most_recent_backup ... ok [INFO] [stdout] test cli::commands::since::test::call::it_handles_empty_document ... ok [INFO] [stdout] test cli::commands::tags::test::collect_tags::it_counts_tag_occurrences ... ok [INFO] [stdout] test cli::commands::view::test::call::it_displays_entries_using_view_settings ... ok [INFO] [stdout] test cli::commands::view::test::parse_bool_mode::it_parses_and ... ok [INFO] [stdout] test cli::commands::view::test::build_filter_options::it_applies_view_count_when_no_cli_count ... ok [INFO] [stdout] test cli::commands::view::test::parse_bool_mode::it_parses_not ... ok [INFO] [stdout] test cli::commands::view::test::build_filter_options::it_skips_view_count_when_zero ... ok [INFO] [stdout] test cli::commands::view::test::call_external::it_returns_error_for_unknown_view ... ok [INFO] [stdout] test cli::commands::view::test::parse_bool_mode::it_returns_or_for_unknown ... ok [INFO] [stdout] test cli::commands::view::test::resolve_section::it_prefers_cli_section_over_view ... ok [INFO] [stdout] test cli::commands::view::test::resolve_section::it_uses_view_section ... ok [INFO] [stdout] test cli::commands::view::test::resolve_template::it_uses_view_template ... ok [INFO] [stdout] test cli::commands::view::test::resolve_view_name::it_prefers_exact_match ... ok [INFO] [stdout] test cli::commands::view::test::resolve_view_name::it_returns_error_for_ambiguous_prefix ... ok [INFO] [stdout] test cli::commands::view::test::resolve_view_name::it_resolves_unique_prefix ... ok [INFO] [stdout] test cli::commands::view::test::call::it_returns_error_for_unknown_view ... ok [INFO] [stdout] test cli::commands::template::test::list_templates::it_lists_in_column_mode ... ok [INFO] [stdout] test cli::commands::view::test::parse_bool_mode::it_parses_case_insensitive ... ok [INFO] [stdout] 03/17/24 3:00pm ║ Meeting with team @meeting [Currently ] [INFO] [stdout] 03/17/24 2:00pm ║ Working on project @coding [Currently ] [INFO] [stdout] test cli::commands::view::test::parse_bool_mode::it_parses_pattern ... ok [INFO] [stdout] test cli::commands::view::test::call_external::it_dispatches_to_named_view ... ok [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [INFO] [stdout] test cli::commands::views::test::remove_view_from_yaml::it_removes_a_view_entry ... ok [INFO] [stdout] test cli::commands::view::test::resolve_section::it_falls_back_to_current_section_when_view_section_empty ... ok [INFO] [stdout] test cli::commands::view::test::resolve_template::it_falls_back_to_default_when_view_template_empty ... ok [INFO] [stdout] test cli::commands::views::test::remove_view::it_returns_error_for_unknown_view ... ok [INFO] [stdout] test cli::commands::views::test::remove_view_from_yaml::it_returns_none_when_view_not_found ... ok [INFO] [stdout] test cli::commands::yesterday::test::call::it_filters_by_section ... ok [INFO] [stdout] test cli::commands::view::test::resolve_template::it_prefers_cli_template_over_view ... ok [INFO] [stdout] test cli::commands::yesterday::test::call::it_handles_empty_document ... ok [INFO] [stdout] test cli::editor::test::resolve_editor::it_falls_back_to_vi ... ok [INFO] [stdout] test cli::commands::view::test::resolve_view_name::it_returns_error_for_no_match ... ok [INFO] [stdout] test cli::commands::views::test::list_views::it_handles_empty_views ... ok [INFO] [stdout] [INFO] [stdout] Sun 7:55pm ║ Yesterday's work @coding [INFO] [stdout] test cli::commands::views::test::list_views::it_lists_configured_views ... ok [INFO] [stdout] test cli::pager::test::output::it_does_not_paginate_when_disabled ... ok [INFO] [stdout] test cli::editor::test::resolve_editor::it_uses_config_editor_when_set ... ok [INFO] [stdout] test cli::commands::views::test::remove_view_from_yaml::it_removes_the_last_view_entry ... ok [INFO] [stdout] test cli::commands::yesterday::test::call::it_returns_ok ... ok [INFO] [stdout] test cli::interactive::test::format_entry::it_formats_entry_without_tags ... ok [INFO] [stdout] test cli::interactive::test::format_entry::it_formats_entry_with_tags ... ok [INFO] [stdout] test cli::pager::test::resolve_pager::it_uses_config_pager_when_set ... ok [INFO] [stdout] test cli::pager::test::resolve_pager::it_returns_a_pager_command ... ok [INFO] [stdout] test cli::editor::test::edit::it_returns_config_error_for_whitespace_editor ... ok [INFO] [stdout] test cli::commands::template::test::list_templates::it_lists_builtin_formats ... ok [INFO] [stdout] test cli::interactive::test::has_fzf::it_returns_a_bool ... ok [INFO] [stdout] test cli::commands::template::test::show_template::it_shows_known_export_format ... ok [INFO] [stdout] test cli::commands::template::test::show_template::it_returns_error_for_unknown_template ... ok [INFO] [stdout] test cli::commands::template::test::call::it_defaults_to_list ... ok [INFO] [stdout] test cli::commands::template::test::call::it_lists_when_flag_set ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 436 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.34s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/doing-c13fd9ab0424fe0c) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/manpages.rs (/opt/rustwide/target/debug/deps/manpages-85f721376587888b) [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/integration/main.rs (/opt/rustwide/target/debug/deps/integration-2e51b8f003d1f40c) [INFO] [stdout] [INFO] [stdout] running 1043 tests [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_24_hour_time ... ok [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_midnight ... ok [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_12_hour_time ... ok [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_12_hour_time_with_minutes ... ok [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_noon ... ok [INFO] [stdout] test behavior::chronify::when_date_string_is_provided::it_parses_short_us_date ... ok [INFO] [stdout] test behavior::chronify::when_interval_format_is_provided::it_parses_hhmm_interval ... ok [INFO] [stdout] test behavior::chronify::when_absolute_time_is_provided::it_parses_12_hour_am ... ok [INFO] [stdout] test behavior::chronify::when_date_string_is_provided::it_parses_strftime_datetime ... ok [INFO] [stdout] test behavior::chronify::when_date_string_is_provided::it_parses_us_date_format ... ok [INFO] [stdout] test behavior::chronify::when_chronify_is_used_with_different_flags::it_works_with_back_flag_on_now ... ok [INFO] [stdout] test behavior::chronify::when_interval_format_is_provided::it_parses_compound_interval ... ok [INFO] [stdout] test behavior::chronify::when_chronify_is_used_with_different_flags::it_works_with_back_flag_on_done ... ok [INFO] [stdout] test behavior::chronify::when_invalid_date_is_provided::it_rejects_empty_string ... ok [INFO] [stdout] test behavior::chronify::when_date_string_is_provided::it_parses_iso_date_format ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_day_of_week ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_last_friday ... ok [INFO] [stdout] test behavior::chronify::when_interval_format_is_provided::it_parses_minutes_interval ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_day_of_week_with_time ... ok [INFO] [stdout] test behavior::chronify::when_interval_format_is_provided::it_parses_days_interval ... ok [INFO] [stdout] test behavior::chronify::when_invalid_date_is_provided::it_rejects_nonsense_string ... ok [INFO] [stdout] test behavior::chronify::when_date_string_is_provided::it_parses_us_date_with_time ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_yesterday ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_yesterday_noon ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_minutes_ago_longform ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_short_minute_value ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_hours_ago_longform ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_hours_shorthand ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_single_digit_shorthand ... ok [INFO] [stdout] test behavior::chronify::when_invalid_date_is_provided::it_rejects_invalid_date_values ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_days_shorthand ... ok [INFO] [stdout] test behavior::chronify::when_natural_language_date_is_provided::it_parses_yesterday_with_time ... ok [INFO] [stdout] test behavior::chronify::when_date_range_is_provided::it_parses_date_range_with_before_and_after ... ok [INFO] [stdout] test behavior::chronify::when_interval_format_is_provided::it_parses_hours_interval ... ok [INFO] [stdout] test behavior::chronify::when_date_range_is_provided::it_parses_time_to_time_range ... ok [INFO] [stdout] test behavior::chronify::when_chronify_is_used_with_different_flags::it_works_with_since_command ... ok [INFO] [stdout] test behavior::chronify::when_relative_time_is_provided::it_parses_minutes_shorthand ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_display_sort::it_displays_asc_regardless_of_desc_file_sort ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_asc::it_inserts_new_entry_at_correct_position ... ok [INFO] [stdout] test behavior::chronify::when_chronify_is_used_with_different_flags::it_works_with_before_flag_on_show ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_asc::it_stores_entries_oldest_first ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_display_sort::it_does_not_modify_file_when_display_sort_differs ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_keep::it_keeps_newest_entries_with_asc_sort_and_count ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_keep::it_keeps_oldest_entries_with_age_oldest ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_not_configured::it_defaults_to_desc_order ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_desc::it_inserts_new_entry_at_correct_position ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_display_sort::it_displays_desc_regardless_of_asc_file_sort ... ok [INFO] [stdout] test behavior::global_flags::when_default_flag_is_provided::it_does_not_prompt_on_stdin ... ok [INFO] [stdout] test behavior::global_flags::when_color_flag_is_provided::it_overrides_no_color_env_var ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_desc::it_places_current_time_entry_at_beginning_of_section ... ok [INFO] [stdout] test behavior::global_flags::when_debug_flag_is_provided::it_does_not_output_debug_info_to_stdout ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_desc::it_stores_entries_newest_first ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_creates_file_if_it_does_not_exist ... ok [INFO] [stdout] test behavior::global_flags::when_default_flag_is_provided::it_selects_default_option_in_menus ... ok [INFO] [stdout] test behavior::chronify::when_chronify_is_used_with_different_flags::it_works_with_after_flag_on_show ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_accepts_long_form_doing_file_flag ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_keep::it_keeps_oldest_entries_with_desc_sort_and_age_oldest ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_uses_doing_file_env_var_when_no_flag ... ok [INFO] [stdout] test behavior::global_flags::when_color_flag_is_provided::it_enables_ansi_escape_codes_in_output ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_writes_to_specified_file ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_prefers_f_flag_over_doing_file_env_var ... ok [INFO] [stdout] test behavior::global_flags::when_multiple_global_flags_combine::it_applies_stdout_and_quiet_together ... ok [INFO] [stdout] test behavior::global_flags::when_multiple_global_flags_combine::it_applies_stdout_and_no_color_together ... ok [INFO] [stdout] test behavior::global_flags::when_no_flag_is_provided::it_auto_declines_confirmations ... ok [INFO] [stdout] test behavior::global_flags::when_multiple_global_flags_combine::it_applies_noauto_and_doing_file_together ... ok [INFO] [stdout] test behavior::global_flags::when_debug_flag_is_provided::it_outputs_debug_info_to_stderr ... ok [INFO] [stdout] test behavior::global_flags::when_multiple_global_flags_combine::it_applies_debug_and_quiet_together ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_asc::it_places_current_time_entry_at_end_of_section ... ok [INFO] [stdout] test behavior::global_flags::when_multiple_global_flags_combine::it_applies_quiet_and_no_color_together ... ok [INFO] [stdout] test behavior::global_flags::when_noauto_flag_is_provided::it_accepts_short_form_x ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_asc::it_maintains_order_after_multiple_inserts ... ok [INFO] [stdout] test behavior::global_flags::when_no_color_flag_is_provided::it_suppresses_ansi_escape_codes_in_stderr_messages ... ok [INFO] [stdout] test behavior::global_flags::when_no_flag_is_provided::it_does_not_prompt_on_stdin ... ok [INFO] [stdout] test behavior::global_flags::when_doing_file_flag_is_provided::it_reads_from_specified_file ... ok [INFO] [stdout] test behavior::global_flags::when_no_color_flag_is_provided::it_suppresses_ansi_escape_codes_in_show_output ... ok [INFO] [stdout] test behavior::global_flags::when_debug_flag_is_provided::it_includes_config_path_in_debug_output ... ok [INFO] [stdout] test behavior::global_flags::when_noauto_flag_is_provided::it_excludes_autotag_matches ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_interacts_with_keep::it_keeps_newest_entries_with_desc_sort_and_count ... ok [INFO] [stdout] test behavior::global_flags::when_noauto_flag_is_provided::it_excludes_default_tags ... ok [INFO] [stdout] test behavior::global_flags::when_quiet_flag_is_provided::it_does_not_suppress_stdout_display_output ... ok [INFO] [stdout] test behavior::global_flags::when_notes_flag_is_provided::it_shows_notes_in_output ... ok [INFO] [stdout] test behavior::global_flags::when_no_color_flag_is_provided::it_suppresses_color_on_all_display_commands ... ok [INFO] [stdout] test behavior::global_flags::when_debug_flag_is_provided::it_includes_doing_file_path_in_debug_output ... ok [INFO] [stdout] test behavior::file_sort::when_file_sort_is_desc::it_maintains_order_after_multiple_inserts ... ok [INFO] [stdout] test behavior::global_flags::when_notes_flag_is_provided::it_overrides_config_include_notes_false ... ok [INFO] [stdout] test behavior::chronify::when_date_range_is_provided::it_parses_relative_day_range ... ok [INFO] [stdout] test behavior::global_flags::when_quiet_flag_is_provided::it_suppresses_stderr_on_done_command ... ok [INFO] [stdout] test behavior::global_flags::when_version_flag_is_provided::it_does_not_require_a_doing_file ... ok [INFO] [stdout] test behavior::global_flags::when_quiet_flag_is_provided::it_suppresses_info_messages_on_stderr ... ok [INFO] [stdout] test behavior::global_flags::when_stdout_flag_is_provided::it_redirects_info_messages_from_stderr_to_stdout ... ok [INFO] [stdout] test behavior::global_flags::when_version_flag_is_provided::it_exits_successfully ... ok [INFO] [stdout] test behavior::global_flags::when_pager_flag_is_provided::it_accepts_short_form_flag ... ok [INFO] [stdout] test behavior::global_flags::when_yes_flag_is_provided::it_auto_confirms_destructive_operations ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_again ... ok [INFO] [stdout] test behavior::global_flags::when_no_notes_flag_is_provided::it_hides_notes_in_last_output ... ok [INFO] [stdout] test behavior::global_flags::when_yes_flag_is_provided::it_does_not_prompt_on_stdin ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_grep ... ok [INFO] [stdout] test behavior::global_flags::when_quiet_flag_is_provided::it_suppresses_stderr_on_finish_command ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_does_not_crash_in_non_tty_with_interactive_flag ... ok [INFO] [stdout] test behavior::global_flags::when_pager_flag_is_provided::it_accepts_pager_flag_without_error ... ok [INFO] [stdout] test behavior::global_flags::when_noauto_flag_is_provided::it_preserves_explicitly_typed_tags ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_note ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_tag ... ignored, tag command does not have --interactive flag [INFO] [stdout] test behavior::global_flags::when_no_notes_flag_is_provided::it_hides_notes_in_show_output ... ok [INFO] [stdout] test behavior::global_flags::when_stdout_flag_is_provided::it_works_with_done_command ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_recent ... ok [INFO] [stdout] test behavior::interactive::when_default_flag_bypasses_interactive_menus::it_uses_default_selection_without_prompting ... ok [INFO] [stdout] test behavior::global_flags::when_quiet_flag_is_provided::it_suppresses_stderr_on_cancel_command ... ok [INFO] [stdout] test behavior::global_flags::when_stdout_flag_is_provided::it_combines_info_and_display_on_stdout ... ok [INFO] [stdout] test behavior::global_flags::when_version_flag_is_provided::it_displays_version_string ... ok [INFO] [stdout] test behavior::interactive::when_menu_flag_is_provided::it_is_accepted_by_show ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_cancel ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_show ... ok [INFO] [stdout] test behavior::global_flags::when_no_notes_flag_is_provided::it_hides_notes_in_today_output ... ok [INFO] [stdout] test behavior::global_flags::when_no_pager_flag_is_provided::it_sends_output_directly_to_stdout ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_mark ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_finish ... ok [INFO] [stdout] test behavior::interactive::when_interactive_flag_is_provided::it_is_accepted_by_reset ... ok [INFO] [stdout] test behavior::interactive::when_no_flag_bypasses_interactive_prompts::it_declines_confirmation_on_reset ... ok [INFO] [stdout] test behavior::output::when_default_output_routing::it_sends_info_messages_to_stderr ... ok [INFO] [stdout] test behavior::interactive::when_non_tty_is_detected::it_does_not_hang_waiting_for_input ... ok [INFO] [stdout] test behavior::output::when_csv_output_format::it_contains_entry_data_in_rows ... ok [INFO] [stdout] test behavior::output::when_csv_output_format::it_handles_commas_in_entry_titles ... ok [INFO] [stdout] test behavior::output::when_config_template_is_provided::it_uses_named_template_from_config ... ok [INFO] [stdout] test behavior::output::when_config_template_is_provided::it_falls_back_to_default_template_if_name_not_found ... ok [INFO] [stdout] test behavior::interactive::when_non_tty_is_detected::it_does_not_render_menu_ui_to_stderr ... ok [INFO] [stdout] test behavior::output::when_default_output_routing::it_sends_info_to_stderr_for_cancel_command ... ok [INFO] [stdout] test behavior::output::when_default_output_routing::it_sends_info_to_stderr_for_done_command ... ok [INFO] [stdout] test behavior::interactive::when_yes_flag_bypasses_interactive_prompts::it_skips_confirmation_prompt_on_reset ... ok [INFO] [stdout] test behavior::interactive::when_menu_flag_is_provided::it_does_not_crash_in_non_tty ... ok [INFO] [stdout] test behavior::output::when_html_output_format::it_produces_html_tags ... ok [INFO] [stdout] test behavior::output::when_csv_output_format::it_handles_multiple_entries ... ok [INFO] [stdout] test behavior::interactive::when_non_tty_is_detected::it_uses_default_selection_when_piped ... ok [INFO] [stdout] test behavior::output::when_invalid_output_format::it_lists_valid_formats_in_error ... ok [INFO] [stdout] test behavior::output::when_default_output_routing::it_sends_display_output_to_stdout ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_tags ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_section_structure ... ok [INFO] [stdout] test behavior::output::when_default_output_routing::it_sends_info_to_stderr_for_finish_command ... ok [INFO] [stdout] test behavior::output::when_invalid_output_format::it_returns_error_for_unknown_format ... ok [INFO] [stdout] test behavior::interactive::when_yes_flag_bypasses_interactive_prompts::it_skips_confirmation_prompt_on_cancel ... ok [INFO] [stdout] test behavior::output::when_csv_output_format::it_produces_csv_with_header_row ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_outputs_empty_array_for_no_entries ... ok [INFO] [stdout] test behavior::output::when_html_output_format::it_contains_entry_text ... ok [INFO] [stdout] test behavior::output::when_output_format_interacts_with_notes_flag::it_includes_notes_in_csv_when_notes_enabled ... ok [INFO] [stdout] test behavior::output::when_stdout_flag_is_provided::it_combines_info_and_display_on_stdout_for_commands_that_do_both ... ok [INFO] [stdout] test behavior::output::when_markdown_output_format::it_marks_done_entries_as_checked ... ok [INFO] [stdout] test behavior::output::when_stdout_flag_is_provided::it_redirects_info_messages_to_stdout ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_entry_date ... ok [INFO] [stdout] test behavior::output::when_html_output_format::it_escapes_html_special_characters_in_titles ... ok [INFO] [stdout] test behavior::output::when_markdown_output_format::it_includes_section_headers ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_notes ... ok [INFO] [stdout] test behavior::output::when_taskpaper_output_format::it_includes_done_tag_for_finished_entries ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_done_interval_for_finished_entries ... ok [INFO] [stdout] test behavior::output::when_stdout_flag_is_provided::it_sends_display_output_to_stdout_as_usual ... ok [INFO] [stdout] test behavior::smoke::when_cli_starts::it_shows_help_with_h_flag ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_contains_entry_title ... ok [INFO] [stdout] test behavior::smoke::when_cli_starts::it_shows_help_with_help_flag ... ok [INFO] [stdout] test behavior::output::when_template_override_is_provided::it_uses_date_placeholder ... ok [INFO] [stdout] test behavior::output::when_markdown_output_format::it_formats_entries_as_markdown_checkboxes ... ok [INFO] [stdout] test behavior::output::when_timeline_output_format::it_contains_timeline_elements ... ok [INFO] [stdout] test behavior::output::when_template_override_is_provided::it_uses_inline_template_string ... ok [INFO] [stdout] test behavior::output::when_json_output_format::it_produces_valid_json ... ok [INFO] [stdout] test behavior::output::when_template_override_is_provided::it_uses_interval_placeholder_for_done_entries ... ok [INFO] [stdout] test behavior::output::when_taskpaper_output_format::it_preserves_user_tags ... ok [INFO] [stdout] test behavior::smoke::when_cli_starts::it_shows_recent_entries_with_no_arguments ... ok [INFO] [stdout] test behavior::smoke::when_cli_starts::it_shows_version_with_v_flag ... ok [INFO] [stdout] test behavior::output::when_output_format_interacts_with_notes_flag::it_includes_notes_in_json_when_notes_enabled ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_does_not_exist::it_creates_file_with_section_header ... ok [INFO] [stdout] test behavior::output::when_taskpaper_output_format::it_formats_entries_with_at_date_tags ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_empty::it_allows_adding_first_entry ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_does_not_exist::it_handles_show_on_missing_file_gracefully ... ok [INFO] [stdout] test behavior::smoke::when_cli_starts::it_shows_version_with_version_flag ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_empty::it_shows_no_entries_for_recent ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_malformed::it_handles_file_with_only_whitespace ... ok [INFO] [stdout] test behavior::output::when_template_override_is_provided::it_uses_section_placeholder ... ok [INFO] [stdout] test behavior::output::when_timeline_output_format::it_contains_doing_timeline_title ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::again ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::cancel ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_does_not_exist::it_auto_creates_file_on_write ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_empty::it_shows_no_entries_for_show ... ok [INFO] [stdout] test behavior::output::when_taskpaper_output_format::it_formats_sections_as_taskpaper_projects ... ok [INFO] [stdout] test behavior::output::when_timeline_output_format::it_produces_html_document ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_empty::it_shows_no_entries_for_today ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::import ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::done ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::grep ... ok [INFO] [stdout] test behavior::output::when_markdown_output_format::it_includes_notes_as_indented_text ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_empty::it_shows_no_entries_for_last ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::budget ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::meanwhile ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_malformed::it_can_add_entry_to_malformed_file ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::open ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::last ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_malformed::it_handles_file_with_invalid_timestamps ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::note ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::sections ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::rotate ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::changes ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::since ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::show ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::template ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::archive ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::commands ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::mark ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::config ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::today ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::reset ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::colors ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::now ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::recent ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::tags ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::self_update ... ok [INFO] [stdout] test behavior::smoke::when_invalid_command_is_provided::it_shows_error_for_unknown_command ... ok [INFO] [stdout] test behavior::smoke::when_invalid_command_is_provided::it_suggests_similar_command ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::finish ... ok [INFO] [stdout] test behavior::smoke::when_doing_file_is_malformed::it_handles_file_with_no_section_headers ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::view ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::undo ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::on ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::select ... ok [INFO] [stdout] test behavior::smoke::when_invalid_command_is_provided::it_shows_error_for_unknown_flag ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::yesterday ... ok [INFO] [stdout] test behavior::smoke::when_help_command_is_used::it_shows_help_for::tag ... ok [INFO] [stdout] test behavior::template::when_date_placeholder_is_used::it_renders_full_date ... ok [INFO] [stdout] test behavior::template::when_multiple_placeholders_combine::it_renders_section_date_and_title ... ok [INFO] [stdout] test behavior::template::when_duration_placeholder_is_used::it_renders_elapsed_duration_for_open_entries ... ok [INFO] [stdout] test behavior::template::when_interval_placeholder_is_used::it_renders_empty_for_open_entries ... ok [INFO] [stdout] test behavior::template::when_color_placeholders_are_used::it_ignores_color_placeholders_with_no_color ... ok [INFO] [stdout] test behavior::template::when_color_placeholders_are_used::it_renders_named_color_codes ... ok [INFO] [stdout] test behavior::template::when_color_placeholders_are_used::it_renders_reset_code ... ok [INFO] [stdout] test behavior::template::when_section_placeholder_is_used::it_renders_section_name ... ok [INFO] [stdout] test behavior::template::when_color_placeholders_are_used::it_renders_bold_color_codes ... ok [INFO] [stdout] test behavior::template::when_odnote_placeholder_is_used::it_renders_note_with_newlines ... ok [INFO] [stdout] test behavior::template::when_date_placeholder_is_used::it_respects_config_date_format ... ok [INFO] [stdout] test behavior::template::when_interval_placeholder_is_used::it_renders_time_interval_for_done_entries ... ok [INFO] [stdout] test behavior::template::when_note_placeholder_is_used::it_renders_empty_for_entries_without_notes ... ok [INFO] [stdout] test behavior::template::when_template_flag_is_used::it_applies_template_to_json_output_independently ... ok [INFO] [stdout] test behavior::template::when_multiple_placeholders_combine::it_renders_date_and_title_together ... ok [INFO] [stdout] test behavior::template::when_note_placeholder_is_used::it_renders_note_text ... ok [INFO] [stdout] test behavior::template::when_title_placeholder_is_used::it_handles_empty_title ... ok [INFO] [stdout] test behavior::template::when_shortdate_placeholder_is_used::it_renders_abbreviated_date ... ok [INFO] [stdout] test behavior::template::when_multiple_placeholders_combine::it_renders_title_with_note_and_interval ... ok [INFO] [stdout] test behavior::template::when_duration_placeholder_is_used::it_renders_duration_for_done_entries ... ok [INFO] [stdout] test behavior::template::when_title_placeholder_is_used::it_renders_entry_title ... ok [INFO] [stdout] test commands::again::when_back_flag_is_provided::it_backdates_new_entry_start_time_with_absolute_time ... ok [INFO] [stdout] test behavior::template::when_width_modifier_is_used::it_pads_output_to_specified_width ... ok [INFO] [stdout] test commands::again::when_back_flag_is_provided::it_backdates_new_entry_start_time_with_relative_time ... ok [INFO] [stdout] test behavior::template::when_multiple_placeholders_combine::it_renders_literal_percent_sign ... ok [INFO] [stdout] test behavior::template::when_section_placeholder_is_used::it_renders_correct_section_for_archived_entries ... ok [INFO] [stdout] test behavior::template::when_odnote_placeholder_is_used::it_differs_from_note_placeholder ... ok [INFO] [stdout] test commands::again::when_case_flag_is_provided::it_uses_smart_case_with_case_s ... ok [INFO] [stdout] test commands::again::it_works_as_resume_alias ... ok [INFO] [stdout] test behavior::template::when_template_flag_is_used::it_overrides_config_template_with_inline_string ... ok [INFO] [stdout] test commands::again::when_back_flag_is_provided::it_backdates_new_entry_start_time_with_natural_language ... ok [INFO] [stdout] test behavior::template::when_shortdate_placeholder_is_used::it_differs_from_full_date ... ok [INFO] [stdout] test commands::again::when_bool_flag_is_and::it_requires_all_tags_to_match ... ok [INFO] [stdout] test behavior::template::when_template_flag_is_used::it_uses_named_config_template ... ok [INFO] [stdout] test behavior::template::when_title_placeholder_is_used::it_strips_tags_from_title_placeholder ... ok [INFO] [stdout] test commands::again::when_case_flag_is_provided::it_performs_case_insensitive_search_with_case_i ... ok [INFO] [stdout] test behavior::template::when_width_modifier_is_used::it_truncates_long_titles_to_width ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_strips_done_tag_from_new_entry ... ok [INFO] [stdout] test commands::again::when_in_flag_is_provided::it_places_new_entry_in_specified_section ... ok [INFO] [stdout] test commands::again::when_bool_flag_is_not::it_matches_entries_without_specified_tag ... ok [INFO] [stdout] test commands::again::when_note_flag_is_provided::it_adds_note_to_new_entry ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_marks_original_entry_as_done_with_current_time ... ok [INFO] [stdout] test commands::again::when_bool_flag_is_pattern::it_uses_plus_minus_syntax_for_tag_matching ... ok [INFO] [stdout] test commands::again::when_case_flag_is_provided::it_performs_case_sensitive_search_with_case_c ... ok [INFO] [stdout] test commands::again::when_section_flag_is_provided::it_does_not_affect_other_sections ... ok [INFO] [stdout] test commands::again::when_bool_flag_is_or::it_matches_entries_with_any_specified_tag ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_duplicates_the_last_entry_with_current_timestamp ... ok [INFO] [stdout] test commands::again::when_search_flag_is_provided::it_supports_exact_match_with_single_quote_prefix ... ok [INFO] [stdout] test commands::again::when_tag_flag_is_provided::it_marks_only_the_matched_original_as_done ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_searches_all_sections_by_default ... ok [INFO] [stdout] test commands::again::when_not_flag_is_provided::it_repeats_entry_not_matching_tag_filter ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_skips_when_no_entries_exist ... ok [INFO] [stdout] test commands::archive::it_works_as_move_alias ... ok [INFO] [stdout] test commands::again::when_exact_flag_is_provided::it_forces_exact_string_matching ... ok [INFO] [stdout] test commands::again::when_search_flag_is_provided::it_filters_entries_by_fuzzy_search ... ok [INFO] [stdout] test behavior::template::when_template_flag_is_used::it_applies_template_to_all_display_commands ... ok [INFO] [stdout] test commands::again::when_in_flag_is_provided::it_combines_with_section_flag ... ok [INFO] [stdout] test commands::again::when_search_flag_is_provided::it_supports_regex_search_with_slashes ... ok [INFO] [stdout] test commands::archive::when_case_flag_is_provided::it_performs_case_insensitive_search_with_case_i ... ok [INFO] [stdout] test commands::archive::when_keep_flag_is_provided::it_is_ignored_when_filtering_by_search ... ok [INFO] [stdout] test commands::again::when_no_flags_are_provided::it_does_not_double_done_tag_on_already_done_entry ... ok [INFO] [stdout] test commands::archive::when_keep_flag_is_provided::it_is_ignored_when_filtering_by_tag ... ok [INFO] [stdout] test commands::again::when_tag_flag_is_provided::it_filters_to_most_recent_entry_matching_tag ... ok [INFO] [stdout] test commands::again::when_section_flag_is_provided::it_gets_last_entry_from_specified_section ... ok [INFO] [stdout] test commands::again::when_multiple_flags_are_combined::it_combines_tag_in_back_and_note_flags ... ok [INFO] [stdout] test commands::archive::when_multiple_flags_are_combined::it_combines_section_arg_and_keep ... ok [INFO] [stdout] test commands::again::when_noauto_flag_is_provided::it_excludes_auto_tags_and_default_tags ... ok [INFO] [stdout] test commands::archive::when_no_flags_are_provided::it_skips_when_section_is_empty ... ok [INFO] [stdout] test commands::archive::when_keep_flag_is_provided::it_archives_nothing_when_keep_exceeds_entry_count ... ok [INFO] [stdout] test commands::again::when_val_flag_is_provided::it_skips_when_no_entries_match_value_query ... ok [INFO] [stdout] test commands::again::when_val_flag_is_provided::it_filters_by_tag_value_comparison ... ok [INFO] [stdout] test commands::archive::when_multiple_flags_are_combined::it_combines_tag_and_to_and_no_label ... ok [INFO] [stdout] test commands::archive::when_case_flag_is_provided::it_performs_case_sensitive_search_with_case_c ... ok [INFO] [stdout] test commands::archive::when_keep_flag_is_provided::it_keeps_n_entries_in_source_section ... ok [INFO] [stdout] test commands::archive::when_exact_flag_is_provided::it_forces_literal_string_matching ... ok [INFO] [stdout] test commands::archive::when_no_flags_are_provided::it_outputs_archived_message_to_stderr ... ok [INFO] [stdout] test commands::archive::when_tag_flag_is_provided::it_archives_entries_matching_any_tag_with_bool_or ... ok [INFO] [stdout] test commands::archive::when_no_flags_are_provided::it_adds_from_label_to_each_moved_entry ... ok [INFO] [stdout] test commands::archive::when_search_flag_is_provided::it_supports_regex_search ... ok [INFO] [stdout] test commands::archive::when_before_flag_is_provided::it_archives_entries_older_than_date ... ok [INFO] [stdout] test commands::archive::when_no_flags_are_provided::it_moves_all_entries_from_currently_to_archive ... ok [INFO] [stdout] test commands::archive::when_not_flag_is_provided::it_archives_entries_not_matching_tag_filter ... ok [INFO] [stdout] test commands::archive::when_to_flag_is_provided::it_adds_from_label_regardless_of_target ... ok [INFO] [stdout] test commands::archive::when_tag_flag_is_provided::it_archives_entries_matching_all_tags_with_bool_and ... ok [INFO] [stdout] test commands::archive::when_search_flag_is_provided::it_supports_exact_match_with_single_quote ... ok [INFO] [stdout] test commands::archive::when_tag_flag_is_provided::it_archives_only_entries_matching_tag ... ok [INFO] [stdout] test commands::archive::when_val_flag_is_provided::it_archives_entries_matching_tag_value_query ... ok [INFO] [stdout] test commands::archive::when_after_flag_is_provided::it_archives_entries_newer_than_date ... ok [INFO] [stdout] test commands::archive::when_no_label_flag_is_provided::it_omits_from_tag_on_moved_entries ... ok [INFO] [stdout] test commands::archive::when_search_flag_is_provided::it_archives_entries_matching_search_query ... ok [INFO] [stdout] test commands::archive::when_tag_flag_is_provided::it_archives_entries_without_tag_using_bool_not ... ok [INFO] [stdout] test commands::archive::when_to_flag_is_provided::it_moves_entries_to_specified_section ... ok [INFO] [stdout] test commands::archive::when_to_flag_is_provided::it_accepts_short_flag ... ok [INFO] [stdout] test commands::archive::when_to_flag_is_provided::it_says_moved_instead_of_archived_for_non_archive_target ... ok [INFO] [stdout] test commands::cancel::when_count_argument_is_provided::it_cancels_n_most_recent_entries ... ok [INFO] [stdout] test commands::archive::when_from_flag_is_provided::it_archives_entries_within_date_range ... ok [INFO] [stdout] test commands::budget::when_remove_flag::it_does_nothing_when_budget_not_found ... ok [INFO] [stdout] test commands::budget::when_tag_and_amount::it_sets_budget_for_tag ... ok [INFO] [stdout] test commands::archive::when_section_argument_is_provided::it_moves_all_entries_from_specified_section ... ok [INFO] [stdout] test commands::budget::when_no_arguments::it_shows_nothing_when_no_budgets ... ok [INFO] [stdout] test commands::cancel::when_multiple_flags_are_combined::it_combines_tag_and_archive ... ok [INFO] [stdout] test commands::budget::when_remove_flag::it_removes_budget_for_tag ... ok [INFO] [stdout] test commands::cancel::when_case_flag_is_provided::it_respects_case_sensitivity ... ok [INFO] [stdout] test commands::budget::when_remove_flag::it_removes_with_short_flag ... ok [INFO] [stdout] test commands::cancel::when_no_flags_are_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::cancel::when_section_flag_is_provided::it_cancels_entries_from_specified_section ... ok [INFO] [stdout] test commands::cancel::when_tag_flag_is_provided::it_cancels_entries_matching_tag ... ok [INFO] [stdout] test commands::cancel::when_no_flags_are_provided::it_exits_with_error_when_section_is_empty ... ok [INFO] [stdout] test commands::cancel::when_multiple_flags_are_combined::it_combines_unfinished_and_section ... ok [INFO] [stdout] test commands::cancel::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::cancel::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::archive::when_to_flag_is_provided::it_says_archived_when_target_is_archive ... ok [INFO] [stdout] test commands::cancel::when_archive_flag_is_provided::it_cancels_and_archives_entry ... ok [INFO] [stdout] test commands::cancel::when_unfinished_flag_is_provided::it_only_cancels_entries_not_already_done ... ok [INFO] [stdout] test commands::cancel::when_val_flag_is_provided::it_cancels_entries_matching_tag_value ... ok [INFO] [stdout] test commands::changes::when_all_flag::it_shows_all_version_changes ... ok [INFO] [stdout] test commands::cancel::when_no_flags_are_provided::it_adds_done_tag_without_timestamp_to_last_entry ... ok [INFO] [stdout] test commands::changes::when_all_flag::it_shows_all_with_short_flag ... ok [INFO] [stdout] test commands::cancel::when_bool_flag_is_not::it_cancels_entries_without_specified_tag ... ok [INFO] [stdout] test commands::archive::when_section_argument_is_provided::it_leaves_other_sections_unchanged ... ok [INFO] [stdout] test commands::budget::when_no_arguments::it_lists_all_budgets ... ok [INFO] [stdout] test commands::changes::when_changes_flag::it_shows_changes_only_without_headers ... ok [INFO] [stdout] test commands::changes::when_markdown_flag::it_outputs_markdown_format ... ok [INFO] [stdout] test commands::cancel::when_unfinished_flag_is_provided::it_cancels_multiple_unfinished_with_count ... ok [INFO] [stdout] test commands::changes::when_no_flags::it_is_accessible_via_changelog_alias ... ok [INFO] [stdout] test commands::changes::when_only_flag::it_filters_by_change_type_changed ... ok [INFO] [stdout] test commands::changes::when_lookup_flag::it_returns_error_for_nonexistent_version ... ok [INFO] [stdout] test commands::budget::when_tag_and_amount::it_updates_existing_budget ... ok [INFO] [stdout] test commands::changes::when_only_flag::it_filters_by_multiple_types ... ok [INFO] [stdout] test commands::cancel::when_bool_flag_is_and::it_cancels_entries_matching_all_tags ... ok [INFO] [stdout] test commands::changes::when_prefix_flag::it_shows_type_prefix ... ok [INFO] [stdout] test commands::changes::when_sort_flag::it_sorts_ascending ... ok [INFO] [stdout] test commands::changes::when_prefix_flag::it_hides_type_prefix ... ok [INFO] [stdout] test commands::colors::when_no_flags::it_outputs_non_empty_list ... ok [INFO] [stdout] test commands::changes::when_lookup_flag::it_shows_specific_version ... ok [INFO] [stdout] test commands::colors::when_no_flags::it_exits_successfully ... ok [INFO] [stdout] test commands::colors::when_no_flags::it_lists_available_color_variables ... ok [INFO] [stdout] test commands::changes::when_only_flag::it_filters_by_change_type_improved ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_applies_style ... ok [INFO] [stdout] test commands::changes::when_only_flag::it_filters_by_change_type_fixed ... ok [INFO] [stdout] test commands::changes::when_search_flag::it_filters_changes_by_search ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_lists_disabled_commands ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_lists_all_enabled_commands ... ok [INFO] [stdout] test commands::changes::when_markdown_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_applies_style_with_short_flag ... ok [INFO] [stdout] test commands::cancel::when_search_flag_is_provided::it_cancels_entries_matching_search ... ok [INFO] [stdout] test commands::changes::when_search_flag::it_filters_with_short_flag ... ok [INFO] [stdout] test commands::changes::when_sort_flag::it_sorts_descending ... ok [INFO] [stdout] test commands::commands::when_remove_subcommand::it_returns_error_for_nonexistent_command ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_bash_completions ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_lists_disabled_with_short_flag ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_to_file_with_short_flag ... ignored, -f conflicts with global --doing-file (see DEV-0013) [INFO] [stdout] test commands::commands::when_add_subcommand::it_enables_with_enable_alias ... ok [INFO] [stdout] test commands::commands::when_remove_subcommand::it_disables_with_disable_alias ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_fish_completions ... ok [INFO] [stdout] test commands::commands::when_add_subcommand::it_does_nothing_when_already_enabled ... ok [INFO] [stdout] test commands::changes::when_changes_flag::it_shows_with_long_flag ... ok [INFO] [stdout] test commands::cancel::when_not_flag_is_provided::it_cancels_entries_not_matching_tag_filter ... ok [INFO] [stdout] test commands::commands::when_list_subcommand::it_lists_with_ls_alias ... ok [INFO] [stdout] test commands::completion::when_install_subcommand::it_installs_bash_completions ... ok [INFO] [stdout] test commands::changes::when_only_flag::it_filters_by_change_type_new ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_app_short_flag ... ignored, macOS-only: requires `open -a` [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_bundle_id ... ignored, macOS-only: requires `open -b` [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_bundle_id_short_flag ... ignored, macOS-only: requires `open -b` [INFO] [stdout] test commands::changes::when_no_flags::it_shows_latest_version_changes ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_editor_flag ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_all_completions ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_specific_app ... ignored, macOS-only: requires `open -a` [INFO] [stdout] test commands::commands::when_remove_subcommand::it_disables_a_command ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_config_in_editor ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_default_with_short_flag ... ok [INFO] [stdout] test commands::commands::when_add_subcommand::it_enables_a_command ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_fuzzy_matches_key_paths ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_outputs_config_value_with_dump_alias ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_editor_short_flag ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_outputs_config_value ... ok [INFO] [stdout] test commands::changes::when_lookup_flag::it_shows_with_short_flag ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_default_config ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_returns_error_for_nonexistent_key ... ok [INFO] [stdout] test commands::config::when_list_subcommand::it_shows_config_file_paths ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_outputs_config_value_as_json ... ok [INFO] [stdout] test commands::config::when_set_subcommand::it_removes_with_short_flag ... ok [INFO] [stdout] test commands::config::when_get_subcommand::it_supports_dot_separated_key_paths ... ok [INFO] [stdout] test commands::config::when_edit_subcommand::it_opens_with_open_alias ... ok [INFO] [stdout] test commands::config::when_set_subcommand::it_sets_local_config ... ok [INFO] [stdout] test commands::completion::when_stdout_flag::it_contains_valid_completion_content ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_to_file ... ok [INFO] [stdout] test commands::config::when_set_subcommand::it_sets_config_value ... ok [INFO] [stdout] test commands::done::when_at_flag_is_provided::it_sets_finish_date_to_specified_time ... ok [INFO] [stdout] test commands::completion::when_install_subcommand::it_installs_fish_completions ... ok [INFO] [stdout] test commands::done::it_works_as_did_alias ... ok [INFO] [stdout] test commands::config::when_set_subcommand::it_removes_config_value ... ok [INFO] [stdout] test commands::done::when_entry_text_is_provided::it_preserves_inline_tags ... ok [INFO] [stdout] test commands::config::when_undo_subcommand::it_undoes_last_config_change ... ok [INFO] [stdout] test commands::done::when_no_argument_is_provided::it_exits_with_error_when_section_is_empty ... ok [INFO] [stdout] test commands::done::when_archive_flag_is_provided::it_places_entry_directly_in_archive ... ok [INFO] [stdout] test commands::config::when_set_subcommand::it_sets_nested_value ... ok [INFO] [stdout] test commands::done::when_entry_text_is_provided::it_sets_start_and_done_to_current_time ... ok [INFO] [stdout] test commands::done::when_no_date_flag_is_provided::it_adds_done_without_timestamp ... ok [INFO] [stdout] test commands::done::when_multiple_flags_are_combined::it_combines_archive_and_note ... ok [INFO] [stdout] test commands::completion::when_install_subcommand::it_installs_zsh_completions ... ok [INFO] [stdout] test commands::done::when_entry_text_is_provided::it_adds_new_entry_immediately_marked_done ... ok [INFO] [stdout] test commands::done::when_multiple_flags_are_combined::it_combines_back_and_took ... ok [INFO] [stdout] test commands::done::when_no_argument_is_provided::it_retags_already_done_entry_with_new_timestamp ... ok [INFO] [stdout] test commands::done::when_no_argument_is_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::done::when_took_flag_is_provided::it_accepts_short_flag ... ok [INFO] [stdout] test commands::done::when_section_flag_is_provided::it_adds_entry_to_specified_section ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_defaults_to_generate_subcommand ... ok [INFO] [stdout] test commands::done::when_noauto_flag_is_provided::it_excludes_auto_tags ... ok [INFO] [stdout] test commands::done::when_note_flag_is_provided::it_adds_note_to_entry ... ok [INFO] [stdout] test commands::completion::when_stdout_flag::it_outputs_to_stdout ... ok [INFO] [stdout] test commands::done::when_from_flag_is_provided::it_sets_start_and_done_from_range ... ok [INFO] [stdout] test commands::finish::when_auto_flag_is_provided::it_overrides_date_and_back_parameters ... ok [INFO] [stdout] test commands::done::when_took_flag_is_provided::it_accepts_hhmm_format ... ok [INFO] [stdout] test commands::finish::when_bool_flag_is_and::it_finishes_entries_matching_all_tags ... ok [INFO] [stdout] test commands::finish::when_count_argument_is_provided::it_finishes_n_most_recent_entries ... ok [INFO] [stdout] test commands::finish::when_archive_flag_is_provided::it_finishes_and_archives_entry ... ok [INFO] [stdout] test commands::finish::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::completion::when_generate_subcommand::it_generates_zsh_completions ... ok [INFO] [stdout] test commands::finish::when_auto_flag_is_provided::it_generates_done_dates_from_next_entry_start ... ok [INFO] [stdout] test commands::finish::when_case_flag_is_provided::it_respects_case_sensitivity_in_search ... ok [INFO] [stdout] test commands::done::when_at_flag_is_provided::it_combines_with_took_to_backdate_start ... ok [INFO] [stdout] test commands::finish::when_no_date_flag_is_provided::it_adds_done_without_timestamp ... ok [INFO] [stdout] test commands::done::when_unfinished_flag_is_provided::it_finishes_last_entry_not_already_done ... ok [INFO] [stdout] test commands::finish::when_at_flag_is_provided::it_sets_done_date_to_specified_time ... ok [INFO] [stdout] test commands::done::when_back_flag_is_provided::it_backdates_start_time ... ok [INFO] [stdout] test commands::done::when_remove_flag_is_provided::it_removes_done_tag_from_last_entry ... ok [INFO] [stdout] test commands::done::when_took_flag_is_provided::it_backdates_start_by_interval ... ok [INFO] [stdout] test commands::finish::when_from_flag_is_provided::it_sets_start_and_done_from_range ... ok [INFO] [stdout] test commands::done::when_back_flag_is_provided::it_accepts_natural_language ... ok [INFO] [stdout] test commands::finish::when_section_flag_is_provided::it_finishes_entries_from_specified_section ... ok [INFO] [stdout] test commands::finish::when_tag_flag_is_provided::it_finishes_entries_matching_tag ... ok [INFO] [stdout] test commands::finish::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::finish::when_val_flag_is_provided::it_finishes_entries_matching_tag_value ... ok [INFO] [stdout] test commands::finish::when_multiple_flags_are_combined::it_combines_tag_and_archive ... ok [INFO] [stdout] test commands::finish::when_multiple_flags_are_combined::it_combines_at_and_took ... ok [INFO] [stdout] test commands::finish::when_bool_flag_is_not::it_finishes_entries_without_specified_tag ... ok [INFO] [stdout] test commands::finish::when_unfinished_flag_is_provided::it_only_finishes_entries_without_done ... ok [INFO] [stdout] test commands::grep::when_basic_search::it_finds_entries_by_fuzzy_match ... ok [INFO] [stdout] test commands::finish::when_no_flags_are_provided::it_overwrites_existing_done_date_without_unfinished_flag ... ok [INFO] [stdout] test commands::finish::when_update_flag_is_provided::it_overwrites_existing_done_date ... ok [INFO] [stdout] test commands::finish::when_not_flag_is_provided::it_finishes_entries_not_matching_filter ... ok [INFO] [stdout] test commands::grep::it_is_accessible_via_search_alias ... ok [INFO] [stdout] test commands::finish::when_search_flag_is_provided::it_finishes_entries_matching_search ... ok [INFO] [stdout] test commands::done::when_no_argument_is_provided::it_marks_last_entry_as_done_with_current_timestamp ... ok [INFO] [stdout] test commands::finish::when_back_flag_is_provided::it_backdates_start_time ... ok [INFO] [stdout] test commands::finish::when_no_flags_are_provided::it_marks_last_entry_as_done_with_current_time ... ok [INFO] [stdout] test commands::finish::when_took_flag_is_provided::it_adjusts_start_time_for_elapsed_duration ... ok [INFO] [stdout] test commands::grep::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::grep::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::grep::when_basic_search::it_returns_nothing_when_no_match ... ok [INFO] [stdout] test commands::finish::when_remove_flag_is_provided::it_removes_done_tag ... ok [INFO] [stdout] test commands::grep::when_basic_search::it_searches_all_sections ... ok [INFO] [stdout] test commands::grep::when_case_flag::it_performs_case_insensitive_search ... ok [INFO] [stdout] test commands::grep::when_delete_flag::it_deletes_with_short_flag ... ok [INFO] [stdout] test commands::grep::when_delete_flag::it_deletes_matching_entries ... ok [INFO] [stdout] test commands::finish::when_no_flags_are_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::grep::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::grep::when_basic_search::it_supports_regex_search ... ok [INFO] [stdout] test commands::grep::when_not_flag::it_inverts_search ... ok [INFO] [stdout] test commands::grep::when_section_flag::it_limits_search_to_section ... ok [INFO] [stdout] test commands::grep::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::grep::when_duration_flag::it_shows_duration_on_entries ... ok [INFO] [stdout] test commands::grep::when_output_flag::it_outputs_csv_format ... ok [INFO] [stdout] test commands::help::when_command_argument::it_shows_help_for_multiple_commands ... ok [INFO] [stdout] test commands::grep::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::grep::when_output_flag::it_outputs_json_format ... ok [INFO] [stdout] test commands::grep::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::grep::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::help::when_unknown_command::it_shows_error_for_unknown ... ok [INFO] [stdout] test commands::grep::when_section_flag::it_limits_search_with_short_flag ... ok [INFO] [stdout] test commands::help::when_no_arguments::it_shows_general_help ... ok [INFO] [stdout] test commands::import::when_autotag_flag::it_skips_autotags ... ok [INFO] [stdout] test commands::help::when_command_argument::it_shows_help_for_specified_command ... ok [INFO] [stdout] test commands::import::when_basic_import::it_imports_from_doing_file ... ok [INFO] [stdout] test commands::grep::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::grep::when_bool_flag::it_uses_not_boolean ... ok [INFO] [stdout] test commands::grep::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::import::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::grep::when_times_flag::it_shows_time_intervals ... ok [INFO] [stdout] test commands::import::when_only_timed_flag::it_imports_only_timed_entries ... ok [INFO] [stdout] test commands::import::when_overlap_flag::it_allows_overlapping_times ... ok [INFO] [stdout] test commands::import::when_overlap_flag::it_prevents_overlapping_times ... ok [INFO] [stdout] test commands::import::when_search_flag::it_filters_imports_by_search ... ok [INFO] [stdout] test commands::import::when_autotag_flag::it_applies_autotags ... ok [INFO] [stdout] test commands::import::when_case_flag::it_performs_case_sensitive_filter ... ok [INFO] [stdout] test commands::import::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::import::when_tag_flag::it_adds_multiple_tags ... ok [INFO] [stdout] test commands::import::when_section_flag::it_imports_with_short_flag ... ok [INFO] [stdout] test commands::import::when_basic_import::it_imports_nothing_from_empty_file ... ok [INFO] [stdout] test commands::grep::when_title_flag::it_overrides_section_title_in_output ... ok [INFO] [stdout] test commands::import::when_prefix_flag::it_adds_prefix_to_imported_entries ... ok [INFO] [stdout] test commands::import::when_section_flag::it_imports_to_specified_section ... ok [INFO] [stdout] test commands::import::when_tag_flag::it_adds_tags_to_imported_entries ... ok [INFO] [stdout] test commands::import::when_type_flag::it_imports_json_format ... ok [INFO] [stdout] test commands::import::when_type_flag::it_imports_calendar_format ... ok [INFO] [stdout] test commands::grep::when_from_flag::it_filters_by_date_range ... ok [INFO] [stdout] test commands::last::when_bool_flag::it_uses_and_boolean_for_multiple_filters ... ok [INFO] [stdout] test commands::import::when_type_flag::it_imports_doing_format ... ok [INFO] [stdout] test commands::import::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::import::when_tag_flag::it_adds_with_short_flag ... ok [INFO] [stdout] test commands::grep::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::grep::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::import::when_type_flag::it_imports_timing_format ... ok [INFO] [stdout] test commands::import::when_before_flag::it_imports_entries_before_time ... ok [INFO] [stdout] test commands::last::when_no_flags::it_shows_nothing_when_file_is_empty ... ok [INFO] [stdout] test commands::last::when_delete_flag::it_deletes_the_last_entry ... ok [INFO] [stdout] test commands::last::when_case_flag::it_performs_case_insensitive_search ... ok [INFO] [stdout] test commands::last::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::last::when_editor_flag::it_persists_edits_to_the_doing_file_with_short_flag ... ok [INFO] [stdout] test commands::import::when_after_flag::it_imports_entries_after_time ... ok [INFO] [stdout] test commands::last::when_editor_flag::it_persists_edits_to_the_doing_file ... ok [INFO] [stdout] test commands::last::when_duration_flag::it_shows_duration_when_enabled ... ok [INFO] [stdout] test commands::import::when_from_flag::it_imports_entries_from_time_range ... ok [INFO] [stdout] test commands::last::when_bool_flag::it_uses_or_boolean_for_multiple_filters ... ok [INFO] [stdout] test commands::last::when_section_flag::it_shows_last_entry_from_specified_section ... ok [INFO] [stdout] test commands::last::when_output_flag::it_outputs_json_format ... ok [INFO] [stdout] test commands::last::when_delete_flag::it_deletes_the_last_entry_with_short_flag ... ok [INFO] [stdout] test commands::grep::when_times_flag::it_shows_with_short_flag ... ok [INFO] [stdout] test commands::last::when_output_flag::it_outputs_csv_format ... ok [INFO] [stdout] test commands::mark::when_bool_flag::it_uses_and_boolean_for_multiple_filters ... ok [INFO] [stdout] test commands::last::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::last::when_search_flag::it_filters_by_search_term ... ok [INFO] [stdout] test commands::last::when_section_flag::it_shows_last_entry_with_short_flag ... ok [INFO] [stdout] test commands::last::when_val_flag::it_does_not_panic_on_string_operator_against_date ... ok [INFO] [stdout] test commands::last::when_search_flag::it_combines_search_with_not_flag ... ok [INFO] [stdout] test commands::last::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::mark::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::last::when_exact_flag::it_matches_exact_text ... ok [INFO] [stdout] test commands::mark::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_bool_flag::it_uses_or_boolean_for_multiple_filters ... ok [INFO] [stdout] test commands::last::when_bool_flag::it_uses_not_boolean_for_multiple_filters ... ok [INFO] [stdout] test commands::mark::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::mark::when_date_flag::it_adds_timestamp_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_no_flags::it_adds_flagged_tag_to_last_entry ... ok [INFO] [stdout] test commands::last::when_exact_flag::it_matches_exact_text_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_remove_flag::it_removes_flagged_tag ... ok [INFO] [stdout] test commands::mark::when_date_flag::it_adds_timestamp_with_flag ... ok [INFO] [stdout] test commands::mark::when_count_flag::it_flags_multiple_entries ... ok [INFO] [stdout] test commands::mark::when_section_flag::it_flags_entry_in_specified_section ... ok [INFO] [stdout] test commands::last::when_not_flag::it_inverts_tag_filter ... ok [INFO] [stdout] test commands::mark::when_remove_flag::it_removes_flagged_tag_with_short_flag ... ok [INFO] [stdout] test commands::last::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::mark::when_unfinished_flag::it_only_flags_entries_not_done ... ok [INFO] [stdout] test commands::mark::when_count_flag::it_flags_multiple_entries_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::mark::when_remove_flag::it_does_nothing_when_not_flagged ... ok [INFO] [stdout] test commands::mark::when_no_flags::it_does_not_duplicate_flagged_tag ... ok [INFO] [stdout] test commands::mark::when_force_flag::it_skips_confirmation ... ok [INFO] [stdout] test commands::mark::when_tag_flag::it_filters_by_tag_before_flagging ... ok [INFO] [stdout] test commands::mark::when_unfinished_flag::it_skips_done_entries ... ok [INFO] [stdout] test commands::mark::when_unfinished_flag::it_only_flags_entries_not_done_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_no_flags::it_is_accessible_via_flag_alias ... ok [INFO] [stdout] test commands::mark::when_search_flag::it_filters_by_search_before_flagging ... ok [INFO] [stdout] test commands::meanwhile::when_no_text::it_does_nothing_when_no_meanwhile_exists ... ok [INFO] [stdout] test commands::meanwhile::when_noauto_flag::it_disables_autotag ... ok [INFO] [stdout] test commands::last::when_no_flags::it_shows_most_recent_entry ... ok [INFO] [stdout] test commands::meanwhile::when_note_flag::it_adds_note_to_new_entry ... ok [INFO] [stdout] test commands::meanwhile::when_noauto_flag::it_disables_autotag_with_short_flag ... ok [INFO] [stdout] test commands::last::when_tag_flag::it_filters_by_multiple_tags ... ok [INFO] [stdout] test commands::meanwhile::when_archive_flag::it_archives_finished_meanwhile ... ok [INFO] [stdout] test commands::meanwhile::when_back_flag::it_backdates_new_entry ... ok [INFO] [stdout] test commands::meanwhile::when_back_flag::it_backdates_with_short_flag ... ok [INFO] [stdout] test commands::meanwhile::when_note_flag::it_adds_note_with_short_flag ... ok [INFO] [stdout] test commands::meanwhile::when_section_flag::it_creates_entry_in_specified_section ... ok [INFO] [stdout] test commands::meanwhile::when_archive_flag::it_archives_finished_meanwhile_with_short_flag ... ok [INFO] [stdout] test commands::mark::when_section_flag::it_flags_entry_with_short_flag ... ok [INFO] [stdout] test commands::note::when_bool_flag_is_and::it_adds_note_to_entry_matching_all_tags ... ok [INFO] [stdout] test commands::meanwhile::when_with_text::it_creates_new_meanwhile_entry ... ok [INFO] [stdout] test commands::meanwhile::when_with_text::it_finishes_multiple_existing_meanwhile_entries ... ok [INFO] [stdout] test commands::note::when_not_flag_is_provided::it_adds_note_to_entries_not_matching_filter ... ok [INFO] [stdout] test commands::note::when_stdin_is_provided::it_reads_note_from_stdin ... ok [INFO] [stdout] test commands::note::when_val_flag_is_provided::it_adds_note_to_entries_matching_tag_value ... ok [INFO] [stdout] test commands::note::when_case_flag_is_provided::it_respects_case_sensitivity ... ok [INFO] [stdout] test commands::note::when_search_flag_is_provided::it_adds_note_to_entry_matching_search ... ok [INFO] [stdout] test commands::now::it_works_as_next_alias ... ok [INFO] [stdout] test commands::note::when_text_is_provided::it_appends_note_to_last_entry ... ok [INFO] [stdout] test commands::note::when_tag_flag_is_provided::it_adds_note_to_entry_matching_tag ... ok [INFO] [stdout] test commands::last::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::meanwhile::when_section_flag::it_creates_entry_with_short_flag ... ok [INFO] [stdout] test commands::meanwhile::when_with_text::it_finishes_existing_meanwhile_and_creates_new ... ok [INFO] [stdout] test commands::note::when_text_is_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::now::when_finish_last_flag_is_provided::it_errors_when_section_is_empty ... ok [INFO] [stdout] test commands::now::when_finish_last_flag_is_provided::it_sets_done_time_to_match_new_entry_start ... ok [INFO] [stdout] test commands::note::when_section_flag_is_provided::it_adds_note_to_entry_in_specified_section ... ok [INFO] [stdout] test commands::note::when_remove_flag_is_provided::it_replaces_note_when_text_given ... ok [INFO] [stdout] test commands::note::when_text_is_provided::it_appends_to_existing_note ... ok [INFO] [stdout] test commands::note::when_remove_flag_is_provided::it_removes_note_when_no_text_given ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_converts_trailing_parenthetical_to_note ... ok [INFO] [stdout] test commands::now::when_finish_last_flag_is_provided::it_does_not_update_already_done_entry ... ok [INFO] [stdout] test commands::now::when_back_flag_is_provided::it_backdates_with_absolute_time ... ok [INFO] [stdout] test commands::now::when_from_flag_is_provided::it_sets_start_and_done_from_range ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_treats_inline_done_tag_as_regular_tag ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_converts_multiple_parentheticals_as_single_note ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::now::when_note_flag_is_provided::it_combines_with_parenthetical_note ... ok [INFO] [stdout] test commands::now::when_noauto_flag_is_provided::it_excludes_auto_tags_and_default_tags ... ok [INFO] [stdout] test commands::now::when_back_flag_is_provided::it_backdates_with_natural_language ... ok [INFO] [stdout] test commands::now::when_finish_last_flag_is_provided::it_marks_previous_entry_as_done ... ok [INFO] [stdout] test commands::now::when_section_flag_is_provided::it_adds_entry_to_specified_section ... ok [INFO] [stdout] test commands::mark::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::now::when_note_flag_is_provided::it_adds_note_to_entry ... ok [INFO] [stdout] test commands::meanwhile::when_no_text::it_finishes_current_meanwhile ... ok [INFO] [stdout] test commands::on::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::now::when_from_flag_is_provided::it_sets_done_to_end_of_day_when_single_time_given ... ok [INFO] [stdout] test commands::on::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_adds_entry_to_currently_section_with_current_timestamp ... ok [INFO] [stdout] test commands::now::when_no_flags_are_provided::it_preserves_inline_tags ... ok [INFO] [stdout] test commands::now::when_multiple_flags_are_combined::it_combines_back_note_and_section ... ok [INFO] [stdout] test commands::on::when_date_argument::it_shows_nothing_when_no_entries_on_date ... ok [INFO] [stdout] test commands::now::when_back_flag_is_provided::it_backdates_with_relative_time ... ok [INFO] [stdout] test commands::on::when_duration_flag::it_shows_duration_on_entries ... ok [INFO] [stdout] test commands::on::when_search_flag::it_filters_by_search ... ok [INFO] [stdout] test commands::on::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::on::when_output_flag::it_outputs_csv ... ok [INFO] [stdout] test commands::on::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::on::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::on::when_output_flag::it_outputs_json ... ok [INFO] [stdout] test commands::on::when_date_argument::it_shows_entries_for_specific_date ... ok [INFO] [stdout] test commands::on::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::on::when_date_argument::it_shows_entries_for_date_range_with_to ... ok [INFO] [stdout] test commands::on::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::on::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::open::when_bundle_id_flag::it_opens_with_bundle_id ... ignored, macOS-only: requires `open -b` [INFO] [stdout] test commands::open::when_bundle_id_flag::it_opens_with_short_flag ... ignored, macOS-only: requires `open -b` [INFO] [stdout] test commands::open::when_app_flag::it_opens_in_specified_app ... ok [INFO] [stdout] test commands::on::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::on::when_duration_flag::it_includes_interval_for_finished_entries ... ok [INFO] [stdout] test commands::on::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::plugins::when_column_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::open::when_no_flags::it_opens_doing_file_in_default_editor ... ok [INFO] [stdout] test commands::on::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::open::when_app_flag::it_opens_with_short_flag ... ok [INFO] [stdout] test commands::open::when_editor_flag::it_opens_with_short_flag ... ok [INFO] [stdout] test commands::on::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::plugins::when_type_flag::it_errors_on_invalid_type ... ok [INFO] [stdout] test commands::plugins::when_type_flag::it_lists_import_plugins_only ... ok [INFO] [stdout] test commands::plugins::when_no_flags::it_lists_all_plugins ... ok [INFO] [stdout] test commands::plugins::when_type_flag::it_lists_export_plugins_only ... ok [INFO] [stdout] test commands::plugins::when_type_flag::it_lists_with_short_flag ... ok [INFO] [stdout] test commands::plugins::when_column_flag::it_outputs_in_column_format ... ok [INFO] [stdout] test commands::open::when_editor_flag::it_opens_with_specified_editor ... ok [INFO] [stdout] test commands::on::when_date_argument::it_shows_entries_for_relative_day ... ok [INFO] [stdout] test commands::recent::when_interactive_flag::it_presents_with_short_flag ... ok [INFO] [stdout] test commands::recent::when_config_template_flag::it_uses_config_template ... ok [INFO] [stdout] test commands::recent::when_interactive_flag::it_presents_interactive_menu ... ok [INFO] [stdout] test commands::on::when_from_flag::it_limits_to_time_range ... ok [INFO] [stdout] test commands::plugins::when_no_flags::it_exits_successfully ... ok [INFO] [stdout] test commands::recent::when_output_flag::it_outputs_csv ... ok [INFO] [stdout] test commands::recent::when_output_flag::it_outputs_json ... ok [INFO] [stdout] test commands::recent::when_no_flags::it_shows_default_number_of_recent_entries ... ok [INFO] [stdout] test commands::recent::when_no_flags::it_shows_entries_from_all_sections ... ok [INFO] [stdout] test commands::on::when_times_flag::it_shows_time_info_not_present_without_flag ... ok [INFO] [stdout] test commands::recent::when_duration_flag::it_shows_duration ... ok [INFO] [stdout] test commands::on::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::recent::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::recent::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::on::when_times_flag::it_shows_time_intervals ... ok [INFO] [stdout] test commands::recent::when_save_flag::it_saves_output_to_file ... ok [INFO] [stdout] test commands::on::when_times_flag::it_shows_with_short_flag ... ok [INFO] [stdout] test commands::recent::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::recent::when_duration_flag::it_hides_duration ... ok [INFO] [stdout] test commands::recent::when_duration_flag::it_includes_interval_for_finished_entries ... ok [INFO] [stdout] test commands::on::when_totals_flag::it_does_not_show_totals_without_flag ... ok [INFO] [stdout] test commands::recent::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::redo::when_interactive_flag::it_disables_interactive_mode ... ok [INFO] [stdout] test commands::recent::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::recent::when_count_argument::it_shows_all_when_count_exceeds_entries ... ok [INFO] [stdout] test commands::redo::when_interactive_flag::it_presents_with_short_flag ... ok [INFO] [stdout] test commands::redo::when_no_flags::it_does_nothing_when_no_undo_to_redo ... ok [INFO] [stdout] test commands::reset::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::reset::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::redo::when_file_flag::it_redoes_for_specified_file ... ok [INFO] [stdout] test commands::recent::when_totals_flag::it_does_not_show_totals_without_flag ... ok [INFO] [stdout] test commands::recent::when_title_flag::it_overrides_section_title ... ok [INFO] [stdout] test commands::recent::when_count_argument::it_shows_specified_number_of_entries ... ok [INFO] [stdout] test commands::reset::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::reset::when_no_flags::it_removes_done_tag_by_default ... ok [INFO] [stdout] test commands::redo::when_no_flags::it_reverses_last_undo ... ok [INFO] [stdout] test commands::reset::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::reset::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::reset::when_no_flags::it_resets_start_time_of_last_entry ... ok [INFO] [stdout] test commands::recent::when_times_flag::it_hides_times ... ok [INFO] [stdout] test commands::redo::when_interactive_flag::it_presents_interactive_menu ... ok [INFO] [stdout] test commands::reset::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::recent::when_times_flag::it_uses_short_flag ... ok [INFO] [stdout] test commands::reset::when_section_flag::it_resets_entry_in_specified_section ... ok [INFO] [stdout] test commands::reset::when_no_resume_flag::it_keeps_done_tag_with_no_resume ... ok [INFO] [stdout] test commands::reset::when_no_flags::it_is_accessible_via_begin_alias ... ok [INFO] [stdout] test commands::reset::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::reset::when_no_resume_flag::it_keeps_done_tag_with_n_shortcut ... ok [INFO] [stdout] test commands::reset::when_took_flag::it_sets_completion_date_relative_to_new_start ... ok [INFO] [stdout] test commands::recent::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::reset::when_section_flag::it_resets_entry_with_short_flag ... ok [INFO] [stdout] test commands::reset::when_resume_flag::it_removes_done_tag_with_short_flag ... ok [INFO] [stdout] test commands::recent::when_times_flag::it_shows_times ... ok [INFO] [stdout] test commands::reset::when_from_flag::it_resets_to_specified_date ... ok [INFO] [stdout] test commands::reset::when_resume_flag::it_removes_done_tag ... ok [INFO] [stdout] test commands::reset::when_took_flag::it_sets_completion_with_for_alias ... ok [INFO] [stdout] test commands::reset::when_took_flag::it_sets_completion_with_short_flag ... ok [INFO] [stdout] test commands::redo::when_no_flags::it_redoes_multiple_with_count ... ok [INFO] [stdout] test commands::rotate::when_keep_flag::it_retains_n_most_recent_per_section ... ok [INFO] [stdout] test commands::reset::when_search_flag::it_filters_by_search ... ok [INFO] [stdout] test commands::rotate::when_keep_flag::it_keeps_entries_per_section_independently ... ok [INFO] [stdout] test commands::rotate::when_keep_flag::it_retains_with_short_flag ... ok [INFO] [stdout] test commands::rotate::when_before_flag::it_rotates_entries_before_date ... ok [INFO] [stdout] test commands::rotate::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::rotate::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::rotate::when_no_flags::it_creates_dated_archive_file ... ok [INFO] [stdout] test commands::rotate::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::rotate::when_no_flags::it_moves_entries_to_external_file ... ok [INFO] [stdout] test commands::rotate::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::sections::when_list_subcommand::it_shows_empty_when_no_sections ... ok [INFO] [stdout] test commands::rotate::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::rotate::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::rotate::when_tag_flag::it_rotates_entries_with_tag ... ok [INFO] [stdout] test commands::sections::when_add_subcommand::it_creates_new_section ... ok [INFO] [stdout] test commands::sections::when_list_subcommand::it_suppresses_output_with_quiet_flag ... ok [INFO] [stdout] test commands::sections::when_list_subcommand::it_lists_all_section_names ... ok [INFO] [stdout] test commands::rotate::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::rotate::when_section_flag::it_limits_rotation_to_section ... ok [INFO] [stdout] test commands::sections::when_add_subcommand::it_does_not_duplicate_existing_section ... ok [INFO] [stdout] test commands::rotate::when_search_flag::it_rotates_matching_entries ... ok [INFO] [stdout] test commands::sections::when_remove_subcommand::it_removes_section_with_archive_flag ... ok [INFO] [stdout] test commands::select::when_after_flag::it_filters_entries_after_time ... ok [INFO] [stdout] test commands::select::when_again_flag::it_resumes_with_resume_alias ... ok [INFO] [stdout] test commands::sections::when_remove_subcommand::it_fails_when_section_does_not_exist ... ok [INFO] [stdout] test commands::select::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::recent::when_tag_order_flag::it_orders_tags_descending ... ok [INFO] [stdout] test commands::select::when_again_flag::it_resumes_selected_entries ... ok [INFO] [stdout] test commands::select::when_delete_flag::it_deletes_selected_entries ... ok [INFO] [stdout] test commands::select::when_delete_flag::it_deletes_with_short_flag ... ok [INFO] [stdout] test commands::select::when_archive_flag::it_archives_selected_entries ... ok [INFO] [stdout] test commands::select::when_cancel_flag::it_cancels_selected_entries ... ok [INFO] [stdout] test commands::select::when_before_flag::it_filters_entries_before_time ... ok [INFO] [stdout] test commands::sections::when_list_subcommand::it_lists_with_explicit_list_subcommand ... ok [INFO] [stdout] test commands::sections::when_remove_subcommand::it_removes_section ... ok [INFO] [stdout] test commands::recent::when_tag_sort_flag::it_sorts_by_tag ... ok [INFO] [stdout] test commands::select::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::select::when_finish_flag::it_finishes_selected_entries ... ok [INFO] [stdout] test commands::rotate::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::select::when_editor_flag::it_persists_edits_to_the_doing_file_with_short_flag ... ok [INFO] [stdout] test commands::reset::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::select::when_force_flag::it_skips_confirmation ... ok [INFO] [stdout] test commands::select::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::select::when_archive_flag::it_archives_with_short_flag ... ok [INFO] [stdout] test commands::select::when_exact_flag::it_uses_exact_matching_with_long_flag ... ok [INFO] [stdout] test commands::select::when_query_flag::it_accepts_short_flag ... ok [INFO] [stdout] test commands::select::when_query_flag::it_filters_by_query ... ok [INFO] [stdout] test commands::select::when_cancel_flag::it_cancels_with_short_flag ... ok [INFO] [stdout] test commands::select::when_remove_flag::it_removes_tag_from_selected_entries ... ok [INFO] [stdout] test commands::select::when_save_to_flag::it_saves_output_to_file ... ok [INFO] [stdout] test commands::select::when_tag_flag::it_adds_tag_with_short_flag ... ok [INFO] [stdout] test commands::select::when_search_flag::it_filters_by_search ... ok [INFO] [stdout] test commands::select::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::select::when_remove_flag::it_removes_with_short_flag ... ok [INFO] [stdout] test commands::select::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::recent::when_tag_order_flag::it_orders_tags ... ok [INFO] [stdout] test commands::select::when_flag_flag::it_flags_selected_entries ... ok [INFO] [stdout] test commands::select::when_finish_flag::it_finishes_with_short_flag ... ok [INFO] [stdout] test commands::select::when_tag_flag::it_adds_tag_to_selected_entries ... ok [INFO] [stdout] test commands::select::when_no_menu_mode::it_operates_without_interactive_menu ... ok [INFO] [stdout] test commands::show::when_bool_flag_is_not::it_excludes_entries_with_tag ... ok [INFO] [stdout] test commands::show::when_after_flag_is_provided::it_shows_entries_after_date ... ok [INFO] [stdout] test commands::show::when_case_flag_is_provided::it_respects_case_sensitivity ... ok [INFO] [stdout] test commands::show::when_duration_flag_is_provided::it_shows_elapsed_on_unfinished_entries ... ok [INFO] [stdout] test commands::select::when_editor_flag::it_persists_edits_to_the_doing_file ... ok [INFO] [stdout] test commands::select::when_move_flag::it_moves_selected_entries_to_section ... ok [INFO] [stdout] test commands::select::when_move_flag::it_moves_with_short_flag ... ok [INFO] [stdout] test commands::select::when_from_flag::it_limits_to_time_range ... ok [INFO] [stdout] test commands::show::when_case_flag_is_provided::it_performs_case_insensitive_search ... ok [INFO] [stdout] test commands::select::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::show::when_no_times_flag_is_provided::it_shows_interval_when_times_flag_is_provided ... ok [INFO] [stdout] test commands::show::when_no_flags_are_provided::it_shows_time_intervals_on_done_entries ... ok [INFO] [stdout] test commands::show::when_bool_flag_is_and::it_requires_all_tags ... ok [INFO] [stdout] test commands::show::when_only_timed_flag_is_provided::it_shows_only_done_entries ... ok [INFO] [stdout] test commands::show::when_before_flag_is_provided::it_shows_entries_before_date ... ok [INFO] [stdout] test commands::show::when_output_flag_is_doing::it_outputs_doing_file_format ... ok [INFO] [stdout] test commands::show::when_age_flag_is_oldest::it_selects_oldest_entries_for_count ... ok [INFO] [stdout] test commands::select::when_output_flag::it_outputs_in_specified_format ... ok [INFO] [stdout] test commands::show::when_output_flag_is_taskpaper::it_outputs_taskpaper_format ... ok [INFO] [stdout] test commands::show::when_age_flag_is_newest::it_selects_newest_entries_for_count ... ok [INFO] [stdout] test commands::show::when_section_argument_is_provided::it_shows_all_sections_with_all ... ok [INFO] [stdout] test commands::show::when_output_flag_is_markdown::it_outputs_markdown_format ... ok [INFO] [stdout] test commands::show::when_not_flag_is_provided::it_shows_entries_not_matching_filter ... ok [INFO] [stdout] test commands::show::when_no_times_flag_is_provided::it_hides_time_intervals ... ok [INFO] [stdout] test commands::show::when_no_flags_are_provided::it_shows_notes_by_default ... ok [INFO] [stdout] test commands::show::when_no_times_flag_is_provided::it_omits_interval_with_title_only_template ... ok [INFO] [stdout] test commands::show::when_section_argument_is_provided::it_shows_entries_from_specified_section ... ok [INFO] [stdout] test commands::show::when_tag_argument_is_provided::it_combines_section_and_tag ... ok [INFO] [stdout] test commands::show::when_section_flag_is_provided::it_shows_entries_from_specified_section ... ok [INFO] [stdout] test commands::show::when_search_flag_is_provided::it_filters_by_text_search ... ok [INFO] [stdout] test commands::select::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::show::when_output_flag_is_csv::it_outputs_csv_with_header ... ok [INFO] [stdout] test commands::show::when_no_flags_are_provided::it_shows_currently_section_in_ascending_order ... ok [INFO] [stdout] test commands::show::when_val_flag_is_provided::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::show::when_template_flag_is_provided::it_overrides_output_format ... ok [INFO] [stdout] test commands::show::when_tag_flag_is_provided::it_filters_entries_by_tag ... ok [INFO] [stdout] test commands::show::when_tag_sort_and_tag_order_flags_are_provided::it_sorts_tag_totals_by_time ... ok [INFO] [stdout] test commands::show::when_sort_flag_is_desc::it_sorts_entries_newest_first ... ok [INFO] [stdout] test commands::show::when_search_flag_is_provided::it_supports_regex_search ... ok [INFO] [stdout] test commands::show::when_sort_flag_is_asc::it_sorts_entries_oldest_first ... ok [INFO] [stdout] test commands::show::when_output_flag_is_json::it_outputs_valid_json ... ok [INFO] [stdout] test commands::show::when_count_flag_is_provided::it_limits_output_to_n_entries ... ok [INFO] [stdout] test commands::show::when_tag_argument_is_provided::it_filters_by_at_tag ... ok [INFO] [stdout] test commands::show::when_tag_argument_is_provided::it_supports_plus_minus_pattern_syntax ... ok [INFO] [stdout] test commands::show::when_search_flag_is_provided::it_supports_exact_match ... ok [INFO] [stdout] test commands::since::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::since::when_config_template_flag::it_uses_config_template ... ok [INFO] [stdout] test commands::show::when_from_flag_is_provided::it_shows_entries_in_date_range ... ok [INFO] [stdout] test commands::show::when_totals_flag_is_provided::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::since::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::since::when_output_flag::it_outputs_csv ... ok [INFO] [stdout] test commands::since::when_save_flag::it_saves_output_to_file ... ok [INFO] [stdout] test commands::since::when_duration_flag::it_shows_duration ... ok [INFO] [stdout] test commands::since::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::since::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::since::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::since::when_date_argument::it_shows_entries_since_relative_day ... ok [INFO] [stdout] test commands::since::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::since::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::since::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::since::when_tag_sort_flag::it_sorts_by_tag ... ok [INFO] [stdout] test commands::since::when_output_flag::it_outputs_json ... ok [INFO] [stdout] test commands::since::when_date_argument::it_shows_entries_since_relative_duration ... ok [INFO] [stdout] test commands::since::when_title_flag::it_overrides_section_title ... ok [INFO] [stdout] test commands::since::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::since::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::since::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::since::when_tag_order_flag::it_orders_tags ... ok [INFO] [stdout] test commands::since::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::since::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::tag::when_date_flag_is_provided::it_adds_tag_with_current_timestamp ... ok [INFO] [stdout] test commands::tag::when_bool_flag_is_not::it_tags_entries_without_specified_tag ... ok [INFO] [stdout] test commands::tag::when_no_flags_are_provided::it_adds_multiple_tags ... ok [INFO] [stdout] test commands::since::when_search_flag::it_filters_by_search ... ok [INFO] [stdout] test commands::tag::when_autotag_flag_is_provided::it_applies_autotag_rules_from_config ... ok [INFO] [stdout] test commands::tag::when_case_flag_is_provided::it_respects_case_sensitivity_in_search ... ok [INFO] [stdout] test commands::tag::when_no_flags_are_provided::it_outputs_status_to_stderr ... ok [INFO] [stdout] test commands::since::when_times_flag::it_hides_times ... ok [INFO] [stdout] test commands::tag::when_not_flag_is_provided::it_tags_entries_not_matching_filter ... ok [INFO] [stdout] test commands::tag::when_count_flag_is_provided::it_tags_n_most_recent_entries ... ok [INFO] [stdout] test commands::tag::when_unfinished_flag_is_provided::it_tags_only_entries_not_marked_done ... ok [INFO] [stdout] test commands::tag::when_val_flag_is_provided::it_tags_entries_matching_tag_value ... ok [INFO] [stdout] test commands::tag::when_remove_flag_is_provided::it_removes_tags_matching_regex_with_regex_flag ... ok [INFO] [stdout] test commands::tag::when_regex_flag_is_provided::it_interprets_remove_pattern_as_regex ... ok [INFO] [stdout] test commands::tag::when_remove_flag_is_provided::it_removes_tag_from_last_entry ... ok [INFO] [stdout] test commands::tag::when_no_flags_are_provided::it_adds_tag_to_last_entry ... ok [INFO] [stdout] test commands::tag_dir::when_adding_tags::it_sets_default_tags_for_directory ... ok [INFO] [stdout] test commands::tag_dir::when_adding_tags::it_sets_multiple_default_tags ... ok [INFO] [stdout] test commands::tag::when_tag_filter_is_provided::it_tags_entries_matching_existing_tag ... ok [INFO] [stdout] test commands::tag::when_value_flag_is_provided::it_adds_tag_with_value ... ok [INFO] [stdout] test commands::tag_dir::when_adding_tags::it_appends_to_existing_tags ... ok [INFO] [stdout] test commands::tag::when_search_flag_is_provided::it_tags_entries_matching_search ... ok [INFO] [stdout] test commands::tag_dir::when_editor_flag::it_opens_doingrc_in_editor ... ok [INFO] [stdout] test commands::tag::when_rename_flag_is_provided::it_renames_existing_tag ... ok [INFO] [stdout] test commands::tag::when_bool_flag_is_and::it_tags_entries_matching_all_filter_tags ... ok [INFO] [stdout] test commands::tag_dir::when_editor_flag::it_opens_with_short_flag ... ok [INFO] [stdout] test commands::tag_dir::when_clear_flag::it_does_nothing_when_no_tags_set ... ok [INFO] [stdout] test commands::since::when_times_flag::it_uses_short_flag ... ok [INFO] [stdout] test commands::tag_dir::when_remove_flag::it_removes_with_short_flag ... ok [INFO] [stdout] test commands::since::when_times_flag::it_shows_times ... ok [INFO] [stdout] test commands::tag_dir::when_clear_flag::it_clears_all_default_tags ... ok [INFO] [stdout] test commands::tag_dir::when_remove_flag::it_removes_specific_tags ... ok [INFO] [stdout] test commands::since::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::tags::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::tags::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::tags::when_counts_flag::it_hides_counts_when_disabled ... ok [INFO] [stdout] test commands::tags::when_interactive_flag::it_presents_with_short_flag ... ok [INFO] [stdout] test commands::tag::when_section_flag_is_provided::it_tags_entries_from_specified_section ... ok [INFO] [stdout] test commands::tag_dir::when_remove_flag::it_does_nothing_when_tag_not_present ... ok [INFO] [stdout] test commands::tags::when_interactive_flag::it_presents_interactive_menu ... ok [INFO] [stdout] test commands::since::when_date_argument::it_shows_nothing_when_no_entries_since_date ... ok [INFO] [stdout] test commands::tags::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_line_flag::it_disables_single_line ... ok [INFO] [stdout] test commands::tags::when_line_flag::it_outputs_single_line_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_counts_flag::it_shows_counts_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_counts_flag::it_shows_occurrence_count ... ok [INFO] [stdout] test commands::tags::when_no_flags::it_returns_nothing_when_no_tags ... ok [INFO] [stdout] test commands::tags::when_line_flag::it_outputs_single_line ... ok [INFO] [stdout] test commands::tags::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::template::when_column_flag::it_disables_column_format ... ok [INFO] [stdout] test commands::tags::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::template::when_list_flag::it_lists_with_short_flag ... ok [INFO] [stdout] test commands::template::when_column_flag::it_outputs_in_column_format ... ok [INFO] [stdout] test commands::template::when_path_flag::it_saves_to_specified_directory ... ok [INFO] [stdout] test commands::tags::when_order_flag::it_orders_ascending_with_short_flag ... ok [INFO] [stdout] test commands::template::when_column_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::template::when_list_flag::it_lists_available_templates ... ok [INFO] [stdout] test commands::template::when_type_argument::it_outputs_css_template ... ok [INFO] [stdout] test commands::tags::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_order_flag::it_orders_ascending ... ok [INFO] [stdout] test commands::tags::when_search_flag::it_filters_entries_by_search ... ok [INFO] [stdout] test commands::tags::when_sort_flag::it_sorts_by_count ... ok [INFO] [stdout] test commands::template::when_save_flag::it_saves_template_to_file ... ok [INFO] [stdout] test commands::template::when_save_flag::it_saves_with_short_flag ... ok [INFO] [stdout] test commands::template::when_path_flag::it_saves_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::template::when_type_argument::it_outputs_html_template ... ok [INFO] [stdout] test commands::tags::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::tags::when_sort_flag::it_sorts_by_name ... ok [INFO] [stdout] test commands::tags::when_no_flags::it_lists_all_unique_tags ... ok [INFO] [stdout] test commands::template::when_type_argument::it_outputs_markdown_template ... ok [INFO] [stdout] test commands::today::when_config_template_flag::it_uses_config_template ... ok [INFO] [stdout] test commands::tags::when_tag_flag::it_filters_entries_by_tag_before_listing ... ok [INFO] [stdout] test commands::template::when_type_argument::it_returns_error_for_unknown_type ... ok [INFO] [stdout] test commands::today::when_no_flags::it_shows_nothing_when_no_entries_today ... ok [INFO] [stdout] test commands::tags::when_order_flag::it_orders_descending ... ok [INFO] [stdout] test commands::today::when_duration_flag::it_includes_interval_for_finished_entries ... ok [INFO] [stdout] test commands::today::when_after_flag::it_filters_entries_after_time ... ok [INFO] [stdout] test commands::today::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::tags::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::today::when_duration_flag::it_hides_duration ... ok [INFO] [stdout] test commands::today::when_no_flags::it_shows_entries_from_all_sections ... ok [INFO] [stdout] test commands::today::when_duration_flag::it_shows_duration ... ok [INFO] [stdout] test commands::today::when_before_flag::it_filters_entries_before_time ... ok [INFO] [stdout] test commands::today::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::today::when_output_flag::it_outputs_csv ... ok [INFO] [stdout] test commands::today::when_title_flag::it_uses_default_title_without_flag ... ok [INFO] [stdout] test commands::today::when_output_flag::it_outputs_json ... ok [INFO] [stdout] test commands::today::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::today::when_no_flags::it_shows_entries_from_today ... ok [INFO] [stdout] test commands::today::when_save_flag::it_saves_output_to_file ... ok [INFO] [stdout] test commands::today::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::undo::when_interactive_flag::it_presents_interactive_menu ... ok [INFO] [stdout] test commands::undo::when_no_flags::it_does_nothing_when_no_backups ... ok [INFO] [stdout] test commands::today::when_title_flag::it_overrides_section_title ... ok [INFO] [stdout] test commands::undo::when_no_flags::it_undoes_last_change ... ok [INFO] [stdout] test commands::today::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::undo::when_interactive_flag::it_presents_with_short_flag ... ok [INFO] [stdout] test commands::undo::when_file_flag::it_undoes_changes_to_specified_file ... ok [INFO] [stdout] test commands::today::when_times_flag::it_hides_times ... ok [INFO] [stdout] test commands::today::when_from_flag::it_limits_to_time_range ... ok [INFO] [stdout] test commands::undo::when_prune_flag::it_prunes_with_long_flag ... ok [INFO] [stdout] test commands::undo::when_redo_flag::it_disables_redo_with_no_redo ... ok [INFO] [stdout] test commands::undo::when_file_flag::it_undoes_with_long_flag ... ok [INFO] [stdout] test commands::undo::when_no_flags::it_undoes_multiple_changes_with_count ... ok [INFO] [stdout] test commands::undo::when_redo_flag::it_undoes_the_last_undo_with_long_flag ... ok [INFO] [stdout] test commands::undo::when_prune_flag::it_removes_old_backups ... ok [INFO] [stdout] test commands::view::when_case_flag::it_performs_case_sensitive_search ... ok [INFO] [stdout] test commands::view::when_after_flag::it_filters_entries_after_date ... ok [INFO] [stdout] test commands::view::when_color_flag::it_respects_color_flag ... ok [INFO] [stdout] test commands::today::when_times_flag::it_uses_short_flag ... ok [INFO] [stdout] test commands::undo::when_redo_flag::it_undoes_the_last_undo ... ok [INFO] [stdout] test commands::view::when_age_flag::it_filters_by_age_newest ... ok [INFO] [stdout] test commands::today::when_tag_order_flag::it_orders_tags_descending ... ok [INFO] [stdout] test commands::view::when_exact_flag::it_uses_exact_matching_with_short_flag ... ok [INFO] [stdout] test commands::today::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::view::when_hilite_flag::it_highlights_search_matches ... ok [INFO] [stdout] test commands::view::when_exact_flag::it_uses_exact_matching ... ok [INFO] [stdout] test commands::view::when_duration_flag::it_includes_interval_for_finished_entries ... ok [INFO] [stdout] test commands::view::when_interactive_flag::it_enables_interactive_mode ... ok [INFO] [stdout] test commands::view::when_hilite_flag::it_highlights_with_ansi_codes_when_color_enabled ... ok [INFO] [stdout] test commands::view::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::view::when_bool_flag::it_uses_and_boolean ... ok [INFO] [stdout] test commands::view::when_before_flag::it_filters_entries_before_date ... ok [INFO] [stdout] test commands::view::when_output_flag::it_overrides_output_format ... ok [INFO] [stdout] test commands::today::when_times_flag::it_shows_times ... ok [INFO] [stdout] test commands::view::when_not_flag::it_inverts_filter ... ok [INFO] [stdout] test commands::view::when_tag_order_flag::it_sets_tag_order ... ok [INFO] [stdout] test commands::today::when_totals_flag::it_does_not_show_totals_without_flag ... ok [INFO] [stdout] test commands::view::when_duration_flag::it_shows_duration_on_entries ... ok [INFO] [stdout] test commands::view::when_tag_sort_flag::it_sorts_tags_by_name ... ok [INFO] [stdout] test commands::today::when_tag_sort_flag::it_sorts_by_tag ... ok [INFO] [stdout] test commands::view::when_times_flag::it_shows_times_on_done_entries ... ok [INFO] [stdout] test commands::view::when_view_name::it_returns_error_for_unknown_view ... ok [INFO] [stdout] test commands::view::when_totals_flag::it_shows_totals ... ok [INFO] [stdout] test commands::view::when_bool_flag::it_uses_or_boolean ... ok [INFO] [stdout] test commands::view::when_template_flag::it_overrides_view_template ... ok [INFO] [stdout] test commands::view::when_section_flag::it_overrides_view_section ... ok [INFO] [stdout] test commands::views::when_column_flag::it_outputs_in_column_format ... ok [INFO] [stdout] test commands::views::when_column_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::view::when_search_flag::it_filters_by_search ... ok [INFO] [stdout] test commands::view::when_section_flag::it_overrides_with_short_flag ... ok [INFO] [stdout] test commands::views::when_no_arguments::it_lists_all_view_names ... ok [INFO] [stdout] test commands::views::when_name_argument::it_returns_error_for_unknown_view ... ok [INFO] [stdout] test commands::view::when_output_flag::it_overrides_with_short_flag ... ok [INFO] [stdout] test commands::view::when_count_flag::it_overrides_with_short_flag ... ok [INFO] [stdout] test commands::view::when_from_flag::it_filters_by_date_range ... ok [INFO] [stdout] test commands::views::when_output_flag::it_outputs_in_specified_format ... ok [INFO] [stdout] test commands::views::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::views::when_remove_flag::it_returns_error_for_nonexistent_view ... ok [INFO] [stdout] test commands::views::when_name_argument::it_dumps_view_config ... ok [INFO] [stdout] test commands::today::when_tag_order_flag::it_orders_tags ... ok [INFO] [stdout] test commands::view::when_tag_flag::it_filters_by_tag ... ok [INFO] [stdout] test commands::views::when_no_arguments::it_shows_nothing_when_no_views ... ok [INFO] [stdout] test commands::views::when_remove_flag::it_removes_view ... ok [INFO] [stdout] test commands::view::when_count_flag::it_overrides_view_count ... ok [INFO] [stdout] test commands::yesterday::when_duration_flag::it_includes_interval_for_finished_entries_with_custom_template ... ok [INFO] [stdout] test commands::yesterday::when_no_flags::it_shows_nothing_when_no_entries_yesterday ... ok [INFO] [stdout] test commands::yesterday::when_config_template_flag::it_uses_config_template ... ok [INFO] [stdout] test commands::view::when_view_name::it_displays_configured_view ... ok [INFO] [stdout] test commands::yesterday::when_output_flag::it_outputs_csv ... ok [INFO] [stdout] test commands::yesterday::when_no_flags::it_shows_entries_from_yesterday ... ok [INFO] [stdout] test commands::yesterday::when_duration_flag::it_hides_duration ... ok [INFO] [stdout] test commands::views::when_remove_flag::it_removes_with_short_flag ... ok [INFO] [stdout] test commands::yesterday::when_output_flag::it_outputs_json ... ok [INFO] [stdout] test commands::yesterday::when_save_flag::it_saves_output_to_file ... ok [INFO] [stdout] test commands::yesterday::when_only_timed_flag::it_shows_only_timed_entries ... ok [INFO] [stdout] test commands::yesterday::when_duration_flag::it_shows_duration ... ok [INFO] [stdout] test commands::view::when_val_flag::it_filters_by_tag_value ... ok [INFO] [stdout] test commands::yesterday::when_after_flag::it_filters_entries_after_time ... ok [INFO] [stdout] test commands::yesterday::when_output_flag::it_outputs_with_short_flag ... ok [INFO] [stdout] test commands::yesterday::when_from_flag::it_limits_to_time_range ... ok [INFO] [stdout] test commands::yesterday::when_title_flag::it_overrides_section_title ... ok [INFO] [stdout] test commands::yesterday::when_template_flag::it_uses_custom_template ... ok [INFO] [stdout] test commands::yesterday::when_no_flags::it_shows_entries_from_all_sections ... ok [INFO] [stdout] test commands::yesterday::when_times_flag::it_uses_short_flag ... ok [INFO] [stdout] test commands::yesterday::when_title_flag::it_uses_default_title_without_flag ... ok [INFO] [stdout] test commands::yesterday::when_totals_flag::it_does_not_show_totals_without_flag ... ok [INFO] [stdout] test commands::yesterday::when_times_flag::it_shows_times ... ok [INFO] [stdout] test commands::yesterday::when_times_flag::it_hides_times ... ok [INFO] [stdout] test commands::yesterday::when_totals_flag::it_shows_tag_time_totals ... ok [INFO] [stdout] test commands::yesterday::when_section_flag::it_limits_with_short_flag ... ok [INFO] [stdout] test commands::yesterday::when_section_flag::it_limits_to_section ... ok [INFO] [stdout] test commands::yesterday::when_before_flag::it_filters_entries_before_time ... ok [INFO] [stdout] test commands::yesterday::when_tag_order_flag::it_orders_tags ... ok [INFO] [stdout] test commands::yesterday::when_tag_order_flag::it_orders_tags_descending ... ok [INFO] [stdout] test commands::yesterday::when_tag_sort_flag::it_sorts_by_tag ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1035 passed; 0 failed; 8 ignored; 0 measured; 0 filtered out; finished in 23.75s [INFO] [stdout] [INFO] [stderr] Doc-tests doing [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "7775ff099dbbff2a5f3202e9a7a20d9660e69244f773f64ed86ef1637b62fecc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7775ff099dbbff2a5f3202e9a7a20d9660e69244f773f64ed86ef1637b62fecc", kill_on_drop: false }` [INFO] [stdout] 7775ff099dbbff2a5f3202e9a7a20d9660e69244f773f64ed86ef1637b62fecc