[INFO] fetching crate mana-cli 0.3.0... [INFO] testing mana-cli-0.3.0 against beta-2026-04-21 for beta-1.96-1 [INFO] extracting crate mana-cli 0.3.0 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate mana-cli 0.3.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate mana-cli 0.3.0 [INFO] tweaked toml for crates.io crate mana-cli 0.3.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate mana-cli 0.3.0 on toolchain beta-2026-04-21 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate mana-cli 0.3.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1c25806d91eaea4ef8abaf70a3861f37d712acfa1f4e2b5b59c868669f7585e4 [INFO] running `Command { std: "docker" "start" "-a" "1c25806d91eaea4ef8abaf70a3861f37d712acfa1f4e2b5b59c868669f7585e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1c25806d91eaea4ef8abaf70a3861f37d712acfa1f4e2b5b59c868669f7585e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1c25806d91eaea4ef8abaf70a3861f37d712acfa1f4e2b5b59c868669f7585e4", kill_on_drop: false }` [INFO] [stdout] 1c25806d91eaea4ef8abaf70a3861f37d712acfa1f4e2b5b59c868669f7585e4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8ba36e56682930e6ff927b768f31b7df801ae465f7c08ab56a70e92185ecb03f [INFO] running `Command { std: "docker" "start" "-a" "8ba36e56682930e6ff927b768f31b7df801ae465f7c08ab56a70e92185ecb03f", kill_on_drop: false }` [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling serde_yml v0.0.12 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling libyml v0.0.5 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling dirs-sys v0.5.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling strict v0.2.0 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling dirs v6.0.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling shell-escape v0.1.5 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling console v0.16.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling fuzzy-matcher v0.3.7 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossbeam v0.8.4 [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 sysinfo v0.33.1 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling dialoguer v0.12.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling regex v1.12.3 [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 lazy-regex-proc_macros v3.6.0 [INFO] [stderr] Compiling coolor v1.1.0 [INFO] [stderr] Compiling lazy-regex v3.6.0 [INFO] [stderr] Compiling crokey-proc_macros v1.4.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling clap_complete v4.5.66 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling crokey v1.4.0 [INFO] [stderr] Compiling termimad v0.34.1 [INFO] [stderr] Compiling mana-core v0.3.0 [INFO] [stderr] Compiling mana-review v0.1.0 [INFO] [stderr] Compiling mana-cli v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 43.88s [INFO] running `Command { std: "docker" "inspect" "8ba36e56682930e6ff927b768f31b7df801ae465f7c08ab56a70e92185ecb03f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ba36e56682930e6ff927b768f31b7df801ae465f7c08ab56a70e92185ecb03f", kill_on_drop: false }` [INFO] [stdout] 8ba36e56682930e6ff927b768f31b7df801ae465f7c08ab56a70e92185ecb03f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] bfd4dfeecc401d7f705fefb8f9a0f6979a97d4635c15030d46e35d0288cfb82c [INFO] running `Command { std: "docker" "start" "-a" "bfd4dfeecc401d7f705fefb8f9a0f6979a97d4635c15030d46e35d0288cfb82c", kill_on_drop: false }` [INFO] [stderr] Compiling mana-cli v0.3.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 14.30s [INFO] running `Command { std: "docker" "inspect" "bfd4dfeecc401d7f705fefb8f9a0f6979a97d4635c15030d46e35d0288cfb82c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bfd4dfeecc401d7f705fefb8f9a0f6979a97d4635c15030d46e35d0288cfb82c", kill_on_drop: false }` [INFO] [stdout] bfd4dfeecc401d7f705fefb8f9a0f6979a97d4635c15030d46e35d0288cfb82c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 44b57f5d14207519f5388397ef94459ee52ee6b8d82765335b5f0e55e8f72712 [INFO] running `Command { std: "docker" "start" "-a" "44b57f5d14207519f5388397ef94459ee52ee6b8d82765335b5f0e55e8f72712", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mana-3d913401cecf9aa1) [INFO] [stdout] [INFO] [stdout] running 671 tests [INFO] [stdout] test commands::agents::tests::format_elapsed_seconds ... ok [INFO] [stdout] test commands::agents::tests::format_elapsed_hours ... ok [INFO] [stdout] test commands::agents::tests::process_alive_returns_false_for_nonexistent ... 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_long_string ... ok [INFO] [stdout] test commands::agents::tests::agent_entry_roundtrip ... ok [INFO] [stdout] test commands::agents::tests::truncate_title_short_string ... ok [INFO] [stdout] test commands::agents::tests::truncate_title_multibyte_utf8 ... ok [INFO] [stdout] test commands::agents::tests::process_alive_returns_false_for_overflowed_pid ... ok [INFO] [stdout] test commands::adopt::tests::adopt_fails_for_missing_child ... ok [INFO] [stdout] test commands::claim::tests::test_claim_non_open_unit_fails ... ok [INFO] [stdout] test commands::claim::tests::test_claim_closed_unit_fails ... ok [INFO] [stdout] test commands::claim::tests::test_claim_nonexistent_unit_fails ... ok [INFO] [stdout] test commands::claim::tests::release_marks_attempt_abandoned ... ok [INFO] [stdout] test commands::adopt::tests::adopt_rebuilds_index ... ok [INFO] [stdout] test commands::claim::tests::test_claim_rebuilds_index ... ok [INFO] [stdout] test commands::claim::tests::multiple_claims_accumulate_attempts ... ok [INFO] [stdout] test commands::claim::tests::test_claim_unit_without_verify_succeeds_with_warning ... ok [INFO] [stdout] test commands::claim::tests::test_release_claimed_unit ... ok [INFO] [stdout] test commands::claim::tests::claim_starts_attempt ... ok [INFO] [stdout] test commands::adopt::tests::adopt_fails_for_missing_parent ... ok [INFO] [stdout] test commands::adopt::tests::adopt_multiple_units ... ok [INFO] [stdout] test commands::adopt::tests::adopt_updates_dependencies ... ok [INFO] [stdout] test commands::claim::tests::test_release_nonexistent_unit_fails ... ok [INFO] [stdout] test commands::adopt::tests::next_child_number_empty ... ok [INFO] [stdout] test commands::adopt::tests::next_child_number_ignores_other_parents ... ok [INFO] [stdout] test commands::agents::tests::load_agents_empty_file ... ok [INFO] [stdout] test commands::claim::tests::test_claim_open_unit ... ok [INFO] [stdout] test commands::adopt::tests::next_child_number_with_existing ... ok [INFO] [stdout] test commands::claim::tests::test_claim_unit_with_empty_verify_warns ... ok [INFO] [stdout] test commands::adopt::tests::adopt_single_unit ... ok [INFO] [stdout] test commands::claim::tests::test_claim_unit_with_verify_succeeds ... ok [INFO] [stdout] test commands::claim::tests::test_claim_without_by ... ok [INFO] [stdout] test commands::claim::tests::test_release_rebuilds_index ... ok [INFO] [stdout] test commands::agents::tests::agents_empty_persistence_shows_no_agents ... ok [INFO] [stdout] test commands::adopt::tests::adopt_with_existing_children ... ok [INFO] [stdout] test commands::claim::tests::verify_on_claim_no_verify_skips_check ... 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::close::tests::history_no_record_without_verify ... ok [INFO] [stdout] test commands::claim::tests::verify_on_claim_failing_verify_succeeds ... ok [INFO] [stdout] test commands::close::tests::history_no_record_when_force_skip ... 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_no_config_defaults_to_10 ... ok [INFO] [stdout] test commands::close::tests::history_failure_creates_run_record ... ok [INFO] [stdout] test commands::claim::tests::verify_on_claim_checkpoint_sha_stored ... ok [INFO] [stdout] test commands::close::tests::max_loops_no_duplicate_label ... ok [INFO] [stdout] test commands::close::tests::history_records_exit_code ... ok [INFO] [stdout] test commands::close::tests::max_loops_standalone_unit_uses_own_max_loops ... ok [INFO] [stdout] test commands::close::tests::max_loops_per_unit_overrides_config ... ok [INFO] [stdout] test commands::close::tests::max_loops_circuit_breaker_triggers_at_limit ... ok [INFO] [stdout] test commands::close::tests::history_agent_from_env_var ... ok [INFO] [stdout] test commands::close::tests::max_loops_zero_disables_circuit_breaker ... ok [INFO] [stdout] test commands::close::tests::history_success_creates_run_record ... ok [INFO] [stdout] test commands::close::tests::max_loops_circuit_breaker_skips_on_fail_retry ... ok [INFO] [stdout] test commands::close::tests::max_loops_counts_across_siblings ... ok [INFO] [stdout] test commands::close::tests::on_close_runs_in_project_root ... ok [INFO] [stdout] test commands::close::tests::on_close_run_action_executes_command ... ok [INFO] [stdout] test commands::close::tests::history_has_correct_duration ... ok [INFO] [stdout] test commands::close::tests::on_close_multiple_actions_all_run ... ok [INFO] [stdout] test commands::close::tests::history_failure_then_success_accumulates ... ok [INFO] [stdout] test commands::close::tests::history_multiple_attempts_accumulate ... 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::on_close_notify_action_prints_message ... ok [INFO] [stdout] test commands::close::tests::on_fail_retry_with_delay_releases_claim ... ok [INFO] [stdout] test commands::close::tests::output_capture_json_stdout_stored_as_outputs ... ok [INFO] [stdout] test commands::close::tests::output_capture_json_array ... ok [INFO] [stdout] test commands::close::tests::on_fail_retry_releases_claim_when_under_max ... ok [INFO] [stdout] test commands::close::tests::test_auto_close_disabled_via_config ... ok [INFO] [stdout] test commands::close::tests::output_capture_mixed_stdout_stderr ... ok [INFO] [stdout] test commands::close::tests::on_fail_escalate_adds_label ... ok [INFO] [stdout] test commands::close::tests::on_fail_none_existing_behavior_unchanged ... ok [INFO] [stdout] test commands::close::tests::test_auto_close_with_no_parent ... ok [INFO] [stdout] test commands::close::tests::on_fail_escalate_updates_priority ... ok [INFO] [stdout] test commands::close::tests::test_close_failed_marks_attempt_as_failed ... ok [INFO] [stdout] test commands::close::tests::on_fail_escalate_no_duplicate_label ... ok [INFO] [stdout] test commands::close::tests::test_close_failed_appends_to_notes ... ok [INFO] [stdout] test commands::close::tests::test_auto_close_recursive_grandparent ... ok [INFO] [stdout] test commands::close::tests::on_fail_escalate_appends_message_to_notes ... ok [INFO] [stdout] test commands::close::tests::test_close_no_ids ... ok [INFO] [stdout] test commands::close::tests::on_fail_retry_keeps_claim_when_at_max ... ok [INFO] [stdout] test commands::close::tests::test_auto_close_parent_when_all_children_closed ... ok [INFO] [stdout] test commands::close::tests::test_all_children_closed_checks_archived_units ... ok [INFO] [stdout] test commands::close::tests::test_close_nonexistent_unit ... ok [INFO] [stdout] test commands::close::tests::output_capture_non_json_stdout_stored_as_text ... ok [INFO] [stdout] test commands::close::tests::output_capture_stderr_not_captured_as_outputs ... ok [INFO] [stdout] test commands::close::tests::output_capture_failure_unchanged ... ok [INFO] [stdout] test commands::close::tests::test_close_sets_updated_at ... ok [INFO] [stdout] test commands::close::tests::test_close_failed_without_reason ... ok [INFO] [stdout] test commands::close::tests::test_close_with_empty_verify_still_closes ... ok [INFO] [stdout] test commands::close::tests::test_close_multiple_units ... ok [INFO] [stdout] test commands::close::tests::test_close_single_unit ... ok [INFO] [stdout] test commands::close::tests::test_close_with_force_skips_verify ... ok [INFO] [stdout] test commands::close::tests::output_capture_empty_stdout_no_outputs ... ok [INFO] [stdout] test commands::close::tests::test_close_rebuilds_index ... ok [INFO] [stdout] test commands::close::tests::on_fail_retry_max_defaults_to_max_attempts ... ok [INFO] [stdout] test commands::close::tests::test_close_with_failing_verify_increments_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_missing_hook_silently_succeeds ... 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_feature_grandparent_blocks_recursive_auto_close ... ok [INFO] [stdout] test commands::close::tests::test_close_without_verify_still_works ... 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_unit_not_closed_in_non_tty ... ok [INFO] [stdout] test commands::close::tests::test_close_with_reason ... ok [INFO] [stdout] test commands::close::tests::test_close_with_passing_verify ... ok [INFO] [stdout] test commands::close::tests::test_no_auto_close_when_children_still_open ... ok [INFO] [stdout] test commands::close::tests::test_close_passes_reason_to_pre_close_hook ... ok [INFO] [stdout] test commands::close::tests::test_close_with_shell_operators_work ... ok [INFO] [stdout] test commands::close::tests::test_close_with_whitespace_verify_still_closes ... ok [INFO] [stdout] test commands::close::tests::test_non_feature_parent_still_auto_closes ... 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_multibyte ... ok [INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_zero ... ok [INFO] [stdout] test commands::close::tests::test_truncate_to_char_boundary_beyond_len ... ok [INFO] [stdout] test commands::close::tests::test_close_with_failing_pre_close_hook_blocks_close ... 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_close_with_pipe_propagates_exit_code ... ok [INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_outside_git_repo_works ... ok [INFO] [stdout] test commands::close::tests::test_close_batch_with_mixed_hook_results ... ok [INFO] [stdout] test commands::close::tests::test_feature_parent_not_auto_closed ... ok [INFO] [stdout] test commands::config_cmd::tests::get_unknown_key_returns_error ... ok [INFO] [stdout] test commands::config_cmd::tests::get_run_returns_empty_when_unset ... 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_none_clears_it ... ok [INFO] [stdout] test commands::config_cmd::tests::set_run_to_empty_clears_it ... ok [INFO] [stdout] test commands::config_cmd::tests::set_unknown_key_returns_error ... ok [INFO] [stdout] test commands::close::tests::test_close_with_passing_pre_close_hook ... ok [INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_does_not_affect_fast_commands ... ok [INFO] [stdout] test commands::context::tests::context_includes_attempt_notes_in_json_output ... 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_rules_section_wraps_with_delimiters ... ok [INFO] [stdout] test commands::context::tests::context_with_no_paths_in_description ... 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::context_with_paths_in_description ... ok [INFO] [stdout] test commands::context::tests::context_includes_attempt_notes_in_text_output ... ok [INFO] [stdout] test commands::create::tests::assign_child_id_finds_existing_children ... 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_starts_at_1 ... ok [INFO] [stdout] test commands::create::tests::create_allows_unit_without_verify_or_acceptance ... ok [INFO] [stdout] test commands::close::tests::test_close_with_failing_verify_multiple_attempts ... ok [INFO] [stdout] test commands::create::tests::create_claim_rejects_missing_validation_criteria ... ok [INFO] [stdout] test commands::create::tests::create_feature_sets_feature_flag ... ok [INFO] [stdout] test commands::create::tests::create_claim_with_parent_exempt_from_validation ... 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_claim_accepts_with_acceptance ... ok [INFO] [stdout] test commands::create::tests::create_claim_accepts_with_verify ... ok [INFO] [stdout] test commands::close::tests::test_post_close_hook_failure_does_not_prevent_close ... ok [INFO] [stdout] test commands::close::tests::test_post_close_hook_fires_after_successful_close ... ok [INFO] [stdout] test commands::create::tests::create_next_fails_with_no_units ... ok [INFO] [stdout] test commands::create::tests::create_rejects_priority_too_high ... ok [INFO] [stdout] test commands::create::tests::create_minimal_unit ... ok [INFO] [stdout] test commands::create::tests::create_next_depends_on_latest ... 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_next_chain_three_units ... ok [INFO] [stdout] test commands::create::tests::create_next_merges_explicit_deps ... ok [INFO] [stdout] test commands::create::tests::create_with_claim_sets_in_progress ... ok [INFO] [stdout] test commands::create::tests::create_with_all_fields ... ok [INFO] [stdout] test commands::create::tests::create_with_claim_and_parent ... ok [INFO] [stdout] test commands::create::tests::create_without_claim_exempt_from_validation ... ok [INFO] [stdout] test commands::create::tests::create_without_claim_stays_open ... ok [INFO] [stdout] test commands::create::tests::create_without_feature_preserves_existing_behavior ... ok [INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_in_main_worktree_skips_merge ... ok [INFO] [stdout] test commands::create::tests::lint::create_allows_verify_lint_errors_with_force ... ok [INFO] [stdout] test commands::close::tests::output_capture_large_stdout_truncated ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_bare ... ok [INFO] [stdout] test commands::create::tests::create_with_claim_without_by ... ok [INFO] [stdout] test commands::create::tests::default_rejects_passing_verify ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_with_priority_uppercase ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_escalate_with_priority_lowercase ... ok [INFO] [stdout] test commands::create::tests::create_increments_id ... ok [INFO] [stdout] test commands::create::tests::no_verify_skips_fail_first_check ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_invalid_action ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_priority_out_of_range ... 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::parse_on_fail_escalate_with_priority_number ... ok [INFO] [stdout] test commands::create::tests::parse_on_fail_rejects_invalid_retry_max ... 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::parse_on_fail_retry_bare ... ok [INFO] [stdout] test commands::create::tests::pass_ok_skips_fail_first_check ... ok [INFO] [stdout] test commands::create::tests::untrusted_hooks_are_silently_skipped ... ok [INFO] [stdout] test commands::delete::tests::test_cleanup_does_not_modify_unrelated_units ... ok [INFO] [stdout] test commands::delete::tests::test_delete_nonexistent_unit ... ok [INFO] [stdout] test commands::delete::tests::test_delete_rebuilds_index ... ok [INFO] [stdout] test commands::delete::tests::test_delete_ignores_excluded_files ... ok [INFO] [stdout] test commands::delete::tests::test_delete_unit ... ok [INFO] [stdout] test commands::dep::tests::test_dep_add_duplicate_rejected ... ok [INFO] [stdout] test commands::delete::tests::test_delete_cleans_dependencies ... ok [INFO] [stdout] test commands::dep::tests::test_dep_add_self_dependency_rejected ... ok [INFO] [stdout] test commands::dep::tests::test_dep_add_nonexistent_unit ... ok [INFO] [stdout] test commands::create::tests::create_with_parent_assigns_child_id ... ok [INFO] [stdout] test commands::delete::tests::test_delete_with_complex_dependency_graph ... ok [INFO] [stdout] test commands::dep::tests::test_dep_add_cycle_detection ... ok [INFO] [stdout] test commands::dep::tests::test_dep_list_with_dependencies ... ok [INFO] [stdout] test commands::diff::tests::add_output_flags_name_only_no_color ... ok [INFO] [stdout] test commands::diff::tests::add_output_flags_full_default ... ok [INFO] [stdout] test commands::diff::tests::add_output_flags_stat ... ok [INFO] [stdout] test commands::dep::tests::test_dep_remove ... 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::cmd_diff_no_git_repo_fails ... ok [INFO] [stdout] test commands::diff::tests::cmd_diff_nonexistent_unit_fails ... ok [INFO] [stdout] test commands::create::tests::post_create_hook_failure_does_not_break_creation ... ok [INFO] [stdout] test commands::create::tests::pre_create_hook_accepts_unit_creation ... ok [INFO] [stdout] test commands::diff::tests::is_git_repo_false_for_non_git_dir ... ok [INFO] [stdout] test commands::doctor::tests::doctor_clean_project ... ok [INFO] [stdout] test commands::create::tests::post_create_hook_runs_after_creation ... 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_missing_parent ... ok [INFO] [stdout] test commands::doctor::tests::doctor_detects_duplicate_ids ... ok [INFO] [stdout] test commands::doctor::tests::doctor_detects_orphaned_dep ... ok [INFO] [stdout] test commands::doctor::tests::doctor_detects_stale_index_entries ... ok [INFO] [stdout] test commands::doctor::tests::doctor_detects_mixed_formats ... ok [INFO] [stdout] test commands::doctor::tests::doctor_fix_rebuilds_index ... ok [INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_with_merge_conflict_aborts ... ok [INFO] [stdout] test commands::edit::tests::test_backup_preserves_exact_content ... 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_cmd_edit_finds_unit_by_id ... ok [INFO] [stdout] test commands::edit::tests::test_cmd_edit_loads_backup_correctly ... ok [INFO] [stdout] test commands::edit::tests::test_cmd_edit_preserves_unit_naming_convention ... ok [INFO] [stdout] test commands::edit::tests::test_cmd_edit_validates_schema_before_save ... ok [INFO] [stdout] test commands::edit::tests::test_cmd_edit_workflow_backup_edit_save ... ok [INFO] [stdout] test commands::diff::tests::is_git_repo_true_for_git_dir ... ok [INFO] [stdout] test commands::diff::tests::find_commit_at_time_returns_none_for_future ... ok [INFO] [stdout] test commands::edit::tests::test_cmd_edit_index_rebuild_includes_edited_unit ... ok [INFO] [stdout] test commands::close::tests::worktree_merge_tests::test_close_in_worktree_commits_and_merges ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_reads_binary_content ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_reads_content ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_reads_multiline_content ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_nonexistent_file ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_large_file ... ok [INFO] [stdout] test commands::edit::tests::test_open_editor_nonexistent_file ... ok [INFO] [stdout] test commands::edit::tests::test_prompt_rollback_restores_file_from_backup ... ok [INFO] [stdout] test commands::edit::tests::test_open_editor_success_with_true ... ok [INFO] [stdout] test commands::edit::tests::test_open_editor_success_with_echo ... ok [INFO] [stdout] test commands::edit::tests::test_prompt_rollback_backup_preserves_content ... ok [INFO] [stdout] test commands::create::tests::pre_create_hook_rejects_unit_creation ... diff --git a/.mana/7-test.md b/.mana/7-test.md [INFO] [stdout] new file mode 100644 [INFO] [stdout] index 0000000..4e5fd1b [INFO] [stdout] --- /dev/null [INFO] [stdout] +++ b/.mana/7-test.md [INFO] [stdout] @@ -0,0 +1,9 @@ [INFO] [stdout] +--- [INFO] [stdout] +id: '7' [INFO] [stdout] +title: Refactor auth [INFO] [stdout] +status: open [INFO] [stdout] +priority: 2 [INFO] [stdout] +created_at: '2026-04-24T19:21:42.917396741Z' [INFO] [stdout] +updated_at: '2026-04-24T19:21:42.917396741Z' [INFO] [stdout] +checkpoint: '2d747bcf97cf9d789a0502a9e51579ef0200ca35' [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] 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_empty_directory ... 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_fails_for_nonexistent_unit ... ok [INFO] [stdout] test commands::edit::tests::test_load_backup_reads_empty_file ... 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_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_rebuild_index_after_edit_includes_all_units ... ok [INFO] [stdout] test commands::edit::tests::test_validate_and_save_with_markdown_frontmatter ... ok [INFO] [stdout] commit a3fcfb069c00361e568f01b850409ce7a619969b [INFO] [stdout] Author: Test [INFO] [stdout] Date: Fri Apr 24 19:21:43 2026 +0000 [INFO] [stdout] [INFO] [stdout] feat(unit-3): Add login [INFO] [stdout] [INFO] [stdout] .mana/3-test.md | 8 ++++++++ [INFO] [stdout] login.rs | 1 + [INFO] [stdout] 2 files changed, 9 insertions(+) [INFO] [stdout] test commands::fact::tests::create_fact_requires_verify ... 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_workflow_full ... ok [INFO] [stdout] test commands::edit::tests::test_validate_and_save_missing_required_field ... ok [INFO] [stdout] test commands::edit::tests::test_rebuild_index_reflects_recent_edits ... ok [INFO] [stdout] test commands::diff::tests::cmd_diff_with_checkpoint_succeeds ... ok [INFO] [stdout] test commands::edit::tests::test_validate_and_save_updates_timestamp ... ok [INFO] [stdout] test commands::graph::tests::ascii_long_title_not_truncated ... ok [INFO] [stdout] test commands::fact::tests::create_fact_with_paths ... ok [INFO] [stdout] test commands::graph::tests::ascii_output_valid ... ok [INFO] [stdout] test commands::fact::tests::create_fact_sets_unit_type ... ok [INFO] [stdout] test commands::diff::tests::find_commits_ignores_partial_id_matches ... 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::diff::tests::cmd_diff_with_tagged_commit_succeeds ... ok [INFO] [stdout] test commands::graph::tests::ascii_with_single_isolated_unit ... ok [INFO] [stdout] test commands::graph::tests::ascii_status_badges ... ok [INFO] [stdout] test commands::graph::tests::escaping_special_chars ... ok [INFO] [stdout] test commands::graph::tests::mermaid_escape ... ok [INFO] [stdout] test commands::init::tests::find_preset_is_case_insensitive ... ok [INFO] [stdout] test commands::graph::tests::ascii_with_multiple_isolated_units ... 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::init::tests::init_config_is_valid_yaml ... 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::graph::tests::ascii_with_cycle_warning ... ok [INFO] [stdout] test commands::fact::tests::create_fact_with_custom_ttl ... ok [INFO] [stdout] test commands::init::tests::init_idempotent ... ok [INFO] [stdout] test commands::init::tests::init_does_not_overwrite_existing_rules_md ... ok [INFO] [stdout] test commands::init::tests::init_preserves_next_id_on_setup ... ok [INFO] [stdout] test commands::init::tests::init_auto_detects_project_name_from_dir ... ok [INFO] [stdout] test commands::init::tests::init_with_agent_aider_sets_run_and_plan ... ok [INFO] [stdout] test commands::diff::tests::find_commits_for_unit_finds_matching_commits ... ok [INFO] [stdout] test commands::init::tests::init_setup_on_existing_reconfigures ... ok [INFO] [stdout] test commands::graph::tests::mermaid_output_valid ... 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::init::tests::init_with_agent_claude_sets_run_and_plan ... 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::init::tests::init_with_custom_run_and_plan ... ok [INFO] [stdout] test commands::init::tests::detect_agents_returns_all_presets ... ok [INFO] [stdout] test commands::init::tests::init_with_no_agent_skips_setup ... ok [INFO] [stdout] test commands::list::tests::status_indicator_oversized_shows_warning ... ok [INFO] [stdout] test commands::logs::tests::find_all_logs_in_empty_dir ... ok [INFO] [stdout] test commands::list::tests::status_indicator_open ... ok [INFO] [stdout] test commands::list::tests::status_indicator_unscoped_no_warning ... ok [INFO] [stdout] test commands::logs::tests::find_all_logs_in_matches_raw_id ... ok [INFO] [stdout] test commands::init::tests::init_with_run_only ... ok [INFO] [stdout] test commands::init::tests::init_with_agent_pi_sets_run_and_plan ... 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::find_all_logs_in_matches_unit_id ... ok [INFO] [stdout] test commands::logs::tests::log_dir_creates_directory ... ok [INFO] [stdout] test commands::memory_context::tests::memory_context_empty ... ok [INFO] [stdout] test commands::move_units::tests::move_fails_for_missing_unit ... ok [INFO] [stdout] test commands::memory_context::tests::memory_context_shows_stale_facts ... ok [INFO] [stdout] test commands::memory_context::tests::memory_context_json_output ... ok [INFO] [stdout] test commands::init::tests::reinit_without_setup_shows_config ... ok [INFO] [stdout] test commands::logs::tests::find_all_logs_nonexistent_dir ... ok [INFO] [stdout] test commands::memory_context::tests::memory_context_shows_claimed_units ... ok [INFO] [stdout] test commands::list::tests::render_tree_hierarchy ... ok [INFO] [stdout] test commands::init::tests::init_with_unknown_agent_errors ... ok [INFO] [stdout] test commands::move_units::tests::move_clears_parent_and_deps ... ok [INFO] [stdout] test commands::move_units::tests::move_fails_for_same_directory ... ok [INFO] [stdout] test commands::move_units::tests::move_rebuilds_both_indices ... ok [INFO] [stdout] test commands::move_units::tests::move_to_fails_for_invalid_dest ... 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::move_from_with_mana_dir_path ... ok [INFO] [stdout] test commands::move_units::tests::move_to_pushes_units ... ok [INFO] [stdout] test commands::move_units::tests::move_preserves_unit_content ... ok [INFO] [stdout] test commands::next::tests::higher_priority_scores_higher ... ok [INFO] [stdout] test commands::next::tests::direct_unblocks_returns_correct_ids ... ok [INFO] [stdout] test commands::next::tests::more_unblocks_scores_higher ... ok [INFO] [stdout] test commands::move_units::tests::move_single_unit ... ok [INFO] [stdout] test commands::move_units::tests::resolve_with_project_dir ... ok [INFO] [stdout] test commands::next::tests::more_attempts_scores_lower ... ok [INFO] [stdout] test commands::plan::tests::build_prompt_includes_decomposition_rules ... ok [INFO] [stdout] test commands::plan::tests::build_prompt_includes_produces_requires ... ok [INFO] [stdout] test commands::plan::tests::builtin_plan_command_includes_model_when_set ... ok [INFO] [stdout] test commands::plan::tests::builtin_research_command_includes_model_when_set ... ok [INFO] [stdout] test commands::move_units::tests::move_updates_destination_config_next_id ... ok [INFO] [stdout] test commands::next::tests::older_unit_scores_higher ... ok [INFO] [stdout] test commands::plan::tests::plan_help_contains_plan ... ok [INFO] [stdout] test commands::next::tests::transitive_unblock_count ... ok [INFO] [stdout] test commands::list::tests::not_blocked_when_no_dependencies ... ok [INFO] [stdout] test commands::list::tests::blocked_by_open_dependency ... ok [INFO] [stdout] test commands::plan::tests::plan_research_dry_run_shows_prompt ... ok [INFO] [stdout] test commands::plan::tests::plan_builtin_dry_run_shows_prompt ... ok [INFO] [stdout] test commands::move_units::tests::move_multiple_units ... 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_small_unit_suggests_run ... ok [INFO] [stdout] test commands::plan::tests::plan_force_overrides_size_check ... ok [INFO] [stdout] test commands::plan::tests::research_template_without_model_keeps_placeholder ... ok [INFO] [stdout] test commands::plan::tests::shell_escape_simple ... ok [INFO] [stdout] test commands::plan::tests::plan_template_substitutes_model_and_strategy ... ok [INFO] [stdout] test commands::plan::tests::shell_escape_with_quotes ... ok [INFO] [stdout] test commands::plan::tests::plan_research_creates_parent_unit ... ok [INFO] [stdout] test commands::plan::tests::plan_research_falls_back_to_plan_template ... ok [INFO] [stdout] test commands::plan::tests::plan_no_template_without_auto_errors ... ok [INFO] [stdout] test commands::quick::tests::pass_ok_skips_fail_first_check ... ok [INFO] [stdout] test commands::plan::tests::research_template_command_replaces_parent_id_and_model ... ok [INFO] [stdout] test commands::plan::tests::plan_template_prefers_unit_model_override ... ok [INFO] [stdout] test commands::quick::tests::no_verify_skips_fail_first_check ... ok [INFO] [stdout] test commands::quick::tests::quick_rejects_missing_validation_criteria ... ok [INFO] [stdout] test commands::quick::tests::default_accepts_failing_verify ... ok [INFO] [stdout] test commands::quick::tests::lint::quick_verify_lint_rejects_errors_without_force ... ok [INFO] [stdout] test commands::quick::tests::quick_with_all_fields ... ok [INFO] [stdout] test commands::recall::tests::score_match_notes ... ok [INFO] [stdout] test commands::recall::tests::score_match_description ... ok [INFO] [stdout] test commands::recall::tests::score_match_close_reason ... ok [INFO] [stdout] test commands::recall::tests::title_scores_higher_than_description ... ok [INFO] [stdout] test commands::recall::tests::score_match_title ... ok [INFO] [stdout] test commands::quick::tests::quick_creates_and_claims_unit ... ok [INFO] [stdout] test commands::quick::tests::default_rejects_passing_verify ... ok [INFO] [stdout] test commands::quick::tests::lint::quick_verify_lint_allows_errors_with_force ... ok [INFO] [stdout] test commands::quick::tests::quick_updates_index ... 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::quick::tests::quick_increments_id ... ok [INFO] [stdout] test commands::reopen::tests::test_reopen_nonexistent_unit ... ok [INFO] [stdout] test commands::recall::tests::score_match_paths ... 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_request_changes_injects_notes ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_approve_adds_reviewed_label ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_flag_injects_notes ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_flag_adds_needs_human_review_label ... ok [INFO] [stdout] test commands::review::tests::parse_verdict_approve_case_insensitive ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_appends_to_existing_notes ... ok [INFO] [stdout] test commands::review::tests::parse_verdict_approve ... 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::review::tests::max_reopens_check_prevents_infinite_loops ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_approve_removes_review_failed_label ... 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::run::memory::tests::allows_when_enough_memory ... 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::run::memory::tests::allows_when_unavailable ... ok [INFO] [stdout] test commands::run::memory::tests::available_memory_returns_something ... ok [INFO] [stdout] test commands::run::plan::tests::oversized_unit_dispatched_with_warning ... ok [INFO] [stdout] test commands::review::tests::apply_verdict_request_changes_reopens_unit ... ok [INFO] [stdout] test commands::plan::tests::build_prompt_with_strategy ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_includes_unit_model_override ... ok [INFO] [stdout] test commands::run::plan::tests::dry_run_simulate_respects_produces_requires ... ok [INFO] [stdout] test commands::move_units::tests::move_from_with_project_dir_path ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_no_ready_units ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_filters_by_id ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_file_conflict_in_wave ... 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::plan::tests::print_plan_no_conflicts_shows_full_concurrency ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_returns_ready_units ... ok [INFO] [stdout] test commands::run::plan::tests::print_plan_shows_effective_concurrency ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_parent_id_gets_children ... ok [INFO] [stdout] test commands::run::plan::tests::well_scoped_unit_dispatched ... ok [INFO] [stdout] test commands::run::plan::tests::unscoped_unit_dispatched_normally ... ok [INFO] [stdout] test commands::run::plan::tests::dry_run_simulate_shows_all_waves ... ok [INFO] [stdout] test commands::run::ready_queue::tests::direct_pi_command_includes_model_flag ... ok [INFO] [stdout] test commands::run::ready_queue::tests::direct_pi_command_omits_model_flag_when_unset ... 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::ready_queue::tests::critical_path_unit_scheduled_first ... ok [INFO] [stdout] test commands::run::ready_queue::tests::file_conflict_detected ... ok [INFO] [stdout] test commands::run::plan::tests::plan_dispatch_sorts_wave_by_downstream_weight ... 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_explicit_dep_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_no_deps ... ok [INFO] [stdout] test commands::run::plan::tests::print_plan_shows_file_conflicts ... ok [INFO] [stdout] test commands::run::ready_queue::tests::ready_queue_starts_independent_units_immediately ... ok [INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_requires_met ... ok [INFO] [stdout] test commands::run::ready_queue::tests::is_unit_ready_explicit_dep_not_met ... 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::ready_queue::tests::is_unit_ready_requires_not_met ... ok [INFO] [stdout] test commands::run::tests::determine_spawn_mode_template_when_run_set ... ok [INFO] [stdout] test commands::run::tests::determine_spawn_mode_direct_when_no_run ... ok [INFO] [stdout] test commands::run::tests::dry_run_with_json_stream ... ok [INFO] [stdout] test commands::run::tests::signal_flag_can_be_toggled ... ok [INFO] [stdout] test commands::run::tests::format_duration_formats_correctly ... ok [INFO] [stdout] test commands::run::tests::format_decision_warning_message_matches_single_unit_prompt ... ok [INFO] [stdout] test commands::run::wave::tests::compute_waves_sorts_by_downstream_weight ... ok [INFO] [stdout] test commands::run::wave::tests::compute_waves_diamond ... ok [INFO] [stdout] test commands::run::tests::dry_run_does_not_spawn ... ok [INFO] [stdout] test commands::run::wave::tests::compute_waves_linear_chain ... ok [INFO] [stdout] test commands::run::tests::collect_decision_warnings_only_returns_dispatch_units_with_decisions ... ok [INFO] [stdout] test commands::run::wave::tests::compute_waves_no_deps ... 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::downstream_weights_diamond ... ok [INFO] [stdout] test commands::run::wave::tests::critical_path_linear_chain ... ok [INFO] [stdout] test commands::run::wave::tests::downstream_weights_independent ... ok [INFO] [stdout] test commands::run::wave::tests::critical_path_picks_heaviest_branch ... ok [INFO] [stdout] test commands::run::wave::tests::downstream_weights_linear_chain ... ok [INFO] [stdout] test commands::run::wave::tests::compute_waves_weight_sorting_preserves_priority ... ok [INFO] [stdout] test commands::run::wave::tests::downstream_weights_wide_fan ... ok [INFO] [stdout] test commands::run::wave::tests::downstream_weights_single_unit ... 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_with_conflict ... ok [INFO] [stdout] test commands::run::wave::tests::effective_parallelism_all_conflict ... ok [INFO] [stdout] test commands::run::wave::tests::file_conflicts_empty_when_no_overlap ... ok [INFO] [stdout] test commands::run::wave::tests::file_conflicts_detected ... ok [INFO] [stdout] test commands::run::wave::tests::file_conflicts_multiple_files ... ok [INFO] [stdout] test commands::show::tests::format_short_test ... ok [INFO] [stdout] test commands::run::wave::tests::effective_parallelism_no_conflicts ... ok [INFO] [stdout] 1 [INFO] [stdout] test commands::run::tests::signal_flag_defaults_to_false ... ok [INFO] [stdout] test commands::run::wave::tests::critical_path_single_unit ... ok [INFO] [stdout] test commands::show::tests::history_displays_formatted_table ... ok [INFO] [stdout] test commands::show::tests::history_format_duration_hours ... ok [INFO] [stdout] test commands::show::tests::history_format_cost ... 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_format_duration_minutes ... 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_truncate_agent_long ... ok [INFO] [stdout] test commands::show::tests::history_limits_entries_default ... ok [INFO] [stdout] 1 [INFO] [stdout] test commands::run::plan::tests::print_plan_shows_critical_path ... ok [INFO] [stdout] test commands::show::tests::metadata_header_includes_id_and_status ... ok [INFO] [stdout] test commands::run::ready_queue::tests::build_prompt_returns_err_for_missing_unit ... ok [INFO] [stdout] test commands::show::tests::history_cmd_show_with_history ... ok [INFO] [stdout] test commands::show::tests::history_truncate_agent_short ... 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::history_totals_sum_correctly ... ok [INFO] [stdout] test commands::show::tests::metadata_header_includes_dependencies ... ok [INFO] [stdout] test commands::show::tests::outputs_not_shown_when_none ... 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::show::tests::show_json ... ok [INFO] [stdout] test commands::stats::tests::aggregate_cost_no_history ... ok [INFO] [stdout] test commands::show::tests::outputs_shows_pretty_printed_json ... 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::stats::tests::empty_project ... ok [INFO] [stdout] test commands::show::tests::show_works_with_hierarchical_ids ... ok [INFO] [stdout] test commands::run::tests::cmd_run_errors_when_no_run_template_and_no_pi ... ok [INFO] [stdout] test commands::show::tests::show_short ... ok [INFO] [stdout] test commands::stats::tests::stats_calculates_counts ... ok [INFO] [stdout] test commands::sync::tests::sync_rebuilds_archive_yaml ... 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::show::tests::render_unit_with_description ... ok [INFO] [stdout] test commands::sync::tests::sync_rebuilds_index ... ok [INFO] [stdout] test commands::sync::tests::sync_does_not_create_archive_yaml_when_no_archive ... ok [INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_create_archive_yaml ... ok [INFO] [stdout] test commands::tidy::tests::tidy_archives_closed_units ... ok [INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_move_files ... ok [INFO] [stdout] test commands::tidy::tests::tidy_empty_project ... ok [INFO] [stdout] test commands::tidy::tests::tidy_dry_run_does_not_release_stale_units ... ok [INFO] [stdout] test commands::sync::tests::sync_empty_project ... 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_handles_mix_of_stale_and_closed ... ok [INFO] [stdout] test commands::tidy::tests::tidy_releases_in_progress_unit_without_claimed_at ... ok [INFO] [stdout] test commands::tidy::tests::tidy_rebuilds_index ... ok [INFO] [stdout] test commands::tidy::tests::tidy_handles_mix_of_open_closed_and_in_progress ... ok [INFO] [stdout] test commands::tidy::tests::tidy_releases_in_progress_with_claimed_by ... ok [INFO] [stdout] test commands::tidy::tests::tidy_skips_in_progress_when_agents_running ... ok [INFO] [stdout] test commands::tidy::tests::tidy_releases_stale_in_progress_units ... ok [INFO] [stdout] test commands::trace::tests::test_trace_no_parent_no_deps ... ok [INFO] [stdout] test commands::trace::tests::test_trace_json_output ... ok [INFO] [stdout] test commands::tidy::tests::tidy_skips_closed_parent_with_open_children ... ok [INFO] [stdout] test commands::trace::tests::test_trace_not_found ... ok [INFO] [stdout] test commands::tree::tests::status_indicators ... ok [INFO] [stdout] test commands::sync::tests::sync_counts_units ... ok [INFO] [stdout] test commands::trust::tests::test_cmd_trust_check_reports_disabled ... ok [INFO] [stdout] test commands::tidy::tests::tidy_uses_closed_at_for_archive_date ... ok [INFO] [stdout] test commands::trust::tests::test_cmd_trust_check_reports_enabled ... ok [INFO] [stdout] test commands::trace::tests::test_trace_with_parent_and_deps ... ok [INFO] [stdout] test commands::tree::tests::subtree_works ... ok [INFO] [stdout] test commands::tree::tests::full_tree_displays ... ok [INFO] [stdout] test commands::trust::tests::test_cmd_trust_enables_hooks ... ok [INFO] [stdout] test commands::trust::tests::test_cmd_trust_revoke_with_check ... ok [INFO] [stdout] test commands::tree::tests::subtree_not_found ... ok [INFO] [stdout] test commands::unarchive::tests::test_unarchive_already_in_main_dir ... 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::unarchive::tests::test_unarchive_nested_year_month_structure ... ok [INFO] [stdout] test commands::unarchive::tests::test_unarchive_basic ... ok [INFO] [stdout] test commands::unarchive::tests::test_unarchive_preserves_unit_data ... ok [INFO] [stdout] test commands::trust::tests::test_cmd_trust_revoke_disables_hooks ... ok [INFO] [stdout] test commands::tidy::tests::tidy_updates_archive_yaml ... ok [INFO] [stdout] test commands::unarchive::tests::test_unarchive_preserves_slug ... ok [INFO] [stdout] test commands::unarchive::tests::test_unarchive_updates_updated_at ... ok [INFO] [stdout] test commands::tidy::tests::tidy_archives_parent_when_all_children_closed ... 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::update::tests::test_pre_update_hook_skipped_when_not_trusted ... 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_add_label ... ok [INFO] [stdout] test commands::update::tests::test_update_priority ... ok [INFO] [stdout] test commands::update::tests::test_update_notes_creates_with_timestamp ... ok [INFO] [stdout] test commands::update::tests::test_update_notes_appends ... ok [INFO] [stdout] test commands::update::tests::test_update_rejects_priority_too_high ... 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 commands::update::tests::test_update_accepts_valid_priorities ... ok [INFO] [stdout] test commands::update::tests::test_update_title ... 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_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_bash_no_file ... 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_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 pi_output::tests::pi_output_token_update ... ok [INFO] [stdout] test project::tests::detect_go_project ... ok [INFO] [stdout] test project::tests::detect_node_project ... ok [INFO] [stdout] test project::tests::detect_python_project_pyproject ... ok [INFO] [stdout] test project::tests::detect_python_project_requirements ... ok [INFO] [stdout] test output::tests::output_default_is_not_quiet ... ok [INFO] [stdout] test project::tests::detect_ruby_project ... ok [INFO] [stdout] test project::tests::detect_rust_project ... ok [INFO] [stdout] test project::tests::detect_unknown_project ... ok [INFO] [stdout] test project::tests::node_verify_suggestions ... ok [INFO] [stdout] test project::tests::rust_verify_suggestions ... ok [INFO] [stdout] test project::tests::unknown_has_no_suggestions ... ok [INFO] [stdout] test spawner::tests::agent_action_display ... ok [INFO] [stdout] test spawner::tests::build_log_path_simple_id ... ok [INFO] [stdout] test project::tests::suggest_verify_returns_command ... ok [INFO] [stdout] test spawner::tests::build_log_path_uses_safe_id ... ok [INFO] [stdout] test spawner::tests::can_spawn_respects_max_concurrent ... ok [INFO] [stdout] test spawner::tests::can_spawn_false_when_full ... 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::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 commands::update::tests::test_post_update_hook_runs_after_successful_update ... 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_allows_update_when_passes ... ok [INFO] [stdout] test commands::update::tests::test_pre_update_hook_rejects_update_when_fails ... ok [INFO] [stdout] test spawner::tests::check_completed_detects_finished_process ... ok [INFO] [stdout] test timeout::tests::timeout_zero_timeouts_means_no_limit ... ok [INFO] [stdout] test spawner::tests::check_completed_detects_failed_process ... ok [INFO] [stdout] test timeout::tests::timeout_total_timeout_kills_process ... ok [INFO] [stdout] test commands::update::tests::test_update_with_multiple_fields_triggers_hooks ... ok [INFO] [stdout] test timeout::tests::timeout_idle_timeout_kills_slow_writer ... ok [INFO] [stdout] test commands::run::wave::tests::template_wave_execution_with_echo ... ok [INFO] [stdout] test commands::run::wave::tests::template_wave_runs_implement_action ... ok [INFO] [stdout] test commands::run::wave::tests::template_wave_failed_command ... ok [INFO] [stdout] test commands::close::tests::test_close_batch_partial_rejection_by_hook ... 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_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_appends_to_notes ... ok [INFO] [stdout] test commands::close::verify_timeout_tests::verify_timeout_unit_level_overrides_config ... 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_kills_slow_process_and_records_timeout ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 671 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 60.61s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/mana-e02c0da348a7c94d) [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-531e2e67d21b5419) [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_basic_single ... ok [INFO] [stdout] test test_adopt_files_renamed_correctly ... ok [INFO] [stdout] test test_adopt_preserves_unit_fields ... ok [INFO] [stdout] test test_adopt_unit_already_has_parent ... ok [INFO] [stdout] test test_adopt_updates_index ... ok [INFO] [stdout] test test_adopt_continues_numbering_after_existing_children ... ok [INFO] [stdout] test test_adopt_updates_dependency_references ... ok [INFO] [stdout] test test_adopt_multiple_children ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stderr] Running tests/api_test.rs (/opt/rustwide/target/debug/deps/api_test-384fb950f54f050d) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 7 tests [INFO] [stdout] test api_re_exports_core_types ... ok [INFO] [stdout] test api_find_mana_dir_discovers_directory ... ok [INFO] [stdout] test api_types_are_serializable ... ok [INFO] [stderr] Running tests/cli_tests.rs (/opt/rustwide/target/debug/deps/cli_tests-193ea2b3ec499d17) [INFO] [stdout] test api_get_unit_loads_by_id ... ok [INFO] [stdout] test api_graph_functions_accessible ... ok [INFO] [stdout] test api_load_index_returns_entries ... ok [INFO] [stdout] test api_get_unit_not_found ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [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_verify_succeeds ... ok [INFO] [stdout] test create_claim_with_parent_no_criteria_succeeds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stderr] Running tests/mcp_test.rs (/opt/rustwide/target/debug/deps/mcp_test-0fa68e9bc8da6043) [INFO] [stdout] [INFO] [stdout] running 38 tests [INFO] [stdout] test mcp_claim_unit_already_claimed_returns_error ... ok [INFO] [stdout] test mcp_json_rpc_request_deserializes ... ok [INFO] [stdout] test mcp_json_rpc_response_success_serializes ... ok [INFO] [stdout] test mcp_json_rpc_request_without_id_is_notification ... ok [INFO] [stdout] test mcp_required_tools_have_required_params ... ok [INFO] [stdout] test mcp_resource_definitions_present ... ok [INFO] [stdout] test mcp_create_unit_missing_title_returns_error ... ok [INFO] [stdout] test mcp_error_result_has_is_error_flag ... ok [INFO] [stdout] test mcp_json_rpc_response_error_serializes ... ok [INFO] [stdout] test mcp_context_unit_no_paths ... ok [INFO] [stdout] test mcp_resource_read_status ... ok [INFO] [stdout] test mcp_create_unit_basic ... ok [INFO] [stdout] test mcp_close_unit_with_passing_verify ... ok [INFO] [stdout] test mcp_resource_read_rules_present ... ok [INFO] [stdout] test mcp_list_units_filter_by_priority ... ok [INFO] [stdout] test mcp_create_unit_with_priority ... ok [INFO] [stdout] test mcp_server_dispatch_initialize ... ok [INFO] [stdout] test mcp_claim_unit_sets_in_progress ... ok [INFO] [stdout] test mcp_tool_definitions_returns_all_ten_tools ... ok [INFO] [stdout] test mcp_resource_read_unknown_uri_returns_error ... ok [INFO] [stdout] test mcp_show_unit_invalid_id_returns_error ... ok [INFO] [stdout] test mcp_tool_call_result_format_matches_spec ... ok [INFO] [stdout] test mcp_ready_units_excludes_blocked ... ok [INFO] [stdout] test mcp_resource_read_rules_missing ... ok [INFO] [stdout] test mcp_tool_definitions_have_valid_json_schemas ... ok [INFO] [stdout] test mcp_tree_shows_all_units ... ok [INFO] [stdout] test mcp_show_unit_missing_id_returns_error ... ok [INFO] [stdout] test mcp_resource_read_unit ... ok [INFO] [stdout] test mcp_create_then_close_roundtrip ... ok [INFO] [stdout] test mcp_show_unit_returns_full_details ... ok [INFO] [stdout] test mcp_status_overview ... ok [INFO] [stdout] test mcp_unknown_tool_returns_error ... ok [INFO] [stdout] test mcp_close_unit_with_failing_verify_returns_error ... ok [INFO] [stdout] test mcp_verify_unit_no_verify_command ... ok [INFO] [stdout] test mcp_verify_unit_passing ... ok [INFO] [stdout] test mcp_tree_with_parent_child ... ok [INFO] [stdout] test mcp_close_unit_force_skips_verify ... ok [INFO] [stdout] test mcp_list_units_returns_all_open ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s [INFO] [stdout] [INFO] [stderr] Running tests/test_ctx_assembler.rs (/opt/rustwide/target/debug/deps/test_ctx_assembler-f2e8a78b283698c4) [INFO] [stdout] [INFO] [stdout] running 22 tests [INFO] [stdout] test test_path_at_end_of_string ... ok [INFO] [stdout] test test_paths_with_hyphens ... ok [INFO] [stdout] test test_multiple_paths ... ok [INFO] [stdout] test test_deeply_nested_paths ... ok [INFO] [stdout] test test_ignores_urls ... ok [INFO] [stdout] test test_empty_string ... ok [INFO] [stdout] test test_no_paths ... ok [INFO] [stdout] test test_paths_with_numbers ... ok [INFO] [stdout] test test_path_at_start_of_string ... ok [INFO] [stdout] test test_shell_script_extension ... ok [INFO] [stdout] test test_single_path ... ok [INFO] [stdout] test test_ignores_absolute_paths ... ok [INFO] [stdout] test test_deduplicate_paths ... ok [INFO] [stdout] test test_go_and_java_extensions ... ok [INFO] [stdout] test test_mixed_valid_and_invalid ... ok [INFO] [stdout] test test_with_punctuation ... ok [INFO] [stdout] test test_adjacent_paths ... ok [INFO] [stdout] test test_paths_with_underscores ... ok [INFO] [stdout] test test_yaml_and_json_extensions ... ok [INFO] [stdout] test test_path_in_middle_of_sentence ... ok [INFO] [stdout] test test_various_extensions ... ok [INFO] [stdout] test test_order_of_appearance ... ok [INFO] [stderr] Doc-tests mana [INFO] [stdout] [INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test src/commands/edit.rs - commands::edit::cmd_edit (line 264) ... ignored [INFO] [stdout] test src/commands/edit.rs - commands::edit::load_backup (line 229) ... ignored [INFO] [stdout] test src/commands/edit.rs - commands::edit::open_editor (line 171) ... ignored [INFO] [stdout] test src/commands/edit.rs - commands::edit::prompt_rollback (line 107) ... ignored [INFO] [stdout] test src/commands/edit.rs - commands::edit::rebuild_index_after_edit (line 78) ... ignored [INFO] [stdout] test 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.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "44b57f5d14207519f5388397ef94459ee52ee6b8d82765335b5f0e55e8f72712", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "44b57f5d14207519f5388397ef94459ee52ee6b8d82765335b5f0e55e8f72712", kill_on_drop: false }` [INFO] [stdout] 44b57f5d14207519f5388397ef94459ee52ee6b8d82765335b5f0e55e8f72712