[INFO] fetching crate pitboss 0.4.0...
[INFO] testing pitboss-0.4.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate pitboss 0.4.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate pitboss 0.4.0
[INFO] finished tweaking crates.io crate pitboss 0.4.0
[INFO] tweaked toml for crates.io crate pitboss 0.4.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate pitboss 0.4.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate pitboss 0.4.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 | repository = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |              --------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `pitboss` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a
[INFO] running `Command { std: "docker" "start" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", 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" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", 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" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 | repository = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |              --------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `pitboss` (manifest) generated 1 warning
[INFO] [stderr]    Compiling log v0.4.30
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]    Compiling mio v1.2.1
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling memchr v2.8.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling kasuari v0.4.12
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling line-clipping v0.3.7
[INFO] [stderr]    Compiling strum v0.27.2
[INFO] [stderr]    Compiling unicode-truncate v2.0.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling ratatui-core v0.1.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling socket2 v0.6.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling sha2 v0.11.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling ratatui-macros v0.7.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling pitboss v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 57s
[INFO] running `Command { std: "docker" "inspect" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", 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" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 | repository = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |              --------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `pitboss` (manifest) generated 1 warning
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling crossterm v0.29.0
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling insta v1.47.2
[INFO] [stderr]    Compiling ratatui-crossterm v0.1.0
[INFO] [stderr]    Compiling ratatui v0.30.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling pitboss v0.4.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 20s
[INFO] running `Command { std: "docker" "inspect" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", 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" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]    --> Cargo.toml:96:12
[INFO] [stderr]     |
[INFO] [stderr]  96 | homepage = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 102 | repository = "https://github.com/elicpeter/pitboss"
[INFO] [stderr]     |              --------------------------------------
[INFO] [stderr]     |
[INFO] [stderr]     = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `pitboss` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/pitboss/9886a7eae6aa14c7/out/pitboss-9886a7eae6aa14c7)
[INFO] [stdout] 
[INFO] [stdout] running 563 tests
[INFO] [stdout] test agent::aider::tests::build_command_uses_request_model_when_no_override ... ok
[INFO] [stdout] test agent::aider::tests::build_command_includes_required_flags_and_workdir ... ok
[INFO] [stdout] test agent::aider::tests::parses_token_count_with_k_and_m_suffixes_and_decimals ... ok
[INFO] [stdout] test agent::aider::tests::build_message_payload_omits_system_when_empty ... ok
[INFO] [stdout] test agent::aider::tests::build_message_payload_concatenates_system_and_user_with_blank_line ... ok
[INFO] [stdout] test agent::aider::tests::parses_token_report_full_line ... ok
[INFO] [stdout] test agent::backend::tests::default_is_claude_code ... ok
[INFO] [stdout] test agent::backend::tests::display_round_trips_through_from_str ... ok
[INFO] [stdout] test agent::aider::tests::real_aider_smoke_test ... ok
[INFO] [stdout] test agent::aider::tests::parses_edits_commit_and_token_report ... FAILED
[INFO] [stdout] test agent::backend::tests::from_str_accepts_canonical_lowercase ... ok
[INFO] [stdout] test agent::backend::tests::display_uses_canonical_underscored_form ... ok
[INFO] [stdout] test agent::backend::tests::from_str_is_case_insensitive ... ok
[INFO] [stdout] test agent::backend::tests::from_str_accepts_hyphen_variant_for_claude_code ... ok
[INFO] [stdout] test agent::backend::tests::from_str_trims_whitespace ... ok
[INFO] [stdout] test agent::aider::tests::cancellation_propagates_to_child_process ... FAILED
[INFO] [stdout] test agent::backend::tests::from_str_rejects_unknown_backend_with_helpful_error ... ok
[INFO] [stdout] test agent::backend::tests::from_str_rejects_empty_string ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_applies_model_override_and_extra_args ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_disallows_fs_tools_for_planner_role ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_omits_append_system_prompt_when_empty ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_includes_required_flags_and_workdir ... ok
[INFO] [stdout] test agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires ... FAILED
[INFO] [stdout] test agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail ... FAILED
[INFO] [stdout] test agent::claude_code::tests::maps_is_error_result_to_error_stop_reason ... FAILED
[INFO] [stdout] test agent::claude_code::tests::real_claude_smoke_test ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_omits_disallowed_tools_for_non_planner_roles ... ok
[INFO] [stdout] test agent::claude_code::tests::resolve_permission_mode_picks_auto_for_opus_and_accept_edits_otherwise ... ok
[INFO] [stdout] test agent::claude_code::tests::build_command_picks_per_model_permission_mode_without_explicit_override ... ok
[INFO] [stdout] test agent::codex::tests::build_command_includes_required_flags_and_workdir ... ok
[INFO] [stdout] test agent::claude_code::tests::explicit_permission_mode_override_beats_per_model_default ... ok
[INFO] [stdout] test agent::codex::tests::build_command_uses_request_model_when_no_override ... ok
[INFO] [stdout] test agent::codex::tests::build_stdin_payload_concatenates_system_and_user_with_blank_line ... ok
[INFO] [stdout] test agent::codex::tests::build_stdin_payload_omits_system_when_empty ... ok
[INFO] [stdout] test agent::claude_code::tests::cancellation_propagates_to_child_process ... FAILED
[INFO] [stdout] test agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim ... FAILED
[INFO] [stdout] test agent::codex::tests::maps_error_event_to_error_stop_reason ... FAILED
[INFO] [stdout] test agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks ... FAILED
[INFO] [stdout] test agent::codex::tests::cancellation_propagates_to_child_process ... FAILED
[INFO] [stdout] test agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error ... FAILED
[INFO] [stdout] test agent::dry_run::tests::failure_path_returns_error_stop_reason ... ok
[INFO] [stdout] test agent::dry_run::tests::success_path_streams_events_and_returns_completed ... ok
[INFO] [stdout] test agent::codex::tests::nonjson_stdout_is_forwarded_verbatim ... FAILED
[INFO] [stdout] test agent::gemini::tests::build_command_uses_request_model_when_no_override ... ok
[INFO] [stdout] test agent::codex::tests::nonzero_exit_without_error_event_maps_to_error ... FAILED
[INFO] [stdout] test agent::codex::tests::parses_agent_message_and_tool_use_events ... FAILED
[INFO] [stdout] test agent::gemini::tests::build_command_includes_required_flags_and_workdir ... ok
[INFO] [stdout] test agent::codex::tests::real_codex_smoke_test ... ok
[INFO] [stdout] test agent::gemini::tests::exit_code_label_covers_known_buckets ... ok
[INFO] [stdout] test agent::dry_run::tests::cancellation_wins_when_already_signalled_at_start ... ok
[INFO] [stdout] test agent::gemini::tests::build_prompt_payload_concatenates_system_and_user_with_blank_line ... ok
[INFO] [stdout] test agent::gemini::tests::build_prompt_payload_omits_system_when_empty ... ok
[INFO] [stdout] test agent::gemini::tests::parse_gemini_output_handles_error_shape ... ok
[INFO] [stdout] test agent::gemini::tests::parse_gemini_output_treats_non_json_as_unparseable ... ok
[INFO] [stdout] test agent::gemini::tests::parse_gemini_output_handles_success_shape ... ok
[INFO] [stdout] test agent::gemini::tests::real_gemini_smoke_test ... ok
[INFO] [stdout] test agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail ... FAILED
[INFO] [stdout] test agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label ... FAILED
[INFO] [stdout] test agent::gemini::tests::cancellation_propagates_to_child_process ... FAILED
[INFO] [stdout] test agent::gemini::tests::parses_response_tool_calls_and_token_stats ... FAILED
[INFO] [stdout] test agent::gemini::tests::partial_output_with_no_stats_still_completes ... FAILED
[INFO] [stdout] test agent::subprocess::tests::captures_stdout_lines_to_events_and_log ... ok
[INFO] [stdout] test agent::subprocess::tests::captures_stderr_lines_with_log_marker ... ok
[INFO] [stdout] test agent::subprocess::tests::child_exiting_before_draining_stdin_is_non_fatal ... ok
[INFO] [stdout] test agent::subprocess::tests::spawn_failure_returns_setup_error ... ok
[INFO] [stdout] test agent::tests::build_agent_aider_honors_overrides ... ok
[INFO] [stdout] test agent::tests::build_agent_claude_code_honors_overrides ... ok
[INFO] [stdout] test agent::tests::build_agent_codex_honors_binary_override ... ok
[INFO] [stdout] test agent::tests::build_agent_defaults_to_claude_code_when_unspecified ... ok
[INFO] [stdout] test agent::subprocess::tests::surfaces_nonzero_exit_code_under_completed ... ok
[INFO] [stdout] test agent::tests::build_agent_dispatches_explicit_aider ... ok
[INFO] [stdout] test agent::tests::build_agent_dispatches_explicit_codex ... ok
[INFO] [stdout] test agent::tests::build_agent_dispatches_explicit_gemini ... ok
[INFO] [stdout] test agent::tests::build_agent_gemini_honors_overrides ... ok
[INFO] [stdout] test agent::tests::build_agent_has_no_pending_backends ... ok
[INFO] [stdout] test agent::tests::build_agent_dispatches_explicit_claude_code ... ok
[INFO] [stdout] test agent::tests::build_agent_rejects_unknown_backend ... ok
[INFO] [stdout] test agent::tests::role_as_str_matches_config_keys ... ok
[INFO] [stdout] test agent::tests::role_serde_round_trips_through_lowercase_string ... ok
[INFO] [stdout] test agent::dry_run::tests::cancellation_path_aborts_a_hanging_agent ... ok
[INFO] [stdout] test agent::tests::stop_reason_equality_ignores_completion_payload ... ok
[INFO] [stdout] test agent::subprocess::tests::stdin_payload_is_delivered_to_child ... ok
[INFO] [stdout] test cli::config::tests::write_config_with_budget_caps_load_cleanly ... ok
[INFO] [stdout] test cli::config::tests::write_config_defaults_load_cleanly ... ok
[INFO] [stdout] test cli::config::tests::write_config_high_sweep_threshold_passes_validation ... ok
[INFO] [stdout] test cli::config::tests::write_config_with_test_command_override_round_trips ... ok
[INFO] [stdout] test cli::exit_code::tests::exit_code_numeric_values_match_documented_table ... ok
[INFO] [stdout] test cli::grind::tests::pr_failure_without_require_keeps_prior_exit ... ok
[INFO] [stdout] test cli::grind::tests::require_pr_does_not_overwrite_a_non_success_prior ... ok
[INFO] [stdout] test cli::grind::tests::pr_success_keeps_prior_exit_regardless_of_require_pr ... ok
[INFO] [stdout] test cli::grind::tests::require_pr_with_failed_call_upgrades_to_pr_creation_failed ... ok
[INFO] [stdout] test agent::dry_run::tests::timeout_path_fires_when_agent_hangs ... ok
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stderr] warning: .pitboss/play/plan.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stderr] warning: .pitboss/play/plan.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stderr] warning: .pitboss/play/plan.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stderr] warning: .pitboss/play/deferred.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stderr] warning: .pitboss/config.toml already exists, leaving it alone
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stderr] warning: .pitboss/play/state.json already exists, leaving it alone
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stderr] warning: .pitboss/play/plan.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stderr] warning: .pitboss/play/deferred.md already exists, leaving it alone
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stderr] warning: .pitboss/config.toml already exists, leaving it alone
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stderr] warning: .pitboss/play/state.json already exists, leaving it alone
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] updated .gitignore
[INFO] [stdout] test cli::init::tests::gitignore_is_created_with_pitboss_entry ... ok
[INFO] [stdout] test cli::init::tests::gitignore_is_appended_when_entry_missing ... ok
[INFO] [stdout] test cli::init::tests::rejects_non_directory_at_dot_pitboss ... ok
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] skipped .pitboss/play/plan.md (already exists)
[INFO] [stdout] skipped .pitboss/play/deferred.md (already exists)
[INFO] [stdout] skipped .pitboss/config.toml (already exists)
[INFO] [stdout] skipped .pitboss/play/snapshots/ (already exists)
[INFO] [stdout] skipped .pitboss/play/logs/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/prompts/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/rotations/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/runs/ (already exists)
[INFO] [stdout] skipped .pitboss/play/state.json (already exists)
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] skipped .pitboss/play/plan.md (already exists)
[INFO] [stdout] skipped .pitboss/play/deferred.md (already exists)
[INFO] [stdout] skipped .pitboss/config.toml (already exists)
[INFO] [stdout] skipped .pitboss/play/snapshots/ (already exists)
[INFO] [stdout] skipped .pitboss/play/logs/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/prompts/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/rotations/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/runs/ (already exists)
[INFO] [stdout] skipped .pitboss/play/state.json (already exists)
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] test cli::init::tests::gitignore_idempotent_across_many_runs ... ok
[INFO] [stdout] test cli::init::tests::fresh_workspace_creates_every_artifact ... ok
[INFO] [stdout] test cli::interview::tests::format_spec_produces_qa_pairs ... ok
[INFO] [stdout] test cli::interview::tests::parse_questions_extracts_numbered_lines ... ok
[INFO] [stdout] test cli::interview::tests::parse_questions_returns_empty_for_blank_output ... ok
[INFO] [stdout] test cli::interview::tests::parse_questions_skips_non_numbered_lines ... ok
[INFO] [stdout] test cli::nuke::tests::bails_when_no_pitboss_dir ... ok
[INFO] [stdout] test cli::init::tests::report_describes_skipped_files ... ok
[INFO] [stdout] test cli::nuke::tests::refuses_non_interactive_when_pitboss_exists ... ok
[INFO] [stdout] test cli::plan::tests::collect_files_returns_none_when_nothing_matches ... ok
[INFO] [stdout] test cli::plan::tests::collect_files_truncates_long_inputs ... ok
[INFO] [stdout] test cli::plan::tests::agent_failure_surfaces_as_error_with_no_retry ... ok
[INFO] [stdout] test cli::plan::tests::edited_init_seed_still_requires_force ... ok
[INFO] [stdout] test cli::plan::tests::collect_repo_summary_includes_manifest_and_listing ... ok
[INFO] [stdout] test cli::plan::tests::fence_wrapped_first_attempt_recovers_without_retry ... ok
[INFO] [stdout] test cli::plan::tests::force_flag_overwrites_existing_plan ... ok
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] test cli::plan::tests::refuses_to_overwrite_existing_plan_without_force ... ok
[INFO] [stdout] test cli::plan::tests::retry_prompt_carries_error_and_canonical_body ... ok
[INFO] [stdout] test cli::plan::tests::strip_outer_code_fences_handles_info_string ... ok
[INFO] [stdout] test cli::plan::tests::strip_outer_code_fences_leaves_inner_fences_alone ... ok
[INFO] [stdout] test cli::plan::tests::strip_outer_code_fences_leaves_partial_fences_alone ... ok
[INFO] [stdout] test cli::plan::tests::strip_outer_code_fences_leaves_unfenced_body_alone ... ok
[INFO] [stdout] test cli::plan::tests::strip_outer_code_fences_unwraps_full_body_wrapper ... ok
[INFO] [stdout] test cli::plan::tests::happy_path_writes_plan_md_on_first_attempt ... ok
[INFO] [stdout] test cli::plan::tests::top_level_listing_filters_skip_dirs_and_hidden ... ok
[INFO] [stdout] skipped .pitboss/play/plan.md (already exists)
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] test cli::init::tests::preexisting_plan_md_survives_byte_for_byte ... ok
[INFO] [stdout] test cli::plan::tests::validation_retry_loop_fails_after_two_bad_outputs ... ok
[INFO] [stdout] test cli::plan::tests::unmodified_init_seed_is_overwritten_without_force ... ok
[INFO] [stderr] warning: .pitboss/play/plan.md already exists, leaving it alone
[INFO] [stdout] test cli::prompts::tests::is_valid_prompt_name_matches_regex ... ok
[INFO] [stderr] warning: .pitboss/play/deferred.md already exists, leaving it alone
[INFO] [stdout] test cli::plan::tests::validation_retry_loop_recovers_on_attempt_2 ... ok
[INFO] [stderr] warning: .pitboss/config.toml already exists, leaving it alone
[INFO] [stdout] test cli::prompts::tests::render_table_aligns_columns ... ok
[INFO] [stderr] warning: .pitboss/play/state.json already exists, leaving it alone
[INFO] [stdout] test cli::status::tests::report_for_no_run_says_not_started ... ok
[INFO] [stdout] test cli::plan::tests::writes_per_attempt_log_paths_under_dot_pitboss ... ok
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] skipped .pitboss/play/plan.md (already exists)
[INFO] [stdout] skipped .pitboss/play/deferred.md (already exists)
[INFO] [stdout] skipped .pitboss/config.toml (already exists)
[INFO] [stdout] skipped .pitboss/play/snapshots/ (already exists)
[INFO] [stdout] skipped .pitboss/play/logs/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/prompts/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/rotations/ (already exists)
[INFO] [stdout] skipped .pitboss/grind/runs/ (already exists)
[INFO] [stdout] skipped .pitboss/play/state.json (already exists)
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] test cli::status::tests::report_marks_folded_run ... ok
[INFO] [stdout] test cli::init::tests::rerun_is_idempotent_and_skips_everything ... ok
[INFO] [stdout] test cli::status::tests::report_includes_budget_remaining_when_configured ... ok
[INFO] [stdout] test config::grind::full_section_round_trips ... ok
[INFO] [stdout] test config::grind::hook_timeout_secs_zero_is_rejected ... ok
[INFO] [stdout] test config::grind::max_parallel_zero_is_rejected ... ok
[INFO] [stdout] test config::grind::missing_section_yields_default ... ok
[INFO] [stdout] test config::grind::consecutive_failure_limit_zero_disables_escape_valve ... ok
[INFO] [stdout] test config::grind::partial_section_fills_missing_with_defaults ... ok
[INFO] [stdout] test config::grind::transcript_retention_accepts_each_variant ... ok
[INFO] [stdout] test config::grind::transcript_retention_rejects_unknown_value ... ok
[INFO] [stdout] test config::grind::unknown_top_level_grind_key_is_flagged ... ok
[INFO] [stdout] test cli::status::tests::report_for_active_run_includes_branch_completed_and_tokens ... ok
[INFO] [stdout] test cli::status::tests::report_with_empty_completed_says_none ... ok
[INFO] [stdout] test config::sweep::max_consecutive_zero_is_rejected ... ok
[INFO] [stdout] test config::sweep::missing_section_yields_default ... ok
[INFO] [stdout] test config::sweep::final_sweep_max_iterations_zero_is_rejected ... ok
[INFO] [stdout] test config::sweep::full_section_round_trips ... ok
[INFO] [stdout] test config::sweep::partial_section_fills_missing_with_defaults ... ok
[INFO] [stdout] test config::sweep::escalate_after_zero_is_rejected ... ok
[INFO] [stdout] test config::sweep::pre_phase_08_section_picks_up_final_sweep_defaults ... ok
[INFO] [stdout] test config::sweep::missing_sweep_section_uses_documented_defaults ... ok
[INFO] [stdout] test config::sweep::trigger_min_items_zero_is_rejected ... ok
[INFO] [stdout] test config::sweep::unknown_subkey_is_flagged ... ok
[INFO] [stdout] test config::tests::budgets_pricing_subkeys_are_not_flagged_as_unknown ... ok
[INFO] [stdout] test config::tests::agent_section_round_trips_full_form ... ok
[INFO] [stdout] test config::tests::budgets_section_parses_full_form ... ok
[INFO] [stdout] test config::tests::caveman_section_accepts_each_intensity_level ... ok
[INFO] [stdout] test config::tests::caveman_section_round_trips_full_form ... ok
[INFO] [stdout] test config::tests::caveman_unknown_subkeys_are_flagged ... ok
[INFO] [stdout] test config::tests::agent_backend_alone_round_trips_with_defaults ... ok
[INFO] [stdout] test config::sweep::trigger_min_above_max_is_rejected ... ok
[INFO] [stdout] test config::tests::caveman_section_rejects_unknown_intensity ... ok
[INFO] [stdout] test config::tests::defaults_are_self_consistent ... ok
[INFO] [stdout] test config::tests::load_reads_file_from_workspace ... ok
[INFO] [stdout] test config::tests::load_returns_defaults_when_file_missing ... ok
[INFO] [stdout] test config::tests::load_surfaces_parse_errors_with_path_context ... ok
[INFO] [stdout] test config::tests::malformed_toml_is_an_error ... ok
[INFO] [stdout] test config::tests::model_pricing_cost_usd_is_per_million_tokens ... ok
[INFO] [stdout] test config::tests::no_unknown_keys_for_canonical_input ... ok
[INFO] [stdout] test config::tests::empty_input_yields_defaults ... ok
[INFO] [stdout] test config::tests::partial_input_fills_remaining_with_defaults ... ok
[INFO] [stdout] test config::tests::unknown_keys_are_collected_not_errored ... ok
[INFO] [stdout] test config::tests::wrong_value_type_is_an_error ... ok
[INFO] [stdout] test deferred::parse::tests::both_sections_round_trip ... ok
[INFO] [stdout] test config::tests::partial_section_fills_missing_subkeys ... ok
[INFO] [stdout] test config::tests::full_input_overrides_every_field ... ok
[INFO] [stdout] test deferred::parse::tests::empty_checkbox_text_round_trips ... ok
[INFO] [stdout] test deferred::parse::tests::capital_x_accepted_normalizes_to_lowercase_on_serialize ... ok
[INFO] [stdout] test deferred::parse::tests::empty_sections_round_trip ... ok
[INFO] [stdout] test deferred::parse::tests::items_only_round_trip ... ok
[INFO] [stdout] test deferred::parse::tests::normalizes_crlf_to_lf ... ok
[INFO] [stdout] test deferred::parse::tests::parse_serialize_idempotent_on_canonical_output ... ok
[INFO] [stdout] test deferred::parse::tests::phases_in_reverse_order_in_input_round_trip_canonicalizes ... ok
[INFO] [stdout] test deferred::parse::tests::phases_only_round_trip ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_content_before_section ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_content_in_phases_before_first_h3 ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_duplicate_items_section ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_duplicate_phases_section ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_h3_before_any_section ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_h3_outside_phases ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_invalid_phase_id_in_heading ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_malformed_checklist_line ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_malformed_phase_heading ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_phase_heading_without_colon ... ok
[INFO] [stdout] test deferred::parse::tests::rejects_unknown_h2_section ... ok
[INFO] [stdout] test deferred::parse::tests::empty_doc_serializes_to_empty_string ... ok
[INFO] [stdout] test deferred::parse::tests::empty_input_parses_as_empty_doc ... ok
[INFO] [stdout] test deferred::parse::tests::tolerates_blank_lines_and_trailing_whitespace ... ok
[INFO] [stdout] test deferred::tests::empty_is_default ... ok
[INFO] [stdout] test deferred::tests::sweep_removes_done_items_only ... ok
[INFO] [stdout] test git::mock::tests::checkout_unknown_branch_errors ... ok
[INFO] [stdout] test git::mock::tests::commit_with_empty_index_errors ... ok
[INFO] [stdout] test git::mock::tests::create_then_checkout_switches_current_branch ... ok
[INFO] [stdout] test deferred::tests::snapshot_re_exports_detect_drift_on_deferred_md ... ok
[INFO] [stdout] test git::mock::tests::diff_stat_returns_default_on_mock ... ok
[INFO] [stdout] test git::mock::tests::duplicate_branch_creation_errors ... ok
[INFO] [stdout] test git::mock::tests::empty_index_path_when_only_excluded_files_changed ... ok
[INFO] [stdout] test git::mock::tests::fresh_mock_is_clean_on_new_branch ... ok
[INFO] [stdout] test deferred::tests::serde_round_trip ... ok
[INFO] [stdout] test git::mock::tests::is_excluded_treats_directory_paths_as_prefixes ... ok
[INFO] [stdout] test git::mock::tests::open_pr_failure_response_surfaces_error ... ok
[INFO] [stdout] test git::mock::tests::open_pr_records_op_and_returns_canned_url ... ok
[INFO] [stdout] test git::mock::tests::staged_diff_returns_canned_text_and_records_op ... ok
[INFO] [stdout] test git::pr::tests::body_emits_deferred_sections_only_when_present ... ok
[INFO] [stdout] test git::pr::tests::body_for_zero_committed_phases_says_so ... ok
[INFO] [stdout] test git::pr::tests::body_includes_run_metadata_and_completed_phases ... ok
[INFO] [stdout] test git::pr::tests::body_omits_original_branch_line_when_unset ... ok
[INFO] [stdout] test git::pr::tests::title_for_multi_phase_run_lists_first_and_last ... ok
[INFO] [stdout] test git::pr::tests::title_for_single_phase_uses_that_phase ... ok
[INFO] [stdout] test git::pr::tests::title_for_zero_committed_phases_is_explicit ... ok
[INFO] [stdout] test git::mock::tests::stage_changes_records_exclusions_and_filters_working_tree ... ok
[INFO] [stdout] test git::mock::tests::ops_journal_records_each_call_in_order ... ok
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] created .gitignore
[INFO] [stdout] created .pitboss/play/plan.md
[INFO] [stdout] created .pitboss/play/deferred.md
[INFO] [stdout] created .pitboss/config.toml
[INFO] [stdout] created .pitboss/play/snapshots/
[INFO] [stdout] created .pitboss/play/logs/
[INFO] [stdout] created .pitboss/grind/prompts/
[INFO] [stdout] created .pitboss/grind/rotations/
[INFO] [stdout] created .pitboss/grind/runs/
[INFO] [stdout] created .pitboss/play/state.json
[INFO] [stdout] skipped .gitignore (already exists)
[INFO] [stdout] test git::shell::tests::command_failure_surfaces_typed_error ... ok
[INFO] [stdout] test cli::init::tests::gitignore_entry_recognized_in_several_forms ... ok
[INFO] [stdout] test config::tests::init_template_round_trips_through_loader ... ok
[INFO] [stdout] test git::shell::tests::commit_with_empty_index_errors ... ok
[INFO] [stdout] test git::shell::tests::commit_returns_resolvable_commit_id ... ok
[INFO] [stdout] test git::shell::tests::diff_stat_empty_range_is_default ... ok
[INFO] [stdout] test git::shell::tests::create_and_checkout_branch_round_trip ... ok
[INFO] [stdout] test git::shell::tests::current_branch_returns_initial_branch ... ok
[INFO] [stdout] test git::shell::tests::diff_stat_reports_change_summary ... ok
[INFO] [stdout] test git::shell::tests::empty_commit_path_when_only_excluded_files_changed ... ok
[INFO] [stdout] test git::shell::tests::parse_shortstat_handles_known_shapes ... ok
[INFO] [stdout] test git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh ... FAILED
[INFO] [stdout] test git::shell::tests::open_pr_surfaces_failure_with_stderr ... FAILED
[INFO] [stdout] test git::shell::tests::stage_changes_excludes_planning_artifacts ... ok
[INFO] [stdout] test git::shell::tests::has_staged_changes_reflects_index_state ... ok
[INFO] [stdout] test git::tests::branch_name_formats_timestamp_compactly ... ok
[INFO] [stdout] test git::tests::commit_id_round_trips_through_display ... ok
[INFO] [stdout] test git::tests::commit_message_sweep_uses_canonical_format ... ok
[INFO] [stdout] test git::tests::commit_message_uses_canonical_format ... ok
[INFO] [stdout] test git::shell::tests::stage_changes_tolerates_excluded_path_already_in_gitignore ... ok
[INFO] [stdout] test grind::budget::tests::consecutive_failure_limit_zero_disables_escape_valve ... ok
[INFO] [stdout] test grind::budget::tests::consecutive_failures_reset_on_success ... ok
[INFO] [stdout] test grind::budget::tests::dirty_does_not_count_as_failure ... ok
[INFO] [stdout] test grind::budget::tests::empty_tracker_checks_ok ... ok
[INFO] [stdout] test grind::budget::tests::aborted_leaves_counter_alone ... ok
[INFO] [stdout] test grind::budget::tests::iteration_check_takes_priority_over_token_check ... ok
[INFO] [stdout] test grind::budget::tests::max_iterations_trips_after_record ... ok
[INFO] [stdout] test grind::budget::tests::max_cost_trips_at_or_above_cap ... ok
[INFO] [stdout] test git::shell::tests::is_clean_distinguishes_clean_and_dirty ... ok
[INFO] [stdout] test grind::budget::tests::max_tokens_trips_at_or_above_cap ... ok
[INFO] [stdout] test grind::budget::tests::resolve_budgets_cli_clears_nothing ... ok
[INFO] [stdout] test grind::budget::tests::resolve_budgets_layers_config_plan_cli ... ok
[INFO] [stdout] test grind::budget::tests::until_trips_when_clock_passes_cutoff ... ok
[INFO] [stdout] test grind::budget::tests::session_cost_usd_uses_pricing_table ... ok
[INFO] [stdout] test grind::discovery::tests::discovery_is_deterministic_across_runs ... ok
[INFO] [stdout] test grind::discovery::tests::missing_directories_yield_empty_result ... ok
[INFO] [stdout] test grind::discovery::tests::global_only_sources_are_loaded_when_project_is_empty ... ok
[INFO] [stdout] test grind::discovery::tests::missing_override_dir_yields_empty_result ... ok
[INFO] [stdout] test grind::discovery::tests::invalid_files_are_collected_and_valid_files_still_returned ... ok
[INFO] [stdout] test grind::discovery::tests::project_only_sources_are_loaded ... ok
[INFO] [stdout] test grind::discovery::tests::project_shadows_global_for_same_name ... ok
[INFO] [stdout] test grind::discovery::tests::resolve_home_prompts_dir_uses_home_env ... ok
[INFO] [stdout] test git::shell::tests::staged_diff_excludes_paths_excluded_by_stage_changes ... ok
[INFO] [stdout] test grind::discovery::tests::within_directory_first_filename_wins_on_duplicate_name ... ok
[INFO] [stdout] test grind::discovery::tests::override_dir_replaces_project_and_global_entirely ... ok
[INFO] [stdout] test grind::discovery::tests::non_md_files_are_ignored ... ok
[INFO] [stdout] test grind::dry_run::tests::header_and_version_appear_first ... ok
[INFO] [stdout] test grind::dry_run::tests::preview_picks_respects_max_runs_cap ... ok
[INFO] [stdout] test grind::hooks::tests::env_vars_reach_the_child_process ... ok
[INFO] [stdout] test grind::hooks::tests::hook_outcome_descriptions_are_human_readable ... ok
[INFO] [stdout] test git::shell::tests::staged_diff_reflects_index_contents ... ok
[INFO] [stdout] test grind::hooks::tests::non_zero_exit_yields_failed_outcome ... ok
[INFO] [stdout] test grind::hooks::tests::passthrough_does_not_forward_unlisted_parent_env ... ok
[INFO] [stdout] test grind::dry_run::tests::dry_run_report_snapshot_full_fixture ... ok
[INFO] [stdout] test grind::hooks::tests::passthrough_extras_forward_named_parent_env_to_child ... ok
[INFO] [stdout] test grind::dry_run::tests::dry_run_report_snapshot_resume_preview ... ok
[INFO] [stdout] test grind::dry_run::tests::dry_run_report_snapshot_minimal_defaults ... ok
[INFO] [stdout] test grind::plan::tests::default_plan_synthesizes_one_entry_per_prompt ... ok
[INFO] [stdout] test grind::plan::tests::default_plan_handles_empty_prompt_set ... ok
[INFO] [stdout] test grind::plan::tests::empty_body_yields_defaults_with_supplied_name ... ok
[INFO] [stdout] test grind::plan::tests::duplicate_prompt_name_is_rejected ... ok
[INFO] [stdout] test grind::hooks::tests::stderr_is_forwarded_with_dedicated_prefix ... ok
[INFO] [stdout] test grind::plan::tests::load_plan_reports_io_error_for_missing_path ... ok
[INFO] [stdout] test grind::plan::tests::load_plan_uses_file_stem_as_name ... ok
[INFO] [stdout] test grind::plan::tests::malformed_toml_is_rejected ... ok
[INFO] [stdout] test grind::plan::tests::full_plan_round_trips ... ok
[INFO] [stdout] test grind::plan::tests::every_override_zero_is_rejected ... ok
[INFO] [stdout] test grind::plan::tests::name_in_body_is_rejected_as_unknown_field ... ok
[INFO] [stdout] test grind::plan::tests::max_parallel_zero_is_rejected ... ok
[INFO] [stdout] test grind::plan::tests::plan_round_trips_through_serialize_and_load ... ok
[INFO] [stdout] test grind::plan::tests::unknown_top_level_key_is_rejected ... ok
[INFO] [stdout] test grind::hooks::tests::success_records_stdout_to_transcript_with_banner ... ok
[INFO] [stdout] test grind::plan::tests::validate_against_rejects_unknown_prompt ... ok
[INFO] [stdout] test grind::plan::tests::weight_override_zero_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::defaults_apply_when_optional_fields_omitted ... ok
[INFO] [stdout] test grind::prompt::tests::duplicate_field_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::invalid_name_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::crlf_line_endings_are_normalized ... ok
[INFO] [stdout] test grind::prompt::tests::malformed_yaml_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::missing_frontmatter_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::every_zero_is_rejected ... ok
[INFO] [stdout] test grind::plan::tests::validate_against_accepts_known_prompts ... ok
[INFO] [stdout] test grind::prompt::tests::name_starting_with_dash_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::name_with_underscore_and_digits_is_accepted ... ok
[INFO] [stdout] test grind::prompt::tests::negative_cost_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::missing_name_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::parse_prompt_file_reads_from_disk ... ok
[INFO] [stdout] test grind::prompt::tests::parse_prompt_file_reports_io_error_for_missing_path ... ok
[INFO] [stdout] test grind::prompt::tests::weight_zero_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::well_formed_prompt_round_trips ... ok
[INFO] [stdout] test grind::prompt::tests::unknown_field_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::unterminated_frontmatter_is_rejected ... ok
[INFO] [stdout] test grind::prompt::tests::verify_and_parallel_safe_parse_independently ... ok
[INFO] [stdout] test grind::run::tests::compose_user_prompt_stamps_all_three_marker_blocks ... ok
[INFO] [stdout] test grind::run::tests::read_summary_falls_back_when_file_is_missing_or_empty ... ok
[INFO] [stdout] test grind::run::tests::run_branch_name_uses_canonical_prefix ... ok
[INFO] [stdout] test grind::run::tests::standing_instruction_block_carries_markers ... ok
[INFO] [stdout] test grind::run::tests::compose_user_prompt_substitutes_empty_blocks ... ok
[INFO] [stdout] test grind::run::tests::grind_fixer_prompt_substitutes_all_placeholders ... ok
[INFO] [stdout] test grind::run::tests::shutdown_drain_and_abort_signals_propagate ... ok
[INFO] [stdout] test grind::run::tests::tail_lines_keeps_last_n ... ok
[INFO] [stdout] test grind::run_dir::tests::create_lays_out_expected_files_and_dirs ... ok
[INFO] [stdout] test grind::run_dir::tests::create_refuses_when_directory_already_exists ... ok
[INFO] [stdout] test grind::run_dir::tests::generate_run_id_is_unique_within_process ... ok
[INFO] [stdout] test grind::run_dir::tests::open_finds_an_existing_run ... ok
[INFO] [stdout] test grind::run_dir::tests::open_rejects_missing_directory ... ok
[INFO] [stdout] test grind::run_dir::tests::append_rerenders_sessions_md_from_full_stream ... ok
[INFO] [stdout] test grind::run_dir::tests::append_round_trips_through_jsonl ... ok
[INFO] [stdout] test grind::run_dir::tests::render_sessions_md_empty_snapshot ... ok
[INFO] [stdout] test grind::run_dir::tests::render_sessions_md_two_rows_snapshot ... ok
[INFO] [stdout] test grind::run_dir::tests::transcript_for_uses_zero_padded_seq ... ok
[INFO] [stdout] test grind::scheduler::tests::empty_plan_returns_none ... ok
[INFO] [stdout] test grind::scheduler::tests::determinism_two_runs_yield_identical_sequences ... ok
[INFO] [stdout] test grind::scheduler::tests::every_three_only_fires_on_multiples_of_three ... ok
[INFO] [stdout] test grind::scheduler::tests::max_runs_override_wins_over_frontmatter ... ok
[INFO] [stdout] test grind::scheduler::tests::max_runs_retires_a_prompt ... ok
[INFO] [stdout] test grind::scheduler::tests::record_run_without_dispatch_advances_count ... ok
[INFO] [stdout] test grind::scheduler::tests::state_round_trips_through_serde ... ok
[INFO] [stdout] test grind::scheduler::tests::ties_break_alphabetically ... ok
[INFO] [stdout] test grind::scheduler::tests::unknown_plan_entry_is_skipped ... ok
[INFO] [stdout] test grind::scheduler::tests::every_override_wins_over_frontmatter ... ok
[INFO] [stdout] test grind::scheduler::tests::weight_three_to_one_holds_over_one_hundred_rotations ... ok
[INFO] [stdout] test grind::scheduler::tests::weight_override_wins_over_frontmatter ... ok
[INFO] [stdout] test grind::scheduler::tests::weight_two_to_one_holds_over_one_hundred_rotations ... ok
[INFO] [stdout] test grind::state::tests::malformed_state_is_rejected_with_path_in_error ... ok
[INFO] [stdout] test grind::state::tests::missing_state_json_is_skipped_in_listings ... ok
[INFO] [stdout] test grind::state::tests::most_recent_resumable_returns_none_when_grind_dir_is_missing ... ok
[INFO] [stdout] test grind::run_dir::tests::scratchpad_reads_what_the_agent_wrote ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_passes_on_empty_log_with_zero_state ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_rejects_when_scheduler_diverges_from_recorded_prompt ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_rejects_when_state_claims_more_than_jsonl_has ... ok
[INFO] [stdout] test grind::state::tests::list_runs_returns_runs_sorted_by_last_updated_desc ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_resets_consecutive_failures_on_replayed_success ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_replays_missing_records_when_jsonl_is_ahead ... ok
[INFO] [stdout] test grind::state::tests::reconstruct_returns_identity_when_state_matches_jsonl_tail ... ok
[INFO] [stdout] test grind::state::tests::resolve_target_explicit_run_not_found ... ok
[INFO] [stdout] test grind::state::tests::resolve_target_default_no_resumable ... ok
[INFO] [stdout] test grind::state::tests::run_status_is_resumable_truth_table ... ok
[INFO] [stdout] test grind::state::tests::most_recent_resumable_skips_terminal_runs ... ok
[INFO] [stdout] test grind::state::tests::validate_resume_accepts_unchanged_prompt_set ... ok
[INFO] [stdout] test grind::state::tests::round_trips_through_disk ... ok
[INFO] [stdout] test grind::state::tests::validate_resume_detects_added_prompt ... ok
[INFO] [stdout] test grind::state::tests::validate_resume_detects_removed_prompt ... ok
[INFO] [stdout] test grind::templates::tests::placeholder_is_substituted ... ok
[INFO] [stdout] test grind::state::tests::validate_resume_rejects_terminal_status ... ok
[INFO] [stdout] test grind::templates::tests::rendered_template_round_trips_through_parser ... ok
[INFO] [stdout] test grind::state::tests::validate_resume_rejects_renamed_plan ... ok
[INFO] [stdout] test grind::worktree::tests::merge_conflict_summary_names_prompt_and_includes_first_error_line ... ok
[INFO] [stdout] test grind::worktree::tests::merge_scratchpad_noop_when_session_did_not_touch_view ... ok
[INFO] [stdout] test grind::worktree::tests::parallel_safe_violation_summary_names_prompt_and_site ... ok
[INFO] [stdout] test grind::worktree::tests::merge_scratchpad_appends_labeled_view_on_concurrent_modification ... ok
[INFO] [stdout] test grind::worktree::tests::sweep_no_op_when_worktrees_dir_missing ... ok
[INFO] [stdout] test grind::worktree::tests::session_branch_name_uses_canonical_pattern ... ok
[INFO] [stdout] test grind::worktree::tests::sweep_removes_only_seqs_above_last_session_seq ... ok
[INFO] [stdout] test plan::parse::tests::normalizes_crlf_to_lf_on_parse ... ok
[INFO] [stdout] test grind::worktree::tests::merge_scratchpad_fast_merges_when_run_level_is_unchanged ... ok
[INFO] [stdout] test plan::parse::tests::parses_minimal_fixture ... ok
[INFO] [stdout] test plan::parse::tests::rejects_bad_heading_id ... ok
[INFO] [stdout] test plan::parse::tests::rejects_empty_input ... ok
[INFO] [stdout] test plan::parse::tests::rejects_duplicate_phase_ids ... ok
[INFO] [stdout] test plan::parse::tests::rejects_frontmatter_only ... ok
[INFO] [stdout] test plan::parse::tests::rejects_missing_current_phase ... ok
[INFO] [stdout] test plan::parse::tests::rejects_missing_frontmatter ... ok
[INFO] [stdout] test plan::parse::tests::rejects_non_string_current_phase ... ok
[INFO] [stdout] test plan::parse::tests::rejects_unknown_current_phase ... ok
[INFO] [stdout] test plan::parse::tests::rejects_unterminated_frontmatter ... ok
[INFO] [stdout] test plan::parse::tests::round_trip_with_preamble_and_two_phases ... ok
[INFO] [stdout] test plan::parse::tests::rejects_bad_heading_format ... ok
[INFO] [stdout] test plan::parse::tests::round_trip_minimal ... ok
[INFO] [stdout] test plan::parse::tests::set_current_phase_appends_when_missing ... ok
[INFO] [stdout] test plan::parse::tests::unknown_frontmatter_keys_are_accepted_with_warning ... ok
[INFO] [stdout] test plan::snapshot::tests::detects_byte_for_byte_equality ... ok
[INFO] [stdout] test plan::parse::tests::set_current_phase_rewrites_only_that_line ... ok
[INFO] [stdout] test plan::snapshot::tests::hex_is_lowercase_64_chars ... ok
[INFO] [stdout] test plan::snapshot::tests::detects_content_changes ... ok
[INFO] [stdout] test plan::snapshot::tests::detects_whitespace_only_changes ... ok
[INFO] [stdout] test plan::snapshot::tests::missing_file_is_io_error ... ok
[INFO] [stdout] test plan::tests::parses_pure_numeric ... ok
[INFO] [stdout] test plan::tests::parses_suffixed ... ok
[INFO] [stdout] test plan::snapshot::tests::snapshots_round_trip_via_bytes ... ok
[INFO] [stdout] test plan::tests::ordering_is_numeric_then_suffix_then_raw ... ok
[INFO] [stdout] test plan::tests::plan_new_sorts_phases ... ok
[INFO] [stdout] test plan::tests::plan_phase_lookup ... ok
[INFO] [stdout] test plan::tests::rejects_empty ... ok
[INFO] [stdout] test plan::tests::plan_serde_round_trip ... ok
[INFO] [stdout] test plan::tests::rejects_invalid_chars_in_suffix ... ok
[INFO] [stdout] test plan::tests::rejects_missing_numeric_prefix ... ok
[INFO] [stdout] test plan::tests::rejects_numeric_overflow ... ok
[INFO] [stdout] test plan::tests::serde_rejects_invalid ... ok
[INFO] [stdout] test prompts::caveman::tests::directive_carves_out_artifacts_and_code ... ok
[INFO] [stdout] test prompts::caveman::tests::directive_size_stays_under_a_kilobyte ... ok
[INFO] [stdout] test plan::tests::serde_round_trip ... ok
[INFO] [stdout] test prompts::caveman::tests::enabled_returns_non_empty_directive ... ok
[INFO] [stdout] test prompts::caveman::tests::disabled_returns_empty_string ... ok
[INFO] [stdout] test prompts::caveman::tests::intensity_label_appears_in_output ... ok
[INFO] [stdout] test prompts::sweep::snapshot_sweep_after_phase ... ok
[INFO] [stdout] test prompts::sweep::snapshot_sweep_after_phase_with_stale_items ... ok
[INFO] [stdout] test prompts::sweep::snapshot_sweep_auditor ... ok
[INFO] [stdout] test prompts::sweep::sweep_auditor_renders_empty_lists_with_marker ... ok
[INFO] [stdout] test prompts::sweep::snapshot_sweep_fixer ... ok
[INFO] [stdout] test prompts::sweep::snapshot_sweep_standalone ... ok
[INFO] [stdout] test prompts::sweep::sweep_renders_after_phase_context ... ok
[INFO] [stdout] test prompts::sweep::sweep_auditor_renders_stale_items_when_provided ... ok
[INFO] [stdout] test prompts::sweep::sweep_renders_empty_stale_section_with_marker ... ok
[INFO] [stdout] test prompts::sweep::sweep_renders_stale_items_when_provided ... ok
[INFO] [stdout] test prompts::sweep::sweep_renders_standalone_when_after_phase_is_none ... ok
[INFO] [stdout] test prompts::sweep::sweep_strips_already_checked_items ... ok
[INFO] [stdout] test prompts::sweep::sweep_template_static_size_under_budget_for_empty_inputs ... ok
[INFO] [stdout] test prompts::sweep::sweep_auditor_renders_resolved_and_remaining ... ok
[INFO] [stdout] test prompts::sweep::sweep_with_no_pending_items_renders_marker ... ok
[INFO] [stdout] test prompts::tests::auditor_with_deferred_threads_real_doc ... ok
[INFO] [stdout] test prompts::tests::auditor_renders_threshold_and_diff ... ok
[INFO] [stdout] test prompts::tests::fixer_includes_test_output ... ok
[INFO] [stdout] test prompts::tests::fixer_with_deferred_threads_real_doc ... ok
[INFO] [stdout] test prompts::tests::implementer_includes_phase_and_deferred ... ok
[INFO] [stdout] test prompts::tests::questioner_embeds_goal_and_max ... ok
[INFO] [stdout] test prompts::tests::render_double_brace_escapes_literal_braces ... ok
[INFO] [stdout] test prompts::tests::planner_embeds_goal_and_repo_summary ... ok
[INFO] [stdout] test prompts::tests::render_handles_repeated_and_adjacent_placeholders ... ok
[INFO] [stdout] test prompts::tests::empty_deferred_renders_as_visible_marker ... ok
[INFO] [stdout] test prompts::tests::render_panics_on_lone_close_brace - should panic ... ok
[INFO] [stdout] test prompts::tests::render_panics_on_unterminated_placeholder - should panic ... ok
[INFO] [stdout] test prompts::tests::render_preserves_unicode ... ok
[INFO] [stdout] test prompts::tests::render_substitutes_simple_placeholders ... ok
[INFO] [stdout] test prompts::tests::snapshot_auditor ... ok
[INFO] [stdout] test prompts::tests::snapshot_fixer ... ok
[INFO] [stdout] test prompts::tests::snapshot_implementer ... ok
[INFO] [stdout] test prompts::tests::snapshot_planner ... ok
[INFO] [stdout] test prompts::tests::render_panics_on_unknown_placeholder - should panic ... ok
[INFO] [stdout] test runner::sweep::tests::staleness_emits_threshold_crossing_only_on_transition ... ok
[INFO] [stdout] test prompts::tests::snapshot_questioner ... ok
[INFO] [stdout] test prompts::tests::templates_fit_static_budget ... ok
[INFO] [stdout] test runner::sweep::tests::staleness_prunes_resolved_items ... ok
[INFO] [stdout] test runner::sweep::tests::staleness_text_rewrite_prunes_old_key_then_starts_fresh ... ok
[INFO] [stdout] test runner::sweep::tests::trigger_clamps_at_max_consecutive ... ok
[INFO] [stdout] test runner::sweep::tests::trigger_fires_at_threshold ... ok
[INFO] [stdout] test runner::sweep::tests::trigger_max_items_does_not_gate ... ok
[INFO] [stdout] test runner::sweep::tests::staleness_zero_escalate_after_clamps_to_one ... ok
[INFO] [stdout] test runner::sweep::tests::trigger_respects_higher_max_consecutive ... ok
[INFO] [stdout] test runner::sweep::tests::trigger_short_circuits_when_disabled ... ok
[INFO] [stdout] test runner::sweep::tests::unchecked_count_ignores_completed_and_phase_blocks ... ok
[INFO] [stdout] test runner::sweep::tests::unchecked_count_zero_for_empty_doc ... ok
[INFO] [stdout] test runner::tests::fresh_run_state_uses_branch_prefix_and_timestamp ... ok
[INFO] [stdout] test runner::tests::halt_reason_display_summaries_are_human_readable ... ok
[INFO] [stdout] test state::tests::deserializes_legacy_state_without_new_fields ... ok
[INFO] [stdout] test state::tests::deserializes_phase_04_state_without_deferred_item_attempts ... ok
[INFO] [stdout] test state::tests::load_returns_none_for_whitespace_only_file ... ok
[INFO] [stdout] test runner::sweep::tests::staleness_increments_intersection_only ... ok
[INFO] [stdout] test state::tests::load_returns_none_when_file_missing ... ok
[INFO] [stdout] test state::tests::phase_id_is_usable_as_map_key_through_serde ... ok
[INFO] [stdout] test state::tests::load_surfaces_parse_error_for_garbage ... ok
[INFO] [stdout] test state::tests::new_initializes_empty_aggregates ... ok
[INFO] [stdout] test state::tests::round_trips_through_json ... ok
[INFO] [stdout] test tests::tests::detect_cargo_when_cargo_toml_present ... ok
[INFO] [stdout] test tests::tests::detect_go_when_go_mod_present ... ok
[INFO] [stdout] test tests::tests::detect_npm_when_package_json_has_test_script ... ok
[INFO] [stdout] test tests::tests::detect_pnpm_when_pnpm_lock_present ... ok
[INFO] [stdout] test tests::tests::detect_pnpm_wins_over_yarn_when_both_lockfiles_present ... ok
[INFO] [stdout] test state::tests::save_none_then_load_round_trips_to_none ... ok
[INFO] [stdout] test tests::tests::detect_priority_cargo_over_node ... ok
[INFO] [stdout] test tests::tests::detect_pytest_via_pyproject_toml ... ok
[INFO] [stdout] test tests::tests::detect_returns_none_for_unrecognized_layout ... ok
[INFO] [stdout] test tests::tests::detect_pytest_via_setup_py_when_pyproject_missing ... ok
[INFO] [stdout] test tests::tests::detect_skips_node_when_test_script_is_empty_string ... ok
[INFO] [stdout] test tests::tests::detect_treats_malformed_package_json_as_no_match ... ok
[INFO] [stdout] test state::tests::save_some_then_load_round_trips ... ok
[INFO] [stdout] test tests::tests::detect_yarn_when_yarn_lock_present_but_no_pnpm ... ok
[INFO] [stdout] test tests::tests::override_bypasses_detection_entirely ... ok
[INFO] [stdout] test tests::tests::override_with_no_args_uses_program_only ... ok
[INFO] [stdout] test tests::tests::detect_skips_node_when_no_test_script ... ok
[INFO] [stdout] test tests::tests::override_with_only_whitespace_falls_back_to_detection ... ok
[INFO] [stdout] test tests::tests::run_captures_stderr_with_marker ... ok
[INFO] [stdout] test tests::tests::run_fails_with_tail_summary_for_nonzero_exit ... ok
[INFO] [stdout] test tests::tests::run_succeeds_for_zero_exit ... ok
[INFO] [stdout] test tests::tests::run_logs_header_with_command_and_cwd ... ok
[INFO] [stdout] test tests::tests::run_surfaces_spawn_failure ... ok
[INFO] [stdout] test tui::app::tests::agent_output_is_appended_until_paused ... ok
[INFO] [stdout] test tui::app::tests::deferred_item_stale_event_inserts_and_updates_panel_list ... ok
[INFO] [stdout] test tui::app::tests::dispatch_every_event_variant_in_sequence_updates_state_as_expected ... ok
[INFO] [stdout] test tui::app::tests::fixer_started_sets_activity_with_attempt_index ... ok
[INFO] [stdout] test tui::app::tests::formatters_round_trip_token_and_usd_buckets ... ok
[INFO] [stdout] test tests::tests::run_truncates_existing_log_file ... ok
[INFO] [stdout] test tui::app::tests::handle_phase_started_marks_phase_running_and_sets_activity ... ok
[INFO] [stdout] test tests::tests::run_failure_summary_is_bounded_to_tail_lines ... ok
[INFO] [stdout] test tui::app::tests::one_of_each_event_covers_every_variant ... ok
[INFO] [stdout] test tui::app::tests::header_model_chip_tracks_active_role ... ok
[INFO] [stdout] test tui::app::tests::out_of_order_sweep_started_without_phase_committed_does_not_panic ... ok
[INFO] [stdout] test tui::app::tests::output_buffer_drops_oldest_when_full ... ok
[INFO] [stdout] test tui::app::tests::phase_committed_moves_phase_to_completed ... ok
[INFO] [stdout] test tui::app::tests::phase_started_after_sweep_clears_sweep_state ... ok
[INFO] [stdout] test tui::app::tests::phase_halted_marks_failure_and_sets_halted_activity ... ok
[INFO] [stdout] test tui::app::tests::out_of_order_sweep_completed_without_started_does_not_panic ... ok
[INFO] [stdout] test tui::app::tests::render_halted_state_80x20 ... ok
[INFO] [stdout] test tui::app::tests::render_keeps_latest_line_visible_when_earlier_lines_wrap ... ok
[INFO] [stdout] test tui::app::tests::render_mid_run_with_output_120x30 ... ok
[INFO] [stdout] test tui::app::tests::render_stale_items_panel ... ok
[INFO] [stdout] test tui::app::tests::render_initial_layout_80x20 ... ok
[INFO] [stdout] test tui::app::tests::render_sweep_auditor ... ok
[INFO] [stdout] test tui::app::tests::render_sweep_completed ... ok
[INFO] [stdout] test tui::app::tests::stale_items_hydrated_from_constructor ... ok
[INFO] [stdout] test tui::app::tests::render_sweep_halted ... ok
[INFO] [stdout] test tui::app::tests::sweep_completed_clears_sweep_state_and_logs_resolved_line ... ok
[INFO] [stdout] test tui::app::tests::sweep_auditor_started_flips_in_auditor_flag ... ok
[INFO] [stdout] test tui::app::tests::sweep_halted_clears_sweep_state_and_sets_halted_activity ... ok
[INFO] [stdout] test tui::app::tests::sweep_started_sets_sweep_state_and_sweep_implementer_activity ... ok
[INFO] [stdout] test tui::grind::tests::agent_output_uses_seq_prefix_and_respects_pause ... ok
[INFO] [stdout] test tui::app::tests::usage_updated_replaces_running_totals ... ok
[INFO] [stdout] test tui::app::tests::render_sweep_in_flight ... ok
[INFO] [stdout] test tui::grind::tests::budget_percent_usd_handles_floats ... ok
[INFO] [stdout] test tui::grind::tests::budget_percent_basic_buckets ... ok
[INFO] [stdout] test tui::grind::tests::budget_warning_records_kind_and_logs_into_output ... ok
[INFO] [stdout] test tui::grind::tests::format_session_row_uses_status_glyph_when_finished ... ok
[INFO] [stdout] test tui::grind::tests::format_warning_text_includes_each_kind ... ok
[INFO] [stdout] test tui::grind::tests::format_session_row_marks_in_flight_with_caret_glyph ... ok
[INFO] [stdout] test tui::grind::tests::handle_session_finished_updates_existing_row ... ok
[INFO] [stdout] test tui::grind::tests::handle_session_started_appends_in_flight_row ... ok
[INFO] [stdout] test tui::grind::tests::key_handlers_quit_and_pause ... ok
[INFO] [stdout] test tui::grind::tests::run_finished_records_stop_reason ... ok
[INFO] [stdout] test tui::grind::tests::scheduler_picked_updates_next_pick ... ok
[INFO] [stdout] test tui::grind::tests::session_ring_evicts_oldest_when_full ... ok
[INFO] [stdout] test tui::grind::tests::strip_seq_prefix_handles_well_formed_and_malformed_lines ... ok
[INFO] [stdout] test tui::tests::a_requests_quit ... ok
[INFO] [stdout] test tui::tests::build_agent_display_applies_backend_model_override_to_every_role ... ok
[INFO] [stdout] test tui::tests::build_agent_display_falls_back_to_default_backend_for_unknown_string ... ok
[INFO] [stdout] test tui::tests::build_agent_display_unused_backend_overrides_do_not_leak ... ok
[INFO] [stdout] test tui::tests::build_agent_display_uses_role_models_when_no_backend_override ... ok
[INFO] [stdout] test tui::grind::tests::render_includes_session_stats_panel ... ok
[INFO] [stdout] test tui::tests::ctrl_c_requests_quit ... ok
[INFO] [stdout] test tui::tests::p_toggles_pause_without_quitting ... ok
[INFO] [stdout] test tui::tests::unknown_key_is_a_no_op ... ok
[INFO] [stdout] test tui::tests::q_requests_quit ... ok
[INFO] [stdout] test util::paths::tests::layout_is_nested_under_pitboss_dir ... ok
[INFO] [stdout] test tui::grind::tests::fifty_event_smoke_test_renders_without_panic ... ok
[INFO] [stdout] test util::write_atomic_tests::does_not_leave_temp_file_on_success ... ok
[INFO] [stdout] test util::write_atomic_tests::crash_resistance_preserves_old_contents_when_temp_left_behind ... ok
[INFO] [stdout] test util::write_atomic_tests::writes_bytes_to_target ... ok
[INFO] [stdout] test util::write_atomic_tests::overwrites_existing_file ... ok
[INFO] [stdout] test grind::run_dir::tests::fifty_concurrent_appends_produce_fifty_lines ... ok
[INFO] [stdout] test grind::hooks::tests::timeout_kills_long_running_hook ... ok
[INFO] [stdout] test agent::subprocess::tests::large_stdin_with_large_stdout_does_not_deadlock ... ok
[INFO] [stdout] test agent::subprocess::tests::cancellation_terminates_long_running_child ... ok
[INFO] [stdout] test agent::subprocess::tests::timeout_terminates_long_running_child ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- agent::aider::tests::parses_edits_commit_and_token_report stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::aider::tests::parses_edits_commit_and_token_report' (1790) panicked at src/agent/aider.rs:426:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::aider::AiderAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::aider::tests::parses_edits_commit_and_token_report::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::aider::tests::parses_edits_commit_and_token_report::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab0eb5 - pitboss[dfd87b0b086ffb0]::agent::aider::tests::parses_edits_commit_and_token_report::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac951e - <pitboss[dfd87b0b086ffb0]::agent::aider::tests::parses_edits_commit_and_token_report::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::aider::tests::cancellation_propagates_to_child_process stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::aider::tests::cancellation_propagates_to_child_process' (1787) panicked at src/agent/aider.rs:566:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::aider::AiderAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::aider::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::aider::tests::cancellation_propagates_to_child_process::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab189b - pitboss[dfd87b0b086ffb0]::agent::aider::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac967e - <pitboss[dfd87b0b086ffb0]::agent::aider::tests::cancellation_propagates_to_child_process::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires' (1789) panicked at src/agent/aider.rs:499:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::aider::AiderAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab4220 - pitboss[dfd87b0b086ffb0]::agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764aca1be - <pitboss[dfd87b0b086ffb0]::agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail' (1788) panicked at src/agent/aider.rs:537:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::aider::AiderAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab2083 - pitboss[dfd87b0b086ffb0]::agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac97de - <pitboss[dfd87b0b086ffb0]::agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::claude_code::tests::maps_is_error_result_to_error_stop_reason stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::claude_code::tests::maps_is_error_result_to_error_stop_reason' (1819) panicked at src/agent/claude_code.rs:548:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::claude_code::ClaudeCodeAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::claude_code::tests::maps_is_error_result_to_error_stop_reason::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::claude_code::tests::maps_is_error_result_to_error_stop_reason::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764aa9c99 - pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::maps_is_error_result_to_error_stop_reason::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac82be - <pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::maps_is_error_result_to_error_stop_reason::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::claude_code::tests::cancellation_propagates_to_child_process stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::claude_code::tests::cancellation_propagates_to_child_process' (1817) panicked at src/agent/claude_code.rs:623:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::claude_code::ClaudeCodeAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::claude_code::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::claude_code::tests::cancellation_propagates_to_child_process::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764aa94a2 - pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac815e - <pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::cancellation_propagates_to_child_process::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim' (1823) panicked at src/agent/claude_code.rs:571:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::claude_code::ClaudeCodeAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764aa8d79 - pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac7ffe - <pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::codex::tests::maps_error_event_to_error_stop_reason stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::codex::tests::maps_error_event_to_error_stop_reason' (1841) panicked at src/agent/codex.rs:544:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::codex::CodexAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::codex::tests::maps_error_event_to_error_stop_reason::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::codex::tests::maps_error_event_to_error_stop_reason::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab5ce9 - pitboss[dfd87b0b086ffb0]::agent::codex::tests::maps_error_event_to_error_stop_reason::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764acaa1e - <pitboss[dfd87b0b086ffb0]::agent::codex::tests::maps_error_event_to_error_stop_reason::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks' (1828) panicked at src/agent/claude_code.rs:482:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::claude_code::ClaudeCodeAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764aaa9fd - pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac841e - <pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::codex::tests::cancellation_propagates_to_child_process stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::codex::tests::cancellation_propagates_to_child_process' (1839) panicked at src/agent/codex.rs:619:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::codex::CodexAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::codex::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::codex::tests::cancellation_propagates_to_child_process::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab6472 - pitboss[dfd87b0b086ffb0]::agent::codex::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764acab7e - <pitboss[dfd87b0b086ffb0]::agent::codex::tests::cancellation_propagates_to_child_process::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error' (1827) panicked at src/agent/claude_code.rs:597:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::claude_code::ClaudeCodeAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764aab551 - pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764ac857e - <pitboss[dfd87b0b086ffb0]::agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::codex::tests::nonjson_stdout_is_forwarded_verbatim stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::codex::tests::nonjson_stdout_is_forwarded_verbatim' (1842) panicked at src/agent/codex.rs:567:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::codex::CodexAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::codex::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::codex::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab5499 - pitboss[dfd87b0b086ffb0]::agent::codex::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764aca8be - <pitboss[dfd87b0b086ffb0]::agent::codex::tests::nonjson_stdout_is_forwarded_verbatim::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::codex::tests::nonzero_exit_without_error_event_maps_to_error stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::codex::tests::nonzero_exit_without_error_event_maps_to_error' (1844) panicked at src/agent/codex.rs:593:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::codex::CodexAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::codex::tests::nonzero_exit_without_error_event_maps_to_error::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::codex::tests::nonzero_exit_without_error_event_maps_to_error::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab7c81 - pitboss[dfd87b0b086ffb0]::agent::codex::tests::nonzero_exit_without_error_event_maps_to_error::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764acb2ae - <pitboss[dfd87b0b086ffb0]::agent::codex::tests::nonzero_exit_without_error_event_maps_to_error::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::codex::tests::parses_agent_message_and_tool_use_events stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::codex::tests::parses_agent_message_and_tool_use_events' (1846) panicked at src/agent/codex.rs:472:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::codex::CodexAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::codex::tests::parses_agent_message_and_tool_use_events::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::codex::tests::parses_agent_message_and_tool_use_events::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764ab7127 - pitboss[dfd87b0b086ffb0]::agent::codex::tests::parses_agent_message_and_tool_use_events::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764acacde - <pitboss[dfd87b0b086ffb0]::agent::codex::tests::parses_agent_message_and_tool_use_events::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail' (1869) panicked at src/agent/gemini.rs:648:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::gemini::GeminiAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c238d3 - pitboss[dfd87b0b086ffb0]::agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c33c8e - <pitboss[dfd87b0b086ffb0]::agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label' (1867) panicked at src/agent/gemini.rs:619:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::gemini::GeminiAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c241b3 - pitboss[dfd87b0b086ffb0]::agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c33dee - <pitboss[dfd87b0b086ffb0]::agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::gemini::tests::cancellation_propagates_to_child_process stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::gemini::tests::cancellation_propagates_to_child_process' (1866) panicked at src/agent/gemini.rs:677:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::gemini::GeminiAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::gemini::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::gemini::tests::cancellation_propagates_to_child_process::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c1feeb - pitboss[dfd87b0b086ffb0]::agent::gemini::tests::cancellation_propagates_to_child_process::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c32b7e - <pitboss[dfd87b0b086ffb0]::agent::gemini::tests::cancellation_propagates_to_child_process::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::gemini::tests::parses_response_tool_calls_and_token_stats stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::gemini::tests::parses_response_tool_calls_and_token_stats' (1876) panicked at src/agent/gemini.rs:493:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::gemini::GeminiAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::gemini::tests::parses_response_tool_calls_and_token_stats::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::gemini::tests::parses_response_tool_calls_and_token_stats::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c20be8 - pitboss[dfd87b0b086ffb0]::agent::gemini::tests::parses_response_tool_calls_and_token_stats::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c332de - <pitboss[dfd87b0b086ffb0]::agent::gemini::tests::parses_response_tool_calls_and_token_stats::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- agent::gemini::tests::partial_output_with_no_stats_still_completes stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent::gemini::tests::partial_output_with_no_stats_still_completes' (1877) panicked at src/agent/gemini.rs:566:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: subprocess: spawning child process
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<&str>
[INFO] [stdout]    1: pitboss::agent::subprocess::run_logged_with_stdin::<&std::path::PathBuf>::{closure#0}
[INFO] [stdout]    2: <pitboss::agent::gemini::GeminiAgent as pitboss::agent::Agent>::run::{closure#0}
[INFO] [stdout]    3: pitboss::agent::gemini::tests::partial_output_with_no_stats_still_completes::{closure#0}
[INFO] [stdout]    4: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    5: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    6: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    7: <pitboss::agent::gemini::tests::partial_output_with_no_stats_still_completes::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    8: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    9: test::run_test::{closure#0}
[INFO] [stdout]   10: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   11: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   12: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   13: <unknown>
[INFO] [stdout]   14: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c21805 - pitboss[dfd87b0b086ffb0]::agent::gemini::tests::partial_output_with_no_stats_still_completes::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c337ee - <pitboss[dfd87b0b086ffb0]::agent::gemini::tests::partial_output_with_no_stats_still_completes::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh' (2167) panicked at src/git/shell.rs:803:14:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: gh pr create: spawning child (binary "/opt/rustwide/workdir/tests/fixtures/fake-gh-success.sh")
[INFO] [stdout] 
[INFO] [stdout] Caused by:
[INFO] [stdout]     No such file or directory (os error 2)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <core::io::error::Error as anyhow::context::ext::StdError>::ext_context::<alloc::string::String>
[INFO] [stdout]    1: <pitboss::git::shell::ShellGit as pitboss::git::Git>::open_pr::{closure#0}
[INFO] [stdout]    2: pitboss::git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh::{closure#0}
[INFO] [stdout]    3: <tokio::runtime::scheduler::current_thread::Context>::enter::<core::task::poll::Poll<()>, <tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]    4: <tokio::runtime::context::scoped::Scoped<tokio::runtime::scheduler::Context>>::set::<<tokio::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio::runtime::scheduler::current_thread::CoreGuard>::block_on<core::pin::Pin<&mut core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>>::{closure#0}, core::option::Option<()>>::{closure#0}, (alloc::boxed::Box<tokio::runtime::scheduler::current_thread::Core>, core::option::Option<()>)>
[INFO] [stdout]    5: <tokio::runtime::runtime::Runtime>::block_on::<core::pin::Pin<&mut dyn core::future::future::Future<Output = ()>>>
[INFO] [stdout]    6: <pitboss::git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    7: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    8: test::run_test::{closure#0}
[INFO] [stdout]    9: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]   10: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   11: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   12: <unknown>
[INFO] [stdout]   13: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764e28032 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x593764c1d867 - pitboss[dfd87b0b086ffb0]::git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh::{closure#0}
[INFO] [stdout]   13:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   14:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   15:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   16:     0x593764c3166e - <pitboss[dfd87b0b086ffb0]::git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   17:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   18:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   19:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   20:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   21:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   22:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   23:     0x74c229ea33d4 - clone
[INFO] [stdout]   24:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- git::shell::tests::open_pr_surfaces_failure_with_stderr stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'git::shell::tests::open_pr_surfaces_failure_with_stderr' (2180) panicked at src/git/shell.rs:835:9:
[INFO] [stdout] chain: gh pr create: spawning child (binary "/opt/rustwide/workdir/tests/fixtures/fake-gh-failure.sh"): No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x593764e0f1d1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x593764e27aba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x593764e1418c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x593764de6e86 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x593764e05f69 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x593764d38760 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x593764e06292 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x593764de6f32 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x593764ddf179 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x593764de7f5d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x593764e2825c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x593764c1a634 - pitboss[dfd87b0b086ffb0]::git::shell::tests::open_pr_surfaces_failure_with_stderr::{closure#0}
[INFO] [stdout]   12:     0x593764aea983 - <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Context>::enter::<core[a373ad73a504971]::task::poll::Poll<()>, <tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}::{closure#0}>
[INFO] [stdout]   13:     0x593764c7f0bc - <tokio[8fc8dc465bd57a4b]::runtime::context::scoped::Scoped<tokio[8fc8dc465bd57a4b]::runtime::scheduler::Context>>::set::<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::enter<<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::CoreGuard>::block_on<core[a373ad73a504971]::pin::Pin<&mut core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>>::{closure#0}, core[a373ad73a504971]::option::Option<()>>::{closure#0}, (alloc[2e1b2a31b91974c5]::boxed::Box<tokio[8fc8dc465bd57a4b]::runtime::scheduler::current_thread::Core>, core[a373ad73a504971]::option::Option<()>)>
[INFO] [stdout]   14:     0x593764aea02c - <tokio[8fc8dc465bd57a4b]::runtime::runtime::Runtime>::block_on::<core[a373ad73a504971]::pin::Pin<&mut dyn core[a373ad73a504971]::future::future::Future<Output = ()>>>
[INFO] [stdout]   15:     0x593764c30abe - <pitboss[dfd87b0b086ffb0]::git::shell::tests::open_pr_surfaces_failure_with_stderr::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   16:     0x593764d2bbab - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   17:     0x593764d38d85 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   18:     0x593764d32674 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   19:     0x593764d3be12 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   20:     0x593764e0e19f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   21:     0x74c229e0fdfa - <unknown>
[INFO] [stdout]   22:     0x74c229ea33d4 - clone
[INFO] [stdout]   23:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     agent::aider::tests::cancellation_propagates_to_child_process
[INFO] [stdout]     agent::aider::tests::nonzero_exit_maps_to_error_with_stderr_tail
[INFO] [stdout]     agent::aider::tests::noop_run_emits_no_tool_use_but_token_delta_still_fires
[INFO] [stdout]     agent::aider::tests::parses_edits_commit_and_token_report
[INFO] [stdout]     agent::claude_code::tests::cancellation_propagates_to_child_process
[INFO] [stdout]     agent::claude_code::tests::maps_is_error_result_to_error_stop_reason
[INFO] [stdout]     agent::claude_code::tests::nonjson_stdout_is_forwarded_verbatim
[INFO] [stdout]     agent::claude_code::tests::nonzero_exit_without_result_event_maps_to_error
[INFO] [stdout]     agent::claude_code::tests::parses_assistant_text_and_tool_use_blocks
[INFO] [stdout]     agent::codex::tests::cancellation_propagates_to_child_process
[INFO] [stdout]     agent::codex::tests::maps_error_event_to_error_stop_reason
[INFO] [stdout]     agent::codex::tests::nonjson_stdout_is_forwarded_verbatim
[INFO] [stdout]     agent::codex::tests::nonzero_exit_without_error_event_maps_to_error
[INFO] [stdout]     agent::codex::tests::parses_agent_message_and_tool_use_events
[INFO] [stdout]     agent::gemini::tests::cancellation_propagates_to_child_process
[INFO] [stdout]     agent::gemini::tests::error_event_maps_to_error_stop_reason_with_exit_label
[INFO] [stdout]     agent::gemini::tests::nonzero_exit_without_json_falls_back_to_stderr_tail
[INFO] [stdout]     agent::gemini::tests::parses_response_tool_calls_and_token_stats
[INFO] [stdout]     agent::gemini::tests::partial_output_with_no_stats_still_completes
[INFO] [stdout]     git::shell::tests::open_pr_returns_url_and_passes_title_and_body_to_gh
[INFO] [stdout]     git::shell::tests::open_pr_surfaces_failure_with_stderr
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 542 passed; 21 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.14s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a", kill_on_drop: false }`
[INFO] [stdout] db8c340a7ec7037abc2c7fbb8873b07d79d214c8ffe89da7830c7d50d318619a
