[INFO] cloning repository https://github.com/mash-97/mps-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mash-97/mps-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmash-97%2Fmps-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmash-97%2Fmps-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6781fedd50ed675a5b25b29a8045a4ed4c22560a
[INFO] testing mash-97/mps-rs against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmash-97%2Fmps-rs" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mash-97/mps-rs
[INFO] finished tweaking git repo https://github.com/mash-97/mps-rs
[INFO] tweaked toml for git repo https://github.com/mash-97/mps-rs written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mash-97/mps-rs on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mash-97/mps-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.70
[INFO] [stderr]   Downloaded pin-project v1.1.13
[INFO] [stderr]   Downloaded pin-project-internal v1.1.13
[INFO] [stderr]   Downloaded rustyline v14.0.0
[INFO] [stderr]   Downloaded web-sys v0.3.97
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27
[INFO] running `Command { std: "docker" "start" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling nix v0.28.0
[INFO] [stderr]    Compiling nibble_vec v0.1.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling endian-type v0.1.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling radix_trie v0.2.1
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling csv v1.4.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling rustyline v14.0.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling axum-macros v0.4.2
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.14
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling mps-rs v1.8.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling pin-project v1.1.13
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling mps-rs v1.8.2 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 58.58s
[INFO] running `Command { std: "docker" "inspect" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.39s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mps-ca890b41e536671a)
[INFO] [stdout] 
[INFO] [stdout] running 155 tests
[INFO] [stdout] test commands::notify::tests::test_reminder_due_within_window ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_not_due_outside_window ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_one_second_past_window ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_exactly_at_window_boundary ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_before_scheduled_time_within_window ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_not_due_outside_window ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_one_second_past_window_does_not_fire ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_title ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_body_is_trimmed ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_fewer_than_limit_no_truncation ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_truncates_at_max_lines ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_title ... ok
[INFO] [stdout] test date_parse::tests::test_last_week ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_force_resends_even_if_already_done ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_skipped_if_already_sent_today ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_different_ref_not_suppressed ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_skipped_within_cooldown ... ok
[INFO] [stdout] test date_parse::tests::test_today ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_due_within_window ... ok
[INFO] [stdout] test date_parse::tests::test_n_days_ago ... ok
[INFO] [stdout] test date_parse::tests::test_yyyy_mm_dd ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_exactly_at_window_boundary_fires ... ok
[INFO] [stdout] test date_parse::tests::test_yesterday ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_not_sent_yesterday_fires_today ... ok
[INFO] [stdout] test date_parse::tests::test_invalid ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_force_bypasses_cooldown ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_cooldown_expired_fires_again ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_empty ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_and_multiple_tags ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_and_single_tag ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_trimmed ... ok
[INFO] [stdout] test date_parse::tests::test_yyyymmdd ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_only ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_tags_only_no_name ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_with_hyphenated_tag ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_with_spaces_in_value ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_no_name_single_tag ... ok
[INFO] [stdout] test elements::log_elem::tests::test_duration_minutes ... ok
[INFO] [stdout] test elements::log_elem::tests::test_duration_str ... ok
[INFO] [stdout] test elements::log_elem::tests::test_exact_hours ... ok
[INFO] [stdout] test elements::task::tests::test_default_open ... ok
[INFO] [stdout] test elements::log_elem::tests::test_no_times ... ok
[INFO] [stdout] test elements::task::tests::test_empty_args ... ok
[INFO] [stdout] test elements::task::tests::test_done_status ... ok
[INFO] [stdout] test elements::tests::test_split_args_attrs_only ... ok
[INFO] [stdout] test elements::tests::test_element_kind_from_sign ... ok
[INFO] [stdout] test elements::tests::test_split_args_tags_only ... ok
[INFO] [stdout] test elements::tests::test_split_args_empty ... ok
[INFO] [stdout] test elements::tests::test_split_args_at_field ... ok
[INFO] [stdout] test meta::tests::test_mark_task_briefing_sets_today ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_file_added ... ok
[INFO] [stdout] test meta::tests::test_mark_notified_sets_timestamp ... ok
[INFO] [stdout] test elements::tests::test_split_args_mixed ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_file_size_changed ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_valid_when_both_empty ... ok
[INFO] [stdout] test meta::tests::test_meta_local_load_absent_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_valid_when_snapshot_matches ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_load_absent_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_empty_vs_nonempty ... ok
[INFO] [stdout] test meta::tests::test_meta_local_atomic_save_no_tmp_file_left ... ok
[INFO] [stdout] test meta::tests::test_prune_keeps_entries_at_boundary ... ok
[INFO] [stdout] test meta::tests::test_prune_removes_old_entries ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_save_load_roundtrip ... ok
[INFO] [stdout] test meta::tests::test_meta_local_save_load_roundtrip ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_corrupted_json_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_local_corrupted_json_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_atomic_save_no_tmp_file_left ... ok
[INFO] [stdout] test meta::tests::test_was_notified_exactly_at_cooldown_is_fresh ... ok
[INFO] [stdout] test meta::tests::test_was_notified_within_cooldown ... ok
[INFO] [stdout] test meta::tests::test_was_notified_absent_returns_false ... ok
[INFO] [stdout] test meta::tests::test_task_briefing_done_yesterday_is_false ... ok
[INFO] [stdout] test meta::tests::test_task_briefing_done_today_false_by_default ... ok
[INFO] [stdout] test meta::tests::test_save_auto_adds_mps_local_to_gitignore ... ok
[INFO] [stdout] test meta::tests::test_save_does_not_duplicate_gitignore_entry ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_no_truncation_when_at_limit ... ok
[INFO] [stdout] test parser::tests::test_args_captured ... ok
[INFO] [stdout] test ref_resolver::tests::test_nested_inside_mps ... ok
[INFO] [stdout] test parser::tests::test_nested_mps_block ... ok
[INFO] [stdout] test ref_resolver::tests::test_resolve_accepts_both_forms ... ok
[INFO] [stdout] test parser::tests::test_unknown_element ... ok
[INFO] [stdout] test ref_resolver::tests::test_sequential_types ... ok
[INFO] [stdout] test parser::tests::test_empty_file ... ok
[INFO] [stdout] test ref_resolver::tests::test_top_level_task ... ok
[INFO] [stdout] test parser::tests::test_optional_brackets ... ok
[INFO] [stdout] test ref_resolver::tests::test_unknown_element_skipped ... ok
[INFO] [stdout] test parser::tests::test_multiple_elements_sequential_refs ... ok
[INFO] [stdout] test parser::tests::test_single_task ... ok
[INFO] [stdout] test ref_resolver::tests::test_roundtrip ... ok
[INFO] [stdout] test parser::tests::test_parse_real_file ... ok
[INFO] [stdout] test parser::tests::test_deeply_nested ... ok
[INFO] [stdout] test ref_resolver::tests::test_empty_elements ... ok
[INFO] [stdout] test store::tests::test_dedent_all_blank_lines ... ok
[INFO] [stdout] test store::tests::test_dedent_ignores_empty_lines_for_min ... ok
[INFO] [stdout] test store::tests::test_dedent_preserves_relative_indent ... ok
[INFO] [stdout] test store::tests::test_dedent_empty_string ... ok
[INFO] [stdout] test store::tests::test_dedent_strips_common_indent ... ok
[INFO] [stdout] test store::tests::test_dedent_already_clean ... ok
[INFO] [stdout] test meta::tests::test_build_snapshot_empty_dir ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_empty_body ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_basic ... ok
[INFO] [stdout] test store::tests::test_append_then_parse ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_dedents_for_editor ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_tabs_are_preserved_after_dedent ... ok
[INFO] [stdout] test store::tests::test_delete_element_absent_returns_false ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_single_line_no_indent ... ok
[INFO] [stdout] test store::tests::test_files_since ... ok
[INFO] [stdout] test store::tests::test_delete_element_second_of_two_same_type ... ok
[INFO] [stdout] test meta::tests::test_build_snapshot_returns_sorted_mps_files_only ... ok
[INFO] [stdout] test store::tests::test_find_file_absent ... ok
[INFO] [stdout] test store::tests::test_extract_element_body_roundtrip ... ok
[INFO] [stdout] test store::tests::test_find_element_span_absent_returns_none ... ok
[INFO] [stdout] test store::tests::test_find_element_span_nested_does_not_confuse_brace_count ... ok
[INFO] [stdout] test store::tests::test_find_element_span_basic ... ok
[INFO] [stdout] test store::tests::test_find_element_span_second_occurrence ... ok
[INFO] [stdout] test store::tests::test_parse_date_empty ... ok
[INFO] [stdout] test store::tests::test_delete_element_file_still_valid_after ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_second_occurrence ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_nested_braces_in_body ... ok
[INFO] [stdout] test store::tests::test_delete_element_removes_it ... ok
[INFO] [stdout] test store::tests::test_extract_and_replace_preserves_other_elements ... ok
[INFO] [stdout] test store::tests::test_append_creates_file ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_multiline ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_empty_new_body ... ok
[INFO] [stdout] test store::tests::test_replace_element_body_writes_new_text ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_basic ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_second_occurrence_only ... ok
[INFO] [stdout] test time_parse::tests::test_5pm ... ok
[INFO] [stdout] test time_parse::tests::test_am_uppercase ... ok
[INFO] [stdout] test time_parse::tests::test_1159pm ... ok
[INFO] [stdout] test time_parse::tests::test_9am ... ok
[INFO] [stdout] test time_parse::tests::test_12pm_noon ... ok
[INFO] [stdout] test time_parse::tests::test_3pm ... ok
[INFO] [stdout] test time_parse::tests::test_1am ... ok
[INFO] [stdout] test time_parse::tests::test_noon ... ok
[INFO] [stdout] test time_parse::tests::test_midnight ... ok
[INFO] [stdout] test time_parse::tests::test_9_30am ... ok
[INFO] [stdout] test time_parse::tests::test_noon_upper ... ok
[INFO] [stdout] test store::tests::test_find_file_present ... ok
[INFO] [stdout] test time_parse::tests::test_12am_midnight ... ok
[INFO] [stdout] test time_parse::tests::test_3_45pm ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_min ... ok
[INFO] [stdout] test time_parse::tests::test_pm_uppercase ... ok
[INFO] [stdout] test store::tests::test_replace_element_body_same_content_returns_false ... ok
[INFO] [stdout] test time_parse::tests::test_with_spaces ... ok
[INFO] [stdout] test time_parse::tests::test_reject_13pm ... ok
[INFO] [stdout] test store::tests::test_search_by_query ... ok
[INFO] [stdout] test time_parse::tests::test_reject_empty ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bare_num ... ok
[INFO] [stdout] test time_parse::tests::test_24h_0000 ... ok
[INFO] [stdout] test time_parse::tests::test_reject_garbage ... ok
[INFO] [stdout] test time_parse::tests::test_24h_colon ... ok
[INFO] [stdout] test time_parse::tests::test_24h_930 ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_24h_min ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_hour ... ok
[INFO] [stdout] test time_parse::tests::test_reject_trailing_chars ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 155 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mps-226c8e6e7fb70ec3)
[INFO] [stdout] 
[INFO] [stdout] running 165 tests
[INFO] [stdout] test commands::notify::tests::test_briefing_due_within_window ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_exactly_at_window_boundary_fires ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_force_resends_even_if_already_done ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_not_due_outside_window ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_one_second_past_window_does_not_fire ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_not_sent_yesterday_fires_today ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_before_scheduled_time_within_window ... ok
[INFO] [stdout] test commands::notify::tests::test_briefing_skipped_if_already_sent_today ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_body_is_trimmed ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_due_within_window ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_cooldown_expired_fires_again ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_different_ref_not_suppressed ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_exactly_at_window_boundary ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_not_due_outside_window ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_force_bypasses_cooldown ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_title ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_one_second_past_window ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_no_truncation_when_at_limit ... ok
[INFO] [stdout] test commands::notify::tests::test_reminder_skipped_within_cooldown ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_title ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_truncates_at_max_lines ... ok
[INFO] [stdout] test date_parse::tests::test_invalid ... ok
[INFO] [stdout] test date_parse::tests::test_n_days_ago ... ok
[INFO] [stdout] test date_parse::tests::test_last_week ... ok
[INFO] [stdout] test date_parse::tests::test_today ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_empty ... ok
[INFO] [stdout] test date_parse::tests::test_yyyy_mm_dd ... ok
[INFO] [stdout] test date_parse::tests::test_yesterday ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_only ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_and_single_tag ... ok
[INFO] [stdout] test date_parse::tests::test_yyyymmdd ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_trimmed ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_no_name_single_tag ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_and_multiple_tags ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_with_spaces_in_value ... ok
[INFO] [stdout] test elements::log_elem::tests::test_duration_str ... ok
[INFO] [stdout] test elements::log_elem::tests::test_no_times ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_name_with_hyphenated_tag ... ok
[INFO] [stdout] test elements::task::tests::test_done_status ... ok
[INFO] [stdout] test elements::tests::test_element_kind_from_sign ... ok
[INFO] [stdout] test elements::task::tests::test_empty_args ... ok
[INFO] [stdout] test elements::log_elem::tests::test_duration_minutes ... ok
[INFO] [stdout] test elements::task::tests::test_default_open ... ok
[INFO] [stdout] test elements::character::tests::test_parse_args_tags_only_no_name ... ok
[INFO] [stdout] test elements::tests::test_split_args_tags_only ... ok
[INFO] [stdout] test elements::log_elem::tests::test_exact_hours ... ok
[INFO] [stdout] test elements::tests::test_split_args_empty ... ok
[INFO] [stdout] test meta::tests::test_mark_notified_sets_timestamp ... ok
[INFO] [stdout] test elements::tests::test_split_args_at_field ... ok
[INFO] [stdout] test meta::tests::test_mark_task_briefing_sets_today ... ok
[INFO] [stdout] test elements::tests::test_split_args_attrs_only ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_empty_vs_nonempty ... ok
[INFO] [stdout] test elements::tests::test_split_args_mixed ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_file_added ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_invalid_when_file_size_changed ... ok
[INFO] [stdout] test meta::tests::test_prune_keeps_entries_at_boundary ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_valid_when_snapshot_matches ... ok
[INFO] [stdout] test meta::tests::test_meta_cache_valid_when_both_empty ... ok
[INFO] [stdout] test meta::tests::test_task_briefing_done_today_false_by_default ... ok
[INFO] [stdout] test meta::tests::test_prune_removes_old_entries ... ok
[INFO] [stdout] test meta::tests::test_task_briefing_done_yesterday_is_false ... ok
[INFO] [stdout] test meta::tests::test_was_notified_exactly_at_cooldown_is_fresh ... ok
[INFO] [stdout] test meta::tests::test_was_notified_absent_returns_false ... ok
[INFO] [stdout] test meta::tests::test_was_notified_within_cooldown ... ok
[INFO] [stdout] test meta::tests::test_meta_local_load_absent_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_load_absent_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_local_save_load_roundtrip ... ok
[INFO] [stdout] test meta::tests::test_meta_local_corrupted_json_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_save_load_roundtrip ... ok
[INFO] [stdout] test meta::tests::test_meta_local_atomic_save_no_tmp_file_left ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_corrupted_json_returns_default ... ok
[INFO] [stdout] test meta::tests::test_meta_shared_atomic_save_no_tmp_file_left ... ok
[INFO] [stdout] test meta::tests::test_save_does_not_duplicate_gitignore_entry ... ok
[INFO] [stdout] test parser::tests::test_empty_file ... ok
[INFO] [stdout] test parser::tests::test_optional_brackets ... ok
[INFO] [stdout] test parser::tests::test_args_captured ... ok
[INFO] [stdout] test parser::tests::test_single_task ... ok
[INFO] [stdout] test parser::tests::test_unknown_element ... ok
[INFO] [stdout] test ref_resolver::tests::test_empty_elements ... ok
[INFO] [stdout] test parser::tests::test_nested_mps_block ... ok
[INFO] [stdout] test ref_resolver::tests::test_roundtrip ... ok
[INFO] [stdout] test ref_resolver::tests::test_nested_inside_mps ... ok
[INFO] [stdout] test parser::tests::test_deeply_nested ... ok
[INFO] [stdout] test parser::tests::test_multiple_elements_sequential_refs ... ok
[INFO] [stdout] test parser::tests::test_parse_real_file ... ok
[INFO] [stdout] test store::tests::test_dedent_all_blank_lines ... ok
[INFO] [stdout] test store::tests::test_dedent_empty_string ... ok
[INFO] [stdout] test store::tests::test_dedent_already_clean ... ok
[INFO] [stdout] test ref_resolver::tests::test_top_level_task ... ok
[INFO] [stdout] test store::tests::test_dedent_strips_common_indent ... ok
[INFO] [stdout] test ref_resolver::tests::test_unknown_element_skipped ... ok
[INFO] [stdout] test store::tests::test_dedent_preserves_relative_indent ... ok
[INFO] [stdout] test store::tests::test_dedent_ignores_empty_lines_for_min ... ok
[INFO] [stdout] test ref_resolver::tests::test_resolve_accepts_both_forms ... ok
[INFO] [stdout] test ref_resolver::tests::test_sequential_types ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_basic ... ok
[INFO] [stdout] test meta::tests::test_build_snapshot_empty_dir ... ok
[INFO] [stdout] test store::tests::test_append_creates_file ... ok
[INFO] [stdout] test meta::tests::test_build_snapshot_returns_sorted_mps_files_only ... ok
[INFO] [stdout] test store::tests::test_append_then_parse ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_tabs_are_preserved_after_dedent ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_dedents_for_editor ... ok
[INFO] [stdout] test store::tests::test_delete_element_second_of_two_same_type ... ok
[INFO] [stdout] test commands::notify::tests::test_tasks_body_fewer_than_limit_no_truncation ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_single_line_no_indent ... ok
[INFO] [stdout] test store::tests::test_extract_element_body_roundtrip ... ok
[INFO] [stdout] test store::tests::test_delete_element_absent_returns_false ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_second_occurrence ... ok
[INFO] [stdout] test store::tests::test_extract_body_text_empty_body ... ok
[INFO] [stdout] test store::tests::test_find_element_span_basic ... ok
[INFO] [stdout] test store::tests::test_find_element_span_nested_does_not_confuse_brace_count ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_basic ... ok
[INFO] [stdout] test store::tests::test_parse_date_empty ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_nested_braces_in_body ... ok
[INFO] [stdout] test store::tests::test_find_file_absent ... ok
[INFO] [stdout] test store::tests::test_delete_element_removes_it ... ok
[INFO] [stdout] test meta::tests::test_save_auto_adds_mps_local_to_gitignore ... ok
[INFO] [stdout] test store::tests::test_find_element_span_absent_returns_none ... ok
[INFO] [stdout] test store::tests::test_delete_element_file_still_valid_after ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_second_occurrence_only ... ok
[INFO] [stdout] test store::tests::test_extract_and_replace_preserves_other_elements ... ok
[INFO] [stdout] test store::tests::test_files_since ... ok
[INFO] [stdout] test store::tests::test_find_file_present ... ok
[INFO] [stdout] test store::tests::test_find_element_span_second_occurrence ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_empty_new_body ... ok
[INFO] [stdout] test tests::test_extract_config_path_arg_equals_form ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_skips_boolean_flag ... ok
[INFO] [stdout] test tests::test_extract_config_path_arg_absent ... ok
[INFO] [stdout] test tests::test_extract_config_path_arg_present ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_skips_config_path_flag ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_basic ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_symbol_like ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_case_insensitive ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_no_match_unchanged ... ok
[INFO] [stdout] test store::tests::test_search_by_query ... ok
[INFO] [stdout] test store::tests::test_replace_body_text_multiline ... ok
[INFO] [stdout] test tests::test_resolve_command_alias_empty_map ... ok
[INFO] [stdout] test time_parse::tests::test_midnight ... ok
[INFO] [stdout] test store::tests::test_replace_element_body_same_content_returns_false ... ok
[INFO] [stdout] test time_parse::tests::test_noon ... ok
[INFO] [stdout] test time_parse::tests::test_noon_upper ... ok
[INFO] [stdout] test store::tests::test_replace_element_body_writes_new_text ... ok
[INFO] [stdout] test time_parse::tests::test_3pm ... ok
[INFO] [stdout] test time_parse::tests::test_3_45pm ... ok
[INFO] [stdout] test time_parse::tests::test_5pm ... ok
[INFO] [stdout] test time_parse::tests::test_reject_13pm ... ok
[INFO] [stdout] test time_parse::tests::test_9_30am ... ok
[INFO] [stdout] test time_parse::tests::test_1am ... ok
[INFO] [stdout] test time_parse::tests::test_12am_midnight ... ok
[INFO] [stdout] test time_parse::tests::test_12pm_noon ... ok
[INFO] [stdout] test time_parse::tests::test_9am ... ok
[INFO] [stdout] test time_parse::tests::test_am_uppercase ... ok
[INFO] [stdout] test time_parse::tests::test_pm_uppercase ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_min ... ok
[INFO] [stdout] test time_parse::tests::test_1159pm ... ok
[INFO] [stdout] test time_parse::tests::test_with_spaces ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bare_num ... ok
[INFO] [stdout] test time_parse::tests::test_reject_empty ... ok
[INFO] [stdout] test time_parse::tests::test_reject_garbage ... ok
[INFO] [stdout] test time_parse::tests::test_24h_colon ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_24h_min ... ok
[INFO] [stdout] test time_parse::tests::test_24h_0000 ... ok
[INFO] [stdout] test time_parse::tests::test_reject_bad_hour ... ok
[INFO] [stdout] test time_parse::tests::test_24h_930 ... ok
[INFO] [stdout] test time_parse::tests::test_reject_trailing_chars ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 165 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/chat_context_test.rs (/opt/rustwide/target/debug/deps/chat_context_test-d31d33149fcf2f5c)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test test_context_build_empty_store ... ok
[INFO] [stdout] test test_context_days_filter ... ok
[INFO] [stdout] test test_context_build_with_elements ... ok
[INFO] [stdout] test test_context_all_element_types ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running tests/chat_edge_cases_test.rs (/opt/rustwide/target/debug/deps/chat_edge_cases_test-594eb9a4df406d16)
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 49 tests
[INFO] [stdout] test test_context_days_seven_loads_week ... ok
[INFO] [stdout] test test_context_days_zero_clamps_to_today ... ok
[INFO] [stdout] test test_config_merge_meta_partial_overwrite ... ok
[INFO] [stdout] test test_context_days_one_loads_only_today ... ok
[INFO] [stdout] test test_config_merge_meta_none_fields_dont_overwrite ... ok
[INFO] [stdout] test test_context_prompt_contains_mps_data_header ... ok
[INFO] [stdout] test test_context_empty_store_has_no_entries_message ... ok
[INFO] [stdout] test test_context_since_after_today_returns_empty ... ok
[INFO] [stdout] test test_session_clear_then_refill ... ok
[INFO] [stdout] test test_session_list_ignores_corrupt_json_files ... ok
[INFO] [stdout] test test_session_list_ignores_non_json_files ... ok
[INFO] [stdout] test test_context_future_files_excluded ... ok
[INFO] [stdout] test test_session_list_nonexistent_dir_returns_empty ... ok
[INFO] [stdout] test test_context_three_files_two_days ... ok
[INFO] [stdout] test test_context_skips_mps_group ... ok
[INFO] [stdout] test test_context_two_files_same_day_single_header ... ok
[INFO] [stdout] test test_context_skips_unknown_elements ... ok
[INFO] [stdout] test test_context_unicode_body ... ok
[INFO] [stdout] test test_session_no_tmp_files_after_save ... ok
[INFO] [stdout] test test_context_prompt_contains_today_date ... ok
[INFO] [stdout] test test_context_reminder_with_at ... ok
[INFO] [stdout] test test_context_task_with_tags_and_status ... ok
[INFO] [stdout] test test_context_large_number_of_elements ... ok
[INFO] [stdout] test test_session_load_missing_file_returns_error ... ok
[INFO] [stdout] test test_session_load_corrupt_json_returns_error ... ok
[INFO] [stdout] test test_session_push_pop_preserves_order ... ok
[INFO] [stdout] test test_session_unicode_content_roundtrip ... ok
[INFO] [stdout] test test_sse_delta_newline_token ... ok
[INFO] [stdout] test test_session_save_rejects_traversal_name ... ok
[INFO] [stdout] test test_sse_delta_no_choices ... ok
[INFO] [stdout] test test_sse_delta_null_content ... ok
[INFO] [stdout] test test_sse_delta_unicode_token ... ok
[INFO] [stdout] test test_sse_delta_whitespace_token ... ok
[INFO] [stdout] test test_validate_name_backslash ... ok
[INFO] [stdout] test test_session_repeated_saves_no_extra_files ... ok
[INFO] [stdout] test test_validate_name_dot_dot ... ok
[INFO] [stdout] test test_validate_name_empty ... ok
[INFO] [stdout] test test_validate_name_path_traversal ... ok
[INFO] [stdout] test test_validate_name_spaces ... ok
[INFO] [stdout] test test_validate_name_special_chars ... ok
[INFO] [stdout] test test_validate_name_valid ... ok
[INFO] [stdout] test test_session_load_rejects_traversal_name ... ok
[INFO] [stdout] test test_context_since_equals_today ... ok
[INFO] [stdout] test test_context_malformed_file_skipped ... ok
[INFO] [stdout] test test_context_character_with_name ... ok
[INFO] [stderr]      Running tests/chat_llm_test.rs (/opt/rustwide/target/debug/deps/chat_llm_test-2ac62d5b2350d8d5)
[INFO] [stdout] test test_sse_stream_multiple_tokens_per_chunk ... ok
[INFO] [stdout] test test_llm_client_no_auth_header_when_empty_key ... ok
[INFO] [stdout] test test_sse_stream_split_across_chunks ... ok
[INFO] [stdout] test test_llm_client_sends_auth_header ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 49 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_message_roles ... ok
[INFO] [stdout] test test_chat_config_merge_meta_api_key_untouched ... ok
[INFO] [stdout] test test_sse_chunk_parse_empty_delta ... ok
[INFO] [stdout] test test_sse_chunk_parse_with_content ... ok
[INFO] [stdout] test test_chat_config_merge_meta_url ... ok
[INFO] [stdout] test test_sse_chunk_parse_invalid_json ... ok
[INFO] [stderr]      Running tests/chat_ollama_test.rs (/opt/rustwide/target/debug/deps/chat_ollama_test-991443f6e7b6331b)
[INFO] [stdout] test test_llm_client_no_trailing_slash_preserved ... ok
[INFO] [stdout] test test_llm_client_url_construction ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test test_ollama_session_updated_at_advances_per_response ... ok
[INFO] [stdout] test test_ollama_basic_streaming_response ... ok
[INFO] [stdout] test test_ollama_with_unused_api_key_still_works ... ok
[INFO] [stdout] test test_ollama_session_save_and_resume ... ok
[INFO] [stdout] test test_ollama_auto_detect ... ok
[INFO] [stdout] test test_ollama_stream_completes_without_error ... ok
[INFO] [stdout] test test_ollama_multi_turn_context_retained ... ok
[INFO] [stdout] test test_ollama_stream_yields_tokens ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/chat_session_test.rs (/opt/rustwide/target/debug/deps/chat_session_test-f4ca00ef6401b90f)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test test_session_to_messages_strips_ts ... ok
[INFO] [stdout] test test_session_auto_create_dir ... ok
[INFO] [stdout] test test_session_save_load_roundtrip ... ok
[INFO] [stdout] test test_session_llm_hint_informational ... ok
[INFO] [stdout] test test_session_updated_at_advances ... ok
[INFO] [stdout] test test_session_list_sorted_by_updated_at ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/chat_smoke_test.rs (/opt/rustwide/target/debug/deps/chat_smoke_test-31f0c881de20a4b7)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test test_chat_stream_against_mock_server ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/edge_cases_test.rs (/opt/rustwide/target/debug/deps/edge_cases_test-b9aa7ca7b61ef17d)
[INFO] [stdout] 
[INFO] [stdout] running 362 tests
[INFO] [stdout] test test_all_elements_have_consistent_kind_and_sign ... ok
[INFO] [stdout] test test_all_files_returns_sorted_by_filename ... ok
[INFO] [stdout] test test_all_file_dates_deduplicates_same_date_multiple_files ... ok
[INFO] [stdout] test test_append_reminder_with_at_time ... ok
[INFO] [stdout] test test_all_file_dates_no_duplicates ... ok
[INFO] [stdout] test test_all_file_dates_sorted_ascending ... ok
[INFO] [stdout] test test_append_body_with_only_whitespace ... ok
[INFO] [stdout] test test_all_element_types_round_trip_with_all_ascii_body ... ok
[INFO] [stdout] test test_all_file_dates_epoch_less_file_at_correct_position ... ok
[INFO] [stdout] test test_append_log_with_times_duration_calculated ... ok
[INFO] [stdout] test test_at_in_body_body_preserved ... ok
[INFO] [stdout] test test_append_multiple_elements_ref_counters ... ok
[INFO] [stdout] test test_alternating_writes_to_two_dates_both_correct ... ok
[INFO] [stdout] test test_all_file_dates_is_sorted ... ok
[INFO] [stdout] test test_at_in_body_url_not_parsed_as_element ... ok
[INFO] [stdout] test test_append_persists_across_store_instances ... ok
[INFO] [stdout] test test_at_in_body_without_brace_not_parsed ... ok
[INFO] [stdout] test test_character_kind_is_character ... ok
[INFO] [stdout] test test_character_name_with_apostrophe ... ok
[INFO] [stdout] test test_character_name_with_comma_inside_quotes_parsed_as_tag ... ok
[INFO] [stdout] test test_character_parser_bare_braces_no_args ... ok
[INFO] [stdout] test test_character_parser_name_and_tags ... ok
[INFO] [stdout] test test_at_sign_in_body_not_parsed_as_element ... ok
[INFO] [stdout] test test_character_parser_name_with_spaces_preserved ... ok
[INFO] [stdout] test test_body_with_backslash_and_quotes_preserved ... ok
[INFO] [stdout] test test_character_is_not_is_mps_group ... ok
[INFO] [stdout] test test_character_stats_counting ... ok
[INFO] [stdout] test test_character_parser_tags_only_no_name ... ok
[INFO] [stdout] test test_character_parser_produces_character_kind ... ok
[INFO] [stdout] test test_character_not_parsed_as_unknown ... ok
[INFO] [stdout] test test_complex_nested_all_elements_parsed ... ok
[INFO] [stdout] test test_bare_top_level_note_gets_note_counter ... ok
[INFO] [stdout] test test_alternating_delete_from_two_dates ... ok
[INFO] [stdout] test test_body_str_never_includes_wrapper_braces ... ok
[INFO] [stdout] test test_config_load_nonexistent_returns_error ... ok
[INFO] [stdout] test test_complex_nested_log_full_day ... ok
[INFO] [stdout] test test_complex_nested_ref_resolver_3_levels ... ok
[INFO] [stdout] test test_config_init_is_idempotent ... ok
[INFO] [stdout] test test_date_parse_rejects_empty_string ... ok
[INFO] [stdout] test test_append_task_then_parse_and_update ... ok
[INFO] [stdout] test test_character_append_roundtrip_name_and_tags ... ok
[INFO] [stdout] test test_character_rewrite_name_attr ... ok
[INFO] [stdout] test test_character_rewrite_roundtrip_preserves_body ... ok
[INFO] [stdout] test test_date_parse_absolute_formats_accepted ... ok
[INFO] [stdout] test test_complex_nested_top_level_elements ... ok
[INFO] [stdout] test test_config_init_creates_file_with_defaults ... ok
[INFO] [stdout] test test_config_ensure_dirs_creates_directories ... ok
[INFO] [stdout] test test_date_parse_rejects_garbage_string ... ok
[INFO] [stdout] test test_deep_nesting_4_levels_parsed ... ok
[INFO] [stdout] test test_deep_nesting_5_levels ... ok
[INFO] [stdout] test test_complex_nested_rewrite_nested_task_by_human_ref ... ok
[INFO] [stdout] test test_delete_second_of_two_elements_first_survives ... ok
[INFO] [stdout] test test_dollar_in_body_does_not_break_parsing ... ok
[INFO] [stdout] test test_delete_nonexistent_human_ref_returns_false ... ok
[INFO] [stdout] test test_deep_nesting_top_level_tasks ... ok
[INFO] [stdout] test test_deeply_nested_refs_resolve_correctly ... ok
[INFO] [stdout] test test_deep_nesting_ref_resolver_5_levels ... ok
[INFO] [stdout] test test_delete_nonexistent_epoch_ref_returns_false ... ok
[INFO] [stdout] test test_deep_nesting_ref_resolver_4_levels ... ok
[INFO] [stdout] test test_character_append_roundtrip_no_name ... ok
[INFO] [stdout] test test_delete_first_of_two_leaves_second ... ok
[INFO] [stdout] test test_delete_only_element_leaves_no_real_elements ... ok
[INFO] [stdout] test test_delete_persists_across_store_instances ... ok
[INFO] [stdout] test test_duplicate_raw_args_ref_resolver_assigns_unique_refs ... ok
[INFO] [stdout] test test_duplicate_raw_args_file_parses_all_tasks ... ok
[INFO] [stdout] test test_element_character_body_str ... ok
[INFO] [stdout] test test_duplicate_tags_stored_as_duplicates ... ok
[INFO] [stdout] test test_element_character_tags_accessible ... ok
[INFO] [stdout] test test_element_character_typed_attrs_with_name ... ok
[INFO] [stdout] test test_element_character_typed_attrs_without_name ... ok
[INFO] [stdout] test test_element_extra_character_with_name ... ok
[INFO] [stdout] test test_element_extra_character_without_name ... ok
[INFO] [stdout] test test_element_from_parts_character_not_unknown ... ok
[INFO] [stdout] test test_element_from_parts_roundtrip_all_types ... ok
[INFO] [stdout] test test_element_kind_all_known_signs_round_trip ... ok
[INFO] [stdout] test test_element_kind_character_display ... ok
[INFO] [stdout] test test_element_kind_unknown_sign_maps_to_unknown ... ok
[INFO] [stdout] test test_element_with_twenty_tags_roundtrips_all ... ok
[INFO] [stdout] test test_empty_body_body_str_is_empty_or_whitespace ... ok
[INFO] [stdout] test test_empty_body_log_has_duration ... ok
[INFO] [stdout] test test_empty_body_note_has_no_tags ... ok
[INFO] [stdout] test test_empty_body_task_is_parsed ... ok
[INFO] [stdout] test test_empty_bracket_task_raw_args_is_empty ... ok
[INFO] [stdout] test test_empty_body_reminder_at_noon ... ok
[INFO] [stdout] test test_empty_store_all_file_dates_returns_empty ... ok
[INFO] [stdout] test test_empty_store_all_files_returns_empty ... ok
[INFO] [stdout] test test_empty_store_delete_returns_false ... ok
[INFO] [stdout] test test_empty_store_files_since_returns_empty ... ok
[INFO] [stdout] test test_empty_store_parse_date_returns_empty ... ok
[INFO] [stdout] test test_empty_store_search_returns_empty ... ok
[INFO] [stdout] test test_export_excludes_unknown_elements ... ok
[INFO] [stdout] test test_export_includes_all_element_types ... ok
[INFO] [stdout] test test_epoch_less_file_date_in_all_file_dates ... ok
[INFO] [stdout] test test_epoch_less_file_found_by_find_file ... ok
[INFO] [stdout] test test_epoch_less_file_parses_elements ... ok
[INFO] [stdout] test test_export_character_kind_field ... ok
[INFO] [stdout] test test_extract_body_on_nonexistent_ref_returns_none ... ok
[INFO] [stdout] test test_files_since_date_matching_exactly_includes_that_date ... ok
[INFO] [stdout] test test_files_since_future_date_returns_empty ... ok
[INFO] [stdout] test test_extract_body_unicode_preserved ... ok
[INFO] [stdout] test test_epoch_less_file_parse_date ... ok
[INFO] [stdout] test test_fifty_appends_mixed_types ... ok
[INFO] [stdout] test test_epoch_less_file_included_in_all_files ... ok
[INFO] [stdout] test test_files_since_filters_correctly_multiple_dates ... ok
[INFO] [stdout] test test_double_rewrite_idempotent ... ok
[INFO] [stdout] test test_export_csv_character_row_has_name_field ... ok
[INFO] [stdout] test test_find_file_returns_none_when_no_file_for_date ... ok
[INFO] [stdout] test test_fifty_appends_all_parseable ... ok
[INFO] [stdout] test test_files_since_one_day_after_only_file_returns_empty ... ok
[INFO] [stdout] test test_files_since_with_exact_same_files_all_return ... ok
[INFO] [stdout] test test_find_file_picks_up_manually_created_file ... ok
[INFO] [stdout] test test_files_since_epoch_less_file_included ... ok
[INFO] [stdout] test test_find_file_returns_path_after_append ... ok
[INFO] [stdout] test test_hyphen_tag_in_reminder ... ok
[INFO] [stdout] test test_hyphen_tag_in_log ... ok
[INFO] [stdout] test test_files_since_excludes_before_boundary ... ok
[INFO] [stdout] test test_find_or_create_path_creates_dir_entry ... ok
[INFO] [stdout] test test_is_unknown_only_for_unknown_elements ... ok
[INFO] [stdout] test test_log_no_times_no_duration ... ok
[INFO] [stdout] test test_files_since_includes_new_edge_case_dates ... ok
[INFO] [stdout] test test_hyphen_tags_parsed_correctly ... ok
[INFO] [stdout] test test_full_workflow_cache_invalidated_by_mutation ... ok
[INFO] [stdout] test test_export_log_typed_attrs_start_end ... ok
[INFO] [stdout] test test_log_near_full_day_duration ... ok
[INFO] [stdout] test test_log_only_start_no_duration ... ok
[INFO] [stdout] test test_files_since_includes_exact_boundary_date ... ok
[INFO] [stdout] test test_log_only_end_no_duration ... ok
[INFO] [stdout] test test_log_without_times_has_none_fields ... ok
[INFO] [stdout] test test_many_same_type_3_notes ... ok
[INFO] [stdout] test test_log_zero_duration ... ok
[INFO] [stdout] test test_many_same_type_5_tasks ... ok
[INFO] [stdout] test test_log_start_and_end_fields_parsed ... ok
[INFO] [stdout] test test_log_45_minutes ... ok
[INFO] [stdout] test test_full_workflow_ref_roundtrip_survives_rewrite ... ok
[INFO] [stdout] test test_meta_local_briefing_done_yesterday_returns_false ... ok
[INFO] [stdout] test test_log_rewrite_start_and_end ... ok
[INFO] [stdout] test test_meta_local_load_absent_does_not_create_file ... ok
[INFO] [stdout] test test_fifty_appends_with_tags_and_attrs ... ok
[INFO] [stdout] test test_meta_local_mark_notified_overwrites ... ok
[INFO] [stdout] test test_meta_local_corrupted_json_returns_default ... ok
[INFO] [stdout] test test_meta_local_mark_and_check_briefing_today ... ok
[INFO] [stdout] test test_meta_local_prune_empty_map_no_panic ... ok
[INFO] [stdout] test test_meta_local_prune_all_entries_removed ... ok
[INFO] [stdout] test test_meta_local_prune_keeps_exact_cutoff_entries ... ok
[INFO] [stdout] test test_meta_local_empty_json_object_returns_default ... ok
[INFO] [stdout] test test_meta_local_prune_removes_old_entries ... ok
[INFO] [stdout] test test_hyphen_tags_in_store_search ... ok
[INFO] [stdout] test test_many_same_type_ref_resolver_counters ... ok
[INFO] [stdout] test test_meta_local_save_creates_gitignore_entry ... ok
[INFO] [stdout] test test_meta_local_save_gitignore_idempotent ... ok
[INFO] [stdout] test test_meta_local_truncated_json_returns_default ... ok
[INFO] [stdout] test test_meta_local_save_load_roundtrip_with_notified ... ok
[INFO] [stdout] test test_full_workflow_append_search_rewrite_delete ... ok
[INFO] [stdout] test test_meta_local_was_notified_absent_returns_false ... ok
[INFO] [stdout] test test_meta_local_was_notified_within_cooldown ... ok
[INFO] [stdout] test test_meta_local_was_notified_expired_cooldown ... ok
[INFO] [stdout] test test_meta_local_was_notified_with_zero_cooldown ... ok
[INFO] [stdout] test test_meta_shared_corrupted_json_returns_default ... ok
[INFO] [stdout] test test_meta_shared_load_absent_is_default ... ok
[INFO] [stdout] test test_many_same_type_done_count ... ok
[INFO] [stdout] test test_meta_shared_empty_json_returns_default ... ok
[INFO] [stdout] test test_meta_shared_save_load_full_roundtrip ... ok
[INFO] [stdout] test test_meta_shared_version_does_not_regress ... ok
[INFO] [stdout] test test_metacache_invalidated_after_file_mutation ... ok
[INFO] [stdout] test test_metacache_empty_dir_snapshot_is_empty ... ok
[INFO] [stdout] test test_metacache_snapshot_excludes_non_mps_files ... ok
[INFO] [stdout] test test_metacache_invalidated_after_new_file ... ok
[INFO] [stdout] test test_metacache_save_load_roundtrip ... ok
[INFO] [stdout] test test_meta_local_task_briefing_done_today_false_initially ... ok
[INFO] [stdout] test test_metacache_snapshot_includes_mps_files ... ok
[INFO] [stdout] test test_metacache_is_valid_empty_vs_empty ... ok
[INFO] [stdout] test test_mixed_status_explicit_done_task ... ok
[INFO] [stdout] test test_mixed_status_bare_task_is_open ... ok
[INFO] [stdout] test test_mixed_status_log_30_minutes ... ok
[INFO] [stdout] test test_mixed_status_ref_resolver_task_with_only_attr ... ok
[INFO] [stdout] test test_mixed_status_reminder_at_8am ... ok
[INFO] [stdout] test test_name_filter_excludes_nameless_character ... ok
[INFO] [stdout] test test_metacache_tag_counts_not_affected_by_local_file ... ok
[INFO] [stdout] test test_mixed_status_file_all_types_present ... ok
[INFO] [stdout] test test_name_filter_case_insensitive ... ok
[INFO] [stdout] test test_name_filter_excludes_task ... ok
[INFO] [stdout] test test_multiple_files_same_date_parse_date_uses_first ... ok
[INFO] [stdout] test test_multiple_files_same_date_find_files_returns_both ... ok
[INFO] [stdout] test test_multiple_files_same_date_all_files_includes_both ... ok
[INFO] [stdout] test test_name_filter_matches_character ... ok
[INFO] [stdout] test test_nested_notes_do_not_inflate_note_counter ... ok
[INFO] [stdout] test test_multiple_appends_persist_across_store_instances ... ok
[INFO] [stdout] test test_parse_crlf_task_body_preserved ... ok
[INFO] [stdout] test test_parse_crlf_multiple_elements ... ok
[INFO] [stdout] test test_parse_date_nonexistent_date_returns_empty ... ok
[INFO] [stdout] test test_non_mps_files_ignored_by_all_files ... ok
[INFO] [stdout] test test_note_in_task_resolver ... ok
[INFO] [stdout] test test_parse_str_element_body_with_at_sign_in_content ... ok
[INFO] [stdout] test test_parse_str_element_with_empty_brackets ... ok
[INFO] [stdout] test test_note_in_task_ref_path ... ok
[INFO] [stdout] test test_parse_empty_file_does_not_crash ... ok
[INFO] [stdout] test test_parse_str_body_with_newlines_preserved ... ok
[INFO] [stdout] test test_parse_str_element_with_no_brackets_at_all ... ok
[INFO] [stdout] test test_nested_task_body_extracted_correctly ... ok
[INFO] [stdout] test test_parse_str_no_mps_wrapper_yields_no_elements ... ok
[INFO] [stdout] test test_parse_str_mixed_types_correct_counts ... ok
[INFO] [stdout] test test_parse_str_nested_braces_in_body_do_not_crash ... ok
[INFO] [stdout] test test_parse_str_many_tags_does_not_panic ... ok
[INFO] [stdout] test test_parse_crlf_reminder_at_attribute ... ok
[INFO] [stdout] test test_parse_crlf_tags_parsed_correctly ... ok
[INFO] [stdout] test test_parse_str_bom_prefix_does_not_crash ... ok
[INFO] [stdout] test test_append_hundred_files_on_distinct_dates ... ok
[INFO] [stdout] test test_parse_str_unknown_sign_creates_unknown_element ... ok
[INFO] [stdout] test test_parse_str_unclosed_brace_does_not_crash ... ok
[INFO] [stdout] test test_parse_three_levels_does_not_panic ... ok
[INFO] [stdout] test test_ref_resolver_epoch_ref_with_only_date_is_none ... ok
[INFO] [stdout] test test_ref_resolver_empty_map_no_panic ... ok
[INFO] [stdout] test test_ref_resolver_epoch_with_no_matching_date ... ok
[INFO] [stdout] test test_parse_whitespace_only_file_does_not_crash ... ok
[INFO] [stdout] test test_ref_resolver_invalid_human_ref_format ... ok
[INFO] [stdout] test test_parser_body_with_regex_metacharacters ... ok
[INFO] [stdout] test test_multiple_files_same_date_find_file_returns_first ... ok
[INFO] [stdout] test test_parse_str_ten_elements_in_sequence ... ok
[INFO] [stdout] test test_ref_resolver_epoch_less_file_roundtrip ... ok
[INFO] [stdout] test test_ref_resolver_large_number_of_tasks_all_resolve ... ok
[INFO] [stdout] test test_ref_resolver_mps_group_gets_mps_counter ... ok
[INFO] [stdout] test test_ref_resolver_task_zero_is_invalid ... ok
[INFO] [stdout] test test_ref_resolver_task_1000_resolves_only_if_1000_tasks_exist ... ok
[INFO] [stdout] test test_reminder_at_various_time_formats ... ok
[INFO] [stdout] test test_ref_resolver_counter_per_type_independent ... ok
[INFO] [stdout] test test_ref_resolver_character_gets_own_counter ... ok
[INFO] [stdout] test test_ref_resolver_non_numeric_suffix_is_none ... ok
[INFO] [stdout] test test_reminder_with_tags_and_at ... ok
[INFO] [stdout] test test_ref_resolver_only_unknown_elements ... ok
[INFO] [stdout] test test_replace_body_on_nonexistent_ref_returns_false ... ok
[INFO] [stdout] test test_reminder_without_at_has_none ... ok
[INFO] [stdout] test test_ref_resolver_to_epoch_roundtrip_for_character ... ok
[INFO] [stdout] test test_rewrite_element_tag_with_regex_metacharacters_in_args ... ok
[INFO] [stdout] test test_multiple_files_same_date_all_file_dates_deduplicates ... ok
[INFO] [stdout] test test_rewrite_element_body_with_regex_metacharacters ... ok
[INFO] [stdout] test test_rewrite_adds_new_attribute_to_reminder ... ok
[INFO] [stdout] test test_rewrite_element_with_dollar_in_body ... ok
[INFO] [stdout] test test_rewrite_empty_body_task_to_done ... ok
[INFO] [stdout] test test_rewrite_log_add_start_time ... ok
[INFO] [stdout] test test_rewrite_fourth_of_four_same_args_tasks ... ok
[INFO] [stdout] test test_rewrite_on_wrong_date_returns_false ... ok
[INFO] [stdout] test test_rewrite_nonexistent_human_ref_returns_false ... ok
[INFO] [stdout] test test_replace_body_multiline ... ok
[INFO] [stdout] test test_rewrite_nonexistent_epoch_ref_returns_false ... ok
[INFO] [stdout] test test_rewrite_note_adds_arbitrary_attr ... ok
[INFO] [stdout] test test_parse_str_very_large_body_does_not_panic ... ok
[INFO] [stdout] test test_rewrite_persists_across_store_instances ... ok
[INFO] [stdout] test test_search_across_multiple_dates ... ok
[INFO] [stdout] test test_rewrite_preserves_tags_from_original ... ok
[INFO] [stdout] test test_rewrite_reminder_at_time ... ok
[INFO] [stdout] test test_rewrite_preserves_body_content_exactly ... ok
[INFO] [stdout] test test_search_case_insensitive_isolated_store ... ok
[INFO] [stdout] test test_search_empty_query_matches_all_elements ... ok
[INFO] [stdout] test test_rewrite_second_duplicate_raw_args_updates_correct_element ... ok
[INFO] [stdout] test test_replace_body_unicode_roundtrip ... ok
[INFO] [stdout] test test_rewrite_with_empty_attrs_on_note_returns_false ... ok
[INFO] [stdout] test test_search_empty_query_returns_all_known_elements ... ok
[INFO] [stdout] test test_search_no_match_returns_empty ... ok
[INFO] [stdout] test test_search_on_dir_with_only_meta_files_returns_empty ... ok
[INFO] [stdout] test test_rewrite_first_of_duplicate_raw_args ... ok
[INFO] [stdout] test test_ref_resolver_roundtrip_all_new_fixtures ... ok
[INFO] [stdout] test test_search_tag_filter_matches_only_tagged ... ok
[INFO] [stdout] test test_rewrite_same_value_second_call_returns_false ... ok
[INFO] [stdout] test test_search_query_that_is_only_whitespace ... ok
[INFO] [stdout] test test_special_chars_in_body_dont_affect_count ... ok
[INFO] [stdout] test test_search_type_filter_excludes_others ... ok
[INFO] [stdout] test test_search_type_filter_note_only ... ok
[INFO] [stdout] test test_search_type_and_tag_combined ... ok
[INFO] [stdout] test test_split_args_attr_value_with_colon ... ok
[INFO] [stdout] test test_search_special_characters_in_query_treated_as_literal ... ok
[INFO] [stdout] test test_search_since_date_excludes_older_files ... ok
[INFO] [stdout] test test_split_args_empty_segments_ignored ... ok
[INFO] [stdout] test test_split_args_only_whitespace_returns_empty ... ok
[INFO] [stdout] test test_split_args_mixed_attrs_and_many_tags ... ok
[INFO] [stdout] test test_split_args_fifty_tags ... ok
[INFO] [stdout] test test_split_args_single_tag_no_comma ... ok
[INFO] [stdout] test test_split_args_tab_character_in_value ... ok
[INFO] [stdout] test test_split_args_multiple_time_attrs ... ok
[INFO] [stdout] test test_split_args_time_with_seconds ... ok
[INFO] [stdout] test test_sprocket_has_own_raw_args ... ok
[INFO] [stdout] test test_split_args_empty_value_after_colon ... ok
[INFO] [stdout] test test_status_filter_excludes_character ... ok
[INFO] [stdout] test test_split_args_hyphenated_tag ... ok
[INFO] [stdout] test test_split_args_time_with_colon_value ... ok
[INFO] [stdout] test test_split_args_whitespace_around_colon_trimmed ... ok
[INFO] [stdout] test test_split_args_zero_width_space_in_tag_name ... ok
[INFO] [stdout] test test_store_all_files_on_dir_with_only_hidden_files ... ok
[INFO] [stdout] test test_store_append_all_valid_element_types ... ok
[INFO] [stdout] test test_rewrite_sets_status_open_to_done ... ok
[INFO] [stdout] test test_rewrite_status_open_then_done_then_open ... ok
[INFO] [stdout] test test_rewrite_log_update_end_time ... ok
[INFO] [stdout] test test_split_args_duplicate_attr_key_last_wins ... ok
[INFO] [stdout] test test_tag_filter_matches_character ... ok
[INFO] [stdout] test test_tagged_mps_all_ref_paths_present ... ok
[INFO] [stdout] test test_tagged_mps_child_statuses ... ok
[INFO] [stdout] test test_tagged_mps_child_types ... ok
[INFO] [stdout] test test_tagged_mps_children_refs ... ok
[INFO] [stdout] test test_tagged_mps_block_captures_tags ... ok
[INFO] [stdout] test test_tagged_mps_done_task_top_level_ref ... ok
[INFO] [stdout] test test_tagged_mps_done_task_body_contains_note_syntax ... ok
[INFO] [stdout] test test_tagged_mps_block_raw_args ... ok
[INFO] [stdout] test test_store_tag_filter_excludes_unknowns_from_mixed_file ... ok
[INFO] [stdout] test test_tagged_mps_note_has_review_tag ... ok
[INFO] [stdout] test test_tagged_mps_resolver_full_roundtrip ... ok
[INFO] [stdout] test test_tagged_mps_resolver_sprint_block ... ok
[INFO] [stdout] test test_tagged_mps_total_element_count ... ok
[INFO] [stdout] test test_tags_does_not_include_attr_keys ... ok
[INFO] [stdout] test test_tags_order_preserved_after_append ... ok
[INFO] [stdout] test test_tags_returns_empty_for_element_with_only_attrs ... ok
[INFO] [stdout] test test_store_all_file_dates_includes_new_dates ... ok
[INFO] [stdout] test test_tags_status_filter_open_tasks_only ... ok
[INFO] [stdout] test test_task_default_status_is_open ... ok
[INFO] [stdout] test test_task_in_task_dev_task_body_contains_note_syntax ... ok
[INFO] [stdout] test test_tags_type_filter_log_only ... ok
[INFO] [stdout] test test_search_type_filter_log_with_since ... ok
[INFO] [stdout] test test_task_in_task_nested_notes_are_notes ... ok
[INFO] [stdout] test test_task_in_task_inner_tasks_default_open ... ok
[INFO] [stdout] test test_store_stats_empty_body_elements_counted ... ok
[INFO] [stdout] test test_store_all_files_includes_new_fixtures ... ok
[INFO] [stdout] test test_task_in_task_all_ref_paths_present ... ok
[INFO] [stdout] test test_task_in_task_resolver_full_roundtrip ... ok
[INFO] [stdout] test test_task_in_task_outer_task_type_and_status ... ok
[INFO] [stdout] test test_task_in_task_resolver_child_tasks ... ok
[INFO] [stdout] test test_task_in_task_resolver_deep_notes ... ok
[INFO] [stdout] test test_task_in_task_note_count ... ok
[INFO] [stdout] test test_task_in_task_leaf_bodies_are_clean ... ok
[INFO] [stdout] test test_task_in_task_no_logs_or_reminders ... ok
[INFO] [stdout] test test_task_in_task_outer_body_contains_child_syntax ... ok
[INFO] [stdout] test test_task_in_task_resolver_top_level_human_ref ... ok
[INFO] [stdout] test test_store_search_tag_filter_hyphenated ... ok
[INFO] [stdout] test test_task_in_task_task_count ... ok
[INFO] [stdout] test test_store_search_across_all_fixtures_unicode ... ok
[INFO] [stdout] test test_task_in_task_total_element_count ... ok
[INFO] [stdout] test test_task_status_done_and_open_roundtrip ... ok
[INFO] [stdout] test test_type_badge_character_contains_bracket_text ... ok
[INFO] [stdout] test test_type_filter_task_excludes_character ... ok
[INFO] [stdout] test test_task_in_task_rewrite_child_by_human_ref ... ok
[INFO] [stdout] test test_unknown_elements_are_parsed_as_unknown ... ok
[INFO] [stdout] test test_task_in_task_rewrite_deep_child_by_human_ref ... ok
[INFO] [stdout] test test_visible_name_filter_excludes_non_character ... ok
[INFO] [stdout] test test_task_in_task_type_counter_only_counts_toplevel ... ok
[INFO] [stdout] test test_type_filter_character_only ... ok
[INFO] [stdout] test test_unknown_elements_ref_resolver_skips_them ... ok
[INFO] [stdout] test test_unicode_body_preserved ... ok
[INFO] [stdout] test test_visible_status_filter_excludes_non_task ... ok
[INFO] [stdout] test test_whitespace_args_reversed_order ... ok
[INFO] [stdout] test test_unknown_elements_counted_correctly ... ok
[INFO] [stdout] test test_search_case_insensitive ... ok
[INFO] [stdout] test test_whitespace_args_task_tag_trimmed ... ok
[INFO] [stdout] test test_search_no_results_returns_empty_vec ... ok
[INFO] [stdout] test test_unknown_elements_excluded_from_non_root ... ok
[INFO] [stdout] test test_whitespace_args_task_status_trimmed ... ok
[INFO] [stdout] test test_whitespace_log_times_trimmed ... ok
[INFO] [stdout] test test_whitespace_only_args_treated_as_no_args ... ok
[INFO] [stdout] test test_visible_with_type_and_tag_filter_combined ... ok
[INFO] [stdout] test test_search_result_date_str_correct_format ... ok
[INFO] [stdout] test test_store_total_element_counts_across_all_fixtures ... ok
[INFO] [stdout] test test_unknown_elements_excluded_from_store_search ... ok
[INFO] [stdout] test test_task_in_task_rewrite_outer_task_by_human_ref ... ok
[INFO] [stdout] test test_unicode_search ... ok
[INFO] [stdout] test test_fifty_appends_sequential_delete_all ... ok
[INFO] [stdout] test test_100_element_stress_all_operations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 362 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.78s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/import_test.rs (/opt/rustwide/target/debug/deps/import_test-767f5c2e8d2b4d29)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test test_normalise_tag_underscore_to_hyphen ... ok
[INFO] [stdout] test test_import_element_stem_as_first_line ... ok
[INFO] [stdout] test test_import_element_content_in_body ... ok
[INFO] [stdout] test test_import_element_stem_as_tag ... ok
[INFO] [stdout] test test_import_skips_already_imported ... ok
[INFO] [stdout] test test_import_discovers_ms_files ... ok
[INFO] [stdout] test test_import_skips_standard_mps ... ok
[INFO] [stdout] test test_import_move_deletes_originals ... ok
[INFO] [stdout] test test_import_dry_run_no_writes ... ok
[INFO] [stdout] test test_import_yes_renames_originals ... ok
[INFO] [stdout] test test_import_discovers_nonstandard_mps ... ok
[INFO] [stdout] test test_import_groups_same_date_into_one_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/init_config_test.rs (/opt/rustwide/target/debug/deps/init_config_test-9be6113ad27470a0)
[INFO] [stdout] 
[INFO] [stdout] running 47 tests
[INFO] [stdout] test test_check_exit_code_zero_on_success ... ok
[INFO] [stdout] test test_check_no_network_skips_unreachable_url ... ok
[INFO] [stdout] test test_check_invalid_command_alias_exits_nonzero ... ok
[INFO] [stdout] test test_check_all_five_valid_type_aliases_pass ... ok
[INFO] [stdout] test test_check_https_url_with_explicit_port_fails_when_unreachable ... ok
[INFO] [stdout] test test_check_no_type_aliases_shows_none ... ok
[INFO] [stdout] test test_check_https_url_without_explicit_port_fails_when_unreachable ... ok
[INFO] [stdout] test test_check_valid_command_aliases_pass ... ok
[INFO] [stdout] test test_config_init_notify_section_present ... ok
[INFO] [stdout] test test_check_url_with_path_component_fails_when_unreachable ... ok
[INFO] [stdout] test test_check_invalid_type_alias_exits_nonzero ... ok
[INFO] [stdout] test test_config_init_output_confirms_written ... ok
[INFO] [stdout] test test_check_all_pass_valid_config ... ok
[INFO] [stdout] test test_check_type_alias_case_insensitive_validation ... ok
[INFO] [stdout] test test_check_shows_config_path_in_header ... ok
[INFO] [stdout] test test_check_multiple_bad_aliases_counts_all_failures ... ok
[INFO] [stdout] test test_config_init_does_not_bake_meta_values ... ok
[INFO] [stdout] test test_check_mixed_valid_and_invalid_type_aliases ... ok
[INFO] [stdout] test test_check_no_command_aliases_shows_none ... ok
[INFO] [stdout] test test_config_init_writes_chat_subsection_keys ... ok
[INFO] [stdout] test test_config_init_preserves_existing_custom_values ... ok
[INFO] [stdout] test test_init_creates_fresh_config ... ok
[INFO] [stdout] test test_init_blank_chat_url_stores_null ... ok
[INFO] [stdout] test test_config_init_writes_all_top_level_keys ... ok
[INFO] [stdout] test test_config_init_preserves_existing_type_aliases ... ok
[INFO] [stdout] test test_config_init_is_idempotent ... ok
[INFO] [stdout] test test_config_init_serve_section_present ... ok
[INFO] [stdout] test test_init_aborts_when_existing_config_and_no ... ok
[INFO] [stdout] test test_init_creates_dirs ... ok
[INFO] [stdout] test test_init_aborts_on_empty_input_when_config_exists ... ok
[INFO] [stdout] test test_init_custom_chat_model ... ok
[INFO] [stdout] test test_check_no_url_shows_auto_detect_skipped ... ok
[INFO] [stdout] test test_init_no_single_char_does_not_confirm ... ok
[INFO] [stdout] test test_check_and_init_then_check_again_idempotent ... ok
[INFO] [stdout] test test_init_force_flag_skips_confirmation ... ok
[INFO] [stdout] test test_init_custom_git_settings_stored ... ok
[INFO] [stdout] test test_init_default_command_list ... ok
[INFO] [stdout] test test_init_created_config_passes_check ... ok
[INFO] [stdout] test test_init_default_command_open_when_not_list ... ok
[INFO] [stdout] test test_init_overwrites_when_user_confirms ... ok
[INFO] [stdout] test test_init_custom_chat_url ... ok
[INFO] [stdout] test test_check_unreachable_url_fails ... ok
[INFO] [stdout] test test_init_uppercase_y_confirms ... ok
[INFO] [stdout] test test_init_yes_word_also_confirms ... ok
[INFO] [stdout] test test_check_no_network_still_validates_aliases ... ok
[INFO] [stdout] test test_init_output_shows_created_paths ... ok
[INFO] [stdout] test test_init_custom_mps_and_storage_dirs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 47 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.13s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-47912aa38989edd7)
[INFO] [stdout] 
[INFO] [stdout] running 79 tests
[INFO] [stdout] test test_config_defaults_when_fields_absent ... ok
[INFO] [stdout] test test_config_loads_default_command_and_aliases ... ok
[INFO] [stdout] test test_config_loads_command_aliases ... ok
[INFO] [stdout] test test_config_aliases_backward_compat ... ok
[INFO] [stdout] test test_config_loads_ruby_symbol_keys ... ok
[INFO] [stdout] test test_config_loads_type_aliases_new_key ... ok
[INFO] [stdout] test test_config_merge_meta_custom_tags_deduped ... ok
[INFO] [stdout] test test_character_search_type_filter ... ok
[INFO] [stdout] test test_merge_meta_notify_disabled_in_meta_wins ... ok
[INFO] [stdout] test test_bare_file_has_task_note_reminder_log ... ok
[INFO] [stdout] test test_bare_file_task_is_open ... ok
[INFO] [stdout] test test_merge_meta_notify_open_tasks_false_in_meta_wins ... ok
[INFO] [stdout] test test_merge_meta_notify_overdue_days_from_meta ... ok
[INFO] [stdout] test test_merge_meta_open_task_tags_from_meta ... ok
[INFO] [stdout] test test_character_tag_filter ... ok
[INFO] [stdout] test test_config_merge_meta_unions_type_aliases ... ok
[INFO] [stdout] test test_character_append_no_name ... ok
[INFO] [stdout] test test_character_type_filter_excludes_task ... ok
[INFO] [stdout] test test_merge_meta_notify_yaml_window_minutes_survives ... ok
[INFO] [stdout] test test_meta_shared_path_is_in_storage_dir ... ok
[INFO] [stdout] test test_meta_local_path_is_in_storage_dir ... ok
[INFO] [stdout] test test_character_counted_in_store_parse ... ok
[INFO] [stdout] test test_merge_meta_yaml_open_task_tags_not_clobbered_by_empty_meta ... ok
[INFO] [stdout] test test_character_export_name_in_typed_attrs ... ok
[INFO] [stdout] test test_character_name_filter ... ok
[INFO] [stdout] test test_parser_unknown_element_in_search ... ok
[INFO] [stdout] test test_notify_enabled_false_returns_immediately ... ok
[INFO] [stdout] test test_release_done_tasks ... ok
[INFO] [stdout] test test_character_append_and_parse ... ok
[INFO] [stdout] test test_ref_resolver_three_levels_deep ... ok
[INFO] [stdout] test test_ref_resolver_skips_unknown_elements ... ok
[INFO] [stdout] test test_notify_dry_run_no_events_when_no_reminders ... ok
[INFO] [stdout] test test_release_has_open_v11_task ... ok
[INFO] [stdout] test test_ref_resolver_roundtrip_on_all_fixtures ... ok
[INFO] [stdout] test test_notify_open_tasks_tag_filter_excludes_untagged ... ok
[INFO] [stdout] test test_character_search_by_body ... ok
[INFO] [stdout] test test_release_nested_notes_in_retrospective ... ok
[INFO] [stdout] test test_notify_cooldown_uses_task_cooldown_minutes ... ok
[INFO] [stdout] test test_daemon_service_template_has_placeholders ... ok
[INFO] [stdout] test test_config_merge_meta_does_not_clobber_paths ... ok
[INFO] [stdout] test test_release_tags_include_work_and_release ... ok
[INFO] [stdout] test test_rewrite_element_nonexistent_ref_returns_false ... ok
[INFO] [stdout] test test_rust_habit_tasks ... ok
[INFO] [stdout] test test_rust_log_duration_90_minutes ... ok
[INFO] [stdout] test test_rust_open_reading_task_body_contains_rustlings ... ok
[INFO] [stdout] test test_release_total_log_time_360_minutes ... ok
[INFO] [stdout] test test_rust_all_tasks_have_human_refs ... ok
[INFO] [stdout] test test_rust_done_reading_tasks ... ok
[INFO] [stdout] test test_search_empty_query_returns_all_non_mps ... ok
[INFO] [stdout] test test_sprint_done_task_body ... ok
[INFO] [stdout] test test_sprint_log_duration_210_minutes ... ok
[INFO] [stdout] test test_sprint_ref_resolver_top_level ... ok
[INFO] [stdout] test test_sprint_tasks_count ... ok
[INFO] [stdout] test test_date_parse_all_formats ... ok
[INFO] [stdout] test test_sprint_reminder_at_3pm ... ok
[INFO] [stdout] test test_meta_shared_roundtrip_with_all_fields ... ok
[INFO] [stdout] test test_sprint_nested_tagged_tasks ... ok
[INFO] [stdout] test test_store_non_date_filenames_ignored ... ok
[INFO] [stdout] test test_rewrite_element_by_epoch_ref ... ok
[INFO] [stdout] test test_store_epoch_less_filename_included_in_all_files ... ok
[INFO] [stdout] test test_store_epoch_less_filename_found_by_find_file ... ok
[INFO] [stdout] test test_sprint_ref_resolver_nested_refs ... ok
[INFO] [stdout] test test_sprint_open_tasks ... ok
[INFO] [stdout] test test_store_files_since_sprint_date ... ok
[INFO] [stdout] test test_rewrite_element_marks_task_done ... ok
[INFO] [stdout] test test_character_not_excluded_from_search ... ok
[INFO] [stdout] test test_store_all_files_sorted ... ok
[INFO] [stdout] test test_tagged_file_reminder_at_5pm ... ok
[INFO] [stdout] test test_tagged_file_has_nested_task ... ok
[INFO] [stdout] test test_rewrite_element_log_start_end ... ok
[INFO] [stdout] test test_tagged_file_mps_group_has_task_and_note ... ok
[INFO] [stdout] test test_time_parse_used_in_notify_reminder_scan ... ok
[INFO] [stdout] test test_store_all_file_dates_unique_and_sorted ... ok
[INFO] [stdout] test test_tagged_file_task_has_tags ... ok
[INFO] [stdout] test test_rewrite_element_preserves_file_content ... ok
[INFO] [stdout] test test_store_search_excludes_mps_and_unknown ... ok
[INFO] [stdout] test test_store_search_authentication_across_fixtures ... ok
[INFO] [stdout] test test_store_tag_counts_across_fixtures ... ok
[INFO] [stdout] test test_store_search_type_filter_log ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/serve_smoke_test.rs (/opt/rustwide/target/debug/deps/serve_smoke_test-b2335564c461e8a8)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test test_smoke_error_handling ... ok
[INFO] [stdout] test test_smoke_auth_rejection ... ok
[INFO] [stdout] test test_smoke_full_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.56s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/serve_test.rs (/opt/rustwide/target/debug/deps/serve_test-a9817ca604c4f7df)
[INFO] [stdout] 
[INFO] [stdout] running 56 tests
[INFO] [stdout] test test_auth_wrong_token_returns_401 ... ok
[INFO] [stdout] test test_auth_correct_token_returns_200 ... ok
[INFO] [stdout] test test_append_invalid_type_returns_400 ... ok
[INFO] [stdout] test test_append_with_auth_token ... ok
[INFO] [stdout] test test_append_valid_task_returns_201_with_ref ... ok
[INFO] [stdout] test test_delete_element ... ok
[INFO] [stdout] test test_auth_missing_token_returns_401 ... ok
[INFO] [stdout] test test_append_missing_type_returns_422 ... ok
[INFO] [stdout] test test_delete_nonexistent_returns_404 ... ok
[INFO] [stdout] test test_auth_no_token_configured_always_200 ... ok
[INFO] [stdout] test test_append_reminder_with_at ... ok
[INFO] [stdout] test test_health_returns_ok ... ok
[INFO] [stdout] test test_health_no_auth_required ... ok
[INFO] [stdout] test test_export_empty_store_returns_empty_array ... ok
[INFO] [stdout] test test_list_all_flag ... ok
[INFO] [stdout] test test_append_with_tags_and_status ... ok
[INFO] [stdout] test test_export_since_filter ... ok
[INFO] [stdout] test test_get_single_element_by_epoch_ref ... ok
[INFO] [stdout] test test_append_log_with_start_end ... ok
[INFO] [stdout] test test_append_character_with_name ... ok
[INFO] [stdout] test test_list_ref_field_present ... ok
[INFO] [stdout] test test_list_returns_appended_element ... ok
[INFO] [stdout] test test_export_json_returns_array ... ok
[INFO] [stdout] test test_list_empty_store_returns_empty_array ... ok
[INFO] [stdout] test test_export_csv_returns_text ... ok
[INFO] [stdout] test test_append_all_element_types ... ok
[INFO] [stdout] test test_patch_nonexistent_ref_returns_404 ... ok
[INFO] [stdout] test test_get_single_element_not_found ... ok
[INFO] [stdout] test test_list_tag_filter ... ok
[INFO] [stdout] test test_export_type_filter ... ok
[INFO] [stdout] test test_search_no_match_returns_empty ... ok
[INFO] [stdout] test test_full_crud_workflow ... ok
[INFO] [stdout] test test_patch_updates_body ... ok
[INFO] [stdout] test test_search_query_filters ... ok
[INFO] [stdout] test test_patch_no_fields_returns_400 ... ok
[INFO] [stdout] test test_stats_log_duration ... ok
[INFO] [stdout] test test_multiple_elements_multiple_types ... ok
[INFO] [stdout] test test_patch_body_and_status_together ... ok
[INFO] [stdout] test test_patch_only_status_no_body_succeeds ... ok
[INFO] [stdout] test test_tags_all_flag_scans_all_dates ... ok
[INFO] [stdout] test test_stats_empty_store ... ok
[INFO] [stdout] test test_list_type_filter ... ok
[INFO] [stdout] test test_search_case_insensitive ... ok
[INFO] [stdout] test test_tags_empty_store_returns_empty_map ... ok
[INFO] [stdout] test test_search_empty_query_returns_all ... ok
[INFO] [stdout] test test_ui_accessible_without_auth_when_no_token ... ok
[INFO] [stdout] test test_stats_all_flag ... ok
[INFO] [stdout] test test_search_tag_filter ... ok
[INFO] [stdout] test test_stats_done_vs_open ... ok
[INFO] [stdout] test test_tags_returns_frequency_map ... ok
[INFO] [stdout] test test_ui_returns_html ... ok
[INFO] [stdout] test test_patch_marks_task_done ... ok
[INFO] [stdout] test test_tags_type_filter ... ok
[INFO] [stdout] test test_search_type_filter ... ok
[INFO] [stdout] test test_patch_unchanged_body_with_status_succeeds ... ok
[INFO] [stdout] test test_stats_counts_after_appends ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 56 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mps
[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" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27", kill_on_drop: false }`
[INFO] [stdout] 14492c0aa6152eaf5873443d706ced6ba2a2aa49584faf46cfc7ed890d62ae27
