[INFO] cloning repository https://github.com/0xMugen/Othala
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/0xMugen/Othala" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xMugen%2FOthala", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xMugen%2FOthala'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1822d80017e0c8f17b1ead38a86c1dea137cf1de
[INFO] testing 0xMugen/Othala against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xMugen%2FOthala" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/0xMugen/Othala
[INFO] finished tweaking git repo https://github.com/0xMugen/Othala
[INFO] tweaked toml for git repo https://github.com/0xMugen/Othala written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/0xMugen/Othala on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/0xMugen/Othala already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b
[INFO] running `Command { std: "docker" "start" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", 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" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", 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" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling zmij v1.0.19
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling shlex v1.3.0
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling pkg-config v0.3.32
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling cc v1.2.55
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling memoffset v0.6.5
[INFO] [stderr]    Compiling utf8parse v0.2.2
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling clap_lex v0.7.7
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling clap_builder v4.5.57
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling ryu v1.0.22
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling serial-core v0.4.0
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling nix v0.25.1
[INFO] [stderr]    Compiling serial-unix v0.4.0
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling serial v0.4.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling filedescriptor v0.8.3
[INFO] [stderr]    Compiling portable-pty v0.8.1
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling clap v4.5.57
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling orch-web v0.1.0 (/opt/rustwide/workdir/crates/orch-web)
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling orch-core v0.1.0 (/opt/rustwide/workdir/crates/orch-core)
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling orch-git v0.1.0 (/opt/rustwide/workdir/crates/orch-git)
[INFO] [stderr]    Compiling orch-notify v0.1.0 (/opt/rustwide/workdir/crates/orch-notify)
[INFO] [stderr]    Compiling orch-graphite v0.1.0 (/opt/rustwide/workdir/crates/orch-graphite)
[INFO] [stderr]    Compiling orch-agents v0.1.0 (/opt/rustwide/workdir/crates/orch-agents)
[INFO] [stderr]    Compiling orch-verify v0.1.0 (/opt/rustwide/workdir/crates/orch-verify)
[INFO] [stderr]    Compiling orchd v0.1.0 (/opt/rustwide/workdir/crates/orchd)
[INFO] [stdout] warning: unused import: `AgentRole`
[INFO] [stdout]   --> crates/orchd/src/daemon_loop.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::agent_dispatch::{AgentDispatcher, AgentRole, RepoContext as DispatchRepoContext};
[INFO] [stdout]    |                                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling orch-tui v0.1.0 (/opt/rustwide/workdir/crates/orch-tui)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", 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" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling orch-core v0.1.0 (/opt/rustwide/workdir/crates/orch-core)
[INFO] [stderr]    Compiling orch-graphite v0.1.0 (/opt/rustwide/workdir/crates/orch-graphite)
[INFO] [stderr]    Compiling orch-git v0.1.0 (/opt/rustwide/workdir/crates/orch-git)
[INFO] [stderr]    Compiling orch-verify v0.1.0 (/opt/rustwide/workdir/crates/orch-verify)
[INFO] [stderr]    Compiling orch-agents v0.1.0 (/opt/rustwide/workdir/crates/orch-agents)
[INFO] [stderr]    Compiling orch-web v0.1.0 (/opt/rustwide/workdir/crates/orch-web)
[INFO] [stderr]    Compiling orch-notify v0.1.0 (/opt/rustwide/workdir/crates/orch-notify)
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling orchd v0.1.0 (/opt/rustwide/workdir/crates/orchd)
[INFO] [stdout] warning: unused import: `AgentRole`
[INFO] [stdout]   --> crates/orchd/src/daemon_loop.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::agent_dispatch::{AgentDispatcher, AgentRole, RepoContext as DispatchRepoContext};
[INFO] [stdout]    |                                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentRole`
[INFO] [stdout]   --> crates/orchd/src/daemon_loop.rs:15:46
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::agent_dispatch::{AgentDispatcher, AgentRole, RepoContext as DispatchRepoContext};
[INFO] [stdout]    |                                              ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> crates/orchd/src/service.rs:711:13
[INFO] [stdout]     |
[INFO] [stdout] 711 |         let mut parent = mk_task("P1", TaskState::Merged);
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling orch-tui v0.1.0 (/opt/rustwide/workdir/crates/orch-tui)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 45.47s
[INFO] running `Command { std: "docker" "inspect" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", 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" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `AgentRole`
[INFO] [stderr]   --> crates/orchd/src/daemon_loop.rs:15:46
[INFO] [stderr]    |
[INFO] [stderr] 15 | use crate::agent_dispatch::{AgentDispatcher, AgentRole, RepoContext as DispatchRepoContext};
[INFO] [stderr]    |                                              ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `orchd` (lib) generated 1 warning (run `cargo fix --lib -p orchd` to apply 1 suggestion)
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> crates/orchd/src/service.rs:711:13
[INFO] [stderr]     |
[INFO] [stderr] 711 |         let mut parent = mk_task("P1", TaskState::Merged);
[INFO] [stderr]     |             ----^^^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `orchd` (lib test) generated 2 warnings (1 duplicate) (run `cargo fix --lib -p orchd --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.32s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_agents-f0873cf2cdc52e5d)
[INFO] [stdout] 
[INFO] [stdout] running 52 tests
[INFO] [stdout] test adapter::tests::default_adapter_for_returns_adapter_matching_requested_model ... ok
[INFO] [stdout] test adapter::tests::adapters_keep_extra_args_order_before_prompt ... ok
[INFO] [stdout] test adapter::tests::codex_interactive_command_omits_exec_subcommand ... ok
[INFO] [stdout] test adapter::tests::gemini_interactive_command_omits_prompt_flag ... ok
[INFO] [stdout] test adapter::tests::codex_adapter_builds_command_with_exec_subcommand_and_prompt ... ok
[INFO] [stdout] test error::tests::invalid_request_error_formats_message ... ok
[INFO] [stdout] test adapter::tests::claude_adapter_builds_command_with_noninteractive_flags_and_prompt ... ok
[INFO] [stdout] test adapter::tests::gemini_adapter_builds_command_with_noninteractive_flags_and_prompt ... ok
[INFO] [stdout] test error::tests::pty_setup_error_formats_message ... ok
[INFO] [stdout] test error::tests::runtime_error_formats_message ... ok
[INFO] [stdout] test adapter::tests::claude_interactive_command_omits_headless_flags ... ok
[INFO] [stdout] test error::tests::spawn_error_formats_message ... ok
[INFO] [stdout] test error::tests::unsupported_model_error_includes_model_name ... ok
[INFO] [stdout] test runner::tests::render_shell_invocation_renders_cd_env_and_command ... ok
[INFO] [stdout] test runner::tests::run_epoch_rejects_empty_prompt_before_spawning ... ok
[INFO] [stdout] test runner::tests::run_epoch_rejects_zero_timeout_before_spawning ... ok
[INFO] [stdout] test runner::tests::shell_quote_wraps_and_escapes_single_quotes ... ok
[INFO] [stdout] test runner::tests::signal_to_stop_reason_maps_supported_signals ... ok
[INFO] [stdout] test setup::tests::probe_falls_back_to_default_executables_when_override_missing ... ok
[INFO] [stdout] test setup::tests::probe_marks_model_healthy_when_binary_version_and_env_ok ... ok
[INFO] [stdout] test setup::tests::probe_marks_model_unhealthy_when_env_missing ... ok
[INFO] [stdout] test setup::tests::summarize_setup_reports_selected_health_and_missing_env_groups ... ok
[INFO] [stdout] test setup::tests::summarize_setup_sorts_items_by_model_rank_regardless_of_report_order ... ok
[INFO] [stdout] test setup::tests::validate_selection_allows_subscription_style_when_env_is_missing ... ok
[INFO] [stdout] test setup::tests::validate_selection_dedupes_models_in_order ... ok
[INFO] [stdout] test signal::tests::bare_signal_words_no_longer_match ... ok
[INFO] [stdout] test setup::tests::validate_selection_rejects_unhealthy_selected_model ... ok
[INFO] [stdout] test signal::tests::bracket_signals_still_match ... ok
[INFO] [stdout] test setup::tests::probe_treats_any_of_env_group_as_satisfied_when_one_key_present ... ok
[INFO] [stdout] test signal::tests::detects_conflict_resolved_variants ... ok
[INFO] [stdout] test signal::tests::detects_qa_complete_signal ... ok
[INFO] [stdout] test signal::tests::detects_need_human_variants ... ok
[INFO] [stdout] test setup::tests::validate_selection_rejects_unknown_selected_model ... ok
[INFO] [stdout] test signal::tests::does_not_match_embedded_bracket_markers_inside_code ... ok
[INFO] [stdout] test signal::tests::detects_patch_ready_variants ... ok
[INFO] [stdout] test signal::tests::detects_rate_limited_variants ... ok
[INFO] [stdout] test signal::tests::ignores_prompt_echo_lines_containing_signal_markers ... ok
[INFO] [stdout] test signal::tests::prioritizes_need_human_over_other_markers_in_same_line ... ok
[INFO] [stdout] test types::tests::agent_signal_kind_serializes_in_snake_case ... ok
[INFO] [stdout] test signal::tests::prioritizes_patch_ready_over_rate_limit_markers ... ok
[INFO] [stdout] test util::tests::escapes_single_quotes ... ok
[INFO] [stdout] test util::tests::wraps_plain_value ... ok
[INFO] [stdout] test types::tests::epoch_result_roundtrip_preserves_fields ... ok
[INFO] [stdout] test signal::tests::signal_message_is_trimmed_but_source_line_is_preserved ... ok
[INFO] [stdout] test signal::tests::skips_diff_context_lines ... ok
[INFO] [stdout] test signal::tests::skips_diff_header_lines ... ok
[INFO] [stdout] test tests::crate_root_reexports_helpers ... ok
[INFO] [stdout] test signal::tests::returns_none_for_non_signal_output ... ok
[INFO] [stdout] test types::tests::epoch_stop_reason_serializes_in_snake_case ... ok
[INFO] [stdout] test tests::crate_root_reexports_types ... ok
[INFO] [stdout] test adapter::tests::adapters_preserve_empty_prompt_as_last_argument ... ok
[INFO] [stdout] test signal::tests::detects_error_hint_variants ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_core-da2ab3f25c1e105a)
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test config::tests::nix_config_wrap_command_passthrough_when_empty ... ok
[INFO] [stdout] test config::tests::nix_config_wrap_command_prepends_dev_shell ... ok
[INFO] [stdout] test config::tests::nix_config_wrap_command_trims_whitespace ... ok
[INFO] [stdout] test events::tests::all_event_kinds_serialize_and_deserialize ... ok
[INFO] [stdout] test config::tests::load_repo_config_classifies_read_and_parse_errors ... ok
[INFO] [stdout] test config::tests::daemon_config_custom_values ... ok
[INFO] [stdout] test config::tests::apply_setup_selection_updates_enabled_models_and_concurrency ... ok
[INFO] [stdout] test config::tests::daemon_config_partial_override ... ok
[INFO] [stdout] test config::tests::apply_profile_defaults_prod_enables_budget_enforcement ... ok
[INFO] [stdout] test events::tests::event_kind_serializes_with_snake_case_variant_names ... ok
[INFO] [stdout] test config::tests::apply_profile_defaults_custom_does_not_override_values ... ok
[INFO] [stdout] test config::tests::parse_org_config_maps_profile_to_enum_variants ... ok
[INFO] [stdout] test config::tests::serialize_org_config_writes_profile_as_string ... ok
[INFO] [stdout] test config::tests::budget_config_defaults ... ok
[INFO] [stdout] test config::tests::save_and_load_org_config_roundtrip ... ok
[INFO] [stdout] test events::tests::config_reloaded_event_created ... ok
[INFO] [stdout] test events::tests::event_with_none_task_id_roundtrips ... ok
[INFO] [stdout] test state::tests::can_restack_in_correct_states ... ok
[INFO] [stdout] test state::tests::can_submit_only_when_ready ... ok
[INFO] [stdout] test config::tests::apply_setup_selection_validates_inputs ... ok
[INFO] [stdout] test config::tests::daemon_config_defaults ... ok
[INFO] [stdout] test config::tests::apply_profile_defaults_dev_increases_concurrency_limits ... ok
[INFO] [stdout] test config::tests::parse_repo_config_parses_spec_shape ... ok
[INFO] [stdout] test events::tests::event_roundtrip ... ok
[INFO] [stdout] test state::tests::stopped_state_is_terminal_and_not_active ... ok
[INFO] [stdout] test state::tests::is_active_only_when_chatting ... ok
[INFO] [stdout] test state::tests::stopped_state_serializes_correctly ... ok
[INFO] [stdout] test state::tests::is_terminal_only_for_merged_and_stopped ... ok
[INFO] [stdout] test state::tests::task_state_deserializes_from_screaming_snake_case ... ok
[INFO] [stdout] test state::tests::task_state_display_all_variants ... ok
[INFO] [stdout] test state::tests::stopped_state_display ... ok
[INFO] [stdout] test types::tests::model_kind_serializes_as_snake_case ... ok
[INFO] [stdout] test types::tests::parse_yaml_task_spec_rejects_unknown_key ... ok
[INFO] [stdout] test types::tests::load_task_specs_from_dir_reads_only_valid_yaml ... ok
[INFO] [stdout] test state::tests::task_state_serializes_as_screaming_snake_case ... ok
[INFO] [stdout] test state::tests::terminal_state_check ... ok
[INFO] [stdout] test state::tests::verify_status_default_is_not_run ... ok
[INFO] [stdout] test types::tests::new_task_starts_in_chatting_state ... ok
[INFO] [stdout] test types::tests::task_priority_defaults_to_normal ... ok
[INFO] [stdout] test types::tests::parse_yaml_task_spec_parses_scalars_and_lists ... ok
[INFO] [stdout] test state::tests::verify_status_is_passed_and_is_failed ... ok
[INFO] [stdout] test types::tests::parse_yaml_task_spec_requires_title ... ok
[INFO] [stdout] test types::tests::task_priority_orders_critical_first_when_sorted_desc ... ok
[INFO] [stdout] test state::tests::verify_status_not_run_serialization ... ok
[INFO] [stdout] test types::tests::task_spec_deserializes_with_defaults ... ok
[INFO] [stdout] test types::tests::yaml_spec_to_task_defaults_on_invalid_model_and_priority ... ok
[INFO] [stdout] test state::tests::verify_status_passed_serialization ... ok
[INFO] [stdout] test state::tests::verify_status_roundtrip ... ok
[INFO] [stdout] test state::tests::verify_status_running_serialization ... ok
[INFO] [stdout] test tests::crate_root_reexports_core_types ... ok
[INFO] [stdout] test tests::crate_root_reexports_parse_helpers ... ok
[INFO] [stdout] test types::tests::dependencies_not_resolved_when_some_not_merged ... ok
[INFO] [stdout] test types::tests::dependencies_resolved_when_all_merged ... ok
[INFO] [stdout] test validation::tests::org_config_validation_reports_expected_errors ... ok
[INFO] [stdout] test validation::tests::repo_config_validation_reports_errors ... ok
[INFO] [stdout] test validation::tests::task_spec_validation_reports_missing_identifiers_and_title ... ok
[INFO] [stdout] test validation::tests::org_config_validation_reports_empty_enabled_models ... ok
[INFO] [stdout] test types::tests::yaml_spec_to_task_maps_fields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_git-ace2b759bd4b31b7)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test error::tests::io_variant_includes_command_and_io_message ... ok
[INFO] [stdout] test error::tests::repository_and_parse_variants_include_context ... ok
[INFO] [stdout] test snapshot::tests::file_state_from_code_returns_unknown_for_unhandled_codes ... ok
[INFO] [stdout] test command::tests::run_classifies_missing_binary_as_io_error ... ok
[INFO] [stdout] test error::tests::command_failed_variant_mentions_command_and_status ... ok
[INFO] [stdout] test snapshot::tests::parse_porcelain_status_preserves_rename_arrow_payload ... ok
[INFO] [stdout] test snapshot::tests::parse_porcelain_status_parses_common_status_codes ... ok
[INFO] [stdout] test tests::crate_root_reexports_snapshot_and_repo_functions ... ok
[INFO] [stdout] test tests::crate_root_reexports_types ... ok
[INFO] [stdout] test snapshot::tests::parse_porcelain_status_rejects_short_invalid_lines ... ok
[INFO] [stdout] test worktree::tests::parse_worktree_list_handles_entry_without_branch ... ok
[INFO] [stdout] test command::tests::run_returns_stdout_for_successful_command ... ok
[INFO] [stdout] test repo::tests::discover_repo_propagates_non_command_failed_git_errors ... ok
[INFO] [stdout] test worktree::tests::parse_worktree_list_rejects_non_empty_unparseable_output ... ok
[INFO] [stdout] test worktree::tests::parse_worktree_list_parses_multiple_entries_and_trims_refs_prefix ... ok
[INFO] [stdout] test worktree::tests::task_worktree_path_joins_repo_root_relative_root_and_task_id ... ok
[INFO] [stdout] test repo::tests::discover_repo_returns_not_a_repository_for_plain_directory ... ok
[INFO] [stdout] test error::tests::non_utf8_variant_mentions_stream_and_has_source ... ok
[INFO] [stdout] test command::tests::run_classifies_non_zero_exit_as_command_failed ... ok
[INFO] [stdout] test repo::tests::discover_repo_finds_root_from_nested_path ... ok
[INFO] [stdout] test snapshot::tests::capture_change_snapshot_records_head_parent_and_files ... ok
[INFO] [stdout] test snapshot::tests::redo_snapshot_reapplies_snapshot_content ... ok
[INFO] [stdout] test command::tests::run_uses_cwd_for_repo_sensitive_commands ... ok
[INFO] [stdout] test snapshot::tests::list_change_snapshots_filters_task_id ... ok
[INFO] [stdout] test snapshot::tests::list_change_snapshots_returns_empty_when_log_absent ... ok
[INFO] [stdout] test repo::tests::current_branch_and_head_sha_resolve_in_initialized_repository ... ok
[INFO] [stdout] test worktree::tests::create_list_and_remove_worktree_for_existing_branch ... ok
[INFO] [stdout] test snapshot::tests::undo_to_snapshot_restores_parent_content ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_graphite-fcf38426d0f50b46)
[INFO] [stdout] test snapshot::tests::undo_and_redo_handle_added_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 33 tests
[INFO] [stdout] test client::tests::repo_init_rejects_blank_trunk ... ok
[INFO] [stdout] test client::tests::move_current_branch_onto_passes_expected_flags ... ok
[INFO] [stdout] test client::tests::classifies_successful_restack ... ok
[INFO] [stdout] test client::tests::move_current_branch_onto_rejects_blank_target ... ok
[INFO] [stdout] test client::tests::create_branch_rejects_blank_name_before_cli_invocation ... ok
[INFO] [stdout] test client::tests::preserves_non_conflict_command_failed_errors ... ok
[INFO] [stdout] test client::tests::create_branch_rejects_blank_message_before_cli_invocation ... ok
[INFO] [stdout] test client::tests::track_branch_rejects_blank_branch ... ok
[INFO] [stdout] test client::tests::submit_single_mode_passes_headless_flags_without_stack ... ok
[INFO] [stdout] test client::tests::repo_init_passes_correct_arguments ... ok
[INFO] [stdout] test client::tests::preserves_non_conflict_errors ... ok
[INFO] [stdout] test command::tests::validate_contract_accepts_allowed_invocations ... ok
[INFO] [stdout] test command::tests::run_allowed_checks_contract_before_spawning_binary ... ok
[INFO] [stdout] test error::tests::detects_graphite_auth_failures ... ok
[INFO] [stdout] test command::tests::validate_contract_rejects_disallowed_or_mismatched_invocations ... ok
[INFO] [stdout] test error::tests::detects_restack_conflict_from_common_markers ... ok
[INFO] [stdout] test tests::crate_root_reexports_helpers_and_methods ... ok
[INFO] [stdout] test tests::crate_root_reexports_types ... ok
[INFO] [stdout] test types::tests::infer_task_dependencies_skips_edges_missing_task_mapping ... ok
[INFO] [stdout] test client::tests::track_branch_rejects_blank_parent ... ok
[INFO] [stdout] test error::tests::detects_trunk_outdated_failures ... ok
[INFO] [stdout] test error::tests::does_not_flag_unrelated_failures_as_conflicts ... ok
[INFO] [stdout] test client::tests::track_branch_passes_expected_flags ... ok
[INFO] [stdout] test error::tests::graph_error_helper_identifies_only_conflict_failures ... ok
[INFO] [stdout] test types::tests::infer_task_dependencies_dedupes_duplicate_edges ... ok
[INFO] [stdout] test types::tests::infers_linear_dependencies_when_depth_is_uniform ... ok
[INFO] [stdout] test types::tests::infers_tree_dependencies_when_depth_varies ... ok
[INFO] [stdout] test client::tests::submit_stack_mode_passes_stack_and_headless_flags ... ok
[INFO] [stdout] test types::tests::parse_gt_log_short_handles_graphite_markers_and_trailing_punctuation ... ok
[INFO] [stdout] test types::tests::normalizes_refs_heads_in_mapping_and_stack_lines ... ok
[INFO] [stdout] test types::tests::parse_gt_log_short_ignores_blank_lines_and_marks_current_node ... ok
[INFO] [stdout] test client::tests::conflict_resolution_commands_use_expected_gt_subcommands ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_notify-abb9c056ad0d40d6)
[INFO] [stdout] test client::tests::classifies_conflict_restack_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 36 tests
[INFO] [stdout] test mapper::tests::ignores_non_notifying_events ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_tui-4df65f49ed4c0954)
[INFO] [stdout] test mapper::tests::maps_failed_verify_to_error_notification ... ok
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/orch_tui-f5117b618d79a7d0)
[INFO] [stdout] test error::tests::sink_disabled_formats_sink_name ... ok
[INFO] [stdout] test error::tests::sink_failed_formats_failure_message ... ok
[INFO] [stdout] test mapper::tests::maps_agent_spawned_to_info ... ok
[INFO] [stdout] test mapper::tests::maps_restack_conflict_to_warning_notification ... ok
[INFO] [stdout] test mapper::tests::maps_failed_agent_completion_to_error_notification ... ok
[INFO] [stdout] test mapper::tests::maps_needs_human_and_error_events ... ok
[INFO] [stdout] test mapper::tests::maps_model_fallback_to_retry_warning ... ok
[INFO] [stdout] test mapper::tests::maps_successful_agent_completion_to_info ... ok
[INFO] [stdout] test mapper::tests::notification_from_template_uses_registry ... ok
[INFO] [stdout] test mapper::tests::maps_successful_verify_to_info ... ok
[INFO] [stdout] test mapper::tests::template_registry_custom_override ... ok
[INFO] [stdout] test mapper::tests::template_registry_has_defaults ... ok
[INFO] [stdout] test mapper::tests::vars_from_event_extracts_agent_fields ... ok
[INFO] [stdout] test sink::tests::from_policy_builds_enabled_sinks ... ok
[INFO] [stdout] test sink::tests::slack_payload_includes_channel_when_set ... ok
[INFO] [stdout] test sink::tests::slack_payload_includes_severity_emoji_and_task_id ... ok
[INFO] [stdout] test sink::tests::slack_payload_info_severity_uses_info_emoji ... ok
[INFO] [stdout] test sink::tests::slack_sink_kind_is_slack ... ok
[INFO] [stdout] test sink::tests::telegram_sink_returns_not_implemented_when_enabled ... ok
[INFO] [stdout] test sink::tests::webhook_sink_kind_is_webhook ... ok
[INFO] [stdout] test types::tests::enums_serialize_in_snake_case ... ok
[INFO] [stdout] test sink::tests::dispatch_fans_out_and_returns_per_sink_results ... ok
[INFO] [stdout] test types::tests::notification_message_roundtrip_preserves_optional_fields ... ok
[INFO] [stdout] test tests::crate_root_reexports_types ... ok
[INFO] [stdout] test mapper::tests::render_template_substitutes_variables ... ok
[INFO] [stdout] test tests::crate_root_reexports_mapper_helper ... ok
[INFO] [stdout] test sink::tests::from_policy_with_no_sinks_dispatches_to_none ... ok
[INFO] [stdout] test mapper::tests::render_template_strips_unresolved_placeholders ... ok
[INFO] [stdout] test sink::tests::telegram_sink_returns_disabled_error_when_not_enabled ... ok
[INFO] [stdout] test types::tests::notification_policy_defaults_to_stdout_sink ... ok
[INFO] [stdout] test sink::tests::dispatcher_with_stdout_sink_reports_success ... ok
[INFO] [stdout] test mapper::tests::returns_some_for_error_events ... ok
[INFO] [stdout] test sink::tests::slack_payload_omits_channel_when_none ... ok
[INFO] [stdout] test sink::tests::slack_payload_warning_severity_uses_warning_emoji ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 252 tests
[INFO] [stdout] test action::tests::action_label_matches_expected_snake_case_values ... ok
[INFO] [stdout] test action::tests::map_key_to_command_maps_navigation_and_actions ... ok
[INFO] [stdout] test app::tests::apply_event_agent_output_creates_and_updates_pane ... ok
[INFO] [stdout] test app::tests::apply_event_agent_output_does_not_override_failed_or_exited_status ... ok
[INFO] [stdout] test app::tests::apply_event_unknown_pane_status_change_sets_error_status_line ... ok
[INFO] [stdout] test app::tests::arrow_keys_navigate_tasks_and_panes_in_normal_view ... ok
[INFO] [stdout] test app::tests::apply_event_qa_update_ignores_unknown_task ... ok
[INFO] [stdout] test app::tests::backspace_deletes_char_in_dialog ... ok
[INFO] [stdout] test app::tests::apply_event_status_change_updates_existing_pane ... ok
[INFO] [stdout] test app::tests::apply_event_terminal_status_updates_status_line ... ok
[INFO] [stdout] test app::tests::chat_history_down_arrow_returns_to_draft ... ok
[INFO] [stdout] test app::tests::chat_input_backspace_resets_history_index ... ok
[INFO] [stdout] test action::tests::map_key_to_command_maps_quit_shortcuts_and_ignores_unknown ... ok
[INFO] [stdout] test app::tests::chat_input_ctrl_c_quits_from_chat_mode ... ok
[INFO] [stdout] test app::tests::chat_history_submitted_message_is_stored ... ok
[INFO] [stdout] test app::tests::chat_history_typing_resets_history_index ... ok
[INFO] [stdout] test app::tests::chat_input_empty_message_is_rejected ... ok
[INFO] [stdout] test app::tests::chat_input_escape_cancels_without_queueing_action ... ok
[INFO] [stdout] test app::tests::chat_input_key_enters_chat_mode_and_enter_queues_send ... ok
[INFO] [stdout] test app::tests::chat_history_is_per_task ... ok
[INFO] [stdout] test app::tests::chat_input_non_press_key_events_are_ignored ... ok
[INFO] [stdout] test app::tests::chat_input_message_is_trimmed_on_send ... ok
[INFO] [stdout] test app::tests::chat_input_no_task_selected_shows_error ... ok
[INFO] [stdout] test app::tests::chat_input_paste_appends_multiline_text ... ok
[INFO] [stdout] test app::tests::chat_input_paste_resets_history_index ... ok
[INFO] [stdout] test app::tests::chat_input_full_history_navigation_round_trip ... ok
[INFO] [stdout] test app::tests::delete_task_key_enters_confirm_mode_and_enter_queues_delete ... ok
[INFO] [stdout] test app::tests::ensure_pane_index_does_not_reuse_qa_pane_for_agent_output ... ok
[INFO] [stdout] test app::tests::delete_task_confirmation_escape_cancels_without_queueing_action ... ok
[INFO] [stdout] test app::tests::chat_history_up_with_no_history_does_nothing ... ok
[INFO] [stdout] test app::tests::chat_history_up_arrow_recalls_previous_message ... ok
[INFO] [stdout] test app::tests::ensure_pane_index_reuses_same_category_pane ... ok
[INFO] [stdout] test app::tests::enter_applies_filter_text ... ok
[INFO] [stdout] test app::tests::enter_creates_task ... ok
[INFO] [stdout] test app::tests::chat_input_send_history_entry_directly ... ok
[INFO] [stdout] test app::tests::chat_input_whitespace_only_message_is_rejected ... ok
[INFO] [stdout] test app::tests::clear_filter_on_esc ... ok
[INFO] [stdout] test app::tests::create_task_key_enters_prompt_mode_and_enter_queues_prompted_action ... ok
[INFO] [stdout] test app::tests::ctrl_c_quits_from_any_view ... ok
[INFO] [stdout] test app::tests::chat_input_backspace_removes_characters ... ok
[INFO] [stdout] test app::tests::chat_input_display_returns_none_in_normal_mode ... ok
[INFO] [stdout] test app::tests::enter_loads_selected_session_tasks_and_hides_sessions ... ok
[INFO] [stdout] test app::tests::esc_from_focused_pane_clears_scroll_back ... ok
[INFO] [stdout] test app::tests::f_key_cycles_state_filter ... ok
[INFO] [stdout] test app::tests::handle_key_event_dispatches_action_from_keymap ... ok
[INFO] [stdout] test app::tests::handle_key_event_enter_does_nothing_when_no_tasks ... ok
[INFO] [stdout] test app::tests::entering_focused_pane_clears_focused_task ... ok
[INFO] [stdout] test app::tests::chat_input_delete_confirm_y_key_confirms ... ok
[INFO] [stdout] test app::tests::entering_focused_task_clears_focused_pane_and_scroll ... ok
[INFO] [stdout] test app::tests::esc_cancels_dialog ... ok
[INFO] [stdout] test app::tests::esc_closes_help_overlay ... ok
[INFO] [stdout] test app::tests::handle_key_event_tab_toggles_focused_pane_and_escape_quits ... ok
[INFO] [stdout] test app::tests::handle_paste_is_ignored_outside_prompt_mode ... ok
[INFO] [stdout] test app::tests::handle_paste_appends_multiline_text_while_in_prompt_mode ... ok
[INFO] [stdout] test app::tests::help_overlay_renders ... ok
[INFO] [stdout] test app::tests::left_right_arrow_keys_toggle_category_and_update_focused_pane_idx ... ok
[INFO] [stdout] test app::tests::left_right_arrow_keys_toggle_pane_category_in_focused_task_view ... ok
[INFO] [stdout] test app::tests::model_select_arrow_keys_cycle_through_models ... ok
[INFO] [stdout] test app::tests::n_key_opens_new_task_dialog ... ok
[INFO] [stdout] test app::tests::normal_view_keys_pass_through_when_focused ... ok
[INFO] [stdout] test app::tests::push_action_uses_none_task_id_when_no_tasks_exist ... ok
[INFO] [stdout] test app::tests::l_key_enters_log_view_mode ... ok
[INFO] [stdout] test app::tests::question_mark_opens_help_overlay ... ok
[INFO] [stdout] test app::tests::model_select_esc_cancels_and_returns_to_normal ... ok
[INFO] [stdout] test app::tests::s_key_changes_sort_mode ... ok
[INFO] [stdout] test app::tests::r_key_reverses_sort ... ok
[INFO] [stdout] test app::tests::question_mark_closes_help_overlay ... ok
[INFO] [stdout] test app::tests::scroll_down_never_goes_negative ... ok
[INFO] [stdout] test app::tests::scroll_up_down_in_focused_task ... ok
[INFO] [stdout] test app::tests::set_panes_clamps_selected_index_when_list_shrinks ... ok
[INFO] [stdout] test app::tests::set_sessions_builds_session_display_rows ... ok
[INFO] [stdout] test app::tests::slash_key_enters_filter_mode ... ok
[INFO] [stdout] test app::tests::scroll_resets_when_toggling_category_in_focused_pane ... ok
[INFO] [stdout] test app::tests::t_key_toggles_timeline ... ok
[INFO] [stdout] test app::tests::tab_cycles_dialog_fields ... ok
[INFO] [stdout] test app::tests::task_selection_snaps_pane_when_no_panes_exist ... ok
[INFO] [stdout] test app::tests::toggle_focused_pane_clears_scroll_back ... ok
[INFO] [stdout] test app::tests::toggle_focused_task_clears_scroll_back ... ok
[INFO] [stdout] test app::tests::up_down_navigates_session_list_when_visible ... ok
[INFO] [stdout] test app::tests::vim_keys_scroll_in_focused_task ... ok
[INFO] [stdout] test app::tests::tasks_replaced_preserves_qa_data ... ok
[INFO] [stdout] test chat_parse::tests::agent_marker_detected ... ok
[INFO] [stdout] test chat_parse::tests::code_fence_captured_with_language ... ok
[INFO] [stdout] test chat_parse::tests::consecutive_agent_markers ... ok
[INFO] [stdout] test chat_parse::tests::diff_block_transitions_to_new_structural_marker ... ok
[INFO] [stdout] test chat_parse::tests::code_fence_without_language ... ok
[INFO] [stdout] test chat_parse::tests::diff_block_captured ... ok
[INFO] [stdout] test chat_parse::tests::empty_input_produces_no_blocks ... ok
[INFO] [stdout] test chat_parse::tests::empty_lines_preserved_in_assistant_text ... ok
[INFO] [stdout] test chat_parse::tests::exec_block_captured ... ok
[INFO] [stdout] test chat_parse::tests::mixed_sequence ... ok
[INFO] [stdout] test chat_parse::tests::plain_text_becomes_assistant_text ... ok
[INFO] [stdout] test chat_parse::tests::patch_block_captured ... ok
[INFO] [stdout] test chat_parse::tests::thinking_block_captured ... ok
[INFO] [stdout] test chat_parse::tests::status_signal_detected ... ok
[INFO] [stdout] test chat_parse::tests::tool_call_detects_failed_status ... ok
[INFO] [stdout] test chat_parse::tests::tool_call_defaults_to_running_when_no_status ... ok
[INFO] [stdout] test chat_parse::tests::tool_call_detects_succeeded_status ... ok
[INFO] [stdout] test chat_render::tests::agent_marker_centered_with_double_rules ... ok
[INFO] [stdout] test chat_parse::tests::user_messages_grouped ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_headers_get_accent ... ok
[INFO] [stdout] test chat_render::tests::agent_marker_skips_extra_separator ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_renders_blockquote ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_renders_bold ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_renders_code_span ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_renders_list_items ... ok
[INFO] [stdout] test chat_render::tests::assistant_text_renders_plain_white ... ok
[INFO] [stdout] test chat_render::tests::code_fence_has_line_numbers ... ok
[INFO] [stdout] test chat_render::tests::code_fence_without_language ... ok
[INFO] [stdout] test chat_render::tests::code_fence_has_borders_and_language_label ... ok
[INFO] [stdout] test app::tests::log_view_scroll_up ... ok
[INFO] [stdout] test app::tests::log_view_esc_returns_to_normal ... ok
[INFO] [stdout] test chat_render::tests::diff_block_extracts_file_header_and_stats ... ok
[INFO] [stdout] test chat_render::tests::diff_line_numbers_track ... ok
[INFO] [stdout] test chat_render::tests::line_number_width_uses_decimal_digits ... ok
[INFO] [stdout] test chat_render::tests::diff_shows_hunk_separator ... ok
[INFO] [stdout] test chat_render::tests::long_line_truncated_in_code_fence ... ok
[INFO] [stdout] test chat_render::tests::markdown_bold_text ... ok
[INFO] [stdout] test chat_render::tests::markdown_code_span ... ok
[INFO] [stdout] test chat_render::tests::markdown_empty_line ... ok
[INFO] [stdout] test chat_render::tests::markdown_italic_text ... ok
[INFO] [stdout] test chat_render::tests::markdown_plain_line_stays_single_span ... ok
[INFO] [stdout] test chat_render::tests::markdown_unclosed_bold_is_literal ... ok
[INFO] [stdout] test chat_render::tests::parse_hunk_header_handles_single_line_ranges ... ok
[INFO] [stdout] test chat_render::tests::patch_markers_styled_in_diff_block ... ok
[INFO] [stdout] test chat_render::tests::status_signal_colored_by_type ... ok
[INFO] [stdout] test chat_render::tests::thinking_collapses_long_blocks ... ok
[INFO] [stdout] test chat_render::tests::thinking_shows_all_when_short ... ok
[INFO] [stdout] test chat_render::tests::thinking_shows_summary_with_prefix ... ok
[INFO] [stdout] test chat_render::tests::tool_call_failed_shows_red ... ok
[INFO] [stdout] test chat_render::tests::tool_call_non_diff_truncates_aggressively ... ok
[INFO] [stdout] test chat_render::tests::tool_call_short_output_shows_all ... ok
[INFO] [stdout] test chat_render::tests::tool_call_shows_status_indicator ... ok
[INFO] [stdout] test chat_render::tests::tool_call_succeeded_shows_green ... ok
[INFO] [stdout] test chat_render::tests::tool_call_truncates_long_output ... ok
[INFO] [stdout] test chat_render::tests::truncate_str_respects_unicode_boundaries ... ok
[INFO] [stdout] test chat_render::tests::markdown_bold_italic ... ok
[INFO] [stdout] test chat_render::tests::tool_call_with_diff_content_allows_more_lines ... ok
[INFO] [stdout] test chat_render::tests::truncate_str_truncates_long_strings ... ok
[INFO] [stdout] test chat_render::tests::tool_call_with_diff_content_uses_red_green ... ok
[INFO] [stdout] test chat_render::tests::truncate_str_single_char_budget_uses_ellipsis ... ok
[INFO] [stdout] test chat_render::tests::user_message_has_cyan_border ... ok
[INFO] [stdout] test chat_render::tests::truncate_str_preserves_short_strings ... ok
[INFO] [stdout] test error::tests::io_error_converts_via_from_and_preserves_source ... ok
[INFO] [stdout] test event::tests::agent_output_and_status_events_roundtrip ... ok
[INFO] [stdout] test event::tests::status_line_event_roundtrip ... ok
[INFO] [stdout] test event::tests::qa_update_event_roundtrip ... ok
[INFO] [stdout] test model::tests::completion_percentage_empty_tasks ... ok
[INFO] [stdout] test model::tests::agent_pane_append_and_tail ... ok
[INFO] [stdout] test model::tests::combined_filter ... ok
[INFO] [stdout] test event::tests::tasks_replaced_event_serializes_with_kind_tag ... ok
[INFO] [stdout] test model::tests::dashboard_state_cycles_theme_index_and_theme ... ok
[INFO] [stdout] test model::tests::default_theme_uses_expected_palette ... ok
[INFO] [stdout] test model::tests::display_state_reflects_verify ... ok
[INFO] [stdout] test model::tests::error_entry_serialization ... ok
[INFO] [stdout] test model::tests::focused_scroll_budget_includes_previous_chat_history ... ok
[INFO] [stdout] test model::tests::filter_by_text_matches_title ... ok
[INFO] [stdout] test model::tests::dashboard_model_health_default ... ok
[INFO] [stdout] test model::tests::named_themes_have_distinct_core_colors ... ok
[INFO] [stdout] test model::tests::filter_by_text_matches_id_case_insensitive ... ok
[INFO] [stdout] test model::tests::has_pane_in_category_checks_existence ... ok
[INFO] [stdout] test model::tests::move_pane_selection_toggles_category ... ok
[INFO] [stdout] test model::tests::normalize_pane_line_strips_ansi ... ok
[INFO] [stdout] test model::tests::pane_category_of_infers_from_instance_id ... ok
[INFO] [stdout] test model::tests::pane_window_with_history_keeps_live_tail_clean_until_scroll ... ok
[INFO] [stdout] test model::tests::pane_index_for_task_category_finds_correct_pane ... ok
[INFO] [stdout] test model::tests::pane_matches_category_classifies_by_prefix ... ok
[INFO] [stdout] test model::tests::pane_window_with_history_reveals_previous_chat_on_scroll_up ... ok
[INFO] [stdout] test model::tests::render_status_bar_token_color_thresholds ... ok
[INFO] [stdout] test model::tests::render_status_bar_token_formatting_k_and_m ... ok
[INFO] [stdout] test model::tests::render_status_bar_watcher_enabled_and_disabled ... ok
[INFO] [stdout] test model::tests::render_status_bar_with_typical_data ... ok
[INFO] [stdout] test model::tests::render_status_bar_with_model_name_and_none ... ok
[INFO] [stdout] test model::tests::session_display_from_session_maps_fields ... ok
[INFO] [stdout] test model::tests::retry_history_default_empty ... ok
[INFO] [stdout] test model::tests::session_selection_wraps_and_handles_empty ... ok
[INFO] [stdout] test model::tests::snap_pane_to_task_falls_back_when_category_missing ... ok
[INFO] [stdout] test model::tests::snap_pane_to_task_prefers_current_category ... ok
[INFO] [stdout] test model::tests::sort_mode_cycles_correctly ... ok
[INFO] [stdout] test model::tests::completion_percentage_with_mixed_states ... ok
[INFO] [stdout] test model::tests::sorted_tasks_reversed ... ok
[INFO] [stdout] test model::tests::sorted_tasks_by_name ... ok
[INFO] [stdout] test model::tests::state_summary_counts_tasks ... ok
[INFO] [stdout] test model::tests::state_summary_empty_tasks ... ok
[INFO] [stdout] test model::tests::status_bar_data_from_dashboard_counts_states ... ok
[INFO] [stdout] test model::tests::status_bar_data_default_values ... ok
[INFO] [stdout] test model::tests::status_bar_data_from_empty_dashboard ... ok
[INFO] [stdout] test model::tests::task_overview_row_from_task ... ok
[INFO] [stdout] test model::tests::task_row_includes_dependencies ... ok
[INFO] [stdout] test model::tests::task_row_with_cost ... ok
[INFO] [stdout] test model::tests::task_row_includes_pr_url ... ok
[INFO] [stdout] test model::tests::theme_for_index_wraps_across_all_builtins ... ok
[INFO] [stdout] test model::tests::timeline_events_default_empty ... ok
[INFO] [stdout] test model::tests::toggle_pane_category_snaps_to_matching_pane ... ok
[INFO] [stdout] test model::tests::toggle_pane_category_switches_between_agent_and_qa ... ok
[INFO] [stdout] test output_style::tests::agent_exit_line_styled_as_dim ... ok
[INFO] [stdout] test model::tests::timeline_event_serialization ... ok
[INFO] [stdout] test output_style::tests::code_fence_lines_use_muted_style ... ok
[INFO] [stdout] test output_style::tests::diff_block_header_styled_as_accent ... ok
[INFO] [stdout] test output_style::tests::diff_block_lines_get_diff_coloring ... ok
[INFO] [stdout] test output_style::tests::exec_block_lines_use_muted_style ... ok
[INFO] [stdout] test output_style::tests::exec_block_skips_false_error_styling ... ok
[INFO] [stdout] test output_style::tests::exec_marker_styled_as_yellow_bold ... ok
[INFO] [stdout] test output_style::tests::output_line_style_marks_patch_edits_clearly ... ok
[INFO] [stdout] test output_style::tests::output_line_style_marks_special_chat_signals ... ok
[INFO] [stdout] test output_style::tests::thinking_marker_styled_as_dim_magenta ... ok
[INFO] [stdout] test runner::tests::handle_terminal_event_routes_key_events_to_app ... ok
[INFO] [stdout] test tests::crate_root_reexports_helper_functions ... ok
[INFO] [stdout] test runner::tests::handle_terminal_event_routes_paste_events_to_prompt_buffer ... ok
[INFO] [stdout] test app::tests::apply_event_qa_update_sets_task_qa_fields ... ok
[INFO] [stdout] test ui::tests::cost_display_formatting ... ok
[INFO] [stdout] test app::tests::chat_input_control_chars_are_ignored ... ok
[INFO] [stdout] test app::tests::push_action_attaches_selected_task_id ... ok
[INFO] [stdout] test model::tests::filter_by_state ... ok
[INFO] [stdout] test app::tests::apply_event_agent_output_reuses_existing_non_running_task_pane ... ok
[INFO] [stdout] test tests::crate_root_reexports_types ... ok
[INFO] [stdout] test ui::tests::format_dependency_chain_empty ... ok
[INFO] [stdout] test ui::tests::cost_display_unknown ... ok
[INFO] [stdout] test ui::tests::format_dependency_chain_with_deps ... ok
[INFO] [stdout] test ui::tests::footer_height_expands_for_large_prompt_and_clamps ... ok
[INFO] [stdout] test ui::tests::format_category_tabs_shows_agent_and_qa_tabs ... ok
[INFO] [stdout] test ui::tests::format_category_tabs_highlights_selected_category ... ok
[INFO] [stdout] test ui::tests::status_line_color_highlights_attention_levels ... ok
[INFO] [stdout] test ui::tests::format_pane_tabs_handles_empty_and_selected_pane ... ok
[INFO] [stdout] test ui::tests::format_pane_tabs_marks_first_selected_by_default ... ok
[INFO] [stdout] test ui::tests::status_sidebar_hides_qa_section_when_no_qa_data ... ok
[INFO] [stdout] test output_style::tests::code_fence_skips_false_error_styling ... ok
[INFO] [stdout] test output_style::tests::codex_marker_styled_as_accent ... ok
[INFO] [stdout] test runner::tests::handle_terminal_event_ignores_resize_events ... ok
[INFO] [stdout] test ui::tests::pane_status_tag_maps_all_statuses ... ok
[INFO] [stdout] test ui::tests::session_status_helpers_render_expected_values ... ok
[INFO] [stdout] test ui::tests::format_task_row_includes_expected_columns ... ok
[INFO] [stdout] test ui::tests::to_local_time_uses_fixed_format ... ok
[INFO] [stdout] test ui::tests::status_activity_only_animates_live_pane_statuses ... ok
[INFO] [stdout] test ui::tests::wrapped_visual_line_count_handles_wrapping_and_newlines ... ok
[INFO] [stdout] test ui::tests::status_sidebar_lines_compactly_reports_plan_and_status ... ok
[INFO] [stdout] test ui::tests::status_sidebar_lines_marks_ready_plan_complete ... ok
[INFO] [stdout] test ui_footer::tests::model_health_mixed ... ok
[INFO] [stdout] test ui::tests::status_sidebar_lines_shows_push_detail_when_submitting ... ok
[INFO] [stdout] test ui_footer::tests::progress_bar_format ... ok
[INFO] [stdout] test ui_footer::tests::model_health_all_healthy ... ok
[INFO] [stdout] test ui::tests::status_sidebar_shows_activity_lines_with_styling ... ok
[INFO] [stdout] test ui::tests::status_sidebar_shows_qa_section_when_qa_data_present ... ok
[INFO] [stdout] test app::tests::log_view_scroll_down ... ok
[INFO] [stdout] test ui::tests::status_sidebar_limits_activity_to_last_10 ... ok
[INFO] [stdout] test ui_format::tests::state_color_returns_correct_colors ... ok
[INFO] [stdout] test ui::tests::status_sidebar_shows_verifying_when_verify_in_progress ... ok
[INFO] [stdout] test app::tests::log_view_jump_to_end ... ok
[INFO] [stdout] test app::tests::handle_key_event_esc_closes_focused_task_before_quitting ... ok
[INFO] [stdout] test app::tests::handle_key_event_enter_toggles_focused_task_and_clears_focused_pane ... ok
[INFO] [stdout] test app::tests::handle_key_event_esc_closes_focused_pane_before_quitting ... ok
[INFO] [stdout] test ui::tests::status_sidebar_shows_verify_failed_when_verify_fails ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 252 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test tests::chat_log_path_uses_task_id ... ok
[INFO] [stdout] test tests::models_command_is_detected ... ok
[INFO] [stdout] test tests::parse_cli_args_help_returns_usage ... ok
[INFO] [stdout] test tests::parse_cli_args_rejects_invalid_tick_rate_values ... ok
[INFO] [stdout] test tests::parse_cli_args_uses_default_tick_rate ... ok
[INFO] [stdout] test tests::parse_cli_args_rejects_missing_tick_rate_value ... ok
[INFO] [stdout] test tests::parse_cli_args_applies_tick_rate_and_sqlite_override ... ok
[INFO] [stdout] test tests::chat_log_roundtrip ... ok
[INFO] [stdout] test tests::available_models_command_lists_all_models ... ok
[INFO] [stdout] test tests::discover_qa_stack_head_prefers_latest_qa_confirmed_task ... ok
[INFO] [stdout] test tests::chat_log_truncates_on_load ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_verify-fee1004f0c53f9c2)
[INFO] [stdout] test tests::append_chat_log_skips_empty_lines_vec ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test runner::tests::multi_verify_empty_commands_succeeds ... ok
[INFO] [stdout] test error::tests::io_variant_includes_command_and_preserves_source ... ok
[INFO] [stdout] test error::tests::invalid_config_variant_renders_message ... ok
[INFO] [stdout] test error::tests::non_utf8_variant_mentions_stream_and_has_source ... ok
[INFO] [stdout] test runner::tests::run_verify_succeeds_with_true ... ok
[INFO] [stdout] test runner::tests::multi_verify_runs_all_on_success ... ok
[INFO] [stdout] test runner::tests::run_verify_fails_with_false ... ok
[INFO] [stdout] test runner::tests::run_verify_passes_with_empty_command ... ok
[INFO] [stdout] test runner::tests::run_verify_wraps_command_with_nix_dev_shell ... ok
[INFO] [stdout] test runner::tests::run_verify_captures_output ... ok
[INFO] [stdout] test runner::tests::run_verify_includes_duration ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_web-6539fbab64d27c89)
[INFO] [stdout] test runner::tests::multi_verify_stops_on_first_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 19 tests
[INFO] [stdout] test response::tests::builds_error_response ... ok
[INFO] [stdout] test handler::tests::health_includes_status_and_paths ... ok
[INFO] [stdout] test handler::tests::get_task_returns_not_found_for_unknown_id ... ok
[INFO] [stdout] test response::tests::builds_json_response ... ok
[INFO] [stdout] test handler::tests::list_tasks_returns_json_array ... ok
[INFO] [stdout] test handler::tests::create_task_returns_created_task ... ok
[INFO] [stdout] test router::tests::extracts_path_params ... ok
[INFO] [stdout] test request::tests::rejects_malformed_request_line ... ok
[INFO] [stdout] test router::tests::does_not_match_when_method_differs ... ok
[INFO] [stdout] test request::tests::parses_get_request_with_query ... ok
[INFO] [stdout] test router::tests::does_not_match_unknown_path ... ok
[INFO] [stdout] test router::tests::matched_handler_is_callable ... ok
[INFO] [stdout] test router::tests::matches_exact_route ... ok
[INFO] [stdout] test server::tests::run_once_returns_not_found_for_unknown_route ... ok
[INFO] [stdout] test request::tests::rejects_unsupported_method ... ok
[INFO] [stdout] test handler::tests::create_task_requires_body ... ok
[INFO] [stdout] test response::tests::writes_http_response_to_stream ... ok
[INFO] [stdout] test server::tests::run_once_serves_health_endpoint ... ok
[INFO] [stdout] test request::tests::parses_post_request_with_body ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/orch_web-047a9c70a5cd64e1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orchd-acb89e0f7dba8a11)
[INFO] [stdout] 
[INFO] [stdout] running 891 tests
[INFO] [stdout] test agent_dispatch::tests::agent_role_model_mapping ... ok
[INFO] [stdout] test agent_dispatch::tests::dispatch_routes_implementation_to_hephaestus ... ok
[INFO] [stdout] test agent_dispatch::tests::dispatch_routes_docs_to_librarian ... ok
[INFO] [stdout] test agent_dispatch::tests::task_intent_classification ... ok
[INFO] [stdout] test agent_dispatch::tests::dispatch_routes_quick_fix_to_explorer ... ok
[INFO] [stdout] test agent_dispatch::tests::dispatch_routes_error_recovery_to_sisyphus ... ok
[INFO] [stdout] test agent_log::tests::diff_agent_outputs_computes_line_changes ... ok
[INFO] [stdout] test agent_log::tests::diff_agent_outputs_handles_empty_inputs ... ok
[INFO] [stdout] test agent_log::tests::diff_agent_outputs_handles_identical_inputs ... ok
[INFO] [stdout] test agent_log::tests::diff_summary_counts_all_variants ... ok
[INFO] [stdout] test agent_log::tests::extract_key_sections_detects_error_code_decision_and_summary ... ok
[INFO] [stdout] test agent_log::tests::compact_context_with_zero_max_lines_returns_empty_summary ... ok
[INFO] [stdout] test agent_dispatch::tests::fallback_escalates_to_sisyphus ... ok
[INFO] [stdout] test agent_log::tests::compact_context_keeps_all_lines_when_within_limit ... ok
[INFO] [stdout] test agent_log::tests::append_creates_directory_and_file ... ok
[INFO] [stdout] test agent_log::tests::compact_context_keeps_edges_and_middle_error_signal ... ok
[INFO] [stdout] test agent_log::tests::extract_key_sections_handles_unclosed_code_fence ... ok
[INFO] [stdout] test agent_log::tests::format_diff_renders_expected_markers ... ok
[INFO] [stdout] test attribution::tests::annotate_commit_message_appends_trailer ... ok
[INFO] [stdout] test attribution::tests::annotate_pr_body_appends_attribution ... ok
[INFO] [stdout] test attribution::tests::attribution_style_display ... ok
[INFO] [stdout] test attribution::tests::attribution_style_from_str_parsing ... ok
[INFO] [stdout] test agent_log::tests::read_nonexistent_log_returns_error ... ok
[INFO] [stdout] test agent_log::tests::save_compacted_summary_writes_compacted_log_file ... ok
[INFO] [stdout] test agent_log::tests::rotate_log_respects_max_files ... ok
[INFO] [stdout] test attribution::tests::commit_trailer_co_authored_by_format ... ok
[INFO] [stdout] test auto_compact::tests::estimate_tokens_rough_accuracy ... ok
[INFO] [stdout] test auto_compact::tests::record_compaction_resets_counters ... ok
[INFO] [stdout] test agent_log::tests::rotate_log_shifts_files ... ok
[INFO] [stdout] test attribution::tests::commit_trailer_none_returns_none ... ok
[INFO] [stdout] test attribution::tests::commit_trailer_assisted_by_format ... ok
[INFO] [stdout] test attribution::tests::default_attribution_style ... ok
[INFO] [stdout] test attribution::tests::pr_attribution_with_generated_line ... ok
[INFO] [stdout] test auto_compact::tests::default_config_values ... ok
[INFO] [stdout] test agent_log::tests::rotate_log_if_needed_rotates_large_files ... ok
[INFO] [stdout] test auto_compact::tests::should_compact_above_threshold ... ok
[INFO] [stdout] test agent_log::tests::list_rotated_logs_finds_all ... ok
[INFO] [stdout] test chat_workspace::tests::branch_name_uses_task_prefix ... ok
[INFO] [stdout] test auto_compact::tests::should_compact_below_threshold ... ok
[INFO] [stdout] test auto_compact::tests::should_compact_disabled ... ok
[INFO] [stdout] test auto_compact::tests::should_compact_not_enough_messages ... ok
[INFO] [stdout] test auto_compact::tests::token_tracking_record_usage ... ok
[INFO] [stdout] test auto_compact::tests::status_line_format ... ok
[INFO] [stdout] test auto_compact::tests::build_compaction_prompt_format ... ok
[INFO] [stdout] test ci_gen::tests::cache_enabled_affects_output ... ok
[INFO] [stdout] test ci_gen::tests::custom_branches_in_config ... ok
[INFO] [stdout] test ci_gen::tests::default_config ... ok
[INFO] [stdout] test ci_gen::tests::generate_basic_ci_excludes_nix ... ok
[INFO] [stdout] test ci_gen::tests::generate_github_actions_contains_required_keys ... ok
[INFO] [stdout] test code_search::tests::config_default_values_match_spec ... ok
[INFO] [stdout] test code_search::tests::build_sourcegraph_query_uses_config_defaults ... ok
[INFO] [stdout] test ci_gen::tests::validate_workflow_catches_missing_fields ... ok
[INFO] [stdout] test code_search::tests::parse_github_response_requires_authentication ... ok
[INFO] [stdout] test code_search::tests::config_deserialize_uses_field_defaults ... ok
[INFO] [stdout] test code_search::tests::parse_github_response_extracts_items ... ok
[INFO] [stdout] test ci_gen::tests::generate_nix_ci_includes_nix_setup ... ok
[INFO] [stdout] test code_search::tests::build_github_query_applies_filters ... ok
[INFO] [stdout] test agent_log::tests::tail_returns_last_n_lines ... ok
[INFO] [stdout] test code_search::tests::parse_github_response_reports_rate_limit ... ok
[INFO] [stdout] test code_search::tests::build_sourcegraph_query_applies_all_filters ... ok
[INFO] [stdout] test code_search::tests::parse_github_response_uses_fallback_fields ... ok
[INFO] [stdout] test code_search::tests::parse_github_response_requires_items_array ... ok
[INFO] [stdout] test code_search::tests::parse_sourcegraph_response_accepts_fallback_fields ... ok
[INFO] [stdout] test code_search::tests::parse_sourcegraph_response_extracts_results ... ok
[INFO] [stdout] test agent_log::tests::total_log_size_sums_correctly ... ok
[INFO] [stdout] test code_search::tests::parse_sourcegraph_response_reports_rate_limit ... ok
[INFO] [stdout] test code_search::tests::parse_sourcegraph_response_requires_results_array ... ok
[INFO] [stdout] test code_search::tests::search_error_display_is_readable ... ok
[INFO] [stdout] test context_gen::tests::parse_context_gen_output_basic ... ok
[INFO] [stdout] test context_gen::tests::parse_context_gen_output_empty ... ok
[INFO] [stdout] test context_gen::tests::sanitize_path_allows_subdirectories ... ok
[INFO] [stdout] test context_gen::tests::parse_context_gen_output_strips_path_traversal ... ok
[INFO] [stdout] test context_gen::tests::sanitize_path_strips_dangerous_sequences ... ok
[INFO] [stdout] test context_gen::tests::context_gen_state_default ... ok
[INFO] [stdout] test context_gen::tests::parse_context_gen_output_nested_paths ... ok
[INFO] [stdout] test context_gen::tests::should_regenerate_respects_cooldown ... ok
[INFO] [stdout] test context_gen::tests::scan_repo_snapshot_includes_cargo_toml ... ok
[INFO] [stdout] test context_gen::tests::should_regenerate_blocks_while_running ... ok
[INFO] [stdout] test context_gen::tests::git_hash_roundtrip ... ok
[INFO] [stdout] test context_gen::tests::build_context_gen_prompt_includes_snapshot ... ok
[INFO] [stdout] test context_gen::tests::sanitize_path_empty_becomes_unnamed ... ok
[INFO] [stdout] test context_gen_telemetry::tests::cache_hit_rate_calculation ... ok
[INFO] [stdout] test context_gen_telemetry::tests::format_bytes_scales ... ok
[INFO] [stdout] test context_gen_telemetry::tests::record_failure_counts_separately ... ok
[INFO] [stdout] test context_gen_telemetry::tests::record_start_increments ... ok
[INFO] [stdout] test context_gen_telemetry::tests::metrics_default_is_zero ... ok
[INFO] [stdout] test context_gen_telemetry::tests::metrics_serializes_to_json ... ok
[INFO] [stdout] test context_gen_telemetry::tests::render_report_shows_token_budget_warning ... ok
[INFO] [stdout] test context_gen_telemetry::tests::assess_staleness_missing_context ... ok
[INFO] [stdout] test context_gen_telemetry::tests::scan_coverage_empty ... ok
[INFO] [stdout] test context_gen::tests::context_is_current_requires_main_md_and_hash ... ok
[INFO] [stdout] test context_gen_telemetry::tests::record_success_updates_min_max_avg ... ok
[INFO] [stdout] test context_gen_telemetry::tests::estimate_tokens_rough ... ok
[INFO] [stdout] test context_gen_telemetry::tests::stale_warning_severity_order ... ok
[INFO] [stdout] test context_gen_telemetry::tests::render_report_includes_sections ... ok
[INFO] [stdout] test context_graph::tests::extracts_file_references ... ok
[INFO] [stdout] test context_graph::tests::extracts_links_and_source_refs ... ok
[INFO] [stdout] test context_graph::tests::extracts_multiple_wiki_links ... ok
[INFO] [stdout] test context_graph::tests::extracts_single_wiki_link ... ok
[INFO] [stdout] test context_graph::tests::extracts_wiki_links_from_nested_context_directory ... ok
[INFO] [stdout] test context_graph::tests::context_graph_parses_cmd_directive ... ok
[INFO] [stdout] test context_graph::tests::normalise_path_resolves_parent_refs ... ok
[INFO] [stdout] test context_graph::tests::loads_context_graph_bfs ... ok
[INFO] [stdout] test context_graph::tests::parses_skill_frontmatter_fields ... ok
[INFO] [stdout] test context_gen_telemetry::tests::build_report_with_metrics ... ok
[INFO] [stdout] test context_graph::tests::context_graph_parses_glob_directive ... ok
[INFO] [stdout] test context_graph::tests::render_context_produces_markdown ... ok
[INFO] [stdout] test context_graph::tests::respects_char_budget ... ok
[INFO] [stdout] test context_graph::tests::returns_none_when_no_entry ... ok
[INFO] [stdout] test context_graph::tests::respects_max_depth ... ok
[INFO] [stdout] test context_gen::tests::write_context_files_creates_subdirs_and_files ... ok
[INFO] [stdout] test context_graph::tests::context_graph_cmd_truncates_long_output ... ok
[INFO] [stdout] test auto_compact::tests::utilization_calculation ... ok
[INFO] [stdout] test chat_workspace::tests::branch_name_falls_back_when_empty_after_sanitize ... ok
[INFO] [stdout] test chat_workspace::tests::branch_name_sanitizes_invalid_characters ... ok
[INFO] [stdout] test ci_gen::tests::generate_verify_workflow_is_valid ... ok
[INFO] [stdout] test context_manager::tests::active_blockers_filters_resolved ... ok
[INFO] [stdout] test context_graph::tests::test_default_depth_is_10 ... ok
[INFO] [stdout] test context_manager::tests::context_state_records_errors ... ok
[INFO] [stdout] test context_manager::tests::context_state_tracks_resolutions ... ok
[INFO] [stdout] test context_manager::tests::render_context_produces_markdown ... ok
[INFO] [stdout] test context_manager::tests::task_lineage_tracks_attempts ... ok
[INFO] [stdout] test conversation::tests::conversation_error_display_impls_are_readable ... ok
[INFO] [stdout] test conversation::tests::add_message_returns_not_found_for_unknown_conversation ... ok
[INFO] [stdout] test conversation::tests::conversation_message_creation_supports_all_roles ... ok
[INFO] [stdout] test conversation::tests::create_conversation_and_add_message_updates_tokens ... ok
[INFO] [stdout] test conversation::tests::delete_conversation_removes_from_store_and_task_index ... ok
[INFO] [stdout] test conversation::tests::delete_conversation_returns_error_when_missing ... ok
[INFO] [stdout] test conversation::tests::export_and_import_round_trip_preserves_data ... ok
[INFO] [stdout] test context_manager::tests::build_context_includes_history ... ok
[INFO] [stdout] test agent_log::tests::rotate_log_if_needed_skips_small_files ... ok
[INFO] [stdout] test context_gen_telemetry::tests::build_report_without_metrics ... ok
[INFO] [stdout] test context_graph::tests::skill_registry_discovers_local_and_user_skills ... ok
[INFO] [stdout] test context_graph::tests::test_depth_limit_respected ... ok
[INFO] [stdout] test context_graph::tests::test_cycle_detection ... ok
[INFO] [stdout] test context_gen_telemetry::tests::report_serializes_to_json ... ok
[INFO] [stdout] test context_graph::tests::test_cycle_with_source_refs ... ok
[INFO] [stdout] test context_graph::tests::skill_registry_empty_when_no_skill_dirs ... ok
[INFO] [stdout] test context_gen_telemetry::tests::assess_staleness_hash_mismatch ... ok
[INFO] [stdout] test context_graph::tests::loads_context_graph_bfs_with_wiki_links ... ok
[INFO] [stdout] test context_gen_telemetry::tests::scan_coverage_with_files ... ok
[INFO] [stdout] test context_graph::tests::skill_registry_load_skill_returns_none_for_missing_name ... ok
[INFO] [stdout] test context_graph::tests::skill_registry_prefers_local_on_duplicate_name ... ok
[INFO] [stdout] test conversation::tests::get_last_n_messages_returns_recent_items ... ok
[INFO] [stdout] test conversation::tests::get_messages_respects_limit_and_offset ... ok
[INFO] [stdout] test conversation::tests::get_task_conversations_returns_only_matching_task ... ok
[INFO] [stdout] test conversation::tests::import_conversation_returns_import_error_for_invalid_json ... ok
[INFO] [stdout] test conversation::tests::prune_old_conversations_deletes_stale_entries ... ok
[INFO] [stdout] test conversation::tests::prune_old_conversations_handles_large_age_without_panic ... ok
[INFO] [stdout] test conversation::tests::import_conversation_rejects_duplicate_id ... ok
[INFO] [stdout] test conversation::tests::search_messages_finds_matches_across_conversations ... ok
[INFO] [stdout] test conversation::tests::tool_result_creation_round_trip_fields ... ok
[INFO] [stdout] test conversation::tests::total_tokens_returns_zero_for_missing_conversation ... ok
[INFO] [stdout] test custom_commands::tests::command_prefix_display ... ok
[INFO] [stdout] test custom_commands::tests::display_commands_table_formats_rows ... ok
[INFO] [stdout] test custom_commands::tests::extract_arguments_ignores_lowercase ... ok
[INFO] [stdout] test custom_commands::tests::discover_commands_from_empty_dir ... ok
[INFO] [stdout] test custom_commands::tests::parse_command_description_from_html_comment ... ok
[INFO] [stdout] test custom_commands::tests::render_command_replaces_arguments ... ok
[INFO] [stdout] test custom_commands::tests::validate_command_template_accepts_valid_tokens ... ok
[INFO] [stdout] test custom_commands::tests::render_command_errors_on_missing_args ... ok
[INFO] [stdout] test custom_commands::tests::parse_command_description_without_description ... ok
[INFO] [stdout] test custom_commands::tests::extract_arguments_deduplicates ... ok
[INFO] [stdout] test conversation::tests::tool_call_creation_round_trip_fields ... ok
[INFO] [stdout] test custom_commands::tests::extract_arguments_finds_uppercase_patterns ... ok
[INFO] [stdout] test custom_commands::tests::validate_command_template_rejects_empty_default ... ok
[INFO] [stdout] test custom_commands::tests::validate_command_template_rejects_invalid_start ... ok
[INFO] [stdout] test custom_commands::tests::discover_commands_rewrites_legacy_template_syntax ... ok
[INFO] [stdout] test custom_commands::tests::discover_commands_from_dir_reads_markdown_and_subdirs ... ok
[INFO] [stdout] test daemon_loop::tests::build_spawn_action_injects_qa_failure_context_on_retry ... ok
[INFO] [stdout] test custom_commands::tests::canonicalize_command_template_rewrites_braced_placeholders ... ok
[INFO] [stdout] test custom_commands::tests::execute_prompt_returns_structured_result ... ok
[INFO] [stdout] test custom_commands::tests::discover_commands_skips_invalid_template_syntax ... ok
[INFO] [stdout] test daemon_loop::tests::build_spawn_action_no_qa_context_for_non_qa_failure ... ok
[INFO] [stdout] test daemon_loop::tests::check_budget_fails_when_monthly_exceeded ... ok
[INFO] [stdout] test daemon_loop::tests::check_budget_fails_when_daily_exceeded ... ok
[INFO] [stdout] test daemon_loop::tests::check_pr_merged_parses_state ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_state_default ... ok
[INFO] [stdout] test custom_commands::tests::parse_command_description_from_heading ... ok
[INFO] [stdout] test daemon_loop::tests::check_budget_passes_when_disabled ... ok
[INFO] [stdout] test daemon_loop::tests::config_reload_handles_missing_file ... ok
[INFO] [stdout] test daemon_loop::tests::config_reload_skips_unchanged ... ok
[INFO] [stdout] test conversation::tests::search_messages_returns_empty_for_blank_query ... ok
[INFO] [stdout] test daemon_loop::tests::detect_nix_shell_finds_flake_nix ... ok
[INFO] [stdout] test daemon_loop::tests::detect_nix_shell_returns_empty_for_missing_dir ... ok
[INFO] [stdout] test daemon_loop::tests::detect_nix_shell_reads_repo_config ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_refuses_spawn_when_budget_exceeded ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_skips_baseline_qa_when_qa_agent_already_running ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_cleans_up_completed_qa_agents ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_defers_stack_action_while_restack_backoff_is_pending ... ok
[INFO] [stdout] test conversation::tests::get_messages_handles_out_of_range_offset ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_skips_spawn_during_shutdown ... ok
[INFO] [stdout] test daemon_loop::tests::dry_run_skips_agent_spawn ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_spawns_baseline_qa_when_spec_exists_and_no_result ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_releases_stack_action_when_restack_backoff_elapsed ... ok
[INFO] [stdout] test daemon_loop::tests::dry_run_still_logs ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_creates_pipeline_for_ready_task ... ok
[INFO] [stdout] test daemon_loop::tests::daemon_tick_produces_spawn_for_chatting_task ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] test daemon_loop::tests::daemon_tick_uses_submit_mode_default_from_config_for_pipeline ... ok
[INFO] [stdout] test daemon_loop::tests::maybe_reset_budget_resets_on_new_day ... ok
[INFO] [stdout] test daemon_loop::tests::qa_validation_fail_produces_failed_and_retry_actions ... ok
[INFO] [stdout] test daemon_loop::tests::qa_validation_pass_produces_completed_and_mark_ready_actions ... ok
[INFO] [stdout] test daemon_loop::tests::request_shutdown_sets_deadline ... ok
[INFO] [stdout] test daemon_loop::tests::drain_timeout_forces_shutdown ... ok
[INFO] [stdout] test daemon_loop::tests::load_submit_mode_for_tick_reads_org_config ... ok
[INFO] [stdout] test daemon_loop::tests::restack_retry_state_uses_exponential_backoff_and_max_retries ... ok
[INFO] [stdout] test daemon_loop::tests::handle_agent_completion_updates_budget_usage_from_output ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1783542856499633988/.git/
[INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1783542856483914249/.git/
[INFO] [stdout] test daemon_loop::tests::daemon_tick_skips_baseline_qa_when_result_already_exists ... ok
[INFO] [stdout] test daemon_loop::tests::restack_auth_playbook_stops_without_incrementing_retry_count ... ok
[INFO] [stdout] test daemon_loop::tests::handle_failed_outcome_evaluates_retry ... ok
[INFO] [stdout] test daemon_loop::tests::handle_agent_completion_invalidates_verify_cache_entry ... ok
[INFO] [stdout] test daemon_loop::tests::select_graphite_recovery_playbook_detects_auth_errors ... ok
[INFO] [stdout] test daemon_loop::tests::select_graphite_recovery_playbook_detects_restack_errors ... ok
[INFO] [stdout] test daemon_loop::tests::handle_needs_human_outcome_produces_record_needs_human ... ok
[INFO] [stdout] test daemon_loop::tests::mark_merged_action_transitions_state ... ok
[INFO] [stdout] test daemon_loop::tests::handle_successful_outcome_spawns_qa_validation_when_baseline_exists ... ok
[INFO] [stdout] test daemon_loop::tests::handle_successful_outcome_produces_mark_ready ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stdout] test daemon_loop::tests::select_graphite_recovery_playbook_detects_trunk_errors ... ok
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1783542856499430579/.git/
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stdout] [master (root-commit) 91fcf78] initial
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[INFO] [stderr] hint: 
[INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
[INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git branch -m <name>
[INFO] [stdout] test daemon_loop::tests::restack_trunk_playbook_stops_without_incrementing_retry_count_on_sync_failure ... ok
[INFO] [stdout] test daemon_loop::tests::run_verify_command_wraps_with_nix_shell_when_set ... ok
[INFO] [stdout] test daemon_loop::tests::shutdown_complete_when_no_agents_running ... ok
[INFO] [stdout] test daemon_loop::tests::shutdown_waits_for_running_agents ... ok
[INFO] [stdout] test daemon_status::tests::format_uptime_days_hours_and_minutes ... ok
[INFO] [stdout] test daemon_status::tests::format_uptime_hours_and_minutes ... ok
[INFO] [stdout] test daemon_status::tests::format_uptime_seconds_only ... ok
[INFO] [stdout] test daemon_status::tests::format_uptime_minutes_and_seconds ... ok
[INFO] [stdout] test daemon_status::tests::task_summary_from_counts_includes_unknown_in_total ... ok
[INFO] [stdout] [master (root-commit) 91fcf78] initial
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stdout] test daemon_status::tests::task_summary_from_counts_maps_known_states ... ok
[INFO] [stdout] test delegation::tests::add_subtask_works ... ok
[INFO] [stdout] test delegation::tests::all_results_returns_sorted_indices ... ok
[INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1783542856512318988/.git/
[INFO] [stdout] test delegation::tests::execution_order_with_deps ... ok
[INFO] [stdout] test delegation::tests::format_delegation_prompt_includes_key_fields ... ok
[INFO] [stdout] test delegation::tests::new_plan_has_defaults ... ok
[INFO] [stdout] test delegation::tests::parse_delegation_from_agent_output_returns_none_for_no_delegation ... ok
[INFO] [stdout] test delegation::tests::parse_delegation_from_agent_output_with_json ... ok
[INFO] [stdout] test delegation::tests::tracker_complete_flow ... ok
[INFO] [stdout] test delegation::tests::tracker_fail_fast_behavior ... ok
[INFO] [stdout] test delegation::tests::tracker_next_runnable ... ok
[INFO] [stdout] test delegation::tests::validate_catches_cyclic_deps ... ok
[INFO] [stdout] test delegation::tests::validate_catches_empty_title ... ok
[INFO] [stdout] test delta_report::tests::build_delta_report_summary ... ok
[INFO] [stdout] test delta_report::tests::context_gen_status_change_detected ... ok
[INFO] [stdout] test delta_report::tests::delta_reporter_change_emits ... ok
[INFO] [stdout] test delta_report::tests::delta_reporter_first_tick_empty_suppressed ... ok
[INFO] [stdout] test delta_report::tests::delta_reporter_first_tick_with_tasks ... ok
[INFO] [stdout] test delta_report::tests::delta_reporter_no_change_suppressed ... ok
[INFO] [stdout] test daemon_loop::tests::get_worktree_head_sha_returns_value_for_git_repo ... ok
[INFO] [stdout] test delta_report::tests::delta_reporter_suppression_rate ... ok
[INFO] [stdout] test delta_report::tests::merge_count_delta ... ok
[INFO] [stdout] test delta_report::tests::model_health_change_detected ... ok
[INFO] [stdout] test delta_report::tests::multiple_changes_combined ... ok
[INFO] [stdout] test delta_report::tests::no_changes_yields_empty_delta ... ok
[INFO] [stdout] test delegation::tests::execution_order_sequential ... ok
[INFO] [stdout] test delegation::tests::progress_summary_formatting ... ok
[INFO] [stdout] test delta_report::tests::qa_state_change_detected ... ok
[INFO] [stdout] test delta_report::tests::render_delta_report_with_changes ... ok
[INFO] [stdout] test delta_report::tests::should_emit_always_for_high_priority ... ok
[INFO] [stdout] test delta_report::tests::pipeline_started_and_completed ... ok
[INFO] [stdout] test delta_report::tests::report_serializes_to_json ... ok
[INFO] [stdout] test delta_report::tests::render_delta_report_empty ... ok
[INFO] [stdout] test delta_report::tests::should_emit_respects_rate_limit ... ok
[INFO] [stdout] test daemon_status::tests::check_health_is_degraded_when_some_models_are_not_healthy ... ok
[INFO] [stdout] test delta_report::tests::should_emit_suppresses_empty ... ok
[INFO] [stdout] test delta_report::tests::suppression_filters_idle_context_repeat ... ok
[INFO] [stdout] test delta_report::tests::stop_count_delta ... ok
[INFO] [stdout] test delta_report::tests::task_added_detected ... ok
[INFO] [stdout] test delta_report::tests::task_removed_detected ... ok
[INFO] [stdout] test dependency_graph::tests::builds_graph_from_dependencies ... ok
[INFO] [stdout] test delta_report::tests::suppression_keeps_meaningful_context_change ... ok
[INFO] [stdout] test delta_report::tests::task_state_change_detected ... ok
[INFO] [stdout] test dependency_graph::tests::ignores_self_and_unknown_dependencies ... ok
[INFO] [stdout] test dependency_graph::tests::restack_targets_include_descendants_in_bfs_order ... ok
[INFO] [stdout] test dependency_graph::tests::restack_targets_deduplicate_diamond_descendants ... ok
[INFO] [stdout] test dependency_graph::tests::restack_targets_empty_for_leaf_or_unknown_parent ... ok
[INFO] [stdout] test e2e_scenarios::tests::agent_failure_retry_scenario_passes ... ok
[INFO] [stdout] test e2e_scenarios::tests::assert_no_stuck_tasks_passes_when_none_stuck ... ok
[INFO] [stdout] test e2e_scenarios::tests::chaos_agent_crash_scenario_passes ... ok
[INFO] [stdout] test e2e_scenarios::tests::chaos_fault_labels ... ok
[INFO] [stdout] test e2e_scenarios::tests::chaos_policy_inject_and_clear ... ok
[INFO] [stdout] test e2e_scenarios::tests::chaos_policy_max_concurrent ... ok
[INFO] [stdout] test e2e_scenarios::tests::compare_op_evaluations ... ok
[INFO] [stdout] test e2e_scenarios::tests::multi_task_lifecycle_scenario_passes ... ok
[INFO] [stdout] test e2e_scenarios::tests::qa_red_to_green_scenario_passes ... ok
[INFO] [stdout] test e2e_scenarios::tests::full_builtin_suite_passes ... ok
[INFO] [stdout] test e2e_scenarios::tests::assert_no_stuck_tasks_fails_when_stuck ... ok
[INFO] [stdout] test e2e_scenarios::tests::scenario_metrics_get ... ok
[INFO] [stdout] test e2e_scenarios::tests::simulated_task_terminal_states ... ok
[INFO] [stdout] test e2e_scenarios::tests::simulated_task_transitions ... ok
[INFO] [stdout] test e2e_scenarios::tests::soak_config_defaults ... ok
[INFO] [stdout] test e2e_scenarios::tests::soak_progress_reports_generated ... ok
[INFO] [stdout] test e2e_scenarios::tests::scenario_runner_creates_tasks ... ok
[INFO] [stdout] test e2e_scenarios::tests::scenario_step_log ... ok
[INFO] [stdout] [master (root-commit) 91fcf78] initial
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stdout] test e2e_scenarios::tests::soak_test_no_stuck_tasks ... ok
[INFO] [stdout] test e2e_scenarios::tests::soak_result_json_roundtrip ... ok
[INFO] [stdout] test e2e_scenarios::tests::soak_test_with_chaos ... ok
[INFO] [stdout] test e2e_scenarios::tests::suite_result_summary_contains_all_names ... ok
[INFO] [stdout] test e2e_tester::tests::default_spec_detects_rust_repo ... ok
[INFO] [stdout] test e2e_tester::tests::metrics_tracking ... ok
[INFO] [stdout] test e2e_scenarios::tests::verify_failure_loop_scenario_passes ... ok
[INFO] [stdout] test e2e_tester::tests::override_detection ... ok
[INFO] [stdout] test e2e_scenarios::tests::suite_result_json_roundtrip ... ok
[INFO] [stdout] test e2e_scenarios::tests::happy_path_scenario_passes ... ok
[INFO] [stdout] test e2e_tester::tests::pass_criteria_evaluation ... ok
[INFO] [stdout] test editor::tests::attachment_content_variants_work ... ok
[INFO] [stdout] test e2e_tester::tests::skip_detection ... ok
[INFO] [stdout] test editor::tests::editor_config_default_values ... ok
[INFO] [stdout] test editor::tests::format_size_outputs_human_readable_values ... ok
[INFO] [stdout] test editor::tests::is_binary_extension_false_for_text ... ok
[INFO] [stdout] test editor::tests::is_binary_extension_true_for_images ... ok
[INFO] [stdout] test editor::tests::mime_type_for_known_extensions ... ok
[INFO] [stdout] test editor::tests::resolve_editor_uses_config_override ... ok
[INFO] [stdout] [master (root-commit) 91fcf78] initial
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stdout] test editor::tests::resolve_editor_falls_back_to_env_values ... ok
[INFO] [stdout] test editor::tests::read_attachment_reads_text_and_binary ... ok
[INFO] [stdout] test daemon_status::tests::display_compact_includes_core_fields ... ok
[INFO] [stdout] test e2e_tester::tests::stage_result_tracking ... ok
[INFO] [stdout] test editor::tests::validate_attachment_accepts_valid_file ... ok
[INFO] [stdout] test daemon_loop::tests::restack_recovery_playbook_uses_backoff_without_incrementing_retry_count ... ok
[INFO] [stdout] test daemon_status::tests::daemon_health_new_sets_expected_defaults ... ok
[INFO] [stdout] test env_inject::tests::build_env_vec_contains_same_items_as_map ... ok
[INFO] [stdout] test editor::tests::validate_attachment_rejects_too_large_file ... ok
[INFO] [stdout] test env_inject::tests::build_env_vec_is_sorted_by_key ... ok
[INFO] [stdout] test env_inject::tests::build_env_merges_in_correct_precedence ... ok
[INFO] [stdout] test env_inject::tests::build_env_with_unknown_task_uses_global_and_model_only ... ok
[INFO] [stdout] test env_inject::tests::built_in_othala_vars_are_always_injected ... ok
[INFO] [stdout] test env_inject::tests::built_ins_override_custom_same_name ... ok
[INFO] [stdout] test editor::tests::validate_attachment_rejects_unknown_extension ... ok
[INFO] [stdout] test editor::tests::open_editor_for_prompt_uses_template_generation ... ok
[INFO] [stdout] test env_inject::tests::has_task_env_reflects_presence_of_task_vars ... ok
[INFO] [stdout] test env_inject::tests::merge_with_system_skips_inheritance_when_disabled ... ok
[INFO] [stdout] test env_inject::tests::merge_with_system_inherits_when_enabled ... ok
[INFO] [stdout] test env_inject::tests::set_task_var_adds_runtime_variable ... ok
[INFO] [stdout] test env_inject::tests::redacted_env_masks_sensitive_values ... ok
[INFO] [stdout] test env_inject::tests::set_task_var_overwrites_existing_value ... ok
[INFO] [stdout] test env_inject::tests::env_config_defaults ... ok
[INFO] [stdout] test daemon_status::tests::display_full_includes_sections ... ok
[INFO] [stdout] test env_inject::tests::redact_value_masks_matching_keys ... ok
[INFO] [stdout] test env_inject::tests::redact_value_preserves_non_matching_keys ... ok
[INFO] [stdout] test daemon_loop::tests::execute_actions_skips_verify_on_cache_hit ... ok
[INFO] [stdout] test event_log::tests::append_both_writes_global_and_task_log_when_task_id_present ... ok
[INFO] [stdout] test event_log::tests::append_both_writes_only_global_when_task_id_missing ... ok
[INFO] [stdout] test file_watcher::tests::change_kind_display ... ok
[INFO] [stdout] test file_watcher::tests::default_config_values ... ok
[INFO] [stdout] test file_watcher::tests::should_ignore_matching ... ok
[INFO] [stdout] test event_log::tests::append_task_appends_multiple_lines_for_same_task ... ok
[INFO] [stdout] test file_watcher::tests::simple_glob_match_question_pattern ... ok
[INFO] [stdout] test daemon_loop::tests::execute_actions_stores_verify_sha_on_success ... ok
[INFO] [stdout] test file_watcher::tests::initial_scan_creates_snapshots ... ok
[INFO] [stdout] test file_watcher::tests::matches_include_matching ... ok
[INFO] [stdout] test event_log::tests::append_global_appends_multiple_lines ... ok
[INFO] [stdout] test file_watcher::tests::simple_glob_match_double_star_pattern ... ok
[INFO] [stdout] test event_log::tests::ensure_layout_creates_root_and_task_directories ... ok
[INFO] [stdout] test graphite_agent::tests::agent_enqueue_deduplication ... ok
[INFO] [stdout] test file_watcher::tests::poll_detects_deleted_file ... ok
[INFO] [stdout] test daemon_loop::tests::execute_actions_removes_verify_cache_on_failure ... ok
[INFO] [stdout] test file_watcher::tests::simple_glob_match_star_pattern ... ok
[INFO] [stdout] test graphite_agent::tests::branch_tracking_info_detection ... ok
[INFO] [stdout] test graphite_agent::tests::agent_priority_ordering ... ok
[INFO] [stdout] test file_watcher::tests::status_summary_format ... ok
[INFO] [stdout] test file_watcher::tests::poll_detects_new_file ... ok
[INFO] [stdout] test graphite_agent::tests::divergence_detection_no_divergence_when_matching ... ok
[INFO] [stdout] test graphite_agent::tests::agent_lock_mechanism ... ok
[INFO] [stdout] test graphite_agent::tests::divergence_detection_reports_wrong_parent ... ok
[INFO] [stdout] test graphite_agent::tests::extract_branch_from_typical_log_lines ... ok
[INFO] [stdout] test graphite_agent::tests::failure_class_classification ... ok
[INFO] [stdout] test graphite_agent::tests::agent_respawn_registration ... ok
[INFO] [stdout] test graphite_agent::tests::divergence_detection_reports_missing_parent ... ok
[INFO] [stdout] test graphite_agent::tests::noop_restack_messages_are_treated_as_benign ... ok
[INFO] [stdout] test graphite_agent::tests::respawn_state_eligibility ... ok
[INFO] [stdout] test graphite_agent::tests::retry_state_exponential_backoff ... ok
[INFO] [stdout] test ignore::tests::anchored_pattern_matches_only_from_root ... ok
[INFO] [stdout] test ignore::tests::display_ignore_rules_format ... ok
[INFO] [stdout] test ignore::tests::is_ignored_with_double_star_pattern ... ok
[INFO] [stdout] test ignore::tests::context_paths_config_resolve_paths ... ok
[INFO] [stdout] test ignore::tests::is_ignored_directory_pattern_trailing_slash ... ok
[INFO] [stdout] test ignore::tests::is_ignored_with_negation ... ok
[INFO] [stdout] test ignore::tests::parse_comment_lines ... ok
[INFO] [stdout] test ignore::tests::merge_combines_rules ... ok
[INFO] [stdout] test graphite_agent::tests::failure_class_respawnability ... ok
[INFO] [stdout] test lsp::tests::active_servers_reports_initialization_state ... ok
[INFO] [stdout] test lsp::tests::diagnostic_severity_display_impl ... ok
[INFO] [stdout] test graphite_agent::tests::graphite_agent_tick_generates_respawn_actions ... ok
[INFO] [stdout] test lsp::tests::diagnostics_cache_operations_insert_get_clear ... ok
[INFO] [stdout] test ignore::tests::question_pattern_matches_single_character ... ok
[INFO] [stdout] test daemon_status::tests::system_info_detect_sets_core_fields ... ok
[INFO] [stdout] test file_watcher::tests::poll_detects_modified_file ... ok
[INFO] [stdout] test ignore::tests::parse_simple_glob_patterns ... ok
[INFO] [stdout] test ignore::tests::load_from_nonexistent_file_returns_empty ... ok
[INFO] [stdout] test ignore::tests::parse_negation_patterns ... ok
[INFO] [stdout] test graphite_agent::tests::operation_result_recoverability ... ok
[INFO] [stdout] test ignore::tests::parse_empty_content ... ok
[INFO] [stdout] test lsp::tests::did_open_message_formatting ... ok
[INFO] [stdout] test lsp::tests::did_change_message_formatting ... ok
[INFO] [stdout] test lsp::tests::goto_definition_parses_location_link ... ok
[INFO] [stdout] test lsp::tests::goto_definition_parses_location_array ... ok
[INFO] [stdout] test lsp::tests::file_extension_matching_to_language_id ... ok
[INFO] [stdout] test lsp::tests::file_path_uri_conversion_roundtrip ... ok
[INFO] [stdout] test lsp::tests::did_save_message_formatting ... ok
[INFO] [stdout] test ignore::tests::is_ignored_matches_glob ... ok
[INFO] [stdout] test lsp::tests::find_references_formats_request_and_parses_result ... ok
[INFO] [stdout] test lsp::tests::json_rpc_message_framing_requires_content_length ... ok
[INFO] [stdout] test lsp::tests::json_rpc_message_framing_roundtrip ... ok
[INFO] [stdout] test lsp::tests::lsp_config_default_contains_common_servers ... ok
[INFO] [stdout] test lsp::tests::lsp_diagnostic_creation_and_severity_ordering ... ok
[INFO] [stdout] test lsp::tests::lsp_error_display_impls ... ok
[INFO] [stdout] test lsp::tests::lsp_location_creation ... ok
[INFO] [stdout] test lsp::tests::lsp_manager_creation_and_server_listing ... ok
[INFO] [stdout] test lsp::tests::lsp_config_serialization_roundtrip ... ok
[INFO] [stdout] test lsp::tests::initialize_request_building ... ok
[INFO] [stdout] test lsp::tests::multiple_server_management_stop_all_uses_shutdown_exit ... ok
[INFO] [stdout] test lsp::tests::parse_message_id_accepts_integer_and_string ... ok
[INFO] [stdout] test lsp::tests::request_response_id_matching_ignores_non_matching_id ... ok
[INFO] [stdout] test lsp::tests::split_command_and_args_supports_embedded_flags ... ok
[INFO] [stdout] test mcp::tests::initialize_returns_server_info_and_capabilities ... ok
[INFO] [stdout] test mcp::tests::invalid_params_error_for_tools_call_missing_name ... ok
[INFO] [stdout] test mcp::tests::builtin_tools_are_registered ... ok
[INFO] [stdout] test lsp::tests::language_server_config_with_root_patterns ... ok
[INFO] [stdout] test mcp::tests::method_not_found_for_unknown_methods ... ok
[INFO] [stdout] test mcp::tests::notifications_return_no_output_from_process_line ... ok
[INFO] [stdout] test mcp::tests::invalid_request_payload_returns_invalid_request_error ... ok
[INFO] [stdout] test mcp::tests::parse_invalid_json_returns_parse_error ... ok
[INFO] [stdout] test mcp::tests::parse_valid_json_rpc_request ... ok
[INFO] [stdout] test mcp::tests::process_line_with_invalid_json ... ok
[INFO] [stdout] test mcp::tests::process_line_with_valid_json ... ok
[INFO] [stdout] test mcp_resources::tests::get_prompt_rejects_unknown_prompt ... ok
[INFO] [stdout] test mcp::tests::register_tool_adds_to_tool_list ... ok
[INFO] [stdout] test mcp::tests::tools_call_with_unknown_tool_returns_error ... ok
[INFO] [stdout] test mcp_resources::tests::prompt_content_resource_serializes ... ok
[INFO] [stdout] test mcp_resources::tests::prompt_registry_register_and_list ... ok
[INFO] [stdout] test mcp::tests::tools_call_with_valid_tool_name ... ok
[INFO] [stdout] test mcp_resources::tests::prompt_registry_replaces_existing_prompt_definition ... ok
[INFO] [stdout] test mcp_resources::tests::get_prompt_validates_required_arguments ... ok
[INFO] [stdout] test daemon_status::tests::check_health_is_unhealthy_when_no_healthy_models ... ok
[INFO] [stdout] test mcp_resources::tests::builtin_prompt_returns_messages ... ok
[INFO] [stdout] test mcp::tests::tools_methods_require_initialization ... ok
[INFO] [stdout] test mcp::tests::tools_list_returns_all_registered_tools ... ok
[INFO] [stdout] test daemon_status::tests::check_health_honors_explicit_unhealthy_status ... ok
[INFO] [stdout] test mcp_resources::tests::prompt_role_display_is_lowercase ... ok
[INFO] [stdout] test mcp_resources::tests::read_resource_rejects_invalid_uri ... ok
[INFO] [stdout] test mcp_resources::tests::read_resource_returns_not_found ... ok
[INFO] [stdout] test mcp_resources::tests::read_resource_resolves_template_handler ... ok
[INFO] [stdout] test mcp_resources::tests::read_resource_uses_exact_handler_first ... ok
[INFO] [stdout] test mcp_resources::tests::read_resource_wraps_non_read_failed_errors ... ok
[INFO] [stdout] test mcp_resources::tests::register_resource_adds_resource_definition ... ok
[INFO] [stdout] test mcp_resources::tests::register_builtin_resources_supports_task_template ... ok
[INFO] [stdout] test mcp_resources::tests::register_template_adds_template_definition ... ok
[INFO] [stdout] test mcp_resources::tests::register_builtin_prompts_adds_all_expected_prompt_names ... ok
[INFO] [stdout] test mcp_resources::tests::register_builtin_resources_adds_expected_uris ... ok
[INFO] [stdout] test mcp_resources::tests::register_resource_replaces_existing_uri ... ok
[INFO] [stdout] test mcp_resources::tests::register_template_replaces_existing_template ... ok
[INFO] [stdout] test mcp_resources::tests::uri_template_matching_accepts_placeholder_segments ... ok
[INFO] [stdout] test mcp_resources::tests::resource_error_display_messages_are_readable ... ok
[INFO] [stdout] test mcp_resources::tests::uri_template_matching_rejects_shape_mismatch ... ok
[INFO] [stdout] test mcp_transport::tests::build_http_response_includes_status_headers_and_body ... ok
[INFO] [stdout] test mcp_transport::tests::cors_config_origin_exact_match ... ok
[INFO] [stdout] test mcp_transport::tests::cors_config_origin_wildcard_match ... ok
[INFO] [stdout] test mcp_transport::tests::cors_headers_include_required_fields ... ok
[INFO] [stdout] test mcp_transport::tests::empty_body_handling_for_rpc_route ... ok
[INFO] [stdout] test mcp_transport::tests::health_endpoint_response_payload ... ok
[INFO] [stdout] test mcp_transport::tests::handle_post_rpc_invalid_json_returns_parse_error ... ok
[INFO] [stdout] test mcp_transport::tests::invalid_http_method_returns_method_not_allowed ... ok
[INFO] [stdout] test mcp_transport::tests::handle_post_rpc_notification_returns_empty_body ... ok
[INFO] [stdout] test mcp_transport::tests::json_rpc_over_http_round_trip_initialize ... ok
[INFO] [stdout] test mcp_transport::tests::parse_content_length_defaults_to_zero ... ok
[INFO] [stdout] test mcp_transport::tests::json_rpc_over_http_round_trip_tools_list_after_initialize ... ok
[INFO] [stdout] test mcp_transport::tests::parse_content_length_reads_value_case_insensitive ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_malformed_header ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_missing_terminator ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_get ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_post ... ok
[INFO] [stdout] test mcp_transport::tests::request_size_limit_enforcement ... ok
[INFO] [stdout] test mcp_transport::tests::route_request_matches_health_endpoint ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_short_body_for_content_length ... ok
[INFO] [stdout] test mcp_transport::tests::route_request_matches_rpc_endpoint ... ok
[INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_options ... ok
[INFO] [stdout] test mcp_transport::tests::route_request_matches_sse_endpoint ... ok
[INFO] [stdout] test mcp_transport::tests::route_request_returns_not_found_for_unknown_path ... ok
[INFO] [stdout] test mcp_transport::tests::sse_event_to_bytes_empty_data_line ... ok
[INFO] [stdout] test mcp_transport::tests::sse_event_to_bytes_with_all_fields ... ok
[INFO] [stdout] test mcp_transport::tests::sse_event_to_bytes_without_optional_fields ... ok
[INFO] [stdout] test mcp_transport::tests::sse_stream_broadcast_reports_failed_writer_indices ... ok
[INFO] [stdout] test lsp::tests::publish_diagnostics_notification_updates_cache ... ok
[INFO] [stdout] test lsp::tests::shutdown_sequence ... ok
[INFO] [stdout] test mcp_transport::tests::sse_stream_broadcast_to_multiple_listeners_with_mock_writers ... ok
[INFO] [stdout] test mcp_transport::tests::transport_config_default_is_stdio_with_expected_limits ... ok
[INFO] [stdout] test mcp_transport::tests::transport_kind_serialization_round_trip ... ok
[INFO] [stdout] test metrics::tests::display_summary_format ... ok
[INFO] [stdout] test metrics::tests::event_count ... ok
[INFO] [stdout] test mcp_transport::tests::sse_stream_listener_tracking ... ok
[INFO] [stdout] test metrics::tests::display_reliability_summary_renders_rates_and_na ... ok
[INFO] [stdout] test metrics::tests::opt_out_via_env_var ... ok
[INFO] [stdout] test metrics::tests::default_config ... ok
[INFO] [stdout] test mcp_resources::tests::get_prompt_runs_handler_with_args ... ok
[INFO] [stdout] test metrics::tests::record_event ... ok
[INFO] [stdout] test metrics::tests::record_respects_opt_out ... ok
[INFO] [stdout] test lsp::tests::split_command_and_args_rejects_empty_command ... ok
[INFO] [stdout] test mcp_transport::tests::transport_config_serialization_round_trip ... ok
[INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_computes_expected_kpis ... ok
[INFO] [stdout] test mcp_transport::tests::transport_error_display_variants ... ok
[INFO] [stdout] test metrics::tests::save_and_load_round_trip ... ok
[INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_supports_aggregate_counters ... ok
[INFO] [stdout] test metrics::tests::summary_aggregation ... ok
[INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_rejects_invalid_line ... ok
[INFO] [stdout] test metrics::tests::events_since_filtering ... ok
[INFO] [stdout] test mission_vault::tests::coverage_matrix_all_covered ... ok
[INFO] [stdout] test mission_vault::tests::build_mission_report_combines_all ... ok
[INFO] [stdout] test metrics::tests::increment_counter ... ok
[INFO] [stdout] test mission_vault::tests::coverage_matrix_empty_requirements ... ok
[INFO] [stdout] test mission_vault::tests::coverage_matrix_uncovered ... ok
[INFO] [stdout] test mission_vault::tests::detect_duplicates_no_dupes ... ok
[INFO] [stdout] test mission_vault::tests::gap_detection_identifies_uncovered ... ok
[INFO] [stdout] test mission_vault::tests::keyword_extraction ... ok
[INFO] [stdout] test mission_vault::tests::detect_duplicates_finds_similar ... ok
[INFO] [stdout] test mission_vault::tests::keyword_overlap_disjoint ... ok
[INFO] [stdout] test mission_vault::tests::keyword_overlap_empty_sets ... ok
[INFO] [stdout] test mission_vault::tests::keyword_overlap_identical ... ok
[INFO] [stdout] test mission_vault::tests::keyword_overlap_partial ... ok
[INFO] [stdout] test mission_vault::tests::normalize_tag_handles_special_chars ... ok
[INFO] [stdout] test mission_vault::tests::priority_detection ... ok
[INFO] [stdout] test mission_vault::tests::load_all_requirements_with_files ... ok
[INFO] [stdout] test mission_vault::tests::render_mission_report_includes_sections ... ok
[INFO] [stdout] test mission_vault::tests::load_all_requirements_empty_dir ... ok
[INFO] [stdout] test mission_vault::tests::parse_requirements_empty_content ... ok
[INFO] [stdout] test mission_vault::tests::report_serializes_to_json ... ok
[INFO] [stdout] test model_options::tests::model_constraints_default_values ... ok
[INFO] [stdout] test model_options::tests::model_options_default_is_empty ... ok
[INFO] [stdout] test model_options::tests::model_options_serde_roundtrip ... ok
[INFO] [stdout] test model_options::tests::provider_auth_not_configured_for_missing_env_var ... ok
[INFO] [stdout] test model_options::tests::provider_auth_uses_existing_env_variable ... ok
[INFO] [stdout] test model_options::tests::reasoning_effort_display_and_parse_roundtrip ... ok
[INFO] [stdout] test model_options::tests::reasoning_effort_serde_uses_lowercase ... ok
[INFO] [stdout] test model_options::tests::validate_options_accepts_valid_values ... ok
[INFO] [stdout] test model_options::tests::validate_options_allows_reasoning_effort_when_supported ... ok
[INFO] [stdout] test model_options::tests::validate_options_flags_reasoning_effort_when_unsupported ... ok
[INFO] [stdout] test model_options::tests::validate_options_flags_temperature_and_top_p_bounds ... ok
[INFO] [stdout] test orchestration_metrics::tests::agent_metrics_tracks_recovery_rate ... ok
[INFO] [stdout] test model_options::tests::model_capability_display ... ok
[INFO] [stdout] test orchestration_metrics::tests::agent_metrics_tracks_success_rate ... ok
[INFO] [stdout] test orchestration_metrics::tests::store_records_snapshots ... ok
[INFO] [stdout] test orchestration_metrics::tests::summary_renders_markdown ... ok
[INFO] [stdout] test orchestration_metrics::tests::task_metrics_tracks_attempts ... ok
[INFO] [stdout] test permissions::tests::add_rule_and_check_uses_latest_rule ... ok
[INFO] [stdout] test permissions::tests::default_permission_is_ask ... ok
[INFO] [stdout] test permissions::tests::display_table_contains_expected_headers ... ok
[INFO] [stdout] test permissions::tests::model_overrides_apply_after_global_rules ... ok
[INFO] [stdout] test permissions::tests::effective_rules_merges_default_and_override_sets ... ok
[INFO] [stdout] test permissions::tests::remove_rules_for_clears_global_and_model_specific_rules ... ok
[INFO] [stdout] test permissions::tests::org_config_roundtrip_conversion_preserves_permissions ... ok
[INFO] [stdout] test permissions::tests::restrictive_policy_denies_write_and_exec ... ok
[INFO] [stdout] test permissions::tests::tool_category_parses_from_builtin_strings ... ok
[INFO] [stdout] test permissions::tests::tool_category_unknown_becomes_custom ... ok
[INFO] [stdout] test permissions::tests::wildcard_match_supports_prefix_suffix_and_double_star ... ok
[INFO] [stdout] test orchestration_metrics::tests::task_metrics_time_to_merge ... ok
[INFO] [stdout] test persistence::tests::clone_fails_for_missing_source ... ok
[INFO] [stdout] test persistence::tests::clone_creates_new_task_from_source ... ok
[INFO] [stdout] test persistence::tests::archive_table_created ... ok
[INFO] [stdout] test persistence::tests::create_and_get_session_round_trip ... ok
[INFO] [stdout] test persistence::tests::archive_task_moves_row_to_archive_table ... ok
[INFO] [stdout] test persistence::tests::clone_applies_title_override ... ok
[INFO] [stdout] test persistence::tests::delete_task_removes_all_related_records ... ok
[INFO] [stdout] test permissions::tests::path_pattern_matching_works ... ok
[INFO] [stdout] test permissions::tests::permissive_policy_allows_everything ... ok
[INFO] [stdout] test persistence::tests::resolve_absolute_creates_parent_dirs ... ok
[INFO] [stdout] test persistence::tests::fork_session_creates_child_with_parent_link ... ok
[INFO] [stdout] test persistence::tests::insert_and_list_open_runs ... ok
[INFO] [stdout] test persistence::tests::list_sessions_orders_by_updated_at_desc ... ok
[INFO] [stdout] test persistence::tests::list_tasks_ordered_by_updated_at ... ok
[INFO] [stdout] test persistence::tests::list_events_for_task_returns_correct_events ... ok
[INFO] [stdout] test persistence::tests::clone_resets_state_and_retries ... ok
[INFO] [stdout] test persistence::tests::sessions_table_created ... ok
[INFO] [stdout] test persistence::tests::list_tasks_by_state ... ok
[INFO] [stdout] test persistence::tests::finish_open_runs ... ok
[INFO] [stdout] test problem_classifier::tests::classify_compile_error ... ok
[INFO] [stdout] test problem_classifier::tests::classify_permission_error ... ok
[INFO] [stdout] test problem_classifier::tests::detect_repeated_compile_errors ... ok
[INFO] [stdout] test problem_classifier::tests::classify_test_failure ... ok
[INFO] [stdout] test problem_classifier::tests::error_class_properties ... ok
[INFO] [stdout] test problem_classifier::tests::retry_delays ... ok
[INFO] [stdout] test prompt_builder::tests::basic_prompt_includes_task_info ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_builder_includes_system_prompt ... ok
[INFO] [stdout] test prompt_builder::tests::all_roles_select_correct_template_file ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_builder_includes_task_metadata ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_builder_skips_missing_system_prompt ... ok
[INFO] [stdout] test persistence::tests::update_session_persists_changes ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_context_graph ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_retry_context ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_test_spec ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_qa_failure_context ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_verify_command ... ok
[INFO] [stdout] test persistence::tests::set_open_run_estimated_tokens_updates_open_rows ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_includes_template_when_present ... ok
[INFO] [stdout] test prompt_builder::tests::prompt_inlines_source_files_from_context_refs ... ok
[INFO] [stdout] test prompt_mode::tests::build_context_errors_for_missing_file ... ok
[INFO] [stdout] test prompt_mode::tests::format_output_stream_text_splits_tokens ... ok
[INFO] [stdout] test prompt_mode::tests::format_output_json_is_structured_payload ... ok
[INFO] [stdout] test prompt_mode::tests::format_output_text_returns_raw_content ... ok
[INFO] [stdout] test prompt_mode::tests::format_response_uses_requested_format ... ok
[INFO] [stdout] test prompt_mode::tests::output_format_default_is_text ... ok
[INFO] [stdout] test prompt_mode::tests::format_output_markdown_wraps_content ... ok
[INFO] [stdout] test prompt_mode::tests::prompt_error_display_messages ... ok
[INFO] [stdout] test persistence::tests::upsert_and_load_task ... ok
[INFO] [stdout] test prompt_mode::tests::output_format_display_is_stable ... ok
[INFO] [stdout] test prompt_mode::tests::resolve_model_falls_back_to_default ... ok
[INFO] [stdout] test prompt_mode::tests::build_context_reads_files_and_preserves_order ... ok
[INFO] [stdout] test persistence::tests::fork_session_fails_for_missing_parent ... ok
[INFO] [stdout] test prompt_mode::tests::resolve_model_prefers_requested_model ... ok
[INFO] [stdout] test prompt_mode::tests::token_usage_serialization_round_trip ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_accepts_registered_session ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_rejects_missing_context_file ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_rejects_unknown_session ... ok
[INFO] [stdout] test provider_registry::tests::context_window_returns_correct_value ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_rejects_unknown_model ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_rejects_empty_prompt ... ok
[INFO] [stdout] test prompt_mode::tests::validate_request_accepts_valid_input ... ok
[INFO] [stdout] test provider_registry::tests::display_table_formatting ... ok
[INFO] [stdout] test provider_registry::tests::estimate_cost_calculation ... ok
[INFO] [stdout] test persistence::tests::upsert_and_load_task_priority_round_trips ... ok
[INFO] [stdout] test provider_registry::tests::get_model_unknown_returns_none ... ok
[INFO] [stdout] test provider_registry::tests::get_model_returns_correct_info ... ok
[INFO] [stdout] test provider_registry::tests::estimate_cost_unknown_model ... ok
[INFO] [stdout] test provider_registry::tests::get_provider_returns_correct_info ... ok
[INFO] [stdout] test provider_registry::tests::list_models_returns_all ... ok
[INFO] [stdout] test provider_registry::tests::new_creates_default_registry_with_models ... ok
[INFO] [stdout] test provider_registry::tests::models_for_xai_provider_include_expected_variants ... ok
[INFO] [stdout] test provider_registry::tests::xai_provider_is_registered_with_models ... ok
[INFO] [stdout] test provider_registry::tests::openrouter_provider_is_registered_with_models ... ok
[INFO] [stdout] test persistence::tests::total_event_count_returns_correct_count ... ok
[INFO] [stdout] test provider_registry::tests::update_from_json_adds_new_models ... ok
[INFO] [stdout] test qa_agent::tests::build_qa_failure_context_formats_correctly ... ok
[INFO] [stdout] test qa_agent::tests::build_qa_prompt_includes_all_sections ... ok
[INFO] [stdout] test qa_agent::tests::drain_qa_output_accumulates_across_multiple_calls ... ok
[INFO] [stdout] test qa_agent::tests::drain_qa_output_accumulates_lines_and_detects_qa_complete ... ok
[INFO] [stdout] test qa_agent::tests::drain_qa_output_handles_no_receiver ... ok
[INFO] [stdout] test qa_agent::tests::drain_qa_output_returns_empty_when_no_lines ... ok
[INFO] [stdout] test provider_registry::tests::save_and_load_roundtrip ... ok
[INFO] [stdout] test qa_agent::tests::load_baseline_returns_none_when_missing ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_output_empty ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_output_extracts_results ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_output_handles_multiple_suites ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_output_handles_no_detail ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_output_handles_no_suite_prefix ... ok
[INFO] [stdout] test provider_registry::tests::models_for_provider_filters_correctly ... ok
[INFO] [stdout] test qa_agent::tests::build_qa_prompt_includes_previous_results ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_spec_empty ... ok
[INFO] [stdout] test qa_agent::tests::poll_qa_agent_returns_none_when_idle ... ok
[INFO] [stdout] test qa_agent::tests::parse_qa_spec_extracts_suites_and_tests ... ok
[INFO] [stdout] test qa_agent::tests::poll_qa_agent_returns_none_when_no_child_handle ... ok
[INFO] [stdout] test qa_agent::tests::qa_result_roundtrip_json ... ok
[INFO] [stdout] test qa_agent::tests::qa_state_initial_status ... ok
[INFO] [stdout] test qa_agent::tests::qa_spec_parse_long_test_name_truncated ... ok
[INFO] [stdout] test qa_agent::tests::qa_type_display ... ok
[INFO] [stdout] test qa_self_heal::tests::classify_acceptance_gap_when_baseline_never_passed ... ok
[INFO] [stdout] test qa_self_heal::tests::classify_environment_issue_from_detail ... ok
[INFO] [stdout] test qa_self_heal::tests::classify_flaky_from_detail ... ok
[INFO] [stdout] test qa_self_heal::tests::classify_regression_when_baseline_passed ... ok
[INFO] [stdout] test qa_self_heal::tests::failure_class_auto_fixability ... ok
[INFO] [stdout] test qa_self_heal::tests::failure_class_retryability ... ok
[INFO] [stdout] test qa_self_heal::tests::fix_prompt_includes_regressions_and_gaps ... ok
[INFO] [stdout] test qa_self_heal::tests::retry_state_backoff ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_green_to_red ... ok
[INFO] [stdout] test qa_self_heal::tests::retry_state_from_result_identifies_classes ... ok
[INFO] [stdout] test qa_agent::tests::load_baseline_parses_spec ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_no_previous_red ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_no_previous_green ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_still_green ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_red_to_green ... ok
[INFO] [stdout] test qa_agent::tests::save_and_load_qa_result ... ok
[INFO] [stdout] test qa_agent::tests::sanitize_branch_name_handles_slashes ... ok
[INFO] [stdout] test qa_self_heal::tests::transition_still_red ... ok
[INFO] [stdout] test qa_spec_gen::tests::build_qa_spec_gen_prompt_includes_snapshot ... ok
[INFO] [stdout] test qa_spec_gen::tests::check_qa_spec_startup_returns_missing ... ok
[INFO] [stdout] test prompt_mode::tests::prompt_structs_serialize_round_trip ... ok
[INFO] [stdout] test provider_registry::tests::list_providers_returns_all ... ok
[INFO] [stdout] test qa_spec_gen::tests::parse_qa_spec_gen_output_basic ... ok
[INFO] [stdout] test qa_spec_gen::tests::parse_qa_spec_gen_output_empty ... ok
[INFO] [stdout] test qa_spec_gen::tests::parse_qa_spec_gen_output_strips_path_traversal ... ok
[INFO] [stdout] test qa_agent::tests::build_qa_prompt_with_template ... ok
[INFO] [stdout] test qa_spec_gen::tests::hash_roundtrip ... ok
[INFO] [stdout] test qa_spec_gen::tests::qa_spec_gen_state_default ... ok
[INFO] [stdout] test qa_spec_gen::tests::sanitize_path_allows_subdirectories ... ok
[INFO] [stdout] test qa_spec_gen::tests::sanitize_path_strips_dangerous_sequences ... ok
[INFO] [stdout] test qa_spec_gen::tests::should_regenerate_respects_cooldown ... ok
[INFO] [stdout] test persistence::tests::open_with_absolute_path_works ... ok
[INFO] [stdout] test rate_limiter::tests::limited_result_reports_positive_retry_after ... ok
[INFO] [stdout] test mission_vault::tests::parse_requirements_from_checkboxes ... ok
[INFO] [stdout] test mission_vault::tests::parse_requirements_generates_unique_ids ... ok
[INFO] [stdout] test problem_classifier::tests::classify_git_conflict ... ok
[INFO] [stdout] test problem_classifier::tests::classify_network_error ... ok
[INFO] [stdout] test rate_limiter::tests::limiter_reports_limited_after_burst_exhausted ... ok
[INFO] [stdout] test rate_limiter::tests::rate_limit_result_formatting_is_readable ... ok
[INFO] [stdout] test rate_limiter::tests::rate_limit_config_defaults ... ok
[INFO] [stdout] test rate_limiter::tests::per_endpoint_limit_changes_bucket_capacity ... ok
[INFO] [stdout] test rate_limiter::tests::rate_limit_error_formatting_is_readable ... ok
[INFO] [stdout] test rate_limiter::tests::remaining_tokens_reports_floor_value ... ok
[INFO] [stdout] test rate_limiter::tests::reset_all_clears_all_buckets ... ok
[INFO] [stdout] test rate_limiter::tests::reset_restores_bucket_to_full_tokens ... ok
[INFO] [stdout] test rate_limiter::tests::token_bucket_refill_adds_tokens_based_on_elapsed_time ... ok
[INFO] [stdout] test rate_limiter::tests::token_bucket_try_consume_fails_when_underflow ... ok
[INFO] [stdout] test rate_limiter::tests::token_bucket_try_consume_succeeds_when_tokens_available ... ok
[INFO] [stdout] test rate_limiter::tests::token_bucket_refill_does_not_overflow_max ... ok
[INFO] [stdout] test rate_limiter::tests::per_model_limit_changes_refill_rate ... ok
[INFO] [stdout] test rate_limiter::tests::record_request_consumes_token ... ok
[INFO] [stdout] test persistence::tests::open_with_relative_path_works ... ok
[INFO] [stdout] test retry::tests::cooldown_activates_after_threshold_failures ... ok
[INFO] [stdout] test retry::tests::falls_back_when_preferred_model_failed ... ok
[INFO] [stdout] test retry::tests::cooldown_expires_and_model_becomes_available ... ok
[INFO] [stdout] test retry::tests::all_models_in_cooldown_picks_least_recently_failed ... ok
[INFO] [stdout] test retry::tests::healthy_models_are_preferred_over_degraded_ones ... ok
[INFO] [stdout] test retry::tests::no_retry_when_all_models_failed ... ok
[INFO] [stdout] test retry::tests::picks_first_available_when_no_preferred ... ok
[INFO] [stdout] test retry::tests::retries_with_preferred_model_when_different_model_failed ... ok
[INFO] [stdout] test retry::tests::no_retry_when_max_retries_exhausted ... ok
[INFO] [stdout] test retry::tests::skips_disabled_models ... ok
[INFO] [stdout] test retry::tests::switches_model_when_preferred_just_failed ... ok
[INFO] [stdout] test scheduler::tests::dependency_allows_when_resolved ... ok
[INFO] [stdout] test qa_spec_gen::tests::qa_spec_is_current_requires_baseline_and_hash ... ok
[INFO] [stdout] test scheduler::tests::plan_blocks_when_model_limit_reached ... ok
[INFO] [stdout] test retry::tests::no_retry_when_just_failed_is_only_enabled_model ... ok
[INFO] [stdout] test scheduler::tests::plan_prioritizes_critical_tasks_before_lower_priority ... ok
[INFO] [stdout] test scheduler::tests::plan_schedules_preferred_model ... ok
[INFO] [stdout] test scheduler::tests::plan_blocks_when_repo_limit_reached ... ok
[INFO] [stdout] test scheduler::tests::plan_falls_back_when_preferred_model_is_saturated ... ok
[INFO] [stdout] test scheduler::tests::plan_uses_enabled_model_order_for_default_selection ... ok
[INFO] [stdout] test scheduler::tests::stack_dependency_allows_awaiting_merge_parent ... ok
[INFO] [stdout] test search::tests::display_search_results_formats_output ... ok
[INFO] [stdout] test search::tests::fuzzy_match_typo_returns_score ... ok
[INFO] [stdout] test search::tests::fuzzy_match_unrelated_returns_none ... ok
[INFO] [stdout] test search::tests::index_add_and_remove_task ... ok
[INFO] [stdout] test search::tests::parse_search_query_extracts_filters_and_flags ... ok
[INFO] [stdout] test search::tests::parse_search_query_parses_date_sort_and_limit ... ok
[INFO] [stdout] test search::tests::search_applies_state_label_and_model_filters ... ok
[INFO] [stdout] test search::tests::search_honors_date_range_filter ... ok
[INFO] [stdout] test search::tests::fuzzy_match_exact_returns_high_score ... ok
[INFO] [stdout] test search::tests::highlight_match_wraps_first_match ... ok
[INFO] [stdout] test qa_spec_gen::tests::should_regenerate_blocks_while_running ... ok
[INFO] [stdout] test search::tests::search_ranks_exact_title_match_higher_than_label_match ... ok
[INFO] [stdout] test search::tests::search_with_fuzzy_finds_typo ... ok
[INFO] [stdout] test qa_spec_gen::tests::scan_test_infrastructure_includes_cargo_toml ... ok
[INFO] [stdout] test qa_spec_gen::tests::check_qa_spec_startup_returns_up_to_date ... ok
[INFO] [stdout] test search::tests::tokenize_splits_text_into_lowercase_tokens ... ok
[INFO] [stdout] test qa_spec_gen::tests::write_qa_spec_files_creates_files ... ok
[INFO] [stdout] test service::tests::delete_task_removes_it ... ok
[INFO] [stdout] test service::tests::reconciliation_detects_unreconciled_children ... ok
[INFO] [stdout] test service::tests::reconciliation_report_serializes_to_json ... ok
[INFO] [stdout] test rate_limiter::tests::burst_handling_allows_multiple_fast_requests ... ok
[INFO] [stdout] test rate_limiter::tests::check_rate_limit_allowed_by_default ... ok
[INFO] [stdout] test rate_limiter::tests::cleanup_expired_removes_stale_buckets ... ok
[INFO] [stdout] test scheduler::tests::plan_blocks_when_no_models_available ... ok
[INFO] [stdout] test persistence::tests::wal_mode_is_set_on_open ... ok
[INFO] [stdout] test service::tests::reconciliation_ignores_merged_children ... ok
[INFO] [stdout] test service::tests::full_submit_flow ... ok
[INFO] [stdout] test service::tests::reconciliation_no_issues_when_clean ... ok
[INFO] [stdout] test shell_config::tests::model_options_can_hold_values ... ok
[INFO] [stdout] test shell_config::tests::model_options_default_values ... ok
[INFO] [stdout] test shell_config::tests::reasoning_effort_as_str_and_display ... ok
[INFO] [stdout] test shell_config::tests::reasoning_effort_default_is_medium ... ok
[INFO] [stdout] test shell_config::tests::run_command_returns_not_found_for_invalid_shell ... ok
[INFO] [stdout] test shell_config::tests::shell_config_defaults_match_expected_values ... ok
[INFO] [stdout] test shell_config::tests::shell_error_display_messages_are_readable ... ok
[INFO] [stdout] test shell_config::tests::reasoning_effort_serialization_round_trip ... ok
[INFO] [stdout] test shell_config::tests::shell_output_success_true_for_zero_exit_code ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_bash_to_config ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_custom_to_config_returns_clone ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_fish_to_config ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_nix_to_config ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_sh_to_config ... ok
[INFO] [stdout] test shell_config::tests::shell_preset_zsh_to_config ... ok
[INFO] [stdout] test shell_config::tests::shell_runner_from_preset_uses_config ... ok
[INFO] [stdout] test shell_config::tests::shell_runner_new_stores_config ... ok
[INFO] [stdout] test service::tests::create_and_list_tasks ... ok
[INFO] [stdout] test service::tests::restack_flow ... ok
[INFO] [stdout] test service::tests::reconciliation_detects_stale_awaiting_merge ... ok
[INFO] [stdout] test sisyphus_recovery::tests::is_recoverable_checks_error_class ... ok
[INFO] [stdout] test service::tests::transition_chatting_to_ready ... ok
[INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_escalates_permission_errors ... ok
[INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_waits_for_transient_errors ... ok
[INFO] [stdout] test sisyphus_recovery::tests::recovery_state_tracks_attempts ... ok
[INFO] [stdout] test stack_pipeline::tests::advance_from_terminal_is_idempotent ... ok
[INFO] [stdout] test stack_pipeline::tests::done_and_failed_are_terminal ... ok
[INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_escalates_after_max_attempts ... ok
[INFO] [stdout] test stack_pipeline::tests::pipeline_failure ... ok
[INFO] [stdout] test stack_pipeline::tests::pipeline_stage_display ... ok
[INFO] [stdout] test stack_pipeline::tests::pipeline_starts_at_verify_branch ... ok
[INFO] [stdout] test stack_pipeline::tests::pipeline_with_parent_in_single_mode_skips_stack ... ok
[INFO] [stdout] test stack_pipeline::tests::pipeline_without_parent_skips_stack ... ok
[INFO] [stdout] test state_machine::tests::allows_cancellation_from_ready ... ok
[INFO] [stdout] test state_machine::tests::allows_normal_flow_transitions ... ok
[INFO] [stdout] test state_machine::tests::allows_restacking_transitions ... ok
[INFO] [stdout] test state_machine::tests::allows_retry_to_chatting ... ok
[INFO] [stdout] test state_machine::tests::disallows_invalid_transitions ... ok
[INFO] [stdout] test state_machine::tests::self_transition_allowed ... ok
[INFO] [stdout] test state_machine::tests::transition_rejects_invalid ... ok
[INFO] [stdout] test state_machine::tests::transition_updates_task_state ... ok
[INFO] [stdout] test supervisor::tests::agent_outcome_fields_are_accessible ... ok
[INFO] [stdout] test supervisor::tests::build_prompt_gracefully_handles_missing_context_dir ... ok
[INFO] [stdout] test supervisor::tests::build_prompt_includes_section_separators ... ok
[INFO] [stdout] test supervisor::tests::build_prompt_includes_signal_definitions ... ok
[INFO] [stdout] test supervisor::tests::build_prompt_includes_task_id_and_title ... ok
[INFO] [stdout] test supervisor::tests::has_session_returns_false_for_unknown_task ... ok
[INFO] [stdout] test retry::tests::no_retry_on_needs_human ... ok
[INFO] [stdout] test retry::tests::no_retry_on_success ... ok
[INFO] [stdout] test supervisor::tests::new_supervisor_starts_with_no_sessions ... ok
[INFO] [stdout] test supervisor::tests::output_chunk_collects_lines ... ok
[INFO] [stdout] test shell_config::tests::shell_output_success_false_for_non_zero_exit_code ... ok
[INFO] [stdout] test shell_config::tests::validate_shell_returns_true_for_existing_absolute_binary ... ok
[INFO] [stdout] test stack_pipeline::tests::full_pipeline_with_parent_in_stack_mode ... ok
[INFO] [stdout] test supervisor::tests::poll_empty_supervisor_returns_empty_results ... ok
[INFO] [stdout] test service::tests::reconciliation_detects_stuck_restacking ... ok
[INFO] [stdout] test shell_config::tests::detect_shell_maps_zsh ... ok
[INFO] [stdout] test supervisor::tests::send_input_fails_for_missing_session ... ok
[INFO] [stdout] test scheduler::tests::dependency_blocks_task ... ok
[INFO] [stdout] test supervisor::tests::stop_all_on_empty_supervisor_is_noop ... ok
[INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_uses_sisyphus_for_compile_errors ... ok
[INFO] [stdout] test supervisor::tests::stop_nonexistent_task_is_noop ... ok
[INFO] [stdout] test supervisor::tests::send_input_fails_for_non_interactive_session ... ok
[INFO] [stdout] test shell_config::tests::validate_shell_returns_false_for_missing_binary ... ok
[INFO] [stdout] test shell_config::tests::detect_shell_maps_bash ... ok
[INFO] [stdout] test supervisor::tests::test_timeout_detection ... ok
[INFO] [stdout] test task_templates::tests::display_template_contains_key_details ... ok
[INFO] [stdout] test task_templates::tests::display_templates_table_formats_rows ... ok
[INFO] [stdout] test task_templates::tests::instantiate_errors_when_required_variable_missing ... ok
[INFO] [stdout] test task_templates::tests::instantiate_replaces_placeholders ... ok
[INFO] [stdout] test supervisor::tests::test_timeout_produces_failure_outcome ... ok
[INFO] [stdout] test task_templates::tests::parse_template_parses_all_fields ... ok
[INFO] [stdout] test supervisor::tests::stop_kills_running_session ... ok
[INFO] [stdout] test task_templates::tests::parse_template_rejects_unknown_key ... ok
[INFO] [stdout] test shell_config::tests::detect_shell_maps_sh ... ok
[INFO] [stdout] test task_templates::tests::validate_template_accepts_valid_template ... ok
[INFO] [stdout] test task_templates::tests::discover_templates_loads_project_and_user_templates ... ok
[INFO] [stdout] test task_templates::tests::validate_template_reports_empty_title ... ok
[INFO] [stdout] test task_templates::tests::template_registry_discovers_templates ... ok
[INFO] [stdout] test task_templates::tests::validate_template_reports_required_variable_without_default ... ok
[INFO] [stdout] test task_templates::tests::validate_template_reports_missing_placeholder_definition ... ok
[INFO] [stdout] test task_timeout::tests::active_count_tracks_multiple_entries ... ok
[INFO] [stdout] test task_timeout::tests::check_timeouts_warns_when_under_five_minutes ... ok
[INFO] [stdout] test task_timeout::tests::extend_deadline_fails_for_untracked_task ... ok
[INFO] [stdout] test task_timeout::tests::check_timeouts_kills_when_grace_expires ... ok
[INFO] [stdout] test task_timeout::tests::check_timeouts_enters_grace_when_deadline_passed ... ok
[INFO] [stdout] test task_timeout::tests::extend_deadline_succeeds_within_maximum ... ok
[INFO] [stdout] test task_timeout::tests::extend_deadline_fails_when_exceeding_maximum ... ok
[INFO] [stdout] test task_timeout::tests::check_timeouts_handles_multiple_tasks ... ok
[INFO] [stdout] test task_timeout::tests::per_state_timeout_override_is_used ... ok
[INFO] [stdout] test task_timeout::tests::remaining_secs_for_active_task_is_positive ... ok
[INFO] [stdout] test task_timeout::tests::remaining_secs_for_missing_task_is_none ... ok
[INFO] [stdout] test task_timeout::tests::per_state_timeout_is_capped_by_maximum ... ok
[INFO] [stdout] test supervisor::tests::test_no_timeout_when_within_limit ... ok
[INFO] [stdout] test task_timeout::tests::grace_period_prevents_warn_action ... ok
[INFO] [stdout] test task_timeout::tests::start_tracking_adds_entry ... ok
[INFO] [stdout] test task_timeout::tests::stop_tracking_removes_entry ... ok
[INFO] [stdout] test task_timeout::tests::stop_tracking_unknown_task_returns_none ... ok
[INFO] [stdout] test test_spec::tests::generate_test_spec_prompt_includes_task_info ... ok
[INFO] [stdout] test test_spec::tests::parse_spec_extracts_criteria ... ok
[INFO] [stdout] test test_spec::tests::parse_spec_handles_empty_content ... ok
[INFO] [stdout] test test_spec::tests::spec_path_is_correct ... ok
[INFO] [stdout] test test_spec::tests::validation_all_passed ... ok
[INFO] [stdout] test test_spec::tests::save_and_load_spec ... ok
[INFO] [stdout] test task_timeout::tests::timeout_config_defaults ... ok
[INFO] [stdout] test task_timeout::tests::timeout_error_display_is_human_readable ... ok
[INFO] [stdout] test test_spec::tests::generate_validation_prompt_includes_criteria ... ok
[INFO] [stdout] test types::tests::agent_cost_estimate_roundtrip_preserves_fields ... ok
[INFO] [stdout] test types::tests::artifact_record_roundtrip_preserves_metadata ... ok
[INFO] [stdout] test types::tests::artifact_record_roundtrip_with_none_metadata ... ok
[INFO] [stdout] test types::tests::task_run_record_roundtrip_preserves_nonzero_exit_code ... ok
[INFO] [stdout] test types::tests::task_run_record_roundtrip_with_none_optional_fields ... ok
[INFO] [stdout] test upgrade::tests::current_version_returns_something ... ok
[INFO] [stdout] test upgrade::tests::display_version_check_format ... ok
[INFO] [stdout] test upgrade::tests::version_is_newer_major_bump ... ok
[INFO] [stdout] test upgrade::tests::version_is_newer_minor_bump ... ok
[INFO] [stdout] test types::tests::task_run_record_roundtrip_preserves_optional_fields ... ok
[INFO] [stdout] test upgrade::tests::version_is_newer_same_version_false ... ok
[INFO] [stdout] test wizard::tests::test_all_checks_pass_gives_100 ... ok
[INFO] [stdout] test upgrade::tests::version_is_newer_older_version_false ... ok
[INFO] [stdout] test upgrade::tests::version_is_newer_patch_bump ... ok
[INFO] [stdout] test wizard::tests::test_empty_checks ... ok
[INFO] [stdout] test wizard::tests::test_is_ci_ready ... ok
[INFO] [stdout] test wizard::tests::test_json_output_format ... ok
[INFO] [stdout] test wizard::tests::test_readiness_score_computation ... ok
[INFO] [stdout] test wizard::tests::test_remediation_present_for_failures ... ok
[INFO] [stdout] test supervisor::tests::stop_all_kills_multiple_sessions ... ok
[INFO] [stdout] test test_spec::tests::validation_partial_failure ... ok
[INFO] [stdout] test test_spec::tests::validation_empty_output ... ok
[INFO] [stdout] test tests::crate_root_reexports_state_machine_helpers ... ok
[INFO] [stdout] test wizard::tests::test_critical_failure_flag ... ok
[INFO] [stdout] test shell_config::tests::detect_shell_defaults_to_bash ... FAILED
[INFO] [stdout] test shell_config::tests::detect_shell_maps_fish ... FAILED
[INFO] [stdout] test supervisor::tests::poll_captures_output_lines ... ok
[INFO] [stdout] test supervisor::tests::poll_detects_completed_process_and_removes_session ... ok
[INFO] [stdout] test supervisor::tests::poll_reports_failure_for_nonzero_exit ... ok
[INFO] [stdout] test supervisor::tests::poll_detects_needs_human_signal ... ok
[INFO] [stdout] test supervisor::tests::poll_detects_patch_ready_signal ... ok
[INFO] [stdout] test supervisor::tests::poll_handles_multiple_sessions_simultaneously ... ok
[INFO] [stderr] error: test failed, to rerun pass `-p orchd --lib`
[INFO] [stdout] test daemon_loop::tests::config_reload_detects_change ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- shell_config::tests::detect_shell_defaults_to_bash stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'shell_config::tests::detect_shell_defaults_to_bash' (4497) panicked at crates/orchd/src/shell_config.rs:415:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Sh
[INFO] [stdout]  right: Bash
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x572a0e677f51 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x572a0e677f51 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x572a0e677f51 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x572a0e677f51 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x572a0e6910da - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x572a0e6910da - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x572a0e67d1ec - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x572a0e67d1ec - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x572a0e651966 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x572a0e651966 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x572a0e66ea39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x572a0e263b70 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x572a0e263b70 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x572a0e66ebf2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x572a0e66ebf2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x572a0e651a12 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x572a0e648899 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x572a0e652a2d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x572a0e6918dc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x572a0e691793 - core[6883ba1bc0fe4ed1]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x572a0df128a1 - core[6883ba1bc0fe4ed1]::panicking::assert_failed::<orchd[5d8e495c2b5ec8ba]::shell_config::ShellPreset, orchd[5d8e495c2b5ec8ba]::shell_config::ShellPreset>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x572a0de85d80 - orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_defaults_to_bash
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/orchd/src/shell_config.rs:415:9
[INFO] [stdout]   22:     0x572a0de541f7 - orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_defaults_to_bash::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/orchd/src/shell_config.rs:410:39
[INFO] [stdout]   23:     0x572a0e0df6d6 - <orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_defaults_to_bash::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x572a0e256eab - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x572a0e256eab - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x572a0e2644f5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x572a0e2644f5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   29:     0x572a0e2644f5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x572a0e2644f5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x572a0e25efa4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x572a0e25efa4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x572a0e267642 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x572a0e267642 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x572a0e267642 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   38:     0x572a0e267642 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x572a0e267642 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x572a0e267642 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x572a0e267642 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x572a0e676f3f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   43:     0x572a0e676f3f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   44:     0x79c03709caa4 - <unknown>
[INFO] [stdout]   45:     0x79c037129a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- shell_config::tests::detect_shell_maps_fish stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'shell_config::tests::detect_shell_maps_fish' (4499) panicked at crates/orchd/src/shell_config.rs:395:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: Sh
[INFO] [stdout]  right: Fish
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x572a0e677f51 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x572a0e677f51 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x572a0e677f51 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x572a0e677f51 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x572a0e6910da - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x572a0e6910da - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x572a0e67d1ec - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x572a0e67d1ec - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x572a0e651966 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x572a0e651966 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x572a0e66ea39 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x572a0e263b70 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x572a0e263b70 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x572a0e66ebf2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x572a0e66ebf2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x572a0e651a12 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x572a0e648899 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x572a0e652a2d - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x572a0e6918dc - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x572a0e691793 - core[6883ba1bc0fe4ed1]::panicking::assert_failed_inner
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:439:17
[INFO] [stdout]   20:     0x572a0df128a1 - core[6883ba1bc0fe4ed1]::panicking::assert_failed::<orchd[5d8e495c2b5ec8ba]::shell_config::ShellPreset, orchd[5d8e495c2b5ec8ba]::shell_config::ShellPreset>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:394:5
[INFO] [stdout]   21:     0x572a0de84c7c - orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_maps_fish
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/orchd/src/shell_config.rs:395:9
[INFO] [stdout]   22:     0x572a0de540a7 - orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_maps_fish::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/crates/orchd/src/shell_config.rs:390:32
[INFO] [stdout]   23:     0x572a0e0df516 - <orchd[5d8e495c2b5ec8ba]::shell_config::tests::detect_shell_maps_fish::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x572a0e256eab - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x572a0e256eab - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x572a0e2644f5 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x572a0e2644f5 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   29:     0x572a0e2644f5 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x572a0e2644f5 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x572a0e2644f5 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x572a0e25efa4 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x572a0e25efa4 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x572a0e267642 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x572a0e267642 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x572a0e267642 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   38:     0x572a0e267642 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x572a0e267642 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x572a0e267642 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x572a0e267642 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x572a0e676f3f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   43:     0x572a0e676f3f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   44:     0x79c03709caa4 - <unknown>
[INFO] [stdout]   45:     0x79c037129a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     shell_config::tests::detect_shell_defaults_to_bash
[INFO] [stdout]     shell_config::tests::detect_shell_maps_fish
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 889 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.22s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b", kill_on_drop: false }`
[INFO] [stdout] 67bbda6fd37a6253c19b027ecf046e85c17694d881572c877167794d3b3ac11b
