[INFO] cloning repository https://github.com/nsrosenqvist/fleet
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/nsrosenqvist/fleet" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnsrosenqvist%2Ffleet", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnsrosenqvist%2Ffleet'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7e18b163a190bc19c92354e8e663ed9deb070e71
[INFO] testing nsrosenqvist/fleet against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fnsrosenqvist%2Ffleet" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/nsrosenqvist/fleet
[INFO] finished tweaking git repo https://github.com/nsrosenqvist/fleet
[INFO] tweaked toml for git repo https://github.com/nsrosenqvist/fleet written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/nsrosenqvist/fleet on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/nsrosenqvist/fleet already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded downcast v0.11.0
[INFO] [stderr]   Downloaded ctrlc v3.5.2
[INFO] [stderr]   Downloaded mockall v0.13.1
[INFO] [stderr]   Downloaded mockall_derive v0.13.1
[INFO] [stderr]   Downloaded fragile v2.1.0
[INFO] [stderr]   Downloaded linux-keyutils v0.2.5
[INFO] [stderr]   Downloaded dbus-secret-service v4.1.0
[INFO] [stderr]   Downloaded ansi-to-tui v8.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9
[INFO] running `Command { std: "docker" "start" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", 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" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", 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" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling libdbus-sys v0.2.7
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling compact_str v0.9.0
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde_yml v0.0.12
[INFO] [stderr]    Compiling libyml v0.0.5
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling nom v8.0.0
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]    Compiling simdutf8 v0.1.5
[INFO] [stderr]    Compiling chunked_transfer v1.5.0
[INFO] [stderr]    Compiling ascii v1.1.0
[INFO] [stderr]    Compiling tiny_http v0.12.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling dbus v0.9.11
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling linux-keyutils v0.2.5
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling uuid v1.23.1
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling ctrlc v3.5.2
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling dbus-secret-service v4.1.0
[INFO] [stderr]    Compiling secrecy v0.8.0
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling keyring v3.6.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ansi-to-tui v8.0.0
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling fleet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.95s
[INFO] running `Command { std: "docker" "inspect" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", 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" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling mockall_derive v0.13.1
[INFO] [stderr]    Compiling downcast v0.11.0
[INFO] [stderr]    Compiling fragile v2.1.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling mockall v0.13.1
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling fleet v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 37.71s
[INFO] running `Command { std: "docker" "inspect" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", 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" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.37s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/fleet-4a0571843e28e05e)
[INFO] [stdout] 
[INFO] [stdout] running 1370 tests
[INFO] [stdout] test agent::cost::tests::claude_code_falls_back_to_total_cost_when_usd_variant_absent ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_json_output_mode ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_no_dollar_sign_still_parses ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_session_cost_legacy_format ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_stderr_overrides_earlier_stdout ... ok
[INFO] [stdout] test agent::cost::tests::aider_session_cost ... ok
[INFO] [stdout] test agent::cost::tests::read_decimal_handles_integer ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_modern_total_cost_usd ... ok
[INFO] [stdout] test agent::cost::tests::read_decimal_handles_leading_dot ... ok
[INFO] [stdout] test agent::cost::tests::read_decimal_returns_none_for_non_numeric_input ... ok
[INFO] [stdout] test agent::cost::tests::read_decimal_stops_at_second_dot ... ok
[INFO] [stdout] test agent::registry::tests::get_returns_none_for_unknown_name ... ok
[INFO] [stdout] test agent::registry::tests::iter_yields_entries_in_name_sorted_order ... ok
[INFO] [stdout] test agent::cost::tests::parse_returns_zero_when_agent_reports_zero ... ok
[INFO] [stdout] test agent::cost::tests::returns_none_when_no_pattern_matches_in_output ... ok
[INFO] [stdout] test agent::registry::tests::missing_env_passthrough_defaults_to_empty ... ok
[INFO] [stdout] test agent::registry::tests::default_claude_code_invokes_with_dangerously_skip_permissions ... ok
[INFO] [stdout] test agent::registry::tests::default_claude_code_prepends_merge_conflict_preamble_when_flag_set ... ok
[INFO] [stdout] test agent::registry::tests::default_claude_code_writes_credentials_from_token_env ... ok
[INFO] [stdout] test agent::cost::tests::claude_code_picks_last_match_when_multiple_present ... ok
[INFO] [stdout] test autonomous::tests::clear_pending_claim_releases_ticket_for_immediate_retry ... ok
[INFO] [stdout] test agent::registry::tests::default_registry_includes_claude_code ... ok
[INFO] [stdout] test agent::registry::tests::default_registry_is_not_empty ... ok
[INFO] [stdout] test agent::registry::tests::deserialises_a_full_registry_from_yaml ... ok
[INFO] [stdout] test agent::registry::tests::with_overrides_replaces_matching_names_and_keeps_others ... ok
[INFO] [stdout] test autonomous::tests::disabled_engine_is_idle_regardless_of_state ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_continue_leaves_other_items_pending_for_next_spawn ... ok
[INFO] [stdout] test agent::cost::tests::read_decimal_handles_dollar_prefix ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_continue_leaves_plan_active ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_does_not_re_fire_once_item_already_failed ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_stop_pauses_plan_when_item_fails ... ok
[INFO] [stdout] test autonomous::tests::plan_aware_scheduling_injected_ticket_runs_before_its_parent ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_clears_ticket_block_when_blocker_plan_completed ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_clears_ticket_block_when_target_already_closed ... ok
[INFO] [stdout] test autonomous::tests::plan_aware_scheduling_block_then_clear_end_to_end ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_drops_deps_blocked_tickets ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_freeform_edges_always_block ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_skips_non_active_plans ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_pulls_plan_items_to_the_front_in_order ... ok
[INFO] [stdout] test agent::cost::tests::returns_none_for_unknown_agent ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_retry_once_falls_back_to_stop_on_second_failure ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_skips_non_pending_items ... ok
[INFO] [stdout] test autonomous::tests::failure_policy_retry_once_re_marks_item_pending_first_time ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_suppresses_tickets_with_failed_plan_items ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_with_no_plans_preserves_open_order ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_completes_item_when_session_completed ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_suppresses_completed_items_to_prevent_respawn ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_ignores_sessions_with_no_bound_ticket ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_uses_oldest_plan_first_across_multiple ... ok
[INFO] [stdout] test autonomous::tests::reconcile_ignores_dead_sessions_older_than_plan_updated_at_ms ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_promotes_pending_to_in_progress_when_session_running ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_marks_failed_for_failed_or_crashed_sessions ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_is_idempotent_when_state_already_matches ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_uses_newest_session_when_multiple_bind_same_ticket ... ok
[INFO] [stdout] test autonomous::tests::step_first_matching_rule_wins_for_multi_labeled_issue ... ok
[INFO] [stdout] test autonomous::tests::step_awaiting_gate_sessions_count_against_slots ... ok
[INFO] [stdout] test autonomous::tests::step_honours_configured_max_parallel ... ok
[INFO] [stdout] test autonomous::tests::step_falls_back_to_default_workflow_when_no_rule_matches ... ok
[INFO] [stdout] test autonomous::tests::set_status_overrides_for_tui_messaging ... ok
[INFO] [stdout] test autonomous::tests::step_respects_spawn_cooldown_after_dispatch ... ok
[INFO] [stdout] test autonomous::tests::step_resumes_scanning_after_spawn_cooldown_elapses ... ok
[INFO] [stdout] test autonomous::tests::step_returns_no_unclaimed_when_every_open_issue_is_in_flight ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_suppresses_failed_items_even_in_paused_plans ... ok
[INFO] [stdout] test autonomous::tests::reconcile_one_plan_skips_sessions_in_created_state ... ok
[INFO] [stdout] test autonomous::tests::step_pending_claim_expires_after_grace_period ... ok
[INFO] [stdout] test autonomous::tests::step_picks_first_unclaimed_in_caller_supplied_order ... ok
[INFO] [stdout] test autonomous::tests::step_respects_scan_interval_between_calls ... ok
[INFO] [stdout] test autonomous::tests::step_returns_slots_exhausted_at_max_parallel ... ok
[INFO] [stdout] test autonomous::tests::step_routes_to_matching_workflow_based_on_issue_labels ... ok
[INFO] [stdout] test agent::cost::tests::aider_no_match_when_only_message_cost_printed ... ok
[INFO] [stdout] test autonomous::tests::step_runs_after_scan_interval_elapses ... ok
[INFO] [stdout] test autonomous::tests::step_skips_issues_already_claimed_by_in_flight_sessions ... ok
[INFO] [stdout] test autonomous::tests::step_surfaces_tracker_errors_with_message ... ok
[INFO] [stdout] test autonomous::tests::step_spawns_for_first_unclaimed_open_issue ... ok
[INFO] [stdout] test autonomous::tests::step_suppresses_recently_spawned_ticket_until_grace_expires ... ok
[INFO] [stdout] test autonomous::tests::ticket_is_blocked_matches_specifically_keyed_edges ... ok
[INFO] [stdout] test autonomous::tests::toggle_flips_enabled_and_resets_debounce_clocks ... ok
[INFO] [stdout] test autonomous::tests::rank_candidates_by_plan_suppresses_skipped_items ... ok
[INFO] [stdout] test autonomous::tests::step_terminal_sessions_do_not_count_against_slots ... ok
[INFO] [stdout] test autonomous::tests::step_uses_configured_workflow_name_for_spawn_command ... ok
[INFO] [stdout] test bridge::tests::constant_time_eq_distinguishes_lengths_and_content ... ok
[INFO] [stdout] test bridge::tests::mint_token_returns_64_hex_chars ... ok
[INFO] [stdout] test autonomous::tests::step_uses_default_workflow_when_issue_has_no_labels ... ok
[INFO] [stdout] test autonomous::tests::step_terminal_sessions_do_not_block_their_issues_from_respawning ... ok
[INFO] [stdout] test bridge::tests::bridge_url_for_container_uses_host_containers_internal ... ok
[INFO] [stdout] test bridge::tests::pr_route_returns_404_when_no_code_host_configured ... ok
[INFO] [stdout] test bridge::tests::split_path_query_handles_no_query ... ok
[INFO] [stdout] test bridge::tests::pr_route_400_when_neither_bound_pr_nor_query_number ... ok
[INFO] [stdout] test bridge::tests::read_with_id_query_overrides_bound_ticket ... ok
[INFO] [stdout] test bridge::tests::query_value_finds_key_or_none ... ok
[INFO] [stdout] test cli::autonomous::tests::render_outcome_idle ... ok
[INFO] [stdout] test cli::autonomous::tests::render_outcome_spawn_shows_workflow_and_issue ... ok
[INFO] [stdout] test cli::autonomous::tests::render_outcome_wait_no_issues ... ok
[INFO] [stdout] test cli::autonomous::tests::render_outcome_wait_slots_exhausted ... ok
[INFO] [stdout] test cli::autonomous::tests::render_outcome_wait_tracker_error_carries_message ... ok
[INFO] [stdout] test cli::autonomous::tests::render_reason_covers_every_variant ... ok
[INFO] [stdout] test cli::autonomous::tests::run_rejects_both_flags ... ok
[INFO] [stdout] test bridge::tests::write_against_session_without_bound_ticket_returns_400 ... ok
[INFO] [stdout] test cli::autonomous::tests::run_rejects_neither_flag ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_does_not_spawn_when_engine_disabled ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_does_not_spawn_when_slots_exhausted ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_drops_issues_missing_any_required_filter_label ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_filters_to_open_issues_only ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_promotes_spawn_failure_to_tracker_error_outcome ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_spawns_when_engine_says_spawn ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_surfaces_tracker_error_as_wait_outcome ... ok
[INFO] [stdout] test cli::autonomous::tests::tick_with_filter_set_and_no_matching_issues_pauses_no_unclaimed ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_bails_and_does_not_record_edge_when_comment_post_fails ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_bails_and_does_not_record_edge_when_link_blocks_fails ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_calls_link_blocks_for_ticket_edges ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_posts_a_comment_on_both_tickets_for_ticket_edge ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_posts_only_blocked_side_comment_for_freeform_edge ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_records_edge_when_no_tracker_is_configured ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_refuses_cycle_creating_edges_and_skips_comments ... ok
[INFO] [stdout] test cli::deps::tests::build_edge_refuses_both_flags_passed ... ok
[INFO] [stdout] test cli::deps::tests::build_edge_refuses_empty_blocked_id ... ok
[INFO] [stdout] test cli::deps::tests::build_edge_refuses_neither_flag_passed ... ok
[INFO] [stdout] test cli::deps::tests::add_dep_edge_skips_comments_and_link_blocks_on_idempotent_re_add ... ok
[INFO] [stdout] test cli::deps::tests::build_edge_with_blocked_on_tag_creates_freeform_edge_with_prefix ... ok
[INFO] [stdout] test cli::deps::tests::build_edge_with_blocked_on_creates_ticket_edge ... ok
[INFO] [stdout] test cli::deps::tests::render_add_outcome_already_present_says_left_in_place ... ok
[INFO] [stdout] test cli::deps::tests::render_add_outcome_calls_out_missing_tracker ... ok
[INFO] [stdout] test cli::deps::tests::render_add_outcome_mentions_comments_and_tracker_link_for_ticket_edges ... ok
[INFO] [stdout] test cli::deps::tests::render_add_outcome_omits_tracker_link_for_freeform_edges ... ok
[INFO] [stdout] test cli::deps::tests::render_list_pluralisation_matches_count ... ok
[INFO] [stdout] test cli::deps::tests::render_list_prints_edges_with_kind_marker ... ok
[INFO] [stdout] test cli::deps::tests::render_list_says_so_on_empty_doc ... ok
[INFO] [stdout] test cli::deps::tests::resolve_blocked_on_prefixes_freeform_tag ... ok
[INFO] [stdout] test cli::deps::tests::resolve_blocked_on_returns_ticket_id_unchanged ... ok
[INFO] [stdout] test cli::init::tests::bootstrap_section_devcontainer_cli_command_is_os_agnostic ... ok
[INFO] [stdout] test cli::init::tests::bootstrap_section_each_hint_carries_tool_command_and_note ... ok
[INFO] [stdout] test cli::init::tests::bootstrap_section_is_empty_when_everything_present ... ok
[INFO] [stdout] test cli::init::tests::bootstrap_section_linux_emits_apt_dnf_commands ... ok
[INFO] [stdout] test cli::init::tests::bootstrap_section_macos_emits_brew_commands ... ok
[INFO] [stdout] test cli::init::tests::default_config_yaml_is_loadable_yaml ... ok
[INFO] [stdout] test cli::init::tests::default_devcontainer_json_is_loadable_json ... ok
[INFO] [stdout] test bridge::tests::bridge_rejects_wrong_bearer_token ... ok
[INFO] [stdout] test cli::init::tests::default_implementer_prompt_documents_the_outcome_contract ... ok
[INFO] [stdout] test cli::init::tests::default_devcontainer_dockerfile_installs_claude_code_on_path ... ok
[INFO] [stdout] test cli::init::tests::default_prompts_are_nonempty_markdown ... ok
[INFO] [stdout] test bridge::tests::pr_read_route_with_explicit_number_overrides_bound_pr ... ok
[INFO] [stdout] test cli::init::tests::default_reviewer_prompt_documents_the_outputs_contract ... ok
[INFO] [stdout] test cli::init::tests::default_standard_workflow_wires_the_when_outputs_fork ... ok
[INFO] [stdout] test cli::init::tests::default_standard_workflow_wires_the_blocked_handler_branch ... ok
[INFO] [stdout] test cli::init::tests::default_workflows_reference_claude_code_agent ... ok
[INFO] [stdout] test cli::init::tests::default_workflows_parse_and_validate ... ok
[INFO] [stdout] test bridge::tests::comment_writes_against_bound_ticket_only ... ok
[INFO] [stdout] test cli::init::tests::relativise_returns_absolute_when_not_under_root ... ok
[INFO] [stdout] test bridge::tests::read_defaults_to_bound_ticket_when_no_query_id ... ok
[INFO] [stdout] test cli::init::tests::relativise_strips_root_prefix ... ok
[INFO] [stdout] test cli::init::tests::render_summary_handles_empty_plan ... ok
[INFO] [stdout] test cli::init::tests::render_summary_lists_created_paths_with_plus_marker ... ok
[INFO] [stdout] test cli::init::tests::render_summary_lists_present_paths_with_dot_marker ... ok
[INFO] [stdout] test cli::init::tests::render_summary_offers_next_steps_only_after_creation ... ok
[INFO] [stdout] test cli::issues::tests::parse_status_recognises_three_canonical_words ... ok
[INFO] [stdout] test cli::init::tests::preserves_existing_devcontainer_content ... ok
[INFO] [stdout] test cli::issues::tests::render_empty_shows_header_and_none ... ok
[INFO] [stdout] test bridge::tests::list_route_returns_serialised_issues ... ok
[INFO] [stdout] test cli::issues::tests::parse_status_rejects_unknown_with_allowed_list_in_message ... ok
[INFO] [stdout] test bridge::tests::pr_check_logs_route_proxies_to_code_host ... ok
[INFO] [stdout] test cli::issues::tests::render_joins_multiple_labels_with_comma ... ok
[INFO] [stdout] test cli::init::tests::second_run_is_idempotent ... ok
[INFO] [stdout] test cli::issues::tests::render_omits_labels_section_when_empty ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_enables_extended_keys_so_modified_chords_reach_the_agent ... ok
[INFO] [stdout] test bridge::tests::pr_check_logs_route_400_without_check_parameter ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_ends_with_exec_attach_against_the_target_session ... ok
[INFO] [stdout] test cli::issues::tests::render_shows_one_line_per_issue_with_status_id_title ... ok
[INFO] [stdout] test cli::issues::tests::render_pads_id_column_to_widest_entry ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_explicit_resizes_to_host_terminal_dims_before_attach ... ok
[INFO] [stdout] test bridge::tests::set_status_decodes_kebab_case_payload ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_turns_status_bar_on ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_sets_styled_status_left_with_detach_hint ... ok
[INFO] [stdout] test cli::orchestrator::tests::orchestrator_env_only_carries_the_prompt_path_pointer ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_switches_window_size_to_latest_before_attach ... ok
[INFO] [stdout] test cli::orchestrator::tests::attach_script_single_quotes_pathological_session_names ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_dedupes_repeated_ids_after_first_occurrence ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_handles_leading_whitespace_for_nested_lists ... ok
[INFO] [stdout] test cli::plan::tests::item_state_label_uses_kebab_case_for_in_progress ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_recognises_open_and_completed_boxes ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_accepts_bare_ids_for_non_github_trackers ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_skips_lines_with_no_id_token ... ok
[INFO] [stdout] test cli::init::tests::preserves_existing_config_yaml ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_skips_non_alphanumeric_first_chars ... ok
[INFO] [stdout] test cli::init::tests::first_run_creates_default_workflows_and_prompts ... ok
[INFO] [stdout] test cli::init::tests::first_run_creates_full_layout ... ok
[INFO] [stdout] test cli::plan::tests::parse_tickets_csv_handles_plain_comma_separated ... ok
[INFO] [stdout] test cli::plan::tests::parse_tickets_csv_trims_whitespace_around_entries ... ok
[INFO] [stdout] test cli::plan::tests::render_list_shows_state_id_progress_and_name ... ok
[INFO] [stdout] test cli::plan::tests::render_list_with_no_plans_says_so ... ok
[INFO] [stdout] test cli::plan::tests::parse_tickets_csv_rejects_empty_entries ... ok
[INFO] [stdout] test cli::plan::tests::sync_outcome_uses_epic_ref_to_be_distinguishable_from_inject ... ok
[INFO] [stdout] test cli::plan::tests::parse_task_list_tickets_skips_prose_lines_with_hash_mentions ... ok
[INFO] [stdout] test cli::plan::tests::sync_plan_against_body_is_a_noop_when_epic_matches_plan ... ok
[INFO] [stdout] test cli::plan::tests::sync_plan_against_body_appends_new_ticket_ids_in_epic_order ... ok
[INFO] [stdout] test cli::plan::tests::render_show_includes_per_item_state_and_injected_flag ... ok
[INFO] [stdout] test cli::plan::tests::state_label_round_trip ... ok
[INFO] [stdout] test cli::runtime::tests::omits_install_hints_section_when_nothing_to_say ... ok
[INFO] [stdout] test cli::plan::tests::render_show_displays_epic_ref_when_present ... ok
[INFO] [stdout] test bridge::tests::tracker_failure_surfaces_as_500 ... ok
[INFO] [stdout] test bridge::tests::pr_checks_route_serialises_summary ... ok
[INFO] [stdout] test cli::plan::tests::sync_plan_against_body_preserves_existing_item_states ... ok
[INFO] [stdout] test cli::runtime::tests::render_backend_includes_notes_when_nonempty ... ok
[INFO] [stdout] test cli::plan::tests::render_show_omits_epic_ref_when_absent ... ok
[INFO] [stdout] test bridge::tests::unknown_route_returns_404 ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_dead_maps_to_exit_two ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_running_is_exit_zero ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_exited_zero_stays_zero ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_unknown_carries_engine_text_and_exits_two ... ok
[INFO] [stdout] test cli::runtime::tests::renders_recommendation_when_only_podman_present ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_exited_carries_exit_code ... ok
[INFO] [stdout] test cli::runtime::tests::renders_install_hints_when_present ... ok
[INFO] [stdout] test cli::runtime::tests::renders_recommended_engine_when_available ... ok
[INFO] [stdout] test cli::runtime::tests::render_inspect_created_is_exit_zero ... ok
[INFO] [stdout] test cli::runtime::tests::renders_recommended_none_with_actionable_text ... ok
[INFO] [stdout] test cli::runtime::tests::renders_tracker_and_egress_tools_section ... ok
[INFO] [stdout] test cli::scheduler_cli::tests::render_status_disabled_header_when_flag_absent ... ok
[INFO] [stdout] test cli::scheduler_cli::tests::render_status_with_no_loop_workflows_is_explicit ... ok
[INFO] [stdout] test cli::sessions::tests::aggregate_cost_returns_zero_zero_for_empty ... ok
[INFO] [stdout] test cli::scheduler_cli::tests::enable_disable_round_trip_via_flag_file ... ok
[INFO] [stdout] test cli::sessions::tests::aggregate_cost_sums_only_some_values ... ok
[INFO] [stdout] test cli::secrets::tests::service_for_replaces_underscores_with_hyphens ... ok
[INFO] [stdout] test cli::runtime::tests::renders_check_marks_for_present_backends ... ok
[INFO] [stdout] test cli::scheduler_cli::tests::render_status_lists_each_loop_workflow_with_next_due_seconds ... ok
[INFO] [stdout] test cli::sessions::tests::format_cost_some_renders_two_decimals_with_dollar ... ok
[INFO] [stdout] test cli::secrets::tests::append_secrets_entry_creates_file_when_missing ... ok
[INFO] [stdout] test cli::secrets::tests::append_secrets_entry_adds_to_existing_block ... ok
[INFO] [stdout] test cli::secrets::tests::append_secrets_entry_creates_block_when_missing ... ok
[INFO] [stdout] test cli::sessions::tests::forget_one_refuses_running_session ... ok
[INFO] [stdout] test cli::runtime::tests::renders_cross_marks_for_absent_backends_without_version ... ok
[INFO] [stdout] test cli::sessions::tests::forget_one_tolerates_unreadable_meta ... ok
[INFO] [stdout] test cli::sessions::tests::render_prune_report_says_pruned_and_skipped ... ok
[INFO] [stdout] test cli::sessions::tests::format_cost_none_renders_dash ... ok
[INFO] [stdout] test cli::sessions::tests::list_log_files_returns_empty_when_dir_missing ... ok
[INFO] [stdout] test cli::sessions::tests::list_log_files_returns_sorted_log_files_only ... ok
[INFO] [stdout] test cli::sessions::tests::render_prune_report_surfaces_failures ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_removes_worktree_and_clears_meta_pointer ... ok
[INFO] [stdout] test cli::sessions::tests::render_reap_report_says_zero_when_nothing_reaped ... ok
[INFO] [stdout] test cli::sessions::tests::render_forget_report_groups_outcomes ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_handles_missing_worktree_dir_with_prune_metadata ... ok
[INFO] [stdout] test bridge::tests::bridge_rejects_request_without_bearer_token ... ok
[INFO] [stdout] test bridge::tests::pr_read_route_defaults_to_bound_pr_when_query_omits_number ... ok
[INFO] [stdout] test cli::sessions::tests::forget_one_removes_terminal_session_dir ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_with_branch_removes_worktree_and_deletes_branch ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_refuses_running_session ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_with_branch_alone_drops_branch_when_worktree_already_gone ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_is_noop_when_session_has_no_worktree ... ok
[INFO] [stdout] test cli::sessions::tests::render_reap_report_lists_each_reaped_with_reason ... ok
[INFO] [stdout] test cli::sessions::tests::render_reap_report_surfaces_stopped_and_failed_containers ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_empty_says_so ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_renders_unreadable_rows_with_error_marker ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_shows_cost_column ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_shows_dash_for_missing_cost ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_appends_total_when_any_row_has_cost ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_shows_dash_for_missing_current_node ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_shows_each_row ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_show_lists_logs_when_present ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_show_lists_per_node_costs_and_total ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_show_says_no_logs_when_empty ... ok
[INFO] [stdout] test cli::sessions::tests::session_row_from_session_carries_state_word ... ok
[INFO] [stdout] test cli::sessions::tests::session_row_from_session_carries_cost_when_recorded ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_show_says_no_cost_when_node_costs_empty ... ok
[INFO] [stdout] test cli::sessions::tests::session_row_from_session_has_no_cost_when_node_costs_empty ... ok
[INFO] [stdout] test cli::sessions::tests::prune_one_with_branch_off_keeps_branch_intact ... ok
[INFO] [stdout] test cli::workflow::tests::render_merge_context_lists_parents_and_conflicted_files ... ok
[INFO] [stdout] test cli::workflow::tests::render_workflow_list_when_empty_says_so ... ok
[INFO] [stdout] test cli::workflow::tests::render_workflow_list_with_entries ... ok
[INFO] [stdout] test cli::sessions::tests::unblock_session_errors_when_session_has_no_bound_issue ... ok
[INFO] [stdout] test cli::workflow::tests::discover_workflows_returns_yaml_stems_sorted ... ok
[INFO] [stdout] test cli::sessions::tests::unblock_session_is_idempotent_with_zero_edges ... ok
[INFO] [stdout] test cli::sessions::tests::render_session_list_omits_total_when_no_row_has_cost ... ok
[INFO] [stdout] test cli::sessions::tests::render_unblock_outcome_notes_when_comment_posted ... ok
[INFO] [stdout] test cli::sessions::tests::render_unblock_outcome_pluralises_correctly ... ok
[INFO] [stdout] test cli::sessions::tests::select_sessions_by_state_filters_correctly ... ok
[INFO] [stdout] test cli::workflow::tests::state_word_matches_serde_renames ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_base_returns_none_when_no_deps_file ... ok
[INFO] [stdout] test cli::workflow::tests::workflow_path_joins_under_dot_fleet_workflows ... ok
[INFO] [stdout] test code_host::github::tests::create_pr_invokes_gh_pr_create_with_all_flags_and_round_trips_via_view ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_base_picks_most_recently_updated_when_multiple_completed ... ok
[INFO] [stdout] test code_host::github::tests::list_prs_filters_by_ci_status_failure ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_base_picks_completed_blocker_branch ... ok
[INFO] [stdout] test code_host::github::tests::list_prs_filters_by_label_or_match ... ok
[INFO] [stdout] test code_host::github::tests::list_prs_invokes_cd_wrapped_shell_with_state_open_by_default ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_base_returns_none_when_ticket_has_no_blockers ... ok
[INFO] [stdout] test cli::sessions::tests::unblock_session_clears_only_edges_keyed_by_the_sessions_ticket ... ok
[INFO] [stdout] test code_host::github::tests::list_prs_parses_gh_pr_list_payload ... ok
[INFO] [stdout] test code_host::github::tests::name_is_github ... ok
[INFO] [stdout] test code_host::github::tests::parse_gh_pr_checks_returns_empty_summary_on_malformed_input ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_base_ignores_failed_sessions ... ok
[INFO] [stdout] test code_host::github::tests::parse_gh_pr_create_url_recovers_number_from_trailing_segment ... ok
[INFO] [stdout] test code_host::github::tests::pr_check_logs_reports_when_check_missing ... ok
[INFO] [stdout] test code_host::github::tests::pr_check_logs_falls_back_when_no_run_id_available ... ok
[INFO] [stdout] test code_host::github::tests::pr_checks_aggregates_rollup_with_run_id_extraction ... ok
[INFO] [stdout] test code_host::github::tests::read_pr_parses_gh_pr_view_payload ... ok
[INFO] [stdout] test code_host::github::tests::pr_comment_invokes_cd_wrapped_gh_pr_comment ... ok
[INFO] [stdout] test cli::workflow::tests::resolve_chain_parents_returns_one_entry_per_blocker_most_recent_first ... ok
[INFO] [stdout] test code_host::tests::build_with_auto_and_github_remote_returns_github_host ... ok
[INFO] [stdout] test code_host::tests::build_with_explicit_github_returns_github_host ... ok
[INFO] [stdout] test code_host::tests::build_with_auto_and_unknown_remote_returns_none ... ok
[INFO] [stdout] test code_host::tests::detect_from_remote_returns_none_for_unknown_remote ... ok
[INFO] [stdout] test code_host::tests::checks_summary_serdes_round_trip ... ok
[INFO] [stdout] test code_host::tests::detect_from_remote_returns_none_when_git_fails ... ok
[INFO] [stdout] test cli::workflow::tests::pick_issue_returns_none_when_no_exact_match ... ok
[INFO] [stdout] test code_host::tests::detect_recognises_github_https_url ... ok
[INFO] [stdout] test code_host::tests::detect_from_remote_picks_github_for_recognised_https_url ... ok
[INFO] [stdout] test code_host::tests::detect_recognises_github_ssh_protocol_url ... ok
[INFO] [stdout] test code_host::tests::default_methods_bail_with_code_host_name_in_message ... ok
[INFO] [stdout] test code_host::tests::detect_recognises_github_ssh_scp_url ... ok
[INFO] [stdout] test code_host::tests::run_id_none_for_url_without_runs_segment ... ok
[INFO] [stdout] test deps::tests::add_edge_appends_when_new ... ok
[INFO] [stdout] test deps::tests::for_repo_anchors_at_fleet_deps_json ... ok
[INFO] [stdout] test code_host::github::tests::aggregate_rollup_status_picks_failure_over_pending_over_success ... ok
[INFO] [stdout] test deps::tests::nodes_in_cycle_distinguishes_cycle_members_from_attached_acyclic_tail ... ok
[INFO] [stdout] test deps::tests::freeform_reason_round_trips_through_json ... ok
[INFO] [stdout] test deps::tests::add_edge_is_idempotent_on_repeated_calls ... ok
[INFO] [stdout] test deps::tests::add_edge_distinguishes_different_blocked_on_for_same_blocked ... ok
[INFO] [stdout] test code_host::tests::detect_rejects_unknown_host ... ok
[INFO] [stdout] test code_host::tests::run_id_extracted_from_actions_details_url ... ok
[INFO] [stdout] test deps::tests::load_refuses_future_schema_versions ... ok
[INFO] [stdout] test deps::tests::load_returns_empty_doc_when_file_missing ... ok
[INFO] [stdout] test deps::tests::add_edge_preserves_existing_timestamp_on_duplicate_insert ... ok
[INFO] [stdout] test deps::tests::load_tolerates_missing_edges_array ... ok
[INFO] [stdout] test deps::tests::nodes_in_cycle_is_empty_on_an_acyclic_graph ... ok
[INFO] [stdout] test deps::tests::remove_edge_returns_false_when_no_matching_edge ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_detects_direct_back_edge ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_detects_transitive_cycle ... ok
[INFO] [stdout] test deps::tests::save_creates_parent_directories_when_missing ... ok
[INFO] [stdout] test deps::tests::remove_edges_for_blocked_returns_zero_when_nothing_matches ... ok
[INFO] [stdout] test deps::tests::save_then_load_round_trips_through_disk ... ok
[INFO] [stdout] test deps::tests::remove_edges_for_blocked_only_clears_left_hand_side ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_refuses_pathological_graphs_at_the_node_cap ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_reports_self_loops_as_cycles ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_returns_false_for_a_safe_new_edge ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_returns_false_for_an_empty_graph ... ok
[INFO] [stdout] test egress::tests::build_dnsmasq_args_emits_host_records_for_each_ip ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_treats_freeform_tags_as_terminal ... ok
[INFO] [stdout] test egress::tests::build_dnsmasq_args_with_no_records_still_emits_fixed_prefix ... ok
[INFO] [stdout] test egress::tests::build_enforcer_returns_noop_for_local_adapter_with_allowlist ... ok
[INFO] [stdout] test egress::tests::build_enforcer_returns_noop_for_open_policy ... ok
[INFO] [stdout] test egress::tests::build_host_tinyproxy_conf_references_external_allowlist_and_pidfile ... ok
[INFO] [stdout] test egress::tests::build_tinyproxy_conf_emits_required_directives ... ok
[INFO] [stdout] test egress::tests::egress_setup_is_enforcing_when_either_field_populated ... ok
[INFO] [stdout] test egress::tests::build_enforcer_returns_podman_tinyproxy_for_podman_with_allowlist ... ok
[INFO] [stdout] test egress::tests::host_proxy_teardown_kills_pid_from_pidfile ... ok
[INFO] [stdout] test egress::tests::host_proxy_setup_writes_conf_and_runs_tinyproxy ... ok
[INFO] [stdout] test egress::tests::build_enforcer_routes_apple_container_to_host_proxy ... ok
[INFO] [stdout] test egress::tests::host_proxy_teardown_tolerates_missing_pidfile ... ok
[INFO] [stdout] test egress::tests::noop_enforcer_returns_empty_setup ... ok
[INFO] [stdout] test egress::tests::podman_tinyproxy_setup_populates_dns_fields_on_egress_setup ... ok
[INFO] [stdout] test egress::tests::podman_tinyproxy_teardown_skips_steps_for_empty_setup ... ok
[INFO] [stdout] test egress::tests::noop_enforcer_teardown_is_idempotent ... ok
[INFO] [stdout] test egress::tests::podman_tinyproxy_teardown_stops_container_and_removes_network ... ok
[INFO] [stdout] test egress::tests::podman_tinyproxy_setup_injects_proxy_env_pointing_at_sidecar ... ok
[INFO] [stdout] test egress::tests::podman_tinyproxy_teardown_tolerates_failures ... ok
[INFO] [stdout] test egress::tests::pre_resolve_allowlist_skips_hosts_that_fail_to_resolve ... ok
[INFO] [stdout] test egress::tests::pre_resolve_host_dedupes_ips_from_getent_output ... ok
[INFO] [stdout] test egress::tests::resolve_allowlist_merges_defaults_and_extra_hosts_sorted_and_deduped ... ok
[INFO] [stdout] test orchestrator::launcher::tests::agent_basename_handles_plain_name_and_paths ... ok
[INFO] [stdout] test egress::tests::pre_resolve_host_returns_empty_on_invoker_error ... ok
[INFO] [stdout] test egress::tests::simple_base64_round_trip_for_ascii_payload ... ok
[INFO] [stdout] test deps::tests::nodes_in_cycle_treats_self_loop_as_a_cycle_of_one ... ok
[INFO] [stdout] test deps::tests::would_create_cycle_handles_branching_paths_without_false_positives ... ok
[INFO] [stdout] test deps::tests::remove_edge_returns_true_when_an_edge_is_removed ... ok
[INFO] [stdout] test deps::tests::remove_edges_for_blocked_clears_matches_only ... ok
[INFO] [stdout] test orchestrator::launcher::tests::aider_history_path_lives_next_to_prompt_file ... ok
[INFO] [stdout] test orchestrator::launcher::tests::aider_launcher_passes_prompt_path_via_read_flag_with_pinned_history_file ... ok
[INFO] [stdout] test orchestrator::launcher::tests::bare_launcher_spawns_just_the_binary_and_warns ... ok
[INFO] [stdout] test orchestrator::launcher::tests::claude_launcher_preserves_caller_supplied_binary_name ... ok
[INFO] [stdout] test orchestrator::launcher::tests::claude_launcher_uses_append_system_prompt_with_inline_body ... ok
[INFO] [stdout] test orchestrator::launcher::tests::codex_launcher_emits_developer_instructions_override ... ok
[INFO] [stdout] test orchestrator::launcher::tests::launcher_for_dispatches_on_bare_name ... ok
[INFO] [stdout] test orchestrator::launcher::tests::supported_launchers_produce_no_warning ... ok
[INFO] [stdout] test orchestrator::launcher::tests::launcher_for_strips_directory_prefix_before_matching ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_advertises_deps_cli_instead_of_cat_jsonfile ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_preserves_caller_supplied_order ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_includes_contracts_first_decomposition_rule ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_for_repo_appends_snapshot_to_override_template ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_lists_open_issues_with_labels ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_for_repo_uses_override_when_present ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_includes_static_template_sections ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_says_none_when_no_active_plans ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_says_none_when_no_open_issues ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_for_repo_uses_builtin_when_override_absent ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_walks_through_multi_component_workflow_pattern ... ok
[INFO] [stdout] test orchestrator::prompt::tests::render_prompt_lists_active_plans_with_items_and_progress ... ok
[INFO] [stdout] test orchestrator::reaper::tests::reap_leaves_active_alone_when_pane_is_alive ... ok
[INFO] [stdout] test orchestrator::reaper::tests::reap_returns_unscanned_for_a_repo_with_no_orchestrator_yet ... ok
[INFO] [stdout] test orchestrator::reaper::tests::reap_skips_already_closed_meta_without_calling_tmux ... ok
[INFO] [stdout] test orchestrator::store::tests::exists_returns_false_before_first_save ... ok
[INFO] [stdout] test orchestrator::store::tests::for_repo_anchors_at_fleet_orchestrator ... ok
[INFO] [stdout] test orchestrator::store::tests::exists_returns_true_after_save ... ok
[INFO] [stdout] test orchestrator::store::tests::paths_live_flat_under_the_root ... ok
[INFO] [stdout] test orchestrator::store::tests::load_errors_with_path_context_when_missing ... ok
[INFO] [stdout] test orchestrator::store::tests::save_overwrites_existing_meta ... ok
[INFO] [stdout] test orchestrator::reaper::tests::reap_marks_dead_pane_closed_and_leaves_live_one_alone ... ok
[INFO] [stdout] test orchestrator::store::tests::save_then_load_round_trips_through_disk ... ok
[INFO] [stdout] test orchestrator::tests::orchestrator_session_load_tolerates_legacy_agent_session_id_field ... ok
[INFO] [stdout] test orchestrator::tests::orchestrator_session_round_trips_through_json_with_full_fields ... ok
[INFO] [stdout] test orchestrator::tests::orchestrator_session_tolerates_missing_pid_on_load ... ok
[INFO] [stdout] test orchestrator::tests::tmux_session_name_constant_is_fl_orchestrator ... ok
[INFO] [stdout] test orchestrator::tmux::tests::has_session_returns_false_when_invoker_errors ... ok
[INFO] [stdout] test orchestrator::tmux::tests::has_session_returns_true_when_invoker_exits_zero ... ok
[INFO] [stdout] test orchestrator::tmux::tests::kill_session_is_idempotent_for_missing_session ... ok
[INFO] [stdout] test orchestrator::tmux::tests::kill_session_propagates_unexpected_errors ... ok
[INFO] [stdout] test orchestrator::tmux::tests::kill_window_is_idempotent_for_missing_window ... ok
[INFO] [stdout] test orchestrator::tmux::tests::kill_window_propagates_unexpected_errors ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_session_argv_emits_detached_named_session_with_command ... ok
[INFO] [stdout] test orchestrator::tmux::tests::list_session_names_parses_one_per_line ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_session_argv_includes_env_vars_via_repeated_e_flags ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_session_rejects_empty_command ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_window_argv_includes_session_and_window_name ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_window_rejects_empty_command ... ok
[INFO] [stdout] test orchestrator::tmux::tests::pipe_pane_to_shells_cat_append_with_quoted_path ... ok
[INFO] [stdout] test orchestrator::tmux::tests::pipe_pane_to_handles_paths_with_spaces ... ok
[INFO] [stdout] test orchestrator::tmux::tests::probe_errors_on_empty_output ... ok
[INFO] [stdout] test orchestrator::tmux::tests::probe_surfaces_missing_binary_with_install_hint ... ok
[INFO] [stdout] test orchestrator::tmux::tests::server_pid_for_parses_decimal_pid ... ok
[INFO] [stdout] test orchestrator::tmux::tests::probe_returns_trimmed_version_on_success ... ok
[INFO] [stdout] test plans::store::tests::find_plan_containing_returns_first_active_match_with_index ... ok
[INFO] [stdout] test plans::store::tests::find_plan_containing_returns_none_when_no_plan_owns_the_ticket ... ok
[INFO] [stdout] test plans::store::tests::find_plan_containing_skips_non_active_plans ... ok
[INFO] [stdout] test plans::store::tests::for_repo_anchors_at_fleet_plans ... ok
[INFO] [stdout] test plans::store::tests::list_active_filters_to_active_plans_only ... ok
[INFO] [stdout] test plans::store::tests::list_returns_empty_for_a_missing_plans_dir ... ok
[INFO] [stdout] test plans::store::tests::list_returns_ids_sorted_lexicographically ... ok
[INFO] [stdout] test plans::store::tests::list_skips_non_yaml_entries_and_tmp_side_files ... ok
[INFO] [stdout] test plans::store::tests::load_errors_with_path_context_for_missing_plan ... ok
[INFO] [stdout] test plans::store::tests::save_creates_the_plans_directory_on_first_write ... ok
[INFO] [stdout] test plans::store::tests::save_overwrites_existing_plan_atomically ... ok
[INFO] [stdout] test plans::store::tests::save_then_load_round_trips_through_disk ... ok
[INFO] [stdout] test plans::tests::all_items_done_is_false_for_a_fresh_plan ... ok
[INFO] [stdout] test plans::tests::all_items_done_is_false_for_an_empty_plan ... ok
[INFO] [stdout] test plans::tests::all_items_done_is_true_only_when_every_item_completed ... ok
[INFO] [stdout] test plans::tests::clock_plan_id_source_mints_unique_ids_in_a_burst ... ok
[INFO] [stdout] test plans::tests::clock_plan_id_source_uses_the_plan_prefix_and_hex_segments ... ok
[INFO] [stdout] test plans::tests::plan_id_round_trips_through_string ... ok
[INFO] [stdout] test plans::tests::plan_id_serialises_transparently_as_a_string ... ok
[INFO] [stdout] test plans::tests::plan_item_pending_injected_sets_the_flag ... ok
[INFO] [stdout] test plans::tests::plan_new_constructs_pending_items_in_declared_order ... ok
[INFO] [stdout] test plans::tests::plan_new_defaults_on_item_failure_to_stop ... ok
[INFO] [stdout] test plans::tests::plan_new_defaults_state_to_active ... ok
[INFO] [stdout] test deps::tests::nodes_in_cycle_finds_all_members_of_a_three_cycle ... ok
[INFO] [stdout] test plans::tests::plan_yaml_omits_default_epic_ref_but_retains_it_when_set ... ok
[INFO] [stdout] test deps::tests::nodes_in_cycle_finds_both_members_of_a_two_cycle ... ok
[INFO] [stdout] test orchestrator::tmux::tests::list_session_names_returns_empty_when_no_server_running ... ok
[INFO] [stdout] test orchestrator::tmux::tests::shell_single_quote_escapes_embedded_quotes ... ok
[INFO] [stdout] test plans::tests::position_of_returns_index_for_known_ticket ... ok
[INFO] [stdout] test plans::tests::progress_counts_completed_items ... ok
[INFO] [stdout] test plans::tests::plan_yaml_tolerates_missing_optional_fields_on_load ... ok
[INFO] [stdout] test plans::tests::reset_items_flips_every_non_pending_back_to_pending ... ok
[INFO] [stdout] test plans::tests::plan_round_trips_through_yaml_with_full_field_set ... ok
[INFO] [stdout] test cli::workflow::tests::discover_workflows_returns_empty_when_dir_missing ... ok
[INFO] [stdout] test cli::workflow::tests::pick_issue_returns_exact_human_id_match ... ok
[INFO] [stdout] test plans::tests::reset_items_is_noop_when_all_pending_and_plan_active ... ok
[INFO] [stdout] test cli::workflow::tests::pick_issue_returns_none_for_empty_input ... ok
[INFO] [stdout] test orchestrator::tmux::tests::new_window_argv_threads_env_pairs_as_dash_e_flags ... ok
[INFO] [stdout] test plans::tests::reset_items_resumes_a_paused_plan_even_when_all_items_were_pending ... ok
[INFO] [stdout] test policy::tests::detect_default_branch_returns_none_on_error ... ok
[INFO] [stdout] test orchestrator::tests::orchestrator_session_starts_active_with_no_pid ... ok
[INFO] [stdout] test orchestrator::tmux::tests::server_pid_for_errors_on_unparseable_output ... ok
[INFO] [stdout] test orchestrator::tmux::tests::set_remain_on_exit_emits_set_option_argv ... ok
[INFO] [stdout] test policy::tests::detect_default_branch_strips_origin_prefix ... ok
[INFO] [stdout] test policy::tests::is_protected_exact_match_no_globs ... ok
[INFO] [stdout] test policy::tests::env_round_trip_preserves_items_and_drops_blanks ... ok
[INFO] [stdout] test policy::tests::protected_branches_dedupes_when_user_lists_detected_branch ... ok
[INFO] [stdout] test cli::sessions::tests::unblock_session_with_reason_posts_a_tracker_comment ... ok
[INFO] [stdout] test cli::sessions::tests::unblock_session_with_reason_but_no_tracker_errors ... ok
[INFO] [stdout] test process::tests::redact_leaves_args_without_equals_alone ... ok
[INFO] [stdout] test plans::store::tests::create_errors_when_plan_already_exists ... ok
[INFO] [stdout] test process::tests::redact_preserves_empty_secret_value_for_diagnostic_clarity ... ok
[INFO] [stdout] test repo_config::tests::accepts_local_adapter ... ok
[INFO] [stdout] test repo_config::tests::accepts_apple_container_kebab_case ... ok
[INFO] [stdout] test policy::tests::protected_branches_falls_back_to_main_and_master_when_detect_fails ... ok
[INFO] [stdout] test process::tests::redact_masks_value_of_known_secret_env_pairs ... ok
[INFO] [stdout] test repo::tests::fleet_root_finds_marker_at_cwd_itself ... ok
[INFO] [stdout] test repo::tests::fleet_root_returns_cwd_when_no_markers_present ... ok
[INFO] [stdout] test repo::tests::is_initialised_true_only_when_dot_fleet_dir_present ... ok
[INFO] [stdout] test repo::tests::fleet_root_picks_nearest_dot_fleet_when_nested ... ok
[INFO] [stdout] test process::tests::redact_passes_through_non_secret_args ... ok
[INFO] [stdout] test process::tests::redact_catches_substring_variants ... ok
[INFO] [stdout] test policy::tests::protected_branches_unions_detected_with_configured ... ok
[INFO] [stdout] test repo_config::tests::agents_default_carries_claude_code_registry_entry ... ok
[INFO] [stdout] test repo::tests::is_initialised_false_when_dot_fleet_is_a_file_not_a_dir ... ok
[INFO] [stdout] test repo_config::tests::code_host_is_independent_of_tracker_choice ... ok
[INFO] [stdout] test repo::tests::fleet_root_falls_back_to_dot_git_when_no_dot_fleet ... ok
[INFO] [stdout] test repo::tests::fleet_root_walks_outwards_to_find_nearest_marker ... ok
[INFO] [stdout] test repo::tests::fleet_root_prefers_dot_fleet_over_dot_git ... ok
[INFO] [stdout] test repo_config::tests::code_host_parses_explicit_github_choice ... ok
[INFO] [stdout] test repo_config::tests::code_host_rejects_unknown_string_with_serde_error ... ok
[INFO] [stdout] test repo_config::tests::defaults_match_fleet_init_scaffold ... ok
[INFO] [stdout] test repo_config::tests::defaults_network_policy_to_open ... ok
[INFO] [stdout] test repo_config::tests::code_host_defaults_to_auto ... ok
[INFO] [stdout] test repo_config::tests::empty_input_yields_defaults ... ok
[INFO] [stdout] test repo_config::tests::enum_as_str_matches_on_disk_wording ... ok
[INFO] [stdout] test repo_config::tests::filter_labels_absent_yields_empty_vec ... ok
[INFO] [stdout] test repo_config::tests::filter_labels_all_must_match_to_pass ... ok
[INFO] [stdout] test repo_config::tests::filter_labels_default_is_empty_and_matches_everything ... ok
[INFO] [stdout] test repo_config::tests::git_guard_disabled_when_explicitly_off ... ok
[INFO] [stdout] test repo_config::tests::git_guard_defaults_to_enabled_with_empty_lists ... ok
[INFO] [stdout] test repo_config::tests::network_policy_as_str_is_stable_for_doctor ... ok
[INFO] [stdout] test repo_config::tests::orchestrator_agent_defaults_to_claude ... ok
[INFO] [stdout] test repo_config::tests::parses_cleanup_auto_prune_completed_true ... ok
[INFO] [stdout] test repo_config::tests::missing_cleanup_block_falls_back_to_defaults ... ok
[INFO] [stdout] test repo_config::tests::load_returns_defaults_when_file_missing ... ok
[INFO] [stdout] test repo_config::tests::missing_cost_block_falls_back_to_unlimited_defaults ... ok
[INFO] [stdout] test repo_config::tests::fleet_init_template_is_loadable_against_this_parser ... ok
[INFO] [stdout] test repo_config::tests::parses_git_guard_block ... ok
[INFO] [stdout] test repo_config::tests::parses_network_policy_none_with_no_hosts ... ok
[INFO] [stdout] test repo_config::tests::load_reads_file_from_disk ... ok
[INFO] [stdout] test repo_config::tests::parses_cost_budgets_partial ... ok
[INFO] [stdout] test repo_config::tests::parses_full_config ... ok
[INFO] [stdout] test repo_config::tests::parses_full_autonomous_block ... ok
[INFO] [stdout] test repo_config::tests::missing_git_block_falls_back_to_defaults ... ok
[INFO] [stdout] test repo_config::tests::rejects_unknown_adapter_value_with_path_context ... ok
[INFO] [stdout] test repo_config::tests::missing_orchestrator_block_keeps_the_default ... ok
[INFO] [stdout] test repo_config::tests::parses_network_allowlist_block ... ok
[INFO] [stdout] test repo_config::tests::resolve_workflow_empty_labels_rule_is_wildcard ... ok
[INFO] [stdout] test repo_config::tests::resolve_workflow_first_matching_rule_wins ... ok
[INFO] [stdout] test repo_config::tests::resolve_workflow_intersects_rather_than_subset ... ok
[INFO] [stdout] test repo_config::tests::resolve_workflow_no_rules_returns_default ... ok
[INFO] [stdout] test repo_config::tests::resolve_workflow_returns_default_when_no_rule_matches ... ok
[INFO] [stdout] test repo_config::tests::routing_absent_yields_empty_vec ... ok
[INFO] [stdout] test repo_config::tests::routing_parses_full_block ... ok
[INFO] [stdout] test repo_config::tests::secrets_block_defaults_to_empty_when_absent ... ok
[INFO] [stdout] test repo_config::tests::stamp_creation_labels_dedups ... ok
[INFO] [stdout] test repo_config::tests::stamp_creation_labels_unions_preserving_supplied_order ... ok
[INFO] [stdout] test repo_config::tests::secrets_block_round_trips_three_backends ... ok
[INFO] [stdout] test repo_config::tests::stamp_creation_labels_empty_filter_returns_supplied_unchanged ... ok
[INFO] [stdout] test repo_config::tests::tolerates_unknown_top_level_keys ... ok
[INFO] [stdout] test repo_config::tests::user_can_redefine_the_default_claude_code_entry ... ok
[INFO] [stdout] test repo_config::tests::user_authored_agents_registry_overlays_on_defaults ... ok
[INFO] [stdout] test repo_config::tests::whitespace_only_input_yields_defaults ... ok
[INFO] [stdout] test runtime::apple_container::tests::adapter_is_send_sync ... ok
[INFO] [stdout] test runtime::apple_container::tests::attach_argv_wraps_exec_dash_it_with_container_id ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_exited_container_carries_exit_code ... ok
[INFO] [stdout] test runtime::apple_container::tests::ensure_image_invokes_devcontainer_build_with_container_engine ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_image_arch_propagates_engine_errors_for_missing_image ... ok
[INFO] [stdout] test runtime::apple_container::tests::attach_pty_rejects_empty_argv ... ok
[INFO] [stdout] test runtime::apple_container::tests::capabilities_report_microvm_isolation ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_image_arch_reads_oci_architecture_field_from_top_level_object ... ok
[INFO] [stdout] test runtime::apple_container::tests::exec_uses_recorded_workspace_for_started_container ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_unknown_container_returns_unknown_state ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_image_arch_unwraps_singleton_array_root ... ok
[INFO] [stdout] test runtime::apple_container::tests::name_is_apple_container ... ok
[INFO] [stdout] test runtime::apple_container::tests::inspect_running_container_from_json_array ... ok
[INFO] [stdout] test runtime::apple_container::tests::parse_image_arch_json_accepts_docker_style_capitalised_key ... ok
[INFO] [stdout] test runtime::apple_container::tests::attach_argv_passes_through_multi_arg_commands ... ok
[INFO] [stdout] test runtime::apple_container::tests::parse_image_arch_json_returns_none_when_field_absent ... ok
[INFO] [stdout] test runtime::apple_container::tests::stop_is_idempotent_for_unknown_container ... ok
[INFO] [stdout] test runtime::apple_container::tests::start_container_passes_no_extra_run_args ... ok
[INFO] [stdout] test runtime::capabilities::tests::capabilities_are_copy_value_objects ... ok
[INFO] [stdout] test runtime::detect::tests::backend_kind_program_is_the_executable_name ... ok
[INFO] [stdout] test runtime::detect::tests::install_hints_flag_missing_devcontainer_cli ... ok
[INFO] [stdout] test runtime::apple_container::tests::parse_image_arch_json_returns_none_for_garbage_input ... ok
[INFO] [stdout] test runtime::capabilities::tests::default_promises_nothing ... ok
[INFO] [stdout] test repo_config::tests::orchestrator_agent_can_be_overridden_per_repo ... ok
[INFO] [stdout] test repo_config::tests::parses_cost_budgets_both_fields ... ok
[INFO] [stdout] test runtime::capabilities::tests::describe_ideal_reads_as_strongest ... ok
[INFO] [stdout] test repo_config::tests::parses_filter_labels_block_from_yaml ... ok
[INFO] [stdout] test repo_config::tests::partial_autonomous_fills_remaining_with_defaults ... ok
[INFO] [stdout] test repo_config::tests::partial_config_fills_in_defaults ... ok
[INFO] [stdout] test runtime::capabilities::tests::describe_default_reads_as_unhardened ... ok
[INFO] [stdout] test runtime::capabilities::tests::ideal_is_strongest_combination ... ok
[INFO] [stdout] test runtime::detect::tests::probe_picks_up_git_bug_and_tinyproxy_independently_of_engine ... ok
[INFO] [stdout] test runtime::apple_container::tests::parse_inspect_json_handles_unknown_state_verbatim ... ok
[INFO] [stdout] test runtime::capabilities::tests::describe_renders_gvisor_with_namespaces ... ok
[INFO] [stdout] test runtime::detect::tests::install_hints_flag_missing_git_bug ... ok
[INFO] [stdout] test runtime::detect::tests::install_hints_flag_missing_tinyproxy ... ok
[INFO] [stdout] test runtime::detect::tests::probe_recommends_apple_container_when_available ... ok
[INFO] [stdout] test runtime::detect::tests::install_hints_silent_when_everything_present ... ok
[INFO] [stdout] test runtime::detect::tests::probe_detects_gvisor_separately_from_engine ... ok
[INFO] [stdout] test runtime::detect::tests::probe_falls_back_to_docker_as_last_resort ... ok
[INFO] [stdout] test runtime::detect::tests::probe_falls_back_to_podman_when_no_apple_container ... ok
[INFO] [stdout] test runtime::detect::tests::probe_invokes_git_bug_with_version_subcommand_not_flag ... ok
[INFO] [stdout] test runtime::detect::tests::probe_marks_missing_backends_absent ... ok
[INFO] [stdout] test runtime::detect::tests::probe_marks_present_backends_with_first_line_version ... ok
[INFO] [stdout] test runtime::detect::tests::install_hints_flag_missing_engine ... ok
[INFO] [stdout] test runtime::detect::tests::probe_arg_matches_each_tool_actual_version_invocation ... ok
[INFO] [stdout] test runtime::detect::tests::probe_returns_none_recommended_when_nothing_present ... ok
[INFO] [stdout] test runtime::devcontainer::tests::build_defaults_context_to_devcontainer_directory ... ok
[INFO] [stdout] test runtime::devcontainer::tests::does_not_strip_commas_inside_strings ... ok
[INFO] [stdout] test runtime::devcontainer::tests::does_not_strip_double_slash_inside_strings ... ok
[INFO] [stdout] test runtime::devcontainer::tests::from_path_surfaces_io_error_with_path_context ... ok
[INFO] [stdout] test runtime::devcontainer::tests::handles_escaped_quotes_inside_strings ... ok
[INFO] [stdout] test runtime::devcontainer::tests::loads_from_disk ... ok
[INFO] [stdout] test runtime::devcontainer::tests::parses_build_form_resolving_paths_relative_to_file ... ok
[INFO] [stdout] test runtime::devcontainer::tests::parses_image_form ... ok
[INFO] [stdout] test runtime::devcontainer::tests::rejects_neither_image_nor_build ... ok
[INFO] [stdout] test runtime::devcontainer::tests::tolerates_trailing_commas ... ok
[INFO] [stdout] test runtime::devcontainer::tests::tolerates_unknown_fields_at_top_level ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::engine_binary_names_match_program_names ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::build_argv_includes_engine_binary_and_image_name ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::mint_image_name_is_stable_for_same_input ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::exec_requires_nonempty_argv ... ok
[INFO] [stdout] test runtime::devcontainer::tests::parses_jsonc_with_block_comments ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::build_errors_when_outcome_is_not_success ... ok
[INFO] [stdout] test runtime::devcontainer::tests::parses_jsonc_with_line_comments ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::mint_image_name_differs_per_image_vs_build ... ok
[INFO] [stdout] test runtime::devcontainer::tests::parses_workspace_folder ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::mint_image_name_differs_per_source_path ... ok
[INFO] [stdout] test runtime::devcontainer::tests::rejects_both_image_and_build ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::exec_argv_passes_argv_after_double_dash ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::build_errors_when_image_name_mismatches ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::parse_json_output_errors_when_no_json_line_present ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::up_emits_config_flag_when_provided ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::up_emits_one_mount_flag_per_extra_mount_in_order ... ok
[INFO] [stdout] test runtime::devcontainer::tests::strip_jsonc_preserves_line_count ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::up_errors_when_outcome_is_not_success ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::build_accepts_image_name_as_array ... ok
[INFO] [stdout] test runtime::docker::tests::adapter_is_send_sync ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::exec_returns_lossy_handle_on_invoker_error ... ok
[INFO] [stdout] test runtime::docker::tests::attach_argv_wraps_exec_dash_it_with_container_id ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::parse_json_output_finds_json_after_leading_banner ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::missing_cli_surfaces_as_actionable_error ... ok
[INFO] [stdout] test runtime::devcontainer_cli::tests::up_argv_includes_mounts_env_and_extra_run_args ... ok
[INFO] [stdout] test runtime::docker::tests::attach_pty_rejects_empty_argv ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_image_arch_returns_none_for_empty_engine_output ... ok
[INFO] [stdout] test runtime::docker::tests::capabilities_reflect_rootful_construction ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_image_arch_shells_image_inspect_with_arch_format_template ... ok
[INFO] [stdout] test runtime::docker::tests::attach_argv_passes_through_multi_arg_commands ... ok
[INFO] [stdout] test runtime::docker::tests::capabilities_reflect_rootless_construction ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_unknown_container_returns_unknown_state ... ok
[INFO] [stdout] test runtime::docker::tests::exec_rejects_unknown_container ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_running_container ... ok
[INFO] [stdout] test runtime::docker::tests::ensure_image_invokes_devcontainer_build_with_docker_engine ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_exited_container_carries_exit_code ... ok
[INFO] [stdout] test runtime::docker::tests::exec_uses_recorded_workspace_for_started_container ... ok
[INFO] [stdout] test runtime::docker::tests::inspect_image_arch_propagates_engine_errors_for_missing_image ... ok
[INFO] [stdout] test runtime::docker::tests::name_is_docker ... ok
[INFO] [stdout] test runtime::docker::tests::stop_is_idempotent_for_unknown_container ... ok
[INFO] [stdout] test runtime::docker::tests::start_container_passes_no_extra_run_args ... ok
[INFO] [stdout] test runtime::docker::tests::workspace_from_devcontainer_handles_canonical_layout ... ok
[INFO] [stdout] test runtime::docker::tests::stop_calls_docker_stop_and_clears_workspace_mapping ... ok
[INFO] [stdout] test runtime::factory::tests::auto_with_apple_recommended_builds_apple_container ... ok
[INFO] [stdout] test runtime::factory::tests::auto_with_docker_recommended_reports_rootful_when_not_rootless ... ok
[INFO] [stdout] test runtime::docker::tests::stop_propagates_unexpected_errors ... ok
[INFO] [stdout] test runtime::factory::tests::auto_with_podman_recommended_builds_podman ... ok
[INFO] [stdout] test runtime::factory::tests::explicit_podman_when_not_installed_is_an_error ... ok
[INFO] [stdout] test runtime::factory::tests::docker_rootless_probe_treats_daemon_down_as_rootful ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_gvisor_with_apple_container_is_a_config_error ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_auto_on_podman_leaves_gvisor_off_when_runsc_missing ... ok
[INFO] [stdout] test runtime::factory::tests::explicit_docker_when_not_installed_is_an_error ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_gvisor_without_runsc_errors ... ok
[INFO] [stdout] test runtime::factory::tests::auto_with_no_engine_returns_actionable_error ... ok
[INFO] [stdout] test runtime::factory::tests::explicit_apple_container_when_not_installed_is_an_error ... ok
[INFO] [stdout] test runtime::health::tests::auto_adapter_uses_probe_recommended_engine ... ok
[INFO] [stdout] test runtime::health::tests::docker_down_returns_err_naming_engine_and_hint ... ok
[INFO] [stdout] test runtime::health::tests::local_adapter_skips_daemon_check ... ok
[INFO] [stdout] test runtime::factory::tests::local_can_be_built_even_when_nothing_is_installed ... ok
[INFO] [stdout] test runtime::factory::tests::auto_with_docker_recommended_builds_docker_and_probes_rootless ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_none_overrides_runsc_presence ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_gvisor_with_docker_is_a_config_error ... ok
[INFO] [stdout] test runtime::health::tests::docker_reachable_returns_ok ... ok
[INFO] [stdout] test runtime::factory::tests::hardening_auto_on_podman_uses_gvisor_when_runsc_present ... ok
[INFO] [stdout] test runtime::local::tests::adapter_is_send_sync ... ok
[INFO] [stdout] test runtime::local::tests::attach_pty_rejects_empty_argv ... ok
[INFO] [stdout] test runtime::local::tests::attach_pty_rejects_unknown_container ... ok
[INFO] [stdout] test runtime::local::tests::capabilities_promise_nothing ... ok
[INFO] [stdout] test runtime::local::tests::ensure_image_differs_per_source_path ... ok
[INFO] [stdout] test runtime::local::tests::ensure_image_is_idempotent_for_same_devcontainer ... ok
[INFO] [stdout] test runtime::local::tests::exec_propagates_invoker_error_into_handle ... ok
[INFO] [stdout] test runtime::local::tests::freshly_started_container_inspects_as_running ... ok
[INFO] [stdout] test bridge::tests::dropping_bridge_stops_listener_promptly ... ok
[INFO] [stdout] test runtime::local::tests::inspect_unknown_container_returns_unknown_state ... ok
[INFO] [stdout] test runtime::local::tests::exec_rejects_stopped_container ... ok
[INFO] [stdout] test runtime::local::tests::name_is_local ... ok
[INFO] [stdout] test runtime::local::tests::exec_rejects_unknown_container ... ok
[INFO] [stdout] test runtime::local::tests::shell_escape_wraps_plain_path ... ok
[INFO] [stdout] test runtime::local::tests::stop_is_idempotent_for_unknown_container ... ok
[INFO] [stdout] test runtime::local::tests::exec_requires_nonempty_argv ... ok
[INFO] [stdout] test runtime::local::tests::stop_transitions_to_exited ... ok
[INFO] [stdout] test runtime::podman::tests::attach_argv_wraps_exec_dash_it_with_container_id ... ok
[INFO] [stdout] test runtime::podman::tests::attach_pty_rejects_empty_argv ... ok
[INFO] [stdout] test runtime::local::tests::shell_escape_handles_single_quotes ... ok
[INFO] [stdout] test runtime::local::tests::start_container_mints_distinct_ids ... ok
[INFO] [stdout] test runtime::local::tests::exec_runs_program_with_workspace_as_cwd ... ok
[INFO] [stdout] test runtime::podman::tests::capabilities_with_runsc_report_gvisor ... ok
[INFO] [stdout] test runtime::podman::tests::exec_rejects_unknown_container ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_image_arch_propagates_engine_errors_for_missing_image ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_exited_container_carries_exit_code ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_image_arch_returns_none_for_empty_engine_output ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_image_arch_shells_image_inspect_with_arch_format_template ... ok
[INFO] [stdout] test runtime::podman::tests::capabilities_without_runsc_report_no_hardening ... ok
[INFO] [stdout] test runtime::podman::tests::ensure_image_invokes_devcontainer_build_with_podman_engine ... ok
[INFO] [stdout] test runtime::podman::tests::start_container_appends_dns_flag_when_spec_has_dns ... ok
[INFO] [stdout] test runtime::podman::tests::attach_argv_passes_through_multi_arg_commands ... ok
[INFO] [stdout] test runtime::podman::tests::parse_inspect_status_unknown_value_surfaces_verbatim ... ok
[INFO] [stdout] test runtime::podman::tests::adapter_is_send_sync ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_running_container ... ok
[INFO] [stdout] test runtime::podman::tests::start_container_appends_network_flag_when_spec_has_network ... ok
[INFO] [stdout] test runtime::podman::tests::start_container_combines_runsc_and_network_flags ... ok
[INFO] [stdout] test runtime::podman::tests::inspect_unknown_container_returns_unknown_state ... ok
[INFO] [stdout] test runtime::podman::tests::start_container_appends_runsc_run_args_when_runsc_present ... ok
[INFO] [stdout] test runtime::podman::tests::name_is_podman ... ok
[INFO] [stdout] test runtime::podman::tests::stop_propagates_unexpected_errors ... ok
[INFO] [stdout] test runtime::podman::tests::workspace_from_devcontainer_handles_canonical_layout ... ok
[INFO] [stdout] test runtime::podman::tests::workspace_from_devcontainer_handles_multi_config_layout ... ok
[INFO] [stdout] test runtime::podman::tests::start_container_omits_runsc_run_args_when_runsc_absent ... ok
[INFO] [stdout] test runtime::tests::default_inspect_image_arch_returns_none_for_adapters_that_do_not_override ... ok
[INFO] [stdout] test runtime::tests::container_id_round_trips_through_string ... ok
[INFO] [stdout] test runtime::tests::ids_are_hashable_for_use_as_map_keys ... ok
[INFO] [stdout] test runtime::podman::tests::exec_uses_recorded_workspace_for_started_container ... ok
[INFO] [stdout] test runtime::podman::tests::stop_calls_podman_stop_and_clears_workspace_mapping ... ok
[INFO] [stdout] test runtime::podman::tests::workspace_from_devcontainer_handles_root_level_file ... ok
[INFO] [stdout] test runtime::tests::host_arch_oci_returns_a_normalised_alias ... ok
[INFO] [stdout] test runtime::tests::ids_compare_by_value ... ok
[INFO] [stdout] test runtime::tests::is_running_false_for_dead ... ok
[INFO] [stdout] test runtime::tests::image_id_round_trips_through_string ... ok
[INFO] [stdout] test runtime::tests::mount_spec_render_does_not_change_with_read_only_false ... ok
[INFO] [stdout] test runtime::tests::mount_spec_renders_only_the_three_devcontainer_cli_compatible_fields ... ok
[INFO] [stdout] test runtime::tests::normalize_arch_does_not_invent_translations_for_unknown_input ... ok
[INFO] [stdout] test runtime::tests::normalize_arch_passes_oci_native_names_through_verbatim ... ok
[INFO] [stdout] test runtime::tests::normalize_arch_maps_rust_to_oci_for_the_two_aliased_arches ... ok
[INFO] [stdout] test scheduler::dispatcher::tests::build_run_anonymous_argv_omits_pr_flag ... ok
[INFO] [stdout] test runtime::tests::is_running_false_for_created ... ok
[INFO] [stdout] test scheduler::dispatcher::tests::build_run_for_pr_argv_includes_pr_flag_and_detached ... ok
[INFO] [stdout] test runtime::podman::tests::stop_is_idempotent_for_unknown_container ... ok
[INFO] [stdout] test runtime::tests::is_running_false_for_unknown ... ok
[INFO] [stdout] test runtime::tests::is_running_true_only_for_running_state ... ok
[INFO] [stdout] test scheduler::store::tests::load_surfaces_parse_error_with_path_context ... ok
[INFO] [stdout] test scheduler::dispatcher::tests::build_run_for_pr_argv_omits_start_after_node_when_absent ... ok
[INFO] [stdout] test scheduler::store::tests::load_missing_file_returns_default_empty_state ... ok
[INFO] [stdout] test scheduler::store::tests::save_creates_parent_directory_when_missing ... ok
[INFO] [stdout] test runtime::tests::is_running_false_for_exited ... ok
[INFO] [stdout] test scheduler::store::tests::save_uses_tmp_then_rename_so_no_partial_files_remain ... ok
[INFO] [stdout] test scheduler::tests::idle_status_includes_remaining_seconds_to_next_workflow ... ok
[INFO] [stdout] test scheduler::tests::disabled_engine_is_idle ... ok
[INFO] [stdout] test scheduler::tests::toggle_flips_enabled_and_resets_status ... ok
[INFO] [stdout] test scheduler::tests::step_run_overlap_fires_anyway_when_session_in_flight ... ok
[INFO] [stdout] test scheduler::tests::step_returns_no_workflow_due_when_only_loopless_workflows_exist ... ok
[INFO] [stdout] test scheduler::tests::step_fires_workflow_when_due_with_no_prior_run ... ok
[INFO] [stdout] test secrets::env::tests::fetches_when_set ... ok
[INFO] [stdout] test scheduler::tests::step_with_pr_list_bind_per_fans_out_one_spawn_per_pr ... ok
[INFO] [stdout] test scheduler::tests::step_list_prs_error_does_not_advance_clock ... ok
[INFO] [stdout] test scheduler::tests::step_skip_overlap_suppresses_when_session_in_flight ... ok
[INFO] [stdout] test scheduler::tests::step_skips_workflow_before_interval_elapses ... ok
[INFO] [stdout] test scheduler::tests::step_two_workflows_independently_due ... ok
[INFO] [stdout] test scheduler::tests::step_with_empty_pr_list_marks_workflow_run_but_emits_no_spawn ... ok
[INFO] [stdout] test secrets::one_password::tests::invokes_op_read_with_reference ... ok
[INFO] [stdout] test secrets::tests::config_deserialises_env_simple ... ok
[INFO] [stdout] test secrets::tests::config_deserialises_keychain_with_default_account ... ok
[INFO] [stdout] test secrets::tests::config_kind_matches_serde_tag ... ok
[INFO] [stdout] test secrets::tests::config_deserialises_op_via_aliased_ref_field ... ok
[INFO] [stdout] test secrets::tests::describe_does_not_include_a_value ... ok
[INFO] [stdout] test session::aggregate::tests::awaiting_gate_resumes_to_running ... ok
[INFO] [stdout] test session::aggregate::tests::clear_driver_pid_resets_to_none_and_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::clear_worktree_path_keeps_branch_and_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::driver_pid_round_trips_through_json ... ok
[INFO] [stdout] test session::aggregate::tests::missing_current_node_defaults_to_none_on_load ... ok
[INFO] [stdout] test session::aggregate::tests::missing_driver_pid_defaults_to_none_on_load ... ok
[INFO] [stdout] test session::aggregate::tests::missing_issue_and_loop_counts_default_to_empty_on_load ... ok
[INFO] [stdout] test scheduler::store::tests::raw_state_serdes_as_unix_epoch_seconds ... ok
[INFO] [stdout] test session::aggregate::tests::missing_node_costs_defaults_to_empty_on_load ... ok
[INFO] [stdout] test scheduler::store::tests::save_load_round_trip_preserves_last_run_at_per_workflow ... ok
[INFO] [stdout] test session::aggregate::tests::round_trips_with_issue_and_loop_counts ... ok
[INFO] [stdout] test session::aggregate::tests::round_trips_with_pr_context ... ok
[INFO] [stdout] test session::aggregate::tests::missing_worktree_fields_default_to_none_on_load ... ok
[INFO] [stdout] test session::aggregate::tests::new_session_has_empty_node_costs ... ok
[INFO] [stdout] test session::aggregate::tests::set_current_node_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::set_current_node_can_clear ... ok
[INFO] [stdout] test session::aggregate::tests::session_with_pr_loads_alongside_issue ... ok
[INFO] [stdout] test session::aggregate::tests::new_session_has_no_driver_pid ... ok
[INFO] [stdout] test session::aggregate::tests::new_session_has_no_worktree_or_branch ... ok
[INFO] [stdout] test session::aggregate::tests::new_session_starts_in_created ... ok
[INFO] [stdout] test session::aggregate::tests::record_node_cost_inserts_and_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::record_node_cost_overwrites_on_repeat ... ok
[INFO] [stdout] test session::aggregate::tests::set_driver_pid_stamps_and_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::set_worktree_stamps_both_fields_and_bumps_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::round_trips_through_json ... ok
[INFO] [stdout] test session::aggregate::tests::total_cost_usd_returns_none_when_no_nodes_recorded ... ok
[INFO] [stdout] test session::aggregate::tests::total_cost_usd_returns_some_zero_when_agent_reported_zero ... ok
[INFO] [stdout] test session::aggregate::tests::transition_to_running_updates_state_and_timestamp ... ok
[INFO] [stdout] test session::aggregate::tests::node_costs_round_trip_through_json ... ok
[INFO] [stdout] test session::aggregate::tests::worktree_round_trips_through_json ... ok
[INFO] [stdout] test session::aggregate::tests::total_cost_usd_sums_every_node ... ok
[INFO] [stdout] test session::containers::tests::clear_all_tolerates_missing_dir ... ok
[INFO] [stdout] test session::containers::tests::mark_stopped_tolerates_missing_marker ... ok
[INFO] [stdout] test session::containers::tests::mark_stopped_removes_marker ... ok
[INFO] [stdout] test session::containers::tests::marker_path_lands_in_containers_subdir ... ok
[INFO] [stdout] test session::containers::tests::list_active_returns_empty_when_dir_absent ... ok
[INFO] [stdout] test session::containers::tests::list_active_omits_directories ... ok
[INFO] [stdout] test session::containers::tests::list_active_returns_sorted_marker_names ... ok
[INFO] [stdout] test session::containers::tests::clear_all_drops_every_marker ... ok
[INFO] [stdout] test session::containers::tests::mark_active_is_idempotent ... ok
[INFO] [stdout] test session::containers::tests::mark_active_creates_dir_and_file ... ok
[INFO] [stdout] test session::reaper::tests::classify_leaves_running_with_live_driver_alone ... ok
[INFO] [stdout] test session::reaper::tests::classify_reaps_running_with_dead_driver ... ok
[INFO] [stdout] test session::reaper::tests::classify_skips_awaiting_gate ... ok
[INFO] [stdout] test session::reaper::tests::classify_reaps_running_without_driver_pid ... ok
[INFO] [stdout] test session::reaper::tests::classify_skips_created_state ... ok
[INFO] [stdout] test session::reaper::tests::classify_skips_terminal_states ... ok
[INFO] [stdout] test session::reaper::tests::noop_stopper_reports_success_for_every_id ... ok
[INFO] [stdout] test session::reaper::tests::empty_store_returns_empty_report ... ok
[INFO] [stdout] test session::reaper::tests::collect_log_tails_reads_each_log_file ... ok
[INFO] [stdout] test session::reaper::tests::collect_log_tails_returns_empty_when_logs_dir_missing ... ok
[INFO] [stdout] test session::reaper::tests::reap_does_not_probe_terminal_session_pids ... ok
[INFO] [stdout] test session::reaper::tests::reap_skips_running_with_live_driver ... ok
[INFO] [stdout] test session::reaper::tests::reap_clears_container_markers_after_recording ... ok
[INFO] [stdout] test session::reaper::tests::reap_leaves_completed_failed_awaiting_gate_alone ... ok
[INFO] [stdout] test session::reaper::tests::reap_transitions_orphaned_running_to_crashed ... ok
[INFO] [stdout] test session::reaper::tests::reap_calls_stopper_for_each_leaked_container ... ok
[INFO] [stdout] test session::reaper::tests::reap_reaps_running_with_no_driver_pid ... ok
[INFO] [stdout] test session::reaper::tests::reap_picks_only_the_dead_among_mixed_sessions ... ok
[INFO] [stdout] test session::reaper::tests::reap_records_leaked_containers_in_snapshot ... ok
[INFO] [stdout] test session::reaper::tests::tail_lines_handles_empty_input ... ok
[INFO] [stdout] test session::state::tests::awaiting_gate_can_jump_to_terminal_states ... ok
[INFO] [stdout] test session::state::tests::awaiting_gate_can_resume_to_running ... ok
[INFO] [stdout] test session::state::tests::created_can_short_circuit_to_failed_or_crashed ... ok
[INFO] [stdout] test session::state::tests::created_cannot_jump_straight_to_completed_or_awaiting_gate ... ok
[INFO] [stdout] test session::state::tests::deserialises_snake_case ... ok
[INFO] [stdout] test session::state::tests::running_can_reach_every_other_non_created_state ... ok
[INFO] [stdout] test session::state::tests::serialises_in_snake_case ... ok
[INFO] [stdout] test session::state::tests::same_state_transitions_are_rejected ... ok
[INFO] [stdout] test session::store::tests::create_materialises_directory_and_meta ... ok
[INFO] [stdout] test session::reaper::tests::reap_with_no_leaked_containers_skips_the_stopper ... ok
[INFO] [stdout] test session::reaper::tests::reap_writes_crash_snapshot_next_to_meta ... ok
[INFO] [stdout] test session::store::tests::create_tolerates_pre_existing_session_dir ... ok
[INFO] [stdout] test session::state::tests::terminal_states_are_the_three_documented_ones ... ok
[INFO] [stdout] test session::state::tests::created_can_become_running ... ok
[INFO] [stdout] test session::reaper::tests::tail_lines_returns_all_lines_when_under_limit ... ok
[INFO] [stdout] test session::reaper::tests::tail_lines_returns_last_n_when_over_limit ... ok
[INFO] [stdout] test session::state::tests::terminal_states_cannot_transition_to_anything ... ok
[INFO] [stdout] test session::reaper::tests::reaped_session_retains_issue_context_for_post_mortem ... ok
[INFO] [stdout] test session::store::tests::now_ms_returns_nonzero_in_production ... ok
[INFO] [stdout] test session::store::tests::for_repo_anchors_at_dot_fleet_sessions ... ok
[INFO] [stdout] test session::store::tests::list_is_empty_when_root_missing ... ok
[INFO] [stdout] test session::store::tests::meta_path_is_under_session_dir ... ok
[INFO] [stdout] test session::store::tests::delete_removes_session_dir_and_is_idempotent ... ok
[INFO] [stdout] test session::store::tests::list_skips_dotfiles_and_regular_files ... ok
[INFO] [stdout] test session::store::tests::list_returns_session_ids_for_existing_subdirs ... ok
[INFO] [stdout] test session::store::tests::load_round_trips_session ... ok
[INFO] [stdout] test session::store::tests::store_is_send_sync ... ok
[INFO] [stdout] test session::tests::clock_id_source_mints_distinct_ids ... ok
[INFO] [stdout] test session::tests::session_id_deserialises_from_a_bare_string ... ok
[INFO] [stdout] test session::tests::session_id_round_trips_through_string ... ok
[INFO] [stdout] test session::store::tests::sum_costs_returns_zero_for_empty_store ... ok
[INFO] [stdout] test session::tests::clock_id_source_format_is_stable ... ok
[INFO] [stdout] test session::tests::session_id_serialises_as_a_bare_string ... ok
[INFO] [stdout] test session::tmux::tests::session_tmux_env_var_name_stays_pinned ... ok
[INFO] [stdout] test session::tests::session_ids_compare_by_value ... ok
[INFO] [stdout] test session::store::tests::save_overwrites_existing_meta ... ok
[INFO] [stdout] test session::tmux::tests::worker_tmux_name_prefixes_session_id_with_fleet_dash ... ok
[INFO] [stdout] test tracker::git_bug::tests::comment_shells_comment_add_with_non_interactive_and_message ... ok
[INFO] [stdout] test tracker::git_bug::tests::comment_with_single_quote_in_body_is_safely_escaped ... ok
[INFO] [stdout] test tracker::git_bug::tests::add_label_shells_label_add ... ok
[INFO] [stdout] test tracker::git_bug::tests::create_shells_add_then_returns_parsed_new_id ... ok
[INFO] [stdout] test tracker::git_bug::tests::link_blocks_attaches_a_symmetric_label_pair ... ok
[INFO] [stdout] test tracker::git_bug::tests::create_with_labels_invokes_label_add_per_label ... ok
[INFO] [stdout] test tracker::git_bug::tests::link_parent_attaches_parent_label_to_child ... ok
[INFO] [stdout] test tracker::git_bug::tests::list_issues_parses_array_and_sorts_open_first ... ok
[INFO] [stdout] test tracker::git_bug::tests::list_issues_invocation_uses_real_ls_verb_at_repo_root ... ok
[INFO] [stdout] test tracker::git_bug::tests::list_issues_returns_empty_for_empty_repo ... ok
[INFO] [stdout] test tracker::git_bug::tests::list_issues_tolerates_null_labels ... ok
[INFO] [stdout] test tracker::git_bug::tests::malformed_json_yields_empty_list_rather_than_error ... ok
[INFO] [stdout] test tracker::git_bug::tests::parse_git_bug_add_output_extracts_first_token ... ok
[INFO] [stdout] test tracker::git_bug::tests::read_handles_issue_with_no_comments_by_returning_empty_body ... ok
[INFO] [stdout] test tracker::git_bug::tests::read_shells_show_with_format_json ... ok
[INFO] [stdout] test tracker::git_bug::tests::remove_label_shells_label_rm ... ok
[INFO] [stdout] test tracker::git_bug::tests::set_status_in_progress_falls_back_to_label_convention ... ok
[INFO] [stdout] test session::store::tests::sum_costs_aggregates_across_sessions_skipping_cost_less_ones ... ok
[INFO] [stdout] test tracker::git_bug::tests::set_status_closed_uses_status_close_verb ... ok
[INFO] [stdout] test tracker::git_bug::tests::status_is_normalised_to_lowercase ... ok
[INFO] [stdout] test tracker::git_bug::tests::name_is_git_bug ... ok
[INFO] [stdout] test tracker::git_bug::tests::set_status_open_uses_status_open_verb ... ok
[INFO] [stdout] test tracker::git_bug::tests::list_issues_returns_empty_for_blank_output ... ok
[INFO] [stdout] test tracker::github::tests::comment_body_with_single_quote_is_safely_escaped ... ok
[INFO] [stdout] test tracker::github::tests::add_label_uses_issue_edit_add_label ... ok
[INFO] [stdout] test tracker::github::tests::create_without_labels_parses_url_for_new_number ... ok
[INFO] [stdout] test tracker::github::tests::comment_uses_issue_comment_body_flag ... ok
[INFO] [stdout] test tracker::github::tests::create_with_labels_appends_one_label_flag_per_label_in_order ... ok
[INFO] [stdout] test tracker::github::tests::empty_array_is_handled_explicitly ... ok
[INFO] [stdout] test tracker::github::tests::id_prefix_is_gh ... ok
[INFO] [stdout] test tracker::github::tests::invocation_uses_cd_wrapped_shell_at_repo_root ... ok
[INFO] [stdout] test tracker::github::tests::link_blocks_lists_dependencies_then_resolves_id_then_posts ... ok
[INFO] [stdout] test tracker::github::tests::link_blocks_is_idempotent_when_dependency_already_recorded ... ok
[INFO] [stdout] test tracker::github::tests::link_parent_idempotence_is_whole_number_match_not_substring ... ok
[INFO] [stdout] test tracker::github::tests::link_parent_is_idempotent_when_child_already_linked ... ok
[INFO] [stdout] test tracker::github::tests::link_parent_lists_sub_issues_then_resolves_database_id_then_posts ... ok
[INFO] [stdout] test tracker::github::tests::list_issues_parses_gh_json_and_sorts ... ok
[INFO] [stdout] test tracker::github::tests::list_issues_returns_empty_for_blank_output ... ok
[INFO] [stdout] test tracker::github::tests::malformed_json_yields_empty_list_rather_than_error ... ok
[INFO] [stdout] test tracker::github::tests::name_is_github ... ok
[INFO] [stdout] test tracker::github::tests::parse_gh_create_output_extracts_number_from_url ... ok
[INFO] [stdout] test tracker::github::tests::parse_issue_number_list_extracts_issue_numbers_from_list_response ... ok
[INFO] [stdout] test tracker::github::tests::parse_issue_number_list_returns_empty_for_empty_array ... ok
[INFO] [stdout] test tracker::github::tests::parse_issue_number_list_returns_empty_on_blank_or_unparseable_output ... ok
[INFO] [stdout] test tracker::github::tests::read_uses_issue_view_with_full_json_field_list ... ok
[INFO] [stdout] test tracker::github::tests::remove_label_uses_issue_edit_remove_label ... ok
[INFO] [stdout] test tracker::github::tests::set_status_closed_uses_issue_close ... ok
[INFO] [stdout] test tracker::github::tests::set_status_in_progress_adds_in_progress_label ... ok
[INFO] [stdout] test tracker::github::tests::set_status_open_uses_issue_reopen ... ok
[INFO] [stdout] test tracker::github::tests::status_is_normalised_to_lowercase ... ok
[INFO] [stdout] test tracker::tests::build_returns_concrete_impls_for_known_plugins ... ok
[INFO] [stdout] test tracker::tests::build_returns_none_for_unimplemented_plugins ... ok
[INFO] [stdout] test secrets::env::tests::errors_when_unset ... ok
[INFO] [stdout] test secrets::one_password::tests::propagates_op_invocation_failure ... ok
[INFO] [stdout] test tracker::tests::issue_detail_round_trips_through_serde ... ok
[INFO] [stdout] test tracker::tests::issue_matches_human_id_case_insensitive ... ok
[INFO] [stdout] test tracker::tests::issue_matches_title_case_insensitive ... ok
[INFO] [stdout] test tracker::tests::sort_open_first_places_open_before_closed_then_alpha ... ok
[INFO] [stdout] test tracker::tests::status_round_trips_through_kebab_case_serde ... ok
[INFO] [stdout] test tui::app::status::tests::dismiss_clears_any_flash ... ok
[INFO] [stdout] test tui::app::status::tests::error_flash_does_not_expire_with_ttl ... ok
[INFO] [stdout] test tui::app::status::tests::error_flash_returns_message_with_error_kind ... ok
[INFO] [stdout] test tui::app::status::tests::fresh_status_bar_has_no_flash ... ok
[INFO] [stdout] test tui::app::status::tests::info_flash_expires_after_ttl ... ok
[INFO] [stdout] test tracker::tests::issue_matches_empty_filter ... ok
[INFO] [stdout] test session::aggregate::tests::illegal_transition_leaves_session_untouched ... ok
[INFO] [stdout] test tui::app::status::tests::info_flash_then_current_returns_message_with_info_kind ... ok
[INFO] [stdout] test tui::app::status::tests::second_flash_overrides_previous_message ... ok
[INFO] [stdout] test session::aggregate::tests::terminal_state_cannot_be_left ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::build_with_missing_workflow_yaml_reports_load_error ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::layout_emits_loop_back_annotation_row_after_revise ... ok
[INFO] [stdout] test session::store::tests::load_errors_for_unknown_session ... ok
[INFO] [stdout] test session::store::tests::save_refuses_when_no_directory_was_created ... ok
[INFO] [stdout] test session::store::tests::create_refuses_to_clobber_existing_meta ... ok
[INFO] [stdout] test tracker::git_bug::tests::create_errors_when_add_stdout_is_unrecognisable ... ok
[INFO] [stdout] test session::store::tests::load_detects_id_mismatch_in_meta ... ok
[INFO] [stdout] test tracker::git_bug::tests::invoker_error_propagates_with_context ... ok
[INFO] [stdout] test tracker::github::tests::create_errors_when_stdout_has_no_url_with_a_trailing_number ... ok
[INFO] [stdout] test tracker::github::tests::invoker_error_propagates_with_context ... ok
[INFO] [stdout] test tracker::github::tests::link_blocks_surfaces_a_non_integer_database_id_as_a_typed_error ... ok
[INFO] [stdout] test tracker::github::tests::link_parent_surfaces_a_non_integer_database_id_as_a_typed_error ... ok
[INFO] [stdout] test tracker::tests::default_write_methods_bail_with_tracker_name_in_message ... ok
[INFO] [stdout] test session::reaper::tests::reap_records_stopper_failures_without_failing_the_sweep ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::layout_lists_nodes_depth_first_with_fanout_glyphs ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::status_marks_failed_for_current_node_when_session_failed ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::status_marks_node_done_when_cost_recorded ... ok
[INFO] [stdout] test tui::tests::app_state_selection_none_when_no_sessions ... ok
[INFO] [stdout] test tui::tests::app_state_selects_first_session_on_initial_load ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::status_marks_skipped_by_gate_when_log_starts_with_skipped_marker ... ok
[INFO] [stdout] test tui::tests::app_state_reload_preserves_selection_by_id ... ok
[INFO] [stdout] test tui::app::workflow_progress::tests::status_marks_current_node_running_and_others_pending ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_appends_title_for_ticket_edges_only ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_emits_cycle_warning_when_ticket_is_in_cycle_set ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_appends_title_on_blocks_side_too ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_is_a_noop_when_no_edges_and_no_cycle ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_renders_blocked_on_section_with_kind_marker ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_renders_blocks_section_when_others_depend_on_this ... ok
[INFO] [stdout] test tui::tests::append_deps_lines_renders_both_sections_when_ticket_is_on_both_sides ... ok
[INFO] [stdout] test tui::tests::autonomous_tick_when_disabled_is_a_noop ... ok
[INFO] [stdout] test tui::tests::build_workflow_run_command_with_detached_appends_flag ... ok
[INFO] [stdout] test tui::tests::build_workflow_run_command_without_issue ... ok
[INFO] [stdout] test tui::tests::build_workflow_run_command_with_issue_appends_flag ... ok
[INFO] [stdout] test tui::tests::detail_kv_pairs_includes_worktree_rows_when_set ... ok
[INFO] [stdout] test tui::tests::confirm_overlay_n_cancels_without_kill ... ok
[INFO] [stdout] test tui::tests::detail_kv_pairs_surfaces_ticket_id_and_title_when_issue_bound ... ok
[INFO] [stdout] test tui::tests::down_at_orchestrator_with_no_workers_stays_put ... ok
[INFO] [stdout] test tui::tests::centered_rect_returns_rect_inside_parent ... ok
[INFO] [stdout] test tui::tests::down_from_orchestrator_jumps_to_workers_pane ... ok
[INFO] [stdout] test tui::tests::confirm_overlay_q_during_confirm_cancels_does_not_quit ... ok
[INFO] [stdout] test tui::tests::centered_rect_clamps_percentages_to_safe_range ... ok
[INFO] [stdout] test tui::tests::confirm_overlay_esc_cancels_without_kill ... ok
[INFO] [stdout] test tui::tests::detail_kv_pairs_omits_worktree_rows_when_unset ... ok
[INFO] [stdout] test tui::tests::confirm_overlay_y_executes_the_kill ... ok
[INFO] [stdout] test tui::tests::detail_kv_pairs_surfaces_pr_number_and_title_when_pr_bound ... ok
[INFO] [stdout] test tui::tests::filter_hides_non_matching_issues ... ok
[INFO] [stdout] test tui::tests::format_cost_none_is_dash ... ok
[INFO] [stdout] test tui::tests::format_cost_some_is_two_decimal_dollars ... ok
[INFO] [stdout] test tui::tests::format_epoch_ms_renders_yyyy_mm_dd_hh_mm_ss_utc ... ok
[INFO] [stdout] test tui::tests::format_epoch_ms_zero_is_unix_epoch ... ok
[INFO] [stdout] test tui::tests::fresh_repo_defaults_focus_to_orchestrator_and_enter_spawns ... ok
[INFO] [stdout] test tui::tests::handle_key_esc_returns_quit ... ok
[INFO] [stdout] test tui::tests::handle_key_shift_k_opens_confirm_overlay_without_immediate_kill ... ok
[INFO] [stdout] test tui::tests::fresh_repo_with_workers_defaults_focus_to_workflows ... ok
[INFO] [stdout] test tui::tests::handle_key_shift_k_on_terminal_session_is_a_noop_with_status_message ... ok
[INFO] [stdout] test tui::tests::global_shortcuts_are_blocked_while_spawn_modal_is_open ... ok
[INFO] [stdout] test tui::tests::handle_key_q_returns_quit ... ok
[INFO] [stdout] test tui::tests::handle_key_shift_t_for_placeholder_tracker_flashes_status ... ok
[INFO] [stdout] test tui::tests::esc_in_spawn_view_returns_to_sessions_without_spawning ... ok
[INFO] [stdout] test tui::tests::issue_detail_lines_includes_id_title_status_and_comment_count ... ok
[INFO] [stdout] test tui::tests::issue_detail_lines_shows_no_body_placeholder_when_empty ... ok
[INFO] [stdout] test tui::tests::issue_detail_lines_omits_labels_row_when_none ... ok
[INFO] [stdout] test tui::tests::handle_key_shift_t_resolves_git_bug_tracker_to_termui ... ok
[INFO] [stdout] test tui::tests::handle_key_r_reloads_from_disk ... ok
[INFO] [stdout] test tui::tests::lifetime_cost_skips_sessions_without_cost_data ... ok
[INFO] [stdout] test tui::tests::list_workflows_dir_returns_empty_when_missing ... ok
[INFO] [stdout] test tui::tests::jk_in_workflow_tab_wraps_through_workflow_list ... ok
[INFO] [stdout] test tui::tests::list_workflow_entries_marks_issueless_flag_per_yaml ... ok
[INFO] [stdout] test tui::tests::handle_key_shift_t_resolves_github_tracker_to_gh_dash ... ok
[INFO] [stdout] test tui::tests::enter_with_orchestrator_focus_returns_open_orchestrator_action ... ok
[INFO] [stdout] test tui::tests::list_workflows_dir_skips_non_yaml_and_subdirs ... ok
[INFO] [stdout] test tui::tests::list_workflows_dir_returns_yaml_basenames_sorted ... ok
[INFO] [stdout] test tui::tests::lifetime_cost_returns_zero_zero_for_empty ... ok
[INFO] [stdout] test tui::tests::maybe_auto_reload_skipped_while_overlay_up ... ok
[INFO] [stdout] test tui::tests::node_transition_hr_matches_done_line ... ok
[INFO] [stdout] test tui::tests::node_transition_hr_matches_failed_line_and_strips_transcript_hint ... ok
[INFO] [stdout] test tui::tests::node_transition_hr_matches_starting_line ... ok
[INFO] [stdout] test tui::tests::node_transition_hr_returns_none_for_ordinary_agent_output ... ok
[INFO] [stdout] test tui::tests::n_key_with_no_workflows_opens_empty_picker ... ok
[INFO] [stdout] test tui::tests::maybe_auto_reload_picks_up_out_of_process_state_transitions ... ok
[INFO] [stdout] test tui::tests::orchestrator_row_label_marker_reflects_state ... ok
[INFO] [stdout] test tui::tests::maybe_auto_reload_debounces_within_interval ... ok
[INFO] [stdout] test tui::tests::plan_detail_lines_appends_title_when_known ... ok
[INFO] [stdout] test tui::tests::plan_detail_lines_emits_epic_ref_only_when_set ... ok
[INFO] [stdout] test tui::tests::open_spawn_log_creates_parent_dir_and_truncates_existing_file ... ok
[INFO] [stdout] test tui::tests::orchestrator_row_label_is_compact_marker_plus_tmux_name ... ok
[INFO] [stdout] test tui::tests::o_toggles_show_closed_on_issue_tab ... ok
[INFO] [stdout] test tui::tests::format_epoch_ms_falls_back_for_unrepresentable_values ... ok
[INFO] [stdout] test tui::tests::plan_failure_word_renders_kebab_case ... ok
[INFO] [stdout] test tui::tests::plan_detail_lines_marks_injected_items ... ok
[INFO] [stdout] test tui::tests::plan_detail_lines_includes_progress_and_item_rows ... ok
[INFO] [stdout] test tui::tests::move_workflow_selection_clamps_at_edges ... ok
[INFO] [stdout] test tui::tests::n_key_in_sessions_view_opens_spawn_picker ... ok
[INFO] [stdout] test tui::tests::enter_with_workflows_focus_is_a_noop_for_now ... ok
[INFO] [stdout] test tui::tests::plan_row_label_leads_with_name_and_progress ... ok
[INFO] [stdout] test tui::tests::plan_row_label_marker_reflects_state ... ok
[INFO] [stdout] test tui::tests::plan_row_label_omits_warning_when_no_item_ticket_intersects_cycle_set ... ok
[INFO] [stdout] test tui::tests::plan_row_label_prepends_warning_when_any_item_ticket_is_in_cycle ... ok
[INFO] [stdout] test tui::tests::plan_state_word_round_trip ... ok
[INFO] [stdout] test tui::tests::r_reload_picks_up_config_changes ... ok
[INFO] [stdout] test tui::tests::read_latest_log_tail_ignores_non_log_files ... ok
[INFO] [stdout] test tui::tests::item_cursor_clears_when_the_sidebar_selection_moves ... ok
[INFO] [stdout] test tui::tests::read_tail_string_clamps_to_max_bytes_from_the_end ... ok
[INFO] [stdout] test tui::tests::render_status_line_no_cost_data_shows_only_session_count ... ok
[INFO] [stdout] test tui::tests::refresh_log_tail_clears_transcript_tail_when_no_session_selected ... ok
[INFO] [stdout] test tui::tests::read_tail_string_returns_none_on_missing_or_empty_file ... ok
[INFO] [stdout] test tui::tests::render_status_line_omits_plan_segment_when_no_active_plans ... ok
[INFO] [stdout] test tui::tests::render_status_line_pluralises_when_more_than_one_active_plan ... ok
[INFO] [stdout] test tui::tests::render_status_line_shows_active_plan_count ... ok
[INFO] [stdout] test tui::tests::read_latest_log_tail_returns_empty_when_dir_missing ... ok
[INFO] [stdout] test tui::tests::session_row_label_appends_plan_annotation_when_active_plan_contains_ticket ... ok
[INFO] [stdout] test tui::tests::render_status_line_with_cost_data_shows_total ... ok
[INFO] [stdout] test tui::tests::refresh_log_tail_populates_transcript_tail_from_transcript_log ... ok
[INFO] [stdout] test tui::tests::scheduler_tick_after_enable_advances_debounce_clock ... ok
[INFO] [stdout] test tui::tests::session_row_label_falls_back_to_id_stub_when_no_ticket_or_pr ... ok
[INFO] [stdout] test tui::tests::session_row_label_leads_with_ticket_id_and_includes_title ... ok
[INFO] [stdout] test tui::tests::session_row_label_omits_plan_annotation_when_no_active_plan_owns_the_ticket ... ok
[INFO] [stdout] test tui::tests::session_row_label_omits_warning_when_session_has_no_ticket_even_with_cycles ... ok
[INFO] [stdout] test tui::tests::session_row_label_omits_warning_when_ticket_is_not_in_cycle_set ... ok
[INFO] [stdout] test tui::tests::session_row_label_prepends_warning_when_session_ticket_is_in_cycle ... ok
[INFO] [stdout] test tui::tests::session_row_label_preserves_cost_suffix_before_plan_annotation ... ok
[INFO] [stdout] test tui::tests::session_row_label_skips_paused_plans_for_annotation ... ok
[INFO] [stdout] test tui::tests::session_row_label_truncates_long_titles_with_ellipsis ... ok
[INFO] [stdout] test tui::tests::scheduler_tick_is_a_noop_when_disabled ... ok
[INFO] [stdout] test tui::tests::shift_a_refuses_to_enable_with_unimplemented_tracker ... ok
[INFO] [stdout] test tui::tests::shift_a_refuses_to_enable_when_runtime_daemon_unreachable ... ok
[INFO] [stdout] test tui::tests::session_row_label_omits_plan_annotation_when_session_has_no_ticket ... ok
[INFO] [stdout] test tui::tests::shift_a_toggles_autonomous_with_buildable_tracker ... ok
[INFO] [stdout] test tui::tests::j_in_items_focus_moves_the_item_cursor_not_the_sidebar ... ok
[INFO] [stdout] test tui::tests::shift_k_in_spawn_view_does_not_mark_session_failed ... ok
[INFO] [stdout] test tui::tests::poll_pending_spawn_silently_clears_successful_runs ... ok
[INFO] [stdout] test tui::tests::shift_l_refuses_to_enable_when_runtime_daemon_unreachable ... ok
[INFO] [stdout] test tui::tests::shift_l_toggles_scheduler_on_then_off ... ok
[INFO] [stdout] test tui::tests::read_latest_log_tail_picks_newest_log_file ... ok
[INFO] [stdout] test tui::tests::shift_p_is_a_noop_with_status_when_plan_is_completed ... ok
[INFO] [stdout] test tui::tests::shift_p_in_plans_view_toggles_active_to_paused_and_back ... ok
[INFO] [stdout] test tui::tests::sort_sessions_orders_newest_first ... ok
[INFO] [stdout] test tui::tests::spawn_log_path_places_files_under_dot_fleet_spawn_logs ... ok
[INFO] [stdout] test tui::tests::spawn_log_path_sanitizes_hostile_workflow_names ... ok
[INFO] [stdout] test tui::tests::poll_pending_spawn_surfaces_nonzero_exit_as_error_overlay ... ok
[INFO] [stdout] test tui::tests::state_marker_distinguishes_each_state ... ok
[INFO] [stdout] test tui::tests::state_word_matches_serde_renames ... ok
[INFO] [stdout] test tui::tests::stays_on_issue_tab_when_unsupported_and_no_issueless_workflows ... ok
[INFO] [stdout] test tui::tests::sort_sessions_breaks_ties_by_id_descending ... ok
[INFO] [stdout] test tui::tests::snaps_to_workflow_tab_when_tracker_plugin_is_unsupported ... ok
[INFO] [stdout] test tui::tests::shift_c_marks_selected_plan_completed_and_saves_to_disk ... ok
[INFO] [stdout] test tui::tests::tab_in_spawn_picker_switches_between_issue_and_workflow ... ok
[INFO] [stdout] test tui::tests::tail_lines_returns_empty_for_empty_input ... ok
[INFO] [stdout] test tui::tests::tail_lines_returns_last_n ... ok
[INFO] [stdout] test tui::tests::shift_o_is_no_longer_a_hotkey ... ok
[INFO] [stdout] test tui::tests::tail_lines_returns_all_when_input_shorter_than_n ... ok
[INFO] [stdout] test tui::tests::tab_in_plans_view_toggles_focus_between_sidebar_and_items ... ok
[INFO] [stdout] test tui::tests::tab_in_sessions_view_toggles_focus_between_workflows_and_orchestrator ... ok
[INFO] [stdout] test tui::tests::ticket_detail_lines_includes_deps_section_under_cached_issue ... ok
[INFO] [stdout] test tui::tests::typing_in_spawn_picker_appends_to_filter_not_navigation ... ok
[INFO] [stdout] test tui::tests::sidebar_active_pane_border_uses_accent_color ... ok
[INFO] [stdout] test tui::tests::ticket_detail_lines_surfaces_cached_error_verbatim ... ok
[INFO] [stdout] test tui::tests::up_at_orchestrator_is_a_noop_no_wraparound ... ok
[INFO] [stdout] test tui::tests::ticket_detail_lines_says_tab_when_sidebar_has_focus ... ok
[INFO] [stdout] test tui::tests::ticket_detail_lines_renders_cached_issue_when_items_focused ... ok
[INFO] [stdout] test tui::tests::ticket_detail_lines_shows_fetching_when_cache_is_empty_under_items_focus ... ok
[INFO] [stdout] test tui::tests::spawn_view_renders_overlay_atop_sessions ... ok
[INFO] [stdout] test tui::tests::wrapped_row_count_counts_visual_rows_not_source_lines ... ok
[INFO] [stdout] test tui::tests::w_key_cycles_workflow_override_on_focused_issue ... ok
[INFO] [stdout] test tui::tests::workflow_tab_filters_to_issueless_workflows_only ... ok
[INFO] [stdout] test tui::tests::wrapped_row_count_handles_zero_width_without_dividing_by_zero ... ok
[INFO] [stdout] test tui::tests::sidebar_orchestrator_pane_has_no_count_in_title ... ok
[INFO] [stdout] test tui::tests::u_with_sidebar_focus_emits_status_message_and_does_nothing ... ok
[INFO] [stdout] test tui::tests::u_in_items_focus_clears_deps_edges_keyed_by_selected_ticket ... ok
[INFO] [stdout] test workflow::executor::tests::assert_node_combined_with_when_can_be_skipped ... ok
[INFO] [stdout] test workflow::executor::tests::assert_node_with_false_expression_fails_session ... ok
[INFO] [stdout] test workflow::executor::tests::assert_node_with_true_expression_passes_and_workflow_completes ... ok
[INFO] [stdout] test workflow::executor::tests::bash_issue_env_prefix_emits_quoted_assignments_with_trailing_space ... ok
[INFO] [stdout] test workflow::executor::tests::bash_issue_env_prefix_handles_empty_title ... ok
[INFO] [stdout] test workflow::executor::tests::bash_issue_env_prefix_is_empty_when_no_issue ... ok
[INFO] [stdout] test workflow::executor::tests::bash_issue_env_prefix_quotes_embedded_single_quotes ... ok
[INFO] [stdout] test workflow::executor::tests::assert_node_with_unknown_output_errors_with_pointer ... ok
[INFO] [stdout] test tui::tests::up_at_top_of_workers_jumps_to_orchestrator_pane ... ok
[INFO] [stdout] test workflow::executor::tests::bash_node_runs_via_invoker_and_completes ... ok
[INFO] [stdout] test workflow::executor::tests::bash_node_failure_marks_session_failed ... ok
[INFO] [stdout] test workflow::executor::tests::bash_pr_env_prefix_emits_quoted_block_with_trailing_space ... ok
[INFO] [stdout] test workflow::executor::tests::bash_pr_env_prefix_empty_when_unbound ... ok
[INFO] [stdout] test workflow::executor::tests::agent_container_receives_egress_env_from_enforcer ... ok
[INFO] [stdout] test workflow::executor::tests::agent_node_clears_container_marker_after_clean_stop ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_appends_pr_vars_when_present ... ok
[INFO] [stdout] test workflow::executor::tests::agent_node_without_parseable_cost_leaves_node_costs_empty ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_appends_issue_vars_when_present ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_appends_prompt_artifact_when_present ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_combines_all_context_fields ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_appends_persona_when_present ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_omits_pr_block_when_no_pr_bound ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_resolves_passthrough_against_host_env ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_returns_passthrough_only_when_context_empty ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_omits_merge_conflict_vars_by_default ... ok
[INFO] [stdout] test workflow::executor::tests::agent_node_records_parsed_cost_on_session ... ok
[INFO] [stdout] test workflow::executor::tests::agent_node_failure_marks_session_failed_and_propagates_error ... ok
[INFO] [stdout] test workflow::executor::tests::check_cost_budget_passes_when_both_budgets_unlimited ... ok
[INFO] [stdout] test workflow::executor::tests::check_interrupt_returns_false_when_flag_present_but_clear ... ok
[INFO] [stdout] test workflow::executor::tests::check_cost_budget_refuses_when_session_budget_already_met ... ok
[INFO] [stdout] test workflow::executor::tests::check_cost_budget_passes_when_session_under_budget ... ok
[INFO] [stdout] test workflow::executor::tests::check_cost_budget_refuses_when_lifetime_budget_already_met ... ok
[INFO] [stdout] test workflow::executor::tests::bash_node_with_satisfied_input_contract_completes ... ok
[INFO] [stdout] test workflow::executor::tests::check_interrupt_returns_true_when_flag_set ... ok
[INFO] [stdout] test workflow::executor::tests::check_interrupt_returns_false_when_flag_absent ... ok
[INFO] [stdout] test workflow::executor::tests::copy_dir_contents_overwrites_existing_files_in_dst ... ok
[INFO] [stdout] test workflow::executor::tests::copy_dir_contents_recursively_copies_files ... ok
[INFO] [stdout] test workflow::executor::tests::bash_node_script_carries_issue_env_when_issue_present ... ok
[INFO] [stdout] test workflow::executor::tests::count_tracker_create_firings_returns_zero_when_no_outputs_persisted ... ok
[INFO] [stdout] test workflow::executor::tests::detect_current_branch_errors_on_detached_head ... ok
[INFO] [stdout] test workflow::executor::tests::detect_current_branch_returns_short_name ... ok
[INFO] [stdout] test workflow::executor::tests::detect_merge_conflict_markers_finds_files_with_diff3_markers ... ok
[INFO] [stdout] test workflow::executor::tests::count_tracker_create_firings_skips_non_tracker_create_nodes ... ok
[INFO] [stdout] test workflow::executor::tests::detect_merge_conflict_markers_skips_dot_git_and_node_modules ... ok
[INFO] [stdout] test tui::tests::sidebar_orchestrator_pane_renders_when_no_orchestrator_exists_yet ... ok
[INFO] [stdout] test workflow::executor::tests::execute_with_start_after_node_unknown_id_errors ... ok
[INFO] [stdout] test tui::tests::plan_item_word_uses_kebab_case_for_in_progress ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_coerces_scalar_types_to_strings ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_errors_when_file_missing ... ok
[INFO] [stdout] test workflow::executor::tests::driver_pid_cleared_when_workflow_pauses_at_gate ... ok
[INFO] [stdout] test workflow::executor::tests::driver_pid_is_set_during_run_and_cleared_on_completion ... ok
[INFO] [stdout] test workflow::executor::tests::executor_calls_enforcer_setup_and_teardown_around_run ... ok
[INFO] [stdout] test workflow::executor::tests::driver_pid_cleared_when_workflow_fails ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_errors_when_top_level_is_not_an_object ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_json_encodes_object_values ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_errors_when_referenced_key_is_missing ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_json_encodes_array_values ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_outcome_round_trips_ok_variant_through_json ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_outcome_round_trips_failed_variant_through_json ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_no_op_when_node_declares_none ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_maps_null_values_to_empty_string ... ok
[INFO] [stdout] test workflow::executor::tests::extract_outputs_reads_flat_keys_into_acc ... ok
[INFO] [stdout] test workflow::executor::tests::fleet_tracker_mount_returns_none_on_arch_mismatch_even_when_binary_present ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_rejects_gate_sibling ... ok
[INFO] [stdout] test workflow::executor::tests::host_arch_matches_image_returns_false_for_mismatch ... ok
[INFO] [stdout] test workflow::executor::tests::host_arch_matches_image_returns_false_when_adapter_errors ... ok
[INFO] [stdout] test workflow::executor::tests::host_arch_matches_image_returns_false_when_adapter_reports_none ... ok
[INFO] [stdout] test workflow::executor::tests::execute_with_start_after_node_skips_predecessors ... ok
[INFO] [stdout] test workflow::executor::tests::host_arch_matches_image_returns_true_for_matching_arch ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_sibling_outputs_flow_into_downstream_when ... ok
[INFO] [stdout] test workflow::executor::tests::execute_stamps_worktree_meta_onto_session ... ok
[INFO] [stdout] test workflow::executor::tests::execute_without_worktree_leaves_session_worktree_fields_none ... ok
[INFO] [stdout] test workflow::executor::tests::build_agent_env_emits_merge_conflict_vars_when_flag_set ... ok
[INFO] [stdout] test workflow::executor::tests::gate_node_pauses_workflow_in_awaiting_gate_state ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_runs_all_siblings_and_workflow_completes ... ok
[INFO] [stdout] test workflow::executor::tests::fanout_with_one_failing_sibling_fails_the_workflow ... ok
[INFO] [stdout] test workflow::executor::tests::issue_context_persists_across_resume_when_caller_omits_it ... ok
[INFO] [stdout] test workflow::executor::tests::loop_back_to_with_max_loops_zero_does_not_loop ... ok
[INFO] [stdout] test workflow::executor::tests::loop_back_to_replays_intermediates_too ... ok
[INFO] [stdout] test workflow::executor::tests::loop_back_to_replays_target_slice_for_max_loops_iterations ... ok
[INFO] [stdout] test workflow::executor::tests::outputs_from_persisted_handles_empty ... ok
[INFO] [stdout] test workflow::executor::tests::missing_output_artifact_fails_the_node_after_run ... ok
[INFO] [stdout] test workflow::executor::tests::outputs_carry_forward_into_replay_from_src ... ok
[INFO] [stdout] test workflow::executor::tests::issue_context_on_resume_overrides_persisted_when_supplied ... ok
[INFO] [stdout] test workflow::executor::tests::outputs_to_and_from_persisted_round_trip ... ok
[INFO] [stdout] test workflow::executor::tests::parse_output_ref_errors_on_empty_halves ... ok
[INFO] [stdout] test workflow::executor::tests::parse_gitlink_gitdir_handles_trailing_newline_and_whitespace ... ok
[INFO] [stdout] test workflow::executor::tests::parse_output_ref_rejects_nested_paths ... ok
[INFO] [stdout] test workflow::executor::tests::parse_output_ref_splits_node_and_name ... ok
[INFO] [stdout] test workflow::executor::tests::parse_output_ref_errors_on_missing_dot ... ok
[INFO] [stdout] test workflow::executor::tests::loop_back_to_with_max_loops_default_runs_one_revision_pass ... ok
[INFO] [stdout] test workflow::executor::tests::outputs_survive_resume_across_a_gate ... ok
[INFO] [stdout] test workflow::executor::tests::loop_back_to_does_not_stack_across_independent_loops ... ok
[INFO] [stdout] test workflow::executor::tests::missing_input_artifact_fails_the_node_before_run ... ok
[INFO] [stdout] test workflow::executor::tests::replay_copies_artifacts_and_runs_only_the_rerun_from_node ... ok
[INFO] [stdout] test workflow::executor::tests::replay_only_ignores_loop_back_on_chosen_node ... ok
[INFO] [stdout] test workflow::executor::tests::one_agent_node_workflow_completes_against_local_adapter ... ok
[INFO] [stdout] test workflow::executor::tests::loop_counts_persist_into_session_meta_after_gate_pause ... ok
[INFO] [stdout] test workflow::executor::tests::replay_rejects_unknown_rerun_from ... ok
[INFO] [stdout] test workflow::executor::tests::replay_only_rejects_unknown_node ... ok
[INFO] [stdout] test workflow::executor::tests::replay_stamps_worktree_meta_onto_new_session ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_chain_pr_base_returns_none_when_blocker_has_no_completed_session ... ok
[INFO] [stdout] test workflow::executor::tests::replay_handles_missing_src_artifacts_dir ... ok
[INFO] [stdout] test workflow::executor::tests::replay_rejects_missing_src_session ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_chain_pr_base_returns_none_when_session_has_no_issue ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_loop_back_returns_none_when_no_loop_back_to ... ok
[INFO] [stdout] test workflow::executor::tests::multi_node_diamond_workflow_runs_all_nodes_in_order ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_loop_back_returns_target_index_when_under_max ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_chain_pr_base_returns_chain_parent_branch_when_session_has_blockers ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_errors_when_no_ref_and_no_session_pr ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_loop_back_returns_none_at_max ... ok
[INFO] [stdout] test workflow::executor::tests::outputs_refresh_across_loop_back_iterations ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_errors_when_upstream_output_missing ... ok
[INFO] [stdout] test workflow::executor::tests::replay_rerun_from_first_node_replays_full_workflow ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_errors_when_upstream_value_not_a_number ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_uses_numeric_literal ... ok
[INFO] [stdout] test workflow::executor::tests::replay_only_fires_exactly_one_node_then_exits ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_falls_back_to_session_pr_when_no_ref ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_pr_number_uses_dotted_output_ref ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_prompt_artifact_returns_none_when_no_prompt_file ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_prompt_artifact_propagates_absolute_path_intact ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_prompt_artifact_reads_relative_path_under_workspace ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_secrets_in_env_is_a_noop_when_no_backend_matches ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_secrets_in_env_propagates_backend_failure ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_prompt_artifact_surfaces_missing_file_with_path_context ... ok
[INFO] [stdout] test workflow::executor::tests::resolve_secrets_in_env_overlays_env_backend_value ... ok
[INFO] [stdout] test workflow::executor::tests::stamp_request_labels_empty_stamp_returns_supplied_unchanged ... ok
[INFO] [stdout] test workflow::executor::tests::topological_order_handles_diamond ... ok
[INFO] [stdout] test workflow::executor::tests::topological_order_is_deterministic_for_independent_roots ... ok
[INFO] [stdout] test workflow::executor::tests::resume_rejects_when_session_directory_is_missing ... ok
[INFO] [stdout] test workflow::executor::tests::resume_preserves_worktree_fields_on_loaded_session ... ok
[INFO] [stdout] test workflow::executor::tests::resume_rejects_non_paused_session ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_enforces_max_recommended_tickets_cap ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_allows_firings_up_to_default_cap ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_calls_create_and_emits_outputs_end_to_end ... ok
[INFO] [stdout] test workflow::executor::tests::resume_continues_workflow_past_the_gate ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_calls_link_parent_when_issue_bound ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_does_not_inject_when_parent_plan_is_paused ... ok
[INFO] [stdout] test workflow::executor::tests::resume_does_not_re_enter_already_exhausted_loop ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_propagates_link_parent_failures ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_fails_on_empty_title ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_fails_when_executor_has_no_tracker ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_injects_new_ticket_before_parent_in_active_plan ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_writes_no_deps_file_when_no_issue_bound ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_fails_when_recommend_ticket_is_malformed_json ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_propagates_tracker_create_failures ... ok
[INFO] [stdout] test workflow::executor::tests::unknown_agent_name_errors_and_session_ends_failed ... ok
[INFO] [stdout] test workflow::executor::tests::verify_inputs_passes_when_no_inputs_declared ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_skips_link_parent_when_no_issue_bound ... ok
[INFO] [stdout] test workflow::executor::tests::verify_inputs_passes_when_all_inputs_present ... ok
[INFO] [stdout] test workflow::executor::tests::verify_merge_resolved_bails_when_committed_with_unresolved_markers ... ok
[INFO] [stdout] test workflow::executor::tests::verify_merge_resolved_passes_on_clean_tree ... ok
[INFO] [stdout] test workflow::executor::tests::verify_merge_resolved_bails_when_merge_head_still_present ... ok
[INFO] [stdout] test workflow::executor::tests::verify_merge_resolved_scans_for_markers_even_when_no_initial_merge_state ... ok
[INFO] [stdout] test workflow::executor::tests::verify_inputs_reports_first_missing_only ... ok
[INFO] [stdout] test workflow::executor::tests::verify_outputs_passes_when_all_outputs_present ... ok
[INFO] [stdout] test workflow::executor::tests::verify_outputs_fails_with_specific_path_when_missing ... ok
[INFO] [stdout] test workflow::executor::tests::verify_outputs_passes_when_no_outputs_declared ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_records_deps_edge_when_link_parent_fires ... ok
[INFO] [stdout] test workflow::executor::tests::worktree_git_mounts_emits_gitdir_and_commondir_for_worktree ... ok
[INFO] [stdout] test workflow::executor::tests::worktree_git_mounts_is_empty_for_non_git_workspace ... ok
[INFO] [stdout] test workflow::executor::tests::when_evaluation_error_fails_the_session_with_clear_pointer ... ok
[INFO] [stdout] test workflow::executor::tests::when_skip_does_not_fire_loop_back_to ... ok
[INFO] [stdout] test workflow::executor::tests::worktree_in_merging_state_detects_merge_head_file ... ok
[INFO] [stdout] test workflow::executor::tests::when_true_runs_node_and_when_false_sibling_is_skipped_other_decision ... ok
[INFO] [stdout] test workflow::expr::tests::and_short_circuits_correctly ... ok
[INFO] [stdout] test workflow::executor::tests::worktree_git_mounts_is_empty_for_regular_repo_with_git_dir ... ok
[INFO] [stdout] test workflow::expr::tests::inequality_inverts_result ... ok
[INFO] [stdout] test workflow::expr::tests::missing_dot_between_node_and_name_is_an_error ... ok
[INFO] [stdout] test workflow::expr::tests::missing_rhs_literal_is_an_error ... ok
[INFO] [stdout] test workflow::expr::tests::or_short_circuits_correctly ... ok
[INFO] [stdout] test workflow::expr::tests::and_binds_tighter_than_or ... ok
[INFO] [stdout] test workflow::executor::tests::when_false_skips_node_and_records_skip_log ... ok
[INFO] [stdout] test workflow::expr::tests::simple_equality_false ... ok
[INFO] [stdout] test workflow::expr::tests::simple_equality_true ... ok
[INFO] [stdout] test workflow::expr::tests::single_ampersand_is_an_error ... ok
[INFO] [stdout] test workflow::executor::tests::worktree_git_mounts_skips_main_when_commondir_missing ... ok
[INFO] [stdout] test workflow::expr::tests::single_quoted_string_literal_accepted ... ok
[INFO] [stdout] test workflow::expr::tests::trailing_garbage_after_expression_is_an_error ... ok
[INFO] [stdout] test workflow::expr::tests::unbalanced_parens_are_an_error ... ok
[INFO] [stdout] test workflow::expr::tests::unknown_output_errors_loudly ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_skips_plan_injection_when_no_plan_owns_parent ... ok
[INFO] [stdout] test workflow::expr::tests::unterminated_string_literal_is_an_error ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_accepts_blocked_with_non_empty_blocker ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_accepts_blocked_without_blocker_when_workflow_did_not_declare_one ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_accepts_done ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_accepts_progress ... ok
[INFO] [stdout] test workflow::executor::tests::tracker_create_node_stamps_configured_filter_labels_onto_request ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_is_a_noop_when_node_does_not_declare_outcome ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_is_case_sensitive ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_rejects_blocked_with_empty_blocker_when_declared ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_rejects_unknown_value ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_rejects_blocked_with_whitespace_only_blocker ... ok
[INFO] [stdout] test workflow::spec::tests::create_pr_missing_body_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::create_pr_missing_title_errors_clearly ... ok
[INFO] [stdout] test workflow::outcome::tests::validate_outcome_errors_when_declared_but_not_extracted ... ok
[INFO] [stdout] test workflow::spec::tests::effective_max_recommended_tickets_falls_back_to_default_when_unset ... ok
[INFO] [stdout] test workflow::spec::tests::empty_node_id_is_rejected ... ok
[INFO] [stdout] test workflow::expr::tests::parentheses_change_precedence ... ok
[INFO] [stdout] test workflow::spec::tests::empty_workflow_name_is_rejected ... ok
[INFO] [stdout] test workflow::spec::tests::from_path_loads_from_disk ... ok
[INFO] [stdout] test workflow::spec::tests::defaults_trigger_to_manual_only ... ok
[INFO] [stdout] test workflow::spec::tests::from_path_surfaces_io_error_with_path_context ... ok
[INFO] [stdout] test workflow::spec::tests::loop_field_absent_resolves_to_none ... ok
[INFO] [stdout] test workflow::spec::tests::loop_and_autonomous_together_are_rejected ... ok
[INFO] [stdout] test workflow::spec::tests::loop_field_parses_humantime_durations ... ok
[INFO] [stdout] test workflow::spec::tests::missing_expr_on_assert_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::loop_rejects_unparseable_duration_with_humantime_hint ... ok
[INFO] [stdout] test workflow::spec::tests::effective_max_recommended_tickets_honours_explicit_value ... ok
[INFO] [stdout] test workflow::spec::tests::loop_rejects_durations_below_floor ... ok
[INFO] [stdout] test workflow::spec::tests::missing_agent_field_on_agent_node_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::missing_script_field_on_bash_node_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::missing_from_on_tracker_create_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::missing_summary_on_gate_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::on_overlap_parses_explicit_run ... ok
[INFO] [stdout] test workflow::spec::tests::node_lookup_by_id_returns_first_match ... ok
[INFO] [stdout] test workflow::spec::tests::missing_siblings_on_fanout_errors_clearly ... ok
[INFO] [stdout] test workflow::spec::tests::on_overlap_defaults_to_skip ... ok
[INFO] [stdout] test workflow::spec::tests::parses_assert_node ... ok
[INFO] [stdout] test workflow::spec::tests::parses_bash_node_with_script ... ok
[INFO] [stdout] test workflow::spec::tests::parses_create_pr_with_defaulted_base_head_draft ... ok
[INFO] [stdout] test workflow::spec::tests::parses_explicit_trigger_block ... ok
[INFO] [stdout] test workflow::spec::tests::parses_create_pr_with_all_fields ... ok
[INFO] [stdout] test workflow::spec::tests::parses_fanout_node ... ok
[INFO] [stdout] test workflow::spec::tests::outputs_accept_scalar_shapes_but_reject_maps ... ok
[INFO] [stdout] test workflow::spec::tests::parses_gate_node ... ok
[INFO] [stdout] test workflow::spec::tests::parses_pr_checks_node_with_default_pr_reference ... ok
[INFO] [stdout] test workflow::spec::tests::parses_minimal_one_agent_node_workflow ... ok
[INFO] [stdout] test workflow::spec::tests::parses_full_standard_workflow_shape ... ok
[INFO] [stdout] test workflow::spec::tests::parses_pr_checks_node_with_explicit_pr_reference ... ok
[INFO] [stdout] test workflow::executor::tests::stamp_request_labels_unions_preserving_supplied_order ... ok
[INFO] [stdout] test workflow::executor::tests::topological_order_excludes_fanout_siblings ... ok
[INFO] [stdout] test workflow::executor::tests::verify_inputs_fails_with_specific_path_when_missing ... ok
[INFO] [stdout] test workflow::expr::tests::empty_string_value_compares_equal ... ok
[INFO] [stdout] test workflow::expr::tests::whitespace_around_operators_is_optional ... ok
[INFO] [stdout] test workflow::spec::tests::parses_pr_comment_with_explicit_pr_reference ... ok
[INFO] [stdout] test workflow::spec::tests::parses_pr_list_with_no_filter_and_no_bind_uses_defaults ... ok
[INFO] [stdout] test workflow::spec::tests::parses_tracker_create_node_with_default_link_parent ... ok
[INFO] [stdout] test workflow::spec::tests::parses_pr_list_with_filter_and_bind_per ... ok
[INFO] [stdout] test workflow::spec::tests::parses_tracker_create_node_with_explicit_link_parent_false ... ok
[INFO] [stdout] test workflow::spec::tests::trigger_defaults_issueless_to_false ... ok
[INFO] [stdout] test workflow::spec::tests::trigger_parses_issueless_true_from_yaml ... ok
[INFO] [stdout] test workflow::validate::tests::accepts_a_diamond_dag ... ok
[INFO] [stdout] test workflow::spec::tests::pr_comment_missing_body_errors_clearly ... ok
[INFO] [stdout] test workflow::validate::tests::loop_back_to_does_not_count_as_a_cycle ... ok
[INFO] [stdout] test workflow::validate::tests::empty_workflow_is_valid ... ok
[INFO] [stdout] test workflow::spec::tests::trigger_rejects_autonomous_and_issueless_together ... ok
[INFO] [stdout] test workflow::validate::tests::accepts_a_linear_dag ... ok
[INFO] [stdout] test workflow::validate::tests::pr_list_bind_per_with_depends_on_is_rejected ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_loop_back_to_unknown_node ... ok
[INFO] [stdout] test workflow::validate::tests::pr_list_bind_per_as_root_is_accepted ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_depends_on_unknown_node ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_duplicate_node_ids ... ok
[INFO] [stdout] test workflow::validate::tests::pr_list_without_bind_does_not_require_root_position ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_fanout_sibling_unknown_node ... ok
[INFO] [stdout] test workflow::spec::tests::unknown_node_type_error_lists_pr_kinds_in_allowed ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_self_dependency ... ok
[INFO] [stdout] test workflow::spec::tests::unknown_node_type_errors_with_allowed_list ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_three_node_cycle ... ok
[INFO] [stdout] test worktree::tests::create_worktree_for_pr_fetches_pull_ref_then_adds_worktree ... ok
[INFO] [stdout] test worktree::tests::create_worktree_for_pr_rejects_protected_session_branch ... ok
[INFO] [stdout] test worktree::tests::create_worktree_for_pr_surfaces_fetch_error_with_context ... ok
[INFO] [stdout] test worktree::tests::create_worktree_issues_expected_argv ... ok
[INFO] [stdout] test worktree::tests::create_worktree_accepts_session_branch_when_main_is_protected ... ok
[INFO] [stdout] test worktree::tests::create_worktree_for_fresh_matches_legacy_argv ... ok
[INFO] [stdout] test worktree::tests::create_worktree_rejects_protected_branch_loudly ... ok
[INFO] [stdout] test worktree::tests::delete_branch_force_uses_big_d ... ok
[INFO] [stdout] test worktree::tests::create_worktree_propagates_git_error ... ok
[INFO] [stdout] test worktree::tests::delete_branch_safe_uses_small_d ... ok
[INFO] [stdout] test worktree::tests::has_remote_branch_false_when_git_fails ... ok
[INFO] [stdout] test workflow::validate::tests::rejects_two_node_cycle ... ok
[INFO] [stdout] test worktree::tests::head_sha_error_names_the_directory ... ok
[INFO] [stdout] test worktree::tests::is_git_repo_true_when_git_says_true ... ok
[INFO] [stdout] test worktree::tests::merge_branches_clean_outcome_when_all_succeed ... ok
[INFO] [stdout] test worktree::tests::prune_worktrees_invokes_git_worktree_prune ... ok
[INFO] [stdout] test worktree::tests::remove_worktree_force_passes_force_flag ... ok
[INFO] [stdout] test worktree::tests::merge_branches_returns_setup_error_when_no_merge_head ... ok
[INFO] [stdout] test worktree::tests::session_branch_name_prefixes_and_truncates ... ok
[INFO] [stdout] test worktree::tests::has_remote_branch_true_when_git_resolves_ref ... ok
[INFO] [stdout] test worktree::tests::head_sha_returns_git_output ... ok
[INFO] [stdout] test worktree::tests::is_git_repo_false_on_error ... ok
[INFO] [stdout] test worktree::tests::is_git_repo_false_when_git_says_false ... ok
[INFO] [stdout] test worktree::tests::merge_branches_returns_conflicts_when_merge_head_appears ... ok
[INFO] [stdout] test worktree::tests::pr_fetch_ref_uses_stable_format ... ok
[INFO] [stdout] test worktree::tests::remove_worktree_without_force_omits_flag ... ok
[INFO] [stdout] test tui::tests::d_toggles_into_doctor_view_and_probes ... ok
[INFO] [stdout] test tui::tests::d_toggles_back_to_sessions ... ok
[INFO] [stdout] test tui::tests::shift_a_works_from_doctor_view_too ... FAILED
[INFO] [stdout] test tui::tests::doctor_snapshot_probe_handles_uninitialised_repo ... ok
[INFO] [stdout] test tui::tests::esc_in_doctor_view_returns_to_sessions_not_quit ... ok
[INFO] [stdout] test tui::tests::doctor_snapshot_probe_reports_initialised_after_init ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tui::tests::shift_a_works_from_doctor_view_too stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'tui::tests::shift_a_works_from_doctor_view_too' (2975) panicked at src/tui/tests.rs:1881:5:
[INFO] [stdout] assertion failed: state.autonomous.enabled()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x63c424424098 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x63c424424098 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x63c424424098 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x63c424424098 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x63c42443ea3a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x63c42443ea3a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x63c42442adb2 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x63c42442adb2 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x63c4243fc0e6 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x63c4243fc0e6 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x63c424419679 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x63c4241147bc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x63c4241147bc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x63c4244198f2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x63c4244198f2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x63c4243fc1d4 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x63c4243f0939 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x63c4243fd3ed - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x63c42443f22c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x63c42443f1f2 - core[8fb95b77d25ab6c8]::panicking::panic
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x63c423dae711 - fleet[32979c2a079d698c]::tui::tests::shift_a_works_from_doctor_view_too
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/tests.rs:1881:5
[INFO] [stdout]   21:     0x63c423d948a7 - fleet[32979c2a079d698c]::tui::tests::shift_a_works_from_doctor_view_too::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/tui/tests.rs:1866:40
[INFO] [stdout]   22:     0x63c423d13b56 - <fleet[32979c2a079d698c]::tui::tests::shift_a_works_from_doctor_view_too::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x63c42410789b - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x63c42410789b - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x63c424115115 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x63c424115115 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x63c424115115 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x63c424115115 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x63c424115115 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x63c424115115 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x63c424115115 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x63c42410ea24 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x63c42410ea24 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x63c424118192 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x63c424118192 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x63c424118192 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x63c424118192 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x63c424118192 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x63c424118192 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x63c424118192 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x63c424422c0f - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   42:     0x63c424422c0f - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7e2bb3e59aa4 - <unknown>
[INFO] [stdout]   44:     0x7e2bb3ee6a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tui::tests::shift_a_works_from_doctor_view_too
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1369 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin fleet`
[INFO] running `Command { std: "docker" "inspect" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9", kill_on_drop: false }`
[INFO] [stdout] 368a187ce9964a09ed8b0abd96e8f8e0ddebc7a0bfa1135bff4bbd30ea72a3f9
