[INFO] fetching crate git-paw 0.16.0... [INFO] testing git-paw-0.16.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2 [INFO] extracting crate git-paw 0.16.0 into /workspace/builds/worker-4-tc2/source [INFO] started tweaking crates.io crate git-paw 0.16.0 [INFO] finished tweaking crates.io crate git-paw 0.16.0 [INFO] tweaked toml for crates.io crate git-paw 0.16.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate git-paw 0.16.0 on toolchain 1.100.0-beta.1 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate git-paw 0.16.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6 [INFO] running `Command { std: "docker" "start" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", 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" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", 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" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling unicode-segmentation v1.13.2 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling winnow v1.0.1 [INFO] [stderr] Compiling rmcp v1.7.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling tokio v1.51.1 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling pastey v0.2.3 [INFO] [stderr] Compiling dialoguer v0.12.0 [INFO] [stderr] Compiling serde_yaml v0.9.34+deprecated [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling clap_complete v4.6.9 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling which v8.0.2 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling rmcp-macros v1.7.0 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling git-paw v0.16.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 16s [INFO] running `Command { std: "docker" "inspect" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", 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" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }` [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling sdd v3.0.10 [INFO] [stderr] Compiling serial_test_derive v3.4.0 [INFO] [stderr] Compiling scc v2.4.0 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling serial_test v3.4.0 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling git-paw v0.16.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `release` profile [optimized] target(s) in 2m 48s [INFO] running `Command { std: "docker" "inspect" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", 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" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }` [INFO] [stderr] Finished `release` profile [optimized] target(s) in 0.39s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/release/build/git-paw/ed29c8bd8658eb52/out/git_paw-ed29c8bd8658eb52) [INFO] [stdout] [INFO] [stdout] running 2141 tests [INFO] [stdout] test agents::tests::build_inter_agent_rules_substitutes_own_branch_id ... ok [INFO] [stdout] test agents::tests::build_inter_agent_rules_contains_file_ownership ... ok [INFO] [stdout] test agents::tests::build_inter_agent_rules_contains_match_spec ... ok [INFO] [stdout] test agents::tests::build_inter_agent_rules_contains_never_push ... ok [INFO] [stdout] test agents::tests::embedded_coordination_does_not_contain_cherry_pick ... ok [INFO] [stdout] test agents::tests::agent_marker_is_shell_sourceable ... ok [INFO] [stdout] test agents::tests::embedded_coordination_requires_no_push ... ok [INFO] [stdout] test agents::tests::embedded_coordination_documents_automatic_status ... ok [INFO] [stdout] test agents::tests::embedded_coordination_retains_supervisor_side_integration_language ... ok [INFO] [stdout] test agents::tests::embedded_coordination_still_contains_optin_operations ... ok [INFO] [stdout] test agents::tests::chain_hook_preserves_content_when_end_marker_missing ... ok [INFO] [stdout] test agents::tests::build_agent_marker_partial_extended_fields ... ok [INFO] [stdout] test agents::tests::chain_hook_replaces_existing_git_paw_block ... ok [INFO] [stdout] test agents::tests::file_inject_creates_missing_file ... ok [INFO] [stdout] test agents::tests::exclude_creates_file_when_missing ... ok [INFO] [stdout] test agents::tests::embedded_coordination_does_not_require_manual_status_publish ... ok [INFO] [stdout] test agents::tests::build_inter_agent_rules_notes_automatic_status ... ok [INFO] [stdout] test agents::tests::build_agent_marker_basic_format ... ok [INFO] [stdout] test agents::tests::file_inject_appends_to_existing ... ok [INFO] [stdout] test agents::tests::exclude_creates_info_dir ... ok [INFO] [stdout] test agents::tests::exclude_appends_when_not_present ... ok [INFO] [stdout] test agents::tests::has_section_returns_false_without_marker ... ok [INFO] [stdout] test agents::tests::exclude_no_duplicate ... ok [INFO] [stdout] test agents::tests::has_section_returns_false_for_empty ... ok [INFO] [stdout] test agents::tests::has_section_returns_true_when_marker_present ... ok [INFO] [stdout] test agents::tests::file_inject_replaces_existing_section ... ok [INFO] [stdout] test agents::tests::build_agent_marker_with_all_extended_fields ... ok [INFO] [stdout] test agents::tests::inject_appends_when_no_existing_section ... ok [INFO] [stdout] test agents::tests::inter_agent_rules_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test agents::tests::post_commit_hook_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test agents::tests::chain_hook_appends_after_existing_content ... ok [INFO] [stdout] test agents::tests::inject_replaces_existing_section ... ok [INFO] [stdout] test agents::tests::pre_push_hook_only_rejects_agent_worktrees ... ok [INFO] [stdout] test agents::tests::file_inject_readonly_returns_error ... FAILED [INFO] [stdout] test agents::tests::generated_section_has_markers ... ok [INFO] [stdout] test agents::tests::post_commit_dispatcher_detects_branch_mismatch ... ok [INFO] [stdout] test agents::tests::pre_commit_guard_hook_blocks_on_branch_mismatch ... ok [INFO] [stdout] test agents::tests::remove_session_boot_block_no_marker_is_noop ... ok [INFO] [stdout] test agents::tests::pre_push_hook_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test agents::tests::inject_into_empty_content_returns_section_only ... ok [INFO] [stdout] test agents::tests::remove_session_boot_block_missing_agents_md_is_noop ... ok [INFO] [stdout] test agents::tests::replace_with_both_markers_preserves_surrounding ... ok [INFO] [stdout] test agents::tests::replace_with_missing_end_marker_replaces_to_eof ... ok [INFO] [stdout] test agents::tests::remove_session_boot_block_strips_marked_block ... ok [INFO] [stdout] test agents::tests::sample_section_contains_git_paw_reference ... ok [INFO] [stdout] test agents::tests::remove_session_boot_block_preserves_no_trailing_newline ... ok [INFO] [stdout] test agents::tests::pre_commit_hook_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test agents::tests::build_inter_agent_rules_escalates_peer_dependency_instead_of_cherry_pick ... ok [INFO] [stdout] test agents::tests::post_commit_dispatcher_hook_reads_marker_and_publishes ... ok [INFO] [stdout] test agents::tests::is_managed_path_classifies_git_paw_subtree_managed ... ok [INFO] [stdout] test agents::tests::setup_worktree_replaces_root_section ... ok [INFO] [stdout] test agents::tests::setup_worktree_managed_block_in_sidecar_combined_view ... ok [INFO] [stdout] test agents::tests::spacing_with_trailing_newline ... ok [INFO] [stdout] test agents::tests::setup_worktree_write_failure_returns_agents_md_error ... FAILED [INFO] [stdout] test agents::tests::install_git_hooks_preserves_existing_dispatcher_body ... ok [INFO] [stdout] test agents::tests::worktree_section_all_fields ... ok [INFO] [stdout] test agents::tests::spacing_without_trailing_newline ... ok [INFO] [stdout] test agents::tests::worktree_section_inter_agent_rules_carries_no_unsubstituted_placeholder ... ok [INFO] [stdout] test agents::tests::update_agent_marker_replaces_existing_fields ... ok [INFO] [stdout] test agents::tests::worktree_section_all_fields_with_skill ... ok [INFO] [stdout] test agents::tests::worktree_section_inter_agent_rules_none_matches_pre_change ... ok [INFO] [stdout] test agents::tests::update_agent_marker_adds_missing_fields ... ok [INFO] [stdout] test agents::tests::update_agent_marker_reuses_lazy_regex_across_calls ... ok [INFO] [stdout] test agents::tests::setup_worktree_root_missing ... ok [INFO] [stdout] test agents::tests::worktree_section_minimal ... ok [INFO] [stdout] test agents::tests::worktree_section_skill_contains_slugified_branch ... ok [INFO] [stdout] test agents::tests::worktree_section_skill_preserves_broker_url_placeholder ... ok [INFO] [stdout] test agents::tests::worktree_section_none_skill_matches_v020 ... ok [INFO] [stdout] test agents::tests::worktree_section_no_spec ... ok [INFO] [stdout] test agents::tests::setup_worktree_sidecar_not_reported_by_status ... ok [INFO] [stdout] test agents::tests::worktree_section_no_files ... ok [INFO] [stdout] test agents::tests::worktree_section_skill_without_spec_or_files ... ok [INFO] [stdout] test broker::conflict::tests::auto_emitted_question_targets_supervisor_inbox_with_tag ... ok [INFO] [stdout] test broker::conflict::tests::auto_emitted_feedback_uses_supervisor_from_and_conflict_tag ... ok [INFO] [stdout] test broker::conflict::tests::detector_conservative_fallback_file_level_intents_escalate ... ok [INFO] [stdout] test broker::conflict::tests::detector_additive_downgrade_recorded_and_not_reemitted ... ok [INFO] [stdout] test broker::conflict::tests::detector_additive_overlap_downgrades_no_question ... ok [INFO] [stdout] test agents::tests::worktree_section_with_inter_agent_rules ... ok [INFO] [stdout] test agents::tests::worktree_section_without_inter_agent_rules_has_no_section ... ok [INFO] [stdout] test broker::conflict::tests::detector_forward_conflict_non_overlap_no_warnings ... ok [INFO] [stdout] test broker::conflict::tests::detector_forward_conflict_suppression_when_disabled ... ok [INFO] [stdout] test agents::tests::is_managed_path_classifies_sidecar_managed_and_user_files_unmanaged ... ok [INFO] [stdout] test broker::conflict::tests::detector_filters_own_emissions ... ok [INFO] [stdout] test broker::conflict::tests::detector_forward_conflict_dedupe ... ok [INFO] [stdout] test broker::conflict::tests::detector_forward_conflict_happy_path ... ok [INFO] [stdout] test broker::conflict::tests::detector_conservative_fallback_one_side_file_level_escalates ... ok [INFO] [stdout] test broker::conflict::tests::detector_cross_kind_conflict_includes_hint ... ok [INFO] [stdout] test agents::tests::setup_worktree_sidecar_in_ignore_set ... ok [INFO] [stdout] test broker::conflict::tests::detector_file_level_fallback_when_one_side_omits_regions ... ok [INFO] [stdout] test broker::conflict::tests::detector_ignores_artifact_messages_for_warnings ... ok [INFO] [stdout] test agents::tests::get_agent_marker_path_returns_correct_path ... ok [INFO] [stdout] test broker::conflict::tests::detector_in_flight_escalation_dedupe ... ok [INFO] [stdout] test broker::conflict::tests::detector_non_overlapping_functions_no_conflict ... ok [INFO] [stdout] test broker::conflict::tests::detector_non_overlapping_ranges_no_conflict ... ok [INFO] [stdout] test broker::conflict::tests::detector_in_flight_initial_warning ... ok [INFO] [stdout] test broker::conflict::tests::detector_overlapping_ranges_conflict ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_escalation_suppression ... ok [INFO] [stdout] test broker::conflict::tests::detector_in_flight_escalation_after_window ... ok [INFO] [stdout] test broker::conflict::tests::detector_normalized_match_upgrades_additive_to_true ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_file_inside_own_intent_no_violation ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_shared_tasks_file_no_violation ... ok [INFO] [stdout] test broker::conflict::tests::detector_spelling_variants_conflict ... ok [INFO] [stdout] test broker::conflict::tests::detector_self_replace_no_self_conflict ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_unclaimed_file_no_violation ... ok [INFO] [stdout] test broker::conflict::tests::detector_in_flight_resolution_drops_triple ... ok [INFO] [stdout] test broker::conflict::tests::detector_region_conflict_only_on_intersecting_file ... ok [INFO] [stdout] test broker::conflict::tests::detector_overlapping_functions_conflict_names_function ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_violation_dedupe ... ok [INFO] [stdout] test broker::conflict::tests::detector_v050_string_only_intents_behave_file_level ... ok [INFO] [stdout] test broker::conflict::tests::detector_named_cross_kind_same_name_conflict_includes_hint ... ok [INFO] [stdout] test broker::conflict::tests::detector_true_collision_same_anchor_escalates_after_window ... ok [INFO] [stdout] test broker::conflict::tests::detector_warning_enumerates_multiple_intersecting_regions ... ok [INFO] [stdout] test broker::conflict::tests::normalized_from_detailed_empty_regions_collapses_to_none ... ok [INFO] [stdout] test broker::conflict::tests::detector_ttl_expired_intent_does_not_overlap ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_different_function_names_empty ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_different_named_kinds_different_names_empty ... ok [INFO] [stdout] test broker::conflict::tests::detector_stops_cleanly_on_broker_stop ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_combined_spelling_variant ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_cross_kind_is_conservative ... ok [INFO] [stdout] test broker::conflict::tests::detector_ownership_violation_emits_feedback_and_question ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_distinct_symbols_stay_distinct ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_named_cross_kind_different_names_empty ... ok [INFO] [stdout] test broker::conflict::tests::normalized_from_detailed_with_regions_is_some ... ok [INFO] [stdout] test broker::conflict::tests::detector_true_collision_overlapping_ranges_escalates ... ok [INFO] [stdout] test broker::conflict::tests::normalized_from_path_has_no_regions ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_normalizes_trailing_parens ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_normalizes_trim ... ok [INFO] [stdout] test broker::conflict::tests::tracker_expire_stale_intents_drops_aged_entries ... ok [INFO] [stdout] test broker::conflict::tests::tracker_forward_overlaps_excludes_managed_bookkeeping ... ok [INFO] [stdout] test broker::conflict::tests::tracker_forward_overlaps_returns_overlap_files ... ok [INFO] [stdout] test broker::conflict::tests::tracker_in_flight_overlaps_excludes_managed_bookkeeping ... ok [INFO] [stdout] test broker::conflict::tests::tracker_in_flight_overlaps_returns_intersected_files ... ok [INFO] [stdout] test broker::conflict::tests::tracker_insert_intent_records_files ... ok [INFO] [stdout] test broker::conflict::tests::tracker_insert_intent_replaces_prior_intent ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_named_cross_kind_same_name_conservative ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_non_overlapping_ranges_empty ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_normalizes_case ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_normalizes_leading_declaration_keyword ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_normalizes_separators ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_overlapping_ranges ... ok [INFO] [stdout] test broker::conflict::tests::regions_intersect_same_function_name ... ok [INFO] [stdout] test broker::conflict::tests::tracker_insert_intent_clears_prior_pair_dedupe ... ok [INFO] [stdout] test broker::conflict::tests::tracker_intent_pair_dedupe_is_ordered ... ok [INFO] [stdout] test broker::conflict::tests::tracker_ownership_violations_file_inside_other_intent ... ok [INFO] [stdout] test broker::conflict::tests::tracker_ownership_violations_exempts_shared_tasks_file ... ok [INFO] [stdout] test broker::delivery::tests::coding_agent_status_cli_appears_in_snapshot ... ok [INFO] [stdout] test broker::delivery::tests::broadcast_routing_reaches_peers_skips_sender_and_unregistered ... ok [INFO] [stdout] test broker::delivery::tests::committed_artifact_publishes_verify_now_to_supervisor ... ok [INFO] [stdout] test broker::delivery::tests::committed_artifact_stamps_last_committed_at ... ok [INFO] [stdout] test broker::delivery::tests::all_terminal_states_are_protected ... ok [INFO] [stdout] test broker::conflict::tests::tracker_ownership_violations_inside_own_intent_is_ok ... ok [INFO] [stdout] test broker::conflict::tests::tracker_ownership_violations_unclaimed_file_is_ok ... ok [INFO] [stdout] test broker::conflict::tests::tracker_record_in_flight_pair_returns_true_only_first_time ... ok [INFO] [stdout] test broker::conflict::tests::tracker_take_due_escalations_returns_aged_triples_once ... ok [INFO] [stdout] test broker::delivery::tests::committed_artifact_suppresses_nudge_when_disabled ... ok [INFO] [stdout] test broker::delivery::tests::answer_publish_does_not_distort_roster ... ok [INFO] [stdout] test broker::delivery::tests::committed_does_not_reenter_after_ttl_window ... ok [INFO] [stdout] test broker::delivery::tests::default_config_enables_the_nudge ... ok [INFO] [stdout] test broker::delivery::tests::distinct_questions_from_same_agent_both_enqueue ... ok [INFO] [stdout] test broker::delivery::tests::committed_stays_terminal_when_ttl_zero ... ok [INFO] [stdout] test broker::delivery::tests::disk_failure_does_not_affect_state ... ok [INFO] [stdout] test broker::delivery::tests::done_artifact_does_not_trigger_nudge ... ok [INFO] [stdout] test broker::delivery::tests::feedback_does_not_mutate_sender_record ... ok [INFO] [stdout] test broker::delivery::tests::feedback_from_non_agent_creates_no_phantom_row ... ok [INFO] [stdout] test agents::tests::setup_worktree_root_exists ... ok [INFO] [stdout] test broker::delivery::tests::identical_republished_question_enqueues_once ... ok [INFO] [stdout] test broker::delivery::tests::first_message_gets_sequence_one ... ok [INFO] [stdout] test broker::delivery::tests::fresh_broker_state_builds_roster_only_from_status_publishers ... ok [INFO] [stdout] test broker::delivery::tests::first_publish_creates_record_and_inbox ... ok [INFO] [stdout] test broker::delivery::tests::inbox_stores_correct_sequence_number ... ok [INFO] [stdout] test broker::delivery::tests::intent_updates_sender_record_status_to_intent ... ok [INFO] [stdout] test broker::delivery::tests::message_log_includes_all_types ... ok [INFO] [stdout] test broker::delivery::tests::flush_only_writes_new_entries ... ok [INFO] [stdout] test broker::delivery::tests::message_log_accumulates_three_entries ... ok [INFO] [stdout] test broker::delivery::tests::committed_reenters_working_within_ttl ... ok [INFO] [stdout] test broker::delivery::tests::poll_since_filters_older_messages ... ok [INFO] [stdout] test broker::delivery::tests::nudge_appears_in_message_log_after_artifact ... ok [INFO] [stdout] test broker::delivery::tests::poll_since_latest_holds_cursor_at_since ... ok [INFO] [stdout] test broker::delivery::tests::poll_is_nondestructive ... ok [INFO] [stdout] test broker::delivery::tests::poll_since_zero_returns_all ... ok [INFO] [stdout] test broker::delivery::tests::poll_unknown_agent_returns_empty ... ok [INFO] [stdout] test broker::delivery::tests::nudge_does_not_overwrite_committing_agent_record ... ok [INFO] [stdout] test broker::delivery::tests::question_and_verified_identities_create_no_phantom_rows ... ok [INFO] [stdout] test broker::delivery::tests::question_appears_in_message_log ... ok [INFO] [stdout] test broker::delivery::tests::question_creates_supervisor_inbox_if_absent ... ok [INFO] [stdout] test broker::delivery::tests::question_creates_supervisor_inbox_when_absent ... ok [INFO] [stdout] test broker::delivery::tests::question_does_not_create_sender_roster_row ... ok [INFO] [stdout] test broker::delivery::tests::question_does_not_wedge_later_messages_in_mixed_inbox ... ok [INFO] [stdout] test broker::delivery::tests::question_leaves_existing_sender_row_unchanged ... ok [INFO] [stdout] test broker::delivery::tests::question_not_delivered_to_other_agents ... ok [INFO] [stdout] test broker::delivery::tests::question_not_in_sender_inbox ... ok [INFO] [stdout] test broker::delivery::tests::question_routed_to_supervisor_inbox ... ok [INFO] [stdout] test broker::delivery::tests::question_vs_blocked_inbox_creation_differs ... ok [INFO] [stdout] test broker::delivery::tests::recent_messages_includes_all_types ... ok [INFO] [stdout] test broker::delivery::tests::recent_messages_respects_limit ... ok [INFO] [stdout] test broker::delivery::tests::recent_messages_returns_empty_when_no_messages ... ok [INFO] [stdout] test broker::delivery::tests::recent_messages_returns_messages_in_reverse_order ... ok [INFO] [stdout] test broker::delivery::tests::same_question_text_from_different_agents_both_enqueue ... ok [INFO] [stdout] test broker::delivery::tests::seeded_cli_appears_only_after_the_pane_publishes ... ok [INFO] [stdout] test broker::delivery::tests::seeded_cli_wins_over_a_wrong_self_report ... ok [INFO] [stdout] test broker::delivery::tests::sequence_numbers_are_globally_monotonic ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_carries_phase_from_most_recent_status_message ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_resolves_cli_from_seeded_map_when_status_omits_it ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_empty_on_fresh_state ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_phase_is_none_when_last_message_is_not_status ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_reflects_latest_status ... ok [INFO] [stdout] test broker::delivery::tests::status_not_routed_to_any_inbox ... ok [INFO] [stdout] test broker::delivery::tests::supervisor_cli_lands_in_agent_clis_via_status_payload ... ok [INFO] [stdout] test broker::delivery::tests::targeted_routing_delivers_to_target_only ... ok [INFO] [stdout] test broker::delivery::tests::terminal_state_can_be_overwritten_by_other_terminal ... ok [INFO] [stdout] test broker::delivery::tests::terminal_state_not_overwritten_by_non_terminal ... ok [INFO] [stdout] test broker::delivery::tests::terminal_state_not_overwritten_by_non_terminal_simple ... ok [INFO] [stdout] test broker::delivery::tests::snapshot_contains_all_registered_agents ... ok [INFO] [stdout] test broker::delivery::tests::with_seeded_cli_ignores_blank_value ... ok [INFO] [stdout] test broker::delivery::tests::terminal_status_protection_with_artifact_messages ... ok [INFO] [stdout] test broker::learnings::tests::all_four_categories_round_trip_through_broker_message ... ok [INFO] [stdout] test broker::delivery::tests::terminal_status_protection_with_blocked_messages ... ok [INFO] [stdout] test broker::learnings::tests::branch_id_distinguishes_otherwise_identical_records ... ok [INFO] [stdout] test broker::delivery::tests::verified_does_not_mutate_verifier_record ... ok [INFO] [stdout] test broker::delivery::tests::verify_now_carries_committing_branch_verbatim ... ok [INFO] [stdout] test broker::learnings::tests::detector_question_to_supervisor_is_classified ... ok [INFO] [stdout] test broker::learnings::tests::burst_of_events_does_not_write_until_flush ... ok [INFO] [stdout] test broker::learnings::tests::broker_publish_off_queues_no_records ... ok [INFO] [stdout] test broker::learnings::tests::broker_publish_on_queues_records_matching_file ... ok [INFO] [stdout] test broker::learnings::tests::different_categories_get_different_ids_with_identical_body ... ok [INFO] [stdout] test broker::learnings::tests::each_qualitative_category_routes_to_its_section ... ok [INFO] [stdout] test broker::learnings::tests::empty_categories_are_omitted_from_markdown ... ok [INFO] [stdout] test broker::learnings::tests::extract_command_class_parses_matched_entry ... ok [INFO] [stdout] test broker::delivery::tests::flush_writes_messages_to_disk ... ok [INFO] [stdout] test broker::learnings::tests::extract_regions_parses_descriptors ... ok [INFO] [stdout] test broker::learnings::tests::broker_message_has_agent_learning_variant ... ok [INFO] [stdout] test broker::learnings::tests::flush_writes_h2_header_once_per_session ... ok [INFO] [stdout] test broker::delivery::tests::non_terminal_state_can_be_overwritten_by_terminal ... ok [INFO] [stdout] test broker::learnings::tests::conflict_and_permission_records_are_cross_cutting_no_branch ... ok [INFO] [stdout] test broker::learnings::tests::format_routing_entry_truncates_long_prompt ... ok [INFO] [stdout] test broker::learnings::tests::forward_conflict_cross_spec_records_specs ... ok [INFO] [stdout] test broker::learnings::tests::forward_conflict_intra_spec_recorded_once ... ok [INFO] [stdout] test broker::delivery::tests::no_flush_thread_when_no_log_path ... ok [INFO] [stdout] test broker::learnings::tests::malformed_qualitative_body_renders_as_title_plus_json ... ok [INFO] [stdout] test broker::learnings::tests::forward_conflict_region_aware_body_includes_regions ... ok [INFO] [stdout] test broker::learnings::tests::format_routing_entry_shape ... ok [INFO] [stdout] test broker::learnings::tests::id_is_independent_of_body_key_insertion_order ... ok [INFO] [stdout] test broker::learnings::tests::ingested_deterministic_learning_is_ignored ... ok [INFO] [stdout] test broker::learnings::tests::forward_conflict_file_level_body_omits_regions ... ok [INFO] [stdout] test broker::learnings::tests::in_flight_conflict_classified ... ok [INFO] [stdout] test broker::learnings::tests::observe_routes_blocked_and_artifact ... ok [INFO] [stdout] test broker::learnings::tests::ownership_violation_classified ... ok [INFO] [stdout] test broker::learnings::tests::permission_pattern_below_threshold_omitted_then_emitted_later ... ok [INFO] [stdout] test broker::learnings::tests::malformed_tooling_friction_renders_as_title_plus_json ... ok [INFO] [stdout] test broker::learnings::tests::no_learnings_session_writes_nothing ... ok [INFO] [stdout] test broker::learnings::tests::qualitative_records_get_identical_ids_within_the_hour ... ok [INFO] [stdout] test broker::learnings::tests::recovery_cycles_recorded_on_verify ... ok [INFO] [stdout] test broker::learnings::tests::qualitative_dedup_keeps_distinct_identifiers ... ok [INFO] [stdout] test broker::learnings::tests::recovery_cycles_zero_count_skipped ... ok [INFO] [stdout] test broker::learnings::tests::qualitative_dedup_distinguishes_malformed_by_id ... ok [INFO] [stdout] test agents::tests::setup_worktree_clears_stale_assume_unchanged ... ok [INFO] [stdout] test broker::learnings::tests::default_flush_interval_is_60_seconds ... ok [INFO] [stdout] test broker::learnings::tests::observe_auto_approve_increments_counter ... ok [INFO] [stdout] test broker::learnings::tests::observe_increments_feedback_then_records_recovery ... ok [INFO] [stdout] test broker::learnings::tests::permission_pattern_above_threshold_emits_entry ... ok [INFO] [stdout] test broker::learnings::tests::qualitative_ingestion_does_not_republish ... ok [INFO] [stdout] test broker::learnings::tests::qualitative_dedup_suppresses_same_primary_identifier ... ok [INFO] [stdout] test agents::tests::setup_worktree_tracked_agents_md_untouched_and_not_excluded ... ok [INFO] [stdout] test broker::learnings::tests::routing_record_with_learnings_disabled_writes_nothing ... ok [INFO] [stdout] test broker::learnings::tests::replayed_events_within_hour_produce_identical_ids ... ok [INFO] [stdout] test broker::learnings::tests::stuck_duration_unresolved_at_shutdown ... ok [INFO] [stdout] test broker::learnings::tests::same_record_across_hour_boundary_gets_different_ids ... ok [INFO] [stdout] test broker::learnings::tests::stuck_duration_resolved_on_artifact ... ok [INFO] [stdout] test broker::learnings::tests::stuck_and_recovery_records_are_branch_scoped ... ok [INFO] [stdout] test broker::learnings::tests::unknown_category_falls_through_to_other_learnings ... ok [INFO] [stdout] test broker::learnings::tests::v0_5_0_sections_unchanged_alongside_qualitative ... ok [INFO] [stdout] test broker::learnings::tests::wiring_predicate_only_enables_when_supervisor_and_learnings_both_true ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_display_is_single_line ... ok [INFO] [stdout] test broker::learnings::tests::routing_record_with_learnings_enabled_writes_section ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_id_differs_across_hour_boundary ... ok [INFO] [stdout] test broker::learnings::tests::same_record_within_the_hour_gets_same_id ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_id_differs_for_different_base ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_blank_required_field_rejected ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_id_same_input_same_hour_is_identical ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_missing_required_field_rejected ... ok [INFO] [stdout] test broker::learnings::tests::tooling_friction_addition_leaves_existing_sections_unchanged ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_id_differs_for_different_shas ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_round_trips_with_all_fields ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_id_is_16_hex_chars ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_payload_deterministic_id_matches_free_fn ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_preserves_summary_verbatim ... ok [INFO] [stdout] test broker::messages::tests::artifact_payload_absent_lists_default_to_empty ... ok [INFO] [stdout] test agents::tests::install_git_hooks_writes_dispatcher_to_common_git_dir ... ok [INFO] [stdout] test broker::messages::tests::artifact_payload_empty_lists_still_serialise_as_empty_arrays ... ok [INFO] [stdout] test broker::messages::tests::display_question_matches_spec_format ... ok [INFO] [stdout] test broker::messages::tests::advanced_main_summary_omitted_when_absent ... ok [INFO] [stdout] test broker::messages::tests::display_answer_with_re ... ok [INFO] [stdout] test broker::messages::tests::agent_id_returns_sender_for_every_variant ... ok [INFO] [stdout] test broker::messages::tests::display_answer_without_re ... ok [INFO] [stdout] test broker::messages::tests::display_status ... ok [INFO] [stdout] test broker::messages::tests::display_status_with_files ... ok [INFO] [stdout] test broker::messages::tests::display_verified_without_message ... ok [INFO] [stdout] test broker::messages::tests::envelope_serde_rename_covers_seven_variants ... ok [INFO] [stdout] test broker::messages::tests::file_intent_object_entry_with_regions_round_trips ... ok [INFO] [stdout] test broker::messages::tests::file_intent_object_entry_without_regions_omits_field ... ok [INFO] [stdout] test broker::messages::tests::file_intent_string_entry_round_trips_to_bare_string ... ok [INFO] [stdout] test broker::messages::tests::from_json_accepts_slash_in_agent_id ... ok [INFO] [stdout] test broker::messages::tests::display_feedback_with_three_errors ... ok [INFO] [stdout] test broker::messages::tests::display_question ... ok [INFO] [stdout] test broker::messages::tests::display_artifact_with_exports ... ok [INFO] [stdout] test broker::messages::tests::display_blocked ... ok [INFO] [stdout] test broker::messages::tests::artifact_payload_populated_lists_round_trip_byte_equivalent ... ok [INFO] [stdout] test broker::messages::tests::display_artifact_no_exports ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_answer_from_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_answer_without_re_validates ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_feedback_errors_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_answer_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_agent_id_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_artifact_status_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_feedback_from_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_needs_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_from_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_invalid_json_rejected ... ok [INFO] [stdout] test broker::messages::tests::display_verified_with_message ... ok [INFO] [stdout] test broker::messages::tests::from_json_minimal_status_message_parses ... ok [INFO] [stdout] test broker::messages::tests::from_json_valid_status ... ok [INFO] [stdout] test broker::messages::tests::from_json_whitespace_agent_id_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_valid_question ... ok [INFO] [stdout] test broker::messages::tests::from_json_feedback_absent_errors_is_missing_field_error ... ok [INFO] [stdout] test broker::messages::tests::intent_display_with_one_file ... ok [INFO] [stdout] test broker::messages::tests::intent_display_with_empty_summary_renders_dash ... ok [INFO] [stdout] test broker::messages::tests::from_json_intent_absent_files_is_missing_field_error ... ok [INFO] [stdout] test broker::messages::tests::from_json_unknown_type_rejected ... ok [INFO] [stdout] test broker::messages::tests::intent_display_output ... ok [INFO] [stdout] test broker::messages::tests::intent_whitespace_file_path_rejected ... ok [INFO] [stdout] test broker::learnings::tests::tooling_friction_routes_to_its_section_not_other_learnings ... ok [INFO] [stdout] test broker::messages::tests::intent_empty_summary_rejected ... ok [INFO] [stdout] test broker::messages::tests::intent_message_round_trips_through_serde ... ok [INFO] [stdout] test broker::messages::tests::intent_mixed_string_and_object_files_round_trip ... ok [INFO] [stdout] test broker::messages::tests::intent_zero_valid_for_seconds_rejected ... ok [INFO] [stdout] test broker::messages::tests::intent_payload_with_multiple_files_round_trips ... ok [INFO] [stdout] test broker::messages::tests::intent_with_unknown_region_kind_rejected ... ok [INFO] [stdout] test broker::messages::tests::intent_payload_with_single_file_round_trips ... ok [INFO] [stdout] test broker::messages::tests::learning_accepts_unknown_category_open_enum ... ok [INFO] [stdout] test broker::messages::tests::intent_valid_message_produces_broker_message ... ok [INFO] [stdout] test broker::messages::tests::learning_empty_agent_id_rejected ... ok [INFO] [stdout] test broker::messages::tests::learning_empty_category_rejected ... ok [INFO] [stdout] test broker::messages::tests::intent_empty_files_array_rejected ... ok [INFO] [stdout] test broker::messages::tests::learning_empty_timestamp_rejected ... ok [INFO] [stdout] test broker::messages::tests::learning_empty_title_rejected ... ok [INFO] [stdout] test broker::messages::tests::learning_missing_body_rejected_as_deserialize_error ... ok [INFO] [stdout] test broker::messages::tests::learning_missing_category_rejected_as_deserialize_error ... ok [INFO] [stdout] test broker::messages::tests::learning_omits_branch_id_when_none ... ok [INFO] [stdout] test broker::messages::tests::question_empty_agent_id_rejected ... ok [INFO] [stdout] test broker::messages::tests::learning_round_trips_through_serde ... ok [INFO] [stdout] test broker::messages::tests::question_empty_field_rejected ... ok [INFO] [stdout] test broker::messages::tests::question_payload_omits_from_field ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_status_rejected ... ok [INFO] [stdout] test broker::messages::tests::from_json_empty_verified_by_rejected ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_answer_without_re_omits_field ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_artifact ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_verified_with_message ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_verified_without_message ... ok [INFO] [stdout] test broker::messages::tests::question_whitespace_field_rejected ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_blocked ... ok [INFO] [stdout] test broker::messages::tests::region_display_renders_kind_and_name ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_feedback ... ok [INFO] [stdout] test broker::messages::tests::region_each_kind_round_trips ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_question_feat_x ... ok [INFO] [stdout] test broker::messages::tests::region_unknown_kind_rejected_with_clear_error ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_status ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_answer_with_re ... ok [INFO] [stdout] test broker::messages::tests::serde_roundtrip_question ... ok [INFO] [stdout] test broker::messages::tests::status_payload_absent_activity_is_omitted_not_null ... ok [INFO] [stdout] test broker::messages::tests::status_payload_optional_cli_phase_deserialise_matrix ... ok [INFO] [stdout] test broker::messages::tests::status_payload_optional_cli_phase_serialise_matrix ... ok [INFO] [stdout] test broker::messages::tests::status_payload_round_trips_with_phase_and_detail ... ok [INFO] [stdout] test broker::messages::tests::status_payload_v050_shape_round_trips_byte_equivalent ... ok [INFO] [stdout] test broker::messages::tests::v050_string_only_intent_round_trips_byte_equivalent ... ok [INFO] [stdout] test broker::messages::tests::verify_now_rejects_blank_branch_id ... ok [INFO] [stdout] test broker::messages::tests::status_payload_absent_modified_files_defaults_to_empty ... ok [INFO] [stdout] test broker::messages::tests::status_payload_accepts_unknown_phase_value ... ok [INFO] [stdout] test broker::messages::tests::verify_now_round_trips_with_branch_id ... ok [INFO] [stdout] test broker::publish::tests::build_status_message_with_explicit_cli_populates_cli_field ... ok [INFO] [stdout] test broker::messages::tests::status_payload_activity_round_trips_when_present ... ok [INFO] [stdout] test broker::publish::tests::build_artifact_message_matches_broker_sh_shape ... ok [INFO] [stdout] test agents::tests::setup_worktree_hand_edit_stages_and_commits ... ok [INFO] [stdout] test broker::messages::tests::slugify_branch_normalises_each_case ... ok [INFO] [stdout] test broker::publish::tests::build_blocked_message_matches_broker_sh_shape ... ok [INFO] [stdout] test broker::messages::tests::status_label_returns_label_for_every_variant ... ok [INFO] [stdout] test broker::publish::tests::build_question_message_matches_broker_sh_shape ... ok [INFO] [stdout] test broker::publish::tests::build_status_message_with_none_cli_omits_cli_key_from_json ... ok [INFO] [stdout] test broker::server::tests::advanced_main_missing_field_returns_400_naming_field ... ok [INFO] [stdout] test broker::publish::tests::publish_to_broker_http_returns_err_on_non_202_without_panicking ... ok [INFO] [stdout] test broker::server::tests::advanced_main_accepted_through_publish_endpoint ... ok [INFO] [stdout] test broker::server::tests::advanced_main_routes_to_every_registered_agent ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_feat_dash ... ok [INFO] [stdout] test broker::server::tests::log_invalid_since_returns_400 ... ok [INFO] [stdout] test broker::server::tests::agent_id_rejects_single_letter ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_configured_branch_prefix ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_fix_slash ... ok [INFO] [stdout] test broker::server::tests::e2e_feedback_from_human_creates_no_phantom_roster_row ... ok [INFO] [stdout] test broker::server::tests::messages_invalid_since_returns_400 ... ok [INFO] [stdout] test broker::server::tests::agent_id_rejects_placeholder ... ok [INFO] [stdout] test broker::server::tests::messages_valid_agent_returns_200_with_last_seq ... ok [INFO] [stdout] test broker::server::tests::agent_id_rejects_prefixless_word ... ok [INFO] [stdout] test broker::server::tests::messages_invalid_agent_returns_400 ... ok [INFO] [stdout] test broker::server::tests::log_with_since_filters_older_entries ... ok [INFO] [stdout] test broker::server::tests::payload_blocked_rejects_placeholder_needs ... ok [INFO] [stdout] test broker::server::tests::payload_answer_rejects_placeholder ... ok [INFO] [stdout] test broker::server::tests::payload_answer_rejects_placeholder_re ... ok [INFO] [stdout] test broker::server::tests::publish_empty_agent_id_returns_400 ... ok [INFO] [stdout] test broker::server::tests::payload_question_accepts_real_content ... ok [INFO] [stdout] test broker::server::tests::payload_answer_accepts_real_content ... ok [INFO] [stdout] test broker::server::tests::payload_question_rejects_placeholder ... ok [INFO] [stdout] test broker::server::tests::log_returns_full_message_log_in_chronological_order ... ok [INFO] [stdout] test broker::server::tests::panic_in_handler_is_isolated ... ok [INFO] [stdout] test broker::server::tests::publish_invalid_json_returns_400 ... ok [INFO] [stdout] test broker::server::tests::publish_empty_body_returns_400 ... ok [INFO] [stdout] test broker::server::tests::publish_missing_content_type_returns_415 ... ok [INFO] [stdout] test broker::server::tests::payload_feedback_rejects_placeholder_error_entry ... ok [INFO] [stdout] test broker::server::tests::status_returns_marker_and_version ... ok [INFO] [stdout] test broker::server::tests::unknown_route_returns_404 ... ok [INFO] [stdout] test broker::server::tests::watch_duplicate_registration_is_a_noop_success ... ok [INFO] [stdout] test broker::server::tests::watch_rejects_empty_worktree_path ... ok [INFO] [stdout] test broker::server::tests::publish_wrong_content_type_returns_415 ... ok [INFO] [stdout] test broker::server::tests::watch_rejects_placeholder_worktree_path ... ok [INFO] [stdout] test broker::server::tests::watch_rejects_invalid_agent_id ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_feat_slash ... ok [INFO] [stdout] test broker::server::tests::watch_wrong_content_type_returns_415 ... ok [INFO] [stdout] test broker::server::tests::wrong_method_returns_405 ... ok [INFO] [stdout] test broker::tests::branch_scoped_learning_is_routed_to_branch_inbox ... ok [INFO] [stdout] test broker::tests::broker_state_new_is_empty ... ok [INFO] [stdout] test broker::tests::forget_watch_target_allows_re_registration ... ok [INFO] [stdout] test broker::tests::next_seq_starts_at_one ... ok [INFO] [stdout] test broker::tests::no_broker_publish_when_disabled_but_file_still_written ... ok [INFO] [stdout] test broker::server::tests::agent_id_rejects_empty ... ok [INFO] [stdout] test broker::tests::read_and_write_recover_from_a_poisoned_lock ... ok [INFO] [stdout] test broker::tests::re_ticking_does_not_duplicate_learning_records ... ok [INFO] [stdout] test broker::tests::dual_output_publishes_learning_and_writes_file_when_broker_on ... ok [INFO] [stdout] test broker::tests::probe_no_listener ... ok [INFO] [stdout] test broker::tests::reattached_handle_has_no_runtime ... ok [INFO] [stdout] test broker::tests::register_watch_target_is_idempotent_and_seeds_roster ... ok [INFO] [stdout] test broker::watcher::tests::committed_past_ttl_does_not_republish ... ok [INFO] [stdout] test broker::server::tests::publish_valid_message_returns_202 ... ok [INFO] [stdout] test broker::watcher::tests::committed_without_timestamp_does_not_republish ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_supervisor ... ok [INFO] [stdout] test broker::watcher::tests::parse_porcelain_dedupes ... ok [INFO] [stdout] test broker::watcher::tests::parse_porcelain_empty_is_empty_vec ... ok [INFO] [stdout] test broker::server::tests::agent_id_accepts_fix_dash ... ok [INFO] [stdout] test broker::server::tests::e2e_status_shows_cli_for_every_agent ... ok [INFO] [stdout] test broker::watcher::tests::parse_porcelain_handles_renames ... ok [INFO] [stdout] test broker::watcher::tests::committed_with_zero_ttl_does_not_republish ... ok [INFO] [stdout] test broker::watcher::tests::parse_porcelain_handles_modified_and_untracked ... ok [INFO] [stdout] test broker::watcher::tests::non_committed_status_always_publishes ... ok [INFO] [stdout] test broker::tests::start_broker_on_free_port ... ok [INFO] [stdout] test broker::watcher::tests::committed_within_ttl_republishes ... ok [INFO] [stdout] test broker::tests::start_broker_with_log_path_spawns_flush_thread ... ok [INFO] [stdout] test broker::tests::start_broker_no_log_path_no_flush_thread ... ok [INFO] [stdout] test cli::tests::add_cli_missing_required_args_is_rejected ... ok [INFO] [stdout] test cli::tests::add_cli_with_required_args ... ok [INFO] [stdout] test cli::tests::add_cli_with_display_name ... ok [INFO] [stdout] test cli::tests::add_with_branch_and_cli ... ok [INFO] [stdout] test cli::tests::add_with_branch_only ... ok [INFO] [stdout] test cli::tests::add_with_from_spec_only_needs_no_branch ... ok [INFO] [stdout] test cli::tests::add_with_no_branch_and_no_from_spec_is_rejected ... ok [INFO] [stdout] test cli::tests::approvals_parses_with_no_flags ... ok [INFO] [stdout] test cli::tests::approvals_rejects_non_numeric_limit ... ok [INFO] [stdout] test cli::tests::approvals_with_session_limit_and_json ... ok [INFO] [stdout] test cli::tests::attach_help_describes_reattach_and_cross_references_start ... ok [INFO] [stdout] test cli::tests::attach_parses ... ok [INFO] [stdout] test cli::tests::attach_rejects_unknown_flags ... ok [INFO] [stdout] test cli::tests::classify_parses_with_no_flags ... ok [INFO] [stdout] test cli::tests::classify_parses_worktree_root_and_resolve_option ... ok [INFO] [stdout] test cli::tests::completions_parses_supported_shells ... ok [INFO] [stdout] test cli::tests::completions_rejects_unsupported_shell ... ok [INFO] [stdout] test cli::tests::completions_requires_a_shell_argument ... ok [INFO] [stdout] test cli::tests::dashboard_parses ... ok [INFO] [stdout] test cli::tests::doctor_help_describes_the_groups_and_does_not_advertise_a_repair_flag ... ok [INFO] [stdout] test cli::tests::doctor_parses_its_flag_matrix ... ok [INFO] [stdout] test broker::delivery::tests::final_flush_on_handle_drop ... ok [INFO] [stdout] test cli::tests::doctor_rejects_unknown_flags ... ok [INFO] [stdout] test cli::tests::help_flag_is_accepted ... ok [INFO] [stdout] test cli::tests::add_with_branch_and_from_spec_is_rejected ... ok [INFO] [stdout] test cli::tests::hidden_subcommands_remain_invocable ... ok [INFO] [stdout] test cli::tests::init_help_text ... ok [INFO] [stdout] test cli::tests::mcp_help_describes_supported_flags_and_config_snippet ... ok [INFO] [stdout] test cli::tests::init_parses ... ok [INFO] [stdout] test cli::tests::list_clis_parses ... ok [INFO] [stdout] test cli::tests::mcp_parses_with_no_flags ... ok [INFO] [stdout] test cli::tests::mcp_parses_with_repo ... ok [INFO] [stdout] test cli::tests::no_args_defaults_to_none_command ... ok [INFO] [stdout] test cli::tests::pause_help_mentions_ram_tradeoff ... ok [INFO] [stdout] test cli::tests::pause_parses ... ok [INFO] [stdout] test cli::tests::mcp_parses_with_repo_and_log_file ... ok [INFO] [stdout] test cli::tests::mcp_rejects_daemon_and_http_flags ... ok [INFO] [stdout] test cli::tests::pause_rejects_unknown_flags ... ok [INFO] [stdout] test cli::tests::purge_all_repos_without_stale_is_rejected ... ok [INFO] [stdout] test cli::tests::remove_with_branch_only ... ok [INFO] [stdout] test cli::tests::remove_cli_parses ... ok [INFO] [stdout] test cli::tests::remove_with_keep_worktree_and_force ... ok [INFO] [stdout] test cli::tests::replay_no_args_fails ... ok [INFO] [stdout] test cli::tests::replay_with_branch ... ok [INFO] [stdout] test cli::tests::replay_with_color ... ok [INFO] [stdout] test cli::tests::replay_with_list ... ok [INFO] [stdout] test cli::tests::remove_without_branch_is_rejected ... ok [INFO] [stdout] test cli::tests::purge_flag_combinations_parse ... ok [INFO] [stdout] test cli::tests::replay_with_session ... ok [INFO] [stdout] test cli::tests::root_help_hides_internal_subcommands ... ok [INFO] [stdout] test cli::tests::resume_is_rejected_as_unknown_subcommand ... ok [INFO] [stdout] test cli::tests::selftest_parses_with_no_args ... ok [INFO] [stdout] test cli::tests::selftest_rejects_unknown_flags ... ok [INFO] [stdout] test cli::tests::specs_format_as_str_matches_backend_names ... ok [INFO] [stdout] test cli::tests::root_help_lists_public_subcommands ... ok [INFO] [stdout] test cli::tests::specs_format_help_lists_every_variant ... ok [INFO] [stdout] test cli::tests::selftest_help_describes_isolated_lifecycle_with_example ... ok [INFO] [stdout] test cli::tests::specs_format_superpowers_maps_to_backend_string ... ok [INFO] [stdout] test cli::tests::start_flag_combinations_parse_to_expected_fields ... ok [INFO] [stdout] test cli::tests::start_help_contains_from_all_specs_and_specs_but_not_alias ... ok [INFO] [stdout] test cli::tests::start_rejects_unknown_specs_format ... ok [INFO] [stdout] test cli::tests::start_unattended_with_no_supervisor_is_rejected ... ok [INFO] [stdout] test cli::tests::start_with_from_all_specs_and_specs_is_rejected ... ok [INFO] [stdout] test cli::tests::start_with_from_specs_alias_and_specs_is_rejected ... ok [INFO] [stdout] test cli::tests::start_with_no_supervisor_and_supervisor_reversed_is_also_rejected ... ok [INFO] [stdout] test cli::tests::start_with_supervisor_and_no_supervisor_is_rejected ... ok [INFO] [stdout] test cli::tests::status_json_flag_parses ... ok [INFO] [stdout] test cli::tests::stop_force_flag_parses ... ok [INFO] [stdout] test cli::tests::unknown_subcommand_is_rejected ... ok [INFO] [stdout] test cli::tests::version_flag_is_accepted ... ok [INFO] [stdout] test command_runner::tests::fake_runner_failing_carries_stderr ... ok [INFO] [stdout] test command_runner::tests::fake_runner_inheriting_stdio_takes_scripted_exit_status ... ok [INFO] [stdout] test cli::tests::subcommand_help_surfaces_expected_anchors ... ok [INFO] [stdout] test command_runner::tests::fake_runner_records_argv_and_returns_scripted_output ... ok [INFO] [stdout] test command_runner::tests::fake_runner_records_both_dispositions_in_call_order ... ok [INFO] [stdout] test cli::tests::start_with_from_specs_alias_parses_identically_to_from_all_specs ... ok [INFO] [stdout] test command_runner::tests::real_runner_captures_stdout_and_success ... ok [INFO] [stdout] test command_runner::tests::real_runner_inheriting_stdio_surfaces_spawn_error_for_missing_binary ... ok [INFO] [stdout] test command_runner::tests::real_runner_inheriting_stdio_reports_exit_status ... ok [INFO] [stdout] test config::prompt_profile::tests::claude_default_covers_every_field_non_empty ... ok [INFO] [stdout] test command_runner::tests::real_runner_surfaces_spawn_error_for_missing_binary ... ok [INFO] [stdout] test config::prompt_profile::tests::override_wins_over_default_when_present ... ok [INFO] [stdout] test config::prompt_profile::tests::partial_override_falls_back_per_field ... ok [INFO] [stdout] test config::prompt_profile::tests::resolution_keys_on_the_leading_binary_token ... ok [INFO] [stdout] test config::prompt_profile::tests::unknown_cli_resolves_the_embedded_default ... ok [INFO] [stdout] test config::prompt_profile::tests::no_config_file_present_resolves_the_embedded_default ... ok [INFO] [stdout] test config::supervisor::tests::absent_branch_refresh_field_loads_and_resolves_disabled ... ok [INFO] [stdout] test config::supervisor::tests::absent_branch_refresh_is_not_serialized ... ok [INFO] [stdout] test config::supervisor::tests::absent_correction_table_resolves_to_documented_defaults ... ok [INFO] [stdout] test config::supervisor::tests::branch_refresh_false_is_loaded_and_resolves_disabled ... ok [INFO] [stdout] test config::supervisor::tests::branch_refresh_true_is_loaded_and_resolves_enabled ... ok [INFO] [stdout] test config::supervisor::tests::correction_table_round_trips ... ok [INFO] [stdout] test config::supervisor::tests::custom_gate_tags_are_loaded_verbatim ... ok [INFO] [stdout] test config::supervisor::tests::default_gate_tags_reproduce_the_current_five_gate_vocabulary ... ok [INFO] [stdout] test config::supervisor::tests::empty_gate_tags_is_a_config_error ... ok [INFO] [stdout] test config::supervisor::tests::invalid_on_exhausted_is_a_config_error ... ok [INFO] [stdout] test config::supervisor::tests::pre_existing_config_without_gate_tags_loads_the_default_vocabulary ... ok [INFO] [stdout] test config::supervisor::tests::specified_fields_parse_and_omitted_field_falls_back ... ok [INFO] [stdout] test command_runner::tests::real_runner_reports_nonzero_exit_as_unsuccessful ... ok [INFO] [stdout] test config::tests::absent_section_resolves_to_none_or_default ... ok [INFO] [stdout] test config::tests::absent_worktree_hooks_skipped_on_serialize ... ok [INFO] [stdout] test config::tests::absent_optional_config_resolves_to_defaults ... ok [INFO] [stdout] test config::tests::absent_worktree_hooks_table_declares_no_hooks ... ok [INFO] [stdout] test config::tests::add_cli_errors_when_command_not_on_path ... ok [INFO] [stdout] test config::tests::absent_worktree_runtime_skipped_on_serialize ... ok [INFO] [stdout] test config::tests::add_cli_preserves_existing_entries ... ok [INFO] [stdout] test config::supervisor::tests::zero_cycle_counts_are_config_errors ... ok [INFO] [stdout] test config::tests::all_fields_are_optional ... ok [INFO] [stdout] test config::tests::add_cli_writes_to_config_file ... ok [INFO] [stdout] test config::tests::approve_worktree_writes_defaults_to_true_when_absent ... ok [INFO] [stdout] test config::tests::approval_flags_maps_each_cli_and_level ... ok [INFO] [stdout] test config::tests::auto_approve_conservative_drops_push_and_curl ... ok [INFO] [stdout] test config::tests::approve_worktree_writes_parses_from_toml ... ok [INFO] [stdout] test config::tests::approve_worktree_writes_explicit_false_resolves_false ... ok [INFO] [stdout] test config::tests::auto_approve_extras_are_unioned_with_defaults ... ok [INFO] [stdout] test config::tests::auto_approve_enabled_defaults_to_true_when_omitted ... ok [INFO] [stdout] test config::tests::auto_approve_off_preset_forces_disabled ... ok [INFO] [stdout] test config::tests::auto_approve_safe_preset_keeps_defaults ... ok [INFO] [stdout] test config::tests::auto_approve_empty_extras_keep_defaults ... ok [INFO] [stdout] test config::tests::auto_approve_section_parses_full_body ... ok [INFO] [stdout] test config::tests::auto_approve_threshold_floor_clamps ... ok [INFO] [stdout] test config::tests::border_affordances_defaults_to_true_when_field_unset ... ok [INFO] [stdout] test agents::tests::install_git_hooks_writes_linked_marker_for_linked_worktree ... ok [INFO] [stdout] test config::tests::border_affordances_defaults_to_true_when_layout_absent ... ok [INFO] [stdout] test config::tests::border_affordances_explicit_false_resolves_off ... ok [INFO] [stdout] test config::tests::border_affordances_explicit_true_resolves_on ... ok [INFO] [stdout] test config::tests::broker_config_round_trip ... ok [INFO] [stdout] test config::tests::broker_config_url ... ok [INFO] [stdout] test config::tests::broker_log_partial_section_fills_remaining_defaults ... ok [INFO] [stdout] test config::tests::broker_log_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::branch_prefix_repo_overrides_global ... ok [INFO] [stdout] test config::tests::config_without_worktree_tables_loads_with_provisioning_inert ... ok [INFO] [stdout] test config::tests::conflict_section_with_all_fields_overrides_defaults ... ok [INFO] [stdout] test config::tests::conflict_config_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::conflict_section_with_partial_fields_keeps_other_defaults ... ok [INFO] [stdout] test config::tests::custom_cli_invalid_approval_args_key_rejected ... ok [INFO] [stdout] test config::tests::custom_cli_approval_args_parses_and_round_trips ... ok [INFO] [stdout] test config::tests::custom_cli_submit_delay_override_is_honoured ... ok [INFO] [stdout] test config::tests::custom_cli_settings_path_parses_and_round_trips ... ok [INFO] [stdout] test config::tests::custom_cli_without_approval_args_parses_unchanged ... ok [INFO] [stdout] test config::tests::custom_cli_without_override_falls_back_to_default ... ok [INFO] [stdout] test config::tests::dashboard_merge_repo_wins ... ok [INFO] [stdout] test config::tests::dashboard_round_trip_through_save_and_load ... ok [INFO] [stdout] test config::tests::config_survives_save_and_load ... ok [INFO] [stdout] test config::tests::custom_cli_empty_approval_args_omitted_on_serialize ... ok [INFO] [stdout] test config::tests::default_spec_cli_defaults_to_none ... ok [INFO] [stdout] test config::tests::doc_tool_command_explicit_value_preserved ... ok [INFO] [stdout] test config::tests::doc_tool_command_flows_into_gate_commands ... ok [INFO] [stdout] test config::tests::effective_whitelist_conservative_strips_post_composition ... ok [INFO] [stdout] test config::tests::effective_whitelist_default_is_stack_neutral ... ok [INFO] [stdout] test config::tests::effective_whitelist_node_stack_has_no_cargo ... ok [INFO] [stdout] test config::tests::effective_whitelist_rust_stack_contributes_cargo ... ok [INFO] [stdout] test config::tests::empty_config_gets_broker_defaults ... ok [INFO] [stdout] test config::tests::gate_command_fields_omit_from_toml_when_none ... ok [INFO] [stdout] test config::tests::gate_command_fields_default_to_none ... ok [INFO] [stdout] test config::tests::doc_tool_command_default_none ... ok [INFO] [stdout] test config::tests::generated_default_config_contains_child_worktree_placement ... ok [INFO] [stdout] test config::tests::generated_default_config_contains_commented_supervisor_section ... ok [INFO] [stdout] test config::tests::doc_tool_command_v0_5_config_parses_without_field ... ok [INFO] [stdout] test config::tests::generated_default_config_is_valid_toml ... ok [INFO] [stdout] test config::tests::generated_default_config_template_contains_common_dev_allowlist_section ... ok [INFO] [stdout] test config::tests::generated_template_covers_every_documented_config_section ... FAILED [INFO] [stdout] test config::tests::generated_template_documents_the_six_added_sections ... ok [INFO] [stdout] test config::tests::get_dashboard_returns_config_when_present ... ok [INFO] [stdout] test config::tests::generated_default_config_contains_commented_examples ... ok [INFO] [stdout] test config::tests::gate_command_fields_round_trip ... ok [INFO] [stdout] test config::tests::get_dashboard_returns_none_when_not_configured ... ok [INFO] [stdout] test config::tests::global_default_spec_cli_preserved_when_repo_absent ... ok [INFO] [stdout] test config::tests::governance_absolute_path_preserved_as_is ... ok [INFO] [stdout] test config::tests::governance_all_paths_populated ... ok [INFO] [stdout] test config::tests::governance_auto_wires_constitution_when_speckit_detected ... ok [INFO] [stdout] test config::tests::governance_config_rejects_gates_field ... ok [INFO] [stdout] test config::tests::governance_default_has_only_path_fields ... ok [INFO] [stdout] test config::tests::governance_auto_wiring_skipped_when_constitution_md_absent ... ok [INFO] [stdout] test config::tests::governance_explicit_empty_string_constitution_suppresses_auto_wiring ... ok [INFO] [stdout] test config::tests::governance_explicit_constitution_preserved_over_auto_wiring ... ok [INFO] [stdout] test config::tests::governance_auto_wiring_skipped_when_specs_type_is_openspec ... ok [INFO] [stdout] test config::tests::governance_auto_wiring_skipped_when_specs_section_absent ... ok [INFO] [stdout] test config::tests::governance_merge_fields_independently_across_global_and_repo ... ok [INFO] [stdout] test config::tests::governance_merge_repo_wins_per_field_when_both_set ... ok [INFO] [stdout] test config::tests::governance_partial_paths_only_some_fields_populated ... ok [INFO] [stdout] test config::tests::governance_nonexistent_path_loads_cleanly ... ok [INFO] [stdout] test config::tests::governance_readme_and_docs_round_trip ... ok [INFO] [stdout] test config::tests::governance_load_repo_config_also_auto_wires_constitution ... ok [INFO] [stdout] test config::tests::governance_parses_readme_and_docs_fields ... ok [INFO] [stdout] test config::tests::height_lines_absent_uses_default ... ok [INFO] [stdout] test config::tests::governance_readme_and_docs_default_to_none_when_omitted ... ok [INFO] [stdout] test config::tests::governance_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::height_lines_parses_explicit_value ... ok [INFO] [stdout] test config::tests::layout_base_preserved_when_overlay_absent ... ok [INFO] [stdout] test config::tests::layout_overlay_wins_in_merge ... ok [INFO] [stdout] test config::tests::learnings_config_custom_flush_interval_is_honoured ... ok [INFO] [stdout] test config::tests::learnings_defaults_to_false_when_supervisor_section_absent_field ... ok [INFO] [stdout] test config::tests::load_config_from_reads_global_file_when_no_repo ... ok [INFO] [stdout] test config::tests::learnings_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::learnings_true_loads ... ok [INFO] [stdout] test config::tests::load_config_with_some_nonexistent_returns_defaults ... ok [INFO] [stdout] test config::tests::load_config_with_some_pins_global_to_override_path ... ok [INFO] [stdout] test config::tests::lookup_keys_on_the_binary_not_the_flags ... ok [INFO] [stdout] test config::tests::load_config_from_reads_repo_file_when_no_global ... ok [INFO] [stdout] test config::tests::load_config_override_does_not_affect_repo_resolution ... ok [INFO] [stdout] test config::tests::mcp_base_name_preserved_when_overlay_absent ... ok [INFO] [stdout] test config::tests::mcp_config_round_trips_through_toml ... ok [INFO] [stdout] test config::tests::mcp_default_omits_name_on_serialize ... ok [INFO] [stdout] test config::tests::manual_approvals_log_defaults_to_true_when_absent ... ok [INFO] [stdout] test config::tests::manual_approvals_log_explicit_false_opts_out ... ok [INFO] [stdout] test config::tests::mcp_name_parses_to_some ... ok [INFO] [stdout] test config::tests::opsx_section_base_preserved_when_overlay_absent ... ok [INFO] [stdout] test config::tests::no_cli_name_is_hardcoded_in_the_resolver ... ok [INFO] [stdout] test config::tests::mcp_overlay_name_wins_in_merge ... ok [INFO] [stdout] test config::tests::opsx_section_merges_with_overlay_winning ... ok [INFO] [stdout] test config::tests::parses_broker_log_section_with_explicit_overrides ... ok [INFO] [stdout] test config::tests::parses_config_with_all_fields ... ok [INFO] [stdout] test config::tests::parses_default_spec_cli_when_present ... ok [INFO] [stdout] test config::tests::parses_dashboard_section_with_show_message_log ... ok [INFO] [stdout] test broker::watcher::tests::run_git_status_detects_new_file ... ok [INFO] [stdout] test config::tests::parses_partial_broker_section ... ok [INFO] [stdout] test config::tests::parses_full_supervisor_section ... ok [INFO] [stdout] test config::tests::parses_logging_section_with_enabled ... ok [INFO] [stdout] test config::tests::parses_partial_supervisor_section ... ok [INFO] [stdout] test config::tests::parses_full_broker_section ... ok [INFO] [stdout] test config::tests::pre_existing_config_without_mcp_loads ... ok [INFO] [stdout] test config::tests::parses_specs_section_with_populated_fields ... ok [INFO] [stdout] test config::tests::pre_v050_config_parses_with_manual_approvals_log_absent ... ok [INFO] [stdout] test config::tests::preset_returns_none_when_not_in_config ... ok [INFO] [stdout] test config::tests::preset_accessible_by_name ... ok [INFO] [stdout] test config::tests::rejects_invalid_approval_level ... ok [INFO] [stdout] test config::tests::remove_nonexistent_cli_returns_cli_not_found_error ... ok [INFO] [stdout] test config::tests::rejects_invalid_supervisor_approval_value ... ok [INFO] [stdout] test config::tests::repo_cli_overrides_global_cli_with_same_name ... ok [INFO] [stdout] test config::tests::pre_v05_config_without_conflict_section_loads ... ok [INFO] [stdout] test config::tests::repo_config_merges_cli_maps ... ok [INFO] [stdout] test config::tests::remove_cli_from_empty_config_returns_error ... ok [INFO] [stdout] test config::tests::repo_overrides_global_default_spec_cli ... ok [INFO] [stdout] test config::tests::remove_cli_deletes_entry_from_config_file ... ok [INFO] [stdout] test config::tests::resolve_approval_flags_override_enables_cli_without_built_in_row ... ok [INFO] [stdout] test config::tests::resolve_approval_flags_override_wins_over_built_in_table ... ok [INFO] [stdout] test config::tests::resolve_approval_flags_unknown_cli_no_override_is_empty ... ok [INFO] [stdout] test config::tests::reports_error_for_invalid_toml ... ok [INFO] [stdout] test config::tests::resolve_approval_flags_falls_back_to_table_when_level_not_overridden ... ok [INFO] [stdout] test config::tests::role_gating_invalid_value_is_a_parse_error ... ok [INFO] [stdout] test config::tests::role_gating_parses_each_variant ... ok [INFO] [stdout] test config::tests::role_gating_mode_round_trips_through_toml ... ok [INFO] [stdout] test config::tests::role_gating_section_present_but_field_absent_resolves_warn ... ok [INFO] [stdout] test config::tests::returns_defaults_when_no_files_exist ... ok [INFO] [stdout] test config::tests::round_trip_with_specs_and_logging ... ok [INFO] [stdout] test config::tests::stuck_detection_fields_default_to_none ... ok [INFO] [stdout] test config::tests::stuck_detection_fields_explicit_values_preserved ... ok [INFO] [stdout] test config::tests::stuck_detection_fields_omit_from_toml_when_none ... ok [INFO] [stdout] test config::tests::stuck_detection_fields_pre_existing_config_loads ... ok [INFO] [stdout] test config::tests::strict_branch_guard_defaults_to_true_and_honours_opt_out ... ok [INFO] [stdout] test config::tests::stuck_detection_fields_round_trip ... ok [INFO] [stdout] test config::tests::struct_defaults_match_spec ... ok [INFO] [stdout] test config::tests::supervisor_approval_parses_all_three_levels ... ok [INFO] [stdout] test config::tests::supervisor_auto_revert_defaults_false ... ok [INFO] [stdout] test config::tests::supervisor_common_dev_allowlist_disabled_opt_out ... ok [INFO] [stdout] test config::tests::supervisor_common_dev_allowlist_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::supervisor_common_dev_allowlist_stacks_parsed ... ok [INFO] [stdout] test config::tests::supervisor_auto_revert_explicit_true ... ok [INFO] [stdout] test config::tests::supervisor_common_dev_allowlist_defaults_when_section_absent ... ok [INFO] [stdout] test config::tests::supervisor_common_dev_allowlist_extra_parsed ... ok [INFO] [stdout] test config::tests::tell_config_all_default_table_round_trips_without_emitting_tell ... ok [INFO] [stdout] test config::tests::tell_config_defaults_when_table_absent ... ok [INFO] [stdout] test config::tests::tell_config_parses_each_mode ... ok [INFO] [stdout] test config::tests::supervisor_with_no_conflict_section_loads_defaults ... ok [INFO] [stdout] test config::tests::tell_config_rejects_unknown_mode ... ok [INFO] [stdout] test config::tests::unknown_or_unconfigured_cli_uses_agnostic_default ... ok [INFO] [stdout] test config::tests::toml_extras_classify_via_is_safe_command_and_empty_extras_keep_defaults ... ok [INFO] [stdout] test config::tests::supervisor_round_trips_through_save_and_load ... ok [INFO] [stdout] test config::tests::supervisor_merge_repo_wins ... ok [INFO] [stdout] test config::tests::unset_supervisor_approval_omitted_on_round_trip ... ok [INFO] [stdout] test config::tests::verify_on_commit_nudge_defaults_true_when_absent ... ok [INFO] [stdout] test config::tests::watcher_ttl_below_floor_clamps_to_five ... ok [INFO] [stdout] test config::tests::verify_on_commit_nudge_explicit_false_disables ... ok [INFO] [stdout] test config::tests::untouched_generated_template_resolves_to_unchanged_defaults ... ok [INFO] [stdout] test config::tests::watcher_ttl_defaults_to_sixty_when_absent ... ok [INFO] [stdout] test config::tests::verify_on_commit_nudge_explicit_true_enables ... ok [INFO] [stdout] test config::tests::watcher_ttl_explicit_non_zero_is_preserved ... ok [INFO] [stdout] test config::tests::worktree_hooks_table_accepts_one_command_alone ... ok [INFO] [stdout] test config::tests::worktree_hooks_table_parses_both_commands ... ok [INFO] [stdout] test config::tests::watcher_ttl_parses_from_broker_table ... ok [INFO] [stdout] test config::tests::repo_config_overrides_global_scalars ... ok [INFO] [stdout] test config::tests::watcher_ttl_zero_disables ... ok [INFO] [stdout] test config::tests::worktree_placement_survives_round_trip ... ok [INFO] [stdout] test config::tests::worktree_ports_with_empty_vars_assigns_nothing ... ok [INFO] [stdout] test config::tests::worktree_placement_parses_and_resolves ... ok [INFO] [stdout] test config::tests::worktree_runtime_survives_round_trip ... ok [INFO] [stdout] test config::tests::worktree_placement_repo_overrides_global ... ok [INFO] [stdout] test config::tests::worktree_ports_stride_below_var_count_warns_and_clamps ... ok [INFO] [stdout] test config::tests::worktree_runtime_tables_parse ... ok [INFO] [stdout] test coordination::inventory::tests::agent_removed_mid_grid_drops_pane_index ... ok [INFO] [stdout] test config::tests::worktree_runtime_repo_overrides_global ... ok [INFO] [stdout] test coordination::inventory::tests::build_inventory_unreachable_broker_errors ... ok [INFO] [stdout] test coordination::inventory::tests::detect_mode_accept_edits ... ok [INFO] [stdout] test coordination::inventory::tests::cache_starts_empty_and_not_fresh ... ok [INFO] [stdout] test coordination::inventory::tests::detect_mode_interactive_prompt ... ok [INFO] [stdout] test coordination::inventory::tests::detect_mode_unknown_when_no_signal ... ok [INFO] [stdout] test coordination::inventory::tests::match_pane_does_not_partial_match_prefix ... ok [INFO] [stdout] test coordination::inventory::tests::pane_index_is_path_resolved_not_ordered ... ok [INFO] [stdout] test coordination::inventory::tests::empty_cli_maps_to_none ... ok [INFO] [stdout] test coordination::inventory::tests::parse_pane_paths_handles_spaces_and_skips_garbage ... ok [INFO] [stdout] test coordination::inventory::tests::parse_status_agents_reads_all_rows ... ok [INFO] [stdout] test coordination::inventory::tests::parse_status_agents_rejects_garbage ... ok [INFO] [stdout] test coordination::inventory::tests::stale_snapshot_triggers_refresh ... ok [INFO] [stdout] test coordination::inventory::tests::supervisor_resolves_to_pane_zero ... ok [INFO] [stdout] test coordination::inventory::tests::unknown_mode_signals_join_to_unknown ... ok [INFO] [stdout] test coordination::inventory::tests::validate_target_accepts_slug_and_slash_form ... ok [INFO] [stdout] test coordination::inventory::tests::validate_target_unknown_returns_candidate_list ... ok [INFO] [stdout] test coordination::inventory::tests::validation_error_display_lists_candidates ... ok [INFO] [stdout] test coordination::tell::tests::decision_helpers ... ok [INFO] [stdout] test coordination::tell::tests::default_feedback_mode_uses_feedback ... ok [INFO] [stdout] test coordination::inventory::tests::rapid_lookups_within_window_refresh_once ... ok [INFO] [stdout] test config::tests::worktree_placement_default_skipped_on_serialize ... ok [INFO] [stdout] test coordination::tell::tests::fallback_note_names_target_and_mode ... ok [INFO] [stdout] test coordination::tell::tests::parse_tell_basic ... ok [INFO] [stdout] test coordination::tell::tests::parse_tell_rejects_non_directive ... ok [INFO] [stdout] test coordination::tell::tests::send_keys_falls_back_for_non_accept_edits ... ok [INFO] [stdout] test coordination::tell::tests::send_keys_mode_targets_accept_edits ... ok [INFO] [stdout] test coordination::inventory::tests::build_inventory_against_fake_broker_no_tmux ... ok [INFO] [stdout] test coordination::tell::tests::parse_tell_rejects_missing_prompt_or_target ... ok [INFO] [stdout] test dashboard::broker_log::tests::changed_status_breaks_the_heartbeat_run ... ok [INFO] [stdout] test dashboard::broker_log::tests::collapsed_row_line_shows_the_repeat_marker ... ok [INFO] [stdout] test coordination::inventory::tests::detect_pane_mode_helper_on_dead_session_is_unknown ... ok [INFO] [stdout] test dashboard::broker_log::tests::filter_all_is_default_and_shows_everything ... ok [INFO] [stdout] test dashboard::broker_log::tests::heartbeats_differing_only_by_activity_do_not_collapse ... ok [INFO] [stdout] test dashboard::broker_log::tests::heartbeats_differing_only_by_message_do_not_collapse ... ok [INFO] [stdout] test dashboard::broker_log::tests::ingest_only_advances_past_cursor ... ok [INFO] [stdout] test coordination::tell::tests::parse_tell_multiline_prompt_preserved ... ok [INFO] [stdout] test dashboard::broker_log::tests::answer_visible_under_all_without_dedicated_chip ... ok [INFO] [stdout] test dashboard::broker_log::tests::iter_visible_respects_filter_but_buffer_retains_all ... ok [INFO] [stdout] test dashboard::broker_log::tests::key_a_resets_filter ... ok [INFO] [stdout] test dashboard::broker_log::tests::key_digits_map_to_chips_in_order ... ok [INFO] [stdout] test dashboard::broker_log::tests::identical_heartbeats_from_different_agents_do_not_collapse ... ok [INFO] [stdout] test dashboard::broker_log::tests::is_chip_active_false_in_all_mode ... ok [INFO] [stdout] test dashboard::broker_log::tests::key_enter_opens_overlay_only_when_a_row_exists ... ok [INFO] [stdout] test dashboard::broker_log::tests::key_esc_closes_overlay_and_passes_other_keys_through ... ok [INFO] [stdout] test dashboard::broker_log::tests::key_l_toggles_visibility ... ok [INFO] [stdout] test dashboard::broker_log::tests::new_clamps_zero_capacity_to_one ... ok [INFO] [stdout] test dashboard::broker_log::tests::non_status_message_between_heartbeats_breaks_the_run ... ok [INFO] [stdout] test dashboard::broker_log::tests::pretty_json_is_multiline_and_matches_message ... ok [INFO] [stdout] test dashboard::broker_log::tests::panel_collapses_heartbeats_but_the_buffer_retains_them ... ok [INFO] [stdout] test dashboard::broker_log::tests::phased_supervisor_status_classifies_as_status ... ok [INFO] [stdout] test dashboard::broker_log::tests::push_beyond_cap_drops_oldest ... ok [INFO] [stdout] test dashboard::broker_log::tests::push_front_keeps_newest_at_top ... ok [INFO] [stdout] test dashboard::broker_log::tests::repeat_marker_survives_a_narrow_width ... ok [INFO] [stdout] test dashboard::broker_log::tests::row_contains_four_documented_fields ... ok [INFO] [stdout] test dashboard::broker_log::tests::row_handles_prefix_wider_than_width ... ok [INFO] [stdout] test dashboard::broker_log::tests::repeated_identical_heartbeats_collapse_to_one_counted_row ... ok [INFO] [stdout] test dashboard::broker_log::tests::row_line_for_status_without_activity_is_unchanged ... ok [INFO] [stdout] test dashboard::broker_log::tests::reset_returns_to_all ... ok [INFO] [stdout] test dashboard::broker_log::tests::row_truncates_long_summary_to_width ... ok [INFO] [stdout] test dashboard::broker_log::tests::selection_navigates_within_visible_bounds ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_artifact_falls_back_to_exports_then_status ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_artifact_uses_first_modified_file ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_blocked ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_feedback_pluralizes ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_intent ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_intent_with_regions_includes_first_region ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_question ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_status_with_activity_shows_the_phrase ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_status_with_message ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_status_without_activity_matches_pre_existing_format ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_status_without_message ... ok [INFO] [stdout] test dashboard::broker_log::tests::toggling_chip_off_empties_back_to_all ... ok [INFO] [stdout] test dashboard::broker_log::tests::toggling_one_chip_narrows_to_that_type ... ok [INFO] [stdout] test dashboard::broker_log::tests::truncate_adds_ellipsis_and_fits_width ... ok [INFO] [stdout] test dashboard::broker_log::tests::truncate_shorter_than_max_is_unchanged ... ok [INFO] [stdout] test dashboard::broker_log::tests::selection_clamps_when_filter_shrinks_visible_set ... ok [INFO] [stdout] test dashboard::broker_log::tests::truncate_zero_width_is_empty ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_verified_with_and_without_message ... ok [INFO] [stdout] test dashboard::broker_log::tests::two_chips_combine_inclusively ... ok [INFO] [stdout] test dashboard::broker_log::tests::uncollapsed_row_line_matches_format_row_line ... ok [INFO] [stdout] test dashboard::tests::model_new_mirrors_the_loops_initial_state ... ok [INFO] [stdout] test dashboard::tests::orphaned_is_false_when_parent_alive ... ok [INFO] [stdout] test dashboard::tests::printable_char_ignored_no_buffer ... ok [INFO] [stdout] test dashboard::tests::should_exit_on_shutdown_or_orphaned ... ok [INFO] [stdout] test dashboard::tests::should_exit_on_tty_gone_signal ... ok [INFO] [stdout] test dashboard::tests::should_not_exit_while_all_clear ... ok [INFO] [stdout] test dashboard::broker_log::tests::summary_verify_now ... ok [INFO] [stdout] test dashboard::broker_log::tests::timestamp_formats_hh_mm_ss ... ok [INFO] [stdout] test dashboard::tests::update_is_pure_and_needs_no_terminal ... ok [INFO] [stdout] test dashboard::tests::update_key_neither_the_panel_nor_quit_claims_is_inert ... ok [INFO] [stdout] test dashboard::tests::tab_key_ignored_no_buffer ... ok [INFO] [stdout] test dashboard::tests::update_broker_ingest_appends_the_same_entries_as_a_direct_ingest ... ok [INFO] [stdout] test dashboard::tests::update_key_the_panel_claims_does_not_quit ... ok [INFO] [stdout] test dashboard::tests::update_quit_key_sets_the_quit_flag ... ok [INFO] [stdout] test dashboard::tests::update_snapshot_derives_the_same_rows_and_status_line_as_the_inline_recompute ... ok [INFO] [stdout] test dashboard::broker_log::tests::unhandled_key_is_ignored ... ok [INFO] [stdout] test dashboard::view::tests::agent_table_keeps_positive_minimum ... ok [INFO] [stdout] test dashboard::view::tests::arrange_with_supervisor_pinned_emits_no_divider_when_supervisor_absent ... ok [INFO] [stdout] test dashboard::tests::update_snapshot_replaces_rather_than_accumulates_rows ... ok [INFO] [stdout] test dashboard::view::tests::agent_row_exposes_only_four_fields_no_summary ... ok [INFO] [stdout] test dashboard::view::tests::arrange_with_supervisor_pinned_empty_input_yields_empty_output ... ok [INFO] [stdout] test dashboard::view::tests::arrange_with_supervisor_pinned_yields_supervisor_then_divider_then_coding ... ok [INFO] [stdout] test dashboard::view::tests::configured_height_sets_panel_segment_length ... ok [INFO] [stdout] test dashboard::view::tests::format_age_formats_each_duration_bucket ... ok [INFO] [stdout] test dashboard::view::tests::dashboard_row_stays_committed_when_ttl_zero ... ok [INFO] [stdout] test dashboard::view::tests::dashboard_row_transitions_committed_to_working_within_ttl ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_empty_input ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_falls_back_to_status_when_phase_is_none ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_prefers_phase_over_status_for_supervisor ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_shows_placeholder_for_unresolved_cli ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_non_supervisor_ignores_phase ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_non_supervisor_still_shows_stuck_on_prompt ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_single_done_three_minutes ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_supervisor_falls_back_when_phase_absent ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_supervisor_phase_snapshot_layout ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_supervisor_shows_introspection_phase ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_three_agents ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_with_committed_status ... ok [INFO] [stdout] test dashboard::view::tests::format_status_line_formats_each_count_mix ... ok [INFO] [stdout] test dashboard::view::tests::format_agent_rows_populates_cli_for_every_agent ... ok [INFO] [stdout] test dashboard::view::tests::render_from_model_matches_the_equivalent_direct_render ... ok [INFO] [stdout] test dashboard::view::tests::layout_collapses_without_message_log ... ok [INFO] [stdout] test dashboard::view::tests::header_row_has_four_columns_and_no_summary ... ok [INFO] [stdout] test dashboard::view::tests::hidden_panel_status_line_shows_restore_hint ... ok [INFO] [stdout] test dashboard::view::tests::rendered_frame_contains_no_questions_or_reply_input ... ok [INFO] [stdout] test dashboard::view::tests::hidden_panel_layout_is_byte_equivalent_regardless_of_buffer_contents ... ok [INFO] [stdout] test dashboard::view::tests::status_symbol_maps_each_label_to_its_symbol ... ok [INFO] [stdout] test dashboard::view::tests::visible_panel_default_height_exceeds_twelve ... ok [INFO] [stdout] test dashboard::view::tests::supervisor_row_appears_above_coding_rows_in_rendered_frame ... ok [INFO] [stdout] test dashboard::view::tests::render_is_deterministic_for_a_given_model ... ok [INFO] [stdout] test dashboard::view::tests::scrolling_reaches_messages_beyond_the_first_screen ... ok [INFO] [stdout] test detect::tests::cli_source_display_format ... ok [INFO] [stdout] test dashboard::view::tests::visible_panel_renders_broker_log_region ... ok [INFO] [stdout] test dashboard::view::tests::toggling_visibility_returns_to_hidden_layout ... ok [INFO] [stdout] test detect::tests::custom_cli_has_all_fields ... ok [INFO] [stdout] test detect::tests::custom_cli_display_name_defaults_to_capitalised_name ... ok [INFO] [stdout] test detect::tests::custom_cli_resolved_by_absolute_path ... ok [INFO] [stdout] test detect::tests::custom_cli_overrides_detected_with_same_binary_name ... ok [INFO] [stdout] test broker::tests::start_broker_on_occupied_port_returns_error_not_loop ... ok [INFO] [stdout] test detect::tests::custom_cli_excluded_when_binary_missing ... ok [INFO] [stdout] test detect::tests::gemini_is_not_a_known_cli ... ok [INFO] [stdout] test detect::tests::detected_cli_has_all_fields ... ok [INFO] [stdout] test detect::tests::all_known_clis_detected_when_present ... ok [INFO] [stdout] test dirs::tests::config_and_data_dirs_are_distinct_from_home ... ok [INFO] [stdout] test dirs::tests::config_and_data_dirs_live_under_home ... ok [INFO] [stdout] test detect::tests::custom_clis_merged_with_detected ... ok [INFO] [stdout] test dirs::tests::config_dir_returns_some_when_home_is_set ... ok [INFO] [stdout] test doctor::tests::a_clean_repository_passes_every_hygiene_check ... ok [INFO] [stdout] test dirs::tests::data_dir_returns_some_when_home_is_set ... ok [INFO] [stdout] test doctor::tests::a_failed_live_smoke_names_the_failing_step ... ok [INFO] [stdout] test detect::tests::agy_detected_and_gemini_not_known ... ok [INFO] [stdout] test doctor::tests::config_check_grades_presence_and_parseability ... ok [INFO] [stdout] test doctor::tests::bundled_script_check_grades_each_on_disk_state ... ok [INFO] [stdout] test doctor::tests::broker_check_grades_each_port_state ... ok [INFO] [stdout] test doctor::tests::config_check_reports_the_resolved_worktree_placement ... ok [INFO] [stdout] test doctor::tests::detected_clis_pass_and_are_listed ... ok [INFO] [stdout] test doctor::tests::disabled_broker_is_an_informational_pass ... ok [INFO] [stdout] test doctor::tests::disabled_supervisor_is_an_informational_pass ... ok [INFO] [stdout] test doctor::tests::every_non_ok_check_carries_a_remedy ... ok [INFO] [stdout] test doctor::tests::environment_check_grades_each_tool_state ... ok [INFO] [stdout] test doctor::tests::human_report_groups_checks_and_indents_remedies ... ok [INFO] [stdout] test doctor::tests::exit_code_reflects_the_worst_check ... ok [INFO] [stdout] test doctor::tests::json_report_carries_every_required_field ... ok [INFO] [stdout] test doctor::tests::live_smoke_check_grades_each_lifecycle_verdict ... ok [INFO] [stdout] test doctor::tests::missing_gate_binary_fails_with_a_remedy ... ok [INFO] [stdout] test doctor::tests::missing_gitignore_entry_warns_and_names_the_entry ... ok [INFO] [stdout] test doctor::tests::missing_sweep_script_fails_the_supervisor_group ... ok [INFO] [stdout] test doctor::tests::missing_tmux_remedy_names_the_install_command ... ok [INFO] [stdout] test doctor::tests::orphaned_worktree_registration_warns_with_the_purge_remedy ... ok [INFO] [stdout] test doctor::tests::missing_python3_warns_rather_than_fails ... ok [INFO] [stdout] test doctor::tests::outside_a_repository_the_environment_group_fails ... ok [INFO] [stdout] test doctor::tests::no_resolving_cli_warns_and_names_the_launch_failure ... ok [INFO] [stdout] test doctor::tests::parse_version_reads_the_leading_major_minor_pair ... ok [INFO] [stdout] test doctor::tests::report_covers_every_documented_group ... ok [INFO] [stdout] test doctor::tests::report_includes_the_sandbox_check_and_never_fails_on_it ... ok [INFO] [stdout] test doctor::tests::sandbox_backend_absent_warns_with_a_remedy_never_fails ... ok [INFO] [stdout] test doctor::tests::sandbox_backend_present_reports_ok ... ok [INFO] [stdout] test doctor::tests::spec_cli_check_is_informational_without_a_configured_default_or_discovered_specs ... ok [INFO] [stdout] test doctor::tests::spec_cli_check_passes_when_default_spec_cli_is_reachable ... ok [INFO] [stdout] test doctor::tests::spec_cli_check_warns_when_default_spec_cli_is_never_reached ... ok [INFO] [stdout] test doctor::tests::spec_system_check_grades_each_resolution_state ... ok [INFO] [stdout] test doctor::tests::stale_session_warns_with_the_purge_remedy ... ok [INFO] [stdout] test doctor::tests::present_python3_passes ... ok [INFO] [stdout] test doctor::tests::supervisor_check_reports_only_the_configured_stack_verbs ... ok [INFO] [stdout] test doctor::tests::sandbox_unknown_platform_warns_not_fails ... ok [INFO] [stdout] test doctor::tests::the_live_group_is_absent_from_a_static_report ... ok [INFO] [stdout] test doctor::tests::unknown_config_keys_round_trip_recognises_real_fields ... ok [INFO] [stdout] test domain::tests::session_name_collision_suffix_appends_to_the_sanitised_base ... ok [INFO] [stdout] test domain::tests::session_name_sanitises_the_project_into_a_tmux_safe_target ... ok [INFO] [stdout] test domain::tests::shell_quote_makes_every_input_one_literal_shell_word ... ok [INFO] [stdout] test doctor::tests::unknown_config_fields_warn_and_are_named ... ok [INFO] [stdout] test domain::tests::branch_slug_matches_previous_free_function ... ok [INFO] [stdout] test error::tests::test_general_errors_exit_code ... ok [INFO] [stdout] test error::tests::test_no_clis_found_suggests_add_cli ... ok [INFO] [stdout] test error::tests::test_not_a_git_repo_is_actionable ... ok [INFO] [stdout] test error::tests::test_tmux_not_installed_includes_install_instructions ... ok [INFO] [stdout] test error::tests::test_user_cancelled_exit_code ... ok [INFO] [stdout] test error::tests::test_user_cancelled_is_not_empty ... ok [INFO] [stdout] test error::tests::wrapping_variant_display_does_not_embed_error ... ok [INFO] [stdout] test git::tests::branch_slug_preserves_safe_punctuation ... ok [INFO] [stdout] test git::tests::branch_slug_replaces_slash_with_dash ... ok [INFO] [stdout] test git::tests::branch_slug_strips_unsafe_characters ... ok [INFO] [stdout] test domain::tests::worktree_path_round_trips_the_wrapped_path ... ok [INFO] [stderr] Cloning into '/tmp/.tmpznfFTz/repo'... [INFO] [stderr] Cloning into '/tmp/.tmpLo69vc/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stdout] test domain::tests::shell_quote_survives_a_real_shell_round_trip ... ok [INFO] [stderr] done. [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test detect::tests::detects_subset_of_known_clis ... ok [INFO] [stderr] Cloning into '/tmp/.tmpYnnXmk/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] Cloning into '/tmp/.tmpcF09U2/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test detect::tests::returns_empty_when_no_known_clis_on_path ... ok [INFO] [stdout] test detect::tests::results_sorted_by_display_name ... ok [INFO] [stderr] Cloning into '/tmp/.tmpwQ5PpJ/repo'... [INFO] [stderr] Cloning into '/tmp/.tmpytQXJI/repo'... [INFO] [stdout] test broker::learnings::tests::second_session_appends_new_h2_preserves_prior_content ... ok [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] Cloning into '/tmp/.tmpEdwAWj/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::create_worktree_child_and_sibling_differ_for_same_branch ... ok [INFO] [stdout] test git::tests::create_worktree_child_slug_strips_unsafe_characters ... ok [INFO] [stderr] Cloning into '/tmp/.tmpZre1TI/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] Cloning into '/tmp/.tmpxOVhlj/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::create_worktree_new_branch_skips_rebase_regardless_of_flag ... ok [INFO] [stdout] test git::tests::remove_worktree_does_not_panic_on_non_utf8_path ... ok [INFO] [stdout] test git::tests::seam::a_spawn_failure_surfaces_as_a_paw_error ... ok [INFO] [stdout] test git::tests::seam::branch_is_behind_default_errors_on_an_unresolvable_comparison ... ok [INFO] [stdout] test git::tests::create_worktree_child_placement_creates_inside_repo ... ok [INFO] [stdout] test git::tests::seam::branch_is_behind_default_false_when_default_is_an_ancestor ... ok [INFO] [stderr] Cloning into '/tmp/.tmp1GdSQn/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] Cloning into '/tmp/.tmpVuVVJt/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::create_worktree_no_rebase_preserves_v0_5_behaviour ... ok [INFO] [stdout] test git::tests::seam::branch_is_behind_default_true_when_default_is_not_an_ancestor ... ok [INFO] [stdout] test git::tests::seam::check_uncommitted_specs_probes_each_existing_spec_path ... ok [INFO] [stdout] test git::tests::seam::create_worktree_adds_the_existing_branch_at_the_resolved_path ... ok [INFO] [stdout] test git::tests::seam::create_worktree_does_not_retry_a_failure_that_is_not_an_invalid_reference ... ok [INFO] [stdout] test git::tests::seam::create_worktree_retries_with_dash_b_on_an_invalid_reference ... ok [INFO] [stdout] test git::tests::seam::create_worktree_skips_the_rebase_when_the_branch_does_not_exist_locally ... ok [INFO] [stdout] test git::tests::seam::current_branch_trims_the_name_and_rejects_a_detached_head ... ok [INFO] [stdout] test git::tests::seam::default_branch_fails_when_no_fallback_resolves ... ok [INFO] [stdout] test git::tests::seam::default_branch_falls_back_to_local_main_without_origin_head ... ok [INFO] [stdout] test git::tests::seam::default_branch_falls_back_to_local_master_when_main_is_absent ... ok [INFO] [stdout] test git::tests::seam::default_branch_falls_back_to_the_checked_out_branch_as_a_last_resort ... ok [INFO] [stdout] test git::tests::seam::default_branch_resolves_identically_on_a_second_call_in_the_same_repo_state ... ok [INFO] [stdout] test git::tests::seam::default_branch_still_honours_origin_head_when_present ... ok [INFO] [stdout] test git::tests::seam::default_branch_strips_the_ref_prefix_and_rejects_an_unexpected_ref ... ok [INFO] [stdout] test git::tests::seam::each_entry_point_builds_its_exact_git_argv ... ok [INFO] [stdout] test git::tests::seam::list_branches_dedupes_strips_remote_prefixes_and_drops_head ... ok [INFO] [stdout] test git::tests::seam::merge_branch_maps_exit_one_to_conflict_and_other_failures_to_an_error ... ok [INFO] [stdout] test git::tests::create_worktree_sibling_placement_creates_beside_repo ... ok [INFO] [stdout] test git::tests::seam::predict_rebase_conflict_reports_true_on_a_nonzero_exit ... ok [INFO] [stdout] test git::tests::seam::predict_rebase_conflict_runs_merge_tree_without_touching_the_worktree ... ok [INFO] [stderr] Cloning into '/tmp/.tmpt0bPYn/repo'... [INFO] [stderr] Cloning into '/tmp/.tmphF9lBs/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::seam::branch_is_behind_default_false_for_a_real_repo_already_current ... ok [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::create_worktree_rebase_noop_when_branch_up_to_date ... ok [INFO] [stdout] test git::tests::seam::rebase_onto_default_aborts_and_restores_head_on_conflict ... ok [INFO] [stderr] Cloning into '/tmp/.tmpvF8e9a/repo'... [INFO] [stdout] test git::tests::seam::branch_is_behind_default_true_for_a_real_repo_behind_main ... ok [INFO] [stdout] test git::tests::seam::rebase_onto_default_mid_session_already_current_is_a_successful_noop ... ok [INFO] [stdout] test git::tests::seam::rebase_onto_default_runs_inside_the_worktree_holding_the_branch ... ok [INFO] [stdout] test git::tests::seam::rebase_onto_default_switches_head_when_the_branch_is_not_checked_out ... ok [INFO] [stdout] test git::tests::seam::the_update_index_helpers_stay_silent_when_git_fails ... ok [INFO] [stdout] test git::tests::seam::uncommitted_files_parses_nul_records_and_consumes_a_rename_origin ... ok [INFO] [stdout] test git::tests::seam::validate_repo_reports_the_toplevel_and_maps_failure_to_not_a_git_repo ... ok [INFO] [stdout] test git::tests::seam::worktree_and_branch_failures_surface_gits_stderr ... ok [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::seam::predict_rebase_conflict_false_for_a_real_clean_pair ... ok [INFO] [stderr] Cloning into '/tmp/.tmp19IOO7/repo'... [INFO] [stderr] Cloning into '/tmp/.tmpPIkdJZ/repo'... [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stderr] warning: You appear to have cloned an empty repository. [INFO] [stderr] done. [INFO] [stdout] test git::tests::create_worktree_rebases_branch_when_behind_main ... ok [INFO] [stdout] test init::tests::appends_disabled_supervisor_section ... ok [INFO] [stdout] test init::tests::appends_newline_if_missing ... ok [INFO] [stdout] test init::tests::appends_supervisor_section_when_provided ... ok [INFO] [stdout] test git::tests::uncommitted_files_keeps_newline_bearing_path_as_one_record ... ok [INFO] [stdout] test init::tests::appends_to_existing_gitignore ... ok [INFO] [stdout] test init::tests::backfilling_placement_warns_without_touching_existing_worktrees ... ok [INFO] [stdout] test init::tests::backfilling_placement_with_no_worktrees_writes_key_without_warning ... ok [INFO] [stdout] test init::tests::creates_directory_when_missing ... ok [INFO] [stdout] test init::tests::config_migration_summary_reports_each_kind_of_change ... ok [INFO] [stdout] test init::tests::creates_gitignore_with_entry ... ok [INFO] [stdout] test init::tests::has_section_detects_active_header ... ok [INFO] [stdout] test init::tests::idempotent_gitignore ... ok [INFO] [stdout] test init::tests::migrate_against_branch_prefix_only_preserves_user_field ... ok [INFO] [stdout] test git::tests::seam::predict_rebase_conflict_true_for_a_real_diverging_pair ... ok [INFO] [stdout] test init::tests::migrate_against_uncommented_supervisor_does_not_create_duplicate ... ok [INFO] [stdout] test init::tests::migrate_existing_config_is_idempotent ... ok [INFO] [stdout] test init::tests::migrate_is_noop_when_every_section_and_top_level_key_is_present ... ok [INFO] [stdout] test init::tests::migrate_on_empty_config_adds_all_sections_commented_and_top_level_keys ... ok [INFO] [stdout] test init::tests::migrate_preserves_an_already_set_worktree_placement ... ok [INFO] [stdout] test init::tests::migrate_appends_supervisor_section_when_missing_and_keeps_broker_port ... ok [INFO] [stdout] test init::tests::missing_top_level_keys_carries_the_generated_default_value ... ok [INFO] [stdout] test init::tests::missing_top_level_keys_reports_only_absent_root_table_keys ... ok [INFO] [stdout] test init::tests::migrate_backfills_absent_top_level_key_and_preserves_other_content ... ok [INFO] [stdout] test init::tests::prompt_specs_section_non_interactive_writes_commented_template ... ok [INFO] [stdout] test init::tests::provision_skips_broker_helper_when_broker_disabled ... ok [INFO] [stdout] test init::tests::provision_writes_docs_fetch_only_when_configured ... ok [INFO] [stdout] test init::tests::provision_is_idempotent_and_refreshes_stale_helper ... ok [INFO] [stdout] test init::tests::provision_writes_executable_broker_helper_when_broker_enabled ... ok [INFO] [stdout] test init::tests::migrate_preserves_existing_supervisor_and_custom_broker_port ... ok [INFO] [stdout] test git::tests::create_worktree_rebase_conflict_aborts_and_errors ... ok [INFO] [stdout] test init::tests::sibling_layout_worktrees_excludes_child_placed_entries ... ok [INFO] [stdout] test init::tests::session_learnings_added_to_gitignore ... ok [INFO] [stdout] test init::tests::skips_existing_config ... ok [INFO] [stdout] test init::tests::skips_when_all_entries_already_present ... ok [INFO] [stdout] test init::tests::spec_systems_cover_the_four_backends_in_order ... ok [INFO] [stdout] test init::tests::specs_section_for_maps_each_index_to_its_backend_section ... ok [INFO] [stdout] test init::tests::repo_local_tmp_added_to_gitignore_and_not_duplicated ... ok [INFO] [stdout] test init::tests::session_summary_added_alongside_logs ... ok [INFO] [stdout] test init::tests::skips_existing_directory ... ok [INFO] [stdout] test init::tests::supervisor_section_disabled_when_not_enabled ... ok [INFO] [stdout] test init::tests::supervisor_section_enabled_without_test_command ... ok [INFO] [stdout] test init::tests::supervisor_section_records_and_escapes_test_command ... ok [INFO] [stdout] test init::tests::write_config_appends_specs_section_when_provided ... ok [INFO] [stdout] test init::tests::writes_config_when_missing ... ok [INFO] [stdout] test git::tests::seam::rebase_branch_onto_default_delegates_to_the_with_variant ... ok [INFO] [stdout] test init::tests::worktrees_dir_added_to_gitignore_and_not_duplicated ... ok [INFO] [stdout] test interactive::resolver::tests::all_resolved_via_flag_no_prompt ... ok [INFO] [stdout] test interactive::resolver::tests::both_flags_skips_all_prompts_and_maps_cli_to_all_branches ... ok [INFO] [stdout] test interactive::resolver::tests::cli_flag_overrides_all_specs ... ok [INFO] [stdout] test interactive::resolver::tests::cli_flag_references_unknown_cli_returns_error ... ok [INFO] [stdout] test interactive::resolver::tests::cli_flag_skips_cli_prompt_but_prompts_for_branches ... ok [INFO] [stdout] test interactive::resolver::tests::branch_picker_indices_map_to_names ... ok [INFO] [stdout] test interactive::resolver::tests::all_resolved_via_paw_cli_and_default_spec_cli_no_prompt ... ok [INFO] [stdout] test interactive::resolver::tests::branches_flag_skips_branch_prompt_but_prompts_for_cli_uniform ... ok [INFO] [stdout] test interactive::resolver::tests::branch_picker_zero_selection_maps_to_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::default_cli_pre_selects_in_picker ... ok [INFO] [stdout] test interactive::resolver::tests::default_spec_cli_fills_remaining_without_prompt ... ok [INFO] [stdout] test interactive::resolver::tests::default_spec_cli_references_unknown_cli_returns_error ... ok [INFO] [stdout] test interactive::resolver::tests::filtered_branch_picker_ctrl_c_maps_to_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::finalize_spec_selection_expands_spec_kit_feature_row_to_all_entries ... ok [INFO] [stdout] test interactive::resolver::tests::filtered_spec_kit_row_expands_to_all_underlying_entries ... ok [INFO] [stdout] test interactive::resolver::tests::finalize_spec_selection_returns_chosen_subset_for_flat_entries ... ok [INFO] [stdout] test interactive::resolver::tests::finalize_spec_selection_empty_indices_returns_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::mixed_paw_cli_and_default_spec_cli ... ok [INFO] [stdout] test interactive::resolver::tests::no_branches_available_returns_error ... ok [INFO] [stdout] test interactive::resolver::tests::no_clis_available_returns_error ... ok [INFO] [stdout] test interactive::resolver::tests::no_defaults_picker_fires_with_none_default ... ok [INFO] [stdout] test interactive::resolver::tests::finalize_spec_selection_none_returns_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::group_flat_specs_yields_one_row_each ... ok [INFO] [stdout] test interactive::resolver::tests::mixed_paw_cli_and_interactive ... ok [INFO] [stdout] test interactive::resolver::tests::paw_cli_references_unknown_cli_returns_error ... ok [INFO] [stdout] test interactive::resolver::tests::paw_cli_per_spec_overrides_config ... ok [INFO] [stdout] test interactive::resolver::tests::per_branch_mode_maps_different_cli_to_each_branch ... ok [INFO] [stdout] test interactive::resolver::tests::per_branch_mode_with_branches_flag ... ok [INFO] [stdout] test interactive::resolver::tests::picker_clearing_query_restores_full_list_with_selection ... ok [INFO] [stdout] test interactive::resolver::tests::picker_clearing_spec_filter_restores_rows_with_selection ... ok [INFO] [stdout] test interactive::resolver::tests::picker_query_filters_branches_and_empty_shows_full_list ... ok [INFO] [stdout] test interactive::resolver::tests::picker_query_match_is_case_insensitive ... ok [INFO] [stdout] test interactive::resolver::tests::picker_selection_persists_across_query_changes ... ok [INFO] [stdout] test interactive::resolver::tests::select_cli_with_default_not_in_list_graceful ... ok [INFO] [stdout] test interactive::resolver::tests::select_cli_with_default_present_and_in_list ... ok [INFO] [stdout] test interactive::resolver::tests::select_specs_cancel_returns_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::select_specs_zero_selection_returns_user_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::selecting_subset_of_branches_works ... ok [INFO] [stdout] test interactive::resolver::tests::user_cancels_branch_selection_returns_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::picker_query_filters_spec_rows_and_empty_shows_all ... ok [INFO] [stdout] test interactive::resolver::tests::user_cancels_cli_selection_returns_cancelled ... ok [INFO] [stdout] test interactive::resolver::tests::user_selects_no_branches_returns_cancelled ... ok [INFO] [stdout] test interactive::tests::cli_info_display_same_names ... ok [INFO] [stdout] test interactive::resolver::tests::group_spec_kit_feature_collapses_to_one_row_with_count_hint ... ok [INFO] [stdout] test interactive::resolver::tests::picker_fires_at_most_once_for_multiple_remaining ... ok [INFO] [stdout] test interactive::tests::cli_info_display_different_names ... ok [INFO] [stdout] test interactive::tests::cli_mode_display ... ok [INFO] [stdout] test interactive::resolver::tests::uniform_mode_maps_same_cli_to_all_selected_branches ... ok [INFO] [stdout] test lock::tests::acquire_creates_the_lock_file ... ok [INFO] [stdout] test lock::tests::second_concurrent_acquire_errors_with_in_progress_message ... ok [INFO] [stdout] test lock::tests::lock_path_is_under_git_paw_dir ... ok [INFO] [stdout] test lock::tests::acquire_creates_git_paw_dir_when_absent ... ok [INFO] [stdout] test logging::tests::list_log_sessions_returns_empty_when_no_logs_dir ... ok [INFO] [stdout] test logging::tests::ensure_log_dir_creates_directory ... ok [INFO] [stdout] test logging::tests::list_logs_for_session_errors_when_session_missing ... ok [INFO] [stdout] test lock::tests::lock_is_released_on_drop_allowing_reacquire ... ok [INFO] [stdout] test logging::tests::ensure_log_dir_is_idempotent ... ok [INFO] [stdout] test logging::tests::list_log_sessions_returns_sessions ... ok [INFO] [stdout] test logging::tests::list_logs_for_session_returns_empty_when_no_logs ... ok [INFO] [stdout] test logging::tests::sanitize_multiple_slashes ... ok [INFO] [stdout] test logging::tests::sanitize_simple_name ... ok [INFO] [stdout] test logging::tests::sanitize_single_slash ... ok [INFO] [stdout] test logging::tests::list_log_sessions_returns_empty_when_no_sessions ... ok [INFO] [stdout] test logging::tests::list_logs_for_session_returns_entries ... ok [INFO] [stdout] test logging::tests::unsanitize_multiple_slashes ... ok [INFO] [stdout] test logging::tests::log_file_path_produces_correct_structure ... ok [INFO] [stdout] test logging::tests::unsanitize_simple_name ... ok [INFO] [stdout] test logging::tests::unsanitize_single_slash ... ok [INFO] [stdout] test mcp::logging::tests::parse_level_defaults_to_warn ... ok [INFO] [stdout] test mcp::logging::tests::parse_level_recognises_keywords ... ok [INFO] [stdout] test mcp::query::conflicts::tests::no_broker_yields_empty ... ok [INFO] [stdout] test mcp::query::docs::tests::list_docs_empty_when_dir_absent ... ok [INFO] [stdout] test mcp::query::docs::tests::list_docs_empty_when_unconfigured ... ok [INFO] [stdout] test mcp::logging::tests::level_ordering_is_least_to_most_verbose ... ok [INFO] [stdout] test mcp::query::docs::tests::read_doc_happy_path ... ok [INFO] [stdout] test mcp::query::docs::tests::list_docs_enumerates_nested_markdown_relative_to_dir ... ok [INFO] [stdout] test logging::tests::log_entry_branch_from_sanitized_filename ... ok [INFO] [stdout] test mcp::query::docs::tests::read_doc_none_when_unconfigured ... ok [INFO] [stdout] test mcp::query::docs::tests::read_readme_none_when_configured_but_absent ... ok [INFO] [stdout] test mcp::query::docs::tests::read_doc_rejects_absolute_path ... ok [INFO] [stdout] test mcp::query::docs::tests::read_doc_rejects_dotdot_traversal ... ok [INFO] [stdout] test mcp::query::docs::tests::read_readme_none_when_unconfigured ... ok [INFO] [stdout] test mcp::query::governance::tests::adrs_empty_when_unset ... ok [INFO] [stdout] test mcp::query::docs::tests::read_readme_returns_content_when_configured_and_present ... ok [INFO] [stdout] test mcp::query::governance::tests::check_dod_parses_checkbox_states ... ok [INFO] [stdout] test mcp::query::governance::tests::check_dod_unset_is_none ... ok [INFO] [stdout] test mcp::query::governance::tests::parse_adr_meta_defaults_status_unknown ... ok [INFO] [stdout] test mcp::query::governance::tests::parse_adr_meta_extracts_title_and_status ... ok [INFO] [stdout] test mcp::query::governance::tests::single_doc_unreadable_is_error ... ok [INFO] [stdout] test mcp::query::intents::tests::no_broker_yields_empty ... ok [INFO] [stdout] test mcp::query::governance::tests::adrs_lists_and_parses_directory ... ok [INFO] [stdout] test mcp::query::learnings::tests::missing_file_returns_canonical_empty_sections ... ok [INFO] [stdout] test mcp::query::intents::tests::region_labels_render ... ok [INFO] [stdout] test mcp::query::learnings::tests::non_canonical_qualitative_section_is_included ... ok [INFO] [stdout] test mcp::query::learnings::tests::reads_from_git_paw_dir ... ok [INFO] [stdout] test mcp::query::session::tests::no_session_yields_none ... ok [INFO] [stdout] test mcp::query::learnings::tests::parses_sections_and_entries ... ok [INFO] [stdout] test git::tests::worktree_display_path_reflects_placement ... ok [INFO] [stdout] test mcp::query::source::tests::list_files_empty_when_not_a_git_repo ... ok [INFO] [stdout] test git::tests::worktree_path_for_creates_nothing ... ok [INFO] [stdout] test mcp::query::source::tests::list_files_includes_tracked_and_untracked_excludes_gitignored ... ok [INFO] [stdout] test mcp::query::source::tests::read_file_happy_path_returns_working_tree_content ... ok [INFO] [stdout] test mcp::query::git::tests::branches_lists_current_branch ... ok [INFO] [stdout] test mcp::query::source::tests::read_file_missing_file_yields_none ... ok [INFO] [stdout] test mcp::query::git::tests::recent_commits_returns_first_commit ... ok [INFO] [stdout] test mcp::query::source::tests::list_files_scopes_to_subpath ... ok [INFO] [stdout] test mcp::query::git::tests::diff_against_base_summarizes_changes ... ok [INFO] [stdout] test mcp::query::source::tests::read_file_refuses_absolute_path_outside_root ... ok [INFO] [stdout] test mcp::query::source::tests::search_code_empty_when_not_a_git_repo ... ok [INFO] [stdout] test mcp::query::specs::tests::extract_refs_finds_double_bracket_tokens ... ok [INFO] [stdout] test mcp::query::specs::tests::dependency_graph_resolves_cross_refs ... ok [INFO] [stdout] test mcp::query::specs::tests::get_spec_returns_artifacts ... ok [INFO] [stdout] test mcp::query::specs::tests::get_spec_unknown_is_none ... ok [INFO] [stdout] test mcp::query::specs::tests::list_specs_discovers_openspec_changes ... ok [INFO] [stdout] test mcp::query::specs::tests::get_tasks_parses_openspec_checkboxes ... ok [INFO] [stdout] test mcp::server::tests::agent_cannot_self_verify_because_no_tool_publishes_it ... ok [INFO] [stdout] test mcp::query::specs::tests::list_specs_empty_when_no_config ... ok [INFO] [stdout] test mcp::server::tests::new_merges_all_category_routers ... ok [INFO] [stdout] test mcp::server::tests::no_generic_publish_or_authority_verb_tool_is_advertised ... ok [INFO] [stdout] test mcp::server::tests::server_advertises_tool_capability_and_instructions ... ok [INFO] [stdout] test mcp::server::tests::server_identity_defaults_to_git_paw_with_crate_version ... ok [INFO] [stdout] test mcp::server::tests::registry_is_exactly_the_closed_allowlist ... ok [INFO] [stdout] test mcp::query::source::tests::read_file_refuses_dotdot_traversal ... ok [INFO] [stdout] test mcp::server::tests::server_identity_is_not_the_sdk_default ... ok [INFO] [stdout] test mcp::server::tests::server_identity_uses_configured_name_keeping_crate_version ... ok [INFO] [stdout] test mcp::tests::no_stdout_macros_under_src_mcp ... ok [INFO] [stdout] test mcp::tests::for_root_without_git_paw_dir_yields_none ... ok [INFO] [stdout] test mcp::query::source::tests::read_file_refuses_gitignored_path ... ok [INFO] [stdout] test mcp::tests::resolve_repo_with_non_git_path_errors_with_path ... ok [INFO] [stdout] test mcp::tests::resolve_repo_with_nonexistent_path_errors ... ok [INFO] [stdout] test mcp::tests::for_root_with_git_paw_dir_is_some ... ok [INFO] [stdout] test mcp::tests::resolve_repo_from_subdir_finds_enclosing_repo ... ok [INFO] [stdout] test mcp::tools::docs::tests::get_doc_traversal_refused_not_transport_error ... ok [INFO] [stdout] test mcp::tools::docs::tests::get_readme_null_when_unconfigured ... ok [INFO] [stdout] test mcp::tools::docs::tests::get_doc_happy_path ... ok [INFO] [stdout] test mcp::tools::docs::tests::get_readme_returns_content_when_configured ... ok [INFO] [stdout] test mcp::query::source::tests::search_code_finds_known_string ... ok [INFO] [stdout] test mcp::query::source::tests::search_code_truncates_beyond_cap ... ok [INFO] [stdout] test mcp::tools::docs::tests::list_docs_empty_when_unconfigured ... ok [INFO] [stdout] test mcp::tools::docs::tests::list_docs_enumerates_configured_dir ... ok [INFO] [stdout] test mcp::query::source::tests::search_code_empty_when_no_match ... ok [INFO] [stdout] test mcp::tests::resolve_repo_with_valid_repo_path_returns_root ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_status_sends_wire_identical_message_to_broker_sh ... ok [INFO] [stdout] test mcp::tools::publish::tests::e2e_mcp_publish_question_delivers_to_peer_poll ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_artifact_sends_wire_identical_message_to_broker_sh ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_tool_schemas_carry_no_agent_id_parameter ... ok [INFO] [stdout] test mcp::tests::resolve_repo_worktree_resolves_to_worktree_root ... ok [INFO] [stdout] test mcp::tools::source::tests::list_files_empty_when_not_git ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_question_sends_wire_identical_message_to_broker_sh ... ok [INFO] [stdout] test broker::publish::tests::register_watch_target_http_surfaces_hot_added_agent ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_blocked_sends_wire_identical_message_to_broker_sh ... ok [INFO] [stdout] test mcp::tools::source::tests::read_file_gitignored_refused_not_transport_error ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_status_without_active_broker_returns_mcp_error_not_panic ... ok [INFO] [stdout] test mcp::tools::publish::tests::e2e_mcp_form_boot_registers_without_any_shell_command ... ok [INFO] [stdout] test mcp::tools::source::tests::read_file_traversal_refused_not_transport_error ... ok [INFO] [stdout] test opsx::role_guard::tests::archive_word_in_a_normal_message_does_not_match ... ok [INFO] [stdout] test opsx::role_guard::tests::archive_message_with_body_matches_on_subject_line ... ok [INFO] [stdout] test opsx::role_guard::tests::canonical_archive_message_is_classified ... ok [INFO] [stdout] test opsx::role_guard::tests::context_inactive_when_off_or_non_openspec ... ok [INFO] [stdout] test opsx::role_guard::tests::neither_signal_is_not_archive ... ok [INFO] [stdout] test opsx::role_guard::tests::non_canonical_message_with_archive_move_diff_is_classified ... ok [INFO] [stdout] test opsx::role_guard::tests::both_signals_combine_into_one_reason ... ok [INFO] [stdout] test opsx::role_guard::tests::resolve_coding_worktree ... ok [INFO] [stdout] test opsx::role_guard::tests::resolve_supervisor_worktree ... ok [INFO] [stdout] test opsx::role_guard::tests::resolve_unknown_worktree_is_violation ... ok [INFO] [stdout] test opsx::role_guard::tests::revert_request_text_addresses_supervisor_revert_flow ... ok [INFO] [stdout] test opsx::role_guard::tests::spec_addition_diff_is_classified ... ok [INFO] [stdout] test opsx::role_guard::tests::touches_openspec_pre_filter ... ok [INFO] [stdout] test opsx::role_guard::tests::warning_text_names_sha_agent_and_reason ... ok [INFO] [stdout] test replay::tests::complex_sgr_params ... ok [INFO] [stdout] test replay::tests::cursor_movement_codes ... ok [INFO] [stdout] test replay::tests::cursor_sequences_removed ... ok [INFO] [stdout] test replay::tests::display_list_no_sessions ... ok [INFO] [stdout] test replay::tests::display_list_with_sessions ... ok [INFO] [stdout] test replay::tests::erase_line_codes ... ok [INFO] [stdout] test replay::tests::find_log_by_original_branch ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_status_with_unreachable_broker_returns_mcp_error_not_panic ... ok [INFO] [stdout] test replay::tests::empty_input ... ok [INFO] [stdout] test replay::tests::find_log_no_match_lists_available ... ok [INFO] [stdout] test replay::tests::incomplete_csi_at_end ... ok [INFO] [stdout] test replay::tests::incomplete_esc_at_end ... ok [INFO] [stdout] test replay::tests::multiple_sequences_per_line ... ok [INFO] [stdout] test replay::tests::osc_file_uri ... ok [INFO] [stdout] test replay::tests::osc_incomplete_at_end ... ok [INFO] [stdout] test replay::tests::osc_incomplete_st_at_end ... ok [INFO] [stdout] test replay::tests::osc_mixed_with_csi ... ok [INFO] [stdout] test replay::tests::osc_hyperlink ... ok [INFO] [stdout] test replay::tests::osc_title_bel_terminated ... ok [INFO] [stdout] test replay::tests::osc_title_st_terminated ... ok [INFO] [stdout] test replay::tests::plain_text_unchanged ... ok [INFO] [stdout] test replay::tests::replay_colored_empty_file_succeeds ... ok [INFO] [stdout] test replay::tests::find_log_by_sanitized_name ... ok [INFO] [stdout] red plaintest replay::tests::replay_stripped_strips_ansi ... ok [INFO] [stdout] test replay::tests::replay_stripped_empty_file ... ok [INFO] [stdout] test replay::tests::resolve_explicit_session_found ... ok [INFO] [stdout] test replay::tests::resolve_explicit_session_not_found ... ok [INFO] [stdout] test replay::tests::replay_colored_succeeds_with_ansi_content ... ok [INFO] [stdout] test replay::tests::resolve_session_no_logs_dir_mentions_logging ... ok [INFO] [stdout] test replay::tests::sgr_removed ... ok [INFO] [stdout] test mcp::tools::source::tests::read_file_happy_path ... ok [INFO] [stdout] test selftest::tests::await_port_free_returns_immediately_when_port_is_free ... ok [INFO] [stdout] test selftest::tests::extract_session_name_parses_the_attach_hint ... ok [INFO] [stdout] test selftest::tests::pick_broker_port_returns_an_immediately_bindable_port ... ok [INFO] [stdout] test selftest::tests::maybe_force_fail_triggers_only_for_the_named_step ... ok [INFO] [stdout] test selftest::tests::remove_dir_all_with_retry_is_a_noop_on_a_missing_dir ... ok [INFO] [stdout] test selftest::tests::remove_dir_all_with_retry_removes_a_populated_tree ... ok [INFO] [stdout] test selftest::tests::slug_matches_discovery_file_branch_id_form ... ok [INFO] [stdout] test replay::tests::resolve_no_sessions_error ... ok [INFO] [stdout] test selftest::tests::step_failure_message_names_the_step ... ok [INFO] [stdout] test session::tests::absent_runtime_slot_is_omitted_from_serialized_state ... ok [INFO] [stdout] test session::tests::agent_pane_offset_bare_mode_with_broker_is_one ... ok [INFO] [stdout] test session::tests::agent_pane_offset_bare_mode_without_broker_is_zero ... ok [INFO] [stdout] test mcp::tools::source::tests::search_code_empty_when_no_match ... ok [INFO] [stdout] test selftest::tests::two_helper_calls_yield_distinct_ports_under_concurrency ... ok [INFO] [stdout] test session::tests::dashboard_pane_round_trips ... ok [INFO] [stdout] test session::tests::dashboard_pane_none_is_omitted_from_json ... ok [INFO] [stdout] test session::tests::agent_pane_offset_supervisor_mode_is_the_layout_constant ... ok [INFO] [stdout] test session::tests::deleted_session_is_no_longer_loadable ... ok [INFO] [stdout] test session::tests::deleting_nonexistent_session_succeeds ... ok [INFO] [stdout] test session::tests::display_status_paused_alive_is_paused_dead_is_stopped ... ok [INFO] [stdout] test session::tests::display_status_stopped_receipt_is_stopped_regardless_of_tmux ... ok [INFO] [stdout] test session::tests::display_status_indeterminate_never_reports_stale ... ok [INFO] [stdout] test session::tests::effective_status_paused_dead_downgrades_to_stopped ... ok [INFO] [stdout] test session::tests::display_status_active_receipt_stale_tmux_is_stale ... ok [INFO] [stdout] test session::tests::display_status_active_receipt_alive_tmux_is_active ... ok [INFO] [stdout] test session::tests::file_says_active_but_tmux_dead_means_stopped ... ok [INFO] [stdout] test session::tests::file_says_active_and_tmux_alive_means_active ... ok [INFO] [stdout] test session::tests::file_says_stopped_stays_stopped_regardless_of_tmux ... ok [INFO] [stdout] test session::tests::find_returns_none_when_no_repo_matches ... ok [INFO] [stdout] test session::tests::find_returns_none_when_no_sessions_exist ... ok [INFO] [stdout] test session::tests::finds_correct_session_among_multiple_by_repo_path ... ok [INFO] [stdout] test session::tests::loading_nonexistent_session_returns_none ... ok [INFO] [stdout] test session::tests::paused_session_round_trips ... ok [INFO] [stdout] test session::tests::orchestrator_entry_is_recorded_distinct_from_agents ... ok [INFO] [stdout] test session::tests::paused_status_serializes_lowercase ... ok [INFO] [stdout] test session::tests::read_repo_session_file_returns_none_when_missing ... ok [INFO] [stdout] test session::tests::recovery_after_tmux_crash_has_all_data_to_reconstruct ... ok [INFO] [stdout] test mcp::tools::source::tests::list_files_happy_path ... ok [INFO] [stdout] test session::tests::remove_repo_session_file_is_idempotent ... ok [INFO] [stdout] test session::tests::saved_session_round_trips_runtime_slots_intact ... ok [INFO] [stdout] test session::tests::saving_again_replaces_previous_state ... ok [INFO] [stdout] test session::tests::session_status_displays_as_lowercase_string ... ok [INFO] [stdout] test session::tests::saved_session_can_be_loaded_with_all_fields_intact ... ok [INFO] [stdout] test session::tests::effective_status_paused_alive_remains_paused ... ok [INFO] [stdout] test session::tests::session_with_broker_fields_round_trips ... ok [INFO] [stdout] test session::tests::session_with_broker_enabled_has_recovery_data ... ok [INFO] [stdout] test session::tests::session_with_broker_fields_serializes_them ... ok [INFO] [stdout] test session::tests::session_without_broker_has_no_recovery_data ... ok [INFO] [stdout] test session::tests::session_without_broker_fields_omits_them_from_json ... ok [INFO] [stdout] test session::tests::state_file_without_runtime_slot_loads_with_none ... ok [INFO] [stdout] test session::tests::v020_session_json_loads_with_broker_fields_as_none ... ok [INFO] [stdout] test session::tests::repo_session_file_without_orchestrator_loads ... ok [INFO] [stdout] test session::tests::v04_session_without_dashboard_pane_loads_as_none ... ok [INFO] [stdout] test skills::tests::boot_block_all_four_events_call_helper_no_raw_curl ... ok [INFO] [stdout] test session::tests::write_repo_session_file_writes_sweep_compatible_shape ... ok [INFO] [stdout] test skills::tests::boot_block_contains_paste_handling_instructions ... ok [INFO] [stdout] test skills::tests::boot_block_contains_pre_expanded_helper_invocations ... ok [INFO] [stdout] test skills::tests::boot_block_done_section_leads_with_commit_instruction ... ok [INFO] [stdout] test skills::tests::boot_block_done_section_names_committed_status_published_by_hook ... ok [INFO] [stdout] test skills::tests::boot_block_done_section_retains_manual_done_helper ... ok [INFO] [stdout] test skills::tests::boot_block_done_section_scopes_manual_done_to_code_less_tasks ... ok [INFO] [stdout] test skills::tests::boot_block_done_section_warns_against_manual_done_with_uncommitted_changes ... ok [INFO] [stdout] test skills::tests::boot_block_handles_complex_branch_names ... ok [INFO] [stdout] test skills::tests::boot_block_is_deterministic ... ok [INFO] [stdout] test skills::tests::boot_block_both_forms_cover_the_same_four_events ... ok [INFO] [stdout] test skills::tests::boot_block_mcp_form_calls_publish_tools_no_helper_script ... ok [INFO] [stdout] test skills::tests::boot_block_contains_all_four_essential_events ... ok [INFO] [stdout] test skills::tests::boot_block_question_section_emphasizes_waiting ... ok [INFO] [stdout] test skills::tests::boot_block_substitutes_branch_id_placeholder ... ok [INFO] [stdout] test skills::tests::broker_url_placeholder_substituted ... ok [INFO] [stdout] test skills::tests::boot_block_uses_helper_not_raw_broker_url ... ok [INFO] [stdout] test skills::tests::branch_id_is_substituted ... ok [INFO] [stdout] test skills::tests::cli_speaks_mcp_known_clis_true_unknown_clis_false ... ok [INFO] [stdout] test skills::tests::combine_agent_skills_joins_both_when_present ... ok [INFO] [stdout] test skills::tests::combine_agent_skills_passes_through_single_present_block ... ok [INFO] [stdout] test skills::tests::branch_id_and_project_name_both_substituted ... ok [INFO] [stdout] test skills::tests::combine_agent_skills_is_none_when_both_absent ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_agent_intent_curl_example ... ok [INFO] [stdout] test skills::tests::coordination_skill_consolidated_agent_done_timing ... ok [INFO] [stdout] test skills::tests::coordination_lists_forbidden_commands_under_openspec ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_before_you_start_editing_heading ... ok [INFO] [stdout] test skills::tests::coordination_skill_carries_memory_isolation_section ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_must_not_anti_pattern_statements ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_peer_dependency_escalation_section ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_while_youre_editing_heading ... ok [INFO] [stdout] test skills::tests::coordination_skill_describes_slugify_rule ... ok [INFO] [stdout] test skills::tests::coordination_skill_context_budget_covers_three_topics ... ok [INFO] [stdout] test skills::tests::coordination_skill_documents_commit_cadence ... ok [INFO] [stdout] test skills::tests::coordination_skill_documents_slugify_terminology ... ok [INFO] [stdout] test skills::tests::coordination_skill_documents_automatic_status_publishing ... ok [INFO] [stdout] test skills::tests::coordination_skill_does_not_contain_cherry_pick_instructions ... ok [INFO] [stdout] test skills::tests::coordination_skill_forbids_opsx_verify_and_archive ... ok [INFO] [stdout] test skills::tests::coordination_skill_documents_stash_hygiene ... ok [INFO] [stdout] test skills::tests::coordination_skill_documents_working_heartbeat ... ok [INFO] [stdout] test skills::tests::coordination_skill_instructs_question_on_peer_intent_overlap ... ok [INFO] [stdout] test skills::tests::coordination_skill_names_terminal_action ... ok [INFO] [stdout] test skills::tests::coordination_skill_instructs_republish_on_scope_growth ... ok [INFO] [stdout] test skills::tests::coordination_skill_rejects_pairwise_overcoordination ... ok [INFO] [stdout] test skills::tests::coordination_skill_per_cli_mechanism_table ... ok [INFO] [stdout] test skills::tests::coordination_skill_residual_budget_heuristic_in_prose ... ok [INFO] [stdout] test replay::tests::resolve_default_most_recent ... ok [INFO] [stdout] test skills::tests::coordination_skill_teaches_main_advances_discipline ... ok [INFO] [stdout] test skills::tests::coordination_skill_states_commit_before_compact_discipline ... ok [INFO] [stdout] test skills::tests::dev_allowlist_preset_groups_by_first_word ... ok [INFO] [stdout] test skills::tests::coordination_skill_three_moments_in_priority_order ... ok [INFO] [stdout] test skills::tests::dev_allowlist_preset_is_not_asset_sourced ... ok [INFO] [stdout] test skills::tests::coordination_skill_verified_and_feedback_substrings_independent ... ok [INFO] [stdout] test skills::tests::coordination_skill_contains_context_budget_after_while_editing ... ok [INFO] [stdout] test session::tests::find_matches_a_symlinked_repo_path ... ok [INFO] [stdout] test skills::tests::docs_fetch_skill_bundles_no_documentation_content ... ok [INFO] [stdout] test skills::tests::dev_allowlist_preset_preserves_single_word_entries ... ok [INFO] [stdout] test skills::tests::dev_allowlist_preset_renders_every_constant_entry ... ok [INFO] [stdout] test skills::tests::docs_fetch_skill_instructs_degrade_gracefully ... ok [INFO] [stdout] test skills::tests::docs_fetch_skill_instructs_helper_not_raw_curl ... ok [INFO] [stdout] test skills::tests::drive_loop_directive_present_when_unattended ... ok [INFO] [stdout] test skills::tests::embedded_coordination_documents_answer_as_authoritative_reply ... ok [INFO] [stdout] test skills::tests::embedded_coordination_instructs_sequential_work_and_writeback ... ok [INFO] [stdout] test skills::tests::drive_loop_directive_absent_when_attended ... ok [INFO] [stdout] test skills::tests::embedded_coordination_is_reachable ... ok [INFO] [stdout] test skills::tests::embedded_coordination_contains_all_operations ... ok [INFO] [stdout] test skills::tests::embedded_coordination_mentions_spec_kit_consolidated_worktrees ... ok [INFO] [stdout] test skills::tests::embedded_coordination_clarifies_p_worktrees_follow_standard_pattern ... ok [INFO] [stdout] test skills::tests::embedded_coordination_states_agent_done_timing_for_consolidated ... ok [INFO] [stdout] test skills::tests::embedded_coordination_documents_supervisor_messages ... ok [INFO] [stdout] test skills::tests::drive_loop_directive_region_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test skills::tests::governance_section_empty_when_all_paths_none ... ok [INFO] [stdout] test skills::tests::governance_section_has_no_gates_text ... ok [INFO] [stdout] test skills::tests::governance_section_has_preamble_line ... ok [INFO] [stdout] test skills::tests::governance_section_one_path_only_dod ... ok [INFO] [stdout] test skills::tests::embedded_supervisor_is_reachable ... ok [INFO] [stdout] test skills::tests::embedded_docs_fetch_is_reachable ... ok [INFO] [stdout] test mcp::tools::publish::tests::publish_tools_cannot_impersonate_another_agent ... ok [INFO] [stdout] test skills::tests::governance_section_lists_all_five_in_canonical_order ... ok [INFO] [stdout] test skills::tests::invalid_standardized_skill_frontmatter_returns_error ... ok [INFO] [stdout] test skills::tests::memory_isolation_section_is_engine_and_cli_agnostic ... ok [INFO] [stdout] test skills::tests::project_name_is_substituted ... ok [INFO] [stdout] test skills::tests::governance_section_header_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test skills::tests::render_build_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::render_change_id_placeholder_passes_through ... ok [INFO] [stdout] test mcp::tools::source::tests::search_code_happy_path ... ok [INFO] [stdout] test skills::tests::no_unknown_placeholders_after_render ... ok [INFO] [stdout] test skills::tests::render_doc_tool_command_empty_when_unset ... ok [INFO] [stdout] test skills::tests::render_fmt_check_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::render_dev_allowlist_preset_placeholder_substitutes ... ok [INFO] [stdout] test skills::tests::render_doc_tool_command_substitutes_from_gates ... ok [INFO] [stdout] test skills::tests::render_lint_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::render_opsx_regions_strips_body_when_not_kept ... ok [INFO] [stdout] test skills::tests::render_is_deterministic ... ok [INFO] [stdout] test skills::tests::render_security_audit_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::render_spec_path_doctrine_empty_renders_sentinel ... ok [INFO] [stdout] test skills::tests::render_spec_path_doctrine_placeholder_substitutes_per_backend ... ok [INFO] [stdout] test skills::tests::render_spec_validate_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::render_test_command_placeholder_none_renders_not_configured ... ok [INFO] [stdout] test skills::tests::render_performs_no_io ... ok [INFO] [stdout] test skills::tests::render_test_command_placeholder_substitutes_from_config ... ok [INFO] [stdout] test skills::tests::skill_template_is_cloneable ... ok [INFO] [stdout] test skills::tests::slug_substitution_matches_slugify_branch ... ok [INFO] [stdout] test skills::tests::spec_doctrine_dedupes_repeated_backends ... ok [INFO] [stdout] test skills::tests::spec_doctrine_empty_backends_renders_sentinel ... ok [INFO] [stdout] test skills::tests::spec_doctrine_markdown_references_paw_status_frontmatter ... ok [INFO] [stdout] test skills::tests::spec_doctrine_openspec_references_openspec_paths_and_workflow ... ok [INFO] [stdout] test skills::tests::spec_doctrine_speckit_references_specify_paths_and_checklist ... ok [INFO] [stdout] test skills::tests::spec_path_doctrine_sentences_are_byte_identical_to_ground_truth ... ok [INFO] [stdout] test skills::tests::spec_doctrine_multi_backend_lists_each_present_backend ... ok [INFO] [stdout] test skills::tests::render_opsx_regions_supports_a_distinct_marker_pair ... ok [INFO] [stdout] test skills::tests::render_doc_build_command_placeholder_substitutes_and_none_fallback ... ok [INFO] [stdout] test skills::tests::raw_coordination_template_carries_the_forbidden_section ... ok [INFO] [stdout] test skills::tests::standardized_skill_metadata_placeholders_are_substituted ... ok [INFO] [stdout] test skills::tests::standard_location_loading ... ok [INFO] [stdout] test skills::tests::supervisor_feedback_example_uses_correct_payload_fields ... ok [INFO] [stdout] test skills::tests::standardized_skill_format_is_detected ... ok [INFO] [stdout] test skills::tests::opsx_multi_backend_session_keeps_sections_when_openspec_present ... ok [INFO] [stdout] test skills::tests::supervisor_has_must_must_not_section_under_openspec ... ok [INFO] [stdout] test skills::tests::supervisor_examples_clarify_recipient_vs_sender ... ok [INFO] [stdout] test skills::tests::standardized_skill_with_resources_loads_paths ... ok [INFO] [stdout] test skills::tests::supervisor_skill_answers_questions_via_agent_answer ... ok [INFO] [stdout] test skills::tests::supervisor_skill_audit_step_enumerates_five_gates ... ok [INFO] [stdout] test skills::tests::standard_location_skill_loading ... ok [INFO] [stdout] test skills::tests::supervisor_skill_carries_out_of_worktree_violation_procedure ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_broker_status ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_governance_verification ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_tmux_commands ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_verified_and_feedback ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_conflict_detector_tag ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_role_definition ... ok [INFO] [stdout] test skills::tests::supervisor_skill_defers_safe_approvals_to_drive_loop ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_watch_peer_intents_section ... ok [INFO] [stdout] test skills::tests::supervisor_skill_cross_references_agent_intent_flow ... ok [INFO] [stdout] test skills::tests::supervisor_has_revert_flow_under_openspec ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_every_iteration_phrase ... ok [INFO] [stdout] test skills::tests::opsx_sections_omitted_under_non_openspec_engines ... ok [INFO] [stdout] test skills::tests::supervisor_skill_doc_audit_enumerates_surfaces ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_accept_edits_audit ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_checkpoint_phase ... ok [INFO] [stdout] test skills::tests::supervisor_skill_contains_spec_audit_procedure ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_broker_side_detection ... ok [INFO] [stdout] test skills::tests::opsx_region_markers_never_survive_rendering ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_main_side_intent ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_emission_cadence ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_pane_current_path_resolution ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_tooling_friction_category ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_proactive_launch_sweep ... ok [INFO] [stdout] test skills::tests::supervisor_skill_documents_tmux_send_keys_alongside_answer ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_examples_cover_all_five_docs ... ok [INFO] [stdout] test skills::tests::supervisor_skill_feedback_example_uses_gate_name_prefixes ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_after_spec_audit_before_verified ... ok [INFO] [stdout] test skills::tests::supervisor_skill_enumerates_five_gates_in_order ... ok [INFO] [stdout] test skills::tests::supervisor_skill_focuses_on_question_escalations ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_is_substep_of_spec_audit ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_findings_via_agent_feedback ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_examples_state_they_are_illustrative ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_missing_doc_is_not_distinct_failure_type ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_states_judgment_per_project_conventions ... ok [INFO] [stdout] test skills::tests::supervisor_skill_does_not_credit_seeded_allowlist_for_prompt_free_broker_calls ... ok [INFO] [stdout] test skills::tests::supervisor_skill_has_introspection_section_with_phase_taxonomy ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_states_activation_condition ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_missing_doc_handling ... ok [INFO] [stdout] test skills::tests::supervisor_skill_has_merge_orchestration_section ... ok [INFO] [stdout] test skills::tests::supervisor_skill_has_detecting_stuck_agents_section ... ok [INFO] [stdout] test skills::tests::supervisor_skill_launch_sweep_complements_auto_approve_thread ... ok [INFO] [stdout] test skills::tests::supervisor_skill_has_user_input_section ... ok [INFO] [stdout] test skills::tests::supervisor_skill_governance_verification_substep_preserved ... ok [INFO] [stdout] test skills::tests::supervisor_skill_launch_sweep_lists_four_pane_categories ... ok [INFO] [stdout] test skills::tests::supervisor_skill_launch_sweep_escalates_unknown_via_agent_question ... ok [INFO] [stdout] test skills::tests::supervisor_skill_launch_sweep_references_down_enter_keystroke ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mentions_launch_time_sweep ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mandates_helper_and_forbids_inline_pane_loops ... ok [INFO] [stdout] test skills::tests::supervisor_skill_merge_cycle_uses_agent_question ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mentions_agent_intent ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mentions_pasted_text_indicator ... ok [INFO] [stdout] test skills::tests::supervisor_skill_merge_reverts_via_reset_hard ... ok [INFO] [stdout] test skills::tests::supervisor_skill_merge_uses_ff_only ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mentions_paste_buffer_recovery ... ok [INFO] [stdout] test skills::tests::supervisor_skill_no_governance_gate_tag ... ok [INFO] [stdout] test skills::tests::supervisor_skill_no_governance_gates_table ... ok [INFO] [stdout] test skills::tests::supervisor_skill_no_gating_language ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mandates_git_dash_c_and_forbids_cd ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mandates_no_fail_fast_verification ... ok [INFO] [stdout] test skills::tests::supervisor_skill_mandates_per_event_verification ... ok [INFO] [stdout] test skills::tests::supervisor_skill_merge_publishes_final_status_summary ... ok [INFO] [stdout] test skills::tests::supervisor_skill_paste_buffer_recovery_applies_at_launch ... ok [INFO] [stdout] test skills::tests::supervisor_skill_paste_buffer_recovery_uses_tmux ... ok [INFO] [stdout] test skills::tests::supervisor_skill_paste_buffer_cross_ref_in_send_keys_section ... ok [INFO] [stdout] test skills::tests::supervisor_skill_permits_dependency_driven_deferral ... ok [INFO] [stdout] test skills::tests::supervisor_skill_publishes_advanced_main_after_merge ... ok [INFO] [stdout] test skills::tests::supervisor_skill_permits_concurrent_verification ... ok [INFO] [stdout] test skills::tests::supervisor_skill_paste_buffer_recovery_is_safe_by_default ... ok [INFO] [stdout] test skills::tests::supervisor_skill_removes_v04_manual_conflict_detection ... ok [INFO] [stdout] test skills::tests::supervisor_skill_references_bundled_sweep_helper ... ok [INFO] [stdout] test skills::tests::supervisor_skill_references_verify_now_nudge ... ok [INFO] [stdout] test skills::tests::supervisor_skill_renders_not_configured_in_each_gate_when_none ... ok [INFO] [stdout] test skills::tests::supervisor_skill_paste_buffer_framing_is_lenient ... ok [INFO] [stdout] test skills::tests::supervisor_skill_publishes_learnings_via_helper_not_raw_curl ... ok [INFO] [stdout] test skills::tests::supervisor_skill_rules_bullet_enumerates_escalation_cases ... ok [INFO] [stdout] test skills::tests::supervisor_skill_renders_with_all_six_gate_placeholders_set ... ok [INFO] [stdout] test skills::tests::supervisor_skill_security_audit_enumerates_owasp_categories ... ok [INFO] [stdout] test skills::tests::supervisor_skill_rules_bullet_mentions_routine_absorption ... ok [INFO] [stdout] test skills::tests::supervisor_skill_self_register_via_helper_omits_cli_field ... ok [INFO] [stdout] test skills::tests::supervisor_skill_states_a_lone_enter_is_a_no_op ... ok [INFO] [stdout] test skills::tests::supervisor_skill_states_commit_cadence_nudge ... ok [INFO] [stdout] test skills::tests::supervisor_skill_self_register_is_first_action ... ok [INFO] [stdout] test skills::tests::supervisor_skill_routes_every_agent_status_through_helper ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_names_recovery_learning_record ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_names_two_generic_symptoms ... ok [INFO] [stdout] test skills::tests::supervisor_skill_states_never_own_pane_rule ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_section_has_four_ordered_pieces ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_documents_checkpoint_shape ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_documents_replay_loop ... ok [INFO] [stdout] test skills::tests::supervisor_skill_user_input_states_loop_continues ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_confirmation_rule_is_prominent ... ok [INFO] [stdout] test skills::tests::supervisor_skill_uses_repo_local_verify_scratch_dir ... ok [INFO] [stdout] test skills::tests::supervisor_skill_user_input_uses_agent_question_for_judgment_calls ... ok [INFO] [stdout] test skills::tests::supervisor_skill_stream_timeout_checkpoint_only_for_multi_publish ... ok [INFO] [stdout] test skills::tests::supervisor_template_gate_prose_has_no_hardcoded_git_paw_commands ... ok [INFO] [stdout] test skills::tests::supervisor_skill_user_input_uses_agent_feedback_for_directives ... ok [INFO] [stdout] test skills::tests::supervisor_skill_verified_message_enumerates_five_gates ... ok [INFO] [stdout] test skills::tests::test_command_placeholder_falls_back_when_unset ... ok [INFO] [stdout] test skills::tests::supervisor_skill_wires_capture_into_sweep_and_winddown ... ok [INFO] [stdout] test skills::tests::unknown_placeholder_survives ... ok [INFO] [stdout] test skills::tests::unknown_skill_returns_error ... ok [INFO] [stdout] test specs::markdown::tests::all_three_frontmatter_fields_mapped ... ok [INFO] [stdout] test skills::tests::supervisor_verified_example_uses_correct_payload_fields ... ok [INFO] [stdout] test skills::tests::supervisor_skill_warns_against_git_paw_status_ordering ... ok [INFO] [stdout] test skills::tests::supervisor_workflow_prose_drops_legacy_verified_fields ... ok [INFO] [stdout] test skills::tests::supervisor_template_no_unsubstituted_placeholders_when_test_command_set ... ok [INFO] [stdout] test skills::tests::test_command_placeholder_substitutes_when_set ... ok [INFO] [stdout] test specs::markdown::tests::cli_absent ... ok [INFO] [stdout] test skills::tests::supervisor_skill_watch_mentions_per_iteration_sweep ... ok [INFO] [stdout] test specs::markdown::tests::prompt_empty_when_only_frontmatter ... ok [INFO] [stdout] test skills::tests::supervisor_skill_spec_audit_after_test_before_verified ... ok [INFO] [stdout] test specs::markdown::tests::cli_present ... ok [INFO] [stdout] test specs::markdown::tests::prompt_is_body_after_frontmatter ... ok [INFO] [stdout] test specs::markdown::tests::scan_non_markdown_files_ignored ... ok [INFO] [stdout] test specs::markdown::tests::id_from_filename_stem_when_no_paw_branch ... ok [INFO] [stdout] test specs::markdown::tests::scan_returns_entries_with_markdown_backend_tag ... ok [INFO] [stdout] test specs::markdown::tests::scan_filters_non_pending_then_applies_tag ... ok [INFO] [stdout] test specs::markdown::tests::id_from_paw_branch ... ok [INFO] [stdout] test specs::markdown::tests::scan_three_pending_files ... ok [INFO] [stdout] test specs::markdown::tests::scan_files_without_frontmatter_ignored ... ok [INFO] [stdout] test specs::markdown::tests::unknown_frontmatter_fields_ignored ... ok [INFO] [stdout] test specs::openspec::tests::frontmatter_excluded_from_prompt ... ok [INFO] [stdout] test specs::markdown::tests::scan_subdirectories_not_traversed ... ok [INFO] [stdout] test specs::markdown::tests::scan_single_pending_carries_markdown_tag ... ok [INFO] [stdout] test specs::markdown::tests::scan_only_pending_returned ... ok [INFO] [stdout] test specs::openspec::tests::frontmatter_multiple_fields ... ok [INFO] [stdout] test specs::openspec::tests::frontmatter_with_paw_cli ... ok [INFO] [stdout] test specs::openspec::tests::owned_files_alternate_pattern ... ok [INFO] [stdout] test specs::openspec::tests::frontmatter_without_paw_cli ... ok [INFO] [stdout] test specs::markdown::tests::scan_empty_directory ... ok [INFO] [stdout] test specs::openspec::tests::no_frontmatter ... ok [INFO] [stdout] test specs::openspec::tests::owned_files_present ... ok [INFO] [stdout] test specs::openspec::tests::no_owned_files ... ok [INFO] [stdout] test specs::openspec::tests::scan_returns_entries_with_openspec_backend_tag ... ok [INFO] [stdout] test specs::openspec::tests::scan_backend_tag_independent_of_frontmatter ... ok [INFO] [stdout] test specs::openspec::tests::scan_single_entry_carries_openspec_tag ... ok [INFO] [stdout] test specs::openspec::tests::scan_empty_directory ... ok [INFO] [stdout] test specs::openspec::tests::scan_skips_files ... ok [INFO] [stdout] test specs::openspec::tests::scan_multiple_changes ... ok [INFO] [stdout] test specs::resolve::tests::ambiguous_numeric_prefix_errors_with_candidates ... ok [INFO] [stdout] test specs::resolve::tests::duplicate_names_are_deduplicated ... ok [INFO] [stdout] test specs::resolve::tests::exact_match_on_spec_kit_decomposed_id ... ok [INFO] [stdout] test specs::openspec::tests::scan_with_frontmatter ... ok [INFO] [stdout] test specs::openspec::tests::scan_with_specs ... ok [INFO] [stdout] test specs::resolve::tests::feature_id_of_handles_openspec_flat_id ... ok [INFO] [stdout] test specs::openspec::tests::scan_basic_change ... ok [INFO] [stdout] test specs::openspec::tests::scan_skips_missing_tasks_md ... ok [INFO] [stdout] test specs::openspec::tests::scan_skips_archive ... ok [INFO] [stdout] test specs::resolve::tests::feature_id_of_handles_phase_suffix ... ok [INFO] [stdout] test specs::resolve::tests::numeric_prefix_resolves_unambiguously ... ok [INFO] [stdout] test specs::resolve::tests::feature_id_of_handles_alphanumeric_feature_directory ... ok [INFO] [stdout] test specs::resolve::tests::partial_failure_aborts_no_partial_result ... ok [INFO] [stdout] test specs::resolve::tests::numeric_prefix_with_no_features_errors_as_unknown ... ok [INFO] [stdout] test specs::resolve::tests::feature_id_of_handles_t_task_suffix ... ok [INFO] [stdout] test specs::openspec::tests::scan_with_multiple_spec_files ... ok [INFO] [stdout] test specs::resolve::tests::unknown_name_lists_candidates ... ok [INFO] [stdout] test specs::openspec::tests::scan_with_owned_files ... ok [INFO] [stdout] test specs::speckit::tests::backend_constructs ... ok [INFO] [stdout] test specs::resolve::tests::exact_match_returns_single_entry ... ok [INFO] [stdout] test specs::speckit::tests::consolidated_prompt_lists_tasks_in_order_with_ids ... ok [INFO] [stdout] test specs::speckit::tests::current_phase_handles_implicit_phase ... ok [INFO] [stdout] test specs::speckit::tests::current_phase_returns_none_when_all_complete ... ok [INFO] [stdout] test specs::speckit::tests::decompose_branches_use_safe_char_set ... ok [INFO] [stdout] test specs::speckit::tests::boot_prompt_includes_checklists_section_when_present ... ok [INFO] [stdout] test specs::speckit::tests::decompose_empty_tasks_md_yields_nothing ... ok [INFO] [stdout] test specs::speckit::tests::current_phase_skips_fully_complete_phases ... ok [INFO] [stdout] test specs::speckit::tests::decompose_fully_complete_yields_nothing ... ok [INFO] [stdout] test specs::speckit::tests::decompose_branch_shapes ... ok [INFO] [stdout] test specs::speckit::tests::boot_prompt_omits_plan_section_when_plan_missing ... ok [INFO] [stdout] test specs::resolve::tests::multiple_names_resolved_independently ... ok [INFO] [stdout] test specs::speckit::tests::decompose_only_non_p_one_consolidated_entry ... ok [INFO] [stdout] test specs::speckit::tests::decompose_mixed_phase_produces_n_plus_one ... ok [INFO] [stdout] test specs::speckit::tests::build_prompt_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test specs::speckit::tests::decompose_single_non_p_still_uses_phase_branch ... ok [INFO] [stdout] test specs::speckit::tests::decompose_only_p_tasks_no_consolidated ... ok [INFO] [stdout] test specs::speckit::tests::decompose_owned_files_is_none ... ok [INFO] [stdout] test specs::speckit::tests::detect_constitution_present ... ok [INFO] [stdout] test specs::speckit::tests::detect_constitution_no_parent ... ok [INFO] [stdout] test specs::speckit::tests::parses_standard_task_line ... ok [INFO] [stdout] test specs::speckit::tests::phase_less_file_uses_implicit_phase ... ok [INFO] [stdout] test specs::speckit::tests::detect_constitution_absent ... ok [INFO] [stdout] test specs::resolve::tests::feature_name_expands_to_all_decomposed_entries ... ok [INFO] [stdout] test specs::speckit::tests::prompt_omits_checklists_when_empty ... ok [INFO] [stdout] test specs::speckit::tests::prompt_includes_spec_and_plan ... ok [INFO] [stdout] test specs::speckit::tests::parses_phase_heading_separator_variants ... ok [INFO] [stdout] test specs::speckit::tests::prompt_omits_plan_when_missing ... ok [INFO] [stdout] test specs::speckit::tests::read_feature_optional_files_absent ... ok [INFO] [stdout] test specs::speckit::tests::duplicate_task_ids_are_kept_as_separate_records ... ok [INFO] [stdout] test specs::speckit::tests::parses_complete_task_lowercase_and_uppercase_x ... ok [INFO] [stdout] test specs::speckit::tests::read_feature_returns_none_when_tasks_md_missing ... ok [INFO] [stdout] test specs::speckit::tests::prompt_includes_checklists_when_present ... ok [INFO] [stdout] test specs::speckit::tests::parses_p_marker ... ok [INFO] [stdout] test specs::speckit::tests::read_feature_loads_optional_files ... ok [INFO] [stdout] test specs::speckit::tests::scan_advances_phase_when_phase_one_clears ... ok [INFO] [stdout] test specs::speckit::tests::single_prompt_omits_sequential_instruction ... ok [INFO] [stdout] test specs::speckit::tests::scan_skips_non_directory_children ... ok [INFO] [stdout] test specs::speckit::tests::scan_skips_feature_without_tasks_md ... ok [INFO] [stdout] test specs::speckit::tests::single_p_boot_prompt_contains_one_task_description ... ok [INFO] [stdout] test specs::speckit::tests::unrecognised_lines_are_ignored ... ok [INFO] [stdout] test specs::speckit::tests::tasks_attach_to_preceding_phase ... ok [INFO] [stdout] test specs::superpowers::tests::build_prompt_is_byte_identical_to_ground_truth ... ok [INFO] [stdout] test specs::speckit::tests::scan_empty_directory ... ok [INFO] [stdout] test specs::speckit::tests::scan_multi_feature_round_trip ... ok [INFO] [stdout] test specs::speckit::tests::prompt_sections_separated_by_delimiter ... ok [INFO] [stdout] test specs::superpowers::tests::boot_prompt_carries_context_tasks_and_writeback_instruction ... ok [INFO] [stdout] test specs::superpowers::tests::entry_id_is_stem_and_owned_files_none ... ok [INFO] [stdout] test specs::superpowers::tests::branch_is_plan_prefixed_slug_with_safe_chars ... ok [INFO] [stdout] test specs::superpowers::tests::each_in_scope_plan_yields_exactly_one_entry_no_fanout ... ok [INFO] [stdout] test specs::superpowers::tests::files_block_code_and_run_lines_do_not_error_or_count_as_steps ... ok [INFO] [stdout] test specs::superpowers::tests::parse_counts_only_incomplete_steps_ignoring_completed ... ok [INFO] [stdout] test specs::tests::backend_for_type_openspec ... ok [INFO] [stdout] test specs::tests::backend_for_type_speckit ... ok [INFO] [stdout] test specs::tests::backend_for_type_superpowers ... ok [INFO] [stdout] test specs::tests::backend_for_type_markdown ... ok [INFO] [stdout] test specs::tests::backend_for_type_unknown ... ok [INFO] [stdout] test specs::tests::derive_branch_custom_prefix_without_trailing_slash ... ok [INFO] [stdout] test specs::tests::config_specs_section_is_used_verbatim ... ok [INFO] [stdout] test specs::tests::derive_branch_custom_prefix_with_trailing_slash ... ok [INFO] [stdout] test specs::tests::derive_branch_default_prefix ... ok [INFO] [stdout] test specs::superpowers::tests::fully_complete_plan_is_skipped ... ok [INFO] [stdout] test specs::tests::format_override_speckit_supplies_default_dir ... ok [INFO] [stdout] test specs::tests::format_override_superpowers_supplies_default_dir ... ok [INFO] [stdout] test specs::superpowers::tests::non_plan_file_is_skipped_others_still_scan ... ok [INFO] [stdout] test specs::tests::format_override_wins_over_config ... ok [INFO] [stdout] test specs::tests::scan_specs_no_specs_config ... ok [INFO] [stdout] test specs::superpowers::tests::plan_with_remaining_step_is_in_scope ... ok [INFO] [stdout] test specs::superpowers::tests::scan_empty_dir_returns_empty ... ok [INFO] [stdout] test specs::tests::scan_specs_file_instead_of_directory ... ok [INFO] [stdout] test specs::superpowers::tests::scan_reads_plan_files_not_subdirs ... ok [INFO] [stdout] test specs::tests::scan_specs_nonexistent_directory ... ok [INFO] [stdout] test specs::tests::scan_specs_openspec_still_gets_branch_prefix ... ok [INFO] [stdout] test specs::tests::scan_specs_with_override_routes_to_speckit ... ok [INFO] [stdout] test specs::tests::spec_entry_all_fields ... ok [INFO] [stdout] test specs::tests::spec_entry_optional_fields_absent ... ok [INFO] [stdout] test specs::tests::unconfigured_scan_errors_with_actionable_message ... ok [INFO] [stdout] test supervisor::approval_gate::tests::blank_lines_do_not_evict_marker_from_tail ... ok [INFO] [stdout] test specs::tests::unconfigured_repo_resolves_to_none_even_with_layouts_present ... ok [INFO] [stdout] test supervisor::approval_gate::tests::dedup_distinguishes_commands_with_identical_footer ... ok [INFO] [stdout] test supervisor::approval_gate::tests::dedup_collapses_repeated_capture_of_same_prompt ... ok [INFO] [stdout] test supervisor::approval_gate::tests::empty_capture_is_not_live ... ok [INFO] [stdout] test supervisor::approval_gate::tests::gate_approves_coding_agent_pane_two ... ok [INFO] [stdout] test supervisor::approval_gate::tests::dedup_keys_on_agent_identity_too ... ok [INFO] [stdout] test supervisor::approval_gate::tests::gate_refuses_pane_zero ... ok [INFO] [stdout] test supervisor::approval_gate::tests::multi_option_block_above_narrow_tail_is_live ... ok [INFO] [stdout] test supervisor::approval_gate::tests::gate_dispatches_on_reconfirmed_live_prompt ... ok [INFO] [stdout] test supervisor::approval_gate::tests::tail_check_is_case_insensitive ... ok [INFO] [stdout] test supervisor::approve::tests::approval_keystrokes_are_digit_then_enter ... ok [INFO] [stdout] test supervisor::approve::tests::broad_grant_selects_option_two ... ok [INFO] [stdout] test supervisor::approval_gate::tests::gate_sends_nothing_when_prompt_cleared ... ok [INFO] [stdout] test supervisor::approval_gate::tests::marker_in_tail_is_live ... ok [INFO] [stdout] test supervisor::approval_gate::tests::marker_only_in_scrollback_is_not_live ... ok [INFO] [stdout] test supervisor::approve::tests::disabled_config_is_noop ... ok [INFO] [stdout] test supervisor::approve::tests::pane_zero_is_never_auto_approved ... ok [INFO] [stdout] test supervisor::approve::tests::non_live_prompt_is_noop ... ok [INFO] [stdout] test supervisor::approve::tests::cleared_prompt_suppresses_keystrokes_via_auto_approve ... ok [INFO] [stdout] test supervisor::approve::tests::unknown_class_is_noop ... ok [INFO] [stdout] test supervisor::approve::tests::each_key_dispatched_separately ... ok [INFO] [stdout] test supervisor::auto_approve::tests::arbitrary_code_never_takes_broad_grant ... ok [INFO] [stdout] test supervisor::auto_approve::tests::arbitrary_code_runner_predicate ... ok [INFO] [stdout] test supervisor::approve::tests::safe_prompt_types_option_digit_then_enter ... ok [INFO] [stdout] test supervisor::auto_approve::tests::branch_switch_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::chmod_on_worktree_file_is_safe_recursive_stays_danger ... ok [INFO] [stdout] test supervisor::auto_approve::tests::claude_config_dir_joins_the_set ... ok [INFO] [stdout] test supervisor::auto_approve::tests::bash_n_on_worktree_script_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::command_slice_ignores_narration_prose ... ok [INFO] [stdout] test supervisor::approve::tests::broker_audit_message_published_before_keystrokes ... ok [INFO] [stdout] test supervisor::auto_approve::tests::command_slice_reads_bash_paren_form ... ok [INFO] [stdout] test supervisor::auto_approve::tests::derivation_has_no_hardcoded_cli_names ... ok [INFO] [stdout] test supervisor::auto_approve::tests::config_extras_extend_whitelist ... ok [INFO] [stdout] test supervisor::auto_approve::tests::configured_settings_path_parent_joins_the_set ... ok [INFO] [stdout] test supervisor::auto_approve::tests::detects_two_and_three_option_shapes ... ok [INFO] [stdout] test supervisor::auto_approve::tests::danger_overrides_whitelisted_git_verb ... ok [INFO] [stdout] test supervisor::auto_approve::tests::defaults_contain_documented_classes ... ok [INFO] [stdout] test supervisor::auto_approve::tests::command_slice_none_without_header ... ok [INFO] [stdout] test supervisor::auto_approve::tests::command_slice_prefers_last_header ... ok [INFO] [stdout] test supervisor::auto_approve::tests::disabled_flag_rejects_in_worktree_path ... ok [INFO] [stdout] test supervisor::auto_approve::tests::dev_test_rules_reject_metacharacter_smuggling ... ok [INFO] [stdout] test supervisor::auto_approve::tests::dev_test_rules_require_resolvable_worktree_root ... ok [INFO] [stdout] test supervisor::auto_approve::tests::empty_extras_keeps_defaults ... ok [INFO] [stdout] test supervisor::auto_approve::tests::extracts_path_from_edit_prompt ... ok [INFO] [stdout] test supervisor::auto_approve::tests::extracts_path_from_write_prompt ... ok [INFO] [stdout] test supervisor::auto_approve::tests::extracts_absolute_path_from_prompt ... ok [INFO] [stdout] test supervisor::auto_approve::tests::empty_protected_set_matches_nothing ... ok [INFO] [stdout] test supervisor::auto_approve::tests::git_dir_write_matches_without_a_worktree_root ... ok [INFO] [stdout] test supervisor::auto_approve::tests::dotdot_escape_into_protected_set_is_violation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::git_push_is_not_a_worktree_git_op_and_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::force_push_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::git_status_is_not_a_worktree_git_op ... ok [INFO] [stdout] test supervisor::auto_approve::tests::hard_reset_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::in_worktree_git_add_is_classified_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::in_worktree_git_commit_is_classified_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::inline_code_strings_do_not_match_dev_test_rules ... ok [INFO] [stdout] test supervisor::auto_approve::tests::in_worktree_file_create_is_classified_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::kill_and_sudo_do_not_false_match_substrings ... ok [INFO] [stdout] test supervisor::auto_approve::tests::leading_whitespace_is_tolerated ... ok [INFO] [stdout] test supervisor::auto_approve::tests::linux_device_write_escalates_on_linux ... ok [INFO] [stdout] test supervisor::auto_approve::tests::live_prompt_multi_option_block_is_detected ... ok [INFO] [stdout] test supervisor::auto_approve::tests::live_prompt_multi_option_with_footer_is_detected ... ok [INFO] [stdout] test supervisor::auto_approve::tests::live_prompt_scrolled_out_does_not_fire ... ok [INFO] [stdout] test supervisor::auto_approve::tests::live_prompt_with_footer_fires ... ok [INFO] [stdout] test supervisor::auto_approve::tests::live_prompt_without_footer_does_not_fire ... ok [INFO] [stdout] test supervisor::auto_approve::tests::managed_broker_script_invocation_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::managed_docs_fetch_script_and_interpreter_invocation_are_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::in_worktree_write_is_not_violation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::managed_script_invocation_resolves_against_worktree_root ... ok [INFO] [stdout] test supervisor::auto_approve::tests::interpreter_run_of_worktree_script_is_one_time_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::managed_sweep_script_invocation_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::managed_script_chained_with_danger_command_still_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::mktemp_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::derive_reads_settings_paths_from_config ... ok [INFO] [stdout] test supervisor::auto_approve::tests::nested_in_worktree_path_is_classified_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::non_scratch_rm_escalates ... ok [INFO] [stdout] test supervisor::auto_approve::tests::git_config_write_escalates_as_danger ... ok [INFO] [stdout] test supervisor::auto_approve::tests::non_script_git_paw_path_is_not_a_managed_script_invocation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::memory_subtrees_join_the_set ... ok [INFO] [stdout] test supervisor::auto_approve::tests::mixed_scratch_and_non_scratch_targets_escalate ... ok [INFO] [stdout] test supervisor::auto_approve::tests::nonexistent_entry_matches_syntactically ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_does_not_strip_non_assignment_equals ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_leading_prefix_does_not_rescue_a_danger_command ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_leading_assignment ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_leaves_unrecognised_suffixes_intact ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_does_not_rescue_a_danger_command ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_leading_env_wrapper ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_leading_nohup_wrapper ... ok [INFO] [stdout] test supervisor::auto_approve::tests::mutating_verbs_into_protected_set_are_violations ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_multiple_leading_assignments_and_trailing_probe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_trailing_discard_redirect ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_trailing_exit_code_probe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::numbered_list_without_prompt_markers_is_not_live ... ok [INFO] [stdout] test supervisor::auto_approve::tests::normalize_strips_env_options ... ok [INFO] [stdout] test supervisor::auto_approve::tests::operator_memory_write_prompt_is_violation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::prefix_match_accepts_flag_variations ... ok [INFO] [stdout] test supervisor::auto_approve::tests::prefix_match_requires_word_boundary ... ok [INFO] [stdout] test supervisor::auto_approve::tests::privileged_and_device_commands_escalate ... ok [INFO] [stdout] test supervisor::auto_approve::tests::out_of_worktree_path_is_not_classified_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::process_killing_commands_escalate ... ok [INFO] [stdout] test supervisor::auto_approve::tests::read_mostly_verb_classifies_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::read_mostly_verbs_are_whitelisted ... ok [INFO] [stdout] test supervisor::auto_approve::tests::out_of_worktree_script_does_not_match ... ok [INFO] [stdout] test supervisor::auto_approve::tests::rebase_and_branch_delete_and_worktree_remove_escalate ... ok [INFO] [stdout] test supervisor::auto_approve::tests::scratch_private_tmp_paw_delete_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::reads_of_operator_config_are_not_violation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::repo_root_control_dirs_protected_for_embedded_worktrees ... ok [INFO] [stdout] test supervisor::auto_approve::tests::scratch_tmp_paw_delete_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::scratch_repo_local_delete_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::scratch_var_resolves_to_scratch_is_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::shell_append_to_configured_settings_is_violation ... ok [INFO] [stdout] test supervisor::auto_approve::tests::ordinary_git_subcommands_are_unaffected ... ok [INFO] [stdout] test supervisor::auto_approve::tests::reading_git_config_is_not_matched ... ok [INFO] [stdout] test supervisor::auto_approve::tests::shell_prompt_is_not_a_worktree_file_op ... ok [INFO] [stdout] test supervisor::auto_approve::tests::shell_prompt_yields_no_file_path ... ok [INFO] [stdout] test supervisor::auto_approve::tests::two_option_selects_yes ... ok [INFO] [stdout] test supervisor::auto_approve::tests::unresolved_var_in_rm_escalates_fail_safe ... ok [INFO] [stdout] test supervisor::auto_approve::tests::three_option_allowlisted_takes_broad_grant ... ok [INFO] [stdout] test supervisor::auto_approve::tests::three_option_unclassified_command_gets_no_durable_grant ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::already_current_is_skipped ... ok [INFO] [stdout] test supervisor::auto_approve::tests::unknown_command_is_not_safe ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::dirty_working_tree_is_skipped ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::every_gate_passing_permits_refresh ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::idle_but_dirty_is_still_skipped_as_dirty ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::mid_response_pane_is_skipped ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::notification_text_carries_the_tag_and_names_the_default_branch ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::predicted_conflict_is_skipped ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::verified_awaiting_merge_is_excluded_even_if_otherwise_eligible ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::unclaimed_pane_is_skipped ... ok [INFO] [stdout] test supervisor::branch_refresh::tests::skip_reason_labels_are_distinct ... ok [INFO] [stdout] test supervisor::claim::tests::a_held_claim_is_refused_without_blocking_and_only_for_that_pane ... ok [INFO] [stdout] test supervisor::claim::tests::a_claim_older_than_the_ttl_is_stolen_but_a_fresh_one_is_not ... ok [INFO] [stdout] test supervisor::claim::tests::claim_path_is_the_shared_per_pane_formula ... ok [INFO] [stdout] test supervisor::claim::tests::acquire_creates_the_claim_file_under_a_gitignored_tmp_dir ... ok [INFO] [stdout] test supervisor::claim::tests::a_panic_mid_send_still_releases_the_claim ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_multiple_stacks_compose_as_dedup_union ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::curated_stack_presets_obey_the_exclusion_rubric ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_orders_preset_before_extra ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_rust_stack_adds_cargo_prefixes ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_deduplicates_extra_against_preset ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_node_stack_has_no_cargo ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_universal_only_when_no_stacks_or_extra ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::effective_patterns_unknown_stack_contributes_nothing ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::preset_constant_contains_only_universal_patterns ... ok [INFO] [stdout] test supervisor::dev_allowlist::tests::rust_stack_preset_carries_curated_cargo_verbs ... ok [INFO] [stdout] test supervisor::drive::tests::a_pending_correction_is_not_dispatched_once_the_wave_completes ... ok [INFO] [stdout] test supervisor::drive::tests::a_pane_claimed_by_another_approver_receives_no_keystroke ... ok [INFO] [stdout] test supervisor::drive::tests::a_persistently_stale_line_is_reported_wedged_and_escalated ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_does_not_notify_on_a_failed_rebase ... ok [INFO] [stdout] test supervisor::drive::tests::auto_loopback_reengages_the_gate_failed_worker_pane ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_disabled_ignores_an_observed_merge ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_happy_path_rebases_and_notifies ... ok [INFO] [stdout] test specs::tests::scan_specs_valid_config_stub_backend ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_never_fires_without_an_observed_merge ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_skips_a_branch_already_current ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_notification_is_tagged_feedback_not_advanced_main ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_skips_a_dirty_worker ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_skips_a_mid_response_pane ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_skips_a_predicted_conflict ... ok [INFO] [stdout] test supervisor::drive::tests::cadence_constants_match_spec ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_skips_a_verified_awaiting_merge_branch ... ok [INFO] [stdout] test supervisor::auto_approve::tests::dotdot_escape_attempt_is_rejected ... ok [INFO] [stdout] test supervisor::auto_approve::tests::three_option_safe_classified_takes_durable_grant ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_danger_git_push ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_protected_path_write_as_danger ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_safe_cargo_test ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_safe_command_wrapped_in_a_discard_redirect ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_safe_command_wrapped_in_an_exit_code_probe ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_unknown_when_no_rule_matches ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_managed_script_invocation_as_safe ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_worktree_dev_test_shape_safe_for_agent_pane ... ok [INFO] [stdout] test supervisor::drive::tests::committed_alone_is_not_completion ... ok [INFO] [stdout] test supervisor::drive::tests::classifies_git_dir_write_as_danger ... ok [INFO] [stdout] test supervisor::drive::tests::completion_when_all_agents_checked ... ok [INFO] [stdout] test supervisor::drive::tests::completed_wave_resolves_terminal_state_not_working ... ok [INFO] [stdout] test supervisor::drive::tests::correction_state_counts_repeat_failures_and_clears_on_pass ... ok [INFO] [stdout] test supervisor::drive::tests::custom_gate_vocabulary_recognises_configured_tags_only ... ok [INFO] [stdout] test supervisor::drive::tests::dedup_shape_distinguishes_commands_sharing_boilerplate ... ok [INFO] [stdout] test supervisor::drive::tests::correction_cycles_are_bounded_by_max_cycles ... ok [INFO] [stdout] test supervisor::drive::tests::dedup_emits_once_per_window_for_repeated_prompt ... ok [INFO] [stdout] test supervisor::drive::tests::disabled_loopback_sends_no_reengagement_keystrokes ... ok [INFO] [stdout] test supervisor::drive::tests::escalation_question_framing_follows_the_verdict ... ok [INFO] [stdout] test supervisor::drive::tests::early_flag_fires_once_and_correction_continues ... ok [INFO] [stdout] test supervisor::drive::tests::empty_box_and_live_prompt_are_not_buffered_input ... ok [INFO] [stdout] test supervisor::drive::tests::exhaustion_abandon_marks_failed_without_escalating ... ok [INFO] [stdout] test supervisor::drive::tests::exhaustion_emits_learning_when_learnings_enabled ... ok [INFO] [stdout] test supervisor::drive::tests::exhaustion_escalate_flags_the_branch ... ok [INFO] [stdout] test supervisor::drive::tests::completion_on_supervisor_verdict ... ok [INFO] [stdout] test supervisor::auto_approve::tests::git_info_exclude_append_escalates_as_danger ... ok [INFO] [stdout] test supervisor::drive::tests::exhaustion_emits_no_learning_when_learnings_disabled ... ok [INFO] [stdout] test supervisor::drive::tests::finished_worker_is_decided_by_the_complete_status_set ... ok [INFO] [stdout] test supervisor::drive::tests::exit_probe_does_not_rescue_a_danger_command ... ok [INFO] [stdout] test supervisor::drive::tests::finished_worker_is_never_nudged_while_a_working_peer_still_is ... ok [INFO] [stdout] test supervisor::drive::tests::instance_guard_true_lets_a_live_session_keep_driving ... ok [INFO] [stdout] test supervisor::drive::tests::idle_pane_with_buffered_input_gets_a_follow_up_enter ... ok [INFO] [stdout] test supervisor::drive::tests::gate_failure_recognises_only_tagged_supervisor_feedback ... ok [INFO] [stdout] test supervisor::drive::tests::handoff_is_suppressed_while_the_orchestrator_is_mid_response ... ok [INFO] [stdout] test supervisor::drive::tests::loop_approves_supervisor_pane_safe_prompt ... ok [INFO] [stdout] test supervisor::drive::tests::loop_dispatches_the_durable_option_digit ... ok [INFO] [stdout] test supervisor::drive::tests::from_status_maps_each_broker_status_to_its_phase ... ok [INFO] [stdout] test supervisor::drive::tests::instance_torn_down_stops_the_loop_before_the_next_sweep ... ok [INFO] [stdout] test supervisor::drive::tests::loop_approves_safe_prompt_then_exits_on_completion ... ok [INFO] [stdout] test supervisor::drive::tests::loop_submits_a_stranded_directive_on_an_idle_pane ... ok [INFO] [stdout] test supervisor::drive::tests::loop_escalates_danger_without_blocking_other_agent ... ok [INFO] [stdout] test supervisor::drive::tests::mid_response_pane_is_never_submitted ... ok [INFO] [stdout] test supervisor::drive::tests::no_completion_while_an_agent_still_works ... ok [INFO] [stdout] test supervisor::drive::tests::no_hand_off_is_dispatched_on_the_tick_the_wave_completes ... ok [INFO] [stdout] test supervisor::drive::tests::loop_exits_on_heartbeat_when_never_completing ... ok [INFO] [stdout] test supervisor::drive::tests::loop_leaves_supervisor_pane_untouched_without_prompt ... ok [INFO] [stdout] test supervisor::drive::tests::merge_candidate_artifact_hands_the_merge_decision_to_the_orchestrator ... ok [INFO] [stdout] test supervisor::drive::tests::nudge_sends_text_then_a_separate_enter ... ok [INFO] [stdout] test supervisor::drive::tests::non_merge_candidate_artifact_hands_over_nothing ... ok [INFO] [stdout] test supervisor::drive::tests::no_orchestration_nudge_within_a_single_approval_tick ... ok [INFO] [stdout] test supervisor::drive::tests::nudge_waits_the_settle_delay_before_enter ... ok [INFO] [stdout] test supervisor::drive::tests::orchestrator_presence_is_read_from_the_pane_layout ... ok [INFO] [stdout] test supervisor::drive::tests::non_safe_prompt_is_never_granted_durably ... ok [INFO] [stdout] test supervisor::drive::tests::orchestration_nudge_fires_on_the_longer_cadence ... ok [INFO] [stdout] test supervisor::drive::tests::orchestration_nudge_is_suppressed_while_the_orchestrator_is_mid_response ... ok [INFO] [stdout] test supervisor::drive::tests::parses_list_panes_output ... ok [INFO] [stdout] test supervisor::drive::tests::prompt_cleared_between_decision_and_send_sends_nothing ... ok [INFO] [stdout] test supervisor::drive::tests::passing_the_gate_exits_the_correction_cycle ... ok [INFO] [stdout] test supervisor::drive::tests::reengagement_defers_when_the_pane_is_no_longer_idle ... ok [INFO] [stdout] test supervisor::drive::tests::reengagement_text_is_never_interpreted_as_a_tmux_key_name ... ok [INFO] [stdout] test supervisor::drive::tests::resolves_coding_agent_by_path_not_index ... ok [INFO] [stdout] test supervisor::drive::tests::resolves_pane_zero_and_one_to_supervisor_and_dashboard ... ok [INFO] [stdout] test supervisor::drive::tests::safe_prompt_without_a_durable_option_uses_option_one ... ok [INFO] [stdout] test supervisor::drive::tests::summary_reports_outcome_states_and_escalations ... ok [INFO] [stdout] test supervisor::drive::tests::scrollback_prompt_is_not_acted_on ... ok [INFO] [stdout] test supervisor::drive::tests::sweep_captures_each_pane_exactly_once ... ok [INFO] [stdout] test supervisor::drive::tests::stale_input_line_triggers_clear_retype_enter_recovery ... ok [INFO] [stdout] test supervisor::drive::tests::safe_prompt_with_a_durable_option_takes_it ... ok [INFO] [stdout] test supervisor::drive::tests::sweeps_pane_with_no_broker_record ... ok [INFO] [stdout] test supervisor::drive::tests::the_loops_own_escalation_question_is_never_handed_back ... ok [INFO] [stdout] test supervisor::drive::tests::phase_predicates_agree_with_the_status_arrays ... ok [INFO] [stdout] test supervisor::drive::tests::unknown_prompt_without_an_orchestrator_records_only_the_broker_escalation ... ok [INFO] [stdout] test supervisor::drive::tests::unknown_prompt_is_handed_to_the_orchestrator_and_recorded_on_the_broker ... ok [INFO] [stdout] test supervisor::drive::tests::worker_awaiting_correction_is_nudged_even_when_committed_or_blocked ... ok [INFO] [stdout] test supervisor::layout::tests::agent_rows_evenly_split_the_lower_half ... ok [INFO] [stdout] test supervisor::layout::tests::layout_rejects_far_above_cap ... ok [INFO] [stdout] test supervisor::layout::tests::supervisor_layout_covers_each_agent_count_bucket ... ok [INFO] [stdout] test supervisor::layout::tests::top_row_stays_half_the_session_as_agents_grow ... ok [INFO] [stdout] test supervisor::drive::tests::worker_question_is_handed_to_the_orchestrator_pane ... ok [INFO] [stdout] test supervisor::layout::tests::layout_rejects_26_agents ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::aggregate_missing_file_is_empty ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::aggregate_skips_malformed_lines ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::append_to_existing_file_adds_a_line ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::append_creates_file_and_writes_one_line ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_returns_none_for_a_non_command_slice ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_returns_none_for_marker_only ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_file_op_path ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::aggregate_groups_counts_and_sorts_descending ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_shell_command_from_prompt ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::first_seen_toggles_correctly ... ok [INFO] [stdout] test supervisor::drive::tests::worktree_dev_test_shape_stays_unknown_without_worktree_root ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_returns_none_when_no_prompt_slice_is_present ... ok [INFO] [stdout] test supervisor::layout::tests::layout_for_matches_supervisor_layout_across_the_range ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::learning_record_has_permission_pattern_category_and_body ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::learning_record_omits_cli_when_absent ... ok [INFO] [stdout] test supervisor::claim::tests::concurrent_acquirers_on_one_pane_yield_exactly_one_winner ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::log_path_follows_session_template ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::record_returns_true_on_success ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::suggest_target_classifies_each_signal ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::record_swallows_errors_when_parent_is_a_file ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::recorder_disabled_writes_nothing_and_emits_no_learning ... ok [INFO] [stdout] test supervisor::permission_prompt::tests::classify_capture_covers_each_command_class ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::recorder_first_sighting_emits_one_learning_repeat_emits_none ... ok [INFO] [stdout] test supervisor::poll::tests::disabled_config_returns_empty ... ok [INFO] [stdout] test supervisor::permission_prompt::tests::detect_permission_prompt_returns_none_for_nonexistent_session ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::recorder_logs_but_omits_learning_when_learnings_disabled ... ok [INFO] [stdout] test supervisor::permission_prompt::tests::claude_y_n_requires_approval_marker_classifies_each_class ... ok [INFO] [stdout] test supervisor::poll::tests::git_push_escalates_despite_whitelist ... ok [INFO] [stdout] test supervisor::poll::tests::disabled_worktree_writes_forwards_file_prompt ... ok [INFO] [stdout] test supervisor::manual_approvals::tests::extract_takes_the_prompt_slice_not_adjacent_pane_text ... ok [INFO] [stdout] test supervisor::permission_prompt::tests::capture_pane_returns_none_for_nonexistent_session ... ok [INFO] [stdout] test supervisor::poll::tests::in_worktree_file_prompt_is_auto_approved ... ok [INFO] [stdout] test supervisor::poll::tests::non_live_prompt_yields_no_prompt ... ok [INFO] [stdout] test supervisor::poll::tests::in_worktree_write_still_auto_approves_with_protected_set ... ok [INFO] [stdout] test supervisor::poll::tests::managed_script_invocation_is_auto_approved ... ok [INFO] [stdout] test supervisor::poll::tests::poll_tick_threads_the_configured_profile_to_the_inspector ... ok [INFO] [stdout] test supervisor::poll::tests::out_of_worktree_file_prompt_is_forwarded ... ok [INFO] [stdout] test supervisor::poll::tests::protected_write_overrides_whitelisted_verb ... ok [INFO] [stdout] test supervisor::poll::tests::fresh_agent_is_skipped ... ok [INFO] [stdout] test supervisor::poll::tests::operator_memory_write_prompt_forwards_never_approves ... ok [INFO] [stdout] test supervisor::poll::tests::scratch_rm_is_auto_approved ... ok [INFO] [stdout] test supervisor::poll::tests::stalled_from_status_skips_terminal ... ok [INFO] [stdout] test supervisor::poll::tests::no_marker_means_no_prompt_outcome ... ok [INFO] [stdout] test supervisor::poll::tests::stalled_from_status_filters_by_threshold ... ok [INFO] [stdout] test supervisor::poll::tests::stalled_unsafe_agent_is_forwarded_not_approved ... ok [INFO] [stdout] test supervisor::poll::tests::stalled_safe_agent_is_approved ... ok [INFO] [stdout] test supervisor::poll::tests::tick_from_status_dispatches_safe_prompt ... ok [INFO] [stdout] test supervisor::poll::tests::worktree_git_commit_is_auto_approved ... ok [INFO] [stdout] test supervisor::poll::tests::worktree_dev_test_shape_is_auto_approved_only_with_root ... ok [INFO] [stdout] test supervisor::poll::tests::git_dir_write_escalates_despite_whitelist ... ok [INFO] [stdout] test supervisor::stall::tests::fresh_working_agent_is_not_stalled ... ok [INFO] [stdout] test supervisor::stall::tests::unknown_status_label_treated_as_active ... ok [INFO] [stdout] test tmux::command::tests::tmux_command_execute_maps_failure_to_trimmed_stderr_error ... ok [INFO] [stdout] test tmux::command::tests::tmux_command_execute_sends_tmux_argv_and_returns_stdout ... ok [INFO] [stdout] test tmux::command::tests::tmux_session_execute_drives_each_command_through_the_runner_verbatim ... ok [INFO] [stdout] test supervisor::stall::tests::terminal_status_done_is_skipped_even_if_stale ... ok [INFO] [stdout] test supervisor::stall::tests::terminal_statuses_are_all_skipped ... ok [INFO] [stdout] test tmux::tests::active_and_inactive_border_styles_applied ... ok [INFO] [stdout] test tmux::tests::add_agent_new_row_splits_vertically_from_previous_row_first_pane ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_five_agents_equal_fifths ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_minimum_is_one_fifth ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_skips_single_pane_rows ... ok [INFO] [stdout] test tmux::tests::add_agent_reapplies_row_height_resize_pass ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_never_touch_top_row ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_zero_window_is_empty ... ok [INFO] [stdout] test tmux::tests::attach_sends_attach_session_and_names_the_session_on_failure ... ok [INFO] [stdout] test tmux::tests::awkward_project_names_yield_tmux_safe_session_names_and_pane_targets ... ok [INFO] [stdout] test tmux::tests::agent_row_widths_three_agents_equal_thirds ... ok [INFO] [stdout] test tmux::tests::bare_start_with_broker_places_dashboard_at_pane_0 ... ok [INFO] [stdout] test tmux::tests::basic_builder_sets_default_size_after_new_session ... ok [INFO] [stdout] test supervisor::stall::tests::stale_working_agent_is_stalled ... ok [INFO] [stdout] test tmux::tests::add_agent_same_row_splits_horizontally_from_previous_pane ... ok [INFO] [stdout] test tmux::tests::building_with_no_panes_is_an_error ... ok [INFO] [stdout] test tmux::tests::classify_distinguishes_ready_bareshell_indeterminate ... ok [INFO] [stdout] test tmux::tests::classify_liveness_maps_each_branch ... ok [INFO] [stdout] test tmux::tests::classify_recognises_bypass_permissions_dialog_and_selects_by_text ... ok [INFO] [stdout] test tmux::tests::classify_recognises_trust_folder_dialog ... ok [INFO] [stdout] test tmux::tests::classify_returns_dialog_none_when_affirmative_option_is_not_found ... ok [INFO] [stdout] test tmux::tests::cmd_supervisor_inject_argv_has_single_enter_per_pane ... ok [INFO] [stdout] test tmux::tests::dashboard_layout_appears_in_dry_run_output ... ok [INFO] [stdout] test tmux::tests::dashboard_pane_has_title_dashboard ... ok [INFO] [stdout] test tmux::tests::broker_disabled_produces_no_dashboard_pane ... ok [INFO] [stdout] test tmux::tests::builder_emits_all_five_affordances_scoped_to_session_by_default ... ok [INFO] [stdout] test tmux::tests::border_format_is_index_then_role_with_padding ... ok [INFO] [stdout] test tmux::tests::detach_client_targets_the_session_and_treats_no_clients_as_a_no_op ... ok [INFO] [stdout] test tmux::tests::each_pane_gets_a_stable_paw_role_option ... ok [INFO] [stdout] test tmux::tests::each_pane_is_titled_with_its_branch ... ok [INFO] [stdout] test tmux::tests::each_pane_receives_bare_cli_command_and_split_carries_worktree ... ok [INFO] [stdout] test tmux::tests::each_pane_targets_a_distinct_pane_index ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_end_to_end_leaves_a_dirty_worktree_provably_untouched ... ok [INFO] [stdout] test tmux::tests::every_new_session_passes_c ... ok [INFO] [stdout] test tmux::tests::every_new_session_passes_x_and_y ... ok [INFO] [stdout] test tmux::tests::gate_answers_dialog_and_becomes_ready_without_relaunch ... ok [INFO] [stdout] test tmux::tests::gate_becomes_ready_after_a_relaunch ... ok [INFO] [stdout] test tmux::tests::gate_does_not_relaunch_an_unrecognised_cli ... ok [INFO] [stdout] test tmux::tests::gate_falls_back_for_an_unrecognised_dialog ... ok [INFO] [stdout] test tmux::tests::gate_pane_for_injection_uses_the_resolved_cli_profile ... ok [INFO] [stdout] test tmux::tests::gate_relaunches_a_persistent_bare_shell_then_falls_back ... ok [INFO] [stdout] test tmux::tests::gate_reports_dialog_stuck_immediately_when_digit_unresolvable ... ok [INFO] [stdout] test tmux::tests::gate_reports_dialog_stuck_when_never_answered_ready ... ok [INFO] [stdout] test tmux::tests::gate_returns_ready_without_relaunch_when_marker_present ... ok [INFO] [stdout] test supervisor::drive::tests::branch_refresh_end_to_end_rebases_a_real_worktree ... ok [INFO] [stdout] test tmux::tests::hard_command_failure_aborts ... ok [INFO] [stdout] test tmux::tests::has_live_agent_pane_false_when_list_panes_fails ... ok [INFO] [stdout] test tmux::tests::has_live_agent_pane_false_when_every_agent_pane_reverted_to_a_shell ... ok [INFO] [stdout] test tmux::tests::is_session_alive_probes_has_session_and_maps_exit_status ... ok [INFO] [stdout] test tmux::tests::has_live_agent_pane_true_when_an_agent_pane_runs_its_cli ... ok [INFO] [stdout] test tmux::tests::is_session_alive_surfaces_a_spawn_failure_as_an_error ... ok [INFO] [stdout] test tmux::tests::kill_pane_addresses_session_window_pane_and_tolerates_a_missing_pane ... ok [INFO] [stdout] test tmux::tests::kill_pane_by_id_targets_the_pane_id_and_tolerates_a_missing_pane ... ok [INFO] [stdout] test broker::server::tests::watch_registers_target_and_surfaces_worktree_in_status ... ok [INFO] [stdout] test broker::watcher::tests::watch_worktree_burst_republishes_working_once ... ok [INFO] [stdout] test tmux::tests::kill_session_targets_the_session_and_surfaces_trimmed_stderr ... ok [INFO] [stdout] test tmux::tests::list_panes_degrades_to_empty_when_the_session_or_server_is_gone ... ok [INFO] [stdout] test tmux::tests::a_session_for_an_awkward_project_name_resolves_its_pane_targets ... FAILED [INFO] [stdout] test tmux::tests::list_panes_skips_lines_without_a_space_separator ... ok [INFO] [stdout] test tmux::tests::list_panes_requests_the_id_path_format_and_parses_the_pairs ... ok [INFO] [stdout] test tmux::tests::built_session_can_be_executed_and_killed ... FAILED [INFO] [stdout] test tmux::tests::multiple_env_vars_both_appear ... ok [INFO] [stdout] test tmux::tests::new_session_passes_explicit_x_and_y ... ok [INFO] [stdout] test tmux::tests::opt_out_omits_every_affordance_and_title ... ok [INFO] [stdout] test tmux::tests::mouse_mode_enabled_by_default ... ok [INFO] [stdout] test tmux::tests::mouse_mode_can_be_disabled ... ok [INFO] [stdout] test tmux::tests::pane_border_status_is_configured ... ok [INFO] [stdout] test tmux::tests::pane_commands_are_submitted_with_enter ... ok [INFO] [stdout] test tmux::tests::detach_client_succeeds_on_attached_session ... FAILED [INFO] [stdout] test tmux::tests::pipe_pane_appears_in_dry_run_output ... ok [INFO] [stdout] test tmux::tests::pane_count_matches_input_for_five_panes ... ok [INFO] [stdout] test tmux::tests::pipe_pane_appears_after_send_keys_for_pane ... ok [INFO] [stdout] test tmux::tests::pane_count_matches_input_for_two_panes ... ok [INFO] [stdout] test tmux::tests::rebalance_is_a_no_op_for_a_single_agent ... ok [INFO] [stdout] test tmux::tests::pipe_pane_queues_correct_command ... ok [INFO] [stdout] test tmux::tests::pipe_pane_quotes_a_log_path_containing_a_space ... ok [INFO] [stdout] test tmux::tests::rebalance_is_a_no_op_when_the_window_is_gone ... ok [INFO] [stdout] test tmux::tests::reconcile_passes_when_every_agent_maps ... ok [INFO] [stdout] test tmux::tests::rebalance_queries_the_window_width_then_resizes_all_but_the_last_pane_in_a_row ... ok [INFO] [stdout] test tmux::tests::relaunch_clears_the_input_line_before_sending_the_cli_command ... ok [INFO] [stdout] test tmux::tests::detach_client_noop_when_no_clients_attached ... FAILED [INFO] [stdout] test tmux::tests::remove_retile_emits_resize_pass_for_remaining_count ... ok [INFO] [stdout] test tmux::tests::detach_client_is_noop_with_no_clients ... FAILED [INFO] [stdout] test tmux::tests::remove_retile_with_zero_remaining_is_empty ... ok [INFO] [stdout] test tmux::tests::ensure_tmux_installed_succeeds_when_present ... FAILED [INFO] [stdout] test tmux::tests::resolve_session_name_gives_up_after_too_many_collisions ... ok [INFO] [stdout] test tmux::tests::relaunch_swallows_tmux_failures_so_the_fallback_injection_proceeds ... ok [INFO] [stdout] test tmux::tests::reconcile_reports_agent_with_no_live_pane ... ok [INFO] [stdout] test tmux::tests::resolve_pane_id_matches_the_worktree_path_and_reports_none_otherwise ... ok [INFO] [stdout] test tmux::tests::reconcile_reports_only_agents_whose_worktree_has_no_live_pane ... ok [INFO] [stdout] test tmux::tests::resolve_session_name_returns_the_base_when_it_is_free ... ok [INFO] [stdout] test tmux::tests::resolve_session_name_walks_past_occupied_names ... ok [INFO] [stdout] test tmux::tests::session_creation_command_uses_session_name ... ok [INFO] [stdout] test tmux::tests::session_is_named_after_project ... ok [INFO] [stdout] test tmux::tests::resolve_session_name_appends_suffix_on_collision ... FAILED [INFO] [stdout] test tmux::tests::session_liveness_for_reports_stale_when_all_agent_panes_are_bare_shells ... ok [INFO] [stdout] test tmux::tests::session_liveness_for_reports_alive_when_an_agent_pane_is_live ... ok [INFO] [stdout] test tmux::tests::session_lifecycle_create_check_kill ... FAILED [INFO] [stdout] test tmux::tests::session_liveness_distinguishes_alive_stale_and_indeterminate ... ok [INFO] [stdout] test tmux::tests::session_name_override_replaces_default ... ok [INFO] [stdout] test tmux::tests::session_liveness_for_reports_stale_when_the_session_does_not_exist ... ok [INFO] [stdout] test tmux::tests::session_liveness_for_tolerates_the_launch_window ... ok [INFO] [stdout] test tmux::tests::session_with_dashboard_uses_main_horizontal_layout ... ok [INFO] [stdout] test tmux::tests::kill_pane_is_noop_for_missing_pane ... FAILED [INFO] [stdout] test tmux::tests::session_with_pipe_pane_differs_from_without ... ok [INFO] [stdout] test tmux::tests::session_without_pipe_pane_has_no_pipe_pane_commands ... ok [INFO] [stdout] test tmux::tests::session_without_dashboard_uses_tiled_layout ... ok [INFO] [stdout] test tmux::tests::set_environment_emits_correct_tmux_command ... ok [INFO] [stdout] test tmux::tests::set_environment_in_dry_run_output ... ok [INFO] [stdout] test tmux::tests::soft_affordance_failure_warns_and_continues ... ok [INFO] [stdout] test tmux::tests::supervisor_build_compensates_first_agent_cwd_for_swap ... ok [INFO] [stdout] test tmux::tests::supervisor_build_suppresses_startup_prompts_and_clears_input ... ok [INFO] [stdout] test tmux::tests::set_environment_appears_before_send_keys ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_10_agents_two_rows ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_25_agents_five_rows ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_26_agents_rejected_by_layout_helper ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_5_agents_single_row ... ok [INFO] [stdout] test tmux::tests::single_pane_session_uses_tiled_layout ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_11_agents_three_rows ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_7_agents_row_major_indices ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_20_agents_four_rows ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_emits_env_before_agent_send_keys ... ok [INFO] [stdout] test tmux::tests::supervisor_new_session_passes_explicit_x_and_y ... ok [INFO] [stdout] test tmux::tests::supervisor_session_opt_out_omits_affordances ... ok [INFO] [stdout] test tmux::tests::supervisor_sets_default_size_after_new_session ... ok [INFO] [stdout] test tmux::tests::supervisor_session_titles_are_roles_and_emits_affordances ... ok [INFO] [stdout] test tmux::tests::supervisor_layout_agent_splits_carry_worktree_no_cd_chain ... ok [INFO] [stdout] test tmux::tests::supervisor_splits_use_l_percent_not_p ... ok [INFO] [stdout] test tmux::tests::supervisor_submit_argv_pair_has_two_invocations ... ok [INFO] [stdout] test tmux::tests::supervisor_submit_argv_pair_preserves_prompt_with_newlines_and_quotes ... ok [INFO] [stdout] test tmux::tests::supervisor_submit_targets_same_pane_in_both_invocations ... ok [INFO] [stdout] test tmux::tests::supervisor_top_row_split_50_50 ... ok [INFO] [stdout] test worktree_provision::tests::a_command_with_no_placeholder_is_unchanged ... ok [INFO] [stdout] test worktree_provision::tests::a_failing_on_create_never_echoes_its_stdout ... ok [INFO] [stdout] test tmux::tests::supervisor_submit_first_invocation_sends_prompt_and_enter ... ok [INFO] [stdout] test tmux::tests::supervisor_submit_second_invocation_is_enter_only ... ok [INFO] [stdout] test worktree_provision::tests::a_failing_on_create_reports_its_status_and_stderr ... ok [INFO] [stdout] test worktree_provision::tests::absent_configuration_provisions_nothing ... ok [INFO] [stdout] test worktree_provision::tests::a_value_containing_equals_signs_is_kept_verbatim ... ok [INFO] [stdout] test worktree_provision::tests::allocation_fills_the_lowest_free_slot ... ok [INFO] [stdout] test worktree_provision::tests::an_absent_hook_runs_no_command ... ok [INFO] [stdout] test worktree_provision::tests::a_failing_on_remove_returns_a_warning_naming_its_status_and_stderr ... ok [INFO] [stdout] test worktree_provision::tests::block_past_the_port_space_is_rejected ... ok [INFO] [stdout] test worktree_provision::tests::a_secret_value_never_reaches_the_reported_outcome ... ok [INFO] [stdout] test worktree_provision::tests::an_unspawnable_on_remove_returns_a_warning_rather_than_failing ... ok [INFO] [stdout] test worktree_provision::tests::both_placeholders_are_substituted ... ok [INFO] [stdout] test worktree_provision::tests::empty_vars_assigns_no_ports ... ok [INFO] [stdout] test worktree_provision::tests::entries_escaping_the_repository_are_rejected ... ok [INFO] [stdout] test worktree_provision::tests::declared_files_are_copied_into_the_worktree ... ok [INFO] [stdout] test worktree_provision::tests::entries_without_a_slot_hold_no_block ... ok [INFO] [stdout] test worktree_provision::tests::empty_roster_allocates_slot_zero ... ok [INFO] [stdout] test worktree_provision::tests::env_only_configuration_records_no_slot ... ok [INFO] [stdout] test worktree_provision::tests::every_occurrence_of_a_placeholder_is_substituted ... ok [INFO] [stdout] test worktree_provision::tests::hook_output_is_merged_into_the_managed_block ... ok [INFO] [stdout] test worktree_provision::tests::later_slots_receive_stride_offset_blocks ... ok [INFO] [stdout] test worktree_provision::tests::no_assignments_and_no_existing_file_creates_nothing ... ok [INFO] [stdout] test worktree_provision::tests::no_assignments_strips_a_stale_managed_block ... ok [INFO] [stdout] test worktree_provision::tests::no_two_slots_share_a_port ... ok [INFO] [stdout] test worktree_provision::tests::managed_block_is_written_with_one_line_per_var ... ok [INFO] [stdout] test worktree_provision::tests::non_assignment_output_is_ignored ... ok [INFO] [stdout] test worktree_provision::tests::port_allocation_never_mutates_the_copied_env_file ... ok [INFO] [stdout] test worktree_provision::tests::missing_declared_file_warns_and_continues ... ok [INFO] [stdout] test worktree_provision::tests::removing_a_middle_worktree_frees_its_slot_for_reuse ... ok [INFO] [stdout] test worktree_provision::tests::regenerating_the_managed_block_is_idempotent ... ok [INFO] [stdout] test worktree_provision::tests::ports_and_hook_keys_share_one_managed_block ... ok [INFO] [stdout] test worktree_provision::tests::slot_zero_receives_the_base_block ... ok [INFO] [stdout] test worktree_provision::tests::the_worktree_id_is_the_branch_derived_slug ... ok [INFO] [stdout] test worktree_provision::tests::undersized_stride_still_yields_disjoint_blocks ... ok [INFO] [stdout] test worktree_provision::tests::the_hook_runs_in_the_worktree_with_placeholders_expanded ... ok [INFO] [stdout] test worktree_provision::tests::re_provisioning_with_a_hook_is_idempotent ... ok [INFO] [stdout] test worktree_provision::tests::the_remove_hook_runs_in_the_worktree_with_placeholders_expanded ... ok [INFO] [stdout] test worktree_provision::tests::user_content_outside_the_managed_block_is_preserved ... ok [INFO] [stdout] test broker::watcher::tests::watch_worktree_does_not_publish_when_unchanged ... ok [INFO] [stdout] test broker::watcher::tests::watch_worktree_does_not_reenter_when_ttl_zero ... ok [INFO] [stdout] test broker::watcher::tests::watch_worktree_publishes_on_change ... ok [INFO] [stdout] test broker::watcher::tests::watch_worktree_reenters_working_after_commit ... ok [INFO] [stdout] test broker::watcher::tests::run_git_status_respects_gitignore ... ok [INFO] [stdout] test tmux::tests::kill_pane_removes_pane ... FAILED [INFO] [stdout] test tmux::tests::pipe_pane_captures_into_a_log_path_containing_a_space ... FAILED [INFO] [stdout] test tmux::tests::is_session_alive_returns_false_for_nonexistent ... FAILED [INFO] [stdout] test tmux::tests::resolve_session_name_returns_base_when_no_collision ... FAILED [INFO] [stdout] test tmux::tests::session_liveness_reports_alive_then_stale_across_lifecycle ... FAILED [INFO] [stdout] test broker::watcher::tests::watch_worktree_prunes_vanished_worktree ... ok [INFO] [stdout] test tmux::tests::session_liveness_reports_stale_for_nonexistent ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- agents::tests::file_inject_readonly_returns_error stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'agents::tests::file_inject_readonly_returns_error' (1892) panicked at src/agents.rs:1088:9: [INFO] [stdout] assertion failed: result.is_err() [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90ce4 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5fb2 - core[a373ad73a504971]::panicking::panic [INFO] [stdout] 12: 0x570a4b808480 - >::call_once [INFO] [stdout] 13: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 14: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 15: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 18: 0x77384ce16dfa - [INFO] [stdout] 19: 0x77384ceaa3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- agents::tests::setup_worktree_write_failure_returns_agents_md_error stdout ---- [INFO] [stderr] error: test failed, to rerun pass `--lib` [INFO] [stdout] [INFO] [stdout] thread 'agents::tests::setup_worktree_write_failure_returns_agents_md_error' (1943) panicked at src/agents.rs:1626:9: [INFO] [stdout] should fail when worktree is read-only [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90ce4 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4b8107e5 - >::call_once [INFO] [stdout] 12: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 13: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 14: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 15: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 16: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 17: 0x77384ce16dfa - [INFO] [stdout] 18: 0x77384ceaa3d4 - clone [INFO] [stdout] 19: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- config::tests::generated_template_covers_every_documented_config_section stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'config::tests::generated_template_covers_every_documented_config_section' (2802) panicked at src/config/tests.rs:844:6: [INFO] [stdout] configuration reference should be readable: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b9e992b - >::call_once [INFO] [stdout] 13: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 14: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 15: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 16: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 17: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 18: 0x77384ce16dfa - [INFO] [stdout] 19: 0x77384ceaa3d4 - clone [INFO] [stdout] 20: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::a_session_for_an_awkward_project_name_resolves_its_pane_targets stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::a_session_for_an_awkward_project_name_resolves_its_pane_targets' (5391) panicked at src/tmux/tests.rs:3064:33: [INFO] [stdout] project 'my.app' must build a live session: Tmux: failed to run tmux: No such file or directory (os error 2) [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4b7c17d5 - git_paw[bbdc04956073ae77]::tmux::tests::a_session_for_an_awkward_project_name_resolves_its_pane_targets::{closure#0}::{closure#0} [INFO] [stdout] 12: 0x570a4b804612 - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7fc31d - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::built_session_can_be_executed_and_killed stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::built_session_can_be_executed_and_killed' (5413) panicked at src/tmux/tests.rs:1292:23: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: TmuxError("failed to run tmux: No such file or directory (os error 2)") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b8022cf - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7e779d - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::detach_client_succeeds_on_attached_session stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::detach_client_succeeds_on_attached_session' (5425) panicked at src/tmux/tests.rs:1200:14: [INFO] [stdout] create tmux test session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c50e7 - ::new [INFO] [stdout] 13: 0x570a4b80250d - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7eaadd - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::detach_client_noop_when_no_clients_attached stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::detach_client_noop_when_no_clients_attached' (5424) panicked at src/tmux/tests.rs:1200:14: [INFO] [stdout] create tmux test session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c50e7 - ::new [INFO] [stdout] 13: 0x570a4b8026ed - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7ebfdd - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::detach_client_is_noop_with_no_clients stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::detach_client_is_noop_with_no_clients' (5423) panicked at src/tmux/tests.rs:1200:14: [INFO] [stdout] create tmux test session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c50e7 - ::new [INFO] [stdout] 13: 0x570a4b801c8d - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7e1c6d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::ensure_tmux_installed_succeeds_when_present stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::ensure_tmux_installed_succeeds_when_present' (5433) panicked at src/tmux/tests.rs:32:5: [INFO] [stdout] assertion failed: ensure_tmux_installed().is_ok() [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90ce4 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5fb2 - core[a373ad73a504971]::panicking::panic [INFO] [stdout] 12: 0x570a4b80291e - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7ec05d - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::resolve_session_name_appends_suffix_on_collision stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::resolve_session_name_appends_suffix_on_collision' (5514) panicked at src/tmux/tests.rs:798:10: [INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c9873 - git_paw[bbdc04956073ae77]::tmux::tests::create_test_session [INFO] [stdout] 13: 0x570a4b802b00 - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7efc3d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::session_lifecycle_create_check_kill stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::session_lifecycle_create_check_kill' (5524) panicked at src/tmux/tests.rs:798:10: [INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c9873 - git_paw[bbdc04956073ae77]::tmux::tests::create_test_session [INFO] [stdout] 13: 0x570a4b801a89 - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7e109d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::kill_pane_is_noop_for_missing_pane stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::kill_pane_is_noop_for_missing_pane' (5476) panicked at src/tmux/tests.rs:1200:14: [INFO] [stdout] create tmux test session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c50e7 - ::new [INFO] [stdout] 13: 0x570a4b80187d - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7dff8d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::kill_pane_removes_pane stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::kill_pane_removes_pane' (5477) panicked at src/tmux/tests.rs:1200:14: [INFO] [stdout] create tmux test session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c50e7 - ::new [INFO] [stdout] 13: 0x570a4b80112a - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7dcd6d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::pipe_pane_captures_into_a_log_path_containing_a_space stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::pipe_pane_captures_into_a_log_path_containing_a_space' (5499) panicked at src/tmux/tests.rs:3131:23: [INFO] [stdout] session with pipe-pane executes: TmuxError("failed to run tmux: No such file or directory (os error 2)") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b80376f - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7f3c9d - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::is_session_alive_returns_false_for_nonexistent stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::is_session_alive_returns_false_for_nonexistent' (5472) panicked at src/tmux/tests.rs:813:73: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: TmuxError("failed to run tmux: No such file or directory (os error 2)") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b80299c - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7ee8ad - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::resolve_session_name_returns_base_when_no_collision stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::resolve_session_name_returns_base_when_no_collision' (5517) panicked at src/tmux/tests.rs:876:67: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: TmuxError("failed to run tmux: No such file or directory (os error 2)") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b802ddb - >::call_once [INFO] [stdout] 13: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 14: 0x570a4b7f267d - >::call_once [INFO] [stdout] 15: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 16: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 17: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 18: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 19: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 20: 0x77384ce16dfa - [INFO] [stdout] 21: 0x77384ceaa3d4 - clone [INFO] [stdout] 22: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::session_liveness_reports_alive_then_stale_across_lifecycle stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::session_liveness_reports_alive_then_stale_across_lifecycle' (5532) panicked at src/tmux/tests.rs:798:10: [INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" } [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5dc2 - core[a373ad73a504971]::result::unwrap_failed [INFO] [stdout] 12: 0x570a4b7c9873 - git_paw[bbdc04956073ae77]::tmux::tests::create_test_session [INFO] [stdout] 13: 0x570a4b803af9 - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7f809d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] ---- tmux::tests::session_liveness_reports_stale_for_nonexistent stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tmux::tests::session_liveness_reports_stale_for_nonexistent' (5533) panicked at src/tmux/tests.rs:854:5: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: Indeterminate [INFO] [stdout] right: Stale [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x570a4bfbbc81 - <::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt [INFO] [stdout] 1: 0x570a4bfd57ca - core[a373ad73a504971]::fmt::write [INFO] [stdout] 2: 0x570a4bfc136c - as core[a373ad73a504971]::io::write::Write>::write_fmt [INFO] [stdout] 3: 0x570a4bf90c06 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0} [INFO] [stdout] 4: 0x570a4bfb0b59 - std[617be2ca0a6fd877]::panicking::default_hook [INFO] [stdout] 5: 0x570a4bd5adb0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0} [INFO] [stdout] 6: 0x570a4bfb0e82 - std[617be2ca0a6fd877]::panicking::panic_with_hook [INFO] [stdout] 7: 0x570a4bf90cb2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0} [INFO] [stdout] 8: 0x570a4bf89239 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] 9: 0x570a4bf91fed - __rustc[ea4f61d10b84890b]::rust_begin_unwind [INFO] [stdout] 10: 0x570a4bfd5fec - core[a373ad73a504971]::panicking::panic_fmt [INFO] [stdout] 11: 0x570a4bfd5f03 - core[a373ad73a504971]::panicking::assert_failed_inner [INFO] [stdout] 12: 0x570a4bacaae6 - core[a373ad73a504971]::panicking::assert_failed:: [INFO] [stdout] 13: 0x570a4b802a18 - >::call_once [INFO] [stdout] 14: 0x570a4bd8f657 - serial_test[d9746a2fc50a9854]::serial_code_lock::local_serial_core [INFO] [stdout] 15: 0x570a4b7ef03d - >::call_once [INFO] [stdout] 16: 0x570a4bd4e1fb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>> [INFO] [stdout] 17: 0x570a4bd5b3d5 - test[aada8e7e76ba119b]::run_test::{closure#0} [INFO] [stdout] 18: 0x570a4bd54cc4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] 19: 0x570a4bd5e462 - ::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] 20: 0x570a4bfba41f - ::new::thread_start [INFO] [stdout] 21: 0x77384ce16dfa - [INFO] [stdout] 22: 0x77384ceaa3d4 - clone [INFO] [stdout] 23: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] agents::tests::file_inject_readonly_returns_error [INFO] [stdout] agents::tests::setup_worktree_write_failure_returns_agents_md_error [INFO] [stdout] config::tests::generated_template_covers_every_documented_config_section [INFO] [stdout] tmux::tests::a_session_for_an_awkward_project_name_resolves_its_pane_targets [INFO] [stdout] tmux::tests::built_session_can_be_executed_and_killed [INFO] [stdout] tmux::tests::detach_client_is_noop_with_no_clients [INFO] [stdout] tmux::tests::detach_client_noop_when_no_clients_attached [INFO] [stdout] tmux::tests::detach_client_succeeds_on_attached_session [INFO] [stdout] tmux::tests::ensure_tmux_installed_succeeds_when_present [INFO] [stdout] tmux::tests::is_session_alive_returns_false_for_nonexistent [INFO] [stdout] tmux::tests::kill_pane_is_noop_for_missing_pane [INFO] [stdout] tmux::tests::kill_pane_removes_pane [INFO] [stdout] tmux::tests::pipe_pane_captures_into_a_log_path_containing_a_space [INFO] [stdout] tmux::tests::resolve_session_name_appends_suffix_on_collision [INFO] [stdout] tmux::tests::resolve_session_name_returns_base_when_no_collision [INFO] [stdout] tmux::tests::session_lifecycle_create_check_kill [INFO] [stdout] tmux::tests::session_liveness_reports_alive_then_stale_across_lifecycle [INFO] [stdout] tmux::tests::session_liveness_reports_stale_for_nonexistent [INFO] [stdout] [INFO] [stdout] test result: FAILED. 2123 passed; 18 failed; 0 ignored; 0 measured; 0 filtered out; finished in 19.35s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6", kill_on_drop: false }` [INFO] [stdout] 892f1d007a00990245183d895e0a205c25387573d5fc2f0d36233e996fdc8da6