[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] fbb49c67f50c01388eebe152021b552385889f3e [INFO] testing 0xMugen/Othala against master#562dee4820c458d823175268e41601d4c060588a for pr-154210 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2F0xMugen%2FOthala" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/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-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/0xMugen/Othala on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.5.57 [INFO] [stderr] Downloaded ioctl-rs v0.1.6 [INFO] [stderr] Downloaded portable-pty v0.8.1 [INFO] [stderr] Downloaded termios v0.2.2 [INFO] [stderr] Downloaded serial-unix v0.4.0 [INFO] [stderr] Downloaded serial-core v0.4.0 [INFO] [stderr] Downloaded serial-windows v0.4.0 [INFO] [stderr] Downloaded serial v0.4.0 [INFO] [stderr] Downloaded clap_builder v4.5.57 [INFO] [stderr] Downloaded rusqlite v0.32.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] b75f1b74e928d97455ccd4d73ab0f69ee2f686af098cda38c2c29bf1e1da93b0 [INFO] running `Command { std: "docker" "start" "-a" "b75f1b74e928d97455ccd4d73ab0f69ee2f686af098cda38c2c29bf1e1da93b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b75f1b74e928d97455ccd4d73ab0f69ee2f686af098cda38c2c29bf1e1da93b0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b75f1b74e928d97455ccd4d73ab0f69ee2f686af098cda38c2c29bf1e1da93b0", kill_on_drop: false }` [INFO] [stdout] b75f1b74e928d97455ccd4d73ab0f69ee2f686af098cda38c2c29bf1e1da93b0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 39b401f41680b07d7d5794f2042737663f4f1cb5bb3f1bfe96791b32235ae07e [INFO] running `Command { std: "docker" "start" "-a" "39b401f41680b07d7d5794f2042737663f4f1cb5bb3f1bfe96791b32235ae07e", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling zmij v1.0.19 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling cc v1.2.55 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling downcast-rs v1.2.1 [INFO] [stderr] Compiling shell-words v1.1.1 [INFO] [stderr] Compiling clap_lex v0.7.7 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Compiling clap_builder v4.5.57 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling cassowary v0.3.0 [INFO] [stderr] Compiling unicode-width v0.2.0 [INFO] [stderr] Compiling lru v0.12.5 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling termios v0.2.2 [INFO] [stderr] Compiling ioctl-rs v0.1.6 [INFO] [stderr] Compiling serial-core v0.4.0 [INFO] [stderr] Compiling nix v0.25.1 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serial-unix v0.4.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling serial v0.4.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling serde_json v1.0.149 [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 thiserror v1.0.69 [INFO] [stderr] Compiling filedescriptor v0.8.3 [INFO] [stderr] Compiling portable-pty v0.8.1 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling clap v4.5.57 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling ratatui v0.29.0 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [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-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-notify v0.1.0 (/opt/rustwide/workdir/crates/orch-notify) [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 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 15s [INFO] running `Command { std: "docker" "inspect" "39b401f41680b07d7d5794f2042737663f4f1cb5bb3f1bfe96791b32235ae07e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "39b401f41680b07d7d5794f2042737663f4f1cb5bb3f1bfe96791b32235ae07e", kill_on_drop: false }` [INFO] [stdout] 39b401f41680b07d7d5794f2042737663f4f1cb5bb3f1bfe96791b32235ae07e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 96ea18d172109d0d358d5c04f4ea878030d91692d1ce4e4ab0368118bf8010a3 [INFO] running `Command { std: "docker" "start" "-a" "96ea18d172109d0d358d5c04f4ea878030d91692d1ce4e4ab0368118bf8010a3", 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 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-web v0.1.0 (/opt/rustwide/workdir/crates/orch-web) [INFO] [stderr] Compiling orch-agents v0.1.0 (/opt/rustwide/workdir/crates/orch-agents) [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-core v0.1.0 (/opt/rustwide/workdir/crates/orch-core) [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] [stderr] Compiling orch-tui v0.1.0 (/opt/rustwide/workdir/crates/orch-tui) [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] Finished `test` profile [unoptimized + debuginfo] target(s) in 46.99s [INFO] running `Command { std: "docker" "inspect" "96ea18d172109d0d358d5c04f4ea878030d91692d1ce4e4ab0368118bf8010a3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96ea18d172109d0d358d5c04f4ea878030d91692d1ce4e4ab0368118bf8010a3", kill_on_drop: false }` [INFO] [stdout] 96ea18d172109d0d358d5c04f4ea878030d91692d1ce4e4ab0368118bf8010a3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 17bf603f3df199e7aa271cb765c3d1118b57422c03193fa494c0c5a31c98b9f1 [INFO] running `Command { std: "docker" "start" "-a" "17bf603f3df199e7aa271cb765c3d1118b57422c03193fa494c0c5a31c98b9f1", 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.29s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_agents-1299d7491396f831) [INFO] [stdout] [INFO] [stdout] running 52 tests [INFO] [stdout] test adapter::tests::default_adapter_for_returns_adapter_matching_requested_model ... ok [INFO] [stdout] test error::tests::runtime_error_formats_message ... ok [INFO] [stdout] test error::tests::invalid_request_error_formats_message ... ok [INFO] [stdout] test error::tests::pty_setup_error_formats_message ... ok [INFO] [stdout] test adapter::tests::claude_interactive_command_omits_headless_flags ... ok [INFO] [stdout] test error::tests::unsupported_model_error_includes_model_name ... ok [INFO] [stdout] test adapter::tests::gemini_interactive_command_omits_prompt_flag ... ok [INFO] [stdout] test adapter::tests::adapters_preserve_empty_prompt_as_last_argument ... ok [INFO] [stdout] test adapter::tests::codex_interactive_command_omits_exec_subcommand ... ok [INFO] [stdout] test error::tests::spawn_error_formats_message ... ok [INFO] [stdout] test adapter::tests::gemini_adapter_builds_command_with_noninteractive_flags_and_prompt ... ok [INFO] [stdout] test adapter::tests::claude_adapter_builds_command_with_noninteractive_flags_and_prompt ... ok [INFO] [stdout] test adapter::tests::codex_adapter_builds_command_with_exec_subcommand_and_prompt ... ok [INFO] [stdout] test runner::tests::run_epoch_rejects_empty_prompt_before_spawning ... ok [INFO] [stdout] test adapter::tests::adapters_keep_extra_args_order_before_prompt ... 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 runner::tests::render_shell_invocation_renders_cd_env_and_command ... 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::probe_treats_any_of_env_group_as_satisfied_when_one_key_present ... ok [INFO] [stdout] test setup::tests::summarize_setup_reports_selected_health_and_missing_env_groups ... ok [INFO] [stdout] test runner::tests::run_epoch_rejects_zero_timeout_before_spawning ... 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 setup::tests::validate_selection_rejects_unhealthy_selected_model ... ok [INFO] [stdout] test signal::tests::bare_signal_words_no_longer_match ... ok [INFO] [stdout] test setup::tests::validate_selection_rejects_unknown_selected_model ... ok [INFO] [stdout] test signal::tests::bracket_signals_still_match ... ok [INFO] [stdout] test signal::tests::detects_need_human_variants ... ok [INFO] [stdout] test signal::tests::detects_patch_ready_variants ... ok [INFO] [stdout] test signal::tests::detects_qa_complete_signal ... ok [INFO] [stdout] test signal::tests::detects_rate_limited_variants ... ok [INFO] [stdout] test signal::tests::does_not_match_embedded_bracket_markers_inside_code ... ok [INFO] [stdout] test signal::tests::ignores_prompt_echo_lines_containing_signal_markers ... ok [INFO] [stdout] test signal::tests::returns_none_for_non_signal_output ... ok [INFO] [stdout] test signal::tests::prioritizes_patch_ready_over_rate_limit_markers ... 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::signal_message_is_trimmed_but_source_line_is_preserved ... 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 types::tests::epoch_stop_reason_serializes_in_snake_case ... ok [INFO] [stdout] test util::tests::escapes_single_quotes ... ok [INFO] [stdout] test types::tests::epoch_result_roundtrip_preserves_fields ... ok [INFO] [stdout] test signal::tests::skips_diff_context_lines ... ok [INFO] [stdout] test tests::crate_root_reexports_types ... ok [INFO] [stdout] test signal::tests::detects_conflict_resolved_variants ... ok [INFO] [stdout] test signal::tests::detects_error_hint_variants ... ok [INFO] [stdout] test util::tests::wraps_plain_value ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 52 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_core-d2bedec39e60522d) [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::config_reloaded_event_created ... ok [INFO] [stdout] test events::tests::event_kind_serializes_with_snake_case_variant_names ... ok [INFO] [stdout] test events::tests::all_event_kinds_serialize_and_deserialize ... ok [INFO] [stdout] test events::tests::event_roundtrip ... ok [INFO] [stdout] test state::tests::can_restack_in_correct_states ... ok [INFO] [stdout] test config::tests::load_repo_config_classifies_read_and_parse_errors ... ok [INFO] [stdout] test events::tests::event_with_none_task_id_roundtrips ... ok [INFO] [stdout] test config::tests::apply_profile_defaults_custom_does_not_override_values ... 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::daemon_config_custom_values ... ok [INFO] [stdout] test config::tests::apply_profile_defaults_dev_increases_concurrency_limits ... ok [INFO] [stdout] test config::tests::budget_config_defaults ... ok [INFO] [stdout] test config::tests::apply_profile_defaults_prod_enables_budget_enforcement ... ok [INFO] [stdout] test config::tests::parse_repo_config_parses_spec_shape ... ok [INFO] [stdout] test config::tests::apply_setup_selection_updates_enabled_models_and_concurrency ... ok [INFO] [stdout] test config::tests::save_and_load_org_config_roundtrip ... ok [INFO] [stdout] test state::tests::is_terminal_only_for_merged_and_stopped ... ok [INFO] [stdout] test state::tests::stopped_state_is_terminal_and_not_active ... ok [INFO] [stdout] test state::tests::can_submit_only_when_ready ... 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::task_state_display_all_variants ... ok [INFO] [stdout] test state::tests::task_state_serializes_as_screaming_snake_case ... ok [INFO] [stdout] test config::tests::parse_org_config_maps_profile_to_enum_variants ... ok [INFO] [stdout] test state::tests::stopped_state_display ... ok [INFO] [stdout] test config::tests::daemon_config_partial_override ... ok [INFO] [stdout] test state::tests::task_state_deserializes_from_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 state::tests::verify_status_is_passed_and_is_failed ... ok [INFO] [stdout] test state::tests::verify_status_not_run_serialization ... ok [INFO] [stdout] test state::tests::verify_status_running_serialization ... ok [INFO] [stdout] test state::tests::verify_status_passed_serialization ... ok [INFO] [stdout] test tests::crate_root_reexports_core_types ... ok [INFO] [stdout] test types::tests::dependencies_resolved_when_all_merged ... ok [INFO] [stdout] test types::tests::dependencies_not_resolved_when_some_not_merged ... 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::task_priority_defaults_to_normal ... ok [INFO] [stdout] test types::tests::task_priority_orders_critical_first_when_sorted_desc ... ok [INFO] [stdout] test state::tests::verify_status_roundtrip ... ok [INFO] [stdout] test types::tests::parse_yaml_task_spec_parses_scalars_and_lists ... ok [INFO] [stdout] test types::tests::yaml_spec_to_task_maps_fields ... ok [INFO] [stdout] test types::tests::yaml_spec_to_task_defaults_on_invalid_model_and_priority ... ok [INFO] [stdout] test types::tests::parse_yaml_task_spec_requires_title ... ok [INFO] [stdout] test validation::tests::org_config_validation_reports_empty_enabled_models ... ok [INFO] [stdout] test tests::crate_root_reexports_parse_helpers ... ok [INFO] [stdout] test types::tests::task_spec_deserializes_with_defaults ... ok [INFO] [stdout] test types::tests::new_task_starts_in_chatting_state ... ok [INFO] [stdout] test validation::tests::org_config_validation_reports_expected_errors ... ok [INFO] [stdout] test validation::tests::task_spec_validation_reports_missing_identifiers_and_title ... ok [INFO] [stdout] test validation::tests::repo_config_validation_reports_errors ... ok [INFO] [stdout] test config::tests::serialize_org_config_writes_profile_as_string ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_git-e323ce7b15a99b51) [INFO] [stdout] test types::tests::load_task_specs_from_dir_reads_only_valid_yaml ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 29 tests [INFO] [stdout] test error::tests::command_failed_variant_mentions_command_and_status ... ok [INFO] [stdout] test error::tests::io_variant_includes_command_and_io_message ... ok [INFO] [stdout] test command::tests::run_classifies_missing_binary_as_io_error ... ok [INFO] [stdout] test error::tests::repository_and_parse_variants_include_context ... ok [INFO] [stdout] test error::tests::non_utf8_variant_mentions_stream_and_has_source ... ok [INFO] [stdout] test command::tests::run_returns_stdout_for_successful_command ... ok [INFO] [stdout] test snapshot::tests::file_state_from_code_returns_unknown_for_unhandled_codes ... ok [INFO] [stdout] test repo::tests::discover_repo_propagates_non_command_failed_git_errors ... ok [INFO] [stdout] test snapshot::tests::parse_porcelain_status_parses_common_status_codes ... ok [INFO] [stdout] test snapshot::tests::parse_porcelain_status_preserves_rename_arrow_payload ... ok [INFO] [stdout] test tests::crate_root_reexports_types ... ok [INFO] [stdout] test worktree::tests::parse_worktree_list_parses_multiple_entries_and_trims_refs_prefix ... 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 tests::crate_root_reexports_snapshot_and_repo_functions ... ok [INFO] [stdout] test worktree::tests::parse_worktree_list_rejects_non_empty_unparseable_output ... 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 command::tests::run_classifies_non_zero_exit_as_command_failed ... ok [INFO] [stdout] test command::tests::run_uses_cwd_for_repo_sensitive_commands ... ok [INFO] [stdout] test repo::tests::discover_repo_finds_root_from_nested_path ... 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 snapshot::tests::capture_change_snapshot_records_head_parent_and_files ... ok [INFO] [stdout] test snapshot::tests::undo_to_snapshot_restores_parent_content ... ok [INFO] [stdout] test snapshot::tests::undo_and_redo_handle_added_file ... ok [INFO] [stdout] test worktree::tests::create_list_and_remove_worktree_for_existing_branch ... ok [INFO] [stdout] test snapshot::tests::list_change_snapshots_filters_task_id ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_graphite-76601b8bb4957376) [INFO] [stdout] test snapshot::tests::redo_snapshot_reapplies_snapshot_content ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 33 tests [INFO] [stdout] test client::tests::create_branch_rejects_blank_name_before_cli_invocation ... ok [INFO] [stdout] test client::tests::classifies_conflict_restack_failure ... ok [INFO] [stdout] test client::tests::move_current_branch_onto_rejects_blank_target ... ok [INFO] [stdout] test client::tests::preserves_non_conflict_command_failed_errors ... ok [INFO] [stdout] test client::tests::preserves_non_conflict_errors ... ok [INFO] [stdout] test client::tests::move_current_branch_onto_passes_expected_flags ... ok [INFO] [stdout] test client::tests::create_branch_rejects_blank_message_before_cli_invocation ... ok [INFO] [stdout] test client::tests::conflict_resolution_commands_use_expected_gt_subcommands ... ok [INFO] [stdout] test client::tests::repo_init_rejects_blank_trunk ... ok [INFO] [stdout] test client::tests::track_branch_rejects_blank_parent ... ok [INFO] [stdout] test client::tests::repo_init_passes_correct_arguments ... ok [INFO] [stdout] test client::tests::track_branch_rejects_blank_branch ... ok [INFO] [stdout] test client::tests::submit_stack_mode_passes_stack_and_headless_flags ... ok [INFO] [stdout] test command::tests::validate_contract_rejects_disallowed_or_mismatched_invocations ... ok [INFO] [stdout] test tests::crate_root_reexports_helpers_and_methods ... ok [INFO] [stdout] test error::tests::graph_error_helper_identifies_only_conflict_failures ... ok [INFO] [stdout] test tests::crate_root_reexports_types ... ok [INFO] [stdout] test command::tests::run_allowed_checks_contract_before_spawning_binary ... ok [INFO] [stdout] test types::tests::infers_linear_dependencies_when_depth_is_uniform ... ok [INFO] [stdout] test command::tests::validate_contract_accepts_allowed_invocations ... ok [INFO] [stdout] test types::tests::parse_gt_log_short_ignores_blank_lines_and_marks_current_node ... ok [INFO] [stdout] test types::tests::infer_task_dependencies_skips_edges_missing_task_mapping ... ok [INFO] [stdout] test types::tests::infer_task_dependencies_dedupes_duplicate_edges ... ok [INFO] [stdout] test client::tests::classifies_successful_restack ... ok [INFO] [stdout] test error::tests::detects_graphite_auth_failures ... ok [INFO] [stdout] test error::tests::detects_restack_conflict_from_common_markers ... 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 types::tests::infers_tree_dependencies_when_depth_varies ... ok [INFO] [stdout] test types::tests::normalizes_refs_heads_in_mapping_and_stack_lines ... ok [INFO] [stdout] test types::tests::parse_gt_log_short_handles_graphite_markers_and_trailing_punctuation ... ok [INFO] [stdout] test client::tests::track_branch_passes_expected_flags ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_notify-0ef881405520c955) [INFO] [stdout] test client::tests::submit_single_mode_passes_headless_flags_without_stack ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 33 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 36 tests [INFO] [stdout] test mapper::tests::maps_failed_verify_to_error_notification ... ok [INFO] [stdout] test mapper::tests::maps_restack_conflict_to_warning_notification ... ok [INFO] [stdout] test mapper::tests::maps_successful_agent_completion_to_info ... ok [INFO] [stdout] test mapper::tests::maps_model_fallback_to_retry_warning ... 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 error::tests::sink_disabled_formats_sink_name ... ok [INFO] [stdout] test mapper::tests::maps_successful_verify_to_info ... ok [INFO] [stdout] test mapper::tests::maps_agent_spawned_to_info ... ok [INFO] [stdout] test mapper::tests::notification_from_template_uses_registry ... ok [INFO] [stdout] test mapper::tests::render_template_strips_unresolved_placeholders ... ok [INFO] [stdout] test mapper::tests::render_template_substitutes_variables ... ok [INFO] [stdout] test mapper::tests::returns_some_for_error_events ... ok [INFO] [stdout] test mapper::tests::template_registry_custom_override ... ok [INFO] [stdout] test mapper::tests::vars_from_event_extracts_agent_fields ... ok [INFO] [stdout] test sink::tests::dispatcher_with_stdout_sink_reports_success ... ok [INFO] [stdout] test mapper::tests::template_registry_has_defaults ... ok [INFO] [stdout] test sink::tests::from_policy_builds_enabled_sinks ... ok [INFO] [stdout] test sink::tests::slack_payload_omits_channel_when_none ... ok [INFO] [stdout] test sink::tests::slack_payload_info_severity_uses_info_emoji ... ok [INFO] [stdout] test sink::tests::slack_payload_warning_severity_uses_warning_emoji ... ok [INFO] [stdout] test sink::tests::dispatch_fans_out_and_returns_per_sink_results ... ok [INFO] [stdout] test sink::tests::telegram_sink_returns_disabled_error_when_not_enabled ... ok [INFO] [stdout] test sink::tests::slack_sink_kind_is_slack ... ok [INFO] [stdout] test sink::tests::webhook_sink_kind_is_webhook ... ok [INFO] [stdout] test tests::crate_root_reexports_mapper_helper ... ok [INFO] [stdout] test tests::crate_root_reexports_types ... ok [INFO] [stdout] test types::tests::enums_serialize_in_snake_case ... ok [INFO] [stdout] test types::tests::notification_message_roundtrip_preserves_optional_fields ... ok [INFO] [stdout] test types::tests::notification_policy_defaults_to_stdout_sink ... ok [INFO] [stdout] test sink::tests::telegram_sink_returns_not_implemented_when_enabled ... ok [INFO] [stdout] test sink::tests::from_policy_with_no_sinks_dispatches_to_none ... 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 mapper::tests::ignores_non_notifying_events ... ok [INFO] [stdout] test error::tests::sink_failed_formats_failure_message ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_tui-c3ca6060af6f6194) [INFO] [stdout] [INFO] [stdout] running 252 tests [INFO] [stdout] test action::tests::map_key_to_command_maps_quit_shortcuts_and_ignores_unknown ... ok [INFO] [stdout] test action::tests::map_key_to_command_maps_navigation_and_actions ... ok [INFO] [stdout] test action::tests::action_label_matches_expected_snake_case_values ... 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_agent_output_reuses_existing_non_running_task_pane ... ok [INFO] [stdout] test app::tests::apply_event_qa_update_ignores_unknown_task ... ok [INFO] [stdout] test app::tests::apply_event_qa_update_sets_task_qa_fields ... ok [INFO] [stdout] test app::tests::apply_event_unknown_pane_status_change_sets_error_status_line ... 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::arrow_keys_navigate_tasks_and_panes_in_normal_view ... ok [INFO] [stdout] test app::tests::chat_history_down_arrow_returns_to_draft ... ok [INFO] [stdout] test app::tests::chat_history_typing_resets_history_index ... ok [INFO] [stdout] test app::tests::chat_history_up_arrow_recalls_previous_message ... ok [INFO] [stdout] test app::tests::chat_input_backspace_resets_history_index ... ok [INFO] [stdout] test app::tests::chat_history_up_with_no_history_does_nothing ... ok [INFO] [stdout] test app::tests::chat_input_backspace_removes_characters ... ok [INFO] [stdout] test app::tests::chat_input_control_chars_are_ignored ... ok [INFO] [stdout] test app::tests::chat_input_escape_cancels_without_queueing_action ... ok [INFO] [stdout] test app::tests::chat_input_full_history_navigation_round_trip ... ok [INFO] [stdout] test app::tests::chat_input_key_enters_chat_mode_and_enter_queues_send ... ok [INFO] [stdout] test app::tests::chat_input_no_task_selected_shows_error ... ok [INFO] [stdout] test app::tests::chat_history_is_per_task ... ok [INFO] [stdout] test app::tests::chat_history_submitted_message_is_stored ... ok [INFO] [stdout] test app::tests::chat_input_ctrl_c_quits_from_chat_mode ... ok [INFO] [stdout] test app::tests::chat_input_delete_confirm_y_key_confirms ... ok [INFO] [stdout] test app::tests::chat_input_display_returns_none_in_normal_mode ... ok [INFO] [stdout] test app::tests::chat_input_non_press_key_events_are_ignored ... ok [INFO] [stdout] test app::tests::chat_input_whitespace_only_message_is_rejected ... ok [INFO] [stdout] test app::tests::chat_input_empty_message_is_rejected ... ok [INFO] [stdout] test app::tests::chat_input_send_history_entry_directly ... ok [INFO] [stdout] test app::tests::enter_creates_task ... ok [INFO] [stdout] test app::tests::chat_input_paste_resets_history_index ... ok [INFO] [stdout] test app::tests::enter_applies_filter_text ... ok [INFO] [stdout] test app::tests::entering_focused_task_clears_focused_pane_and_scroll ... ok [INFO] [stdout] test app::tests::entering_focused_pane_clears_focused_task ... ok [INFO] [stdout] test app::tests::clear_filter_on_esc ... ok [INFO] [stdout] test app::tests::chat_input_message_is_trimmed_on_send ... ok [INFO] [stdout] test app::tests::ensure_pane_index_does_not_reuse_qa_pane_for_agent_output ... 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::ensure_pane_index_reuses_same_category_pane ... ok [INFO] [stdout] test app::tests::esc_closes_help_overlay ... 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_enter_toggles_focused_task_and_clears_focused_pane ... 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::handle_key_event_esc_closes_focused_pane_before_quitting ... ok [INFO] [stdout] test app::tests::delete_task_confirmation_escape_cancels_without_queueing_action ... ok [INFO] [stdout] test app::tests::delete_task_key_enters_confirm_mode_and_enter_queues_delete ... ok [INFO] [stdout] test app::tests::enter_loads_selected_session_tasks_and_hides_sessions ... ok [INFO] [stdout] test app::tests::esc_cancels_dialog ... ok [INFO] [stdout] test app::tests::chat_input_paste_appends_multiline_text ... ok [INFO] [stdout] test app::tests::handle_key_event_esc_closes_focused_task_before_quitting ... ok [INFO] [stdout] test app::tests::handle_paste_appends_multiline_text_while_in_prompt_mode ... 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::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_esc_cancels_and_returns_to_normal ... ok [INFO] [stdout] test app::tests::n_key_opens_new_task_dialog ... ok [INFO] [stdout] test app::tests::push_action_attaches_selected_task_id ... ok [INFO] [stdout] test app::tests::question_mark_closes_help_overlay ... 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::normal_view_keys_pass_through_when_focused ... ok [INFO] [stdout] test app::tests::s_key_changes_sort_mode ... ok [INFO] [stdout] test app::tests::push_action_uses_none_task_id_when_no_tasks_exist ... ok [INFO] [stdout] test app::tests::scroll_down_never_goes_negative ... ok [INFO] [stdout] test app::tests::r_key_reverses_sort ... ok [INFO] [stdout] test app::tests::model_select_arrow_keys_cycle_through_models ... ok [INFO] [stdout] test app::tests::scroll_resets_when_toggling_category_in_focused_pane ... ok [INFO] [stdout] test app::tests::scroll_up_down_in_focused_task ... ok [INFO] [stdout] test app::tests::slash_key_enters_filter_mode ... ok [INFO] [stdout] test app::tests::set_panes_clamps_selected_index_when_list_shrinks ... ok [INFO] [stdout] test app::tests::tab_cycles_dialog_fields ... 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::vim_keys_scroll_in_focused_task ... ok [INFO] [stdout] test chat_parse::tests::agent_marker_detected ... ok [INFO] [stdout] test app::tests::t_key_toggles_timeline ... ok [INFO] [stdout] test app::tests::tasks_replaced_preserves_qa_data ... 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::diff_block_transitions_to_new_structural_marker ... ok [INFO] [stdout] test app::tests::log_view_esc_returns_to_normal ... ok [INFO] [stdout] test chat_parse::tests::mixed_sequence ... ok [INFO] [stdout] test chat_parse::tests::exec_block_captured ... ok [INFO] [stdout] test chat_parse::tests::empty_lines_preserved_in_assistant_text ... 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 app::tests::set_sessions_builds_session_display_rows ... ok [INFO] [stdout] test app::tests::task_selection_snaps_pane_when_no_panes_exist ... ok [INFO] [stdout] test chat_parse::tests::code_fence_captured_with_language ... ok [INFO] [stdout] test chat_parse::tests::code_fence_without_language ... ok [INFO] [stdout] test chat_parse::tests::consecutive_agent_markers ... ok [INFO] [stdout] test chat_parse::tests::thinking_block_captured ... ok [INFO] [stdout] test app::tests::log_view_scroll_down ... ok [INFO] [stdout] test chat_parse::tests::tool_call_detects_succeeded_status ... ok [INFO] [stdout] test chat_parse::tests::user_messages_grouped ... ok [INFO] [stdout] test app::tests::log_view_scroll_up ... 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::status_signal_detected ... ok [INFO] [stdout] test chat_render::tests::agent_marker_skips_extra_separator ... ok [INFO] [stdout] test chat_render::tests::agent_marker_centered_with_double_rules ... ok [INFO] [stdout] test chat_render::tests::assistant_text_renders_blockquote ... ok [INFO] [stdout] test chat_render::tests::line_number_width_uses_decimal_digits ... ok [INFO] [stdout] test chat_render::tests::assistant_text_renders_bold ... ok [INFO] [stdout] test chat_render::tests::long_line_truncated_in_code_fence ... 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::markdown_bold_italic ... 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::code_fence_has_borders_and_language_label ... ok [INFO] [stdout] test chat_render::tests::markdown_empty_line ... ok [INFO] [stdout] test chat_render::tests::code_fence_has_line_numbers ... 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::code_fence_without_language ... 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::diff_shows_hunk_separator ... ok [INFO] [stdout] test chat_render::tests::assistant_text_renders_plain_white ... 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::thinking_collapses_long_blocks ... ok [INFO] [stdout] test chat_render::tests::tool_call_failed_shows_red ... ok [INFO] [stdout] test chat_render::tests::status_signal_colored_by_type ... 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_truncates_long_output ... ok [INFO] [stdout] test chat_render::tests::tool_call_non_diff_truncates_aggressively ... 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_short_output_shows_all ... ok [INFO] [stdout] test app::tests::log_view_jump_to_end ... ok [INFO] [stdout] test chat_render::tests::tool_call_with_diff_content_allows_more_lines ... ok [INFO] [stdout] test chat_render::tests::tool_call_with_diff_content_uses_red_green ... ok [INFO] [stdout] test chat_render::tests::truncate_str_preserves_short_strings ... ok [INFO] [stdout] test chat_render::tests::truncate_str_respects_unicode_boundaries ... ok [INFO] [stdout] test error::tests::io_error_converts_via_from_and_preserves_source ... 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_truncates_long_strings ... ok [INFO] [stdout] test event::tests::qa_update_event_roundtrip ... 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 model::tests::agent_pane_append_and_tail ... ok [INFO] [stdout] test model::tests::completion_percentage_empty_tasks ... ok [INFO] [stdout] test model::tests::dashboard_state_cycles_theme_index_and_theme ... ok [INFO] [stdout] test model::tests::completion_percentage_with_mixed_states ... 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::filter_by_text_matches_title ... ok [INFO] [stdout] test model::tests::filter_by_text_matches_id_case_insensitive ... ok [INFO] [stdout] test model::tests::filter_by_state ... ok [INFO] [stdout] test model::tests::focused_scroll_budget_includes_previous_chat_history ... 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::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::normalize_pane_line_strips_ansi ... ok [INFO] [stdout] test model::tests::move_pane_selection_toggles_category ... ok [INFO] [stdout] test model::tests::pane_window_with_history_keeps_live_tail_clean_until_scroll ... ok [INFO] [stdout] test model::tests::render_status_bar_with_model_name_and_none ... ok [INFO] [stdout] test model::tests::render_status_bar_with_typical_data ... ok [INFO] [stdout] test model::tests::combined_filter ... ok [INFO] [stdout] test model::tests::render_status_bar_token_color_thresholds ... 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::render_status_bar_token_formatting_k_and_m ... ok [INFO] [stdout] test model::tests::pane_window_with_history_reveals_previous_chat_on_scroll_up ... ok [INFO] [stdout] test model::tests::has_pane_in_category_checks_existence ... ok [INFO] [stdout] test model::tests::session_selection_wraps_and_handles_empty ... ok [INFO] [stdout] test event::tests::tasks_replaced_event_serializes_with_kind_tag ... ok [INFO] [stdout] test model::tests::pane_category_of_infers_from_instance_id ... ok [INFO] [stdout] test model::tests::render_status_bar_watcher_enabled_and_disabled ... 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::state_summary_empty_tasks ... 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::status_bar_data_from_dashboard_counts_states ... 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_includes_pr_url ... ok [INFO] [stdout] test model::tests::sorted_tasks_reversed ... ok [INFO] [stdout] test model::tests::task_row_with_cost ... 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::timeline_event_serialization ... ok [INFO] [stdout] test model::tests::state_summary_counts_tasks ... ok [INFO] [stdout] test app::tests::up_down_navigates_session_list_when_visible ... ok [INFO] [stdout] test model::tests::sorted_tasks_by_name ... ok [INFO] [stdout] test model::tests::toggle_pane_category_snaps_to_matching_pane ... ok [INFO] [stdout] test chat_render::tests::assistant_text_headers_get_accent ... 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 model::tests::toggle_pane_category_switches_between_agent_and_qa ... ok [INFO] [stdout] test output_style::tests::diff_block_header_styled_as_accent ... ok [INFO] [stdout] test output_style::tests::output_line_style_marks_patch_edits_clearly ... ok [INFO] [stdout] test output_style::tests::diff_block_lines_get_diff_coloring ... ok [INFO] [stdout] test runner::tests::handle_terminal_event_ignores_resize_events ... ok [INFO] [stdout] test runner::tests::handle_terminal_event_routes_key_events_to_app ... ok [INFO] [stdout] test runner::tests::handle_terminal_event_routes_paste_events_to_prompt_buffer ... ok [INFO] [stdout] test tests::crate_root_reexports_helper_functions ... ok [INFO] [stdout] test tests::crate_root_reexports_types ... ok [INFO] [stdout] test output_style::tests::code_fence_lines_use_muted_style ... ok [INFO] [stdout] test ui::tests::cost_display_formatting ... ok [INFO] [stdout] test ui::tests::cost_display_unknown ... 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::exec_block_lines_use_muted_style ... ok [INFO] [stdout] test output_style::tests::agent_exit_line_styled_as_dim ... ok [INFO] [stdout] test ui::tests::format_category_tabs_highlights_selected_category ... ok [INFO] [stdout] test output_style::tests::output_line_style_marks_special_chat_signals ... ok [INFO] [stdout] test ui::tests::format_dependency_chain_with_deps ... ok [INFO] [stdout] test ui::tests::format_category_tabs_shows_agent_and_qa_tabs ... ok [INFO] [stdout] test ui::tests::format_pane_tabs_handles_empty_and_selected_pane ... ok [INFO] [stdout] test ui::tests::footer_height_expands_for_large_prompt_and_clamps ... ok [INFO] [stdout] test ui::tests::format_pane_tabs_marks_first_selected_by_default ... ok [INFO] [stdout] test ui::tests::session_status_helpers_render_expected_values ... ok [INFO] [stdout] test ui::tests::pane_status_tag_maps_all_statuses ... ok [INFO] [stdout] test ui::tests::status_activity_only_animates_live_pane_statuses ... ok [INFO] [stdout] test ui::tests::status_line_color_highlights_attention_levels ... ok [INFO] [stdout] test ui::tests::status_sidebar_hides_qa_section_when_no_qa_data ... ok [INFO] [stdout] test ui::tests::status_sidebar_limits_activity_to_last_10 ... ok [INFO] [stdout] test ui::tests::format_dependency_chain_empty ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/orch_tui-dac17d8e07be5a16) [INFO] [stdout] test output_style::tests::thinking_marker_styled_as_dim_magenta ... ok [INFO] [stdout] test ui::tests::format_task_row_includes_expected_columns ... 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::tests::status_sidebar_shows_activity_lines_with_styling ... ok [INFO] [stdout] test ui::tests::status_sidebar_shows_verify_failed_when_verify_fails ... ok [INFO] [stdout] test ui::tests::wrapped_visual_line_count_handles_wrapping_and_newlines ... ok [INFO] [stdout] test ui::tests::status_sidebar_shows_verifying_when_verify_in_progress ... ok [INFO] [stdout] test ui::tests::status_sidebar_shows_qa_section_when_qa_data_present ... ok [INFO] [stdout] test ui_footer::tests::model_health_all_healthy ... ok [INFO] [stdout] test ui_footer::tests::model_health_mixed ... ok [INFO] [stdout] test ui_format::tests::state_color_returns_correct_colors ... ok [INFO] [stdout] test ui_footer::tests::progress_bar_format ... ok [INFO] [stdout] test ui::tests::status_sidebar_lines_shows_push_detail_when_submitting ... ok [INFO] [stdout] test ui::tests::to_local_time_uses_fixed_format ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 252 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test tests::chat_log_path_uses_task_id ... ok [INFO] [stdout] test tests::chat_log_roundtrip ... ok [INFO] [stdout] test tests::append_chat_log_skips_empty_lines_vec ... ok [INFO] [stdout] test tests::models_command_is_detected ... ok [INFO] [stdout] test tests::chat_log_truncates_on_load ... ok [INFO] [stdout] test tests::parse_cli_args_applies_tick_rate_and_sqlite_override ... ok [INFO] [stdout] test tests::available_models_command_lists_all_models ... 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_rejects_missing_tick_rate_value ... ok [INFO] [stdout] test tests::parse_cli_args_uses_default_tick_rate ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_verify-4b5a3fe4cc159505) [INFO] [stdout] test tests::discover_qa_stack_head_prefers_latest_qa_confirmed_task ... 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 error::tests::non_utf8_variant_mentions_stream_and_has_source ... ok [INFO] [stdout] test error::tests::invalid_config_variant_renders_message ... ok [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 runner::tests::run_verify_passes_with_empty_command ... ok [INFO] [stdout] test runner::tests::run_verify_captures_output ... ok [INFO] [stdout] test runner::tests::run_verify_fails_with_false ... ok [INFO] [stdout] test runner::tests::run_verify_wraps_command_with_nix_dev_shell ... ok [INFO] [stdout] test runner::tests::run_verify_succeeds_with_true ... ok [INFO] [stdout] test runner::tests::run_verify_includes_duration ... ok [INFO] [stdout] test runner::tests::multi_verify_stops_on_first_failure ... ok [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/orch_web-63f2cf28421ec5c5) [INFO] [stdout] test runner::tests::multi_verify_runs_all_on_success ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 19 tests [INFO] [stdout] test handler::tests::get_task_returns_not_found_for_unknown_id ... ok [INFO] [stdout] test handler::tests::create_task_requires_body ... ok [INFO] [stdout] test handler::tests::health_includes_status_and_paths ... ok [INFO] [stdout] test response::tests::builds_error_response ... ok [INFO] [stdout] test handler::tests::list_tasks_returns_json_array ... ok [INFO] [stdout] test router::tests::does_not_match_unknown_path ... ok [INFO] [stdout] test router::tests::does_not_match_when_method_differs ... ok [INFO] [stdout] test router::tests::extracts_path_params ... ok [INFO] [stdout] test response::tests::builds_json_response ... ok [INFO] [stdout] test handler::tests::create_task_returns_created_task ... ok [INFO] [stdout] test router::tests::matched_handler_is_callable ... ok [INFO] [stdout] test router::tests::matches_exact_route ... ok [INFO] [stdout] test request::tests::parses_post_request_with_body ... ok [INFO] [stdout] test response::tests::writes_http_response_to_stream ... ok [INFO] [stdout] test request::tests::parses_get_request_with_query ... ok [INFO] [stdout] test request::tests::rejects_malformed_request_line ... ok [INFO] [stdout] test request::tests::rejects_unsupported_method ... ok [INFO] [stdout] test server::tests::run_once_returns_not_found_for_unknown_route ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/orch_web-3d05a08325f4283a) [INFO] [stdout] test server::tests::run_once_serves_health_endpoint ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s [INFO] [stdout] [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-770d76a5aaf50fe7) [INFO] [stdout] [INFO] [stdout] running 891 tests [INFO] [stdout] test agent_dispatch::tests::dispatch_routes_docs_to_librarian ... ok [INFO] [stdout] test agent_dispatch::tests::dispatch_routes_implementation_to_hephaestus ... ok [INFO] [stdout] test agent_dispatch::tests::agent_role_model_mapping ... ok [INFO] [stdout] test agent_dispatch::tests::dispatch_routes_error_recovery_to_sisyphus ... ok [INFO] [stdout] test agent_dispatch::tests::dispatch_routes_quick_fix_to_explorer ... ok [INFO] [stdout] test agent_dispatch::tests::fallback_escalates_to_sisyphus ... ok [INFO] [stdout] test agent_dispatch::tests::task_intent_classification ... ok [INFO] [stdout] test agent_log::tests::compact_context_keeps_all_lines_when_within_limit ... ok [INFO] [stdout] test agent_log::tests::compact_context_with_zero_max_lines_returns_empty_summary ... ok [INFO] [stdout] test agent_log::tests::compact_context_keeps_edges_and_middle_error_signal ... ok [INFO] [stdout] test agent_log::tests::append_creates_directory_and_file ... ok [INFO] [stdout] test agent_log::tests::diff_agent_outputs_computes_line_changes ... ok [INFO] [stdout] test agent_log::tests::diff_agent_outputs_handles_identical_inputs ... ok [INFO] [stdout] test agent_log::tests::extract_key_sections_detects_error_code_decision_and_summary ... 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 agent_log::tests::diff_agent_outputs_handles_empty_inputs ... ok [INFO] [stdout] test agent_log::tests::read_nonexistent_log_returns_error ... ok [INFO] [stdout] test attribution::tests::commit_trailer_none_returns_none ... 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::build_compaction_prompt_format ... ok [INFO] [stdout] test auto_compact::tests::default_config_values ... ok [INFO] [stdout] test agent_log::tests::rotate_log_if_needed_skips_small_files ... ok [INFO] [stdout] test agent_log::tests::rotate_log_if_needed_rotates_large_files ... ok [INFO] [stdout] test agent_log::tests::rotate_log_shifts_files ... ok [INFO] [stdout] test agent_log::tests::save_compacted_summary_writes_compacted_log_file ... ok [INFO] [stdout] test agent_log::tests::tail_returns_last_n_lines ... ok [INFO] [stdout] test agent_log::tests::total_log_size_sums_correctly ... 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 agent_log::tests::rotate_log_respects_max_files ... ok [INFO] [stdout] test attribution::tests::attribution_style_from_str_parsing ... ok [INFO] [stdout] test attribution::tests::commit_trailer_assisted_by_format ... ok [INFO] [stdout] test attribution::tests::commit_trailer_co_authored_by_format ... ok [INFO] [stdout] test agent_log::tests::list_rotated_logs_finds_all ... ok [INFO] [stdout] test agent_log::tests::diff_summary_counts_all_variants ... 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 auto_compact::tests::should_compact_above_threshold ... 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::status_line_format ... ok [INFO] [stdout] test auto_compact::tests::token_tracking_record_usage ... 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 ci_gen::tests::cache_enabled_affects_output ... ok [INFO] [stdout] test chat_workspace::tests::branch_name_sanitizes_invalid_characters ... 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 ci_gen::tests::generate_nix_ci_includes_nix_setup ... ok [INFO] [stdout] test ci_gen::tests::generate_verify_workflow_is_valid ... ok [INFO] [stdout] test ci_gen::tests::validate_workflow_catches_missing_fields ... ok [INFO] [stdout] test code_search::tests::build_sourcegraph_query_applies_all_filters ... ok [INFO] [stdout] test code_search::tests::build_github_query_applies_filters ... 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 code_search::tests::parse_github_response_extracts_items ... ok [INFO] [stdout] test code_search::tests::config_deserialize_uses_field_defaults ... ok [INFO] [stdout] test code_search::tests::parse_github_response_requires_authentication ... ok [INFO] [stdout] test code_search::tests::parse_github_response_requires_items_array ... ok [INFO] [stdout] test code_search::tests::parse_github_response_uses_fallback_fields ... ok [INFO] [stdout] test code_search::tests::parse_sourcegraph_response_accepts_fallback_fields ... ok [INFO] [stdout] test code_search::tests::parse_github_response_reports_rate_limit ... ok [INFO] [stdout] test chat_workspace::tests::branch_name_uses_task_prefix ... ok [INFO] [stdout] test code_search::tests::parse_sourcegraph_response_extracts_results ... 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::build_context_gen_prompt_includes_snapshot ... ok [INFO] [stdout] test context_gen::tests::context_gen_state_default ... ok [INFO] [stdout] test context_gen::tests::git_hash_roundtrip ... ok [INFO] [stdout] test context_gen::tests::parse_context_gen_output_empty ... ok [INFO] [stdout] test context_gen::tests::parse_context_gen_output_basic ... ok [INFO] [stdout] test context_gen::tests::parse_context_gen_output_nested_paths ... ok [INFO] [stdout] test context_gen::tests::parse_context_gen_output_strips_path_traversal ... ok [INFO] [stdout] test context_gen::tests::sanitize_path_allows_subdirectories ... ok [INFO] [stdout] test context_gen::tests::sanitize_path_empty_becomes_unnamed ... ok [INFO] [stdout] test context_gen::tests::sanitize_path_strips_dangerous_sequences ... ok [INFO] [stdout] test context_gen::tests::context_is_current_requires_main_md_and_hash ... 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::should_regenerate_respects_cooldown ... ok [INFO] [stdout] test context_gen_telemetry::tests::assess_staleness_missing_context ... ok [INFO] [stdout] test context_gen_telemetry::tests::assess_staleness_hash_mismatch ... ok [INFO] [stdout] test context_gen::tests::write_context_files_creates_subdirs_and_files ... ok [INFO] [stdout] test context_gen_telemetry::tests::cache_hit_rate_calculation ... ok [INFO] [stdout] test context_gen_telemetry::tests::estimate_tokens_rough ... ok [INFO] [stdout] test context_gen_telemetry::tests::metrics_default_is_zero ... ok [INFO] [stdout] test context_gen_telemetry::tests::record_failure_counts_separately ... ok [INFO] [stdout] test context_gen_telemetry::tests::record_success_updates_min_max_avg ... ok [INFO] [stdout] test context_gen_telemetry::tests::render_report_shows_token_budget_warning ... ok [INFO] [stdout] test context_gen_telemetry::tests::metrics_serializes_to_json ... ok [INFO] [stdout] test context_gen_telemetry::tests::format_bytes_scales ... ok [INFO] [stdout] test context_gen_telemetry::tests::stale_warning_severity_order ... ok [INFO] [stdout] test context_gen_telemetry::tests::scan_coverage_empty ... ok [INFO] [stdout] test context_gen_telemetry::tests::record_start_increments ... ok [INFO] [stdout] test context_graph::tests::extracts_file_references ... ok [INFO] [stdout] test context_graph::tests::context_graph_parses_glob_directive ... ok [INFO] [stdout] test context_gen_telemetry::tests::build_report_without_metrics ... ok [INFO] [stdout] test context_gen_telemetry::tests::scan_coverage_with_files ... ok [INFO] [stdout] test context_gen_telemetry::tests::report_serializes_to_json ... ok [INFO] [stdout] test context_gen_telemetry::tests::build_report_with_metrics ... ok [INFO] [stdout] test context_graph::tests::context_graph_parses_cmd_directive ... ok [INFO] [stdout] test context_gen_telemetry::tests::render_report_includes_sections ... 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::normalise_path_resolves_parent_refs ... ok [INFO] [stdout] test context_graph::tests::render_context_produces_markdown ... ok [INFO] [stdout] test context_graph::tests::parses_skill_frontmatter_fields ... ok [INFO] [stdout] test context_graph::tests::respects_max_depth ... ok [INFO] [stdout] test context_graph::tests::loads_context_graph_bfs ... ok [INFO] [stdout] test context_graph::tests::respects_char_budget ... ok [INFO] [stdout] test context_graph::tests::skill_registry_discovers_local_and_user_skills ... ok [INFO] [stdout] test context_graph::tests::skill_registry_empty_when_no_skill_dirs ... ok [INFO] [stdout] test context_graph::tests::loads_context_graph_bfs_with_wiki_links ... ok [INFO] [stdout] test context_graph::tests::returns_none_when_no_entry ... ok [INFO] [stdout] test context_graph::tests::test_default_depth_is_10 ... ok [INFO] [stdout] test context_graph::tests::skill_registry_load_skill_returns_none_for_missing_name ... ok [INFO] [stdout] test context_manager::tests::active_blockers_filters_resolved ... ok [INFO] [stdout] test context_graph::tests::test_cycle_detection ... ok [INFO] [stdout] test context_graph::tests::test_cycle_with_source_refs ... ok [INFO] [stdout] test context_graph::tests::test_depth_limit_respected ... ok [INFO] [stdout] test context_graph::tests::skill_registry_prefers_local_on_duplicate_name ... ok [INFO] [stdout] test context_manager::tests::context_state_records_errors ... ok [INFO] [stdout] test context_manager::tests::build_context_includes_history ... 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::add_message_returns_not_found_for_unknown_conversation ... ok [INFO] [stdout] test conversation::tests::conversation_error_display_impls_are_readable ... 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::get_last_n_messages_returns_recent_items ... ok [INFO] [stdout] test conversation::tests::export_and_import_round_trip_preserves_data ... ok [INFO] [stdout] test conversation::tests::get_messages_handles_out_of_range_offset ... 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_rejects_duplicate_id ... 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::search_messages_finds_matches_across_conversations ... ok [INFO] [stdout] test conversation::tests::search_messages_returns_empty_for_blank_query ... ok [INFO] [stdout] test conversation::tests::tool_call_creation_round_trip_fields ... 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::canonicalize_command_template_rewrites_braced_placeholders ... ok [INFO] [stdout] test custom_commands::tests::command_prefix_display ... ok [INFO] [stdout] test custom_commands::tests::discover_commands_from_dir_reads_markdown_and_subdirs ... ok [INFO] [stdout] test custom_commands::tests::discover_commands_from_empty_dir ... ok [INFO] [stdout] test custom_commands::tests::display_commands_table_formats_rows ... ok [INFO] [stdout] test custom_commands::tests::execute_prompt_returns_structured_result ... ok [INFO] [stdout] test custom_commands::tests::extract_arguments_deduplicates ... ok [INFO] [stdout] test custom_commands::tests::extract_arguments_finds_uppercase_patterns ... ok [INFO] [stdout] test custom_commands::tests::extract_arguments_ignores_lowercase ... ok [INFO] [stdout] test custom_commands::tests::parse_command_description_from_heading ... ok [INFO] [stdout] test custom_commands::tests::parse_command_description_from_html_comment ... ok [INFO] [stdout] test custom_commands::tests::parse_command_description_without_description ... ok [INFO] [stdout] test custom_commands::tests::discover_commands_rewrites_legacy_template_syntax ... ok [INFO] [stdout] test custom_commands::tests::render_command_errors_on_missing_args ... ok [INFO] [stdout] test custom_commands::tests::discover_commands_skips_invalid_template_syntax ... 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::validate_command_template_rejects_empty_default ... ok [INFO] [stdout] test custom_commands::tests::validate_command_template_rejects_invalid_start ... ok [INFO] [stdout] test daemon_loop::tests::build_spawn_action_injects_qa_failure_context_on_retry ... 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::config_reload_handles_missing_file ... ok [INFO] [stdout] test daemon_loop::tests::daemon_state_default ... 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_passes_when_disabled ... ok [INFO] [stdout] test daemon_loop::tests::config_reload_skips_unchanged ... 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_cleans_up_completed_qa_agents ... ok [INFO] [stdout] test context_graph::tests::context_graph_cmd_truncates_long_output ... ok [INFO] [stdout] test daemon_loop::tests::daemon_tick_produces_spawn_for_chatting_task ... ok [INFO] [stdout] test daemon_loop::tests::daemon_tick_releases_stack_action_when_restack_backoff_elapsed ... ok [INFO] [stdout] test daemon_loop::tests::daemon_tick_creates_pipeline_for_ready_task ... ok [INFO] [stdout] test daemon_loop::tests::daemon_tick_skips_spawn_during_shutdown ... 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_skips_baseline_qa_when_result_already_exists ... ok [INFO] [stdout] test daemon_loop::tests::dry_run_still_logs ... ok [INFO] [stdout] test daemon_loop::tests::daemon_tick_defers_stack_action_while_restack_backoff_is_pending ... ok [INFO] [stdout] test daemon_loop::tests::dry_run_skips_agent_spawn ... 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_refuses_spawn_when_budget_exceeded ... 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 [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 [INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1774867327706906947/.git/ [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stdout] test daemon_loop::tests::load_submit_mode_for_tick_reads_org_config ... ok [INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all [INFO] [stdout] test daemon_loop::tests::qa_validation_fail_produces_failed_and_retry_actions ... ok [INFO] [stderr] hint: of your new repositories, which will suppress this warning, call: [INFO] [stdout] test daemon_loop::tests::qa_validation_pass_produces_completed_and_mark_ready_actions ... ok [INFO] [stderr] hint: [INFO] [stdout] test daemon_loop::tests::request_shutdown_sets_deadline ... ok [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stdout] test daemon_loop::tests::maybe_reset_budget_resets_on_new_day ... ok [INFO] [stderr] hint: [INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1774867327720087286/.git/ [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1774867327707911947/.git/ [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stdout] test daemon_loop::tests::handle_needs_human_outcome_produces_record_needs_human ... ok [INFO] [stderr] hint: [INFO] [stdout] test daemon_loop::tests::restack_retry_state_uses_exponential_backoff_and_max_retries ... ok [INFO] [stderr] hint: git branch -m [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 [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 [INFO] [stdout] test daemon_loop::tests::daemon_tick_uses_submit_mode_default_from_config_for_pipeline ... 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::handle_successful_outcome_produces_mark_ready ... ok [INFO] [stdout] test daemon_loop::tests::select_graphite_recovery_playbook_detects_restack_errors ... ok [INFO] [stdout] test daemon_loop::tests::select_graphite_recovery_playbook_detects_trunk_errors ... ok [INFO] [stdout] [master (root-commit) d274160] initial [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test daemon_loop::tests::shutdown_complete_when_no_agents_running ... ok [INFO] [stdout] test daemon_loop::tests::handle_agent_completion_updates_budget_usage_from_output ... 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::restack_recovery_playbook_uses_backoff_without_incrementing_retry_count ... ok [INFO] [stdout] test daemon_loop::tests::mark_merged_action_transitions_state ... ok [INFO] [stdout] test daemon_loop::tests::restack_trunk_playbook_stops_without_incrementing_retry_count_on_sync_failure ... ok [INFO] [stdout] test daemon_loop::tests::handle_successful_outcome_spawns_qa_validation_when_baseline_exists ... ok [INFO] [stdout] test daemon_status::tests::format_uptime_hours_and_minutes ... ok [INFO] [stdout] test daemon_loop::tests::shutdown_waits_for_running_agents ... ok [INFO] [stdout] test daemon_status::tests::format_uptime_seconds_only ... ok [INFO] [stdout] test daemon_loop::tests::execute_actions_skips_verify_on_cache_hit ... ok [INFO] [stdout] test daemon_status::tests::task_summary_from_counts_includes_unknown_in_total ... ok [INFO] [stdout] test daemon_loop::tests::drain_timeout_forces_shutdown ... ok [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::execution_order_sequential ... ok [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::all_results_returns_sorted_indices ... ok [INFO] [stdout] [master (root-commit) d274160] initial [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test delegation::tests::tracker_complete_flow ... ok [INFO] [stdout] test delegation::tests::tracker_fail_fast_behavior ... ok [INFO] [stdout] test daemon_status::tests::format_uptime_days_hours_and_minutes ... ok [INFO] [stdout] test daemon_status::tests::format_uptime_minutes_and_seconds ... 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 [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 [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::delta_reporter_change_emits ... ok [INFO] [stdout] test delegation::tests::progress_summary_formatting ... ok [INFO] [stdout] Initialized empty Git repository in /tmp/othala-daemon-git-1774867327729844936/.git/ [INFO] [stdout] test delta_report::tests::context_gen_status_change_detected ... ok [INFO] [stdout] test delta_report::tests::delta_reporter_first_tick_empty_suppressed ... ok [INFO] [stdout] test delta_report::tests::build_delta_report_summary ... ok [INFO] [stdout] test delta_report::tests::delta_reporter_first_tick_with_tasks ... ok [INFO] [stdout] test delta_report::tests::merge_count_delta ... ok [INFO] [stdout] test delta_report::tests::delta_reporter_suppression_rate ... ok [INFO] [stdout] test delta_report::tests::delta_reporter_no_change_suppressed ... ok [INFO] [stdout] test delta_report::tests::pipeline_started_and_completed ... ok [INFO] [stdout] test delta_report::tests::qa_state_change_detected ... ok [INFO] [stdout] test delta_report::tests::no_changes_yields_empty_delta ... ok [INFO] [stdout] test delta_report::tests::render_delta_report_empty ... ok [INFO] [stdout] test delta_report::tests::render_delta_report_with_changes ... ok [INFO] [stdout] test delta_report::tests::report_serializes_to_json ... ok [INFO] [stdout] test delta_report::tests::should_emit_always_for_high_priority ... ok [INFO] [stdout] test delta_report::tests::should_emit_respects_rate_limit ... ok [INFO] [stdout] test delta_report::tests::model_health_change_detected ... ok [INFO] [stdout] test delta_report::tests::should_emit_suppresses_empty ... ok [INFO] [stdout] test delta_report::tests::stop_count_delta ... ok [INFO] [stdout] test delta_report::tests::suppression_filters_idle_context_repeat ... ok [INFO] [stdout] test delta_report::tests::suppression_keeps_meaningful_context_change ... ok [INFO] [stdout] test delta_report::tests::task_removed_detected ... ok [INFO] [stdout] test delta_report::tests::task_added_detected ... ok [INFO] [stdout] test delta_report::tests::task_state_change_detected ... ok [INFO] [stdout] test dependency_graph::tests::builds_graph_from_dependencies ... ok [INFO] [stdout] test dependency_graph::tests::ignores_self_and_unknown_dependencies ... 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 delta_report::tests::multiple_changes_combined ... ok [INFO] [stdout] test dependency_graph::tests::restack_targets_include_descendants_in_bfs_order ... ok [INFO] [stdout] test e2e_scenarios::tests::agent_failure_retry_scenario_passes ... ok [INFO] [stdout] test e2e_scenarios::tests::assert_no_stuck_tasks_fails_when_stuck ... 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::compare_op_evaluations ... 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::full_builtin_suite_passes ... ok [INFO] [stdout] test e2e_scenarios::tests::happy_path_scenario_passes ... 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::scenario_metrics_get ... ok [INFO] [stdout] test e2e_scenarios::tests::scenario_runner_creates_tasks ... ok [INFO] [stdout] test e2e_scenarios::tests::scenario_step_log ... 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::soak_result_json_roundtrip ... ok [INFO] [stdout] test e2e_scenarios::tests::soak_test_no_stuck_tasks ... ok [INFO] [stdout] test e2e_scenarios::tests::verify_failure_loop_scenario_passes ... 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_tester::tests::override_detection ... ok [INFO] [stdout] [master (root-commit) d274160] initial [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test e2e_scenarios::tests::suite_result_json_roundtrip ... ok [INFO] [stdout] test e2e_scenarios::tests::suite_result_summary_contains_all_names ... ok [INFO] [stdout] test e2e_scenarios::tests::soak_test_with_chaos ... ok [INFO] [stdout] test e2e_tester::tests::pass_criteria_evaluation ... ok [INFO] [stdout] test daemon_loop::tests::get_worktree_head_sha_returns_value_for_git_repo ... ok [INFO] [stdout] test editor::tests::attachment_content_variants_work ... ok [INFO] [stdout] test editor::tests::editor_config_default_values ... ok [INFO] [stdout] test daemon_loop::tests::run_verify_command_wraps_with_nix_shell_when_set ... ok [INFO] [stdout] test editor::tests::format_size_outputs_human_readable_values ... ok [INFO] [stdout] test e2e_tester::tests::skip_detection ... ok [INFO] [stdout] test editor::tests::mime_type_for_known_extensions ... ok [INFO] [stdout] test e2e_tester::tests::stage_result_tracking ... ok [INFO] [stdout] test editor::tests::is_binary_extension_false_for_text ... ok [INFO] [stdout] test editor::tests::resolve_editor_falls_back_to_env_values ... ok [INFO] [stdout] test editor::tests::is_binary_extension_true_for_images ... ok [INFO] [stdout] [master (root-commit) d274160] initial [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test editor::tests::read_attachment_reads_text_and_binary ... ok [INFO] [stdout] test daemon_status::tests::display_full_includes_sections ... ok [INFO] [stdout] test editor::tests::validate_attachment_rejects_too_large_file ... ok [INFO] [stdout] test editor::tests::validate_attachment_rejects_unknown_extension ... ok [INFO] [stdout] test daemon_status::tests::system_info_detect_sets_core_fields ... ok [INFO] [stdout] test editor::tests::resolve_editor_uses_config_override ... ok [INFO] [stdout] test editor::tests::open_editor_for_prompt_uses_template_generation ... ok [INFO] [stdout] test editor::tests::validate_attachment_accepts_valid_file ... ok [INFO] [stdout] test env_inject::tests::env_config_defaults ... ok [INFO] [stdout] test env_inject::tests::has_task_env_reflects_presence_of_task_vars ... ok [INFO] [stdout] test daemon_status::tests::daemon_health_new_sets_expected_defaults ... ok [INFO] [stdout] test env_inject::tests::merge_with_system_inherits_when_enabled ... ok [INFO] [stdout] test env_inject::tests::built_ins_override_custom_same_name ... ok [INFO] [stdout] test env_inject::tests::merge_with_system_skips_inheritance_when_disabled ... 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 env_inject::tests::redacted_env_masks_sensitive_values ... ok [INFO] [stdout] test env_inject::tests::build_env_merges_in_correct_precedence ... ok [INFO] [stdout] test env_inject::tests::built_in_othala_vars_are_always_injected ... ok [INFO] [stdout] test env_inject::tests::build_env_vec_contains_same_items_as_map ... ok [INFO] [stdout] test env_inject::tests::build_env_vec_is_sorted_by_key ... ok [INFO] [stdout] test daemon_status::tests::check_health_is_degraded_when_some_models_are_not_healthy ... ok [INFO] [stdout] test env_inject::tests::set_task_var_adds_runtime_variable ... ok [INFO] [stdout] test env_inject::tests::set_task_var_overwrites_existing_value ... ok [INFO] [stdout] test file_watcher::tests::change_kind_display ... ok [INFO] [stdout] test file_watcher::tests::matches_include_matching ... ok [INFO] [stdout] test event_log::tests::append_both_writes_only_global_when_task_id_missing ... ok [INFO] [stdout] test file_watcher::tests::default_config_values ... ok [INFO] [stdout] test event_log::tests::append_global_appends_multiple_lines ... ok [INFO] [stdout] test env_inject::tests::build_env_with_unknown_task_uses_global_and_model_only ... ok [INFO] [stdout] test event_log::tests::ensure_layout_creates_root_and_task_directories ... ok [INFO] [stdout] test file_watcher::tests::simple_glob_match_double_star_pattern ... ok [INFO] [stdout] test file_watcher::tests::should_ignore_matching ... ok [INFO] [stdout] test file_watcher::tests::simple_glob_match_question_pattern ... ok [INFO] [stdout] test file_watcher::tests::simple_glob_match_star_pattern ... ok [INFO] [stdout] test graphite_agent::tests::agent_lock_mechanism ... ok [INFO] [stdout] test graphite_agent::tests::agent_enqueue_deduplication ... ok [INFO] [stdout] test graphite_agent::tests::agent_respawn_registration ... ok [INFO] [stdout] test graphite_agent::tests::agent_priority_ordering ... ok [INFO] [stdout] test graphite_agent::tests::branch_tracking_info_detection ... ok [INFO] [stdout] test graphite_agent::tests::divergence_detection_no_divergence_when_matching ... ok [INFO] [stdout] test graphite_agent::tests::divergence_detection_reports_wrong_parent ... ok [INFO] [stdout] test event_log::tests::append_both_writes_global_and_task_log_when_task_id_present ... ok [INFO] [stdout] test graphite_agent::tests::divergence_detection_reports_missing_parent ... ok [INFO] [stdout] test file_watcher::tests::poll_detects_deleted_file ... ok [INFO] [stdout] test event_log::tests::append_task_appends_multiple_lines_for_same_task ... 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::failure_class_classification ... ok [INFO] [stdout] test graphite_agent::tests::failure_class_respawnability ... ok [INFO] [stdout] test file_watcher::tests::initial_scan_creates_snapshots ... ok [INFO] [stdout] test daemon_status::tests::check_health_honors_explicit_unhealthy_status ... ok [INFO] [stdout] test graphite_agent::tests::graphite_agent_tick_generates_respawn_actions ... ok [INFO] [stdout] test graphite_agent::tests::operation_result_recoverability ... ok [INFO] [stdout] test graphite_agent::tests::noop_restack_messages_are_treated_as_benign ... ok [INFO] [stdout] test graphite_agent::tests::retry_state_exponential_backoff ... ok [INFO] [stdout] test graphite_agent::tests::respawn_state_eligibility ... ok [INFO] [stdout] test ignore::tests::anchored_pattern_matches_only_from_root ... ok [INFO] [stdout] test ignore::tests::is_ignored_directory_pattern_trailing_slash ... ok [INFO] [stdout] test ignore::tests::is_ignored_matches_glob ... ok [INFO] [stdout] test ignore::tests::display_ignore_rules_format ... ok [INFO] [stdout] test ignore::tests::is_ignored_with_negation ... ok [INFO] [stdout] test ignore::tests::context_paths_config_resolve_paths ... ok [INFO] [stdout] test ignore::tests::merge_combines_rules ... ok [INFO] [stdout] test ignore::tests::parse_negation_patterns ... ok [INFO] [stdout] test ignore::tests::is_ignored_with_double_star_pattern ... ok [INFO] [stdout] test ignore::tests::parse_comment_lines ... ok [INFO] [stdout] test ignore::tests::parse_empty_content ... ok [INFO] [stdout] test ignore::tests::parse_simple_glob_patterns ... ok [INFO] [stdout] test ignore::tests::question_pattern_matches_single_character ... ok [INFO] [stdout] test daemon_loop::tests::execute_actions_stores_verify_sha_on_success ... 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 lsp::tests::did_open_message_formatting ... ok [INFO] [stdout] test lsp::tests::did_save_message_formatting ... ok [INFO] [stdout] test lsp::tests::goto_definition_parses_location_array ... ok [INFO] [stdout] test lsp::tests::goto_definition_parses_location_link ... ok [INFO] [stdout] test graphite_agent::tests::extract_branch_from_typical_log_lines ... ok [INFO] [stdout] test lsp::tests::file_path_uri_conversion_roundtrip ... ok [INFO] [stdout] test lsp::tests::initialize_request_building ... ok [INFO] [stdout] test lsp::tests::find_references_formats_request_and_parses_result ... ok [INFO] [stdout] test lsp::tests::did_change_message_formatting ... ok [INFO] [stdout] test lsp::tests::file_extension_matching_to_language_id ... ok [INFO] [stdout] test lsp::tests::json_rpc_message_framing_requires_content_length ... ok [INFO] [stdout] test ignore::tests::load_from_nonexistent_file_returns_empty ... ok [INFO] [stdout] test lsp::tests::diagnostics_cache_operations_insert_get_clear ... ok [INFO] [stdout] test lsp::tests::language_server_config_with_root_patterns ... 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_config_serialization_roundtrip ... ok [INFO] [stdout] test lsp::tests::lsp_location_creation ... ok [INFO] [stdout] test lsp::tests::parse_message_id_accepts_integer_and_string ... ok [INFO] [stdout] test lsp::tests::shutdown_sequence ... ok [INFO] [stdout] test lsp::tests::split_command_and_args_supports_embedded_flags ... ok [INFO] [stdout] test lsp::tests::lsp_manager_creation_and_server_listing ... ok [INFO] [stdout] test mcp::tests::initialize_returns_server_info_and_capabilities ... ok [INFO] [stdout] test mcp::tests::builtin_tools_are_registered ... ok [INFO] [stdout] test lsp::tests::request_response_id_matching_ignores_non_matching_id ... ok [INFO] [stdout] test mcp::tests::notifications_return_no_output_from_process_line ... ok [INFO] [stdout] test mcp::tests::invalid_params_error_for_tools_call_missing_name ... ok [INFO] [stdout] test lsp::tests::publish_diagnostics_notification_updates_cache ... ok [INFO] [stdout] test mcp::tests::parse_invalid_json_returns_parse_error ... ok [INFO] [stdout] test mcp::tests::process_line_with_invalid_json ... ok [INFO] [stdout] test mcp::tests::invalid_request_payload_returns_invalid_request_error ... ok [INFO] [stdout] test daemon_loop::tests::execute_actions_removes_verify_cache_on_failure ... ok [INFO] [stdout] test mcp::tests::process_line_with_valid_json ... ok [INFO] [stdout] test mcp::tests::register_tool_adds_to_tool_list ... ok [INFO] [stdout] test mcp::tests::method_not_found_for_unknown_methods ... ok [INFO] [stdout] test lsp::tests::multiple_server_management_stop_all_uses_shutdown_exit ... ok [INFO] [stdout] test lsp::tests::lsp_error_display_impls ... ok [INFO] [stdout] test lsp::tests::split_command_and_args_rejects_empty_command ... ok [INFO] [stdout] test mcp::tests::parse_valid_json_rpc_request ... ok [INFO] [stdout] test mcp_resources::tests::builtin_prompt_returns_messages ... ok [INFO] [stdout] test mcp::tests::tools_call_with_unknown_tool_returns_error ... ok [INFO] [stdout] test mcp::tests::tools_list_returns_all_registered_tools ... ok [INFO] [stdout] test file_watcher::tests::poll_detects_modified_file ... ok [INFO] [stdout] test mcp_resources::tests::get_prompt_runs_handler_with_args ... 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_resources::tests::read_resource_resolves_template_handler ... ok [INFO] [stdout] test mcp_resources::tests::prompt_registry_replaces_existing_prompt_definition ... ok [INFO] [stdout] test mcp_resources::tests::get_prompt_rejects_unknown_prompt ... ok [INFO] [stdout] test mcp_resources::tests::read_resource_rejects_invalid_uri ... ok [INFO] [stdout] test mcp_resources::tests::prompt_role_display_is_lowercase ... ok [INFO] [stdout] test mcp::tests::tools_methods_require_initialization ... ok [INFO] [stdout] test mcp_resources::tests::get_prompt_validates_required_arguments ... ok [INFO] [stdout] test mcp::tests::tools_call_with_valid_tool_name ... ok [INFO] [stdout] test mcp_resources::tests::read_resource_returns_not_found ... ok [INFO] [stdout] test mcp_resources::tests::register_builtin_resources_supports_task_template ... ok [INFO] [stdout] test mcp_resources::tests::read_resource_uses_exact_handler_first ... ok [INFO] [stdout] test mcp_resources::tests::resource_error_display_messages_are_readable ... ok [INFO] [stdout] test mcp_resources::tests::register_resource_adds_resource_definition ... ok [INFO] [stdout] test mcp_resources::tests::register_builtin_prompts_adds_all_expected_prompt_names ... ok [INFO] [stdout] test mcp_resources::tests::register_resource_replaces_existing_uri ... ok [INFO] [stdout] test mcp_resources::tests::register_builtin_resources_adds_expected_uris ... ok [INFO] [stdout] test mcp_resources::tests::register_template_adds_template_definition ... 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::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_wildcard_match ... ok [INFO] [stdout] test mcp_transport::tests::cors_config_origin_exact_match ... ok [INFO] [stdout] test mcp_transport::tests::cors_headers_include_required_fields ... ok [INFO] [stdout] test mcp_transport::tests::handle_post_rpc_invalid_json_returns_parse_error ... ok [INFO] [stdout] test mcp_transport::tests::health_endpoint_response_payload ... ok [INFO] [stdout] test mcp_transport::tests::invalid_http_method_returns_method_not_allowed ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_get ... ok [INFO] [stdout] test mcp_transport::tests::empty_body_handling_for_rpc_route ... 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::json_rpc_over_http_round_trip_tools_list_after_initialize ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_malformed_header ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_short_body_for_content_length ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_post ... ok [INFO] [stdout] test mcp_transport::tests::parse_content_length_reads_value_case_insensitive ... 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::route_request_matches_health_endpoint ... ok [INFO] [stdout] test mcp_transport::tests::route_request_matches_rpc_endpoint ... ok [INFO] [stdout] test mcp_transport::tests::request_size_limit_enforcement ... ok [INFO] [stdout] test mcp_resources::tests::read_resource_wraps_non_read_failed_errors ... ok [INFO] [stdout] test mcp_transport::tests::parse_content_length_defaults_to_zero ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_rejects_missing_terminator ... ok [INFO] [stdout] test mcp_transport::tests::route_request_matches_sse_endpoint ... ok [INFO] [stdout] test mcp_transport::tests::sse_stream_listener_tracking ... ok [INFO] [stdout] test mcp_transport::tests::sse_stream_broadcast_reports_failed_writer_indices ... ok [INFO] [stdout] test mcp_transport::tests::transport_config_default_is_stdio_with_expected_limits ... ok [INFO] [stdout] test mcp_transport::tests::transport_config_serialization_round_trip ... ok [INFO] [stdout] test mcp_transport::tests::transport_error_display_variants ... ok [INFO] [stdout] test metrics::tests::default_config ... ok [INFO] [stdout] test metrics::tests::display_summary_format ... ok [INFO] [stdout] test metrics::tests::display_reliability_summary_renders_rates_and_na ... ok [INFO] [stdout] test metrics::tests::event_count ... ok [INFO] [stdout] test metrics::tests::events_since_filtering ... ok [INFO] [stdout] test mcp_transport::tests::transport_kind_serialization_round_trip ... ok [INFO] [stdout] test metrics::tests::opt_out_via_env_var ... ok [INFO] [stdout] test metrics::tests::record_event ... ok [INFO] [stdout] test metrics::tests::record_respects_opt_out ... ok [INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_computes_expected_kpis ... ok [INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_rejects_invalid_line ... ok [INFO] [stdout] test metrics::tests::summary_aggregation ... ok [INFO] [stdout] test metrics::tests::increment_counter ... ok [INFO] [stdout] test mission_vault::tests::build_mission_report_combines_all ... ok [INFO] [stdout] test mission_vault::tests::coverage_matrix_empty_requirements ... ok [INFO] [stdout] test mission_vault::tests::coverage_matrix_all_covered ... ok [INFO] [stdout] test mission_vault::tests::detect_duplicates_finds_similar ... ok [INFO] [stdout] test mission_vault::tests::gap_detection_identifies_uncovered ... ok [INFO] [stdout] test mission_vault::tests::keyword_overlap_identical ... ok [INFO] [stdout] test mission_vault::tests::keyword_extraction ... ok [INFO] [stdout] test mission_vault::tests::keyword_overlap_partial ... ok [INFO] [stdout] test mission_vault::tests::keyword_overlap_disjoint ... ok [INFO] [stdout] test mission_vault::tests::detect_duplicates_no_dupes ... ok [INFO] [stdout] test mission_vault::tests::normalize_tag_handles_special_chars ... ok [INFO] [stdout] test mission_vault::tests::coverage_matrix_uncovered ... ok [INFO] [stdout] test mission_vault::tests::parse_requirements_empty_content ... ok [INFO] [stdout] test mission_vault::tests::parse_requirements_generates_unique_ids ... ok [INFO] [stdout] test mission_vault::tests::parse_requirements_from_checkboxes ... ok [INFO] [stdout] test mission_vault::tests::priority_detection ... ok [INFO] [stdout] test model_options::tests::model_options_default_is_empty ... ok [INFO] [stdout] test model_options::tests::model_constraints_default_values ... ok [INFO] [stdout] test mission_vault::tests::render_mission_report_includes_sections ... ok [INFO] [stdout] test mission_vault::tests::load_all_requirements_with_files ... ok [INFO] [stdout] test model_options::tests::model_capability_display ... ok [INFO] [stdout] test model_options::tests::model_options_serde_roundtrip ... ok [INFO] [stdout] test mission_vault::tests::report_serializes_to_json ... 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::validate_options_accepts_valid_values ... 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_success_rate ... ok [INFO] [stdout] test model_options::tests::reasoning_effort_serde_uses_lowercase ... ok [INFO] [stdout] test model_options::tests::validate_options_allows_reasoning_effort_when_supported ... ok [INFO] [stdout] test orchestration_metrics::tests::store_records_snapshots ... ok [INFO] [stdout] test orchestration_metrics::tests::agent_metrics_tracks_recovery_rate ... ok [INFO] [stdout] test orchestration_metrics::tests::summary_renders_markdown ... ok [INFO] [stdout] test orchestration_metrics::tests::task_metrics_time_to_merge ... ok [INFO] [stdout] test permissions::tests::add_rule_and_check_uses_latest_rule ... ok [INFO] [stdout] test mission_vault::tests::keyword_overlap_empty_sets ... ok [INFO] [stdout] test orchestration_metrics::tests::task_metrics_tracks_attempts ... ok [INFO] [stdout] test permissions::tests::display_table_contains_expected_headers ... ok [INFO] [stdout] test permissions::tests::effective_rules_merges_default_and_override_sets ... ok [INFO] [stdout] test permissions::tests::default_permission_is_ask ... ok [INFO] [stdout] test model_options::tests::reasoning_effort_display_and_parse_roundtrip ... 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::path_pattern_matching_works ... ok [INFO] [stdout] test permissions::tests::tool_category_unknown_becomes_custom ... ok [INFO] [stdout] test permissions::tests::permissive_policy_allows_everything ... ok [INFO] [stdout] test permissions::tests::wildcard_match_supports_prefix_suffix_and_double_star ... ok [INFO] [stdout] test permissions::tests::tool_category_parses_from_builtin_strings ... ok [INFO] [stdout] test mcp_transport::tests::sse_stream_broadcast_to_multiple_listeners_with_mock_writers ... ok [INFO] [stdout] test metrics::tests::summarize_reliability_jsonl_supports_aggregate_counters ... ok [INFO] [stdout] test mission_vault::tests::load_all_requirements_empty_dir ... ok [INFO] [stdout] test metrics::tests::save_and_load_round_trip ... ok [INFO] [stdout] test daemon_status::tests::display_compact_includes_core_fields ... ok [INFO] [stdout] test permissions::tests::model_overrides_apply_after_global_rules ... ok [INFO] [stdout] test mcp_transport::tests::parse_http_request_valid_options ... ok [INFO] [stdout] test daemon_status::tests::check_health_is_unhealthy_when_no_healthy_models ... ok [INFO] [stdout] test persistence::tests::archive_table_created ... 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::clone_resets_state_and_retries ... ok [INFO] [stdout] test persistence::tests::resolve_absolute_creates_parent_dirs ... 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::fork_session_fails_for_missing_parent ... ok [INFO] [stdout] test persistence::tests::fork_session_creates_child_with_parent_link ... ok [INFO] [stdout] test persistence::tests::finish_open_runs ... ok [INFO] [stdout] test persistence::tests::create_and_get_session_round_trip ... ok [INFO] [stdout] test persistence::tests::delete_task_removes_all_related_records ... ok [INFO] [stdout] test problem_classifier::tests::classify_compile_error ... ok [INFO] [stdout] test problem_classifier::tests::classify_git_conflict ... ok [INFO] [stdout] test persistence::tests::list_tasks_by_state ... ok [INFO] [stdout] test problem_classifier::tests::classify_network_error ... ok [INFO] [stdout] test persistence::tests::list_tasks_ordered_by_updated_at ... ok [INFO] [stdout] test problem_classifier::tests::classify_permission_error ... ok [INFO] [stdout] test problem_classifier::tests::error_class_properties ... ok [INFO] [stdout] test persistence::tests::list_events_for_task_returns_correct_events ... ok [INFO] [stdout] test problem_classifier::tests::classify_test_failure ... ok [INFO] [stdout] test persistence::tests::insert_and_list_open_runs ... ok [INFO] [stdout] test persistence::tests::update_session_persists_changes ... ok [INFO] [stdout] test problem_classifier::tests::detect_repeated_compile_errors ... ok [INFO] [stdout] test prompt_builder::tests::basic_prompt_includes_task_info ... ok [INFO] [stdout] test prompt_builder::tests::all_roles_select_correct_template_file ... ok [INFO] [stdout] test problem_classifier::tests::retry_delays ... ok [INFO] [stdout] test prompt_builder::tests::prompt_builder_includes_task_metadata ... ok [INFO] [stdout] test persistence::tests::set_open_run_estimated_tokens_updates_open_rows ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_context_graph ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_qa_failure_context ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_retry_context ... ok [INFO] [stdout] test persistence::tests::sessions_table_created ... ok [INFO] [stdout] test persistence::tests::total_event_count_returns_correct_count ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_test_spec ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_verify_command ... ok [INFO] [stdout] test prompt_builder::tests::prompt_builder_skips_missing_system_prompt ... ok [INFO] [stdout] test persistence::tests::upsert_and_load_task_priority_round_trips ... ok [INFO] [stdout] test prompt_mode::tests::format_output_json_is_structured_payload ... ok [INFO] [stdout] test prompt_mode::tests::format_output_markdown_wraps_content ... ok [INFO] [stdout] test prompt_mode::tests::format_output_stream_text_splits_tokens ... ok [INFO] [stdout] test persistence::tests::upsert_and_load_task ... ok [INFO] [stdout] test prompt_builder::tests::prompt_builder_includes_system_prompt ... ok [INFO] [stdout] test prompt_builder::tests::prompt_inlines_source_files_from_context_refs ... ok [INFO] [stdout] test prompt_builder::tests::prompt_includes_template_when_present ... ok [INFO] [stdout] test prompt_mode::tests::build_context_reads_files_and_preserves_order ... ok [INFO] [stdout] test prompt_mode::tests::build_context_errors_for_missing_file ... ok [INFO] [stdout] test persistence::tests::list_sessions_orders_by_updated_at_desc ... ok [INFO] [stdout] test prompt_mode::tests::format_output_text_returns_raw_content ... ok [INFO] [stdout] test prompt_mode::tests::output_format_default_is_text ... ok [INFO] [stdout] test prompt_mode::tests::format_response_uses_requested_format ... ok [INFO] [stdout] test prompt_mode::tests::output_format_display_is_stable ... ok [INFO] [stdout] test prompt_mode::tests::prompt_error_display_messages ... ok [INFO] [stdout] test prompt_mode::tests::prompt_structs_serialize_round_trip ... ok [INFO] [stdout] test prompt_mode::tests::resolve_model_falls_back_to_default ... 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_valid_input ... ok [INFO] [stdout] test prompt_mode::tests::validate_request_accepts_registered_session ... ok [INFO] [stdout] test prompt_mode::tests::validate_request_rejects_empty_prompt ... ok [INFO] [stdout] test prompt_mode::tests::validate_request_rejects_unknown_model ... ok [INFO] [stdout] test prompt_mode::tests::validate_request_rejects_unknown_session ... ok [INFO] [stdout] test provider_registry::tests::display_table_formatting ... ok [INFO] [stdout] test provider_registry::tests::estimate_cost_calculation ... ok [INFO] [stdout] test prompt_mode::tests::validate_request_rejects_missing_context_file ... ok [INFO] [stdout] test provider_registry::tests::estimate_cost_unknown_model ... ok [INFO] [stdout] test provider_registry::tests::get_model_returns_correct_info ... ok [INFO] [stdout] test provider_registry::tests::context_window_returns_correct_value ... ok [INFO] [stdout] test provider_registry::tests::get_model_unknown_returns_none ... ok [INFO] [stdout] test provider_registry::tests::get_provider_returns_correct_info ... ok [INFO] [stdout] test provider_registry::tests::list_providers_returns_all ... ok [INFO] [stdout] test provider_registry::tests::models_for_provider_filters_correctly ... ok [INFO] [stdout] test provider_registry::tests::list_models_returns_all ... ok [INFO] [stdout] test provider_registry::tests::models_for_xai_provider_include_expected_variants ... ok [INFO] [stdout] test provider_registry::tests::new_creates_default_registry_with_models ... ok [INFO] [stdout] test provider_registry::tests::openrouter_provider_is_registered_with_models ... ok [INFO] [stdout] test provider_registry::tests::update_from_json_adds_new_models ... ok [INFO] [stdout] test provider_registry::tests::xai_provider_is_registered_with_models ... ok [INFO] [stdout] test provider_registry::tests::save_and_load_roundtrip ... 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::build_qa_prompt_includes_previous_results ... ok [INFO] [stdout] test qa_agent::tests::drain_qa_output_accumulates_across_multiple_calls ... ok [INFO] [stdout] test qa_agent::tests::build_qa_prompt_with_template ... ok [INFO] [stdout] test qa_agent::tests::drain_qa_output_handles_no_receiver ... 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_returns_empty_when_no_lines ... 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::load_baseline_parses_spec ... ok [INFO] [stdout] test qa_agent::tests::parse_qa_output_handles_multiple_suites ... ok [INFO] [stdout] test qa_agent::tests::parse_qa_output_extracts_results ... 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 qa_agent::tests::parse_qa_spec_empty ... 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_idle ... 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_spec_parse_long_test_name_truncated ... ok [INFO] [stdout] test qa_agent::tests::qa_state_initial_status ... ok [INFO] [stdout] test qa_agent::tests::qa_type_display ... ok [INFO] [stdout] test qa_agent::tests::sanitize_branch_name_handles_slashes ... 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::retry_state_from_result_identifies_classes ... ok [INFO] [stdout] test qa_self_heal::tests::transition_green_to_red ... ok [INFO] [stdout] test qa_self_heal::tests::transition_no_previous_red ... ok [INFO] [stdout] test qa_self_heal::tests::transition_red_to_green ... ok [INFO] [stdout] test persistence::tests::open_with_absolute_path_works ... ok [INFO] [stdout] test qa_self_heal::tests::transition_still_green ... ok [INFO] [stdout] test qa_self_heal::tests::transition_still_red ... ok [INFO] [stdout] test qa_spec_gen::tests::check_qa_spec_startup_returns_missing ... ok [INFO] [stdout] test persistence::tests::wal_mode_is_set_on_open ... ok [INFO] [stdout] test persistence::tests::open_with_relative_path_works ... ok [INFO] [stdout] test qa_spec_gen::tests::hash_roundtrip ... ok [INFO] [stdout] test qa_spec_gen::tests::check_qa_spec_startup_returns_up_to_date ... ok [INFO] [stdout] test qa_spec_gen::tests::parse_qa_spec_gen_output_basic ... ok [INFO] [stdout] test qa_self_heal::tests::transition_no_previous_green ... 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_spec_gen::tests::build_qa_spec_gen_prompt_includes_snapshot ... 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::scan_test_infrastructure_includes_cargo_toml ... ok [INFO] [stdout] test qa_spec_gen::tests::should_regenerate_blocks_while_running ... ok [INFO] [stdout] test qa_spec_gen::tests::should_regenerate_respects_cooldown ... ok [INFO] [stdout] test rate_limiter::tests::check_rate_limit_allowed_by_default ... ok [INFO] [stdout] test rate_limiter::tests::burst_handling_allows_multiple_fast_requests ... ok [INFO] [stdout] test rate_limiter::tests::cleanup_expired_removes_stale_buckets ... ok [INFO] [stdout] test rate_limiter::tests::limited_result_reports_positive_retry_after ... ok [INFO] [stdout] test rate_limiter::tests::per_endpoint_limit_changes_bucket_capacity ... ok [INFO] [stdout] test rate_limiter::tests::per_model_limit_changes_refill_rate ... ok [INFO] [stdout] test rate_limiter::tests::limiter_reports_limited_after_burst_exhausted ... ok [INFO] [stdout] test rate_limiter::tests::rate_limit_config_defaults ... ok [INFO] [stdout] test rate_limiter::tests::rate_limit_error_formatting_is_readable ... ok [INFO] [stdout] test rate_limiter::tests::rate_limit_result_formatting_is_readable ... ok [INFO] [stdout] test rate_limiter::tests::record_request_consumes_token ... 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_refill_does_not_overflow_max ... ok [INFO] [stdout] test rate_limiter::tests::token_bucket_try_consume_fails_when_underflow ... ok [INFO] [stdout] test qa_spec_gen::tests::write_qa_spec_files_creates_files ... ok [INFO] [stdout] test retry::tests::all_models_in_cooldown_picks_least_recently_failed ... ok [INFO] [stdout] test retry::tests::cooldown_activates_after_threshold_failures ... ok [INFO] [stdout] test retry::tests::cooldown_expires_and_model_becomes_available ... ok [INFO] [stdout] test retry::tests::falls_back_when_preferred_model_failed ... ok [INFO] [stdout] test rate_limiter::tests::token_bucket_try_consume_succeeds_when_tokens_available ... ok [INFO] [stdout] test retry::tests::healthy_models_are_preferred_over_degraded_ones ... 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 retry::tests::no_retry_when_all_models_failed ... ok [INFO] [stdout] test retry::tests::no_retry_when_just_failed_is_only_enabled_model ... ok [INFO] [stdout] test retry::tests::no_retry_when_max_retries_exhausted ... 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::skips_disabled_models ... ok [INFO] [stdout] test retry::tests::switches_model_when_preferred_just_failed ... ok [INFO] [stdout] test scheduler::tests::dependency_blocks_task ... ok [INFO] [stdout] test scheduler::tests::plan_blocks_when_model_limit_reached ... ok [INFO] [stdout] test scheduler::tests::plan_blocks_when_no_models_available ... ok [INFO] [stdout] test qa_agent::tests::save_and_load_qa_result ... 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_prioritizes_critical_tasks_before_lower_priority ... ok [INFO] [stdout] test scheduler::tests::plan_schedules_preferred_model ... 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 scheduler::tests::dependency_allows_when_resolved ... ok [INFO] [stdout] test search::tests::fuzzy_match_typo_returns_score ... ok [INFO] [stdout] test search::tests::fuzzy_match_exact_returns_high_score ... ok [INFO] [stdout] test search::tests::fuzzy_match_unrelated_returns_none ... ok [INFO] [stdout] test search::tests::highlight_match_wraps_first_match ... 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::search_ranks_exact_title_match_higher_than_label_match ... ok [INFO] [stdout] test search::tests::tokenize_splits_text_into_lowercase_tokens ... ok [INFO] [stdout] test search::tests::search_with_fuzzy_finds_typo ... ok [INFO] [stdout] test service::tests::reconciliation_no_issues_when_clean ... ok [INFO] [stdout] test service::tests::reconciliation_detects_unreconciled_children ... ok [INFO] [stdout] test service::tests::delete_task_removes_it ... 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::reasoning_effort_serialization_round_trip ... ok [INFO] [stdout] test service::tests::reconciliation_report_serializes_to_json ... 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::shell_output_success_false_for_non_zero_exit_code ... 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::detect_shell_maps_fish ... ok [INFO] [stdout] test shell_config::tests::detect_shell_maps_sh ... ok [INFO] [stdout] test shell_config::tests::detect_shell_maps_zsh ... ok [INFO] [stdout] test shell_config::tests::run_command_returns_not_found_for_invalid_shell ... ok [INFO] [stdout] test shell_config::tests::detect_shell_maps_bash ... 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_runner_from_preset_uses_config ... ok [INFO] [stdout] test shell_config::tests::shell_preset_zsh_to_config ... ok [INFO] [stdout] test shell_config::tests::shell_runner_new_stores_config ... ok [INFO] [stdout] test shell_config::tests::validate_shell_returns_false_for_missing_binary ... ok [INFO] [stdout] test shell_config::tests::validate_shell_returns_true_for_existing_absolute_binary ... ok [INFO] [stdout] test shell_config::tests::detect_shell_defaults_to_bash ... ok [INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_escalates_permission_errors ... ok [INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_uses_sisyphus_for_compile_errors ... ok [INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_waits_for_transient_errors ... ok [INFO] [stdout] test sisyphus_recovery::tests::is_recoverable_checks_error_class ... ok [INFO] [stdout] test stack_pipeline::tests::advance_from_terminal_is_idempotent ... ok [INFO] [stdout] test sisyphus_recovery::tests::recovery_loop_escalates_after_max_attempts ... ok [INFO] [stdout] test stack_pipeline::tests::done_and_failed_are_terminal ... ok [INFO] [stdout] test stack_pipeline::tests::full_pipeline_with_parent_in_stack_mode ... 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 qa_spec_gen::tests::qa_spec_is_current_requires_baseline_and_hash ... 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 shell_config::tests::shell_preset_custom_to_config_returns_clone ... 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::self_transition_allowed ... ok [INFO] [stdout] test state_machine::tests::allows_retry_to_chatting ... 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 state_machine::tests::disallows_invalid_transitions ... ok [INFO] [stdout] test supervisor::tests::has_session_returns_false_for_unknown_task ... 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 supervisor::tests::build_prompt_includes_signal_definitions ... ok [INFO] [stdout] test state_machine::tests::transition_rejects_invalid ... ok [INFO] [stdout] test supervisor::tests::build_prompt_includes_task_id_and_title ... ok [INFO] [stdout] test supervisor::tests::poll_empty_supervisor_returns_empty_results ... ok [INFO] [stdout] test service::tests::transition_chatting_to_ready ... ok [INFO] [stdout] test service::tests::create_and_list_tasks ... ok [INFO] [stdout] test supervisor::tests::agent_outcome_fields_are_accessible ... ok [INFO] [stdout] test supervisor::tests::send_input_fails_for_missing_session ... ok [INFO] [stdout] test service::tests::reconciliation_detects_stuck_restacking ... ok [INFO] [stdout] test service::tests::reconciliation_detects_stale_awaiting_merge ... ok [INFO] [stdout] test service::tests::restack_flow ... ok [INFO] [stdout] test service::tests::reconciliation_ignores_merged_children ... ok [INFO] [stdout] test state_machine::tests::transition_updates_task_state ... ok [INFO] [stdout] test service::tests::full_submit_flow ... ok [INFO] [stdout] test supervisor::tests::test_timeout_detection ... ok [INFO] [stdout] test supervisor::tests::stop_nonexistent_task_is_noop ... ok [INFO] [stdout] test supervisor::tests::stop_all_on_empty_supervisor_is_noop ... ok [INFO] [stdout] test supervisor::tests::stop_kills_running_session ... ok [INFO] [stdout] test supervisor::tests::send_input_fails_for_non_interactive_session ... 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 supervisor::tests::test_timeout_produces_failure_outcome ... ok [INFO] [stdout] test task_templates::tests::instantiate_errors_when_required_variable_missing ... ok [INFO] [stdout] test task_templates::tests::parse_template_rejects_unknown_key ... ok [INFO] [stdout] test task_templates::tests::instantiate_replaces_placeholders ... ok [INFO] [stdout] test task_templates::tests::parse_template_parses_all_fields ... ok [INFO] [stdout] test task_templates::tests::validate_template_accepts_valid_template ... ok [INFO] [stdout] test task_templates::tests::validate_template_reports_empty_title ... ok [INFO] [stdout] test task_timeout::tests::active_count_tracks_multiple_entries ... 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_templates::tests::discover_templates_loads_project_and_user_templates ... ok [INFO] [stdout] test task_timeout::tests::check_timeouts_enters_grace_when_deadline_passed ... ok [INFO] [stdout] test task_timeout::tests::check_timeouts_handles_multiple_tasks ... 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::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::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::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 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_test_spec_prompt_includes_task_info ... ok [INFO] [stdout] test test_spec::tests::generate_validation_prompt_includes_criteria ... 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::save_and_load_spec ... 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::validation_empty_output ... ok [INFO] [stdout] test test_spec::tests::validation_partial_failure ... 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::per_state_timeout_is_capped_by_maximum ... ok [INFO] [stdout] test tests::crate_root_reexports_state_machine_helpers ... ok [INFO] [stdout] test task_timeout::tests::check_timeouts_kills_when_grace_expires ... ok [INFO] [stdout] test task_timeout::tests::per_state_timeout_override_is_used ... ok [INFO] [stdout] test types::tests::artifact_record_roundtrip_with_none_metadata ... ok [INFO] [stdout] test types::tests::artifact_record_roundtrip_preserves_metadata ... ok [INFO] [stdout] test types::tests::task_run_record_roundtrip_preserves_nonzero_exit_code ... ok [INFO] [stdout] test types::tests::agent_cost_estimate_roundtrip_preserves_fields ... ok [INFO] [stdout] test upgrade::tests::current_version_returns_something ... ok [INFO] [stdout] test types::tests::task_run_record_roundtrip_with_none_optional_fields ... ok [INFO] [stdout] test types::tests::task_run_record_roundtrip_preserves_optional_fields ... ok [INFO] [stdout] test upgrade::tests::version_is_newer_major_bump ... ok [INFO] [stdout] test upgrade::tests::version_is_newer_older_version_false ... ok [INFO] [stdout] test upgrade::tests::display_version_check_format ... ok [INFO] [stdout] test upgrade::tests::version_is_newer_same_version_false ... ok [INFO] [stdout] test upgrade::tests::version_is_newer_minor_bump ... ok [INFO] [stdout] test wizard::tests::test_all_checks_pass_gives_100 ... 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_critical_failure_flag ... ok [INFO] [stdout] test wizard::tests::test_remediation_present_for_failures ... ok [INFO] [stdout] test wizard::tests::test_empty_checks ... ok [INFO] [stdout] test task_templates::tests::template_registry_discovers_templates ... FAILED [INFO] [stdout] test supervisor::tests::stop_all_kills_multiple_sessions ... ok [INFO] [stdout] test wizard::tests::test_is_ci_ready ... ok [INFO] [stdout] test upgrade::tests::version_is_newer_patch_bump ... ok [INFO] [stdout] test sisyphus_recovery::tests::recovery_state_tracks_attempts ... ok [INFO] [stdout] test supervisor::tests::poll_captures_output_lines ... ok [INFO] [stdout] test supervisor::tests::poll_detects_needs_human_signal ... 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_patch_ready_signal ... ok [INFO] [stdout] test supervisor::tests::poll_handles_multiple_sessions_simultaneously ... ok [INFO] [stdout] test daemon_loop::tests::config_reload_detects_change ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- task_templates::tests::template_registry_discovers_templates stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'task_templates::tests::template_registry_discovers_templates' (1740) panicked at crates/orchd/src/task_templates.rs:851:9: [INFO] [stdout] assertion `left == right` failed [INFO] [stdout] left: 2 [INFO] [stdout] right: 1 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x592be82106da - std[31e582c13f4e914f]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x592be82106da - std[31e582c13f4e914f]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x592be82106da - std[31e582c13f4e914f]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x592be82106da - <::print::DisplayBacktrace as core[fa0eadad68403074]::fmt::Display>::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x592be822946a - ::fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x592be822946a - core[fa0eadad68403074]::fmt::write [INFO] [stdout] 6: 0x592be8215aa2 - std[31e582c13f4e914f]::io::default_write_fmt::> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x592be8215aa2 - as std[31e582c13f4e914f]::io::Write>::write_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x592be81eadcf - ::print [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x592be81eadcf - std[31e582c13f4e914f]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x592be82074f9 - std[31e582c13f4e914f]::panicking::default_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x592be7df858c - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x592be7df858c - test[7530e63dc052480e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x592be82076b2 - core[fa0eadad68403074]::ops::function::Fn<(&'a std[31e582c13f4e914f]::panic::PanicHookInfo<'b>,), Output = ()> + core[fa0eadad68403074]::marker::Sync + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::Fn<(&std[31e582c13f4e914f]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x592be82076b2 - std[31e582c13f4e914f]::panicking::panic_with_hook [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x592be81eae88 - std[31e582c13f4e914f]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x592be81df719 - std[31e582c13f4e914f]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x592be81ebf0d - __rustc[fc8e3a9f23f26cb]::rust_begin_unwind [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x592be8229c2c - core[fa0eadad68403074]::panicking::panic_fmt [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x592be8229ae3 - core[fa0eadad68403074]::panicking::assert_failed_inner [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:439:17 [INFO] [stdout] 20: 0x592be8223b7d - core[fa0eadad68403074]::panicking::assert_failed:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panicking.rs:394:5 [INFO] [stdout] 21: 0x592be7bcd8de - orchd[89743c60c8e16190]::task_templates::tests::template_registry_discovers_templates [INFO] [stdout] at /opt/rustwide/workdir/crates/orchd/src/task_templates.rs:851:9 [INFO] [stdout] 22: 0x592be7b93e97 - orchd[89743c60c8e16190]::task_templates::tests::template_registry_discovers_templates::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/crates/orchd/src/task_templates.rs:844:47 [INFO] [stdout] 23: 0x592be7a57cd6 - >::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x592be7dec66b - core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x592be7dec66b - test[7530e63dc052480e]::__rust_begin_short_backtrace::, fn() -> core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:663:18 [INFO] [stdout] 26: 0x592be7df905b - test[7530e63dc052480e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:74 [INFO] [stdout] 27: 0x592be7df905b - as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x592be7df905b - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x592be7df905b - std[31e582c13f4e914f]::panicking::catch_unwind::, core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x592be7df905b - std[31e582c13f4e914f]::panic::catch_unwind::, core[fa0eadad68403074]::result::Result<(), alloc[49b8922c36ca62de]::string::String>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x592be7df905b - test[7530e63dc052480e]::run_test_in_process [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:686:27 [INFO] [stdout] 32: 0x592be7df905b - test[7530e63dc052480e]::run_test::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:607:43 [INFO] [stdout] 33: 0x592be7df34b4 - test[7530e63dc052480e]::run_test::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/test/src/lib.rs:637:41 [INFO] [stdout] 34: 0x592be7df34b4 - std[31e582c13f4e914f]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x592be7dfbc62 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 36: 0x592be7dfbc62 - ::{closure#1}::{closure#0}> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x592be7dfbc62 - std[31e582c13f4e914f]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x592be7dfbc62 - std[31e582c13f4e914f]::panicking::catch_unwind::<(), core[fa0eadad68403074]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x592be7dfbc62 - std[31e582c13f4e914f]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x592be7dfbc62 - std[31e582c13f4e914f]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 41: 0x592be7dfbc62 - ::{closure#1} as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x592be820f5bf - + core[fa0eadad68403074]::marker::Send> as core[fa0eadad68403074]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 43: 0x592be820f5bf - ::new::thread_start [INFO] [stdout] at /rustc/562dee4820c458d823175268e41601d4c060588a/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7b10e4403aa4 - [INFO] [stdout] 45: 0x7b10e4490a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] task_templates::tests::template_registry_discovers_templates [INFO] [stdout] [INFO] [stdout] test result: FAILED. 890 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.18s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `-p orchd --lib` [INFO] running `Command { std: "docker" "inspect" "17bf603f3df199e7aa271cb765c3d1118b57422c03193fa494c0c5a31c98b9f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "17bf603f3df199e7aa271cb765c3d1118b57422c03193fa494c0c5a31c98b9f1", kill_on_drop: false }` [INFO] [stdout] 17bf603f3df199e7aa271cb765c3d1118b57422c03193fa494c0c5a31c98b9f1