[INFO] cloning repository https://github.com/kfcafe/mana
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kfcafe/mana" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkfcafe%2Fmana", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkfcafe%2Fmana'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2787d3a11d3902e9850d90eacf6b2db6a6ce739d
[INFO] testing kfcafe/mana against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkfcafe%2Fmana" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/kfcafe/mana
[INFO] finished tweaking git repo https://github.com/kfcafe/mana
[INFO] tweaked toml for git repo https://github.com/kfcafe/mana written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/kfcafe/mana on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/kfcafe/mana 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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524
[INFO] running `Command { std: "docker" "start" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", 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" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", 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" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling anstyle-parse v1.0.0
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling serde_yml v0.0.12
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling colorchoice v1.0.5
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling anstyle v1.0.14
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling anstream v1.0.0
[INFO] [stderr]    Compiling libyml v0.0.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling hashlink v0.11.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling strict v0.2.0
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling crokey-proc_macros v1.4.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.6.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling shell-escape v0.1.5
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling lazy-regex v3.6.0
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling crossbeam v0.8.4
[INFO] [stderr]    Compiling fuzzy-matcher v0.3.7
[INFO] [stderr]    Compiling coolor v1.1.0
[INFO] [stderr]    Compiling minimad v0.14.0
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling crokey v1.4.0
[INFO] [stderr]    Compiling dialoguer v0.12.0
[INFO] [stderr]    Compiling sysinfo v0.33.1
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling clap_complete v4.6.3
[INFO] [stderr]    Compiling termimad v0.34.1
[INFO] [stderr]    Compiling project-detect v0.1.2
[INFO] [stderr]    Compiling rusqlite v0.39.0
[INFO] [stderr]    Compiling mana-core v0.3.2 (/opt/rustwide/workdir/crates/mana-core)
[INFO] [stderr]    Compiling mana-pool v0.1.1 (/opt/rustwide/workdir/crates/mana-pool)
[INFO] [stderr]    Compiling mana-cli v0.3.2 (/opt/rustwide/workdir/crates/mana-cli)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 54s
[INFO] running `Command { std: "docker" "inspect" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", 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" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling mana-pool v0.1.1 (/opt/rustwide/workdir/crates/mana-pool)
[INFO] [stderr]    Compiling mana-core v0.3.2 (/opt/rustwide/workdir/crates/mana-core)
[INFO] [stderr]    Compiling mana-cli v0.3.2 (/opt/rustwide/workdir/crates/mana-cli)
[INFO] [stdout] warning: associated function `test` is never used
[INFO] [stdout]   --> crates/mana-cli/src/commands/create/mod.rs:55:19
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl CreateArgs {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 54 |     #[cfg(test)]
[INFO] [stdout] 55 |     pub(crate) fn test(title: impl Into<String>) -> Self {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 19.24s
[INFO] running `Command { std: "docker" "inspect" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", 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" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: associated function `test` is never used
[INFO] [stderr]   --> crates/mana-cli/src/commands/create/mod.rs:55:19
[INFO] [stderr]    |
[INFO] [stderr] 53 | impl CreateArgs {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 54 |     #[cfg(test)]
[INFO] [stderr] 55 |     pub(crate) fn test(title: impl Into<String>) -> Self {
[INFO] [stderr]    |                   ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `mana-cli` (lib test) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mana-544e7896abfc60b6)
[INFO] [stdout] 
[INFO] [stdout] running 699 tests
[INFO] [stdout] test commands::adopt::tests::next_child_number_empty ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_fails_for_missing_parent ... ok
[INFO] [stdout] test commands::adopt::tests::next_child_number_with_existing ... ok
[INFO] [stdout] test commands::agents::tests::agent_entry_roundtrip ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_fails_for_missing_child ... ok
[INFO] [stdout] test commands::adopt::tests::next_child_number_ignores_other_parents ... ok
[INFO] [stdout] test commands::agents::tests::format_elapsed_hours ... ok
[INFO] [stdout] test commands::agents::tests::format_elapsed_seconds ... ok
[INFO] [stdout] test commands::agents::tests::process_alive_returns_false_for_nonexistent ... ok
[INFO] [stdout] test commands::agents::tests::load_agents_empty_file ... ok
[INFO] [stdout] test commands::agents::tests::process_alive_returns_false_for_overflowed_pid ... ok
[INFO] [stdout] test commands::agents::tests::agents_empty_persistence_shows_no_agents ... ok
[INFO] [stdout] test commands::agents::tests::process_alive_returns_true_for_current ... ok
[INFO] [stdout] test commands::agents::tests::truncate_title_exact_length ... ok
[INFO] [stdout] test commands::agents::tests::truncate_title_multibyte_utf8 ... ok
[INFO] [stdout] test commands::agents::tests::truncate_title_long_string ... ok
[INFO] [stdout] test commands::agents::tests::truncate_title_short_string ... ok
[INFO] [stdout] test commands::brief::tests::brief_extracts_current_truth_from_335_style_prose ... ok
[INFO] [stdout] test commands::brief::tests::brief_extracts_scope_sections_from_realistic_prose ... ok
[INFO] [stdout] test commands::brief::tests::brief_collects_descendants_and_recommends_in_progress_first ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_single_unit ... ok
[INFO] [stdout] test commands::brief::tests::brief_json_includes_management_signals ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_rebuilds_index ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_with_existing_children ... ok
[INFO] [stdout] test commands::brief::tests::brief_json_includes_current_truth_summary ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_updates_dependencies ... ok
[INFO] [stdout] test commands::adopt::tests::adopt_multiple_units ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_closed_unit_fails ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_non_open_unit_fails ... ok
[INFO] [stdout] test commands::brief::tests::brief_management_signals_detect_stale_and_closed_concerns ... ok
[INFO] [stdout] test commands::brief::tests::brief_json_includes_scope_summary ... ok
[INFO] [stdout] test commands::claim::tests::claim_starts_attempt ... ok
[INFO] [stdout] test commands::claim::tests::release_marks_attempt_abandoned ... ok
[INFO] [stdout] test commands::brief::tests::brief_next_actions_prioritize_management_signals_and_skip_stale_work ... ok
[INFO] [stdout] test commands::brief::tests::brief_reports_open_dependency_blocks ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_nonexistent_unit_fails ... ok
[INFO] [stdout] test commands::claim::tests::multiple_claims_accumulate_attempts ... ok
[INFO] [stdout] test commands::claim::tests::test_release_nonexistent_unit_fails ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_rebuilds_index ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_unit_without_verify_succeeds_with_warning ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_unit_with_verify_succeeds ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_open_unit ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_without_by ... ok
[INFO] [stdout] test commands::claim::tests::test_claim_unit_with_empty_verify_warns ... ok
[INFO] [stdout] test commands::claim::tests::test_release_claimed_unit ... ok
[INFO] [stdout] test commands::claim::tests::test_release_rebuilds_index ... ok
[INFO] [stdout] test commands::claim::tests::verify_on_claim_passing_verify_rejected ... ok
[INFO] [stdout] test commands::claim::tests::verify_on_claim_force_overrides ... ok
[INFO] [stdout] test commands::claim::tests::verify_on_claim_checkpoint_sha_stored ... ok
[INFO] [stdout] test commands::claim::tests::verify_on_claim_failing_verify_succeeds ... ok
[INFO] [stdout] test commands::claim::tests::verify_on_claim_no_verify_skips_check ... ok
[INFO] [stdout] test commands::close::tests::history_agent_from_env_var ... ok
[INFO] [stdout] test commands::close::tests::history_failure_creates_run_record ... ok
[INFO] [stdout] test commands::close::tests::history_failure_then_success_accumulates ... ok
[INFO] [stdout] test commands::close::tests::history_no_record_when_force_skip ... ok
[INFO] [stdout] test commands::close::tests::history_no_record_without_verify ... ok
[INFO] [stdout] test commands::close::tests::history_has_correct_duration ... ok
[INFO] [stdout] test commands::close::tests::history_records_exit_code ... ok
[INFO] [stdout] test commands::close::tests::history_success_creates_run_record ... ok
[INFO] [stdout] test commands::close::tests::history_multiple_attempts_accumulate ... ok
[INFO] [stdout] test commands::close::tests::max_loops_circuit_breaker_does_not_trigger_below_limit ... ok
[INFO] [stdout] test commands::close::tests::max_loops_counts_across_siblings ... ok
[INFO] [stdout] test commands::close::tests::max_loops_no_duplicate_label ... ok
[INFO] [stdout] test commands::close::tests::max_loops_circuit_breaker_triggers_at_limit ... ok
[INFO] [stdout] test commands::close::tests::max_loops_circuit_breaker_skips_on_fail_retry ... ok
[INFO] [stdout] test commands::close::tests::max_loops_per_unit_overrides_config ... ok
[INFO] [stdout] test commands::close::tests::max_loops_no_config_defaults_to_10 ... ok
[INFO] [stdout] test commands::close::tests::max_loops_standalone_unit_uses_own_max_loops ... ok
[INFO] [stdout] test commands::close::tests::on_close_notify_action_prints_message ... ok
[INFO] [stdout] test commands::close::tests::on_close_run_action_executes_command ... ok
[INFO] [stdout] test commands::close::tests::on_close_run_failure_does_not_prevent_close ... ok
[INFO] [stdout] test commands::close::tests::on_close_run_skipped_without_trust ... ok
[INFO] [stdout] test commands::close::tests::max_loops_zero_disables_circuit_breaker ... ok
[INFO] [stdout] test commands::close::tests::on_close_runs_in_project_root ... ok
[INFO] [stdout] test commands::close::tests::on_fail_escalate_adds_label ... ok
[INFO] [stdout] test commands::close::tests::on_close_multiple_actions_all_run ... ok
[INFO] [stdout] test commands::close::tests::on_fail_escalate_appends_message_to_notes ... ok
[INFO] [stdout] test commands::close::tests::on_fail_escalate_no_duplicate_label ... ok
[INFO] [stdout] test commands::close::tests::on_fail_escalate_updates_priority ... ok
[INFO] [stdout] test commands::close::tests::on_fail_none_existing_behavior_unchanged ... ok
[INFO] [stdout] test commands::close::tests::on_fail_retry_keeps_claim_when_at_max ... ok
[INFO] [stdout] test commands::close::tests::on_fail_retry_with_delay_releases_claim ... ok
[INFO] [stdout] test commands::close::tests::on_fail_retry_releases_claim_when_under_max ... ok
[INFO] [stdout] test commands::close::tests::output_capture_empty_stdout_no_outputs ... ok
[INFO] [stdout] test commands::close::tests::on_fail_retry_max_defaults_to_max_attempts ... ok
[INFO] [stdout] test commands::close::tests::output_capture_json_array ... ok
[INFO] [stdout] test commands::close::tests::output_capture_failure_unchanged ... ok
[INFO] [stdout] test commands::close::tests::output_capture_json_stdout_stored_as_outputs ... ok
[INFO] [stdout] test commands::close::tests::output_capture_mixed_stdout_stderr ... ok
[INFO] [stdout] test commands::close::tests::output_capture_large_stdout_truncated ... ok
[INFO] [stdout] test commands::close::tests::output_capture_non_json_stdout_stored_as_text ... ok
[INFO] [stdout] test commands::close::tests::test_auto_close_disabled_via_config ... ok
[INFO] [stdout] test commands::close::tests::test_auto_close_parent_when_all_children_closed ... ok
[INFO] [stdout] test commands::close::tests::output_capture_stderr_not_captured_as_outputs ... ok
[INFO] [stdout] test commands::close::tests::test_auto_close_recursive_grandparent ... ok
[INFO] [stdout] test commands::close::tests::test_all_children_closed_checks_archived_units ... ok
[INFO] [stdout] test commands::close::tests::test_close_failed_appends_to_notes ... ok
[INFO] [stdout] test commands::close::tests::test_auto_close_with_no_parent ... ok
[INFO] [stdout] test commands::close::tests::test_close_no_ids ... ok
[INFO] [stdout] test commands::close::tests::test_close_nonexistent_unit ... ok
[INFO] [stdout] test commands::close::tests::test_close_failed_marks_attempt_as_failed ... ok
[INFO] [stdout] test commands::close::tests::test_close_failed_without_reason ... ok
[INFO] [stdout] test commands::close::tests::test_close_failure_appends_to_notes ... ok
[INFO] [stdout] test commands::close::tests::test_close_failure_creates_notes_if_none ... ok
[INFO] [stdout] test commands::close::tests::test_close_batch_with_mixed_hook_results ... ok
[INFO] [stdout] test commands::close::tests::test_close_multiple_units ... ok
[INFO] [stdout] test commands::close::tests::test_close_passes_reason_to_pre_close_hook ... ok
[INFO] [stdout] test commands::close::tests::test_close_rebuilds_index ... ok
[INFO] [stdout] test commands::close::tests::test_close_single_unit ... ok
[INFO] [stdout] test commands::close::tests::test_close_sets_updated_at ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_empty_verify_still_closes ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_failing_pre_close_hook_blocks_close ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_failing_verify_increments_attempts ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_force_skips_verify ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_missing_hook_silently_succeeds ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_passing_pre_close_hook ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_passing_verify ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_reason ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_pipe_propagates_exit_code ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_shell_operators_work ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_failing_verify_multiple_attempts ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_untrusted_hooks_silently_skips ... ok
[INFO] [stdout] test commands::close::tests::test_close_with_whitespace_verify_still_closes ... ok
[INFO] [stdout] test commands::close::tests::test_close_without_verify_still_works ... ok
[INFO] [stdout] test commands::close::tests::test_feature_grandparent_blocks_recursive_auto_close ... ok
[INFO] [stdout] test commands::close::tests::test_feature_unit_not_closed_in_non_tty ... ok
[INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_ascii ... ok
[INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_beyond_len ... ok
[INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_multibyte ... ok
[INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_zero ... ok
[INFO] [stdout] test commands::close::tests::test_feature_unit_force_still_blocked_in_non_tty ... ok
[INFO] [stdout] test commands::close::tests::test_feature_parent_not_auto_closed ... ok
[INFO] [stdout] test commands::close::tests::test_non_feature_parent_still_auto_closes ... ok
[INFO] [stdout] test commands::close::tests::test_no_auto_close_when_children_still_open ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::effective_verify_timeout_both_none ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::effective_verify_timeout_config_fallback ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::effective_verify_timeout_unit_wins_over_config ... ok
[INFO] [stdout] test commands::close::tests::test_post_close_hook_failure_does_not_prevent_close ... ok
[INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_outside_git_repo_works ... ok
[INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_in_main_worktree_skips_merge ... ok
[INFO] [stdout] test commands::close::tests::test_post_close_hook_fires_after_successful_close ... ok
[INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_in_worktree_commits_and_merges ... ok
[INFO] [stdout] test commands::config_cmd::tests::apply_global_config_value_sets_and_clears_model ... ok
[INFO] [stdout] test commands::config_cmd::tests::config_value_source_prefers_project_then_global ... ok
[INFO] [stdout] test commands::config_cmd::tests::get_run_returns_empty_when_unset ... ok
[INFO] [stdout] test commands::config_cmd::tests::get_unknown_key_returns_error ... ok
[INFO] [stdout] test commands::config_cmd::tests::global_config_rejects_project_only_keys ... ok
[INFO] [stdout] test commands::config_cmd::tests::legacy_run_template_detection_flags_old_templates ... ok
[INFO] [stdout] test commands::config_cmd::tests::load_raw_yaml_returns_none_for_invalid_yaml_instead_of_panicking ... ok
[INFO] [stdout] test commands::config_cmd::tests::set_auto_commit_persists_bool ... ok
[INFO] [stdout] test commands::config_cmd::tests::set_run_stores_command_template ... ok
[INFO] [stdout] test commands::config_cmd::tests::set_run_to_empty_clears_it ... ok
[INFO] [stdout] test commands::config_cmd::tests::set_run_to_none_clears_it ... ok
[INFO] [stdout] test commands::config_cmd::tests::set_unknown_key_returns_error ... ok
[INFO] [stdout] test commands::config_cmd::tests::yaml_lookup_supports_user_email_alias ... ok
[INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_with_merge_conflict_aborts ... ok
[INFO] [stdout] test commands::context::tests::context_includes_attempt_notes_in_json_output ... ok
[INFO] [stdout] test commands::context::tests::context_includes_attempt_notes_in_text_output ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_does_not_affect_fast_commands ... ok
[INFO] [stdout] test commands::context::tests::context_unit_not_found ... ok
[INFO] [stdout] test commands::context::tests::format_attempt_notes_includes_attempt_log_notes ... ok
[INFO] [stdout] test commands::context::tests::format_attempt_notes_includes_unit_notes ... ok
[INFO] [stdout] test commands::context::tests::format_attempt_notes_returns_none_when_attempts_have_no_notes ... ok
[INFO] [stdout] test commands::context::tests::format_attempt_notes_returns_none_when_no_notes ... ok
[INFO] [stdout] test commands::context::tests::format_attempt_notes_skips_empty_notes_strings ... ok
[INFO] [stdout] test commands::context::tests::format_child_summaries_section_renders_parent_rollup ... ok
[INFO] [stdout] test commands::context::tests::format_rules_section_wraps_with_delimiters ... ok
[INFO] [stdout] test commands::context::tests::load_rules_returns_content_when_present ... ok
[INFO] [stdout] test commands::context::tests::load_rules_returns_none_when_file_empty ... ok
[INFO] [stdout] test commands::context::tests::load_rules_returns_none_when_file_missing ... ok
[INFO] [stdout] test commands::context::tests::load_rules_uses_custom_rules_file_path ... ok
[INFO] [stdout] test commands::create::tests::assign_child_id_finds_existing_children ... ok
[INFO] [stdout] test commands::create::tests::assign_child_id_starts_at_1 ... ok
[INFO] [stdout] test commands::context::tests::context_with_no_paths_in_description ... ok
[INFO] [stdout] test commands::context::tests::context_with_paths_in_description ... ok
[INFO] [stdout] test commands::create::tests::create_allows_unit_without_verify_or_acceptance ... ok
[INFO] [stdout] test commands::create::tests::create_claim_accepts_with_acceptance ... ok
[INFO] [stdout] test commands::create::tests::create_claim_rejects_missing_validation_criteria ... ok
[INFO] [stdout] test commands::create::tests::create_claim_accepts_with_verify ... ok
[INFO] [stdout] test commands::create::tests::create_claim_with_parent_exempt_from_validation ... ok
[INFO] [stdout] test commands::create::tests::create_epic_sets_kind_epic ... ok
[INFO] [stdout] test commands::create::tests::create_feature_sets_feature_flag ... ok
[INFO] [stdout] test commands::create::tests::create_accepts_valid_priorities ... ok
[INFO] [stdout] test commands::create::tests::create_feature_works_without_verify ... ok
[INFO] [stdout] test commands::create::tests::create_minimal_unit ... ok
[INFO] [stdout] test commands::create::tests::create_increments_id ... ok
[INFO] [stdout] test commands::create::tests::create_next_chain_three_units ... ok
[INFO] [stdout] test commands::create::tests::create_next_fails_with_no_units ... ok
[INFO] [stdout] test commands::create::tests::create_next_depends_on_latest ... ok
[INFO] [stdout] test commands::create::tests::create_rejects_priority_too_high ... ok
[INFO] [stdout] test commands::create::tests::create_multiple_children ... ok
[INFO] [stdout] test commands::create::tests::create_updates_index ... ok
[INFO] [stdout] test commands::create::tests::create_with_all_fields ... ok
[INFO] [stdout] test commands::create::tests::create_next_merges_explicit_deps ... ok
[INFO] [stdout] test commands::create::tests::create_with_claim_and_parent ... ok
[INFO] [stdout] test commands::create::tests::create_with_claim_without_by ... ok
[INFO] [stdout] test commands::create::tests::create_with_claim_sets_in_progress ... ok
[INFO] [stdout] test commands::create::tests::create_without_claim_exempt_from_validation ... ok
[INFO] [stdout] test commands::create::tests::create_with_parent_assigns_child_id ... ok
[INFO] [stdout] test commands::create::tests::create_without_claim_stays_open ... ok
[INFO] [stdout] test commands::create::tests::default_rejects_passing_verify ... ok
[INFO] [stdout] test commands::create::tests::create_without_feature_preserves_existing_behavior ... ok
[INFO] [stdout] test commands::create::tests::default_accepts_failing_verify ... ok
[INFO] [stdout] test commands::create::tests::lint::create_rejects_verify_lint_errors_without_force ... ok
[INFO] [stdout] test commands::create::tests::lint::create_allows_verify_lint_errors_with_force ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_bare ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_with_priority_lowercase ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_with_priority_number ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_with_priority_uppercase ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_invalid_action ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_invalid_retry_max ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_priority_out_of_range ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_retry_bare ... ok
[INFO] [stdout] test commands::create::tests::parse_on_fail_retry_with_max ... ok
[INFO] [stdout] test commands::create::tests::lint::create_allows_verify_lint_warnings ... ok
[INFO] [stdout] test commands::create::tests::no_verify_skips_fail_first_check ... ok
[INFO] [stdout] test commands::create::tests::pass_ok_skips_fail_first_check ... ok
[INFO] [stdout] test commands::create::tests::post_create_hook_failure_does_not_break_creation ... ok
[INFO] [stdout] test commands::create::tests::post_create_hook_runs_after_creation ... ok
[INFO] [stdout] test commands::create::tests::pre_create_hook_accepts_unit_creation ... ok
[INFO] [stdout] test commands::create::tests::untrusted_hooks_are_silently_skipped ... ok
[INFO] [stdout] test commands::create::tests::pre_create_hook_rejects_unit_creation ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_cleans_dependencies ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_nonexistent_unit ... ok
[INFO] [stdout] test commands::delete::tests::test_cleanup_does_not_modify_unrelated_units ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_ignores_excluded_files ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_rebuilds_index ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_unit ... ok
[INFO] [stdout] test commands::delete::tests::test_delete_with_complex_dependency_graph ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_add_nonexistent_unit ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_add_self_dependency_rejected ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_add_cycle_detection ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_add_duplicate_rejected ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_add_simple ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_remove_not_found ... ok
[INFO] [stdout] test commands::diff::tests::add_output_flags_full_default ... ok
[INFO] [stdout] test commands::diff::tests::add_output_flags_name_only_no_color ... ok
[INFO] [stdout] test commands::diff::tests::add_output_flags_stat ... ok
[INFO] [stdout] test commands::diff::tests::cmd_diff_no_git_repo_fails ... ok
[INFO] [stdout] test commands::diff::tests::cmd_diff_nonexistent_unit_fails ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_list_with_dependencies ... ok
[INFO] [stdout] test commands::dep::tests::test_dep_remove ... ok
[INFO] [stdout] commit 5fcd72b43af38f647e14bfe5f56f04197f2ce74a
[INFO] [stdout] Author: Test <test@test.com>
[INFO] [stdout] Date:   Fri Jul 10 07:06:08 2026 +0000
[INFO] [stdout] 
[INFO] [stdout]     feat(unit-3): Add login
[INFO] [stdout] 
[INFO] [stdout]  .mana/3-test.md | 10 ++++++++++
[INFO] [stdout]  login.rs        |  1 +
[INFO] [stdout]  2 files changed, 11 insertions(+)
[INFO] [stdout] test commands::diff::tests::cmd_diff_with_tagged_commit_succeeds ... ok
[INFO] [stdout] diff --git a/.mana/7-test.md b/.mana/7-test.md
[INFO] [stdout] new file mode 100644
[INFO] [stdout] index 0000000..fd39878
[INFO] [stdout] --- /dev/null
[INFO] [stdout] +++ b/.mana/7-test.md
[INFO] [stdout] @@ -0,0 +1,11 @@
[INFO] [stdout] +---
[INFO] [stdout] +id: '7'
[INFO] [stdout] +title: Refactor auth
[INFO] [stdout] +handle: refactor auth
[INFO] [stdout] +status: open
[INFO] [stdout] +priority: 2
[INFO] [stdout] +created_at: '2026-07-10T07:06:08.150194685Z'
[INFO] [stdout] +updated_at: '2026-07-10T07:06:08.150194685Z'
[INFO] [stdout] +checkpoint: '28e8ab1e0978146c6ab8edf5e1c600a5114faa63'
[INFO] [stdout] +kind: task
[INFO] [stdout] +---
[INFO] [stdout] diff --git a/auth.rs b/auth.rs
[INFO] [stdout] new file mode 100644
[INFO] [stdout] index 0000000..9a054a0
[INFO] [stdout] --- /dev/null
[INFO] [stdout] +++ b/auth.rs
[INFO] [stdout] @@ -0,0 +1 @@
[INFO] [stdout] +fn auth() {}
[INFO] [stdout] \ No newline at end of file
[INFO] [stdout] test commands::diff::tests::cmd_diff_with_checkpoint_succeeds ... ok
[INFO] [stdout] test commands::diff::tests::find_commit_at_time_returns_none_for_future ... ok
[INFO] [stdout] test commands::diff::tests::is_git_repo_false_for_non_git_dir ... ok
[INFO] [stdout] test commands::diff::tests::is_git_repo_true_for_git_dir ... ok
[INFO] [stdout] test commands::diff::tests::find_commits_for_unit_finds_matching_commits ... ok
[INFO] [stdout] test commands::diff::tests::find_commits_ignores_partial_id_matches ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_archived_parent ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_cycle ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_duplicate_ids ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_can_rebuild_sqlite_index_directly ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_clean_project ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_missing_parent ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_mixed_formats ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_orphaned_dep ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_legacy_config_template ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_stale_index_entries ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_detects_missing_index_entries ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_does_not_warn_for_missing_derived_sqlite ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_no_warning_for_single_format ... ok
[INFO] [stdout] test commands::edit::tests::test_backup_backup_before_edit_workflow ... ok
[INFO] [stdout] test commands::edit::tests::test_backup_preserves_exact_content ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_fails_for_nonexistent_unit ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_finds_unit_by_id ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_index_rebuild_includes_edited_unit ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_loads_backup_correctly ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_fix_rebuilds_index ... ok
[INFO] [stdout] test commands::doctor::tests::doctor_fix_rebuilds_index_for_missing_entries ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_validates_schema_before_save ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_preserves_unit_naming_convention ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_nonexistent_file ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_reads_binary_content ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_large_file ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_reads_content ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_reads_empty_file ... ok
[INFO] [stdout] test commands::edit::tests::test_load_backup_reads_multiline_content ... ok
[INFO] [stdout] test commands::edit::tests::test_open_editor_nonexistent_file ... ok
[INFO] [stdout] /tmp/.tmpvBeOTy/test.md
[INFO] [stdout] test commands::edit::tests::test_open_editor_success_with_echo ... ok
[INFO] [stdout] test commands::edit::tests::test_open_editor_success_with_true ... ok
[INFO] [stdout] test commands::edit::tests::test_prompt_rollback_restores_file_from_backup ... ok
[INFO] [stdout] test commands::edit::tests::test_prompt_rollback_backup_preserves_content ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_after_edit_empty_directory ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_after_edit_creates_index ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_after_edit_invalid_mana_dir ... ok
[INFO] [stdout] test commands::edit::tests::test_cmd_edit_workflow_backup_edit_save ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_after_edit_saves_to_correct_location ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_missing_required_field ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_parses_and_validates_yaml ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_persists_to_disk ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_rejects_invalid_yaml ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_updates_timestamp ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_with_markdown_frontmatter ... ok
[INFO] [stdout] test commands::edit::tests::test_validate_and_save_workflow_full ... ok
[INFO] [stdout] test commands::fact::tests::create_fact_requires_verify ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_after_edit_includes_all_units ... ok
[INFO] [stdout] test commands::edit::tests::test_rebuild_index_reflects_recent_edits ... ok
[INFO] [stdout] test commands::fact::tests::create_fact_sets_unit_type ... ok
[INFO] [stdout] test commands::fact::tests::create_fact_with_custom_ttl ... ok
[INFO] [stdout] test commands::fact::tests::create_fact_with_paths ... ok
[INFO] [stdout] test commands::graph::tests::ascii_long_title_not_truncated ... ok
[INFO] [stdout] test commands::graph::tests::ascii_output_valid ... ok
[INFO] [stdout] test commands::graph::tests::ascii_status_badges ... ok
[INFO] [stdout] test commands::graph::tests::ascii_with_cycle_warning ... ok
[INFO] [stdout] test commands::graph::tests::ascii_with_empty_graph ... ok
[INFO] [stdout] test commands::graph::tests::ascii_with_diamond_dependencies ... ok
[INFO] [stdout] test commands::graph::tests::ascii_with_multiple_isolated_units ... ok
[INFO] [stdout] test commands::graph::tests::ascii_with_single_isolated_unit ... ok
[INFO] [stdout] test commands::graph::tests::escaping_special_chars ... ok
[INFO] [stdout] test commands::graph::tests::mermaid_escape ... ok
[INFO] [stdout] test commands::graph::tests::default_format_is_ascii ... ok
[INFO] [stdout] test commands::graph::tests::dot_output_valid ... ok
[INFO] [stdout] test commands::graph::tests::mermaid_output_valid ... ok
[INFO] [stdout] test commands::groom::tests::groom_adds_related_units_to_stale_work_proposals ... ok
[INFO] [stdout] test commands::groom::tests::groom_does_not_flag_strategic_deferred_language_as_concern ... ok
[INFO] [stdout] test commands::groom::tests::groom_flags_strong_closed_completion_concerns ... ok
[INFO] [stdout] test commands::init::tests::find_preset_is_case_insensitive ... ok
[INFO] [stdout] test commands::init::tests::detect_agents_returns_all_presets ... ok
[INFO] [stdout] test commands::init::tests::format_config_value_for_display_marks_inherited_values ... ok
[INFO] [stdout] test commands::init::tests::init_auto_detects_project_name_from_dir ... ok
[INFO] [stdout] test commands::init::tests::init_creates_config_with_explicit_name ... ok
[INFO] [stdout] test commands::init::tests::init_creates_mana_dir ... ok
[INFO] [stdout] test commands::init::tests::init_creates_rules_md_stub ... ok
[INFO] [stdout] test commands::init::tests::init_does_not_overwrite_existing_rules_md ... ok
[INFO] [stdout] test commands::groom::tests::groom_generates_proposals_from_management_signals ... ok
[INFO] [stdout] test commands::init::tests::init_preserves_next_id_on_setup ... ok
[INFO] [stdout] test commands::init::tests::init_setup_on_existing_reconfigures ... ok
[INFO] [stdout] test commands::init::tests::init_with_agent_aider_sets_run_and_plan ... ok
[INFO] [stdout] test commands::init::tests::init_with_agent_claude_sets_run_and_plan ... ok
[INFO] [stdout] test commands::init::tests::init_with_agent_pi_sets_run_and_plan ... ok
[INFO] [stdout] test commands::init::tests::init_with_custom_run_and_plan ... ok
[INFO] [stdout] test commands::init::tests::init_with_no_agent_skips_setup ... ok
[INFO] [stdout] test commands::init::tests::init_with_run_only ... ok
[INFO] [stdout] test commands::init::tests::init_with_unknown_agent_errors ... ok
[INFO] [stdout] test commands::init::tests::reinit_without_setup_shows_config ... ok
[INFO] [stdout] test commands::list::tests::blocked_by_open_dependency ... ok
[INFO] [stdout] test commands::list::tests::not_blocked_when_no_dependencies ... ok
[INFO] [stdout] test commands::list::tests::parse_status_invalid ... ok
[INFO] [stdout] test commands::list::tests::parse_status_valid ... ok
[INFO] [stdout] test commands::list::tests::render_tree_hierarchy ... ok
[INFO] [stdout] test commands::list::tests::status_indicator_closed ... ok
[INFO] [stdout] test commands::list::tests::status_indicator_in_progress ... ok
[INFO] [stdout] test commands::list::tests::status_indicator_open ... ok
[INFO] [stdout] test commands::list::tests::status_indicator_oversized_shows_warning ... ok
[INFO] [stdout] test commands::list::tests::status_indicator_unscoped_no_warning ... ok
[INFO] [stdout] test commands::logs::tests::find_all_logs_in_empty_dir ... ok
[INFO] [stdout] test commands::logs::tests::find_all_logs_in_matches_raw_id ... ok
[INFO] [stdout] test commands::logs::tests::find_all_logs_in_matches_unit_id ... ok
[INFO] [stdout] test commands::logs::tests::find_all_logs_nonexistent_dir ... ok
[INFO] [stdout] test commands::logs::tests::find_latest_log_returns_most_recent ... ok
[INFO] [stdout] test commands::logs::tests::find_latest_log_returns_none_for_unknown ... ok
[INFO] [stdout] test commands::logs::tests::log_dir_creates_directory ... ok
[INFO] [stdout] test commands::init::tests::init_config_is_valid_yaml ... ok
[INFO] [stdout] test commands::init::tests::init_idempotent ... ok
[INFO] [stdout] test commands::memory_context::tests::memory_context_empty ... ok
[INFO] [stdout] test commands::memory_context::tests::memory_context_shows_claimed_units ... ok
[INFO] [stdout] test commands::memory_context::tests::memory_context_json_output ... ok
[INFO] [stdout] test commands::move_units::tests::move_fails_for_missing_unit ... ok
[INFO] [stdout] test commands::move_units::tests::move_fails_for_same_directory ... ok
[INFO] [stdout] test commands::memory_context::tests::memory_context_shows_stale_facts ... ok
[INFO] [stdout] test commands::move_units::tests::move_clears_parent_and_deps ... ok
[INFO] [stdout] test commands::move_units::tests::move_from_with_mana_dir_path ... ok
[INFO] [stdout] test commands::move_units::tests::move_from_with_project_dir_path ... ok
[INFO] [stdout] test commands::move_units::tests::move_multiple_units ... ok
[INFO] [stdout] test commands::move_units::tests::move_preserves_unit_content ... ok
[INFO] [stdout] test commands::move_units::tests::move_to_fails_for_invalid_dest ... ok
[INFO] [stdout] test commands::move_units::tests::move_rebuilds_both_indices ... ok
[INFO] [stdout] test commands::move_units::tests::move_single_unit ... ok
[INFO] [stdout] test commands::move_units::tests::move_to_pushes_units ... ok
[INFO] [stdout] test commands::move_units::tests::resolve_fails_for_no_units ... ok
[INFO] [stdout] test commands::move_units::tests::resolve_with_mana_dir ... ok
[INFO] [stdout] test commands::move_units::tests::resolve_with_project_dir ... ok
[INFO] [stdout] test commands::next::tests::direct_unblocks_returns_correct_ids ... ok
[INFO] [stdout] test commands::next::tests::higher_priority_scores_higher ... ok
[INFO] [stdout] test commands::next::tests::more_attempts_scores_lower ... ok
[INFO] [stdout] test commands::next::tests::more_unblocks_scores_higher ... ok
[INFO] [stdout] test commands::next::tests::next_only_recommends_jobs ... ok
[INFO] [stdout] test commands::next::tests::older_unit_scores_higher ... ok
[INFO] [stdout] test commands::next::tests::transitive_unblock_count ... ok
[INFO] [stdout] test commands::plan::tests::build_prompt_includes_decomposition_rules ... ok
[INFO] [stdout] test commands::plan::tests::builtin_plan_command_includes_model_when_set ... ok
[INFO] [stdout] test commands::plan::tests::plan_builtin_dry_run_shows_prompt ... ok
[INFO] [stdout] test commands::move_units::tests::move_to_with_project_dir_path ... ok
[INFO] [stdout] test commands::plan::tests::plan_dry_run_does_not_spawn ... ok
[INFO] [stdout] test commands::plan::tests::plan_template_substitutes_model_and_strategy ... ok
[INFO] [stdout] test commands::quick::tests::default_rejects_passing_verify ... ok
[INFO] [stdout] test commands::move_units::tests::move_updates_destination_config_next_id ... ok
[INFO] [stdout] test commands::quick::tests::lint::quick_verify_lint_allows_errors_with_force ... ok
[INFO] [stdout] test commands::quick::tests::lint::quick_verify_lint_rejects_errors_without_force ... ok
[INFO] [stdout] test commands::quick::tests::default_accepts_failing_verify ... ok
[INFO] [stdout] test commands::quick::tests::no_verify_skips_fail_first_check ... ok
[INFO] [stdout] test commands::quick::tests::pass_ok_skips_fail_first_check ... ok
[INFO] [stdout] test commands::quick::tests::quick_rejects_missing_validation_criteria ... ok
[INFO] [stdout] test commands::quick::tests::quick_creates_and_claims_unit ... ok
[INFO] [stdout] test commands::quick::tests::quick_increments_id ... ok
[INFO] [stdout] test commands::quick::tests::quick_updates_index ... ok
[INFO] [stdout] test commands::quick::tests::quick_sets_checkpoint_when_verify_present ... ok
[INFO] [stdout] test commands::recall::tests::score_match_close_reason ... ok
[INFO] [stdout] test commands::recall::tests::score_match_description ... ok
[INFO] [stdout] test commands::recall::tests::score_match_notes ... ok
[INFO] [stdout] test commands::recall::tests::score_match_paths ... ok
[INFO] [stdout] test commands::recall::tests::score_match_title ... ok
[INFO] [stdout] test commands::recall::tests::title_scores_higher_than_description ... ok
[INFO] [stdout] test commands::quick::tests::quick_with_all_fields ... ok
[INFO] [stdout] test commands::reopen::tests::test_reopen_nonexistent_unit ... ok
[INFO] [stdout] test commands::quick::tests::quick_works_without_by ... ok
[INFO] [stdout] test commands::reopen::tests::test_reopen_closed_unit ... ok
[INFO] [stdout] test commands::reopen::tests::test_reopen_open_unit ... ok
[INFO] [stdout] test commands::reopen::tests::test_reopen_rebuilds_index ... ok
[INFO] [stdout] test commands::reopen::tests::test_reopen_updates_updated_at ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_appends_to_existing_notes ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_approve_adds_reviewed_label ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_approve_removes_review_failed_label ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_flag_adds_needs_human_review_label ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_flag_injects_notes ... ok
[INFO] [stdout] test commands::review::tests::max_reopens_check_prevents_infinite_loops ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_approve ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_approve_case_insensitive ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_defaults_to_approve_when_no_keyword ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_flag_captures_notes ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_request_changes_captures_notes ... ok
[INFO] [stdout] test commands::review::tests::parse_verdict_request_changes_takes_priority_over_approve ... ok
[INFO] [stdout] test commands::run::memory::tests::allows_when_enough_memory ... ok
[INFO] [stdout] test commands::run::memory::tests::allows_when_unavailable ... ok
[INFO] [stdout] test commands::run::memory::tests::available_memory_returns_something ... ok
[INFO] [stdout] test commands::run::memory::tests::blocks_when_memory_low ... ok
[INFO] [stdout] test commands::run::memory::tests::disabled_when_reserve_is_zero ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_request_changes_injects_notes ... ok
[INFO] [stdout] test commands::close::tests::test_close_batch_partial_rejection_by_hook ... ok
[INFO] [stdout] test commands::review::tests::apply_verdict_request_changes_reopens_unit ... ok
[INFO] [stdout] test commands::run::plan::tests::dry_run_simulate_respects_produces_requires ... ok
[INFO] [stdout] test commands::run::plan::tests::dry_run_simulate_shows_all_waves ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_excludes_parents_with_open_children_from_ready_set ... ok
[INFO] [stdout] test commands::run::plan::tests::oversized_unit_dispatched_with_warning ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_explicit_target_set_unions_and_deduplicates ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_file_conflict_in_wave ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_filters_by_id ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_includes_unit_model_override ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_no_ready_units ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_parent_id_gets_children ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_returns_ready_units ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_sorts_wave_by_downstream_weight ... ok
[INFO] [stdout] test commands::run::plan::tests::plan_dispatch_target_parent_recurses_to_ready_leaf_descendants ... ok
[INFO] [stdout] test commands::run::plan::tests::print_plan_no_conflicts_shows_full_concurrency ... ok
[INFO] [stdout] test commands::run::plan::tests::print_plan_shows_critical_path ... ok
[INFO] [stdout] test commands::run::plan::tests::print_plan_shows_effective_concurrency ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_mixed_active_and_archived_deps ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_with_active_closed_dep ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_with_active_open_dep ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_with_archived_dep ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_with_missing_dep ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::all_deps_closed_with_requires_and_archived_producer ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::build_prompt_includes_rules ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::build_prompt_returns_err_for_missing_unit ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::critical_path_unit_scheduled_first ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::direct_imp_command_includes_worker_contract_flags ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::direct_imp_command_omits_model_when_unset ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_detected ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_empty_paths ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_multiple_running ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_no_overlap ... ok
[INFO] [stdout] test commands::run::plan::tests::unscoped_unit_dispatched_normally ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_partial_overlap ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_dep_outside_set_treated_as_met ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_diamond_both_deps_needed ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_explicit_dep_met ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_explicit_dep_not_met ... ok
[INFO] [stdout] test commands::run::plan::tests::print_plan_shows_file_conflicts ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_requires_not_met ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_no_deps ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_requires_met ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::ready_queue_starts_independent_units_immediately ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::worker_startup_failure_error_includes_stderr_tail ... ok
[INFO] [stdout] test commands::run::ready_queue::tests::worker_startup_failure_stderr_tail_is_bounded ... ok
[INFO] [stdout] test commands::run::tests::agent_result_tracks_tokens_and_cost ... ok
[INFO] [stdout] test commands::run::tests::child_pid_tracking ... ok
[INFO] [stdout] test commands::run::tests::collect_decision_warnings_from_skipped_units_uses_canonical_blocker ... ok
[INFO] [stdout] test commands::run::tests::collect_decision_warnings_from_skipped_units_only_returns_unresolved_decisions ... ok
[INFO] [stdout] test commands::run::tests::cmd_run_errors_when_no_run_template_and_no_imp ... ok
[INFO] [stdout] test commands::run::tests::determine_spawn_mode_direct_when_no_run ... ok
[INFO] [stdout] test commands::run::tests::determine_spawn_mode_template_when_run_set ... ok
[INFO] [stdout] test commands::run::plan::tests::well_scoped_unit_dispatched ... ok
[INFO] [stdout] test commands::run::tests::format_decision_warning_message_matches_single_unit_prompt ... ok
[INFO] [stdout] test commands::run::tests::format_duration_formats_correctly ... ok
[INFO] [stdout] test commands::run::tests::dry_run_does_not_spawn ... ok
[INFO] [stdout] test commands::run::tests::run_summary_counts_only_closed_units_as_success ... ok
[INFO] [stdout] test commands::run::tests::dry_run_with_json_stream ... ok
[INFO] [stdout] test commands::run::tests::run_target_scope_label_formats_explicit_targets ... ok
[INFO] [stdout] test commands::run::tests::signal_flag_can_be_toggled ... ok
[INFO] [stdout] test commands::run::wave::tests::compute_waves_diamond ... ok
[INFO] [stdout] test commands::run::wave::tests::compute_waves_linear_chain ... ok
[INFO] [stdout] test commands::run::wave::tests::compute_waves_no_deps ... ok
[INFO] [stdout] test commands::run::wave::tests::compute_waves_sorts_by_downstream_weight ... ok
[INFO] [stdout] test commands::run::wave::tests::compute_waves_weight_sorting_preserves_priority ... ok
[INFO] [stdout] test commands::run::wave::tests::critical_path_diamond ... ok
[INFO] [stdout] test commands::run::wave::tests::critical_path_independent_units ... ok
[INFO] [stdout] test commands::run::wave::tests::critical_path_linear_chain ... ok
[INFO] [stdout] test commands::run::wave::tests::critical_path_picks_heaviest_branch ... ok
[INFO] [stdout] test commands::run::wave::tests::critical_path_single_unit ... ok
[INFO] [stdout] test commands::run::wave::tests::downstream_weights_diamond ... ok
[INFO] [stdout] test commands::run::wave::tests::downstream_weights_independent ... ok
[INFO] [stdout] test commands::run::wave::tests::downstream_weights_linear_chain ... ok
[INFO] [stdout] test commands::run::wave::tests::downstream_weights_single_unit ... ok
[INFO] [stdout] test commands::run::wave::tests::downstream_weights_wide_fan ... ok
[INFO] [stdout] test commands::run::wave::tests::effective_parallelism_all_conflict ... ok
[INFO] [stdout] test commands::run::wave::tests::effective_parallelism_empty_input ... ok
[INFO] [stdout] test commands::run::wave::tests::effective_parallelism_empty_paths_no_conflict ... ok
[INFO] [stdout] test commands::run::wave::tests::effective_parallelism_no_conflicts ... ok
[INFO] [stdout] test commands::run::wave::tests::effective_parallelism_with_conflict ... ok
[INFO] [stdout] test commands::run::wave::tests::file_conflicts_detected ... ok
[INFO] [stdout] test commands::run::wave::tests::file_conflicts_empty_when_no_overlap ... ok
[INFO] [stdout] test commands::run::wave::tests::file_conflicts_multiple_files ... ok
[INFO] [stdout] test commands::run::tests::signal_flag_defaults_to_false ... ok
[INFO] [stdout] 1
[INFO] [stdout] test commands::run::tests::execute_direct_batch_verify_dedups_shared_commands ... ok
[INFO] [stdout] 1
[INFO] [stdout] test commands::run::wave::tests::template_wave_execution_with_echo ... ok
[INFO] [stdout] test commands::run::wave::tests::template_wave_failed_command ... ok
[INFO] [stdout] test commands::show::tests::format_short_test ... ok
[INFO] [stdout] test commands::run::wave::tests::template_wave_runs_implement_action ... ok
[INFO] [stdout] test commands::show::tests::history_displays_formatted_table ... ok
[INFO] [stdout] test commands::show::tests::history_format_cost ... ok
[INFO] [stdout] test commands::show::tests::history_format_duration_hours ... ok
[INFO] [stdout] test commands::show::tests::history_format_duration_minutes ... ok
[INFO] [stdout] test commands::show::tests::history_format_duration_seconds ... ok
[INFO] [stdout] test commands::show::tests::history_format_tokens_small ... ok
[INFO] [stdout] test commands::show::tests::history_format_tokens_thousands ... ok
[INFO] [stdout] test commands::show::tests::history_handles_missing_optional_fields ... ok
[INFO] [stdout] test commands::show::tests::history_limits_entries_default ... ok
[INFO] [stdout] test commands::show::tests::history_not_shown_when_empty ... ok
[INFO] [stdout] test commands::show::tests::history_show_all_flag ... ok
[INFO] [stdout] test commands::show::tests::history_totals_sum_correctly ... ok
[INFO] [stdout] test commands::show::tests::history_truncate_agent_long ... ok
[INFO] [stdout] test commands::show::tests::history_truncate_agent_short ... ok
[INFO] [stdout] test commands::show::tests::metadata_header_includes_dependencies ... ok
[INFO] [stdout] test commands::show::tests::metadata_header_includes_id_and_status ... ok
[INFO] [stdout] test commands::show::tests::metadata_header_includes_parent_when_set ... ok
[INFO] [stdout] test commands::show::tests::outputs_long_truncated_at_50_lines ... ok
[INFO] [stdout] test commands::show::tests::outputs_not_shown_when_none ... ok
[INFO] [stdout] test commands::show::tests::history_cmd_show_with_history ... ok
[INFO] [stdout] test commands::show::tests::render_unit_accepts_multiple_child_summaries_for_comparison ... ok
[INFO] [stdout] test commands::show::tests::outputs_shows_pretty_printed_json ... ok
[INFO] [stdout] test commands::show::tests::render_unit_with_description ... ok
[INFO] [stdout] test commands::show::tests::show_archived_unit ... ok
[INFO] [stdout] test commands::run::tests::run_loop_target_subtree_drains_ready_descendants ... ok
[INFO] [stdout] test commands::show::tests::show_json ... ok
[INFO] [stdout] test commands::search::tests::search_unit_id_finds_nested_project_unit_from_root ... ok
[INFO] [stdout] test commands::show::tests::show_not_found ... ok
[INFO] [stdout] test commands::stats::tests::aggregate_cost_most_expensive_and_retried ... ok
[INFO] [stdout] test commands::stats::tests::aggregate_cost_no_history ... ok
[INFO] [stdout] test commands::stats::tests::aggregate_cost_with_history ... ok
[INFO] [stdout] test commands::show::tests::show_renders_beautifully_default ... ok
[INFO] [stdout] test commands::show::tests::show_short ... ok
[INFO] [stdout] test commands::show::tests::show_works_with_hierarchical_ids ... ok
[INFO] [stdout] test commands::stats::tests::empty_project ... ok
[INFO] [stdout] test commands::stats::tests::stats_calculates_counts ... ok
[INFO] [stdout] test commands::stats::tests::stats_command_works ... ok
[INFO] [stdout] test commands::stats::tests::stats_command_json ... ok
[INFO] [stdout] test commands::status::tests::test_status_shows_epics_section ... ok
[INFO] [stdout] test commands::sync::tests::sync_counts_units ... ok
[INFO] [stdout] test commands::sync::tests::sync_does_not_create_archive_yaml_when_no_archive ... ok
[INFO] [stdout] test commands::sync::tests::sync_empty_project ... ok
[INFO] [stdout] test commands::sync::tests::sync_rebuilds_archive_yaml ... ok
[INFO] [stdout] test commands::sync::tests::sync_rebuilds_index ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_archives_closed_units ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_create_archive_yaml ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_archives_parent_when_all_children_closed ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_move_files ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_release_stale_units ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_empty_project ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_handles_mix_of_open_closed_and_in_progress ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_handles_mix_of_stale_and_closed ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_leaves_open_units_alone ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_idempotent ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_rebuilds_index ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_releases_in_progress_unit_without_claimed_at ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_releases_in_progress_with_claimed_by ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_releases_stale_in_progress_units ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_skips_closed_parent_with_open_children ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_skips_in_progress_when_agents_running ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_updates_archive_yaml ... ok
[INFO] [stdout] test commands::tidy::tests::tidy_uses_closed_at_for_archive_date ... ok
[INFO] [stdout] test commands::trace::tests::test_trace_json_output ... ok
[INFO] [stdout] test commands::trace::tests::test_trace_no_parent_no_deps ... ok
[INFO] [stdout] test commands::trace::tests::test_trace_not_found ... ok
[INFO] [stdout] test commands::trace::tests::test_trace_with_parent_and_deps ... ok
[INFO] [stdout] test commands::trace::tests::trace_output_includes_child_summaries ... ok
[INFO] [stdout] test commands::tree::tests::full_tree_displays ... ok
[INFO] [stdout] test commands::trust::tests::test_cmd_trust_check_reports_disabled ... ok
[INFO] [stdout] test commands::trust::tests::test_cmd_trust_check_reports_enabled ... ok
[INFO] [stdout] test commands::trust::tests::test_cmd_trust_enables_hooks ... ok
[INFO] [stdout] test commands::trust::tests::test_cmd_trust_revoke_disables_hooks ... ok
[INFO] [stdout] test commands::trust::tests::test_cmd_trust_revoke_with_check ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_already_in_main_dir ... ok
[INFO] [stdout] test commands::tree::tests::status_indicators ... ok
[INFO] [stdout] test commands::tree::tests::subtree_not_found ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_nonexistent_unit ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_not_marked_archived ... ok
[INFO] [stdout] test commands::tree::tests::subtree_works ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_basic ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_nested_year_month_structure ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_preserves_slug ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_preserves_unit_data ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_removes_from_archive_yaml ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_updates_index ... ok
[INFO] [stdout] test commands::unarchive::tests::test_unarchive_updates_updated_at ... ok
[INFO] [stdout] test commands::update::tests::test_post_update_hook_failure_does_not_prevent_update ... ok
[INFO] [stdout] test commands::update::tests::test_pre_update_hook_rejects_update_when_fails ... ok
[INFO] [stdout] test commands::update::tests::test_post_update_hook_runs_after_successful_update ... ok
[INFO] [stdout] test commands::update::tests::test_pre_update_hook_allows_update_when_passes ... ok
[INFO] [stdout] test commands::update::tests::test_pre_update_hook_skipped_when_not_trusted ... ok
[INFO] [stdout] test commands::update::tests::test_update_add_label ... ok
[INFO] [stdout] test commands::update::tests::test_update_multiple_fields ... ok
[INFO] [stdout] test commands::update::tests::test_update_nonexistent_unit ... ok
[INFO] [stdout] test commands::update::tests::test_update_notes_appends ... ok
[INFO] [stdout] test commands::update::tests::test_update_notes_creates_with_timestamp ... ok
[INFO] [stdout] test commands::update::tests::test_update_rejects_priority_too_high ... ok
[INFO] [stdout] test commands::update::tests::test_update_priority ... ok
[INFO] [stdout] test commands::update::tests::test_update_rebuilds_index ... ok
[INFO] [stdout] test commands::update::tests::test_update_remove_label ... ok
[INFO] [stdout] test commands::update::tests::test_update_status ... ok
[INFO] [stdout] test output::tests::output_default_is_not_quiet ... ok
[INFO] [stdout] test output::tests::output_new_is_not_quiet ... ok
[INFO] [stdout] test output::tests::output_with_quiet_false ... ok
[INFO] [stdout] test output::tests::output_with_quiet_true ... ok
[INFO] [stdout] test pi_output::tests::pi_output_empty_object_returns_none ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_bash_no_file ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_bash_with_file ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_bash_with_path ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_edit_path ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_missing_path_field ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_read_path ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_unknown_tool ... ok
[INFO] [stdout] test pi_output::tests::pi_output_extract_write_path ... ok
[INFO] [stdout] test pi_output::tests::pi_output_finished ... ok
[INFO] [stdout] test pi_output::tests::pi_output_finished_missing_fields ... ok
[INFO] [stdout] test pi_output::tests::pi_output_text_delta ... ok
[INFO] [stdout] test pi_output::tests::pi_output_thinking_delta ... ok
[INFO] [stdout] test pi_output::tests::pi_output_token_update ... ok
[INFO] [stdout] test pi_output::tests::pi_output_token_update_zero_tokens_ignored ... ok
[INFO] [stdout] test pi_output::tests::pi_output_tool_result ... ok
[INFO] [stdout] test pi_output::tests::pi_output_toolcall_end ... ok
[INFO] [stdout] test pi_output::tests::pi_output_toolcall_start ... ok
[INFO] [stdout] test pi_output::tests::pi_output_unknown_event_returns_none ... ok
[INFO] [stdout] test project::tests::empty_dir_returns_none ... ok
[INFO] [stdout] test project::tests::suggest_bun_test ... ok
[INFO] [stdout] test project::tests::suggest_cargo_test ... ok
[INFO] [stdout] test project::tests::suggest_go_test ... ok
[INFO] [stdout] test project::tests::suggest_mix_test ... ok
[INFO] [stdout] test project::tests::suggest_npm_test ... ok
[INFO] [stdout] test project::tests::suggest_python_pytest ... ok
[INFO] [stdout] test project::tests::suggest_ruby_rspec ... ok
[INFO] [stdout] test project::tests::suggest_zig_test ... ok
[INFO] [stdout] test spawner::tests::agent_action_display ... ok
[INFO] [stdout] test spawner::tests::build_log_path_simple_id ... ok
[INFO] [stdout] test spawner::tests::build_log_path_uses_safe_id ... ok
[INFO] [stdout] test spawner::tests::can_spawn_false_when_full ... ok
[INFO] [stdout] test spawner::tests::can_spawn_respects_max_concurrent ... ok
[INFO] [stdout] test commands::update::tests::test_update_title ... ok
[INFO] [stdout] test spawner::tests::check_completed_detects_failed_process ... ok
[INFO] [stdout] test spawner::tests::check_completed_on_empty_spawner ... ok
[INFO] [stdout] test spawner::tests::default_creates_empty_spawner ... ok
[INFO] [stdout] test spawner::tests::find_all_logs_empty_for_unknown ... ok
[INFO] [stdout] test spawner::tests::find_latest_log_returns_none_for_unknown ... ok
[INFO] [stdout] test spawner::tests::kill_all_clears_running ... ok
[INFO] [stdout] test spawner::tests::log_dir_creates_directory ... ok
[INFO] [stdout] test spawner::tests::spawn_errors_without_plan_template ... ok
[INFO] [stdout] test spawner::tests::spawn_errors_without_run_template ... ok
[INFO] [stdout] test spawner::tests::spawner_starts_empty ... ok
[INFO] [stdout] test spawner::tests::template_substitution_multiple_placeholders ... ok
[INFO] [stdout] test spawner::tests::template_substitution_no_placeholder ... ok
[INFO] [stdout] test spawner::tests::template_substitution_replaces_id ... ok
[INFO] [stdout] test spawner::tests::template_with_model_no_model_placeholder ... ok
[INFO] [stdout] test spawner::tests::template_with_model_none_leaves_placeholder ... ok
[INFO] [stdout] test spawner::tests::template_with_model_substitution ... ok
[INFO] [stdout] test stream::tests::run_end_serializes_closed_failed_abandoned_counts ... ok
[INFO] [stdout] test stream::tests::stream_dry_run_with_round_plans ... ok
[INFO] [stdout] test stream::tests::stream_emit_error_convenience ... ok
[INFO] [stdout] test stream::tests::stream_emit_writes_json_line ... ok
[INFO] [stdout] test stream::tests::stream_error_event ... ok
[INFO] [stdout] test stream::tests::stream_event_serializes_with_type_tag ... ok
[INFO] [stdout] test stream::tests::stream_file_overlap_info_serializes ... ok
[INFO] [stdout] test stream::tests::stream_run_plan_serializes ... ok
[INFO] [stdout] test stream::tests::stream_unit_done_serializes_optional_fields ... ok
[INFO] [stdout] test stream::tests::stream_unit_done_with_enriched_fields ... ok
[INFO] [stdout] test stream::tests::stream_unit_ready_serializes ... ok
[INFO] [stdout] test stream::tests::stream_unit_start_omits_none_fields ... ok
[INFO] [stdout] test stream::tests::stream_unit_start_with_enriched_fields ... ok
[INFO] [stdout] test timeout::tests::timeout_callback_receives_all_lines ... ok
[INFO] [stdout] test timeout::tests::timeout_completed_fast_process ... ok
[INFO] [stdout] test spawner::tests::check_completed_detects_finished_process ... ok
[INFO] [stdout] test commands::update::tests::test_update_accepts_valid_priorities ... ok
[INFO] [stdout] test timeout::tests::timeout_zero_timeouts_means_no_limit ... ok
[INFO] [stdout] test timeout::tests::timeout_total_timeout_kills_process ... ok
[INFO] [stdout] test timeout::tests::timeout_idle_timeout_kills_slow_writer ... ok
[INFO] [stdout] test commands::update::tests::test_update_with_multiple_fields_triggers_hooks ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_appends_to_notes has been running for over 60 seconds
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_appends_to_notes ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_config_level_applies_when_unit_has_none has been running for over 60 seconds
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_kills_slow_process_and_records_timeout has been running for over 60 seconds
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_unit_level_overrides_config has been running for over 60 seconds
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_kills_slow_process_and_records_timeout ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_config_level_applies_when_unit_has_none ... ok
[INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_unit_level_overrides_config ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 699 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 66.76s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mana-4e979a593f032e05)
[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/adopt_test.rs (/opt/rustwide/target/debug/deps/adopt_test-39809a140b5b16ce)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test test_adopt_error_missing_parent ... ok
[INFO] [stdout] test test_adopt_error_missing_child ... ok
[INFO] [stdout] test test_adopt_updates_dependency_references ... ok
[INFO] [stdout] test test_adopt_updates_index ... ok
[INFO] [stdout] test test_adopt_preserves_unit_fields ... ok
[INFO] [stdout] test test_adopt_multiple_children ... ok
[INFO] [stdout] test test_adopt_files_renamed_correctly ... ok
[INFO] [stdout] test test_adopt_unit_already_has_parent ... ok
[INFO] [stdout] test test_adopt_basic_single ... ok
[INFO] [stdout] test test_adopt_continues_numbering_after_existing_children ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/api_test.rs (/opt/rustwide/target/debug/deps/api_test-80c91a19e363e964)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test api_find_mana_dir_discovers_directory ... ok
[INFO] [stdout] test api_get_unit_loads_by_id ... ok
[INFO] [stdout] test api_types_are_serializable ... ok
[INFO] [stdout] test api_re_exports_core_types ... ok
[INFO] [stdout] test api_get_unit_not_found ... ok
[INFO] [stdout] test api_graph_functions_accessible ... ok
[INFO] [stdout] test api_load_index_returns_entries ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/cli_tests.rs (/opt/rustwide/target/debug/deps/cli_tests-4469267278215dbc)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test create_claim_without_criteria_shows_error ... ok
[INFO] [stdout] test create_without_claim_no_criteria_succeeds ... ok
[INFO] [stdout] test create_claim_with_acceptance_succeeds ... ok
[INFO] [stdout] test create_claim_with_parent_no_criteria_succeeds ... ok
[INFO] [stdout] test create_claim_with_verify_succeeds ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.57s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 40 tests
[INFO] [stderr]      Running tests/mcp_test.rs (/opt/rustwide/target/debug/deps/mcp_test-484dab4276612cb2)
[INFO] [stdout] test mcp_context_unit_no_paths ... ok
[INFO] [stdout] test mcp_claim_unit_already_claimed_returns_error ... ok
[INFO] [stdout] test mcp_close_unit_with_passing_verify ... ok
[INFO] [stdout] test mcp_claim_unit_sets_in_progress ... ok
[INFO] [stdout] test mcp_close_unit_force_skips_verify ... ok
[INFO] [stdout] test mcp_json_rpc_request_deserializes ... ok
[INFO] [stdout] test mcp_json_rpc_request_without_id_is_notification ... ok
[INFO] [stdout] test mcp_json_rpc_response_error_serializes ... ok
[INFO] [stdout] test mcp_json_rpc_response_success_serializes ... ok
[INFO] [stdout] test mcp_close_unit_with_failing_verify_returns_error ... ok
[INFO] [stdout] test mcp_create_then_close_roundtrip ... ok
[INFO] [stdout] test mcp_create_unit_basic ... ok
[INFO] [stdout] test mcp_required_tools_have_required_params ... ok
[INFO] [stdout] test mcp_resource_definitions_present ... ok
[INFO] [stdout] test mcp_error_result_has_is_error_flag ... ok
[INFO] [stdout] test mcp_create_unit_missing_title_returns_error ... ok
[INFO] [stdout] test mcp_list_units_filter_by_priority ... ok
[INFO] [stdout] test mcp_create_unit_with_priority ... ok
[INFO] [stdout] test mcp_list_units_returns_all_open ... ok
[INFO] [stdout] test mcp_ready_units_excludes_blocked ... ok
[INFO] [stdout] test mcp_server_dispatch_initialize ... ok
[INFO] [stdout] test mcp_resource_read_rules_missing ... ok
[INFO] [stdout] test mcp_resource_read_rules_present ... ok
[INFO] [stdout] test mcp_resource_read_status ... ok
[INFO] [stdout] test mcp_resource_read_unit ... ok
[INFO] [stdout] test mcp_resource_read_unknown_uri_returns_error ... ok
[INFO] [stdout] test mcp_tool_definitions_have_valid_json_schemas ... ok
[INFO] [stdout] test mcp_tool_definitions_returns_expected_tools ... ok
[INFO] [stdout] test mcp_show_unit_missing_id_returns_error ... ok
[INFO] [stdout] test mcp_show_unit_invalid_id_returns_error ... ok
[INFO] [stdout] test mcp_show_unit_returns_full_details ... ok
[INFO] [stdout] test mcp_status_overview ... ok
[INFO] [stdout] test mcp_status_reports_epics ... ok
[INFO] [stdout] test mcp_tool_call_result_format_matches_spec ... ok
[INFO] [stdout] test mcp_tree_shows_all_units ... ok
[INFO] [stdout] test mcp_verify_unit_no_verify_command ... ok
[INFO] [stdout] test mcp_unknown_tool_returns_error ... ok
[INFO] [stdout] test mcp_tree_with_parent_child ... ok
[INFO] [stdout] test mcp_verify_unit_passing ... ok
[INFO] [stderr]      Running tests/test_ctx_assembler.rs (/opt/rustwide/target/debug/deps/test_ctx_assembler-39f14b68f2494747)
[INFO] [stdout] test mcp_close_unit_verify_timeout_returns_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 40 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.42s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test test_empty_string ... ok
[INFO] [stdout] test test_multiple_paths ... ok
[INFO] [stdout] test test_ignores_urls ... ok
[INFO] [stdout] test test_no_paths ... ok
[INFO] [stdout] test test_deeply_nested_paths ... ok
[INFO] [stdout] test test_ignores_absolute_paths ... ok
[INFO] [stdout] test test_go_and_java_extensions ... ok
[INFO] [stdout] test test_mixed_valid_and_invalid ... ok
[INFO] [stdout] test test_path_at_start_of_string ... ok
[INFO] [stdout] test test_paths_with_hyphens ... ok
[INFO] [stdout] test test_path_in_middle_of_sentence ... ok
[INFO] [stdout] test test_adjacent_paths ... ok
[INFO] [stdout] test test_deduplicate_paths ... ok
[INFO] [stdout] test test_path_at_end_of_string ... ok
[INFO] [stdout] test test_paths_with_underscores ... ok
[INFO] [stdout] test test_shell_script_extension ... ok
[INFO] [stdout] test test_single_path ... ok
[INFO] [stdout] test test_yaml_and_json_extensions ... ok
[INFO] [stdout] test test_various_extensions ... ok
[INFO] [stdout] test test_with_punctuation ... ok
[INFO] [stdout] test test_order_of_appearance ... ok
[INFO] [stdout] test test_paths_with_numbers ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mana_core-8272465e83ee0c55)
[INFO] [stdout] 
[INFO] [stdout] running 739 tests
[INFO] [stdout] test agent_presets::tests::all_presets_returns_at_least_three ... ok
[INFO] [stdout] test agent_presets::tests::all_templates_contain_id_placeholder ... ok
[INFO] [stdout] test agent_presets::tests::get_preset_claude ... ok
[INFO] [stdout] test agent_presets::tests::get_preset_is_case_insensitive ... ok
[INFO] [stdout] test agent_presets::tests::get_preset_pi_returns_correct_templates ... ok
[INFO] [stdout] test agent_presets::tests::plan_cmd_expands_id ... ok
[INFO] [stdout] test agent_presets::tests::get_preset_nonexistent_returns_none ... ok
[INFO] [stdout] test blocking::tests::blocking_deps_still_block_unscoped_units ... ok
[INFO] [stdout] test blocking::tests::blocking_deps_still_block_oversized_units ... ok
[INFO] [stdout] test blocking::tests::blocking_no_duplicate_when_dep_and_requires_overlap ... ok
[INFO] [stdout] test blocking::tests::blocking_not_blocked_when_deps_closed ... ok
[INFO] [stdout] test blocking::tests::blocking_not_blocked_when_producer_closed ... ok
[INFO] [stdout] test blocking::tests::blocking_waiting_on_multiple_deps ... ok
[INFO] [stdout] test blocking::tests::blocking_waiting_on_open_dep ... ok
[INFO] [stdout] test blocking::tests::blocking_waiting_on_sibling_producer ... ok
[INFO] [stdout] test blocking::tests::not_blocked_with_paths_only ... ok
[INFO] [stdout] test blocking::tests::blocking_waiting_on_missing_dep ... ok
[INFO] [stdout] test blocking::tests::unscoped_unit_is_not_blocked ... ok
[INFO] [stdout] test blocking::tests::warning_display_oversized ... ok
[INFO] [stdout] test blocking::tests::blocking_display_waiting_on ... ok
[INFO] [stdout] test blocking::tests::not_blocked_with_produces_only ... ok
[INFO] [stdout] test blocking::tests::warning_oversized_too_many_paths ... ok
[INFO] [stdout] test blocking::tests::warning_oversized_too_many_produces ... ok
[INFO] [stdout] test blocking::tests::warning_not_oversized_at_threshold ... ok
[INFO] [stdout] test config::tests::auto_close_parent_can_be_disabled ... ok
[INFO] [stdout] test config::tests::config_round_trips_through_yaml ... ok
[INFO] [stdout] test agent_presets::tests::detect_agents_returns_vec ... ok
[INFO] [stdout] test agent_presets::tests::get_preset_aider ... ok
[INFO] [stdout] test agent_presets::tests::run_cmd_expands_id ... ok
[INFO] [stdout] test config::tests::extends_defaults_to_empty ... ok
[INFO] [stdout] test config::tests::batch_verify_can_be_enabled ... ok
[INFO] [stdout] test config::tests::batch_verify_defaults_to_false ... ok
[INFO] [stdout] test config::tests::auto_close_parent_defaults_to_true ... ok
[INFO] [stdout] test config::tests::batch_verify_not_serialized_when_false ... ok
[INFO] [stdout] test config::tests::extends_circular_detected_and_skipped ... ok
[INFO] [stdout] test config::tests::extends_inherits_max_concurrent ... ok
[INFO] [stdout] test config::tests::extends_empty_loads_normally ... ok
[INFO] [stdout] test config::tests::extends_inherits_plan ... ok
[INFO] [stdout] test config::tests::extends_local_overrides_new_fields ... ok
[INFO] [stdout] test config::tests::extends_local_overrides_parent ... ok
[INFO] [stdout] test config::tests::extends_missing_file_errors ... ok
[INFO] [stdout] test config::tests::extends_inherits_poll_interval ... ok
[INFO] [stdout] test config::tests::extends_not_serialized_when_empty ... ok
[INFO] [stdout] test config::tests::increment_id_returns_current_and_bumps ... ok
[INFO] [stdout] test config::tests::extends_single_merges_fields ... ok
[INFO] [stdout] test config::tests::load_with_extends_inherits_defaults_from_extended_config ... ok
[INFO] [stdout] test config::tests::load_returns_error_for_invalid_yaml ... ok
[INFO] [stdout] test config::tests::load_returns_error_for_missing_file ... ok
[INFO] [stdout] test config::tests::extends_project_and_next_id_never_inherited ... ok
[INFO] [stdout] test config::tests::extends_recursive_a_extends_b_extends_c ... ok
[INFO] [stdout] test config::tests::max_loops_can_be_customized ... ok
[INFO] [stdout] test config::tests::load_with_extends_inherits_global_defaults ... ok
[INFO] [stdout] test config::tests::load_with_extends_prefers_project_over_global_defaults ... ok
[INFO] [stdout] test config::tests::plan_defaults_to_none ... ok
[INFO] [stdout] test config::tests::plan_not_serialized_when_none ... ok
[INFO] [stdout] test config::tests::poll_interval_can_be_customized ... ok
[INFO] [stdout] test config::tests::poll_interval_defaults_to_30 ... ok
[INFO] [stdout] test config::tests::plan_can_be_set ... ok
[INFO] [stdout] test config::tests::max_loops_defaults_to_10 ... ok
[INFO] [stdout] test config::tests::run_can_be_set ... ok
[INFO] [stdout] test config::tests::run_defaults_to_none ... ok
[INFO] [stdout] test config::tests::save_creates_file_that_is_valid_yaml ... ok
[INFO] [stdout] test config::tests::run_not_serialized_when_none ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_empty_paths ... ok
[INFO] [stdout] test config::tests::extends_tilde_resolves_to_home_dir ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_multiple_files ... ok
[INFO] [stdout] test config::tests::max_tokens_in_yaml_silently_ignored ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_rejects_symlink_escape ... ok
[INFO] [stdout] test config::tests::max_concurrent_can_be_customized ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_skips_missing_files ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_single_file ... ok
[INFO] [stdout] test ctx_assembler::tests::test_deeply_nested_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_assemble_context_preserves_content ... ok
[INFO] [stdout] test config::tests::max_concurrent_defaults_to_4 ... ok
[INFO] [stdout] test ctx_assembler::tests::test_adjacent_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_allows_dots_in_filenames ... ok
[INFO] [stdout] test config::tests::new_fields_round_trip_through_yaml ... ok
[INFO] [stdout] test ctx_assembler::tests::test_deduplicate_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_go ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_java ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_json ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_rust ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_markdown ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_tsx ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_unknown ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_yaml ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_typescript ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_shell ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_toml ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_python ... ok
[INFO] [stdout] test ctx_assembler::tests::test_format_file_block_json ... ok
[INFO] [stdout] test ctx_assembler::tests::test_format_file_block_multiline ... ok
[INFO] [stdout] test ctx_assembler::tests::test_detect_language_yml ... ok
[INFO] [stdout] test ctx_assembler::tests::test_ignores_urls ... ok
[INFO] [stdout] test ctx_assembler::tests::test_empty_string ... ok
[INFO] [stdout] test ctx_assembler::tests::test_ignores_absolute_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_go_and_java_extensions ... ok
[INFO] [stdout] test ctx_assembler::tests::test_format_file_block_python ... ok
[INFO] [stdout] test ctx_assembler::tests::test_format_file_block_rust ... ok
[INFO] [stdout] test ctx_assembler::tests::test_no_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_multiple_paths ... ok
[INFO] [stdout] test ctx_assembler::tests::test_order_of_appearance ... ok
[INFO] [stdout] test ctx_assembler::tests::test_path_at_end_of_string ... ok
[INFO] [stdout] test ctx_assembler::tests::test_mixed_valid_and_invalid ... ok
[INFO] [stdout] test ctx_assembler::tests::test_path_at_start_of_string ... ok
[INFO] [stdout] test ctx_assembler::tests::test_path_in_middle_of_sentence ... ok
[INFO] [stdout] test ctx_assembler::tests::test_paths_with_numbers ... ok
[INFO] [stdout] test ctx_assembler::tests::test_read_file_rejects_non_utf8 ... ok
[INFO] [stdout] test ctx_assembler::tests::test_paths_with_hyphens ... ok
[INFO] [stdout] test ctx_assembler::tests::test_rejects_traversal_keeps_valid ... ok
[INFO] [stdout] test ctx_assembler::tests::test_shell_script_extension ... ok
[INFO] [stdout] test ctx_assembler::tests::test_single_path ... ok
[INFO] [stdout] test ctx_assembler::tests::test_paths_with_underscores ... ok
[INFO] [stdout] test ctx_assembler::tests::test_tsx_extension ... ok
[INFO] [stdout] test ctx_assembler::tests::test_read_file_binary ... ok
[INFO] [stdout] test ctx_assembler::tests::test_rejects_parent_traversal ... ok
[INFO] [stdout] test ctx_assembler::tests::test_yml_extension ... ok
[INFO] [stdout] test ctx_assembler::tests::test_various_extensions ... ok
[INFO] [stdout] test ctx_assembler::tests::test_with_punctuation ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_basic ... ok
[INFO] [stdout] test ctx_assembler::tests::test_read_file_success ... ok
[INFO] [stdout] test ctx_assembler::tests::test_read_file_missing ... ok
[INFO] [stdout] test ctx_assembler::tests::test_rejects_mid_path_traversal ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_yaml_extension ... ok
[INFO] [stdout] test ctx_assembler::tests::test_yaml_and_json_extensions ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_hierarchical_id ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_long_slug ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_single_digit_month ... ok
[INFO] [stdout] test discovery::tests::archive_path_for_unit_three_level_id ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_ignores_non_matching_ids ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_hierarchical_id ... ok
[INFO] [stdout] test ctx_assembler::tests::test_read_file_rejects_oversized ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_multiple_years ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_no_archive_dir ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_with_long_slug ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_multiple_months ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_simple_id ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_three_level_id ... ok
[INFO] [stdout] test discovery::tests::find_outermost_prefers_highest_ancestor_mana_dir ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_validates_id ... ok
[INFO] [stdout] test discovery::tests::find_archived_unit_not_found ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_hierarchical_id ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_handles_numeric_id_prefix_matching ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_not_found ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_simple_id ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_validates_empty_id ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_prefers_md_over_yaml ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_rejects_special_chars_in_id ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_returns_first_match ... ok
[INFO] [stdout] test discovery::tests::finds_units_in_current_dir ... ok
[INFO] [stdout] test discovery::tests::finds_units_in_grandparent_dir ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_with_special_chars_in_slug ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_with_long_slug ... ok
[INFO] [stdout] test discovery::tests::finds_units_in_parent_dir ... ok
[INFO] [stdout] test failure::tests::count_tool_counts_all_occurrences ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_ignores_files_without_proper_prefix ... ok
[INFO] [stdout] test failure::tests::extract_files_skips_multi_word_args ... ok
[INFO] [stdout] test discovery::tests::returns_error_when_no_units_exists ... ok
[INFO] [stdout] test failure::tests::extract_last_tools_returns_last_n ... ok
[INFO] [stdout] test failure::tests::extract_tool_paths_deduplicates ... ok
[INFO] [stdout] test failure::tests::extract_last_tools_returns_all_when_fewer_than_n ... ok
[INFO] [stdout] test failure::tests::format_duration_exact_minutes ... ok
[INFO] [stdout] test failure::tests::extract_tool_paths_returns_empty_for_missing_tool ... ok
[INFO] [stdout] test failure::tests::format_duration_seconds_only ... ok
[INFO] [stdout] test failure::tests::format_duration_minutes_and_seconds ... ok
[INFO] [stdout] test failure::tests::format_tokens_raw ... ok
[INFO] [stdout] test failure::tests::format_tokens_millions ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_supports_legacy_yaml_files ... ok
[INFO] [stdout] test failure::tests::format_tokens_thousands ... ok
[INFO] [stdout] test failure::tests::singular_bash_command ... ok
[INFO] [stdout] test failure::tests::suggestion_claim ... ok
[INFO] [stdout] test failure::tests::suggestion_aborted ... ok
[INFO] [stdout] test failure::tests::suggestion_exit_code ... ok
[INFO] [stdout] test failure::tests::suggestion_idle_timeout_more_specific ... ok
[INFO] [stdout] test failure::tests::suggestion_none_for_unknown_error ... ok
[INFO] [stdout] test failure::tests::summarize_paths_more_than_three ... ok
[INFO] [stdout] test failure::tests::summarize_paths_three_or_fewer ... ok
[INFO] [stdout] test failure::tests::summary_contains_all_sections ... ok
[INFO] [stdout] test failure::tests::summary_without_error_shows_unknown ... ok
[INFO] [stdout] test failure::tests::suggestion_timeout_generic ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_validates_id ... ok
[INFO] [stdout] test discovery::tests::finds_units_through_symlinked_start_path ... ok
[INFO] [stdout] test discovery::tests::find_unit_file_three_level_id ... ok
[INFO] [stdout] test graph::tests::detect_self_cycle ... ok
[INFO] [stdout] test graph::tests::detect_three_node_cycle ... ok
[INFO] [stdout] test graph::tests::detect_two_node_cycle ... ok
[INFO] [stdout] test graph::tests::no_cycle_linear_chain ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_includes_archived_units ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_sums_all_descendants ... ok
[INFO] [stdout] test handle::tests::handle_generation_falls_back_for_short_titles ... ok
[INFO] [stdout] test handle::tests::handle_generation_ignores_punctuation_and_numbers_when_possible ... ok
[INFO] [stdout] test handle::tests::handle_generation_keeps_three_meaningful_words ... ok
[INFO] [stdout] test handle::tests::normalize_handle_matches_generated_shape ... ok
[INFO] [stdout] test discovery::tests::prefers_closest_mana_dir ... ok
[INFO] [stdout] test failure::tests::extract_files_deduplicates_across_tools ... ok
[INFO] [stdout] test history::tests::append_creates_file_and_writes_valid_jsonl ... ok
[INFO] [stdout] test history::tests::append_error_field_serialized_when_present ... ok
[INFO] [stdout] test history::tests::append_swallows_errors_on_missing_dir ... ok
[INFO] [stdout] test hooks::tests::test_create_trust_creates_trust_file ... ok
[INFO] [stdout] test history::tests::append_error_field_null_when_none ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_zero_attempts_everywhere ... ok
[INFO] [stdout] test history::tests::append_appends_multiple_lines ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_single_unit_no_children ... ok
[INFO] [stdout] test hooks::tests::test_execute_config_hook_failure_does_not_panic ... ok
[INFO] [stdout] test hooks::tests::test_execute_hook_respects_non_trusted_status ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_empty_template ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_missing_vars_left_as_is ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_multiple_same_var ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_no_placeholders ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_output_truncated_to_1000_chars ... ok
[INFO] [stdout] test hooks::tests::test_expand_template_with_all_vars ... ok
[INFO] [stdout] test hooks::tests::test_execute_hook_skips_when_not_trusted ... ok
[INFO] [stdout] test hooks::tests::test_get_hook_path ... ok
[INFO] [stdout] test hooks::tests::test_hook_event_string_representation ... ok
[INFO] [stdout] test hooks::tests::test_hook_payload_serializes_to_json ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_subtree_only ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_includes_root ... ok
[INFO] [stdout] test graph::tests::subtree_attempts_unknown_root_returns_zero ... ok
[INFO] [stdout] test hooks::tests::test_hook_payload_with_all_unit_fields ... ok
[INFO] [stdout] test hooks::tests::test_hook_payload_with_reason ... ok
[INFO] [stdout] test hooks::tests::test_is_hook_executable_with_executable_file ... ok
[INFO] [stdout] test hooks::tests::test_is_hook_executable_with_non_executable_file ... ok
[INFO] [stdout] test hooks::tests::test_is_hook_executable_with_missing_file ... ok
[INFO] [stdout] test hooks::tests::test_is_trusted_returns_true_when_trust_file_exists ... ok
[INFO] [stdout] test hooks::tests::test_is_trusted_returns_false_when_trust_file_does_not_exist ... ok
[INFO] [stdout] test hooks::tests::test_hook_receives_json_payload_on_stdin ... ok
[INFO] [stdout] test hooks::tests::test_revoke_trust_errors_if_file_does_not_exist ... ok
[INFO] [stdout] test hooks::tests::test_missing_hook_returns_ok_true ... ok
[INFO] [stdout] test hooks::tests::test_revoke_trust_removes_trust_file ... ok
[INFO] [stdout] test hooks::tests::test_non_executable_hook_returns_error ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_append_deduplicates ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_build_empty_when_no_archive_dir ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_build_from_archive_dir ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_is_stale_when_no_archive_yaml ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_load_or_rebuild_returns_empty_when_no_archive ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_load_or_rebuild_builds_when_stale ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_not_stale_after_build_and_save ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_remove ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_save_load_roundtrip ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_not_stale_when_no_archive_dir ... ok
[INFO] [stdout] test index::archive_tests::collect_archived_empty_when_no_archive ... ok
[INFO] [stdout] test index::archive_tests::collect_archived_finds_units ... ok
[INFO] [stdout] test index::format_count_tests::count_unit_formats_empty_dir ... ok
[INFO] [stdout] test index::format_count_tests::count_unit_formats_excludes_config_files ... ok
[INFO] [stdout] test index::format_count_tests::count_unit_formats_mixed ... ok
[INFO] [stdout] test index::format_count_tests::count_unit_formats_only_md ... ok
[INFO] [stdout] test index::archive_index_tests::archive_index_stale_when_file_newer ... ok
[INFO] [stdout] test index::tests::build_detects_duplicate_ids ... ok
[INFO] [stdout] test index::tests::build_detects_multiple_duplicate_ids ... ok
[INFO] [stdout] test index::tests::build_empty_directory ... ok
[INFO] [stdout] test index::format_count_tests::count_unit_formats_only_yaml ... ok
[INFO] [stdout] test index::tests::build_excludes_index_and_unit_yaml ... ok
[INFO] [stdout] test index::tests::build_extracts_fields_correctly ... ok
[INFO] [stdout] test index::tests::index_entry_preserves_kind ... ok
[INFO] [stdout] test index::tests::build_reads_all_units_and_excludes_config ... ok
[INFO] [stdout] test hooks::tests::test_execute_hook_runs_when_trusted ... ok
[INFO] [stdout] test hooks::tests::test_hook_execution_with_failure_exit_code ... ok
[INFO] [stdout] test index::tests::is_stale_when_index_missing ... ok
[INFO] [stdout] test hooks::tests::test_successful_hook_execution ... ok
[INFO] [stdout] test index::tests::load_or_rebuild_loads_when_fresh ... ok
[INFO] [stdout] test index::tests::load_or_rebuild_builds_when_no_index ... ok
[INFO] [stdout] test index::tests::is_stale_ignores_non_yaml ... ok
[INFO] [stdout] test index::tests::is_stale_when_yaml_newer_than_index ... ok
[INFO] [stdout] test index::tests::load_or_rebuild_rebuilds_when_fresh_cached_index_panics_parser ... ok
[INFO] [stdout] test index::tests::natural_sort_basic ... ok
[INFO] [stdout] test index::tests::natural_sort_dotted_ids ... ok
[INFO] [stdout] test index::tests::natural_sort_full_sequence ... ok
[INFO] [stdout] test index::tests::natural_sort_numeric_not_lexicographic ... ok
[INFO] [stdout] test hooks::tests::test_execute_config_hook_with_template_expansion ... ok
[INFO] [stdout] test hooks::tests::test_execute_config_hook_writes_to_file ... ok
[INFO] [stdout] test index::tests::locked_index_creates_lock_file ... ok
[INFO] [stdout] test locks::tests::acquire_and_release_via_unit ... ok
[INFO] [stdout] test locks::tests::acquire_cleans_stale_and_succeeds ... ok
[INFO] [stdout] test locks::tests::clear_all_removes_everything ... ok
[INFO] [stdout] test locks::tests::different_owner_blocked_by_live_lock ... ok
[INFO] [stdout] test locks::tests::list_locks_filters_stale ... ok
[INFO] [stdout] test index::tests::locked_index_acquire_and_save ... ok
[INFO] [stdout] test index::tests::not_stale_when_index_is_fresh ... ok
[INFO] [stdout] test index::tests::locked_index_released_on_drop ... ok
[INFO] [stdout] test locks::tests::same_owner_reacquire_is_idempotent ... ok
[INFO] [stdout] test locks::tests::list_locks_returns_all ... ok
[INFO] [stdout] test locks::tests::stale_lock_is_cleaned ... ok
[INFO] [stdout] test ops::adopt::tests::adopt_fails_for_missing_parent ... ok
[INFO] [stdout] test locks::tests::release_all_for_unit_works ... ok
[INFO] [stdout] test index::tests::save_rebuilds_sqlite_index ... ok
[INFO] [stdout] test index::tests::save_and_load_round_trip ... ok
[INFO] [stdout] test index::tests::locked_index_blocks_concurrent_access ... ok
[INFO] [stdout] test ops::adopt::tests::adopt_updates_dependencies ... ok
[INFO] [stdout] test ops::adopt::tests::adopt_single_unit ... ok
[INFO] [stdout] test ops::batch_verify::tests::batch_verify_empty_noop ... ok
[INFO] [stdout] test ops::batch_verify::tests::batch_verify_fails_reopen_units ... ok
[INFO] [stdout] test ops::claim::tests::claim_closed_unit_fails ... ok
[INFO] [stdout] test ops::claim::tests::claim_non_open_unit_fails ... ok
[INFO] [stdout] test ops::batch_verify::tests::batch_verify_passes_close_units ... ok
[INFO] [stdout] test ops::claim::tests::claim_epic_is_goal_even_with_verify ... ok
[INFO] [stdout] test ops::claim::tests::claim_nonexistent_unit_fails ... ok
[INFO] [stdout] test ops::batch_verify::tests::batch_verify_mixed_results ... ok
[INFO] [stdout] test ops::batch_verify::tests::batch_verify_groups_by_command ... ok
[INFO] [stdout] test ops::claim::tests::claim_rebuilds_index ... ok
[INFO] [stdout] test ops::claim::tests::claim_starts_attempt ... ok
[INFO] [stdout] test ops::claim::tests::claim_open_unit ... ok
[INFO] [stdout] test ops::claim::tests::claim_stuck_in_progress_without_release_fails ... ok
[INFO] [stdout] test ops::claim::tests::claim_unit_with_empty_verify_is_goal ... ok
[INFO] [stdout] test ops::claim::tests::claim_unit_with_verify_is_not_goal ... ok
[INFO] [stdout] test ops::claim::tests::claim_unit_without_verify_is_goal ... ok
[INFO] [stdout] test ops::claim::tests::release_nonexistent_unit_fails ... ok
[INFO] [stdout] test ops::claim::tests::claim_without_git_repo_leaves_checkpoint_empty ... ok
[INFO] [stdout] test ops::claim::tests::claim_without_by ... ok
[INFO] [stdout] test ops::claim::tests::multiple_claims_accumulate_attempts ... ok
[INFO] [stdout] test ops::claim::tests::release_claimed_unit ... ok
[INFO] [stdout] test ops::claim::tests::release_marks_attempt_abandoned ... ok
[INFO] [stdout] test ops::claim::tests::pass_ok_claim_also_stores_checkpoint_sha ... ok
[INFO] [stdout] test ops::claim::tests::release_rebuilds_index ... ok
[INFO] [stdout] test ops::close::tests::all_children_closed_when_no_children ... ok
[INFO] [stdout] test ops::close::tests::all_children_closed_when_some_open ... ok
[INFO] [stdout] test ops::close::tests::archive_unit_moves_and_marks ... ok
[INFO] [stdout] test ops::claim::tests::unverified_task_claim_stores_checkpoint_sha_without_verify_hash ... ok
[INFO] [stdout] test ops::claim::tests::verify_on_claim_checkpoint_sha_stored ... ok
[INFO] [stdout] test ops::claim::tests::release_resets_timed_out_in_progress_unit_to_open ... ok
[INFO] [stdout] test ops::close::tests::circuit_breaker_zero_disabled ... ok
[INFO] [stdout] test ops::claim::tests::verify_on_claim_failing_verify_succeeds ... ok
[INFO] [stdout] test ops::close::tests::circuit_breaker_sets_tripped_attempt_pressure ... ok
[INFO] [stdout] test ops::claim::tests::verify_on_claim_force_overrides ... ok
[INFO] [stdout] test ops::claim::tests::verify_on_claim_passing_verify_rejected ... ok
[INFO] [stdout] test ops::close::tests::auto_close_parents_when_all_children_closed ... ok
[INFO] [stdout] test ops::close::tests::auto_close_skips_feature_parents ... ok
[INFO] [stdout] test ops::close::tests::close_defer_normal_unchanged ... ok
[INFO] [stdout] test ops::close::tests::close_feature_returns_requires_human ... ok
[INFO] [stdout] test ops::close::tests::close_allows_pass_ok_unit_when_non_mana_changes_exist ... ok
[INFO] [stdout] test ops::close::tests::close_nonexistent_unit ... ok
[INFO] [stdout] test ops::close::tests::close_defer_returns_outcome ... ok
[INFO] [stdout] test ops::close::tests::close_rejects_pass_ok_unit_with_no_non_mana_changes ... ok
[INFO] [stdout] test ops::close::tests::close_auto_commit_preserves_preexisting_staged_changes ... ok
[INFO] [stdout] test ops::close::tests::close_defer_skips_verify ... ok
[INFO] [stdout] test ops::close::tests::close_failed_marks_unit_as_failed ... ok
[INFO] [stdout] test ops::close::tests::close_force_skips_verify ... ok
[INFO] [stdout] test ops::close::tests::expand_commit_template_substitutes_all_placeholders ... ok
[INFO] [stdout] test ops::close::tests::format_failure_note_includes_exit_code ... ok
[INFO] [stdout] test ops::close::tests::process_on_fail_escalate_sets_priority ... ok
[INFO] [stdout] test ops::close::tests::process_on_fail_none ... ok
[INFO] [stdout] test ops::close::tests::process_on_fail_retry_releases_claim ... ok
[INFO] [stdout] test ops::close::tests::record_failure_increments_attempts ... ok
[INFO] [stdout] test ops::close::tests::record_failure_timeout ... ok
[INFO] [stdout] test ops::close::tests::truncate_output_short ... ok
[INFO] [stdout] test ops::close::tests::truncate_to_char_boundary_ascii ... ok
[INFO] [stdout] test ops::close::tests::truncate_to_char_boundary_multibyte ... ok
[INFO] [stdout] test ops::config_cmd::tests::get_commit_template_returns_default_when_unset ... ok
[INFO] [stdout] test ops::config_cmd::tests::get_project ... ok
[INFO] [stdout] test ops::config_cmd::tests::get_unknown_key_returns_error ... ok
[INFO] [stdout] test ops::config_cmd::tests::set_run_stores_and_clears ... ok
[INFO] [stdout] test ops::config_cmd::tests::set_unknown_key_returns_error ... ok
[INFO] [stdout] test ops::close::tests::close_with_failing_verify ... ok
[INFO] [stdout] test ops::close::tests::close_single_unit ... ok
[INFO] [stdout] test ops::close::tests::close_verify_frozen_violation_persists_autonomy_gate ... ok
[INFO] [stdout] test ops::close::tests::close_auto_commit_uses_default_template_and_includes_index_updates ... ok
[INFO] [stdout] test ops::context::tests::extract_python_structure_basic ... ok
[INFO] [stdout] test ops::context::tests::extract_rust_structure_basic ... ok
[INFO] [stdout] test ops::context::tests::extract_ts_structure_basic ... ok
[INFO] [stdout] test ops::context::tests::format_attempt_notes_empty ... ok
[INFO] [stdout] test ops::context::tests::format_attempt_notes_skips_whitespace_only ... ok
[INFO] [stdout] test ops::context::tests::format_attempt_notes_with_data ... ok
[INFO] [stdout] test ops::context::tests::format_attempt_notes_with_unit_notes ... ok
[INFO] [stdout] test ops::context::tests::load_rules_returns_content ... ok
[INFO] [stdout] test ops::context::tests::load_rules_returns_none_when_empty ... ok
[INFO] [stdout] test ops::context::tests::load_rules_returns_none_when_missing ... ok
[INFO] [stdout] test ops::context::tests::merge_paths_deduplicates ... ok
[INFO] [stdout] test ops::close::tests::close_with_reason ... ok
[INFO] [stdout] test ops::context::tests::assemble_context_not_found ... ok
[INFO] [stdout] test ops::close::tests::close_with_passing_verify ... ok
[INFO] [stdout] test ops::context::tests::assemble_agent_context_includes_child_summaries ... ok
[INFO] [stdout] test ops::context::tests::assemble_context_basic ... ok
[INFO] [stdout] test ops::context::tests::assemble_context_with_files ... ok
[INFO] [stdout] test ops::context::tests::summarize_child_units_includes_recent_outcome_summary_and_follow_up ... ok
[INFO] [stdout] test ops::create::tests::create_reports_verify_lint_errors_without_stderr_side_effects ... ok
[INFO] [stdout] test ops::context::tests::summarize_child_units_falls_back_to_closed_status_when_no_attempts_exist ... ok
[INFO] [stdout] test ops::delete::tests::delete_nonexistent ... ok
[INFO] [stdout] test ops::create::tests::create_minimal ... ok
[INFO] [stdout] test ops::create::tests::create_rebuilds_index ... ok
[INFO] [stdout] test ops::create::tests::create_increments ... ok
[INFO] [stdout] test ops::create::tests::create_child ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_add_nonexistent_unit ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_add_self_dependency_rejected ... ok
[INFO] [stdout] test ops::create::tests::create_recovers_from_stale_next_id ... ok
[INFO] [stdout] test ops::delete::tests::delete_cleans_deps ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_add_duplicate_rejected ... ok
[INFO] [stdout] test ops::delete::tests::delete_unit ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_remove_not_found ... ok
[INFO] [stdout] test ops::fact::tests::create_fact_requires_verify ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_add_cycle_detection ... ok
[INFO] [stdout] test ops::delete::tests::delete_rebuilds_index ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_add_simple ... ok
[INFO] [stdout] test ops::fact_sheet::tests::missing_facts_file_checks_cleanly ... ok
[INFO] [stdout] test ops::fact_sheet::tests::parse_rejects_duplicate_anchors ... ok
[INFO] [stdout] test ops::fact_sheet::tests::parse_rejects_unknown_status ... ok
[INFO] [stdout] test ops::fact_sheet::tests::parse_single_line_facts_with_sections_refs_and_anchors ... ok
[INFO] [stdout] test ops::init::tests::init_creates_config ... ok
[INFO] [stdout] test ops::init::tests::init_creates_mana_dir ... ok
[INFO] [stdout] test ops::init::tests::init_creates_rules_md ... ok
[INFO] [stdout] test ops::init::tests::init_does_not_overwrite_rules_md ... ok
[INFO] [stdout] test ops::init::tests::init_preserves_next_id_on_reinit ... ok
[INFO] [stdout] test ops::init::tests::init_with_run_and_plan ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_list_with_dependencies ... ok
[INFO] [stdout] test ops::dep::tests::test_dep_remove ... ok
[INFO] [stdout] test ops::fact::tests::create_fact_with_paths ... ok
[INFO] [stdout] test ops::fact_sheet::tests::check_verified_fact_fails_for_open_backing_unit ... ok
[INFO] [stdout] test ops::fact::tests::create_fact_with_custom_ttl ... ok
[INFO] [stdout] test ops::fact::tests::create_fact_sets_unit_type ... ok
[INFO] [stdout] test ops::list::tests::list_all ... ok
[INFO] [stdout] test ops::memory_context::tests::memory_context_empty ... ok
[INFO] [stdout] test ops::list::tests::list_filter_assignee ... ok
[INFO] [stdout] test ops::memory_context::tests::memory_context_shows_claimed_units ... ok
[INFO] [stdout] test ops::list::tests::list_filter_parent ... ok
[INFO] [stdout] test ops::list::tests::list_filter_priority ... ok
[INFO] [stdout] test ops::move_units::tests::move_fails_for_same_directory ... ok
[INFO] [stdout] test ops::move_units::tests::resolve_fails_for_no_units ... ok
[INFO] [stdout] test ops::move_units::tests::resolve_with_mana_dir ... ok
[INFO] [stdout] test ops::move_units::tests::resolve_with_project_dir ... ok
[INFO] [stdout] test ops::mutate::tests::apply_mutation_deletes_line ... ok
[INFO] [stdout] test ops::mutate::tests::apply_mutation_first_line ... ok
[INFO] [stdout] test ops::mutate::tests::apply_mutation_last_line ... ok
[INFO] [stdout] test ops::mutate::tests::generate_arithmetic_mutations ... ok
[INFO] [stdout] test ops::mutate::tests::generate_boolean_mutations ... ok
[INFO] [stdout] test ops::mutate::tests::generate_boolean_word_boundary ... ok
[INFO] [stdout] test ops::mutate::tests::generate_comparison_mutations ... ok
[INFO] [stdout] test ops::mutate::tests::apply_mutation_replaces_line ... ok
[INFO] [stdout] test ops::mutate::tests::generate_delete_mutations ... ok
[INFO] [stdout] test ops::mutate::tests::generate_logical_mutations ... ok
[INFO] [stdout] test ops::list::tests::list_filter_current_user_matches_claimed_or_assigned ... ok
[INFO] [stdout] test ops::list::tests::list_excludes_closed ... ok
[INFO] [stdout] test ops::mutate::tests::mutation_test_kills_mutant ... ok
[INFO] [stdout] test ops::mutate::tests::parse_hunk_header_no_plus ... ok
[INFO] [stdout] test ops::mutate::tests::parse_hunk_header_single_line ... ok
[INFO] [stdout] test ops::mutate::tests::parse_hunk_header_with_count ... ok
[INFO] [stdout] test ops::mutate::tests::parse_unified_diff_basic ... ok
[INFO] [stdout] test ops::mutate::tests::parse_unified_diff_empty ... ok
[INFO] [stdout] test ops::mutate::tests::parse_unified_diff_multiple_files ... ok
[INFO] [stdout] test ops::mutate::tests::skip_comment_lines ... ok
[INFO] [stdout] test ops::mutate::tests::skip_import_lines_for_arithmetic ... ok
[INFO] [stdout] test ops::mutate::tests::skip_trivial_lines ... ok
[INFO] [stdout] test ops::plan::tests::build_prompt_custom_strategy_passed_through ... ok
[INFO] [stdout] test ops::plan::tests::build_prompt_includes_produces_requires ... ok
[INFO] [stdout] test ops::plan::tests::build_prompt_includes_rules ... ok
[INFO] [stdout] test ops::plan::tests::build_prompt_with_strategy ... ok
[INFO] [stdout] test ops::plan::tests::shell_escape_simple ... ok
[INFO] [stdout] test ops::plan::tests::shell_escape_with_quotes ... ok
[INFO] [stdout] test ops::recall::tests::score_match_description ... ok
[INFO] [stdout] test ops::recall::tests::score_match_paths ... ok
[INFO] [stdout] test ops::recall::tests::score_match_title ... ok
[INFO] [stdout] test ops::recall::tests::title_scores_higher_than_description ... ok
[INFO] [stdout] test ops::mutate::tests::mutation_test_max_mutants ... ok
[INFO] [stdout] test ops::mutate::tests::mutation_test_no_diff ... ok
[INFO] [stdout] test ops::reopen::tests::reopen_nonexistent ... ok
[INFO] [stdout] test ops::mutate::tests::mutation_test_detects_survivor ... ok
[INFO] [stdout] test ops::memory_context::tests::memory_context_shows_stale_facts ... ok
[INFO] [stdout] test ops::run::tests::all_deps_closed_active_closed_dep_satisfied ... ok
[INFO] [stdout] test ops::run::tests::all_deps_closed_active_open_dep_unsatisfied ... ok
[INFO] [stdout] test ops::run::tests::all_deps_closed_archived_dep_satisfied ... ok
[INFO] [stdout] test ops::run::tests::all_deps_closed_missing_dep_unsatisfied ... ok
[INFO] [stdout] test ops::move_units::tests::move_clears_parent_and_deps ... ok
[INFO] [stdout] test ops::run::tests::sort_units_by_priority_then_weight ... ok
[INFO] [stdout] test ops::run::tests::sort_units_same_priority_higher_weight_first ... ok
[INFO] [stdout] test ops::run::tests::unit_not_ready_dep_not_completed ... ok
[INFO] [stdout] test ops::run::tests::unit_ready_dep_completed ... ok
[INFO] [stdout] test ops::run::tests::unit_ready_dep_outside_dispatch_set ... ok
[INFO] [stdout] test ops::run::tests::unit_ready_no_deps ... ok
[INFO] [stdout] test ops::reparent::tests::reparent_rejects_missing_parent_and_cycles ... ok
[INFO] [stdout] test ops::run::tests::weights_diamond ... ok
[INFO] [stdout] test ops::run::tests::weights_linear_chain ... ok
[INFO] [stdout] test ops::run::tests::weights_single_unit ... ok
[INFO] [stdout] test ops::move_units::tests::move_single_unit ... ok
[INFO] [stdout] test ops::reopen::tests::reopen_closed_unit ... ok
[INFO] [stdout] test ops::reopen::tests::reopen_rebuilds_index ... ok
[INFO] [stdout] test ops::stats::tests::aggregate_cost_no_history ... ok
[INFO] [stdout] test ops::stats::tests::aggregate_cost_with_history ... ok
[INFO] [stdout] test ops::run::tests::run_only_dispatches_jobs ... ok
[INFO] [stdout] test ops::reparent::tests::reparent_moves_child_between_parents_and_rebuilds_index ... ok
[INFO] [stdout] test ops::run::tests::unresolved_decisions_become_canonical_blocked_reason ... ok
[INFO] [stdout] test ops::show::tests::get_archived_when_active_missing ... ok
[INFO] [stdout] test ops::show::tests::get_existing ... ok
[INFO] [stdout] test ops::status::tests::awaiting_verify_appears_in_claimed ... ok
[INFO] [stdout] test ops::stats::tests::stats_computes_counts ... ok
[INFO] [stdout] test ops::show::tests::get_nonexistent ... ok
[INFO] [stdout] test ops::stats::tests::stats_empty_project ... ok
[INFO] [stdout] test ops::status::tests::status_archived_dep_not_blocking ... ok
[INFO] [stdout] test ops::status::tests::status_empty_project ... ok
[INFO] [stdout] test ops::status::tests::status_categorizes_units ... ok
[INFO] [stdout] test ops::sync::tests::sync_empty_project ... ok
[INFO] [stdout] test ops::status::tests::status_groups_by_kind ... ok
[INFO] [stdout] test ops::status::tests::status_detects_blocked ... ok
[INFO] [stdout] test ops::status::tests::status_skips_closed ... ok
[INFO] [stdout] test ops::sync::tests::sync_rebuilds_archive ... ok
[INFO] [stdout] test ops::sync::tests::sync_rebuilds_index ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_archives_closed_units ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_empty_project ... ok
[INFO] [stdout] test ops::unarchive::tests::unarchive_already_in_main_dir ... ok
[INFO] [stdout] test ops::unarchive::tests::unarchive_nonexistent ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_leaves_open_units_alone ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_dry_run_does_not_move_files ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_skips_closed_parent_with_open_children ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_releases_stale_in_progress_units ... ok
[INFO] [stdout] test ops::tidy::tests::tidy_skips_in_progress_when_agents_running ... ok
[INFO] [stdout] test ops::unarchive::tests::unarchive_basic ... ok
[INFO] [stdout] test ops::unarchive::tests::unarchive_preserves_data ... ok
[INFO] [stdout] test ops::unarchive::tests::unarchive_updates_index ... ok
[INFO] [stdout] test ops::verify::tests::run_verify_command_directly ... ok
[INFO] [stdout] test ops::update::tests::update_nonexistent ... ok
[INFO] [stdout] test ops::update::tests::update_appends_notes ... ok
[INFO] [stdout] test ops::update::tests::update_rebuilds_index ... ok
[INFO] [stdout] test ops::update::tests::update_status ... ok
[INFO] [stdout] test ops::update::tests::update_title ... ok
[INFO] [stdout] test prompt::tests::approach_contains_unit_id ... ok
[INFO] [stdout] test prompt::tests::build_prompt_minimal_unit ... ok
[INFO] [stdout] test prompt::tests::build_prompt_no_verify ... ok
[INFO] [stdout] test ops::verify::tests::verify_captures_stderr ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_acceptance_criteria ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_concurrent_overlaps ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_file_references ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_instructions ... ok
[INFO] [stdout] test ops::verify::tests::verify_failing_command ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_previous_attempts ... ok
[INFO] [stdout] test prompt::tests::concurrent_warning_multiple_overlaps ... ok
[INFO] [stdout] test prompt::tests::concurrent_warning_single_overlap ... ok
[INFO] [stdout] test prompt::tests::constraints_contains_unit_id ... ok
[INFO] [stdout] test prompt::tests::detect_language_known_extensions ... ok
[INFO] [stdout] test prompt::tests::detect_language_unknown_extension ... ok
[INFO] [stdout] test prompt::tests::file_context_caps_total_chars ... ok
[INFO] [stdout] test prompt::tests::file_context_no_paths ... ok
[INFO] [stdout] test prompt::tests::file_context_reads_existing_files ... ok
[INFO] [stdout] test prompt::tests::build_prompt_with_rules ... ok
[INFO] [stdout] test prompt::tests::file_context_skips_missing_files ... ok
[INFO] [stdout] test prompt::tests::load_rules_returns_none_when_empty ... ok
[INFO] [stdout] test prompt::tests::load_rules_returns_content ... ok
[INFO] [stdout] test prompt::tests::load_rules_returns_none_when_missing ... ok
[INFO] [stdout] test prompt::tests::parent_context_caps_total_chars ... ok
[INFO] [stdout] test prompt::tests::parent_context_grandparent_appears_first ... ok
[INFO] [stdout] test prompt::tests::parent_context_no_parent ... ok
[INFO] [stdout] test prompt::tests::previous_attempts_no_notes ... ok
[INFO] [stdout] test ops::verify::tests::verify_no_command_returns_none ... ok
[INFO] [stdout] test prompt::tests::previous_attempts_with_notes ... ok
[INFO] [stdout] test prompt::tests::parent_context_single_parent ... ok
[INFO] [stdout] test prompt::tests::prioritized_paths_deduplicates ... ok
[INFO] [stdout] test prompt::tests::prioritized_paths_create_first ... ok
[INFO] [stdout] test prompt::tests::prioritized_paths_empty ... ok
[INFO] [stdout] test prompt::tests::prioritized_paths_modify_first ... ok
[INFO] [stdout] test prompt::tests::prioritized_paths_no_keywords ... ok
[INFO] [stdout] test prompt::tests::sibling_discoveries_no_parent ... ok
[INFO] [stdout] test ops::verify::tests::verify_nonexistent_unit ... ok
[INFO] [stdout] test prompt::tests::tool_strategy_mentions_key_tools ... ok
[INFO] [stdout] test prompt::tests::truncate_text_at_limit ... ok
[INFO] [stdout] test prompt::tests::truncate_text_over_limit ... ok
[INFO] [stdout] test prompt::tests::truncate_text_short ... ok
[INFO] [stdout] test prompt::tests::verify_gate_with_command ... ok
[INFO] [stdout] test prompt::tests::verify_gate_without_command ... ok
[INFO] [stdout] test relevance::tests::test_paths_no_overlap ... ok
[INFO] [stdout] test relevance::tests::test_paths_overlap_exact ... ok
[INFO] [stdout] test relevance::tests::test_paths_overlap_prefix ... ok
[INFO] [stdout] test relevance::tests::test_relevance_score_combined ... ok
[INFO] [stdout] test relevance::tests::test_relevance_score_dependency_match ... ok
[INFO] [stdout] test relevance::tests::test_relevance_score_path_overlap ... ok
[INFO] [stdout] test prompt::tests::build_prompt_section_order ... ok
[INFO] [stdout] test ops::verify::tests::verify_passing_command ... ok
[INFO] [stdout] test prompt::tests::sibling_discoveries_finds_closed_with_discover ... ok
[INFO] [stdout] test prompt::tests::sibling_discoveries_skips_non_discover_notes ... ok
[INFO] [stdout] test prompt::tests::sibling_discoveries_skips_open_siblings ... ok
[INFO] [stdout] test resolve::tests::resolve_unit_finds_unique_handle ... ok
[INFO] [stdout] test sqlite::tests::initializes_schema_and_metadata ... ok
[INFO] [stdout] test resolve::tests::resolve_unit_reports_ambiguous_handle ... ok
[INFO] [stdout] test unit::tests::autonomy_disposition_round_trips_on_unit ... ok
[INFO] [stdout] test unit::tests::defaults_are_correct ... ok
[INFO] [stdout] test unit::tests::deserialize_with_missing_optional_fields ... ok
[INFO] [stdout] test unit::tests::epic_is_not_dispatchable ... ok
[INFO] [stdout] test unit::tests::feature_semantics_preserve_human_review ... ok
[INFO] [stdout] test unit::tests::file_round_trip ... ok
[INFO] [stdout] test unit::tests::history_deserialized_from_yaml ... ok
[INFO] [stdout] test unit::tests::history_empty_not_serialized ... ok
[INFO] [stdout] test unit::tests::history_round_trip_yaml ... ok
[INFO] [stdout] test unit::tests::kind_infers_from_legacy_fields ... ok
[INFO] [stdout] test unit::tests::max_loops_defaults_to_none ... ok
[INFO] [stdout] test unit::tests::max_loops_effective_returns_config_value_when_none ... ok
[INFO] [stdout] test unit::tests::max_loops_effective_returns_unit_value_when_set ... ok
[INFO] [stdout] test unit::tests::max_loops_overrides_config_when_set ... ok
[INFO] [stdout] test unit::tests::max_loops_zero_means_unlimited ... ok
[INFO] [stdout] test unit::tests::on_close_deserialized_from_yaml ... ok
[INFO] [stdout] test unit::tests::on_close_empty_vec_not_serialized ... ok
[INFO] [stdout] test unit::tests::on_close_round_trip_multiple_actions ... ok
[INFO] [stdout] test unit::tests::on_close_round_trip_notify_action ... ok
[INFO] [stdout] test unit::tests::on_close_round_trip_run_action ... ok
[INFO] [stdout] test unit::tests::on_fail_deserialized_from_yaml ... ok
[INFO] [stdout] test unit::tests::on_fail_escalate_deserialized_from_yaml ... ok
[INFO] [stdout] test unit::tests::on_fail_escalate_minimal_round_trip ... ok
[INFO] [stdout] test unit::tests::on_fail_escalate_round_trip ... ok
[INFO] [stdout] test unit::tests::on_fail_none_not_serialized ... ok
[INFO] [stdout] test unit::tests::on_fail_retry_minimal_round_trip ... ok
[INFO] [stdout] test unit::tests::on_fail_retry_round_trip ... ok
[INFO] [stdout] test unit::tests::optional_fields_omitted_when_none ... ok
[INFO] [stdout] test unit::tests::outputs_deserialized_from_yaml ... ok
[INFO] [stdout] test unit::tests::outputs_none_not_serialized ... ok
[INFO] [stdout] test unit::tests::outputs_round_trip_array ... ok
[INFO] [stdout] test unit::tests::outputs_round_trip_nested_object ... ok
[INFO] [stdout] test unit::tests::outputs_round_trip_simple_values ... ok
[INFO] [stdout] test unit::tests::parser_panic_surfaces_as_error_for_invalid_yaml_input ... ok
[INFO] [stdout] test unit::tests::round_trip_full_unit ... ok
[INFO] [stdout] test unit::tests::round_trip_minimal_unit ... ok
[INFO] [stdout] test unit::tests::task_dispatchability_is_explicit ... ok
[INFO] [stdout] test unit::tests::test_fallback_to_yaml_parsing ... ok
[INFO] [stdout] test unit::tests::test_file_round_trip_with_markdown ... ok
[INFO] [stdout] test unit::tests::test_from_file_with_hash ... ok
[INFO] [stdout] test sqlite::tests::rebuild_records_invalid_yaml_without_valid_unit_row ... ok
[INFO] [stdout] test unit::tests::test_hash_changes_with_content ... ok
[INFO] [stdout] test unit::tests::test_hash_consistency ... ok
[INFO] [stdout] test unit::tests::test_parse_md_description_does_not_override_yaml_description ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_empty_body ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_missing_closing_delimiter ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_multiline_fields ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_preserves_metadata_fields ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_with_body_containing_dashes ... ok
[INFO] [stdout] test unit::tests::test_parse_md_frontmatter_with_whitespace_in_body ... ok
[INFO] [stdout] test unit::tests::test_parse_md_with_crlf_line_endings ... ok
[INFO] [stdout] test unit::tests::timestamps_serialize_as_iso8601 ... ok
[INFO] [stdout] test unit::tests::validate_priority_accepts_valid_range ... ok
[INFO] [stdout] test unit::tests::validate_priority_rejects_out_of_range ... ok
[INFO] [stdout] test unit::types::tests::approval_record_accepts_mandatory_review_with_lineage ... ok
[INFO] [stdout] test unit::types::tests::approval_record_rejects_mandatory_review_without_lineage ... ok
[INFO] [stdout] test unit::tests::type_round_trip_yaml ... ok
[INFO] [stdout] test unit::types::tests::attempt_record_round_trip_with_autonomy_observation ... ok
[INFO] [stdout] test unit::types::tests::autonomy_blocker_code_serializes_as_snake_case ... ok
[INFO] [stdout] test unit::types::tests::autonomy_disposition_omits_empty_optional_fields ... ok
[INFO] [stdout] test unit::types::tests::approval_record_round_trips_with_provenance ... ok
[INFO] [stdout] test unit::types::tests::autonomy_observation_round_trip_omits_optional_fields ... ok
[INFO] [stdout] test unit::types::tests::autonomy_disposition_round_trip_with_budget ... ok
[INFO] [stdout] test unit::types::tests::awaiting_verify_deserializes_from_snake_case ... ok
[INFO] [stdout] test unit::types::tests::awaiting_verify_display ... ok
[INFO] [stdout] test unit::types::tests::awaiting_verify_serializes_as_snake_case ... ok
[INFO] [stdout] test unit::types::tests::derive_attempt_pressure_escalate_on_fail_exhausts_after_recent_failure ... ok
[INFO] [stdout] test unit::types::tests::derive_attempt_pressure_exhausts_at_budget_limit ... ok
[INFO] [stdout] test unit::types::tests::derive_attempt_pressure_trips_from_circuit_breaker_label ... ok
[INFO] [stdout] test unit::types::tests::derive_attempt_pressure_uses_recent_failure_streak ... ok
[INFO] [stdout] test unit::types::tests::derive_attempt_pressure_uses_retry_override_budget ... ok
[INFO] [stdout] test unit::types::tests::history_with_cancelled_result ... ok
[INFO] [stdout] test unit::types::tests::review_gate_outcome_serializes_as_snake_case ... ok
[INFO] [stdout] test unit::types::tests::run_record_full_round_trip ... ok
[INFO] [stdout] test unit::types::tests::promotion_record_round_trips_with_approval_lineage ... ok
[INFO] [stdout] test unit::types::tests::run_record_minimal_round_trip ... ok
[INFO] [stdout] test unit::types::tests::run_result_serializes_as_snake_case ... ok
[INFO] [stdout] test unit::types::tests::status_serializes_as_lowercase ... ok
[INFO] [stdout] test util::tests::find_similar_returns_empty_when_no_match ... ok
[INFO] [stdout] test util::tests::find_similar_skips_closed_units ... ok
[INFO] [stdout] test util::tests::find_similar_returns_matches_above_threshold ... ok
[INFO] [stdout] test util::tests::natural_cmp_alpha_ids ... ok
[INFO] [stdout] test util::tests::natural_cmp_different_prefix ... ok
[INFO] [stdout] test util::tests::natural_cmp_mixed_segments ... ok
[INFO] [stdout] test util::tests::natural_cmp_multi_level ... ok
[INFO] [stdout] test util::tests::natural_cmp_numeric_before_alpha ... ok
[INFO] [stdout] test util::tests::natural_cmp_single_digit ... ok
[INFO] [stdout] test util::tests::natural_cmp_three_level ... ok
[INFO] [stdout] test util::tests::parse_id_segments_alpha ... ok
[INFO] [stdout] test util::tests::parse_id_segments_leading_zeros ... ok
[INFO] [stdout] test util::tests::natural_cmp_multi_digit ... ok
[INFO] [stdout] test util::tests::parse_id_segments_multi_level ... ok
[INFO] [stdout] test util::tests::parse_id_segments_single ... ok
[INFO] [stdout] test util::tests::parse_status_invalid ... ok
[INFO] [stdout] test util::tests::parse_status_valid_closed ... ok
[INFO] [stdout] test util::tests::parse_status_valid_in_progress ... ok
[INFO] [stdout] test util::tests::parse_status_valid_open ... ok
[INFO] [stdout] test util::tests::parse_status_whitespace ... ok
[INFO] [stdout] test util::tests::similarity_case_insensitive ... ok
[INFO] [stdout] test util::tests::similarity_close_titles ... ok
[INFO] [stdout] test util::tests::similarity_empty_title ... ok
[INFO] [stdout] test util::tests::similarity_identical_titles ... ok
[INFO] [stdout] test util::tests::similarity_ignores_stop_words ... ok
[INFO] [stdout] test util::tests::similarity_strips_punctuation ... ok
[INFO] [stdout] test util::tests::similarity_subset_match_scores_high ... ok
[INFO] [stdout] test util::tests::similarity_very_different_titles ... ok
[INFO] [stdout] test util::tests::status_from_str_closed ... ok
[INFO] [stdout] test util::tests::status_from_str_in_progress ... ok
[INFO] [stdout] test util::tests::status_from_str_invalid ... ok
[INFO] [stdout] test util::tests::status_from_str_open ... ok
[INFO] [stdout] test util::tests::test_atomic_write_creates_file_with_correct_contents ... ok
[INFO] [stdout] test util::tests::test_atomic_write_no_temp_file_left_behind ... ok
[INFO] [stdout] test util::tests::title_to_slug_all_whitespace_types ... ok
[INFO] [stdout] test util::tests::title_to_slug_consecutive_hyphens ... ok
[INFO] [stdout] test util::tests::title_to_slug_empty_string ... ok
[INFO] [stdout] test util::tests::title_to_slug_exactly_50_chars ... ok
[INFO] [stdout] test util::tests::title_to_slug_leading_trailing_spaces ... ok
[INFO] [stdout] test util::tests::title_to_slug_mixed_case ... ok
[INFO] [stdout] test util::tests::title_to_slug_multiple_spaces ... ok
[INFO] [stdout] test util::tests::title_to_slug_numbers_preserved ... ok
[INFO] [stdout] test util::tests::title_to_slug_only_spaces ... ok
[INFO] [stdout] test util::tests::title_to_slug_only_special_chars ... ok
[INFO] [stdout] test util::tests::test_atomic_write_overwrites_existing_file ... ok
[INFO] [stdout] test util::tests::title_to_slug_simple_case ... ok
[INFO] [stdout] test util::tests::title_to_slug_single_character ... ok
[INFO] [stdout] test util::tests::title_to_slug_truncate_with_hyphens ... ok
[INFO] [stdout] test util::tests::title_to_slug_truncate_50_chars ... ok
[INFO] [stdout] test util::tests::title_to_slug_unicode_removed ... ok
[INFO] [stdout] test util::tests::title_to_slug_with_backticks ... ok
[INFO] [stdout] test util::tests::title_to_slug_with_exclamation ... ok
[INFO] [stdout] test util::tests::title_to_slug_with_numbers_and_dots ... ok
[INFO] [stdout] test util::tests::title_to_slug_with_special_chars ... ok
[INFO] [stdout] test util::tests::validate_unit_id_absolute_path_fails ... ok
[INFO] [stdout] test util::tests::validate_unit_id_alphanumeric ... ok
[INFO] [stdout] test util::tests::validate_unit_id_dotted ... ok
[INFO] [stdout] test util::tests::validate_unit_id_empty_fails ... ok
[INFO] [stdout] test util::tests::validate_unit_id_simple_numeric ... ok
[INFO] [stdout] test util::tests::validate_unit_id_path_traversal_fails ... ok
[INFO] [stdout] test util::tests::validate_unit_id_spaces_fail ... ok
[INFO] [stdout] test util::tests::validate_unit_id_special_chars_fail ... ok
[INFO] [stdout] test util::tests::validate_unit_id_too_long ... ok
[INFO] [stdout] test util::tests::validate_unit_id_with_hyphens ... ok
[INFO] [stdout] test util::tests::validate_unit_id_with_underscores ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_accepts_filtered_commands_with_grep_guard ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_accepts_targeted_test_commands ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_rejects_bare_test_runners ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_rejects_always_pass_commands ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_rejects_empty_commands ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_warns_on_existence_only_checks ... ok
[INFO] [stdout] test verify_lint::tests::verify_lint_warns_on_filtered_commands_without_grep ... ok
[INFO] [stdout] test worktree::tests::detect_worktree_runs_without_panic ... ok
[INFO] [stdout] test sqlite::tests::rebuild_removes_stale_rows_after_source_becomes_invalid ... ok
[INFO] [stdout] test worktree::tests::merge::test_merge_result_variants ... ok
[INFO] [stdout] test worktree::tests::merge::test_merge_to_main_requires_branch ... ok
[INFO] [stdout] test worktree::tests::merge::test_parse_conflict_files_content_conflict ... ok
[INFO] [stdout] test worktree::tests::merge::test_parse_conflict_files_empty ... ok
[INFO] [stdout] test worktree::tests::merge::test_parse_conflict_files_multiple ... ok
[INFO] [stdout] test worktree::tests::merge::test_parse_conflict_files_no_conflicts ... ok
[INFO] [stdout] test worktree::tests::merge::test_worktree_info_for_merge ... ok
[INFO] [stdout] test worktree::tests::test_parse_worktree_list_detached_head ... ok
[INFO] [stdout] test worktree::tests::test_parse_worktree_list_multiple ... ok
[INFO] [stdout] test worktree::tests::test_parse_worktree_list_single ... ok
[INFO] [stdout] test yaml::tests::catch_parser_panic_converts_panic_to_error ... ok
[INFO] [stdout] test worktree::tests::merge::test_commit_worktree_changes_type_signature ... ok
[INFO] [stdout] test yaml::tests::catch_parser_panic_recovers_from_actual_panic ... ok
[INFO] [stdout] test sqlite::tests::marks_index_stale_and_fresh ... ok
[INFO] [stdout] test worktree::tests::merge::test_cleanup_worktree_type_signature ... ok
[INFO] [stdout] test sqlite::tests::rebuilds_valid_units_and_child_tables ... ok
[INFO] [stdout] test sqlite::tests::records_source_metadata_and_detects_freshness ... ok
[INFO] [stdout] test ops::verify::tests::run_verify_command_timeout ... ok
[INFO] [stdout] test hooks::tests::test_hook_timeout ... ok
[INFO] [stderr]      Running tests/api_integration.rs (/opt/rustwide/target/debug/deps/api_integration-a67f94a787070374)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 739 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 30.22s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test close_nonexistent_unit_errors ... ok
[INFO] [stdout] test config_load_and_save_roundtrip ... ok
[INFO] [stdout] test config_extends_merges_parent_settings ... ok
[INFO] [stdout] test claim_nonexistent_unit_errors ... ok
[INFO] [stdout] test delete_unit_removes_it ... ok
[INFO] [stdout] test claim_already_in_progress_unit_errors ... ok
[INFO] [stdout] test config_next_id_increments_with_units ... ok
[INFO] [stdout] test fact_requires_verify_command ... ok
[INFO] [stdout] test compute_ready_queue_returns_units_with_no_unmet_deps ... ok
[INFO] [stdout] test compute_ready_queue_simulation_shows_all ... ok
[INFO] [stdout] test cycle_detection_prevents_circular_deps ... ok
[INFO] [stdout] test get_unit_returns_error_for_missing_id ... ok
[INFO] [stdout] test dependency_graph_has_correct_structure ... ok
[INFO] [stdout] test dependency_resolution_respects_order ... ok
[INFO] [stdout] test fact_ttl_sets_stale_after ... ok
[INFO] [stdout] test detect_cycle_returns_true_for_cycle ... ok
[INFO] [stdout] test fact_create_sets_correct_type_and_label ... ok
[INFO] [stdout] test get_stats_tracks_completion_percentage ... ok
[INFO] [stdout] test index_is_rebuilt_when_stale ... ok
[INFO] [stdout] test index_rebuilds_from_unit_files ... ok
[INFO] [stdout] test get_status_returns_correct_counts ... ok
[INFO] [stdout] test lifecycle_create_claim_force_close ... ok
[INFO] [stdout] test lifecycle_fail_unit_reopens_it ... ok
[INFO] [stdout] test lifecycle_release_returns_unit_to_open ... ok
[INFO] [stdout] test lifecycle_verify_fails_and_stays_open ... ok
[INFO] [stdout] test lifecycle_verify_passes_and_closes ... ok
[INFO] [stdout] test ready_units_requires_deps_closed ... ok
[INFO] [stdout] test record_attempt_appends_to_log ... ok
[INFO] [stdout] test list_units_returns_open_by_default ... ok
[INFO] [stdout] test ready_units_unblocked_after_dep_closed ... ok
[INFO] [stdout] test remove_dep_works ... ok
[INFO] [stdout] test tree_reflects_parent_child_hierarchy ... ok
[INFO] [stdout] test update_notes_appends_rather_than_replaces ... ok
[INFO] [stdout] test update_unit_fields ... ok
[INFO] [stdout] test verify_facts_runs_and_reports_results ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.63s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mana_pool-ed63c180a511df6a)
[INFO] [stdout] 
[INFO] [stdout] running 30 tests
[INFO] [stdout] test dispatch::tests::dedup_verify_attributes_failure_to_all ... ok
[INFO] [stdout] test dispatch::tests::dedup_verify_groups_identical_commands ... ok
[INFO] [stdout] test dispatch::tests::dedup_verify_runs_once_per_group ... ok
[INFO] [stdout] test dispatch::tests::downstream_weights ... ok
[INFO] [stdout] test dispatch::tests::is_ready_dep_met ... ok
[INFO] [stdout] test dispatch::tests::is_ready_dep_not_met ... ok
[INFO] [stdout] test dispatch::tests::is_ready_no_deps ... ok
[INFO] [stdout] test dispatch::tests::first_attempt_has_zero_attempts ... ok
[INFO] [stdout] test dispatch::tests::budget_circuit_breaker_stops_new_spawns_after_failure ... ok
[INFO] [stdout] test dispatch::tests::progress_events_forwarded ... ok
[INFO] [stdout] test dispatch::tests::no_progress_channel_still_works ... ok
[INFO] [stdout] test dispatch::tests::respects_dependencies ... ok
[INFO] [stdout] test dispatch::tests::spawner_receives_attempt_count ... ok
[INFO] [stdout] test dispatch::tests::respects_max_concurrent ... ok
[INFO] [stdout] test dispatch::tests::spawner_receives_previous_failure_and_notes ... ok
[INFO] [stdout] test dispatch::tests::stops_on_failure_without_keep_going ... ok
[INFO] [stdout] test dispatch::tests::layered_verify_fast_fails_skips_full ... ok
[INFO] [stdout] test dispatch::tests::layered_verify_no_fast_runs_full_directly ... ok
[INFO] [stdout] test memory::tests::allows_when_enough_memory ... ok
[INFO] [stdout] test memory::tests::allows_when_unavailable ... ok
[INFO] [stdout] test memory::tests::available_memory_returns_something ... ok
[INFO] [stdout] test dispatch::tests::dedup_verify_run_dispatch_marks_shared_failures ... ok
[INFO] [stdout] test memory::tests::disabled_when_reserve_is_zero ... ok
[INFO] [stdout] test memory::tests::blocks_when_memory_low ... ok
[INFO] [stdout] test dispatch::tests::layered_verify_fast_passes_runs_full ... ok
[INFO] [stdout] test dispatch::tests::heartbeat_timeout_detects_stuck_agent ... ok
[INFO] [stdout] test dispatch::tests::budget_enforces_max_concurrent_limit ... ok
[INFO] [stdout] test dispatch::tests::worktree_cleanup_on_failure ... ok
[INFO] [stdout] test dispatch::tests::worktree_spawner_receives_worktree_path ... ok
[INFO] [stdout] test dispatch::tests::worktree_fallback_when_disabled ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mana
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::cmd_edit (line 264) ... ignored
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::load_backup (line 229) ... ignored
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::open_editor (line 171) ... ignored
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::prompt_rollback (line 107) ... ignored
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::rebuild_index_after_edit (line 78) ... ignored
[INFO] [stdout] test crates/mana-cli/src/commands/edit.rs - commands::edit::validate_and_save (line 39) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 6 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mana_core
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api (line 18) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::create_fact (line 1076) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::add_dep (line 882) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::close_unit (line 735) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::create_unit (line 664) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::delete_unit (line 788) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::fail_unit (line 770) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::find_mana_dir (line 85) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::detect_cycle (line 637) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::get_archived_unit (line 252) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::assemble_context (line 969) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::get_tree (line 339) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::get_unit (line 214) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::compute_ready_queue (line 928) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::ready_units (line 436) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::get_status (line 393) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::dependency_graph (line 476) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::release_unit (line 862) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::remove_dep (line 899) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::claim_unit (line 834) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::list_units (line 309) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::verify_facts (line 1108) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::record_attempt (line 992) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/discovery.rs - discovery::archive_path_for_unit (line 130) ... ignored
[INFO] [stdout] test crates/mana-core/src/discovery.rs - discovery::find_archived_unit (line 171) ... ignored
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::get_stats (line 414) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::load_index (line 288) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/index.rs - index::LockedIndex (line 525) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/index.rs - index (line 12) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::reopen_unit (line 808) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/graph.rs - graph (line 12) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::run_verify (line 1041) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/lib.rs - (line 25) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::topological_sort (line 520) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/api/mod.rs - api::update_unit (line 689) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/config.rs - config (line 8) - compile ... ok
[INFO] [stdout] test crates/mana-core/src/unit/mod.rs - unit (line 29) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 1.09s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mana_pool
[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" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524", kill_on_drop: false }`
[INFO] [stdout] 2292e1c419efa6da29e5d0f236791bc54a69af05ee9bbcef89d5f27c722d6524
