[INFO] cloning repository https://github.com/chquandogong/qmonster [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/chquandogong/qmonster" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchquandogong%2Fqmonster", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchquandogong%2Fqmonster'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] b54b6ef5931770b1fc19873a4068d0d60b521bb5 [INFO] testing chquandogong/qmonster against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fchquandogong%2Fqmonster" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/chquandogong/qmonster [INFO] finished tweaking git repo https://github.com/chquandogong/qmonster [INFO] tweaked toml for git repo https://github.com/chquandogong/qmonster written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/chquandogong/qmonster on toolchain 33835004928d3bf65db4d4712e1330766263b0bd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/chquandogong/qmonster 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" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 0e1edf10a2f8393a6ba8516da8aaaeb90bdc752ffa5a61422d1238043544ed24 [INFO] running `Command { std: "docker" "start" "-a" "0e1edf10a2f8393a6ba8516da8aaaeb90bdc752ffa5a61422d1238043544ed24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0e1edf10a2f8393a6ba8516da8aaaeb90bdc752ffa5a61422d1238043544ed24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0e1edf10a2f8393a6ba8516da8aaaeb90bdc752ffa5a61422d1238043544ed24", kill_on_drop: false }` [INFO] [stdout] 0e1edf10a2f8393a6ba8516da8aaaeb90bdc752ffa5a61422d1238043544ed24 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5a9398ead76e5f2167cfe38ec2537ccb6432122a6c5ed393abb6ef8908d6a144 [INFO] running `Command { std: "docker" "start" "-a" "5a9398ead76e5f2167cfe38ec2537ccb6432122a6c5ed393abb6ef8908d6a144", kill_on_drop: false }` [INFO] [stderr] Compiling winnow v1.0.2 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling hashbrown v0.17.1 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling toml_datetime v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling quote v1.0.45 [INFO] [stderr] Compiling futures-lite v2.6.1 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling endi v1.1.1 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling cc v1.2.62 [INFO] [stderr] Compiling piper v0.2.5 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling instability v0.3.12 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling uuid v1.23.1 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling ordered-stream v0.2.0 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling toml_writer v1.1.1+spec-1.1.0 [INFO] [stderr] Compiling compact_str v0.8.1 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling hashlink v0.11.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling async-executor v1.14.0 [INFO] [stderr] Compiling unicode-truncate v1.1.0 [INFO] [stderr] Compiling async-channel v2.5.0 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling async-broadcast v0.7.2 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling blocking v1.6.2 [INFO] [stderr] Compiling serde_spanned v1.1.1 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling qmonster v2.3.6 (/opt/rustwide/workdir) [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling directories v5.0.1 [INFO] [stderr] Compiling toml_parser v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling libsqlite3-sys v0.37.0 [INFO] [stderr] Compiling toml_edit v0.25.11+spec-1.1.0 [INFO] [stderr] Compiling toml v1.1.2+spec-1.1.0 [INFO] [stderr] Compiling proc-macro-crate v3.5.0 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling async-recursion v1.1.1 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling async-signal v0.2.14 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling async-process v2.5.0 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling strum v0.26.3 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ratatui v0.28.1 [INFO] [stderr] Compiling enumflags2 v0.7.12 [INFO] [stderr] Compiling zvariant_utils v3.3.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling zvariant_derive v5.11.0 [INFO] [stderr] Compiling zvariant v5.11.0 [INFO] [stderr] Compiling rusqlite v0.39.0 [INFO] [stderr] Compiling zbus_names v4.3.2 [INFO] [stderr] Compiling zbus_macros v5.15.0 [INFO] [stderr] Compiling zbus v5.15.0 [INFO] [stderr] Compiling notify-rust v4.17.0 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s [INFO] running `Command { std: "docker" "inspect" "5a9398ead76e5f2167cfe38ec2537ccb6432122a6c5ed393abb6ef8908d6a144", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5a9398ead76e5f2167cfe38ec2537ccb6432122a6c5ed393abb6ef8908d6a144", kill_on_drop: false }` [INFO] [stdout] 5a9398ead76e5f2167cfe38ec2537ccb6432122a6c5ed393abb6ef8908d6a144 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9a021557c497bad3ea2e292151ce7818ce9cee6997cb723cb18301f93b694849 [INFO] running `Command { std: "docker" "start" "-a" "9a021557c497bad3ea2e292151ce7818ce9cee6997cb723cb18301f93b694849", kill_on_drop: false }` [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling filetime v0.2.29 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling polling v3.11.0 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Compiling async-signal v0.2.14 [INFO] [stderr] Compiling async-process v2.5.0 [INFO] [stderr] Compiling zbus v5.15.0 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling notify-rust v4.17.0 [INFO] [stderr] Compiling qmonster v2.3.6 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 02s [INFO] running `Command { std: "docker" "inspect" "9a021557c497bad3ea2e292151ce7818ce9cee6997cb723cb18301f93b694849", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a021557c497bad3ea2e292151ce7818ce9cee6997cb723cb18301f93b694849", kill_on_drop: false }` [INFO] [stdout] 9a021557c497bad3ea2e292151ce7818ce9cee6997cb723cb18301f93b694849 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b9989f9ddf314f32091c8be55ac07ad5f0fc096b44f10c67862528decb410573 [INFO] running `Command { std: "docker" "start" "-a" "b9989f9ddf314f32091c8be55ac07ad5f0fc096b44f10c67862528decb410573", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.39s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/qmonster-f9b9583f7ff0bd5b) [INFO] [stdout] [INFO] [stdout] running 1564 tests [INFO] [stdout] test adapters::agent_memory::tests::encode_claude_project_dir_replaces_slashes_with_dashes ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_inherits_common_signals ... ok [INFO] [stdout] test adapters::claude::tests::claude_active_output_no_cursor_no_history_yields_none ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_extracts_output_tokens_from_working_line ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_does_not_populate_context_pressure_from_prose_v1_13_1 ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_leaves_cost_usd_none_regardless_of_settings ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_prefers_subagent_done_line_over_working_line ... ok [INFO] [stdout] test adapters::agent_memory::tests::claude_sums_project_root_and_home_md_files ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_returns_none_token_count_when_no_marker ... ok [INFO] [stdout] test adapters::claude::tests::claude_context_command_populates_context_pressure ... ok [INFO] [stdout] test adapters::agent_memory::tests::missing_files_returns_none ... ok [INFO] [stdout] test adapters::claude::tests::claude_context_left_is_converted_to_used_pressure ... ok [INFO] [stdout] test adapters::agent_memory::tests::claude_includes_project_memory_directory_md_files ... ok [INFO] [stdout] test adapters::claude::tests::claude_idle_cursor_at_last_line_yields_work_complete ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_never_populates_model_name_from_unstructured_tail ... ok [INFO] [stdout] test adapters::agent_memory::tests::gemini_sums_project_root_dotdir_and_home ... ok [INFO] [stdout] test adapters::claude::tests::claude_context_usage_block_populates_context_pressure ... ok [INFO] [stdout] test adapters::claude::tests::claude_permission_marker_beats_cursor_in_priority ... ok [INFO] [stdout] test adapters::claude::tests::claude_limit_reached_retry_after_beats_idle_cursor ... ok [INFO] [stdout] test adapters::agent_memory::tests::parse_for_skips_agent_memory_when_current_path_is_empty ... ok [INFO] [stdout] test adapters::agent_memory::tests::unknown_provider_returns_none ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_populates_runtime_facts_from_settings ... ok [INFO] [stdout] test adapters::claude::tests::claude_adapter_populates_model_name_when_settings_has_model ... ok [INFO] [stdout] test adapters::agent_memory::tests::codex_sums_project_agents_and_home_pair ... ok [INFO] [stdout] test adapters::agent_memory::tests::qmonster_provider_returns_none ... ok [INFO] [stdout] test adapters::claude::tests::claude_current_session_100_used_yields_limit_hit ... ok [INFO] [stdout] test adapters::claude::tests::claude_current_week_100_used_yields_limit_hit ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_with_cache_pct_populates_cache_hit_ratio ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_all_em_dashes_keeps_model_and_path ... ok [INFO] [stdout] test adapters::claude::tests::claude_prompt_echo_with_request_text_is_not_idle_cursor ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_em_dash_5h_does_not_steal_7d_value ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_em_dash_7d_keeps_other_fields ... ok [INFO] [stdout] test adapters::agent_memory::tests::parse_for_fills_agent_memory_bytes_for_claude_when_files_exist ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_cache_pct_75_renders_as_0_75 ... ok [INFO] [stdout] test adapters::claude::tests::claude_prose_with_runtime_labels_does_not_emit_provider_official_facts ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_populates_model_context_quotas_effort_path_and_permission ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_em_dash_ctx_resets_to_zero_after_clear ... ok [INFO] [stdout] test adapters::claude::tests::claude_statusline_without_cache_pct_keeps_cache_hit_ratio_none ... ok [INFO] [stdout] test adapters::claude::tests::claude_stillness_fallback_yields_stale_when_history_full ... ok [INFO] [stdout] test adapters::claude::tests::claude_usage_limit_banner_beats_idle_cursor ... ok [INFO] [stdout] test adapters::claude::tests::claude_tail_runtime_facts_include_permissions_tools_skills_and_plugins ... ok [INFO] [stdout] test adapters::claude::tests::claude_usage_limit_prose_without_recovery_hint_does_not_fire_limit_hit ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::cache_hit_ratio_from_raw_counts ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_matches_by_cwd ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::cache_hit_ratio_returns_none_when_total_zero ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_returns_none_when_dir_missing ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_returns_none_when_current_path_empty ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_parses_full_real_world_shape ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_picks_most_recent_when_multiple_match ... ok [INFO] [stdout] test adapters::codex::tests::codex_5h_limit_0_left_yields_limit_hit ... ok [INFO] [stdout] test adapters::codex::tests::codex_5h_limit_100_left_does_not_false_fire_limit_hit ... ok [INFO] [stdout] test adapters::agent_memory::tests::per_file_size_cap_clamps_pathological_files ... ok [INFO] [stdout] test adapters::claude_sidefile::tests::read_sidefile_skips_malformed_json ... ok [INFO] [stdout] test adapters::codex::tests::codex_5h_limit_100_used_yields_limit_hit ... ok [INFO] [stdout] test adapters::codex::tests::codex_active_status_line_no_cursor_yields_none ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_branch_extraction_skips_project_name ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_detects_permission_prompt ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_extracts_four_metrics_from_status_line_with_pricing ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_extracts_reasoning_effort_from_model_with_reasoning_status_line ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_extracts_trailing_model_with_reasoning_status_item ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_falls_back_to_common_when_status_line_absent ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_extracts_worktree_and_branch_from_status_line ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_leaves_cost_none_when_pricing_table_empty ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_newest_line_authoritative_even_with_unknown_model ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_prefers_fresh_status_line_effort_over_stale_status_box ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_populates_model_name_from_welcome_box_lowercase_label ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_reasoning_effort_does_not_match_arbitrary_prose ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_reasoning_effort_falls_through_when_pattern_absent ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_reasoning_effort_reads_xhigh_from_status_box ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_reasoning_effort_rejects_unknown_values ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_reasoning_effort_uses_newest_status_box_when_multiple_present ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_status_box_without_status_bar_populates_model_and_effort ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_status_line_without_matching_worktree_token_leaves_worktree_none ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_surfaces_clear_status_line_without_total_tokens ... ok [INFO] [stdout] test adapters::codex::tests::codex_idle_cursor_at_last_line_yields_work_complete ... ok [INFO] [stdout] test adapters::codex::tests::codex_idle_cursor_with_bottom_status_line_trailing_yields_work_complete ... ok [INFO] [stdout] test adapters::codex::tests::codex_adapter_welcome_box_does_not_match_prose_with_lowercase_model_word ... ok [INFO] [stdout] test adapters::codex::tests::codex_prompt_echo_with_request_text_above_status_line_is_not_idle_cursor ... ok [INFO] [stdout] test adapters::codex::tests::codex_prose_with_runtime_label_does_not_emit_provider_official_facts ... ok [INFO] [stdout] test adapters::codex::tests::codex_token_usage_line_overrides_zero_bottom_status_counts ... ok [INFO] [stdout] test adapters::codex::tests::codex_yolo_permissions_also_populates_auto_mode ... ok [INFO] [stdout] test adapters::codex::tests::codex_status_box_populates_runtime_facts_without_bottom_status_line ... ok [INFO] [stdout] test adapters::codex_app_server::tests::initialize_returns_err_when_response_carries_error_field ... ok [INFO] [stdout] test adapters::codex_app_server::tests::parse_window_returns_none_when_required_field_missing ... ok [INFO] [stdout] test adapters::codex_app_server::tests::parse_window_clamps_used_percent_above_100 ... ok [INFO] [stdout] test adapters::codex::tests::codex_welcome_panel_cached_token_is_parsed_into_cached_input_tokens ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_rate_limits_handles_missing_secondary_field ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_rate_limits_parses_primary_and_secondary ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_rate_limits_returns_err_on_malformed_json ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_rate_limits_returns_err_when_response_has_error ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_response_errors_on_id_mismatch ... ok [INFO] [stdout] test adapters::common::tests::active_files_dedups_repeated_path ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_response_errors_on_response_missing_id ... ok [INFO] [stdout] test adapters::common::tests::active_files_caps_at_eight_entries ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_response_skips_jsonrpc_notification_between_request_and_response ... ok [INFO] [stdout] test adapters::common::tests::active_files_default_is_empty_vec ... ok [INFO] [stdout] test adapters::codex_app_server::tests::read_response_skips_multiple_consecutive_notifications ... ok [INFO] [stdout] test adapters::common::tests::active_files_extracts_quoted_edit_path ... ok [INFO] [stdout] test adapters::common::tests::active_files_extracts_write_and_multiedit_paths ... ok [INFO] [stdout] test adapters::common::tests::active_files_rejects_flag_like_args ... ok [INFO] [stdout] test adapters::common::tests::active_files_handles_unquoted_short_form ... ok [INFO] [stdout] test adapters::common::tests::active_files_skips_empty_parens ... ok [INFO] [stdout] test adapters::common::tests::active_files_skips_non_path_args ... ok [INFO] [stdout] test adapters::codex_app_server::tests::spawn_writes_initialize_then_returns_user_agent ... ok [INFO] [stdout] test adapters::common::tests::classify_error_hint_returns_label_for_each_pattern_class ... ok [INFO] [stdout] test adapters::common::tests::common_does_not_populate_context_pressure_on_prose ... ok [INFO] [stdout] test adapters::common::tests::context_pressure_test_marker_matches_only_explicit_phrase ... ok [INFO] [stdout] test adapters::common::tests::error_hint_on_traceback ... ok [INFO] [stdout] test adapters::common::tests::log_storm_triggers_on_many_log_like_lines ... ok [INFO] [stdout] test adapters::common::tests::no_markers_no_history_yields_idle_state_none ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_empty_helper_constructs_default_capacity ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_is_still_returns_false_when_changing ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_is_still_returns_false_when_history_too_short ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_is_still_returns_true_when_last_n_identical ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_normalizes_trailing_whitespace ... ok [INFO] [stdout] test adapters::common::tests::pane_tail_history_pushes_and_caps_at_capacity ... ok [INFO] [stdout] test adapters::common::tests::parse_count_with_suffix_handles_k_suffix ... ok [INFO] [stdout] test adapters::common::tests::parse_count_with_suffix_handles_m_suffix ... ok [INFO] [stdout] test adapters::common::tests::parse_count_with_suffix_handles_plain_integer ... ok [INFO] [stdout] test adapters::common::tests::parse_common_signals_keeps_error_hint_bool_and_kind_in_lockstep ... ok [INFO] [stdout] test adapters::common::tests::parse_count_with_suffix_returns_none_for_garbage ... ok [INFO] [stdout] test adapters::common::tests::permission_marker_populates_idle_state_permission_wait ... ok [INFO] [stdout] test adapters::common::tests::permission_prompt_on_approval_word ... ok [INFO] [stdout] test adapters::common::tests::subagent_hint_does_not_fire_on_other_claude_tool_calls ... ok [INFO] [stdout] test adapters::common::tests::subagent_hint_does_not_fire_on_prose_task_words ... ok [INFO] [stdout] test adapters::common::tests::subagent_hint_does_not_fire_on_source_code_task_identifier ... ok [INFO] [stdout] test adapters::common::tests::subagent_hint_fires_on_claude_task_tool_call ... ok [INFO] [stdout] test adapters::common::tests::subagent_hint_on_spawning_language ... ok [INFO] [stdout] test adapters::common::tests::verbose_marker_triggers_verbose_answer ... ok [INFO] [stdout] test adapters::common::tests::waiting_for_input_on_prompt_text ... ok [INFO] [stdout] test adapters::common::tests::waiting_marker_populates_idle_state_input_wait ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_active_output_yields_none ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_inherits_subagent_hint ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_extracts_memory_from_real_status_table ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_leaves_memory_none_when_status_table_absent ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_parse_emits_model_reset_runtime_facts_from_model_screen_tail ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_computes_cost_when_pricing_table_has_model_entry ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_oauth_path_keeps_cached_input_tokens_none ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_parse_emits_model_reset_from_actual_usage_rows ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_changing_tail_with_live_prompt_stays_active ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_parse_populates_input_output_from_stats_model_tail ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_context_100_used_does_not_trigger_quota_limit_hit ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_old_placeholder_in_scrollback_with_following_output_is_not_idle_cursor ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_parse_emits_session_id_runtime_fact_from_stats_session_tail ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_adapter_skips_cost_when_pricing_table_lacks_model_entry ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_quota_100_used_without_anchor_columns_does_not_fire_limit_hit ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_context_pressure_reads_context_not_quota_column ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_quota_pressure_absent_when_status_table_does_not_carry_it ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_quota_100_used_with_full_status_columns_yields_limit_hit ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_status_table_blank_column_does_not_misalign_official_facts ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_thinking_marker_suppresses_stale_idle_fallback ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_status_table_populates_quota_pressure_from_quota_column ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_yolo_hint_populates_runtime_auto_mode ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_type_your_message_placeholder_yields_work_complete ... ok [INFO] [stdout] test adapters::gemini::tests::gemini_status_table_populates_context_pressure_from_context_column ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_extracts_actual_model_usage_resets_rows ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_extracts_reset_rows_when_model_label_omits_gemini_word ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_extracts_reset_rows_with_model_context ... ok [INFO] [stdout] test adapters::gemini::tests::parse_memory_mb_accepts_gemini_status_table_format ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_ignores_reset_prose_without_model_or_time ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_rejects_family_word_embedded_in_chat_prose ... ok [INFO] [stdout] test adapters::gemini::tests::model_screen_filters_resets_to_current_model_family ... ok [INFO] [stdout] test adapters::gemini::tests::parse_memory_mb_rejects_unitless_or_garbage_values ... ok [INFO] [stdout] test adapters::gemini::tests::stats_model_extracts_input_output_with_cache_reads ... ok [INFO] [stdout] test adapters::gemini::tests::stats_model_returns_none_when_table_absent ... ok [INFO] [stdout] test adapters::gemini::tests::stats_model_extracts_input_output_when_cache_reads_absent ... ok [INFO] [stdout] test adapters::gemini::tests::stats_model_extracts_actual_arrow_prefixed_rows ... ok [INFO] [stdout] test adapters::gemini::tests::stats_session_extracts_session_id_and_tool_calls ... ok [INFO] [stdout] test adapters::gemini::tests::stats_session_returns_default_when_panel_absent ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_handles_argv_with_null_separators ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_returns_node_descendant_argv ... ok [INFO] [stdout] test adapters::process_memory::tests::cli_process_descriptor_includes_pid_comm_argv_and_exe ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_keeps_shallowest_cli_when_cli_spawns_cli_tool ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_returns_none_when_pane_pid_missing ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_skips_pane_shell_itself ... ok [INFO] [stdout] test adapters::process_memory::tests::missing_pane_pid_returns_none ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_resolves_qmonster_pane ... ok [INFO] [stdout] test adapters::process_memory::tests::cli_comm_wins_over_bigger_unknown_comm ... ok [INFO] [stdout] test adapters::process_memory::tests::corrupted_status_file_returns_none_not_panic ... ok [INFO] [stdout] test adapters::process_memory::tests::parser_context_carries_pane_pid_field ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_prefers_known_cli_comm_over_unknown ... ok [INFO] [stdout] test adapters::process_memory::tests::parse_for_fills_process_memory_mb_for_claude_when_adapter_left_it_none ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_returns_none_for_empty_cmdline_file ... ok [INFO] [stdout] test adapters::process_memory::tests::parse_for_does_not_overwrite_gemini_provider_official_memory ... ok [INFO] [stdout] test adapters::qmonster::tests::qmonster_adapter_returns_empty_signals ... ok [INFO] [stdout] test adapters::qmonster::tests::qmonster_adapter_never_emits_idle_state_even_with_markers ... ok [INFO] [stdout] test adapters::process_memory::tests::cmdline_upgrades_non_cli_wrapper_to_deeper_cli ... ok [INFO] [stdout] test app::action_explainer::tests::build_accept_view_includes_observe_only_warning ... ok [INFO] [stdout] test app::action_explainer::tests::build_copy_view_payload_text_equals_command ... ok [INFO] [stdout] test app::action_explainer::tests::confirm_validates_proposal_still_present ... ok [INFO] [stdout] test app::action_explainer::tests::close_clears_state ... ok [INFO] [stdout] test adapters::process_memory::tests::shell_only_pane_returns_shell_rss ... ok [INFO] [stdout] test adapters::sidefile_integration_tests::sidefile_skipped_for_conflicting_claude_identity ... ok [INFO] [stdout] test adapters::process_memory::tests::highest_rss_cli_descendant_wins_over_shell ... ok [INFO] [stdout] test app::action_explainer::tests::copy_pending_action_snapshots_command_at_open_time ... ok [INFO] [stdout] test app::action_explainer::tests::first_time_seen_tracking_is_per_kind ... ok [INFO] [stdout] test app::action_explainer::tests::left_click_on_close_button_closes_modal ... ok [INFO] [stdout] test app::action_explainer::tests::left_click_outside_close_button_swallowed_but_modal_stays_open ... ok [INFO] [stdout] test app::action_explainer::tests::open_sets_pending_and_view ... ok [INFO] [stdout] test app::action_explainer::tests::pending_action_snapshots_target_identity ... ok [INFO] [stdout] test adapters::sidefile_integration_tests::sidefile_skipped_when_descendant_process_is_not_claude ... ok [INFO] [stdout] test app::action_explainer::tests::scroll_events_dont_close_modal ... ok [INFO] [stdout] test adapters::sidefile_integration_tests::sidefile_skipped_when_current_path_does_not_match_any_cwd ... ok [INFO] [stdout] test app::action_explainer::tests::should_open_explainer_predicate_covers_all_modes ... ok [INFO] [stdout] test app::anomaly_events_ring::tests::ring_fills_to_exact_capacity_without_eviction ... ok [INFO] [stdout] test app::anomaly_events_ring::tests::ring_push_at_capacity_drops_oldest ... ok [INFO] [stdout] test app::anomaly_events_ring::tests::ring_push_below_capacity_grows_len ... ok [INFO] [stdout] test app::anomaly_events_ring::tests::ring_starts_empty ... ok [INFO] [stdout] test app::anomaly_overlay::tests::anomaly_filter_matches_per_variant ... ok [INFO] [stdout] test app::anomaly_overlay::tests::down_and_j_scroll_within_bounds ... ok [INFO] [stdout] test app::anomaly_overlay::tests::bracket_keys_resize_anomaly_overlay ... ok [INFO] [stdout] test app::anomaly_events_ring::tests::ring_iter_yields_insertion_order_oldest_first ... ok [INFO] [stdout] test app::anomaly_overlay::tests::e_toggles_anomaly_evidence_only_when_open ... ok [INFO] [stdout] test app::anomaly_overlay::tests::esc_closes_when_open_no_op_when_closed ... ok [INFO] [stdout] test adapters::sidefile_integration_tests::sidefile_skipped_for_non_claude_provider ... ok [INFO] [stdout] test app::anomaly_overlay::tests::f_cycles_anomaly_row_filter_and_resets_scroll ... ok [INFO] [stdout] test app::anomaly_overlay::tests::f_does_not_cycle_filter_when_overlay_is_closed ... ok [INFO] [stdout] test app::anomaly_overlay::tests::keys_ignored_when_closed ... ok [INFO] [stdout] test adapters::sidefile_integration_tests::sidefile_enriches_claude_pane_with_raw_token_counts_cost_and_resets_at ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_no_op_when_closed ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_moved_clears_drag_anchor_before_later_drag ... ok [INFO] [stdout] test app::anomaly_overlay::tests::close_reopen_preserves_geometry_but_clears_drag ... ok [INFO] [stdout] test app::anomaly_overlay::tests::history_view_scroll_uses_history_cache_len_not_ring_len ... ok [INFO] [stdout] test app::anomaly_overlay::tests::n_toggles_open_close ... ok [INFO] [stdout] test app::anomaly_overlay::tests::q_closes_when_open ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_click_inside_viewport_is_consumed ... ok [INFO] [stdout] test app::anomaly_overlay::tests::up_and_k_scroll_saturate_at_zero ... ok [INFO] [stdout] test app::auto_snapshot::tests::action_constants_match_reset_rule_output ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_left_inside_moved_body_keeps_overlay_open ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_left_outside_overlay_is_swallowed_without_closing ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_click_on_close_button_closes ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_left_on_close_button_closes_overlay_after_move ... ok [INFO] [stdout] test app::auto_snapshot::tests::auto_snapshot_failure_does_not_dedup ... ok [INFO] [stdout] test app::auto_snapshot::tests::auto_snapshot_5h_and_weekly_independent ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_scroll_outside_body_clears_drag_anchor_without_scrolling ... ok [INFO] [stdout] test app::auto_snapshot::tests::auto_snapshot_fires_once_per_window ... ok [INFO] [stdout] test app::auto_snapshot::tests::auto_snapshot_no_op_when_gate_off ... ok [INFO] [stdout] test app::auto_snapshot::tests::dedup_5h_and_weekly_independent ... ok [INFO] [stdout] test app::auto_snapshot::tests::auto_snapshot_new_window_resets_dedup ... ok [INFO] [stdout] test app::auto_snapshot::tests::dedup_default_has_no_window_ids ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_wheel_up_scrolls ... ok [INFO] [stdout] test app::anomaly_overlay::tests::title_drag_moves_anomaly_overlay_and_reset_clears_offset ... ok [INFO] [stdout] test app::auto_snapshot::tests::dedup_set_and_matches_round_trip ... ok [INFO] [stdout] test app::auto_snapshot::tests::extract_kind_returns_5h_for_5h_action ... ok [INFO] [stdout] test app::auto_snapshot::tests::extract_kind_returns_none_for_arbitrary_text ... ok [INFO] [stdout] test app::auto_snapshot::tests::extract_kind_returns_none_for_unrelated_action ... ok [INFO] [stdout] test app::auto_snapshot::tests::extract_kind_returns_weekly_for_weekly_action ... ok [INFO] [stdout] test app::auto_snapshot::tests::floor_to_minute_drops_seconds ... ok [INFO] [stdout] test app::bootstrap::tests::auto_snapshot_dedup_type_is_accessible ... ok [INFO] [stdout] test app::bootstrap::tests::context_new_initializes_empty_anomaly_state ... ok [INFO] [stdout] test app::cli_version::tests::claude_anchor_without_version_token_yields_none ... ok [INFO] [stdout] test app::cli_version::tests::claude_banner_surface_extracts_cli_version ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_wheel_down_scrolls ... ok [INFO] [stdout] test app::cli_version::tests::claude_model_mention_does_not_leak_into_cli_version ... ok [INFO] [stdout] test app::cli_version::tests::codex_status_surface_extracts_cli_version ... ok [INFO] [stdout] test app::cli_version::tests::gemini_welcome_surface_extracts_cli_version ... ok [INFO] [stdout] test app::clipboard_actions::tests::copy_selected_alert_command_copies_run_command ... ok [INFO] [stdout] test app::clipboard_actions::tests::copy_selected_alert_command_reports_clipboard_failure ... ok [INFO] [stdout] test app::cli_version::tests::native_cli_probe_uses_exact_proc_exe ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_click_outside_viewport_is_swallowed_without_closing ... ok [INFO] [stdout] test app::config::tests::anomaly_config_loads_from_toml_with_partial_overrides ... ok [INFO] [stdout] test app::config::tests::anomaly_config_default_retention_is_30_days ... ok [INFO] [stdout] test app::config::tests::anomaly_config_missing_section_keeps_default_enabled ... ok [INFO] [stdout] test app::anomaly_overlay::tests::mouse_scroll_inside_body_clears_drag_anchor_before_scrolling ... ok [INFO] [stdout] test app::clipboard_actions::tests::copy_selected_alert_command_reports_missing_command ... ok [INFO] [stdout] test app::config::tests::anomaly_config_enabled_by_default ... ok [INFO] [stdout] test app::config::tests::anomaly_config_omitting_promote_section_uses_defaults ... ok [INFO] [stdout] test app::cli_version::tests::node_cli_probe_uses_exact_interpreter_and_script ... ok [INFO] [stdout] test app::config::tests::anomaly_config_explicit_disable_is_honoured ... ok [INFO] [stdout] test app::config::tests::anomaly_config_includes_promote_default ... ok [INFO] [stdout] test app::config::tests::anomaly_config_omitting_retention_uses_default ... ok [INFO] [stdout] test app::config::tests::anomaly_config_v2_defaults ... ok [INFO] [stdout] test app::config::tests::anomaly_config_retention_days_round_trips_via_toml ... ok [INFO] [stdout] test app::config::tests::anomaly_config_v2_loads_from_toml ... ok [INFO] [stdout] test app::config::tests::anomaly_promote_config_defaults_match_spec ... ok [INFO] [stdout] test app::config::tests::cache_config_loads_toml_and_defaults_missing_values ... ok [INFO] [stdout] test app::config::tests::anomaly_config_v2_missing_section_keeps_defaults ... ok [INFO] [stdout] test app::config::tests::can_set_allow_auto_prompt_send_to_false_even_if_already_false ... ok [INFO] [stdout] test app::config::tests::cannot_flip_allow_auto_prompt_send_to_true ... ok [INFO] [stdout] test app::config::tests::cost_config_defaults_to_200_usd_budget ... ok [INFO] [stdout] test app::config::tests::cost_config_zero_budget_disables_budget_alerts ... ok [INFO] [stdout] test app::config::tests::defaults_are_safe ... ok [INFO] [stdout] test app::config::tests::env_can_move_actions_mode_toward_safer ... ok [INFO] [stdout] test app::config::tests::env_cannot_move_actions_mode_toward_permissive ... ok [INFO] [stdout] test app::config::tests::idle_config_default_stillness_polls_is_4 ... ok [INFO] [stdout] test app::config::tests::idle_config_loads_explicit_value_from_toml ... ok [INFO] [stdout] test app::config::tests::insights_config_defaults_match_phase8_v2_spec ... ok [INFO] [stdout] test app::config::tests::insights_config_loads_from_toml_with_partial_overrides ... ok [INFO] [stdout] test app::config::tests::logging_sensitivity_moves_freely_both_ways ... ok [INFO] [stdout] test app::config::tests::provider_setup_config_defaults_to_sidefile_on_app_server_off ... ok [INFO] [stdout] test app::config::tests::provider_setup_config_loads_overrides_from_toml ... ok [INFO] [stdout] test app::config::tests::load_with_local_override_uses_sibling_qmonster_local_toml_when_present ... ok [INFO] [stdout] test app::config::tests::quota_config_loads_split_claude_and_codex_windows ... ok [INFO] [stdout] test app::config::tests::refresh_policy_cannot_be_relaxed ... ok [INFO] [stdout] test app::config::tests::quota_config_legacy_provider_override_feeds_both_windows ... ok [INFO] [stdout] test app::config::tests::reset_config_auto_snapshot_defaults_false ... ok [INFO] [stdout] test app::config::tests::reset_config_auto_snapshot_loads_from_toml ... ok [INFO] [stdout] test app::config::tests::reset_config_defaults_match_v1_34_0_constants_exactly ... ok [INFO] [stdout] test app::config::tests::reset_config_missing_section_keeps_auto_snapshot_false ... ok [INFO] [stdout] test app::config::tests::provider_setup_config_partial_toml_keeps_other_default ... ok [INFO] [stdout] test app::config::tests::layered_config_merges_local_override_after_base ... ok [INFO] [stdout] test app::config::tests::reset_config_partial_section_keeps_other_defaults ... ok [INFO] [stdout] test app::config::tests::reset_config_loads_toml_and_keeps_other_defaults ... ok [INFO] [stdout] test app::config::tests::tmux_source_mode_as_str_matches_config_spelling ... ok [INFO] [stdout] test app::config::tests::security_posture_advisories_load_from_toml ... ok [INFO] [stdout] test app::config::tests::tmux_source_mode_loads_auto_from_toml ... ok [INFO] [stdout] test app::config::tests::tmux_source_mode_loads_control_mode_from_toml ... ok [INFO] [stdout] test app::config::tests::unknown_keys_are_ignored ... ok [INFO] [stdout] test app::config::tests::ux_config_defaults_hover_help_on_in_korean ... ok [INFO] [stdout] test app::config::tests::ux_config_defaults_to_always ... ok [INFO] [stdout] test app::config::tests::ux_config_parses_first_time ... ok [INFO] [stdout] test app::config::tests::ux_config_parses_never ... ok [INFO] [stdout] test app::config::tests::ux_config_parses_hover_help_and_language ... ok [INFO] [stdout] test app::dashboard_render::tests::overlay_focus_does_not_block_dashboard_when_all_closed ... ok [INFO] [stdout] test app::dashboard_render::tests::overlay_focus_blocks_dashboard_for_each_modal_owner ... ok [INFO] [stdout] test app::dashboard_runtime::tests::alert_filter_input_buffer_lifecycle ... ok [INFO] [stdout] test app::dashboard_runtime::tests::alert_filter_rejects_control_chars_but_keeps_unicode_letters ... ok [INFO] [stdout] test app::dashboard_runtime::tests::initializes_alert_selection_from_startup_notices ... ok [INFO] [stdout] test app::dashboard_runtime::tests::clear_notices_removes_good_system_notices_too ... ok [INFO] [stdout] test app::dashboard_state::tests::dashboard_mouse_divider_drag_starts_resize ... ok [INFO] [stdout] test app::dashboard_state::tests::dashboard_mouse_pane_click_selects_pane ... ok [INFO] [stdout] test app::dashboard_runtime::tests::notice_mutators_keep_alert_selection_synced ... ok [INFO] [stdout] test app::config::tests::security_posture_advisories_default_to_off ... ok [INFO] [stdout] test app::dashboard_state::tests::dashboard_selection_key_moves_pane_selection ... ok [INFO] [stdout] test app::dashboard_state::tests::dashboard_selection_key_toggles_selected_alert_hide ... ok [INFO] [stdout] test app::dashboard_state::tests::register_alert_double_click_ignores_stale_or_different_clicks ... ok [INFO] [stdout] test app::dashboard_state::tests::register_alert_double_click_requires_same_key_within_window ... ok [INFO] [stdout] test app::dashboard_state::tests::update_pane_state_flashes_tracks_idle_and_active_transitions ... ok [INFO] [stdout] test app::effects::tests::allow_flags_can_still_suppress_even_in_recommend_only ... ok [INFO] [stdout] test app::dashboard_state::tests::toggle_alert_severity_hide_only_targets_actionable_alerts ... ok [INFO] [stdout] test app::effects::tests::observe_only_rejects_everything ... ok [INFO] [stdout] test app::effects::tests::prompt_send_proposal_passes_regardless_of_allow_auto_prompt_send ... ok [INFO] [stdout] test app::effects::tests::sensitive_effects_never_permitted ... ok [INFO] [stdout] test app::event_loop::enhance_command_tests::passthrough_when_descendant_walk_fails ... ok [INFO] [stdout] test app::event_loop::enhance_command_tests::passthrough_when_pane_pid_missing ... ok [INFO] [stdout] test app::event_loop::tests::anomaly_event_reason_empty_evidence_returns_empty_string ... ok [INFO] [stdout] test app::event_loop::tests::anomaly_event_reason_joins_every_evidence_row ... ok [INFO] [stdout] test app::event_loop::tests::anomaly_event_reason_single_row_detector_unchanged_pre_v1_50 ... ok [INFO] [stdout] test app::event_loop::tests::apply_codex_rate_limits_handles_missing_secondary_window ... ok [INFO] [stdout] test app::event_loop::tests::apply_codex_rate_limits_populates_resets_at_and_pressure_when_absent ... ok [INFO] [stdout] test app::event_loop::tests::apply_codex_rate_limits_preserves_statusline_pressure_when_present ... ok [INFO] [stdout] test app::effects::tests::recommend_only_permits_notify_archive_and_prompt_send_proposal ... ok [INFO] [stdout] test app::event_loop::tests::fold_finding_paths_into_history_extends_front_for_anchor_and_others ... ok [INFO] [stdout] test app::event_loop::tests::fold_finding_paths_into_history_round_trip_fires_detector ... ok [INFO] [stdout] test app::event_loop::tests::fold_finding_paths_into_history_skips_empty_paths_payload ... ok [INFO] [stdout] test app::fx_overlay::tests::celebration_trigger_forces_confetti_regardless_of_configured_effect ... ok [INFO] [stdout] test app::fx_overlay::tests::dismiss_closes_the_overlay ... ok [INFO] [stdout] test app::fx_overlay::tests::open_disabled_config_is_a_no_op ... ok [INFO] [stdout] test app::fx_overlay::tests::open_initializes_scene_matching_effect ... ok [INFO] [stdout] test app::fx_overlay::tests::screensaver_auto_open_fires_after_idle_threshold ... ok [INFO] [stdout] test app::fx_overlay::tests::screensaver_auto_open_skipped_when_disabled ... ok [INFO] [stdout] test app::fx_overlay::tests::screensaver_auto_open_skipped_when_fx_globally_disabled ... ok [INFO] [stdout] test app::fx_overlay::tests::step_keeps_running_when_duration_is_zero ... ok [INFO] [stdout] test app::fx_overlay::tests::step_returns_true_when_duration_elapses ... ok [INFO] [stdout] test app::fx_overlay::tests::step_self_dismisses_when_confetti_scene_finishes ... ok [INFO] [stdout] test app::fx_state::tests::banner_bounces_off_left_edge ... ok [INFO] [stdout] test app::fx_state::tests::banner_bounces_off_right_edge ... ok [INFO] [stdout] test app::fx_state::tests::banner_hue_advances_by_step_and_wraps ... ok [INFO] [stdout] test app::fx_state::tests::banner_starts_centered_and_advances_position ... ok [INFO] [stdout] test app::fx_state::tests::confetti_finishes_after_all_particles_expire ... ok [INFO] [stdout] test app::fx_state::tests::confetti_spawn_seeds_eighty_particles ... ok [INFO] [stdout] test app::fx_state::tests::confetti_step_decrements_life_and_applies_gravity ... ok [INFO] [stdout] test app::fx_state::tests::fireworks_explodes_rocket_when_burst_height_reached ... ok [INFO] [stdout] test app::fx_state::tests::fireworks_relaunches_after_interval_elapses ... ok [INFO] [stdout] test app::fx_state::tests::fx_scene_dispatches_step_per_variant ... ok [INFO] [stdout] test app::fx_state::tests::hue_to_rgb_green_at_120 ... ok [INFO] [stdout] test app::fx_state::tests::fx_scene_from_effect_dispatches_every_v1_59_variant ... ok [INFO] [stdout] test app::fx_state::tests::hue_to_rgb_red_at_zero_degrees ... ok [INFO] [stdout] test app::fx_state::tests::matrix_spawns_streams_and_advances_heads ... ok [INFO] [stdout] test app::fx_state::tests::hue_to_rgb_wraps_past_full_circle ... ok [INFO] [stdout] test app::fx_state::tests::plasma_step_advances_time_and_sample_returns_within_bounds ... ok [INFO] [stdout] test app::fx_state::tests::snow_flakes_fall_downward_overall ... ok [INFO] [stdout] test app::git_info::tests::git_panel_title_uses_footer_git_version ... ok [INFO] [stdout] test app::git_info::tests::normalize_origin_url_handles_ssh_url_form ... ok [INFO] [stdout] test app::fx_state::tests::hue_to_rgb_blue_at_240 ... ok [INFO] [stdout] test app::fx_state::tests::sampler_next_effect_skips_self_and_covers_every_other_variant ... ok [INFO] [stdout] test app::fx_state::tests::matrix_drops_off_screen_streams ... ok [INFO] [stdout] test app::git_info::tests::normalize_origin_url_rewrites_ssh_to_https ... ok [INFO] [stdout] test app::fx_state::tests::sampler_rotates_to_next_effect_after_interval_elapses ... ok [INFO] [stdout] test app::fx_state::tests::snow_spawns_full_field_and_keeps_count_stable_after_step ... ok [INFO] [stdout] test app::git_info::tests::normalize_origin_url_strips_dot_git_on_https ... ok [INFO] [stdout] test app::git_info::tests::panel_from_snapshot_renders_origin_and_contributors ... ok [INFO] [stdout] test app::git_info::tests::panel_from_snapshot_shows_none_when_no_origin_or_contributors ... ok [INFO] [stdout] test app::git_info::tests::parse_shortlog_skips_blank_and_malformed_lines ... ok [INFO] [stdout] test app::git_info::tests::parse_shortlog_strips_email_and_returns_count ... ok [INFO] [stdout] test app::git_info::tests::parse_tracking_counts_reads_ahead_and_behind ... ok [INFO] [stdout] test app::git_info::tests::split_contributors_caps_at_limit_and_reports_extras ... ok [INFO] [stdout] test app::git_info::tests::split_contributors_passes_through_when_below_limit ... ok [INFO] [stdout] test app::git_info::tests::summarize_status_lines_counts_each_bucket ... ok [INFO] [stdout] test app::hover_help::tests::footer_keys_badge_has_hover_topic_but_footer_row_does_not ... ok [INFO] [stdout] test app::hover_help::tests::hover_state_tracks_and_clears_topic ... ok [INFO] [stdout] test app::hover_help::tests::label_trigger_limits_dashboard_hover_to_front_label_zone ... ok [INFO] [stdout] test app::hover_help::tests::footer_status_chips_have_specific_hover_topics ... ok [INFO] [stdout] test app::hover_help::tests::now_strip_has_hover_topic ... ok [INFO] [stdout] test app::ime_state::tests::ascii_letter_when_already_inactive_returns_cleared_but_no_bell_caller_action ... ok [INFO] [stdout] test app::ime_state::tests::ascii_letter_clears_state_immediately ... ok [INFO] [stdout] test app::ime_state::tests::cjk_characters_all_treated_as_non_ascii ... ok [INFO] [stdout] test app::ime_state::tests::digits_punctuation_and_space_are_ignored ... ok [INFO] [stdout] test app::ime_state::tests::fresh_state_is_not_active ... ok [INFO] [stdout] test app::ime_state::tests::non_ascii_letter_activates_and_signals_first_transition ... ok [INFO] [stdout] test app::ime_state::tests::re_activating_after_ttl_decay_signals_transition ... ok [INFO] [stdout] test app::ime_state::tests::re_activation_after_clear_signals_transition_again ... ok [INFO] [stdout] test app::ime_state::tests::second_non_ascii_within_ttl_does_not_re_signal_transition ... ok [INFO] [stdout] test app::ime_state::tests::state_decays_after_ttl_without_clearing_via_ascii ... ok [INFO] [stdout] test app::insights_lifecycle::tests::strong_prompt_rec_uses_slash_command_as_lifecycle_action ... ok [INFO] [stdout] test app::insights_overlay::tests::bracket_keys_resize_insights_overlay ... ok [INFO] [stdout] test app::insights_overlay::tests::i_closes_open_overlay ... ok [INFO] [stdout] test app::insights_load::tests::spawn_insights_load_emits_err_when_path_is_a_directory ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_left_outside_overlay_is_swallowed_without_closing ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_left_on_close_button_closes_overlay ... ok [INFO] [stdout] test app::insights_overlay::tests::close_reopen_preserves_geometry_but_clears_drag ... ok [INFO] [stdout] test app::keymap::tests::empty_selection_helpers_clear_selection ... ok [INFO] [stdout] test app::keymap::tests::list_row_at_ignores_block_border_and_returns_body_row ... ok [INFO] [stdout] test app::keymap::tests::move_selection_clamps_to_list_bounds ... ok [INFO] [stdout] test app::keymap::tests::page_selection_uses_minimum_step_of_one ... ok [INFO] [stdout] test app::keymap::tests::rect_contains_excludes_coordinates_on_outer_edge ... ok [INFO] [stdout] test app::insights_overlay::tests::r_requests_refresh ... ok [INFO] [stdout] test app::keymap::tests::toggle_focus_switches_between_dashboard_lists ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_scroll_inside_body_clears_drag_anchor_before_scrolling ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_scroll_outside_body_clears_drag_anchor_without_scrolling ... ok [INFO] [stdout] test app::metrics_overlay::tests::arrows_scroll_body ... ok [INFO] [stdout] test app::metrics_overlay::tests::bracket_keys_resize_overlay ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_left_inside_moved_body_keeps_overlay_open ... ok [INFO] [stdout] test app::metrics_overlay::tests::key_handler_returns_false_when_closed ... ok [INFO] [stdout] test app::metrics_overlay::tests::m_key_closes_open_overlay ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_moved_clears_drag_anchor_before_later_drag ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_left_on_close_button_closes_overlay_after_move ... ok [INFO] [stdout] test app::modal_state::tests::key_handler_scrolls_clamps_and_closes ... ok [INFO] [stdout] test app::metrics_overlay::tests::up_event_clears_anchor ... ok [INFO] [stdout] test app::insights_overlay::tests::title_drag_moves_insights_overlay_and_reset_clears_offset ... ok [INFO] [stdout] test app::modal_state::tests::mouse_handler_scrolls_body_and_closes_button ... ok [INFO] [stdout] test app::modal_state::tests::key_handler_supports_extra_close_key ... ok [INFO] [stdout] test app::once_report::tests::once_report_lines_include_cross_pane_and_pane_summary ... ok [INFO] [stdout] test app::modal_state::tests::open_resets_scroll_and_replaces_content ... ok [INFO] [stdout] test app::metrics_overlay::tests::drag_does_not_start_in_body ... ok [INFO] [stdout] test app::once_report::tests::once_report_lines_render_prompt_send_proposals ... ok [INFO] [stdout] test app::operator_actions::tests::snapshot_input_formats_system_notices ... ok [INFO] [stdout] test app::once_report::tests::once_report_lines_keep_strong_recs_before_pane_summary ... ok [INFO] [stdout] test app::path_resolution::tests::cli_wins_over_config_when_env_absent ... ok [INFO] [stdout] test app::metrics_overlay::tests::drag_does_not_start_on_close_button_and_close_wins ... ok [INFO] [stdout] test app::path_resolution::tests::default_config_path_uses_cli_root_when_env_absent ... ok [INFO] [stdout] test app::metrics_overlay::tests::drag_down_on_title_row_sets_anchor ... ok [INFO] [stdout] test app::operator_actions::tests::write_operator_snapshot_failure_returns_warning_without_audit ... ok [INFO] [stdout] test app::path_resolution::tests::empty_env_is_treated_as_absent ... ok [INFO] [stdout] test app::path_resolution::tests::config_wins_over_default_when_env_and_cli_absent ... ok [INFO] [stdout] test app::path_resolution::tests::default_config_path_uses_env_root_before_cli_root ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::accept_action_for_alert_returns_none ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::a_key_closes_overlay ... ok [INFO] [stdout] test app::path_resolution::tests::env_wins_when_both_env_and_cli_set ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::accept_action_for_proposal_returns_accept_variant ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::arrow_keys_navigate ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::bracket_keys_resize_modal ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::click_explainer_is_noop ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::click_close_button_closes ... ok [INFO] [stdout] test app::operator_actions::tests::write_operator_snapshot_records_audit_and_good_notice ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::c_clears_multi_only_keeps_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::click_content_moves_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::closed_overlay_swallows_keys ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::comma_period_keys_resize_list ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::copy_action_for_alert_returns_copy_variant ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::d_no_multi_returns_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::d_with_multi_returns_all_indices_ascending ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::dispatch_accept_after_prune_uses_clamped_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::enter_is_silently_swallowed ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::first_narrow_press_shrinks_from_auto_width ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::click_checkbox_toggles_multi_keeps_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::first_widen_press_grows_from_auto_width ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::jk_navigates_like_arrows ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::p_no_multi_returns_cursor_proposal ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::q_and_esc_close_overlay ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::separator_drag_does_not_start_in_list_body ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::p_with_multi_returns_proposal_indices_only ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::separator_drag_does_not_start_on_hint_row ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::separator_drag_does_not_start_on_title_row ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::separator_drag_updates_list_width ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::shift_p_toggles_proposal_group ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::reject_action_for_proposal_returns_reject_variant ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::space_toggles_multi_on_cursor_item ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::title_row_drag_updates_offset ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::wheel_moves_cursor ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::p_no_multi_with_alert_cursor_returns_none ... ok [INFO] [stdout] test app::metrics_overlay::tests::x_click_closes_overlay ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::y_no_multi_with_proposal_cursor_returns_none ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::y_with_multi_picks_first_alert ... ok [INFO] [stdout] test app::prompt_send_actions::tests::audit_summary_carries_proposal_id_for_accept_and_reject_paths ... ok [INFO] [stdout] test app::prompt_send_actions::tests::dismiss_records_rejected_without_sending ... ok [INFO] [stdout] test app::prompt_send_actions::tests::auto_send_off_records_accept_then_blocked ... ok [INFO] [stdout] test app::prompt_send_actions::tests::execute_accept_sends_lowest_proposal_id_and_records_completion ... ok [INFO] [stdout] test app::prompt_send_actions::tests::execute_send_failure_records_failed_notice ... ok [INFO] [stdout] test app::prompt_send_actions::tests::observe_only_accept_records_blocked_only ... ok [INFO] [stdout] test app::prompt_send_actions::tests::snapshot_dismiss_records_rejected_for_snapshotted_command ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::arrow_keys_scroll ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::copy_active_tab_snippet_includes_sidefile_addon_when_enabled_by_settings ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::copy_active_tab_snippet_reports_failure_when_clipboard_unavailable ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::copy_active_tab_snippet_reports_success_with_clipboard_chars_count ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::esc_closes_overlay ... ok [INFO] [stdout] test app::prompt_send_actions::tests::snapshot_confirm_dispatches_snapshotted_command_not_first_proposal ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::key_handler_returns_false_when_overlay_is_closed ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::mouse_handler_returns_false_when_overlay_is_closed ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::number_keys_switch_tabs ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::provider_setup_entry_key_closes_when_open ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::s_key_is_ignored_because_options_live_in_settings ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::tab_and_arrow_keys_cycle_tabs ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::q_closes_overlay ... ok [INFO] [stdout] test app::runtime_refresh::tests::claude_context_capture_ready_accepts_current_usage_block ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_claude_uses_statusline_without_sending_input ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_observe_only_records_blocked ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_reports_unavailable_provider_without_audit ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_requires_selected_pane ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_success_records_request_completion_and_forces_poll ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_action_send_failure_records_failed_without_forcing_poll ... ok [INFO] [stdout] test app::insights_load::tests::spawn_insights_load_emits_ok_for_missing_db ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_commands_for_claude_active_are_statusline_only ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_commands_for_claude_are_statusline_only ... ok [INFO] [stdout] test app::pending_actions_overlay::tests::wheel_outside_modal_is_noop ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_commands_for_codex_use_status_slash_active_or_idle ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_commands_for_gemini_only_use_model_when_idle ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_dispatch_cycles_active_gemini_stats_without_model ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_dispatch_cycles_idle_gemini_model_and_used_stats_sources ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_dispatch_for_claude_is_empty ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_dispatch_keeps_active_and_idle_gemini_cycles_separate ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::scroll_wheel_over_body_scrolls_content ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_gemini_stats_do_not_close_with_escape ... ok [INFO] [stdout] test app::insights_overlay::tests::mouse_left_inside_body_keeps_overlay_open ... ok [INFO] [stdout] test app::safety_audit::tests::accepted_override_produces_no_audit_event ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::left_click_on_close_button_closes_overlay ... ok [INFO] [stdout] test app::provider_setup_overlay::tests::left_click_on_tabs_row_switches_tabs ... ok [INFO] [stdout] test app::safety_audit::tests::unknown_key_is_also_audit_logged_at_concern_severity ... ok [INFO] [stdout] test app::settings_overlay::tests::editable_tabs_keep_arrow_and_wheel_selection_without_body_scroll ... ok [INFO] [stdout] test app::settings_overlay::tests::escape_cancels_edit_before_closing_overlay ... ok [INFO] [stdout] test app::settings_overlay::tests::h_and_l_toggle_hover_help_settings_inside_settings_overlay ... ok [INFO] [stdout] test app::settings_overlay::tests::key_handler_commits_numeric_parameter_edit ... ok [INFO] [stdout] test app::settings_overlay::tests::key_handler_returns_false_when_overlay_is_closed ... ok [INFO] [stdout] test app::settings_overlay::tests::key_handler_routes_global_like_chars_to_text_edit_buffer ... ok [INFO] [stdout] test app::safety_audit::tests::rejected_override_writes_risk_audit_event ... ok [INFO] [stdout] test app::safety_audit::tests::multiple_overrides_produce_multiple_events ... ok [INFO] [stdout] test app::prompt_send_actions::tests::no_pending_accept_returns_concern_without_audit ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_body_field_selection_is_disabled_on_read_only_tabs ... ok [INFO] [stdout] test app::metrics_overlay::tests::drag_event_updates_offset_relative_to_anchor ... ok [INFO] [stdout] test app::settings_overlay::tests::key_handler_toggles_integrations_with_keyboard ... ok [INFO] [stdout] test app::settings_overlay::tests::key_handler_switches_tabs_and_keeps_read_only_tabs_read_only ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_handler_switches_tabs_on_tab_labels ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_handler_closes_on_close_button ... ok [INFO] [stdout] test app::settings_overlay::tests::read_only_tabs_scroll_body_with_keyboard ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_handler_selects_fields_and_scrolls_selection ... ok [INFO] [stdout] test app::settings_overlay::tests::settings_entry_key_closes_when_open_and_not_editing ... ok [INFO] [stdout] test app::startup::tests::parse_set_pairs_trims_key_and_value ... ok [INFO] [stdout] test app::settings_overlay::tests::save_without_config_path_surfaces_status_error ... ok [INFO] [stdout] test app::startup::tests::parse_set_pairs_rejects_missing_equals ... ok [INFO] [stdout] test app::system_notice::tests::drift_produces_warning_notice_and_audit_per_tool ... ok [INFO] [stdout] test app::system_notice::tests::notice_carries_a_source_kind_for_ui_badge ... ok [INFO] [stdout] test app::system_notice::tests::no_drift_yields_no_notice_and_no_audit ... ok [INFO] [stdout] test app::system_notice::tests::repeated_tmux_source_failure_is_deduplicated ... ok [INFO] [stdout] test app::system_notice::tests::record_startup_snapshot_uses_dedicated_kind ... ok [INFO] [stdout] test app::system_notice::tests::tmux_source_recovery_emits_good_notice_once ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_handler_toggles_integration_rows ... ok [INFO] [stdout] test app::target_picker::tests::initial_target_prefers_current_window_target ... ok [INFO] [stdout] test app::target_picker::tests::open_target_picker_resets_to_session_choices ... ok [INFO] [stdout] test app::target_picker::tests::runtime_state_initializes_from_current_target_without_opening_picker ... ok [INFO] [stdout] test app::target_picker::tests::session_choices_are_sorted_and_deduplicated ... ok [INFO] [stdout] test app::target_picker::tests::target_choice_index_accounts_for_multiline_tree_items ... ok [INFO] [stdout] test app::target_picker::tests::initial_target_falls_back_to_first_available_target ... ok [INFO] [stdout] test app::target_picker::tests::apply_window_choice_rejects_wrong_session ... ok [INFO] [stdout] test app::settings_overlay::tests::mouse_wheel_scrolls_read_only_body ... ok [INFO] [stdout] test app::target_picker::tests::target_picker_enter_session_advances_to_window_stage ... ok [INFO] [stdout] test app::system_notice::tests::new_tool_appears_as_drift ... ok [INFO] [stdout] test app::target_picker::tests::target_picker_entry_key_closes_when_open ... ok [INFO] [stdout] test app::tmux_source::tests::explicit_control_mode_attach_error_is_not_silently_downgraded ... ok [INFO] [stdout] test app::tmux_source::tests::polling_config_builds_polling_source_without_touching_control_mode ... ok [INFO] [stdout] test app::tui_loop::tests::dispatch_bulk_clear_skips_vanished_alert_index ... ok [INFO] [stdout] test app::tui_loop::tests::dispatch_bulk_clear_two_alerts_hides_both ... ok [INFO] [stdout] test app::target_picker::tests::target_picker_mouse_close_button_closes ... ok [INFO] [stdout] test app::tui_loop::tests::fx_hotkey_is_disabled_while_an_overlay_owns_keyboard ... ok [INFO] [stdout] test app::version_drift::tests::compare_reports_new_or_removed_tools ... ok [INFO] [stdout] test app::version_drift::tests::compare_returns_drift_for_each_changed_key ... ok [INFO] [stdout] test app::version_drift::tests::compare_returns_none_on_identical_snapshots ... ok [INFO] [stdout] test app::tmux_source::tests::auto_config_falls_back_to_polling_when_control_mode_attach_fails ... ok [INFO] [stdout] test app::version_drift::tests::load_returns_none_when_file_missing ... ok [INFO] [stdout] test app::version_drift::tests::roundtrip_through_save_and_load ... ok [INFO] [stdout] test app::version_drift::tests::save_creates_parent_dir_if_missing ... ok [INFO] [stdout] test app::version_drift::tests::startup_load_corrupted_on_malformed_file_and_audits ... ok [INFO] [stdout] test app::version_drift::tests::startup_load_fresh_when_no_file ... ok [INFO] [stdout] test app::target_picker::tests::target_picker_enter_window_selects_target_and_closes ... ok [INFO] [stdout] test app::tmux_source::tests::auto_config_uses_successful_attach_without_notice ... ok [INFO] [stdout] test app::version_drift::tests::startup_load_previous_on_good_file ... ok [INFO] [stdout] test app::clipboard_actions::tests::ledger_helper_skips_outcome_when_copy_fails_or_no_sink ... ok [INFO] [stdout] test app::worktree_info::tests::resolve_worktree_role_returns_none_for_empty_or_missing_cwd ... ok [INFO] [stdout] test app::worktree_info::tests::resolve_worktree_role_returns_none_for_non_git_cwd ... ok [INFO] [stdout] test app::worktree_info::tests::branch_slash_is_preserved_for_branch_but_flattened_for_path ... ok [INFO] [stdout] test app::worktree_info::tests::worktree_role_cache_caches_none_results_too ... ok [INFO] [stdout] test app::worktree_info::tests::worktree_role_cache_caps_entries_and_evicts_oldest ... ok [INFO] [stdout] test app::worktree_info::tests::dirty_repo_does_not_get_copyable_worktree_command ... ok [INFO] [stdout] test domain::anomaly::tests::anomaly_confidence_label_roundtrip ... ok [INFO] [stdout] test domain::anomaly::tests::anomaly_event_construction_smoke ... ok [INFO] [stdout] test domain::anomaly::tests::anomaly_kind_label_roundtrip ... ok [INFO] [stdout] test domain::anomaly::tests::anomaly_kind_try_from_label_rejects_garbage ... ok [INFO] [stdout] test domain::anomaly::tests::confidence_orders_low_lt_medium_lt_high ... ok [INFO] [stdout] test domain::anomaly::tests::kind_labels_are_stable ... ok [INFO] [stdout] test domain::anomaly::tests::kind_labels_cover_v2_variants ... ok [INFO] [stdout] test domain::anomaly::tests::supported_providers_matrix_locks_v2_2_0_coverage ... ok [INFO] [stdout] test domain::anomaly::tests::unknown_and_qmonster_provider_are_never_supported ... ok [INFO] [stdout] test domain::audit::tests::audit_event_kind_as_str_contract_locks_every_variant_string ... ok [INFO] [stdout] test domain::audit::tests::event_stores_structured_metadata_only ... ok [INFO] [stdout] test domain::audit::tests::p5_3_audit_kinds_are_distinct_and_copy ... ok [INFO] [stdout] test domain::audit::tests::prompt_send_audit_kinds_are_distinct_and_carry_only_metadata ... ok [INFO] [stdout] test domain::audit::tests::version_drift_is_a_distinct_event_kind ... ok [INFO] [stdout] test domain::identity::tests::arbitrary_braille_glyph_alone_does_not_resolve_to_claude ... ok [INFO] [stdout] test app::worktree_info::tests::empty_branch_falls_back_to_git_current_branch ... ok [INFO] [stdout] test domain::identity::tests::canonical_title_command_provider_conflict_is_not_high_confidence ... ok [INFO] [stdout] test app::clipboard_actions::tests::ledger_helper_writes_copied_outcome_on_successful_copy ... ok [INFO] [stdout] test domain::identity::tests::claude_code_spinner_prefixed_activity_title_resolves_to_claude ... ok [INFO] [stdout] test domain::identity::tests::claude_main_title_resolves_high_confidence ... ok [INFO] [stdout] test domain::identity::tests::codex_transcript_markers_resolve_without_provider_name ... ok [INFO] [stdout] test domain::identity::tests::command_hint_gives_medium_confidence_when_title_missing ... ok [INFO] [stdout] test domain::identity::tests::codex_status_surface_resolves_medium_with_main_role ... ok [INFO] [stdout] test domain::identity::tests::diamond_alone_without_ready_does_not_resolve_to_gemini ... ok [INFO] [stdout] test domain::identity::tests::gemini_diamond_ready_title_resolves_to_gemini ... ok [INFO] [stdout] test domain::identity::tests::gemini_status_table_resolves_medium_with_main_role ... ok [INFO] [stdout] test domain::identity::tests::gemini_transcript_markers_resolve_without_provider_name ... ok [INFO] [stdout] test domain::identity::tests::no_hints_yields_unknown ... ok [INFO] [stdout] test domain::identity::tests::non_canonical_title_command_provider_conflict_is_marked ... ok [INFO] [stdout] test domain::identity::tests::non_canonical_title_hint_gives_medium_confidence ... ok [INFO] [stdout] test domain::identity::tests::qmonster_command_overrides_stale_canonical_provider_title ... ok [INFO] [stdout] test domain::identity::tests::qmonster_command_resolves_monitor_when_title_is_generic ... ok [INFO] [stdout] test app::worktree_info::tests::clean_repo_gets_executable_worktree_add_command ... ok [INFO] [stdout] test domain::identity::tests::qmonster_monitor_pane_detected ... ok [INFO] [stdout] test domain::identity::tests::qmonster_repo_name_in_tail_does_not_force_qmonster_provider ... ok [INFO] [stdout] test domain::identity::tests::qmonster_takes_priority_over_claude_substring ... ok [INFO] [stdout] test domain::identity::tests::repeated_provider_instance_is_parsed_from_title ... ok [INFO] [stdout] test domain::identity::tests::tail_hint_only_gives_low_confidence ... ok [INFO] [stdout] test domain::identity::tests::tail_text_hint_can_resolve_when_title_and_command_are_generic ... ok [INFO] [stdout] test domain::lifecycle::tests::alive_then_dead_emits_dropped ... ok [INFO] [stdout] test domain::lifecycle::tests::dead_then_alive_emits_reappeared ... ok [INFO] [stdout] test domain::lifecycle::tests::disappear_then_reappear_emits_reappeared_with_reset ... ok [INFO] [stdout] test domain::lifecycle::tests::steady_alive_emits_unchanged ... ok [INFO] [stdout] test domain::origin::tests::badge_is_two_letter_per_variant ... ok [INFO] [stdout] test domain::origin::tests::display_is_long_form ... ok [INFO] [stdout] test domain::profile::tests::profile_lever_pairs_key_value_with_provider_official_citation ... ok [INFO] [stdout] test domain::profile::tests::provider_profile_carries_project_canonical_name_with_provider_official_levers ... ok [INFO] [stdout] test domain::recommendation::tests::cross_pane_finding_carries_anchor_and_others ... ok [INFO] [stdout] test domain::recommendation::tests::prompt_send_proposed_carries_target_pane_slash_command_and_proposal_id ... ok [INFO] [stdout] test domain::recommendation::tests::proposal_id_is_stable_and_deterministic ... ok [INFO] [stdout] test app::event_loop::tests::pane_report_worktree_role_is_some_linked_for_added_worktree_cwd ... ok [INFO] [stdout] test domain::recommendation::tests::recommendation_carries_source_kind_and_reason ... ok [INFO] [stdout] test app::worktree_info::tests::resolve_worktree_role_returns_primary_for_main_checkout ... ok [INFO] [stdout] test domain::recommendation::tests::requested_effect_authority_tier_preserves_allow_list_gradient ... ok [INFO] [stdout] test domain::recommendation::tests::severity_label_roundtrip ... ok [INFO] [stdout] test domain::recommendation::tests::severity_ordering_safe_lt_risk ... ok [INFO] [stdout] test domain::signal::tests::default_signal_set_has_no_alerts ... ok [INFO] [stdout] test domain::signal::tests::default_signal_set_has_no_git_branch_or_worktree_or_effort ... ok [INFO] [stdout] test domain::signal::tests::default_signal_set_has_no_model_name ... ok [INFO] [stdout] test domain::signal::tests::metric_value_preserves_value_and_source ... ok [INFO] [stdout] test domain::signal::tests::metric_value_with_confidence ... ok [INFO] [stdout] test domain::signal::tests::runtime_fact_carries_kind_value_source_and_provider ... ok [INFO] [stdout] test domain::signal::tests::signal_set_can_carry_model_name_with_source_kind ... ok [INFO] [stdout] test domain::signal::tests::signal_set_can_carry_observability_fields ... ok [INFO] [stdout] test notify::bell::tests::ring_to_appends_on_repeated_calls ... ok [INFO] [stdout] test notify::bell::tests::ring_to_writes_single_bel_byte ... ok [INFO] [stdout] test notify::desktop::tests::recording_backend_captures_each_call_independently ... ok [INFO] [stdout] test notify::desktop::tests::summarize_format_is_stable ... ok [INFO] [stdout] test notify::desktop::tests::urgency_for_maps_severity_to_urgency ... ok [INFO] [stdout] test notify::rate_limit::tests::concern_severity_obeys_sixty_second_gap ... ok [INFO] [stdout] test notify::desktop::tests::summarize_letter_covers_every_severity ... ok [INFO] [stdout] test notify::rate_limit::tests::different_actions_on_same_pane_are_independent ... ok [INFO] [stdout] test notify::rate_limit::tests::duplicate_event_after_window_fires_again ... ok [INFO] [stdout] test notify::rate_limit::tests::first_event_is_always_allowed ... ok [INFO] [stdout] test notify::rate_limit::tests::duplicate_event_within_window_is_throttled ... ok [INFO] [stdout] test notify::rate_limit::tests::safe_severity_uses_longest_gap ... ok [INFO] [stdout] test notify::rate_limit::tests::first_fire_resets_window_even_when_severity_changes_on_second_call ... ok [INFO] [stdout] test notify::rate_limit::tests::same_action_on_different_panes_is_independent ... ok [INFO] [stdout] test notify::rate_limit::tests::risk_severity_has_shorter_throttle_than_warning ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_empty_has_no_model ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_missing_file_returns_io_not_found ... ok [INFO] [stdout] test policy::engine::tests::engine_does_not_emit_sensitive_effects ... ok [INFO] [stdout] test policy::engine::tests::engine_produces_notify_effect_for_input_wait ... ok [INFO] [stdout] test policy::engine::tests::engine_runs_alert_rules ... ok [INFO] [stdout] test policy::engine::tests::evaluate_cross_pane_returns_empty_for_one_pane ... ok [INFO] [stdout] test policy::engine::tests::evaluate_cross_pane_returns_empty_for_zero_panes ... ok [INFO] [stdout] test policy::engine::tests::evaluate_cross_pane_uses_concurrent_rule ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_loads_model_from_json ... ok [INFO] [stdout] test policy::engine::tests::healthy_pane_produces_no_prompt_send_proposal ... ok [INFO] [stdout] test policy::engine::tests::log_storm_also_requests_archive_local ... ok [INFO] [stdout] test policy::engine::tests::non_storm_signal_does_not_request_archive ... ok [INFO] [stdout] test policy::engine::tests::non_strong_rec_with_slash_suggested_command_does_not_graduate ... ok [INFO] [stdout] test policy::engine::tests::notify_effect_absent_when_only_concern_severity_recs ... ok [INFO] [stdout] test policy::engine::tests::notify_effect_fires_only_for_warning_or_higher ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_missing_model_key_returns_none ... ok [INFO] [stdout] test policy::engine::tests::strong_rec_with_slash_suggested_command_graduates_to_prompt_send_proposal ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_loads_runtime_fields_from_json ... ok [INFO] [stdout] test policy::claude_settings::tests::claude_settings_parse_error_surfaces_via_result ... ok [INFO] [stdout] test policy::gates::tests::aggressive_mode_requires_quota_tight_flag ... ok [INFO] [stdout] test policy::gates::tests::check_send_gate_observe_only_is_always_blocked ... ok [INFO] [stdout] test policy::gates::tests::check_send_gate_recommend_only_with_auto_send_on_yields_execute ... ok [INFO] [stdout] test policy::gates::tests::check_send_gate_safe_auto_with_auto_send_off_yields_auto_send_off ... ok [INFO] [stdout] test policy::gates::tests::check_send_gate_recommend_only_with_auto_send_off_yields_auto_send_off ... ok [INFO] [stdout] test policy::gates::tests::check_send_gate_safe_auto_with_auto_send_on_yields_execute ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_min_confidence_low_and_high ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_min_confidence_string_maps_to_medium_for_invalid ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_parses_promote_config ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_propagates_reset_auto_snapshot ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_propagates_anomaly_config ... ok [INFO] [stdout] test policy::gates::tests::policy_gates_default_promote_thresholds_match_spec ... ok [INFO] [stdout] test policy::gates::tests::policy_gates_from_inputs_reads_both ... ok [INFO] [stdout] test policy::gates::tests::policy_gates_resolves_per_provider_context_and_quota_overrides ... ok [INFO] [stdout] test policy::gates::tests::from_inputs_propagates_v2_anomaly_thresholds ... ok [INFO] [stdout] test policy::gates::tests::policy_gates_propagates_custom_reset_config ... ok [INFO] [stdout] test policy::gates::tests::provider_specific_allowed_on_high_confidence ... ok [INFO] [stdout] test policy::gates::tests::provider_specific_suppressed_on_low_or_unknown ... ok [INFO] [stdout] test policy::gates::tests::policy_gates_resolves_per_provider_cost_overrides ... ok [INFO] [stdout] test policy::gates::tests::provider_specific_suppressed_on_identity_conflict ... ok [INFO] [stdout] test policy::gates::tests::promote_min_confidence_returns_configured_field_per_kind ... ok [INFO] [stdout] test policy::gates::tests::quota_tight_gate_reads_from_config_true ... ok [INFO] [stdout] test policy::gates::tests::quota_tight_gate_defaults_to_false ... ok [INFO] [stdout] test policy::pricing::tests::pricing_staleness_days_returns_none_when_file_missing ... ok [INFO] [stdout] test policy::pricing::tests::pricing_staleness_days_returns_age_when_mtime_predates_threshold ... ok [INFO] [stdout] test policy::pricing::tests::pricing_staleness_secs_constant_is_90_days ... ok [INFO] [stdout] test policy::pricing::tests::pricing_staleness_days_returns_none_when_within_threshold ... ok [INFO] [stdout] test policy::pricing::tests::pricing_table_empty_has_no_entries ... ok [INFO] [stdout] test policy::pricing::tests::pricing_table_load_from_toml_or_empty_falls_back_on_missing ... ok [INFO] [stdout] test policy::rules::advisories::tests::aggressive_context_pressure_warning_fires_at_moderate_pressure ... ok [INFO] [stdout] test policy::rules::advisories::tests::aggressive_variant_never_fires_when_gate_off ... ok [INFO] [stdout] test policy::rules::advisories::tests::aggressive_variants_fire_only_when_quota_tight_gate_open ... ok [INFO] [stdout] test policy::rules::advisories::tests::aggressive_verbose_review_uses_next_step_not_copyable_comment ... ok [INFO] [stdout] test policy::rules::advisories::tests::all_provider_flavored_advisories_suppressed_on_low_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::code_exploration_does_not_fire_on_large_output_alone ... ok [INFO] [stdout] test policy::rules::advisories::tests::code_exploration_fires_on_verbose_main_role ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_critical_at_0_85 ... ok [INFO] [stdout] test policy::rules::advisories::tests::code_exploration_suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::pricing::tests::pricing_table_lookup_returns_none_for_missing_entry ... ok [INFO] [stdout] test policy::pricing::tests::pricing_table_loads_entries_from_toml ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_critical_carries_runnable_compact_with_snapshot_next_step ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_thresholds_track_per_provider_overrides ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_warning_at_0_75 ... ok [INFO] [stdout] test policy::rules::advisories::tests::context_pressure_warning_carries_runnable_compact_with_snapshot_next_step ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_absent_does_not_fire ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_below_threshold_does_not_fire ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_critical_at_20_usd ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_warning_at_5_usd ... ok [INFO] [stdout] test policy::pricing::tests::pricing_table_treats_zero_rate_entries_as_unset ... ok [INFO] [stdout] test policy::rules::advisories::tests::cost_pressure_thresholds_track_per_provider_overrides ... ok [INFO] [stdout] test policy::rules::advisories::tests::log_storm_advisory_carries_tmux_capture_suggested_command ... ok [INFO] [stdout] test policy::rules::advisories::tests::log_storm_advisory_fires_with_heuristic_source_kind ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_absent_does_not_fire ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_critical_at_0_85 ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_below_threshold_does_not_fire ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_thresholds_track_per_provider_overrides ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_tight_nudge_fires_only_when_gate_off_and_pressure_high ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_pressure_warning_at_0_75 ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_tight_nudge_fires_regardless_of_identity_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::quota_tight_nudge_never_fires_when_gate_on ... ok [INFO] [stdout] test policy::rules::advisories::tests::security_posture_advisory_ignores_non_permissive_runtime_facts ... ok [INFO] [stdout] test policy::rules::advisories::tests::security_posture_advisory_is_opt_in_only ... ok [INFO] [stdout] test policy::rules::advisories::tests::security_posture_advisory_suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::rules::advisories::tests::split_quota_pressure_picks_5h_when_5h_is_more_urgent ... ok [INFO] [stdout] test policy::rules::advisories::tests::split_quota_pressure_promotes_only_most_urgent_window ... ok [INFO] [stdout] test policy::rules::advisories::tests::verbose_review_requires_review_role ... ok [INFO] [stdout] test policy::rules::agent_memory::tests::suppressed_at_or_below_threshold ... ok [INFO] [stdout] test policy::rules::agent_memory::tests::fires_when_bytes_exceed_threshold_with_concern_and_project_canonical ... ok [INFO] [stdout] test policy::rules::agent_memory::tests::suppressed_on_low_confidence ... ok [INFO] [stdout] test policy::rules::agent_memory::tests::suppressed_when_input_or_permission_wait_active ... ok [INFO] [stdout] test policy::rules::alerts::tests::clean_signal_set_fires_no_alerts ... ok [INFO] [stdout] test policy::rules::agent_memory::tests::suppressed_when_signal_is_none ... ok [INFO] [stdout] test policy::rules::alerts::tests::error_hint_fires_warning_when_not_log_storm ... ok [INFO] [stdout] test policy::rules::alerts::tests::log_storm_alert_path_removed_in_v2_2_0 ... ok [INFO] [stdout] test policy::rules::alerts::tests::subagent_hint_fires_concern ... ok [INFO] [stdout] test policy::rules::alerts::tests::verbose_answer_fires_concern_severity ... ok [INFO] [stdout] test policy::rules::anomaly::tests::anomaly_history_default_is_empty ... ok [INFO] [stdout] test policy::rules::anomaly::tests::anomaly_history_trim_caps_v2_deques ... ok [INFO] [stdout] test policy::rules::anomaly::tests::anomaly_history_v2_fields_default_empty ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cache_discontinuity_fires_on_repeated_drift ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cache_discontinuity_emits_concern_when_medium_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cache_discontinuity_emits_warning_when_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cache_discontinuity_fires_on_30pp_drop ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cache_discontinuity_quiet_window_no_fire ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_below_threshold_returns_none ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_fallback_uses_default_two_second_poll_interval ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_insufficient_samples_returns_none ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_prefers_millisecond_ticks_when_available ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_pure_positive_medium_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_pure_positive_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_uses_actual_elapsed_seconds_when_available ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cross_pane_edit_cluster_below_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cost_slope_reports_coverage_and_elapsed_seconds ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cross_pane_edit_cluster_different_paths_no_fire ... ok [INFO] [stdout] test policy::rules::advisories::tests::security_posture_advisory_fires_on_permissive_runtime_facts_when_enabled ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cross_pane_edit_cluster_emits_warning_when_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cross_pane_edit_cluster_same_path_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_below_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_emits_concern_when_medium_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_cross_pane_edit_cluster_emits_concern_when_medium_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_emits_warning_when_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_evidence_carries_dominant_error_kind ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_fires_above_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_insufficient_samples ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_error_burst_evidence_omits_dominant_kind_when_replay_only ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_below_threshold_returns_none ... ok [INFO] [stdout] test app::worktree_info::tests::resolve_worktree_role_returns_linked_with_parent_root_for_added_worktree ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_emits_concern_when_medium_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_emits_warning_when_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_fires_at_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_empty_history_returns_none ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_identity_churn_high_confidence_when_far_above_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_token_slope_pure_positive_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_token_slope_reports_coverage_and_elapsed_seconds ... ok [INFO] [stdout] test policy::rules::anomaly::tests::detect_memory_growth_pure_positive_high_confidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::eval_anomalies_min_confidence_filters_medium ... ok [INFO] [stdout] test policy::rules::anomaly::tests::eval_anomalies_edge_triggered_emit_then_suppress_then_rearm_then_emit ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_emits_recommendation_for_warning_signal ... ok [INFO] [stdout] test policy::rules::anomaly::tests::eval_anomalies_returns_empty_when_disabled ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_matrix_5_kind_distinct_actions ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_maps_each_kind_to_distinct_action ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_recommendation_severity_matches_signal ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_gate_admits_at_per_kind_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_recommendation_source_kind_matches_evidence ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_gate_high_threshold_admits_high ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_gate_blocks_below_per_kind_threshold ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_gate_low_threshold_admits_all_levels ... ok [INFO] [stdout] test policy::rules::anomaly::tests::promote_returns_empty_for_concern_only ... ok [INFO] [stdout] test policy::rules::anomaly::tests::severity_for_medium_low_returns_concern ... ok [INFO] [stdout] test policy::rules::anomaly::tests::trim_caps_each_deque_to_capacity ... ok [INFO] [stdout] test policy::rules::auto_memory::tests::fires_on_session_resume_task ... ok [INFO] [stdout] test policy::rules::auto_memory::tests::suppressed_on_non_state_critical_task_types ... ok [INFO] [stdout] test policy::rules::auto_memory::tests::suppressed_when_operator_attention_is_on_a_prompt_or_input_wait ... ok [INFO] [stdout] test policy::rules::auto_memory::tests::suppressed_on_low_identity_confidence ... ok [INFO] [stdout] test policy::rules::cache::tests::both_rules_suppressed_when_input_or_permission_wait_active ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_cold_compact_fires_when_ratio_below_threshold_and_ctx_above_threshold ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_cold_compact_suppressed_when_ctx_at_or_below_threshold ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_drift_fires_when_ratio_drops_30pp_or_more_over_4_samples ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_drift_honors_custom_thresholds_from_gates ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_drift_suppressed_on_low_confidence ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_drift_suppressed_when_drop_below_30pp ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_drift_suppressed_when_fewer_than_4_samples ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_hot_warning_fires_from_direct_cache_hit_ratio_field ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_hot_warning_fires_when_ratio_above_threshold_and_ctx_below_threshold ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_hot_warning_suppressed_when_ctx_at_or_above_threshold ... ok [INFO] [stdout] test policy::rules::cache::tests::neither_rule_fires_in_the_intermediate_band ... ok [INFO] [stdout] test policy::rules::concurrent::tests::anchor_pane_id_is_lexicographically_smallest_in_qualifying_set ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_does_not_fire_on_different_resolved_paths ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_does_not_fire_when_gate_off ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_fires_when_two_panes_touch_same_relative_path_in_same_repo ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_handles_absolute_path_match_across_worktrees ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_input_wait_pane_disqualifies_group ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_lone_pane_never_fires ... ok [INFO] [stdout] test app::insights_lifecycle::tests::operator_snapshot_outcome_matches_reset_recommendation_action ... ok [INFO] [stdout] test app::insights_load::tests::spawn_insights_load_emits_outcome_with_matching_request_id ... ok [INFO] [stdout] test policy::rules::anomaly::tests::severity_for_high_returns_warning ... ok [INFO] [stdout] test policy::rules::cache::tests::cache_rules_honor_custom_thresholds_from_gates ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_policy_does_not_emit_placeholder_copy_command ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_research_role_does_not_anchor ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_separates_overlapping_files ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_mutating_policy_does_not_emit_placeholder_copy_command ... ok [INFO] [stdout] test policy::rules::concurrent::tests::cross_window_concurrent_work_does_not_fire_when_gate_disabled ... ok [INFO] [stdout] test policy::rules::concurrent::tests::cross_window_concurrent_work_fires_on_two_panes_in_different_windows_when_gate_enabled ... ok [INFO] [stdout] test policy::rules::concurrent::tests::cross_window_concurrent_work_has_no_placeholder_copy_command ... ok [INFO] [stdout] test policy::rules::concurrent::tests::cross_window_does_not_fire_on_different_paths_across_windows ... ok [INFO] [stdout] test policy::rules::concurrent::tests::different_branches_in_same_current_path_do_not_co_qualify ... ok [INFO] [stdout] test policy::rules::concurrent::tests::different_current_path_never_co_qualifies ... ok [INFO] [stdout] test policy::rules::concurrent::tests::empty_current_path_does_not_co_qualify ... ok [INFO] [stdout] test policy::rules::concurrent::tests::output_chars_below_threshold_does_not_trigger ... ok [INFO] [stdout] test policy::rules::concurrent::tests::research_role_never_anchors ... ok [INFO] [stdout] test policy::rules::concurrent::tests::same_current_path_without_branch_no_longer_co_qualifies ... ok [INFO] [stdout] test policy::rules::concurrent::tests::same_window_path_branch_still_fires_concurrent_mutating_work_with_gate_enabled ... ok [INFO] [stdout] test policy::rules::concurrent::tests::single_pane_never_triggers ... ok [INFO] [stdout] test policy::rules::concurrent::tests::two_main_panes_in_same_current_path_and_branch_trigger_finding ... ok [INFO] [stdout] test policy::rules::concurrent::tests::waiting_for_input_suppresses_finding ... ok [INFO] [stdout] test policy::rules::cost_budget::tests::critical_budget_alert_becomes_strong_risk_recommendation ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::drift_from_unknown_provider_does_not_fire ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::drift_stays_silent_when_gate_disabled ... ok [INFO] [stdout] test policy::rules::cost_budget::tests::warning_budget_alert_becomes_warning_recommendation ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::drift_with_empty_paths_does_not_emit_worktree_finding ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::no_drift_emits_nothing ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::provider_drift_emits_concern_when_gate_enabled ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::simultaneous_provider_and_worktree_drift_produces_two_findings ... ok [INFO] [stdout] test policy::rules::identity_drift::tests::worktree_drift_emits_concern_when_gate_enabled ... ok [INFO] [stdout] test policy::rules::idle::tests::distinct_cause_transition_fires_new_alert ... ok [INFO] [stdout] test policy::rules::idle::tests::idle_state_none_fires_no_alert ... ok [INFO] [stdout] test policy::rules::idle::tests::limit_hit_fires_risk_severity ... ok [INFO] [stdout] test policy::rules::idle::tests::none_to_some_input_wait_fires_warning ... ok [INFO] [stdout] test policy::rules::idle::tests::same_cause_repeat_fires_no_new_alert ... ok [INFO] [stdout] test policy::rules::idle::tests::stale_fires_concern_severity_with_heuristic_source ... ok [INFO] [stdout] test policy::rules::idle::tests::work_complete_fires_concern_severity ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::custom_threshold_can_quiet_chronically_noisy_pane ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_on_qmonster_provider ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_on_review_role ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_error_rate_below_threshold ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_gate_disabled ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_low_confidence ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_pane_is_input_waiting ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_quota_tight_already_on ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_pane_is_permission_waiting ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::does_not_fire_when_window_not_full ... ok [INFO] [stdout] test policy::rules::cache::tests::both_rules_suppressed_when_cached_input_tokens_is_none ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::empty_history_never_fires ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::fires_when_error_rate_meets_threshold_for_claude_main ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::fires_at_exact_threshold_boundary ... ok [INFO] [stdout] test policy::rules::profiles::tests::codex_review_is_review_role_gated_and_independent_of_quota_tight ... ok [INFO] [stdout] test policy::rules::profiles::tests::gemini_default_and_gemini_script_low_token_are_mutually_exclusive_via_quota_tight_gate ... ok [INFO] [stdout] test policy::rules::profiles::tests::gemini_policy_review_is_review_role_gated_and_independent_of_quota_tight ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_claude_default_attaches_structured_profile_with_three_provider_official_levers ... ok [INFO] [stdout] test policy::rules::profiles::tests::high_risk_claude_levers_are_gated_to_claude_script_low_token_only ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_claude_default_fires_with_provider_official_levers_on_healthy_claude_main ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_claude_default_suppressed_on_non_claude_provider ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_claude_script_low_token_fires_on_quota_tight_with_eight_provider_official_levers_and_populated_side_effects ... ok [INFO] [stdout] test policy::rules::cache::tests::both_rules_suppressed_on_low_or_unknown_confidence ... ok [INFO] [stdout] test policy::rules::auto_memory::tests::fires_on_review_task_with_mdr_next_step_and_project_canonical_source ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_claude_script_low_token_suppressed_when_quota_tight_off ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_default_fires_with_honest_authority_labels_on_healthy_codex_main ... ok [INFO] [stdout] test policy::rules::concurrent::tests::concurrent_file_edit_with_missing_branch_has_no_copyable_command ... ok [INFO] [stdout] test app::insights_lifecycle::tests::hidden_flow_key_records_hidden_outcomes_for_included_recommendations ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_default_suppressed_on_non_codex_provider ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_default_suppressed_when_quota_tight_on ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_review_fires_on_review_role_with_honest_authority_labels ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_script_low_token_fires_on_quota_tight_with_honest_authority_labels_and_populated_side_effects ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_script_low_token_suppressed_on_non_codex_provider ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_codex_script_low_token_suppressed_when_quota_tight_off ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_default_fires_with_honest_authority_labels_on_healthy_gemini_main ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_default_suppressed_on_non_gemini_provider ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_default_suppressed_when_quota_tight_on ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_script_low_token_suppressed_on_non_gemini_provider ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_policy_review_fires_on_review_role_with_honest_authority_labels ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_script_low_token_fires_on_quota_tight_with_honest_authority_labels_and_populated_side_effects ... ok [INFO] [stdout] test policy::rules::profiles::tests::recommend_gemini_script_low_token_suppressed_when_quota_tight_off ... ok [INFO] [stdout] test policy::rules::reset::tests::both_windows_evaluate_independently ... ok [INFO] [stdout] test policy::rules::reset::tests::custom_snapshot_eta_threshold_from_gates_widens_imminent_window ... ok [INFO] [stdout] test policy::rules::reset::tests::custom_wait_pressure_threshold_from_gates_lets_lower_pressure_fire ... ok [INFO] [stdout] test policy::rules::reset::tests::both_rules_can_co_fire_at_high_pressure_and_imminent_reset ... ok [INFO] [stdout] test policy::rules::reset::tests::rules_skip_when_identity_confidence_low ... ok [INFO] [stdout] test policy::rules::reset::tests::rules_skip_when_resets_at_already_past ... ok [INFO] [stdout] test policy::rules::reset::tests::snapshot_before_reset_fires_when_eta_imminent_and_pressure_meaningful ... ok [INFO] [stdout] test policy::rules::reset::tests::rules_skip_when_already_in_input_or_permission_wait ... ok [INFO] [stdout] test policy::rules::reset::tests::snapshot_before_reset_skips_when_pressure_negligible ... ok [INFO] [stdout] test policy::rules::reset::tests::wait_for_reset_fires_when_pressure_high_and_eta_close ... ok [INFO] [stdout] test policy::rules::reset::tests::wait_for_reset_skips_when_eta_too_far ... ok [INFO] [stdout] test policy::rules::reset::tests::wait_for_reset_skips_when_pressure_below_threshold ... ok [INFO] [stdout] test store::anomaly_history::tests::capture_handles_empty_history ... ok [INFO] [stdout] test store::anomaly_history::tests::capture_then_replay_roundtrips_basic_fields ... ok [INFO] [stdout] test store::anomaly_history::tests::replay_preserves_deque_length_across_present_and_absent_ticks ... ok [INFO] [stdout] test store::anomaly_history::tests::replay_pushes_sentinel_for_absent_identity_and_error_hint ... ok [INFO] [stdout] test policy::rules::profile_switch::tests::uses_only_freshest_window_samples ... ok [INFO] [stdout] test policy::rules::profiles::tests::codex_default_and_codex_script_low_token_are_mutually_exclusive_via_quota_tight_gate ... ok [INFO] [stdout] test app::worktree_info::tests::worktree_role_cache_hits_within_ttl_and_misses_after ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_claude_status_captures_then_closes_surface ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_gemini_model_captures_then_closes_surface ... ok [INFO] [stdout] test store::archive_fs::tests::archive_files_live_under_archive_root_only ... ok [INFO] [stdout] test store::archive_fs::tests::long_tail_writes_full_and_returns_preview_plus_path ... ok [INFO] [stdout] test store::archive_fs::tests::short_tail_returns_preview_and_no_file_written ... ok [INFO] [stdout] test store::archive_fs::tests::pane_id_is_sanitized_for_filesystem ... ok [INFO] [stdout] test store::anomaly_sink::tests::snapshot_handles_absent_optional_fields ... ok [INFO] [stdout] test store::anomaly_sink::tests::insert_and_fetch_anomaly_event_roundtrip ... ok [INFO] [stdout] test store::audit::tests::parse_kind_inverts_as_str_for_every_variant ... ok [INFO] [stdout] test store::anomaly_sink::tests::upsert_then_fetch_history_snapshot_roundtrip_full_fixture ... ok [INFO] [stdout] test store::anomaly_sink::tests::run_retention_drops_events_older_than_days ... ok [INFO] [stdout] test store::anomaly_sink::tests::with_transaction_commits_on_ok ... ok [INFO] [stdout] test store::anomaly_sink::tests::upsert_history_snapshot_replaces_on_conflict ... ok [INFO] [stdout] test store::anomaly_sink::tests::fetch_recent_history_snapshots_filters_by_pane_id ... ok [INFO] [stdout] test store::anomaly_sink::tests::fetch_recent_anomaly_events_orders_newest_first ... ok [INFO] [stdout] test store::audit::tests::sqlite_audit_sink_is_send_sync ... ok [INFO] [stdout] test store::anomaly_sink::tests::run_retention_drops_old_history_snapshots ... ok [INFO] [stdout] test store::anomaly_sink::tests::anomaly_event_evidence_migrates_and_roundtrips ... ok [INFO] [stdout] test store::anomaly_sink::tests::fetch_recent_anomaly_events_respects_limit ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_gemini_model_retries_until_reset_rows_are_visible ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_retries_claude_capture_while_runtime_surface_is_loading ... ok [INFO] [stdout] test store::paths::tests::ensure_creates_all_expected_dirs ... ok [INFO] [stdout] test store::paths::tests::ensure_is_idempotent ... ok [INFO] [stdout] test store::paths::tests::ensure_refuses_to_leave_the_root ... ok [INFO] [stdout] test store::paths::tests::paths_respect_custom_root ... ok [INFO] [stdout] test store::rec_engagement::tests::engagement_rate_counts_copied_and_accepted_only ... ok [INFO] [stdout] test store::audit::tests::claude_settings_load_failed_audit_kind_roundtrips_through_sqlite ... ok [INFO] [stdout] test store::rec_engagement::tests::engagement_rate_is_none_for_zero_surfaced ... ok [INFO] [stdout] test store::audit::tests::open_is_idempotent ... ok [INFO] [stdout] test store::audit::tests::recent_audit_max_severity_returns_none_without_recent_rows ... ok [INFO] [stdout] test store::audit::tests::pricing_load_failed_audit_kind_roundtrips_through_sqlite ... ok [INFO] [stdout] test store::audit::tests::runtime_insert_failure_increments_error_count ... ok [INFO] [stdout] test store::audit::tests::p5_3_prompt_send_kinds_roundtrip_through_sqlite ... ok [INFO] [stdout] test store::audit::tests::prompt_send_audit_kinds_roundtrip_through_sqlite ... ok [INFO] [stdout] test store::audit::tests::schema_stores_metadata_fields_only ... ok [INFO] [stdout] test store::audit::tests::recent_audit_max_severity_respects_recency_window ... ok [INFO] [stdout] test store::recommendation_lifecycle::tests::lifecycle_outcome_label_round_trips ... ok [INFO] [stdout] test store::audit::tests::sqlite_audit_sink_persists_events ... ok [INFO] [stdout] test store::cost_usage::tests::nonpositive_budget_disables_alert_claims ... ok [INFO] [stdout] test store::cost_usage::tests::lower_cumulative_cost_counts_as_new_session_delta ... ok [INFO] [stdout] test store::retention::tests::sweep_removes_files_older_than_max_days ... ok [INFO] [stdout] test store::retention::tests::sweep_touches_archive_and_snapshots_only ... ok [INFO] [stdout] test store::retention::tests::zero_retention_is_a_no_op ... ok [INFO] [stdout] test store::sink::tests::in_memory_sink_is_send_sync ... ok [INFO] [stdout] test store::sink::tests::in_memory_sink_retains_events_in_order ... ok [INFO] [stdout] test store::sink::tests::noop_sink_discards_events ... ok [INFO] [stdout] test store::snapshots::tests::snapshot_writer_never_writes_under_mission_dir ... ok [INFO] [stdout] test store::snapshots::tests::write_produces_json_under_snapshot_dir ... ok [INFO] [stdout] test store::cost_usage::tests::budget_alerts_fire_once_at_80_and_100_percent ... ok [INFO] [stdout] test app::runtime_refresh::tests::runtime_refresh_claude_usage_and_stats_capture_then_close_surface ... ok [INFO] [stdout] test store::cost_usage::tests::records_positive_cost_deltas_without_double_counting_repeated_samples ... ok [INFO] [stdout] test store::rec_engagement::tests::engagement_rate_counts_distinct_engaged_events ... ok [INFO] [stdout] test store::rec_engagement::tests::missing_tables_return_empty_snapshot_with_flag ... ok [INFO] [stdout] test store::rec_engagement::tests::repeated_unlinked_copies_each_count ... ok [INFO] [stdout] test store::rec_engagement::tests::snapshot_matches_unlinked_copied_outcomes_by_pane_and_action ... ok [INFO] [stdout] test store::recommendation_lifecycle::tests::lifecycle_sink_round_trips_event_and_outcome_ids ... ok [INFO] [stdout] test store::rec_engagement::tests::snapshot_window_excludes_old_events ... ok [INFO] [stdout] test store::recommendation_lifecycle::tests::correlated_outcome_links_latest_prior_matching_event ... ok [INFO] [stdout] test store::rec_engagement::tests::unlinked_copy_does_not_match_cross_pane_event ... ok [INFO] [stdout] test tmux::commands::tests::capture_tail_args_match_polling_contract ... ok [INFO] [stdout] test tmux::commands::tests::list_panes_args_use_target_or_all_sessions ... ok [INFO] [stdout] test tmux::commands::tests::list_windows_and_current_target_args_are_format_driven ... ok [INFO] [stdout] test tmux::commands::tests::send_keys_args_keep_literal_payload_separate_from_submit_key ... ok [INFO] [stdout] test tmux::control_client::tests::attach_fallback_preserves_non_flag_attach_error ... ok [INFO] [stdout] test tmux::control_client::tests::attach_fallback_reports_both_errors_when_legacy_fails ... ok [INFO] [stdout] test tmux::control_client::tests::attach_fallback_uses_legacy_when_preferred_rejects_client_flag ... ok [INFO] [stdout] test tmux::control_client::tests::command_error_does_not_reconnect ... ok [INFO] [stdout] test tmux::control_client::tests::lifecycle_error_reconnects_once_and_retries_command ... ok [INFO] [stdout] test tmux::control_client::tests::reconnect_failure_includes_original_lifecycle_error ... ok [INFO] [stdout] test tmux::control_process::tests::attach_args_lock_tmux_control_mode_contract ... ok [INFO] [stdout] test tmux::control_process::tests::attach_error_includes_original_error_status_and_stderr ... ok [INFO] [stdout] test tmux::control_process::tests::attach_error_omits_blank_status_and_stderr ... ok [INFO] [stdout] test tmux::control_protocol::tests::control_block_reader_skips_notifications_before_begin ... ok [INFO] [stdout] test tmux::control_protocol::tests::control_block_reader_surfaces_error_body ... ok [INFO] [stdout] test tmux::control_protocol::tests::control_command_line_quotes_parser_sensitive_args ... ok [INFO] [stdout] test tmux::control_protocol::tests::control_transport_error_detection_targets_client_lifecycle_only ... ok [INFO] [stdout] test tmux::parity::tests::compare_all_targets_runs_the_union_of_available_targets ... ok [INFO] [stdout] test tmux::parity::tests::matching_sources_pass_with_trailing_tail_newline_difference ... ok [INFO] [stdout] test tmux::parity::tests::reports_structural_and_tail_mismatches ... ok [INFO] [stdout] test tmux::parity::tests::title_mismatches_warn_by_default_and_fail_when_strict ... ok [INFO] [stdout] test tmux::polling::tests::fixture_source_reports_unique_targets ... ok [INFO] [stdout] test store::sqlite::tests::audit_db_open_creates_anomaly_tables ... ok [INFO] [stdout] test store::recommendation_lifecycle::tests::lifecycle_sink_updates_active_duplicate_recommendation ... ok [INFO] [stdout] test tmux::polling::tests::fixture_source_returns_injected_panes ... ok [INFO] [stdout] test tmux::polling::tests::fixture_source_send_keys_is_a_noop_and_returns_ok ... ok [INFO] [stdout] test tmux::polling::tests::list_panes_uses_current_window_when_target_present ... ok [INFO] [stdout] test tmux::polling::tests::list_panes_without_target_uses_all_panes ... ok [INFO] [stdout] test tmux::polling::tests::send_keys_literal_flag_protects_against_tmux_keyname_collisions ... ok [INFO] [stdout] test tmux::polling::tests::send_keys_splits_literal_payload_from_terminal_submit_keystroke ... ok [INFO] [stdout] test tmux::polling_process::tests::stderr_text_trims_tmux_diagnostics ... ok [INFO] [stdout] test tmux::snapshots::tests::leaves_tail_empty_when_capture_fails ... ok [INFO] [stdout] test store::rec_engagement::tests::unlinked_copy_without_prior_event_is_dropped ... ok [INFO] [stdout] test tmux::snapshots::tests::hydrates_valid_pane_rows_with_captured_tail ... ok [INFO] [stdout] test tmux::targets::tests::normalize_tmux_pane_treats_missing_or_blank_as_absent ... ok [INFO] [stdout] test tmux::targets::tests::normalize_tmux_pane_trims_present_value ... ok [INFO] [stdout] test tmux::targets::tests::parse_current_target_preserves_first_row_only_contract ... ok [INFO] [stdout] test tmux::targets::tests::parse_window_targets_sorts_dedups_and_skips_invalid_rows ... ok [INFO] [stdout] test tmux::types::tests::pane_list_format_string_has_nine_tab_separated_fields ... ok [INFO] [stdout] test tmux::types::tests::parse_list_panes_rejects_short_rows ... ok [INFO] [stdout] test tmux::types::tests::parse_list_panes_row_splits_nine_fields_including_pid ... ok [INFO] [stdout] test tmux::types::tests::parse_list_panes_row_tolerates_missing_pane_pid_legacy_eight_fields ... ok [INFO] [stdout] test tmux::types::tests::parse_list_panes_row_treats_empty_pid_field_as_none ... ok [INFO] [stdout] test tmux::types::tests::parse_list_panes_row_treats_unparseable_pid_as_none ... ok [INFO] [stdout] test tmux::types::tests::parse_list_windows_row_extracts_session_and_window ... ok [INFO] [stdout] test tmux::types::tests::window_list_format_has_two_fields ... ok [INFO] [stdout] test ui::action_explainer::tests::render_lines_contains_title_target_payload_why_audit ... ok [INFO] [stdout] test ui::alerts::tests::actionable_items_beat_system_notices_on_same_priority_tie ... ok [INFO] [stdout] test ui::alerts::tests::alert_filter_matches_title_headline_details_and_command ... ok [INFO] [stdout] test ui::alerts::tests::alert_filter_matches_related_context_fields ... ok [INFO] [stdout] test ui::alerts::tests::alert_help_topic_at_row_maps_header_dismiss_summary_detail_and_copy ... ok [INFO] [stdout] test ui::alerts::tests::alert_filter_matches_related_evidence_and_keeps_item_visible ... ok [INFO] [stdout] test ui::alerts::tests::alert_filter_matches_included_alert_and_keeps_flow_visible ... ok [INFO] [stdout] test ui::alerts::tests::alert_items_with_command_reports_flow_command_and_pane ... ok [INFO] [stdout] test ui::alerts::tests::collects_items_one_per_recommendation ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_does_not_group_hot_cache_advice ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_does_not_group_cold_cache_advice ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_does_not_merge_different_panes ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_groups_context_and_cache_on_same_pane ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_requires_two_categories ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_key_uses_stable_projected_key ... ok [INFO] [stdout] test ui::alerts::tests::cross_pane_finding_details_surface_run_command ... ok [INFO] [stdout] test ui::alerts::tests::context_recovery_flow_preserves_highest_included_kind_priority ... ok [INFO] [stdout] test ui::alerts::tests::flow_visible_keys_fingerprints_and_bulk_hide_count_once ... ok [INFO] [stdout] test ui::alerts::tests::format_prompt_send_proposal_hides_accept_key_when_gate_denies ... ok [INFO] [stdout] test ui::alerts::tests::format_prompt_send_proposal_shows_both_keys_when_accept_is_gated_on ... ok [INFO] [stdout] test ui::alerts::tests::cross_pane_findings_beat_plain_recommendations_on_same_priority_tie ... ok [INFO] [stdout] test ui::alerts::tests::alert_title_carries_copy_chip_when_command_present ... ok [INFO] [stdout] test ui::alerts::tests::format_recommendation_body_keeps_next_before_run_for_non_strong_recommendation ... ok [INFO] [stdout] test ui::alerts::tests::format_strong_rec_body_omits_next_when_absent ... ok [INFO] [stdout] test ui::alerts::tests::fresh_alert_is_prefixed_with_new_and_timestamp ... ok [INFO] [stdout] test ui::alerts::tests::format_strong_rec_body_emits_next_before_run_in_order ... ok [INFO] [stdout] test ui::alerts::tests::fresh_alerts_sort_before_older_alerts_within_same_severity ... ok [INFO] [stdout] test ui::alerts::tests::alert_title_omits_chip_when_no_command ... ok [INFO] [stdout] test ui::alerts::tests::hidden_alert_is_filtered_after_deadline ... ok [INFO] [stdout] test ui::alerts::tests::hiding_one_related_item_does_not_hide_sibling ... ok [INFO] [stdout] test ui::alerts::tests::format_recommendation_body_renders_run_for_non_strong_recommendation ... ok [INFO] [stdout] test ui::alerts::tests::higher_severity_alerts_sort_before_lower_severity_alerts ... ok [INFO] [stdout] test ui::alerts::tests::latest_timestamp_breaks_same_severity_ties_after_newness ... ok [INFO] [stdout] test ui::alerts::tests::idle_alert_shows_unchecked_dismiss_marker ... ok [INFO] [stdout] test ui::alerts::tests::pending_auto_hide_keeps_alert_visible_with_dismiss_text ... ok [INFO] [stdout] test ui::alerts::tests::related_context_does_not_change_sort_order_or_bulk_count ... ok [INFO] [stdout] test ui::alerts::tests::related_context_does_not_link_different_panes ... ok [INFO] [stdout] test ui::alerts::tests::related_context_does_not_link_same_family_with_different_commands ... ok [INFO] [stdout] test ui::alerts::tests::related_context_includes_current_step_for_truncated_groups ... ok [INFO] [stdout] test ui::alerts::tests::related_context_does_not_decorate_items_consumed_by_flow ... ok [INFO] [stdout] test ui::alerts::tests::related_context_links_same_pane_same_command_without_collapsing ... ok [INFO] [stdout] test ui::alerts::tests::related_context_same_action_family_requires_shared_command_or_recovery_connector ... ok [INFO] [stdout] test ui::alerts::tests::related_copy_stays_item_local ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_suggested_command_rejects_comment_and_placeholder_commands ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_suggested_command_returns_none_without_run_command ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_suggested_command_returns_selected_run_command ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_suggested_command_uses_render_sort_inputs ... ok [INFO] [stdout] test ui::alerts::tests::selected_flow_copies_compact_and_returns_source_recommendation_identity ... ok [INFO] [stdout] test ui::alerts::tests::selected_flow_copy_meta_and_pending_action_use_command_source_kind ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_shows_inline_copy_line_when_command_present ... ok [INFO] [stdout] test ui::alerts::tests::selected_alert_no_copy_line_when_no_command ... ok [INFO] [stdout] test ui::alerts::tests::severity_bulk_chip_uses_partial_marker_when_only_some_are_pending_hide ... ok [INFO] [stdout] test ui::alerts::tests::severity_bulk_chips_ignore_system_notices ... ok [INFO] [stdout] test ui::alerts::tests::renders_context_recovery_flow_with_timeline_rail ... ok [INFO] [stdout] test ui::alerts::tests::wrap_text_splits_long_alerts_into_multiple_lines ... ok [INFO] [stdout] test ui::alerts::tests::wrap_with_prefix_hangs_under_timestamp_column ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::close_resets_view_and_clears_cache ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::open_resets_scroll_to_zero ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::overlay_starts_closed ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::overlay_starts_in_ring_view ... ok [INFO] [stdout] test ui::alerts::tests::renders_related_context_rail_without_collapsing_alerts ... ok [INFO] [stdout] test ui::alerts::tests::unselected_related_context_shows_summary_only ... ok [INFO] [stdout] test ui::alerts::tests::unselected_flow_omits_included_and_copy_detail ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_history_view_empty_shows_help_hint ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_history_view_shows_history_title_indicator ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::evidence_rows_render_only_when_expanded ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_populated_shows_columns_and_at_least_one_row ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_empty_state_includes_help_hint ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_ring_view_reports_end_at_last_full_page ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_truncates_long_reason ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_ring_view_labels_heuristic_anomaly_basis ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::scroll_down_clamps_at_max ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_ring_view_still_uses_h_history_hint ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::toggle_flips_state ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::toggle_view_back_to_ring_clears_cache ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::scroll_up_saturates_at_zero ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::toggle_view_clears_drag_anchor ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::toggle_view_to_history_with_cache ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_ring_view_keeps_scroll_status_in_footer_not_title ... ok [INFO] [stdout] test ui::dashboard::tests::compact_footer_keeps_detailed_keys_out_of_main_row ... ok [INFO] [stdout] test ui::dashboard::tests::compact_footer_uses_status_row_plus_key_row ... ok [INFO] [stdout] test ui::dashboard::tests::dashboard_rects_include_draggable_divider_between_lists ... ok [INFO] [stdout] test ui::dashboard::tests::dashboard_split_from_row_maps_drag_position_to_percent ... ok [INFO] [stdout] test ui::dashboard::tests::dashboard_split_keys_step_and_clamp ... ok [INFO] [stdout] test ui::dashboard::tests::dashboard_split_slash_cycle_advances_and_wraps ... ok [INFO] [stdout] test ui::anomaly_overlay::tests::render_uses_active_border_style ... ok [INFO] [stdout] test ui::dashboard::tests::footer_audit_concern_renders_dim ... ok [INFO] [stdout] test ui::dashboard::tests::footer_keys_badge_hugs_bottom_left_edge ... ok [INFO] [stdout] test ui::dashboard::tests::footer_nonzero_counts_render_severity_color ... ok [INFO] [stdout] test ui::dashboard::tests::footer_shows_copyable_alert_counter_when_present ... ok [INFO] [stdout] test ui::dashboard::tests::footer_shows_pending_proposal_counter_when_present ... ok [INFO] [stdout] test ui::dashboard::tests::footer_text_advertises_prompt_send_keys ... ok [INFO] [stdout] test ui::dashboard::tests::footer_zero_counts_render_dim ... ok [INFO] [stdout] test ui::dashboard::tests::help_continuation_prefix_hangs_bullet_under_value_column ... ok [INFO] [stdout] test ui::dashboard::tests::help_detail_line_aligns_label_and_description ... ok [INFO] [stdout] test ui::dashboard::tests::help_documents_action_explainer_for_pdy ... ok [INFO] [stdout] test ui::dashboard::tests::help_detail_line_indent_is_stable_across_rows ... ok [INFO] [stdout] test ui::dashboard::tests::help_documents_modal_x_close ... ok [INFO] [stdout] test ui::dashboard::tests::help_documents_overlay_chrome_contract ... ok [INFO] [stdout] test ui::dashboard::tests::help_lists_m_metrics_overlay_key ... ok [INFO] [stdout] test ui::dashboard::tests::help_lists_a_pending_actions_overlay_key ... ok [INFO] [stdout] test ui::dashboard::tests::help_lists_n_anomaly_events_overlay_key ... ok [INFO] [stdout] test ui::dashboard::tests::help_documents_toggle_close_on_S_P_t ... ok [INFO] [stdout] test ui::dashboard::tests::help_modal_documents_hover_help_and_settings_context ... ok [INFO] [stdout] test ui::dashboard::tests::help_overlay_documents_dashboard_resize_controls ... ok [INFO] [stdout] test ui::dashboard::tests::help_overlay_documents_p_and_d_prompt_send_actions ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_empty_reports_is_healthy ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_healthy_reports_pane_count_and_last_anomaly_age ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_labels_input_wait_distinctly ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_prioritizes_quota_pressure_after_risk ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_prioritizes_recent_promoted_anomaly_after_quota ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_prioritizes_risk_recommendation_after_waits ... ok [INFO] [stdout] test ui::dashboard::tests::now_strip_prioritizes_wait_state ... ok [INFO] [stdout] test store::retention::tests::sweep_deletes_token_usage_rows_older_than_max_days ... ok [INFO] [stdout] test ui::dashboard::tests::help_section_line_indices_returns_at_least_four_sections_in_order ... ok [INFO] [stdout] test ui::dashboard::tests::help_section_line_indices_targets_correspond_to_section_headers ... ok [INFO] [stdout] test ui::dashboard::tests::provider_setup_tab_index_at_uses_label_aware_boundaries ... ok [INFO] [stdout] test ui::dashboard::tests::scrollable_modal_hint_reports_progress_and_end ... ok [INFO] [stdout] test ui::dashboard::tests::split_divider_renders_ime_warning_when_active ... ok [INFO] [stdout] test ui::dashboard::tests::split_divider_renders_normal_resize_hint_when_ime_inactive ... ok [INFO] [stdout] test ui::dashboard::tests::version_badge_hugs_bottom_right_edge ... ok [INFO] [stdout] test ui::dashboard::tests::target_picker_hint_reports_list_progress_and_end ... ok [INFO] [stdout] test ui::dashboard::tests::version_badge_label_comes_from_build_embedded_git_version ... ok [INFO] [stdout] test ui::fx::tests::block_text_dimensions_match_rendered_lines ... ok [INFO] [stdout] test ui::dashboard::tests::wrapped_help_bullets_keep_continuations_under_value_column ... ok [INFO] [stdout] test ui::dashboard::tests::wrapped_help_detail_lines_keep_continuations_under_value_column ... ok [INFO] [stdout] test ui::dashboard::tests::help_scroll_budget_grows_when_viewport_narrows ... ok [INFO] [stdout] test ui::fx::tests::fx_fireworks_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::fx::tests::fx_confetti_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::fx::tests::fx_banner_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::fx::tests::fx_plasma_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::dashboard::tests::help_scroll_budget_grows_when_viewport_shrinks ... ok [INFO] [stdout] test ui::fx::tests::fx_matrix_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::help_glossary::tests::alert_help_mentions_flow_rows_in_both_languages ... ok [INFO] [stdout] test ui::help_glossary::tests::every_topic_has_korean_and_english_help ... ok [INFO] [stdout] test ui::fx::tests::fx_overlay_preserves_underlying_cells_outside_effect_glyphs ... ok [INFO] [stdout] test ui::fx::tests::render_block_text_handles_unknown_chars_with_solid_block ... ok [INFO] [stdout] test ui::hover_help::tests::bottom_drawer_leaves_a_right_gutter ... ok [INFO] [stdout] test ui::hover_help::tests::footer_key_legend_includes_full_dashboard_key_reference ... ok [INFO] [stdout] test ui::hover_help::tests::footer_key_legend_omits_generic_hover_chrome_lines ... ok [INFO] [stdout] test ui::fx::tests::fx_sampler_smoke_renders_without_panic_and_paints_sub_effect_chip ... ok [INFO] [stdout] test ui::hover_help::tests::footer_key_legend_uses_wide_rect ... ok [INFO] [stdout] test ui::fx::tests::fx_snow_smoke_renders_without_panic ... ok [INFO] [stdout] test ui::hover_help::tests::tooltip_height_uses_display_columns_for_korean_text ... ok [INFO] [stdout] test ui::hover_help::tests::tooltip_rect_height_accounts_for_wrapped_content ... ok [INFO] [stdout] test ui::hover_help::tests::tooltip_rect_leaves_a_right_gutter_near_viewport_edge ... ok [INFO] [stdout] test ui::hover_help::tests::tooltip_rect_stays_inside_viewport_near_bottom_right ... ok [INFO] [stdout] test ui::hover_help::tests::tooltip_width_uses_display_columns_for_korean_text ... ok [INFO] [stdout] test ui::hover_help::tests::wrap_to_width_breaks_korean_at_word_boundary ... ok [INFO] [stdout] test ui::hover_help::tests::wrap_to_width_breaks_long_unbroken_token ... ok [INFO] [stdout] test ui::insights::tests::advance_spinner_cycles_through_braille_phases ... ok [INFO] [stdout] test ui::insights::tests::advance_spinner_is_no_op_when_not_loading ... ok [INFO] [stdout] test ui::insights::tests::close_while_loading_drops_late_outcome ... ok [INFO] [stdout] test ui::insights::tests::is_stale_flips_after_threshold_and_stays_false_without_snapshot ... ok [INFO] [stdout] test ui::insights::tests::line_count_is_zero_while_loading ... ok [INFO] [stdout] test ui::hover_help::tests::footer_key_legend_render_omits_title_and_bottom_hint ... ok [INFO] [stdout] test ui::insights::tests::mark_loading_clears_loaded_at_so_age_disappears_under_spinner ... ok [INFO] [stdout] test ui::insights::tests::mark_loading_clears_snapshot_and_error ... ok [INFO] [stdout] test ui::insights::tests::mark_loading_sets_loading_flag_and_pending_id ... ok [INFO] [stdout] test ui::insights::tests::overlay_open_resets_scroll ... ok [INFO] [stdout] test ui::insights::tests::relative_age_label_covers_each_bucket_boundary ... ok [INFO] [stdout] test ui::insights::tests::relative_age_label_returns_none_without_loaded_snapshot ... ok [INFO] [stdout] test ui::dashboard::tests::provider_setup_modal_renders_without_panic ... ok [INFO] [stdout] test store::sqlite::tests::audit_db_open_creates_recommendation_lifecycle_tables ... ok [INFO] [stdout] test ui::insights::tests::loading_state_renders_centered_spinner_and_text ... ok [INFO] [stdout] test ui::insights::tests::set_snapshot_for_accepts_matching_request_id_with_err ... ok [INFO] [stdout] test ui::insights::tests::set_snapshot_for_accepts_matching_request_id_with_ok ... ok [INFO] [stdout] test ui::insights::tests::set_snapshot_for_drops_stale_request_id ... ok [INFO] [stdout] test ui::insights::tests::snapshot_lines_include_action_ledger ... ok [INFO] [stdout] test ui::labels::tests::ellipsize_handles_multi_byte_characters_by_char_count ... ok [INFO] [stdout] test ui::labels::tests::ellipsize_returns_input_when_within_budget ... ok [INFO] [stdout] test ui::labels::tests::ellipsize_truncates_with_single_ellipsis_glyph ... ok [INFO] [stdout] test ui::labels::tests::ellipsize_under_minimum_budget_returns_head_without_ellipsis ... ok [INFO] [stdout] test ui::labels::tests::format_count_with_suffix_handles_k_boundary ... ok [INFO] [stdout] test ui::labels::tests::format_count_with_suffix_handles_m_boundary ... ok [INFO] [stdout] test ui::labels::tests::format_count_with_suffix_handles_plain_integers ... ok [INFO] [stdout] test ui::insights::tests::render_keeps_scroll_status_in_footer_not_title ... ok [INFO] [stdout] test ui::metrics::tests::bar_width_scales_to_left_half_budget ... ok [INFO] [stdout] test ui::metrics::tests::cache_bar_uses_neutral_not_severity_color ... ok [INFO] [stdout] test ui::metrics::tests::card_row_does_not_overflow_inner_width ... ok [INFO] [stdout] test ui::metrics::tests::close_preserves_offset_and_size ... ok [INFO] [stdout] test ui::metrics::tests::codex_pane_split_resets_at_renders_in_metrics_overlay ... ok [INFO] [stdout] test ui::metrics::tests::codex_pane_without_resets_at_falls_back_to_dash ... ok [INFO] [stdout] test ui::metrics::tests::em_dash_for_missing_left_metrics ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_omits_falling_slope ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_omits_flat_slope ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_omits_insufficient_samples ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_omits_noisy_low_confidence_series ... ok [INFO] [stdout] test ui::metrics::tests::claude_codex_split_quota_still_renders_5h_and_7d ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_omits_when_threshold_already_passed ... ok [INFO] [stdout] test ui::metrics::tests::eta_chip_renders_for_rising_slope_within_threshold_window ... ok [INFO] [stdout] test ui::insights::tests::render_uses_active_border_style ... ok [INFO] [stdout] test ui::metrics::tests::gemini_pane_shows_quota_in_metrics_overlay ... ok [INFO] [stdout] test ui::metrics::tests::gemini_pane_uses_model_reset_runtime_fact_in_overlay ... ok [INFO] [stdout] test ui::metrics::tests::grow_clamps_to_max ... ok [INFO] [stdout] test ui::metrics::tests::hottest_banner_dim_when_no_pressure_data ... ok [INFO] [stdout] test ui::metrics::tests::mem_trend_arrow_glyphs ... ok [INFO] [stdout] test ui::metrics::tests::metrics_cache_bar_derives_ratio_from_raw_cached_tokens ... ok [INFO] [stdout] test ui::metrics::tests::metrics_lines_render_eta_banner_below_hottest_banner ... ok [INFO] [stdout] test ui::metrics::tests::hottest_banner_picks_max_pressure ... ok [INFO] [stdout] test ui::insights::tests::rendered_overlay_surfaces_populated_situations_section ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_bottom_clamp_keeps_1_row_visible ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_centered_95_by_90 ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_negative_offset_moves_left_up ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_left_clamp_snaps_to_viewport_x ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_partition_sums_to_area ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_right_clamp_keeps_4_cells_visible ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_zero_offset_matches_centered ... ok [INFO] [stdout] test ui::metrics::tests::open_close_round_trip ... ok [INFO] [stdout] test ui::metrics::tests::open_does_not_reset_size ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_positive_offset_moves_right_down ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_rects_top_clamp_snaps_to_viewport_y ... ok [INFO] [stdout] test ui::metrics::tests::pane_card_card_divider_starts_with_pane_label ... ok [INFO] [stdout] test ui::metrics::tests::pane_card_includes_anomalies_row_when_present ... ok [INFO] [stdout] test ui::metrics::tests::pane_card_includes_left_bars_and_right_timeseries ... ok [INFO] [stdout] test ui::metrics::tests::pane_cards_pack_without_blank_lines_between ... ok [INFO] [stdout] test ui::metrics::tests::pressure_bar_filled_cells_use_severity_color ... ok [INFO] [stdout] test ui::metrics::tests::pane_card_omits_anomalies_row_when_empty ... ok [INFO] [stdout] test ui::metrics::tests::pressure_bar_unfilled_cells_use_dim_color ... ok [INFO] [stdout] test ui::metrics::tests::render_metrics_lines_handles_empty_reports ... ok [INFO] [stdout] test ui::metrics::tests::render_metrics_lines_falls_back_to_dash_without_observation ... ok [INFO] [stdout] test ui::metrics::tests::render_metrics_lines_includes_banner_and_per_pane_cards ... ok [INFO] [stdout] test ui::metrics::tests::qmonster_metrics_card_omits_unrelated_placeholder_rows ... ok [INFO] [stdout] test ui::metrics::tests::render_metrics_lines_uses_real_mem_trend_when_available ... ok [INFO] [stdout] test ui::metrics::tests::reset_size_returns_to_defaults ... ok [INFO] [stdout] test ui::metrics::tests::right_column_combined_cost_mem_row_drops_separator_when_only_cost ... ok [INFO] [stdout] test ui::metrics::tests::reset_size_also_zeros_offset ... ok [INFO] [stdout] test ui::metrics::tests::right_column_combined_reset_row_drops_separator_when_one_missing ... ok [INFO] [stdout] test ui::metrics::tests::scroll_saturates_at_zero_and_max ... ok [INFO] [stdout] test ui::metrics::tests::shrink_clamps_to_min ... ok [INFO] [stdout] test ui::metrics::tests::update_mem_observation_detects_down_trend ... ok [INFO] [stdout] test ui::metrics::tests::update_mem_observation_second_call_computes_trend ... ok [INFO] [stdout] test ui::metrics::tests::update_mem_observation_steady_threshold_for_rss ... ok [INFO] [stdout] test ui::metrics::tests::update_pressure_observation_clears_trend_when_metric_disappears ... ok [INFO] [stdout] test ui::metrics::tests::update_pressure_observation_emits_up_down_steady_against_prior_value ... ok [INFO] [stdout] test ui::metrics::tests::update_pressure_observation_treats_sub_epsilon_jitter_as_steady ... ok [INFO] [stdout] test ui::metrics::tests::update_pressure_observation_first_call_seeds_values_with_none_trends ... ok [INFO] [stdout] test ui::modal_chrome::tests::begin_drag_stores_anchor_and_end_drag_clears_it ... ok [INFO] [stdout] test ui::modal_chrome::tests::constructor_clamps_out_of_range_defaults_and_bounds ... ok [INFO] [stdout] test ui::modal_chrome::tests::constructor_initializes_default_size_zero_offset_and_no_drag ... ok [INFO] [stdout] test ui::modal_chrome::tests::bottom_soft_clamp_clips_height_to_visible_viewport_height ... ok [INFO] [stdout] test ui::metrics::tests::update_mem_observation_first_call_has_no_trend ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_area_clamps_percentages_before_centering ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_area_applies_positive_offset ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_area_left_top_clamps_hard ... ok [INFO] [stdout] test ui::metrics::tests::metrics_modal_keeps_scroll_status_in_footer_not_title ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_area_right_bottom_leaves_visible_grip ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_area_with_zero_offset_matches_centered_rect ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_body_rect_excludes_border_and_title_row ... ok [INFO] [stdout] test ui::modal_chrome::tests::right_soft_clamp_clips_width_to_visible_viewport_width ... ok [INFO] [stdout] test ui::modal_chrome::tests::title_row_contains_only_top_row_within_x_range ... ok [INFO] [stdout] test ui::panels::tests::cache_chip_text_marks_gemini_stats_without_cache_reads_as_unsupported ... ok [INFO] [stdout] test ui::panels::tests::cache_chip_text_renders_per_provider_placeholder ... ok [INFO] [stdout] test ui::modal_chrome::tests::shrink_grow_and_reset_geometry ... ok [INFO] [stdout] test ui::modal_chrome::tests::modal_body_rect_saturates_for_tiny_areas ... ok [INFO] [stdout] test ui::panels::tests::active_transition_renders_temporary_state_row ... ok [INFO] [stdout] test ui::panels::tests::collapsed_pane_keeps_flat_layout_without_section_headers ... ok [INFO] [stdout] test ui::panels::tests::collapsed_pane_with_pending_proposal_does_not_shift_hover_topics ... ok [INFO] [stdout] test ui::panels::tests::cost_metric_severity_thresholds_match_advisory_rule_pair ... ok [INFO] [stdout] test ui::panels::tests::expanded_pane_keeps_empty_recommendations_state_under_section ... ok [INFO] [stdout] test ui::panels::tests::expanded_recommendation_detail_fields_align_to_label_column ... ok [INFO] [stdout] test ui::panels::tests::format_agent_memory_bytes_at_or_above_mib_renders_mb ... ok [INFO] [stdout] test ui::panels::tests::expanded_pane_uses_sectioned_single_column_order ... ok [INFO] [stdout] test ui::panels::tests::expired_active_transition_flash_removes_state_row ... ok [INFO] [stdout] test ui::panels::tests::expanded_pane_help_topics_follow_sectioned_rows ... ok [INFO] [stdout] test ui::panels::tests::format_agent_memory_bytes_below_mib_renders_kb ... ok [INFO] [stdout] test ui::panels::tests::format_cache_hit_ratio_returns_none_when_both_inputs_are_none ... ok [INFO] [stdout] test ui::panels::tests::format_cache_hit_ratio_returns_none_when_cached_is_zero_and_input_is_zero ... ok [INFO] [stdout] test ui::panels::tests::format_elapsed_uses_clock_style_for_fast_scanning ... ok [INFO] [stdout] test ui::panels::tests::format_profile_lines_appends_side_effects_section_when_profile_has_side_effects ... ok [INFO] [stdout] test ui::panels::tests::format_profile_lines_exposes_lever_key_value_citation_and_source_kind_badge ... ok [INFO] [stdout] test ui::panels::tests::format_profile_lines_is_empty_when_rec_carries_no_profile ... ok [INFO] [stdout] test ui::panels::tests::format_profile_lines_omits_side_effects_section_when_profile_side_effects_is_empty ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_caps_at_14_days ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_renders_days_at_exactly_24h_boundary ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_renders_days_for_long_etas ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_renders_hours_and_minutes_under_24h ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_renders_minutes_only_under_1h ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_renders_seconds_only_under_1m ... ok [INFO] [stdout] test ui::panels::tests::format_cache_hit_ratio_codex_welcome_panel_example ... ok [INFO] [stdout] test ui::panels::tests::format_resets_eta_returns_none_for_past_timestamps ... ok [INFO] [stdout] test ui::panels::tests::idle_header_state_label_persists_after_flash_window ... ok [INFO] [stdout] test ui::panels::tests::idle_state_tints_header_when_no_recommendations_are_active ... ok [INFO] [stdout] test ui::panels::tests::idle_state_title_prefix_is_same_for_expanded_and_collapsed_cards ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_emits_cache_placeholder_per_provider ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_includes_cache_badge_when_cached_input_tokens_set ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_includes_mem_file_badge_when_agent_memory_bytes_set ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_includes_policy_mini_strip ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_omits_mem_file_when_agent_memory_bytes_none ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_returns_empty_vec_when_no_fields ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_returns_two_rows_when_context_fields_present ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_lines_render_reset_etas ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_lines_surface_first_model_reset_fact ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_lines_wrap_many_badges_with_indented_continuations ... ok [INFO] [stdout] test ui::panels::tests::metric_badge_line_returns_single_row_when_only_primary_fields_present ... ok [INFO] [stdout] test ui::panels::tests::metric_row_emits_memory_file_when_agent_memory_bytes_set ... ok [INFO] [stdout] test ui::panels::tests::metric_row_renders_badge_per_metric ... ok [INFO] [stdout] test ui::panels::tests::metric_row_renders_git_branch_and_worktree_and_effort ... ok [INFO] [stdout] test ui::panels::tests::metric_row_renders_model_name_line_when_populated ... ok [INFO] [stdout] test ui::panels::tests::metric_row_renders_quota_pressure_when_populated ... ok [INFO] [stdout] test ui::panels::tests::metric_row_uses_count_suffix_for_tokens ... ok [INFO] [stdout] test ui::panels::tests::pane_card_does_not_show_proposal_when_collapsed ... ok [INFO] [stdout] test ui::panels::tests::pane_card_severity_reason_wraps_long_text ... ok [INFO] [stdout] test ui::panels::tests::pane_card_path_line_wraps_when_narrow ... ok [INFO] [stdout] test ui::panels::tests::metric_row_emits_cache_when_cached_input_tokens_set ... ok [INFO] [stdout] test ui::panels::tests::pane_card_shows_inline_proposal_line_when_pending ... ok [INFO] [stdout] test ui::panels::tests::pane_card_title_omits_chip_when_no_proposal ... ok [INFO] [stdout] test ui::panels::tests::pane_card_title_carries_pending_proposal_chip ... ok [INFO] [stdout] test ui::panels::tests::pane_cards_render_current_command_row ... ok [INFO] [stdout] test ui::panels::tests::pane_panel_keeps_empty_recommendations_state_under_section ... ok [INFO] [stdout] test ui::panels::tests::pane_panel_title_appends_cli_version_after_provider_role ... ok [INFO] [stdout] test ui::panels::tests::pane_panel_title_omits_cli_version_for_qmonster_pane ... ok [INFO] [stdout] test ui::panels::tests::pane_index_at_row_handles_wrapped_path_line ... ok [INFO] [stdout] test ui::panels::tests::pane_state_row_wraps_long_marker_text ... ok [INFO] [stdout] test ui::panels::tests::panel_title_includes_identity_and_confidence ... ok [INFO] [stdout] test ui::panels::tests::panel_title_marks_identity_conflict ... ok [INFO] [stdout] test ui::panels::tests::panel_title_omits_unknown_role_word ... ok [INFO] [stdout] test ui::panels::tests::path_row_appends_wt_of_suffix_when_pane_is_in_linked_worktree ... ok [INFO] [stdout] test ui::panels::tests::path_row_renders_unchanged_for_primary_worktree ... ok [INFO] [stdout] test ui::panels::tests::path_row_renders_unchanged_when_worktree_role_is_none ... ok [INFO] [stdout] test ui::panels::tests::policy_mini_strip_provider_matrix_known_and_unknown_states ... ok [INFO] [stdout] test ui::panels::tests::render_token_sparkline_emits_token_label_and_seven_block_chars ... ok [INFO] [stdout] test ui::panels::tests::render_token_sparkline_returns_none_when_fewer_than_two_samples ... ok [INFO] [stdout] test ui::panels::tests::runtime_badge_lines_render_model_reset_facts ... ok [INFO] [stdout] test ui::panels::tests::runtime_badge_lines_render_session_facts ... ok [INFO] [stdout] test ui::panels::tests::pane_panel_uses_sectioned_order_and_keeps_top_six_recommendations ... ok [INFO] [stdout] test ui::panels::tests::runtime_badge_lines_returns_one_row_per_populated_group ... ok [INFO] [stdout] test ui::panels::tests::runtime_badge_lines_wrap_many_facts_with_indented_continuations ... ok [INFO] [stdout] test ui::panels::tests::runtime_row_groups_modes_access_loaded_and_restricted_facts ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_renders_cache_read_and_create_counts_when_available ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_renders_token_input_output_when_available ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_renders_token_sparkline_before_recommendation_details ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_shows_token_collecting_state_near_metrics ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_token_sparkline_renders_latest_and_delta_values ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_token_sparkline_uses_no_badge_background ... ok [INFO] [stdout] test ui::panels::tests::selected_qmonster_pane_omits_token_row_even_with_stale_samples ... ok [INFO] [stdout] test ui::panels::tests::selection_highlight_stays_stable_during_state_flash ... ok [INFO] [stdout] test ui::panels::tests::pane_help_topic_at_row_maps_sectioned_core_rows ... ok [INFO] [stdout] test ui::panels::tests::format_agent_memory_bytes_below_kib_renders_lt_1_kb ... ok [INFO] [stdout] test ui::panels::tests::selection_marker_does_not_encode_state_flash ... ok [INFO] [stdout] test ui::panels::tests::signal_chips_reflect_booleans ... ok [INFO] [stdout] test ui::panels::tests::state_flash_header_names_state_changed_for_all_selection_states ... ok [INFO] [stdout] test ui::panels::tests::state_row_omitted_for_idle_state_none ... ok [INFO] [stdout] test ui::panels::tests::state_row_renders_input_wait_with_yellow_glyph_and_label ... ok [INFO] [stdout] test ui::panels::tests::state_row_renders_limit_hit_as_usage_limit ... ok [INFO] [stdout] test ui::panels::tests::state_summary_line_uses_full_words_instead_of_chips ... ok [INFO] [stdout] test ui::panels::tests::wrap_aligned_field_continuation_indent_matches_label_col ... ok [INFO] [stdout] test ui::panels::tests::state_row_marks_recent_transition_as_changed ... ok [INFO] [stdout] test ui::panels::tests::wrap_aligned_field_no_wrap_when_value_fits ... ok [INFO] [stdout] test ui::panels::tests::selected_pane_panel_renders_token_breakdown_when_available ... ok [INFO] [stdout] test ui::panels::tests::wrap_aligned_field_handles_narrow_width_gracefully ... ok [INFO] [stdout] test ui::pending_actions::tests::auto_prune_drops_keys_no_longer_in_items ... ok [INFO] [stdout] test ui::pending_actions::tests::close_preserves_size_and_offset ... ok [INFO] [stdout] test ui::pending_actions::tests::close_clears_multi_selected ... ok [INFO] [stdout] test ui::pending_actions::tests::close_preserves_list_width_override ... ok [INFO] [stdout] test ui::pending_actions::tests::collect_pending_items_groups_proposals_then_copies ... ok [INFO] [stdout] test ui::pending_actions::tests::collect_pending_items_skips_alerts_without_run_command ... ok [INFO] [stdout] test ui::pending_actions::tests::empty_list_renders_no_pending_actions_message ... ok [INFO] [stdout] test ui::pending_actions::tests::hint_caps_copy_count_at_one_when_multi_has_two_alerts ... ok [INFO] [stdout] test ui::pending_actions::tests::group_toggle_p_selects_then_deselects_all_proposals ... ok [INFO] [stdout] test ui::pending_actions::tests::hint_shows_action_counts_for_cursor_proposal_no_multi ... ok [INFO] [stdout] test ui::pending_actions::tests::hint_shows_multi_counts ... ok [INFO] [stdout] test ui::pending_actions::tests::hint_text_includes_confirm_actions_bypass_chip ... ok [INFO] [stdout] test ui::pending_actions::tests::hint_text_reports_list_progress_and_end ... ok [INFO] [stdout] test ui::pending_actions::tests::lines_render_checkbox_unchecked_for_non_multi ... ok [INFO] [stdout] test ui::pending_actions::tests::list_width_override_clamps_to_min_max ... ok [INFO] [stdout] test ui::pending_actions::tests::lines_render_checkbox_checked_when_multi_selected ... ok [INFO] [stdout] test ui::pending_actions::tests::list_lines_render_proposal_and_copy_rows ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_bottom_clamp_keeps_1_row_visible ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_left_clamp_snaps_to_viewport_x ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_positive_offset_moves_right_down ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_top_clamp_snaps_to_viewport_y ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_uses_80x65_with_min_72_20 ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_right_clamp_keeps_4_cells_visible ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_area_zero_offset_centers_modal ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_rects_narrow_mode_splits_horizontally ... ok [INFO] [stdout] test ui::pending_actions::tests::modal_rects_wide_mode_splits_vertically_with_dynamic_list ... ok [INFO] [stdout] test ui::pending_actions::tests::open_close_round_trip ... ok [INFO] [stdout] test ui::pending_actions::tests::group_toggle_a_selects_then_deselects_all_items ... ok [INFO] [stdout] test ui::pending_actions::tests::pending_item_key_copy_uses_title_command ... ok [INFO] [stdout] test ui::pending_actions::tests::pending_item_key_proposal_uses_proposal_id ... ok [INFO] [stdout] test ui::pending_actions::tests::prune_to_clamps_selected_when_items_shrink ... ok [INFO] [stdout] test ui::pending_actions::tests::reset_size_also_clears_list_override ... ok [INFO] [stdout] test ui::pending_actions::tests::seen_first_open_starts_false_and_persists_across_close_open ... ok [INFO] [stdout] test ui::pending_actions::tests::reset_size_returns_to_defaults_and_zeros_offset ... ok [INFO] [stdout] test ui::pending_actions::tests::select_total_zero_keeps_cursor_at_zero ... ok [INFO] [stdout] test ui::pending_actions::tests::shrink_grow_clamp_to_min_max ... ok [INFO] [stdout] test ui::pending_actions::tests::title_includes_selected_count_when_multi_non_empty ... ok [INFO] [stdout] test ui::pending_actions::tests::title_omits_selected_count_when_empty ... ok [INFO] [stdout] test ui::pending_actions::tests::toggle_multi_adds_then_removes ... ok [INFO] [stdout] test ui::pending_actions::tests::wide_mode_list_width_clamps_at_max ... ok [INFO] [stdout] test ui::pending_actions::tests::wide_mode_list_width_clamps_at_min ... ok [INFO] [stdout] test ui::pending_actions::tests::wide_mode_list_width_uses_60pct_in_mid_range ... ok [INFO] [stdout] test ui::pending_actions::tests::wide_mode_list_width_uses_override_when_set ... ok [INFO] [stdout] test ui::pending_actions::tests::narrow_mode_renders_horizontal_separator_at_explainer_top ... ok [INFO] [stdout] test ui::pending_actions::tests::widen_narrow_step_by_two ... ok [INFO] [stdout] test ui::provider_honesty::tests::cache_hit_ratio_uses_cached_over_input_plus_cached ... ok [INFO] [stdout] test ui::provider_honesty::tests::gemini_with_stats_but_no_cache_reads_is_structurally_unsupported ... ok [INFO] [stdout] test ui::provider_honesty::tests::gemini_without_stats_is_pending_not_structurally_denied ... ok [INFO] [stdout] test ui::provider_setup::tests::claude_tab_mentions_f7c_reset_advisories ... ok [INFO] [stdout] test ui::provider_setup::tests::codex_tab_mentions_f7c_reset_advisories ... ok [INFO] [stdout] test ui::pending_actions::tests::select_clamps_to_last_item ... ok [INFO] [stdout] test ui::provider_setup::tests::detect_claude_state_reports_basic_script_with_no_cache ... ok [INFO] [stdout] test ui::provider_setup::tests::detect_claude_state_reports_cache_when_present ... ok [INFO] [stdout] test ui::provider_setup::tests::detect_gemini_footer_state_handles_missing_file ... ok [INFO] [stdout] test ui::provider_setup::tests::detect_gemini_footer_state_parses_settings_json ... ok [INFO] [stdout] test ui::provider_setup::tests::overlay_open_close_round_trip ... ok [INFO] [stdout] test ui::provider_setup::tests::render_tab_content_claude_includes_state_and_snippet ... ok [INFO] [stdout] test ui::provider_setup::tests::from_config_seeds_read_only_flags_from_provider_setup_section ... ok [INFO] [stdout] test ui::provider_setup::tests::render_tab_content_claude_shows_sidefile_when_enabled_by_settings ... ok [INFO] [stdout] test ui::provider_setup::tests::render_tab_content_codex_surfaces_settings_value_and_y_copy_target ... ok [INFO] [stdout] test ui::provider_setup::tests::render_tab_content_tmux_documents_targets_and_next_steps ... ok [INFO] [stdout] test ui::provider_setup::tests::render_tab_content_gemini_marks_non_copied_notes ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_claude_with_sidefile_appends_addon ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_codex_default_is_just_the_statusline_guide ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_codex_with_app_server_appends_guide ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_gemini_returns_settings_json_only ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_tmux_returns_installer_for_launcher_and_conf ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_claude_default_is_just_the_base_script ... ok [INFO] [stdout] test ui::provider_setup::tests::snippet_for_tab_tmux_sources_conf_before_new_session_splits ... ok [INFO] [stdout] test ui::provider_setup::tests::sync_from_config_refreshes_read_only_integration_flags ... ok [INFO] [stdout] test ui::scroll_hint::tests::scroll_status_reports_end_at_or_beyond_max ... ok [INFO] [stdout] test ui::scroll_hint::tests::scroll_status_reports_more_before_end ... ok [INFO] [stdout] test ui::settings::tests::backspace_pops_one_char ... ok [INFO] [stdout] test ui::settings::tests::badges_tab_explains_cost_context_and_source_labels ... ok [INFO] [stdout] test ui::settings::tests::badges_tab_includes_anomalies_description ... ok [INFO] [stdout] test ui::settings::tests::cancel_edit_clears_buffer_without_changing_config ... ok [INFO] [stdout] test ui::settings::tests::clear_override_on_default_field_is_noop ... ok [INFO] [stdout] test ui::settings::tests::clear_override_on_provider_field_restores_default ... ok [INFO] [stdout] test ui::settings::tests::close_button_rect_clamps_to_tiny_body ... ok [INFO] [stdout] test ui::settings::tests::close_button_rect_sits_at_top_right_of_body ... ok [INFO] [stdout] test ui::settings::tests::close_button_rect_stays_inside_body_bounds ... ok [INFO] [stdout] test ui::settings::tests::close_unsets_open_and_clears_edit_buffer ... ok [INFO] [stdout] test ui::settings::tests::commit_creates_provider_override_when_editing_unset_provider_field ... ok [INFO] [stdout] test ui::provider_setup::tests::detect_claude_state_reports_missing_when_no_file ... ok [INFO] [stdout] test store::rec_engagement::tests::snapshot_groups_outcomes_by_action ... ok [INFO] [stdout] test ui::settings::tests::commit_negative_cost_returns_error ... ok [INFO] [stdout] test ui::settings::tests::commit_pct_outside_unit_range_returns_error ... ok [INFO] [stdout] test ui::settings::tests::commit_quota_codex_weekly_creates_split_override_only ... ok [INFO] [stdout] test ui::settings::tests::commit_unparseable_buffer_returns_error ... ok [INFO] [stdout] test ui::settings::tests::commit_valid_cost_default_warning_updates_config ... ok [INFO] [stdout] test ui::settings::tests::commit_warning_above_critical_returns_error ... ok [INFO] [stdout] test ui::settings::tests::default_overlay_is_closed ... ok [INFO] [stdout] test ui::settings::tests::effective_field_falls_through_to_default_when_unset ... ok [INFO] [stdout] test ui::settings::tests::integration_tab_toggles_provider_setup_values ... ok [INFO] [stdout] test ui::settings::tests::integrations_tab_shows_provider_setup_values_and_guidance ... ok [INFO] [stdout] test ui::settings::tests::next_field_advances_through_all_fields_and_wraps ... ok [INFO] [stdout] test ui::settings::tests::next_field_is_noop_during_edit ... ok [INFO] [stdout] test ui::settings::tests::next_parameter_no_op_when_filter_matches_nothing ... ok [INFO] [stdout] test ui::settings::tests::open_sets_open_and_focuses_first_field ... ok [INFO] [stdout] test ui::settings::tests::parameters_hint_mentions_hover_help_keys ... ok [INFO] [stdout] test ui::settings::tests::parameter_bool_enum_number_and_string_edits_update_config ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_exposes_editable_fields_for_all_config_sections ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_explains_selected_hover_help_parameter ... ok [INFO] [stdout] test ui::settings::tests::next_parameter_skips_fields_filtered_out_by_active_filter ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_includes_anomaly_retention_days_row ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_custom_policy_inputs ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_anomaly_section ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_includes_anomaly_promote_section ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_reset_auto_snapshot_row ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_hover_help_settings ... ok [INFO] [stdout] test ui::pending_actions::tests::wide_mode_renders_vertical_separator_at_list_right_edge ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_v2_anomaly_thresholds ... ok [INFO] [stdout] test ui::settings::tests::prev_field_reverses ... ok [INFO] [stdout] test ui::settings::tests::quota_fields_split_claude_and_codex_5h_weekly_scopes ... ok [INFO] [stdout] test ui::settings::tests::prev_parameter_skips_fields_filtered_out_by_active_filter ... ok [INFO] [stdout] test ui::settings::tests::read_field_returns_default_warning_for_cost ... ok [INFO] [stdout] test ui::settings::tests::read_field_returns_none_for_unset_per_provider_override ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_anomaly_rows_show_promotion_annotation ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_anomaly_rows_show_supports_suffix_for_asymmetric_detectors ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_anomaly_rows_use_configured_threshold_value ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_omits_supports_suffix_for_fully_cross_provider_detectors ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_shows_dynamic_activation_conditions ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_shows_four_anomaly_rows ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_shows_insights_config ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_shows_insights_ttl_rule ... ok [INFO] [stdout] test ui::settings::tests::rules_tab_shows_v2_anomaly_rows ... ok [INFO] [stdout] test ui::settings::tests::parameters_scroll_end_uses_last_selectable_row_not_status_footer ... ok [INFO] [stdout] test ui::settings::tests::parameters_tab_uses_side_help_panel_on_wide_modal ... ok [INFO] [stdout] test ui::settings::tests::save_falls_back_to_pretty_serialize_when_file_does_not_exist ... ok [INFO] [stdout] test ui::settings::tests::save_preserves_top_level_comments_in_existing_file ... ok [INFO] [stdout] test ui::settings::tests::save_updates_provider_setup_values_in_existing_file ... ok [INFO] [stdout] test ui::settings::tests::save_with_invalid_pair_returns_error_without_writing ... ok [INFO] [stdout] test ui::settings::tests::save_preserves_unrelated_section_comments_and_keys ... ok [INFO] [stdout] test ui::settings::tests::settings_edit_hint_distinguishes_text_parameters ... ok [INFO] [stdout] test ui::settings::tests::save_updates_target_threshold_value_in_existing_file ... ok [INFO] [stdout] test ui::settings::tests::settings_hint_reports_scroll_progress_and_end ... ok [INFO] [stdout] test ui::settings::tests::settings_field_at_maps_body_rows_to_warning_and_critical_cells ... ok [INFO] [stdout] test ui::settings::tests::settings_tab_index_at_uses_rendered_label_boundaries ... ok [INFO] [stdout] test ui::settings::tests::settings_tab_strip_renders_inter_group_seam_between_parameters_and_rules ... ok [INFO] [stdout] test ui::settings::tests::start_edit_initializes_buffer_with_effective_value ... ok [INFO] [stdout] test ui::settings::tests::save_writes_parameter_values_into_existing_toml ... ok [INFO] [stdout] test ui::settings::tests::save_writes_toml_to_path_and_marks_clean ... ok [INFO] [stdout] test ui::settings::tests::tab_navigation_cycles_and_is_noop_during_edit ... ok [INFO] [stdout] test ui::theme::tests::dark_and_high_contrast_text_dim_match_legacy_constant ... ok [INFO] [stdout] test ui::theme::tests::each_severity_maps_to_a_distinct_color ... ok [INFO] [stdout] test ui::theme::tests::light_theme_severity_colors_stay_distinct ... ok [INFO] [stdout] test ui::settings::tests::type_char_appends_digits_and_dot_only ... ok [INFO] [stdout] test ui::theme::tests::modal_close_style_uses_active_border_not_severity ... ok [INFO] [stdout] test ui::theme::tests::light_theme_text_dim_differs_from_dark ... ok [INFO] [stdout] test ui::theme::tests::theme_mode_round_trips_through_atomic_for_every_variant ... ok [INFO] [stdout] test ui::theme::tests::theme_mode_cycle_covers_dark_high_contrast_light_in_order ... ok [INFO] [stdout] test ui::settings::tests::settings_integration_field_at_maps_body_rows ... ok [INFO] [stdout] test ui::settings::tests::save_writes_dirty_hover_help_parameters ... ok [INFO] [stdout] test store::sqlite::tests::audit_db_open_is_idempotent_for_anomaly_tables ... ok [INFO] [stdout] test store::token_usage::tests::provider_round_trips_through_sqlite_for_every_variant ... ok [INFO] [stdout] test store::token_usage::tests::recent_samples_filters_by_pane_id ... ok [INFO] [stdout] test store::token_usage::tests::recent_samples_returns_newest_first_capped_at_limit ... ok [INFO] [stdout] test store::token_usage::tests::record_sample_accepts_none_in_token_fields ... ok [INFO] [stdout] test store::token_usage::tests::record_sample_error_count_increments_on_forced_failure ... ok [INFO] [stdout] test store::token_usage::tests::record_sample_round_trip_returns_inserted_row ... ok [INFO] [stdout] test store::token_usage::tests::record_sample_round_trips_cached_input_tokens ... ok [INFO] [stdout] test ui::hover_help::tests::every_topic_respects_gutter_with_diverse_hover_anchors ... ok [INFO] [stdout] test ui::hover_help::tests::every_topic_renders_inside_right_gutter_at_common_widths ... ok [INFO] [stdout] test ui::hover_help::tests::right_border_column_is_never_overwritten_by_content ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/qmonster-215ded5b33b7b4c9) [INFO] [stdout] [INFO] [stdout] test result: ok. 1564 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.42s [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.01s [INFO] [stdout] [INFO] [stderr] Running unittests src/bin/qmonster-tmux-parity.rs (/opt/rustwide/target/debug/deps/qmonster_tmux_parity-208fe184e025f69b) [INFO] [stdout] [INFO] [stderr] Running tests/cli_insights_integration.rs (/opt/rustwide/target/debug/deps/cli_insights_integration-50304f6c5831b318) [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.01s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test insights_keeps_canonical_env_root_precedence ... ok [INFO] [stdout] test insights_since_on_missing_root_prints_empty_report_without_creating_files ... ok [INFO] [stdout] test once_with_subcommand_is_rejected_before_work ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.69s [INFO] [stdout] [INFO] [stderr] Running tests/event_loop_integration.rs (/opt/rustwide/target/debug/deps/event_loop_integration-346a8ebae7c13444) [INFO] [stdout] [INFO] [stdout] running 69 tests [INFO] [stdout] test codex_status_line_end_to_end_without_pricing_populates_three_metrics ... ok [INFO] [stdout] test capturing_source_records_send_keys_calls ... ok [INFO] [stdout] test capturing_source_propagates_configured_error ... ok [INFO] [stdout] test context_initializes_insights_load_channel_and_request_id ... ok [INFO] [stdout] test claude_adapter_end_to_end_reads_model_from_claude_settings ... ok [INFO] [stdout] test codex_status_line_end_to_end_populates_four_metrics ... ok [INFO] [stdout] test codex_status_line_end_to_end_populates_seven_metrics ... ok [INFO] [stdout] test concurrent_mutating_work_surfaces_in_cross_pane_findings ... ok [INFO] [stdout] test concurrent_does_not_trigger_across_different_current_paths ... ok [INFO] [stdout] test cost_pressure_critical_rec_fires_end_to_end_on_codex_pane ... ok [INFO] [stdout] test concern_severity_recommendation_does_not_trigger_desktop_notification ... ok [INFO] [stdout] test concurrent_file_edit_stays_silent_when_security_gate_disabled ... ok [INFO] [stdout] test cross_pane_finding_attaches_to_correct_anchor ... ok [INFO] [stdout] test cross_window_concurrent_work_fires_end_to_end_when_security_gate_enabled ... ok [INFO] [stdout] test claude_default_profile_levers_flow_end_to_end_to_the_panel_renderer ... ok [INFO] [stdout] test event_loop_anomalies_off_baseline_regression ... ok [INFO] [stdout] test distinct_cause_transition_fires_new_alert ... ok [INFO] [stdout] test cross_window_concurrent_work_stays_silent_when_gate_off_by_default ... ok [INFO] [stdout] test changing_tails_never_produce_stale_idle_state ... ok [INFO] [stdout] test claude_statusline_end_to_end_populates_runtime_metrics_without_overlay ... ok [INFO] [stdout] test claude_pressure_metrics_survive_separate_runtime_surfaces ... ok [INFO] [stdout] test dispatch_notify_filters_concern_when_warning_coexists ... ok [INFO] [stdout] test event_loop_auto_snapshot_fires_when_enabled ... ok [INFO] [stdout] test event_loop_pushes_anomaly_events_into_ring_buffer ... ok [INFO] [stdout] test concern_severity_rec_audit_logged_as_recommendation_emitted ... ok [INFO] [stdout] test claude_script_low_token_side_effects_flow_end_to_end_under_quota_tight ... ok [INFO] [stdout] test identity_drift_stays_silent_when_security_gate_off_by_default ... ok [INFO] [stdout] test concurrent_file_edit_fires_end_to_end_when_security_gate_enabled ... ok [INFO] [stdout] test context_pressure_rec_is_marked_strong_end_to_end ... ok [INFO] [stdout] test event_loop_no_promotion_when_anomaly_disabled ... ok [INFO] [stdout] test effects_are_propagated_onto_pane_report ... ok [INFO] [stdout] test insights_load_channel_supports_try_recv_drain ... ok [INFO] [stdout] test event_loop_v2_detector_history_push_does_not_panic ... ok [INFO] [stdout] test limit_hit_transition_fires_risk_severity ... ok [INFO] [stdout] test event_loop_anomalies_fire_when_enabled_and_history_full ... ok [INFO] [stdout] test event_loop_auto_snapshot_off_baseline_regression ... ok [INFO] [stdout] test five_polls_with_same_tail_produces_stale_idle_state ... ok [INFO] [stdout] test event_loop_promotes_warning_anomalies_to_recommendations_and_notify ... ok [INFO] [stdout] test provider_drift_fires_once_when_security_gate_enabled_and_dedups_on_repeat_polls ... ok [INFO] [stdout] test profile_switch_recommendation_fires_after_window_full_of_errors ... ok [INFO] [stdout] test observe_only_mode_does_not_call_archive_writer ... ok [INFO] [stdout] test gemini_model_reset_overlay_persists_after_transient_picker_closes ... ok [INFO] [stdout] test prompt_send_proposal_carries_stable_proposal_id_end_to_end ... ok [INFO] [stdout] test returning_to_active_clears_idle_state_no_new_alert ... ok [INFO] [stdout] test observe_only_mode_suppresses_notifications_even_with_alerts ... ok [INFO] [stdout] test run_once_omits_cli_version_for_qmonster_pane ... ok [INFO] [stdout] test quota_pressure_critical_rec_fires_end_to_end_on_gemini_pane ... ok [INFO] [stdout] test run_once_records_identity_suppression_for_title_command_conflict ... ok [INFO] [stdout] test run_once_report_carries_identity_and_signals ... ok [INFO] [stdout] test run_once_treats_qmonster_command_as_monitor_despite_stale_provider_title ... ok [INFO] [stdout] test run_once_report_exposes_metric_values_when_present ... ok [INFO] [stdout] test profile_switch_recommendation_stays_silent_when_disabled ... ok [INFO] [stdout] test runtime_refresh_tail_overlay_preserves_live_idle_cursor ... ok [INFO] [stdout] test runtime_refresh_tail_overlay_is_parsed_once_then_consumed ... ok [INFO] [stdout] test strong_context_pressure_rec_emits_prompt_send_proposal_end_to_end ... ok [INFO] [stdout] test stillness_polls_config_controls_stale_window ... ok [INFO] [stdout] test transition_into_input_wait_fires_one_alert_only ... ok [INFO] [stdout] test warning_severity_rec_audit_logged_as_alert_fired ... ok [INFO] [stdout] test concurrent_mutating_work_enriches_clean_repo_with_worktree_command ... ok [INFO] [stdout] test run_once_handles_dead_pane_without_panic ... ok [INFO] [stdout] test run_once_populates_cli_version_from_provider_surface ... ok [INFO] [stdout] test run_once_emits_recommendations_and_audit_events ... ok [INFO] [stdout] test log_storm_triggers_archive_writer_when_permit_is_on ... ok [INFO] [stdout] test event_loop_records_token_usage_sample_when_codex_tail_has_in_out ... ok [INFO] [stdout] test event_loop_replays_anomaly_history_on_first_observation ... ok [INFO] [stdout] test run_once_writes_recommendation_lifecycle_events ... ok [INFO] [stdout] test cost_budget_warning_fires_once_from_sqlite_cost_ledger ... ok [INFO] [stdout] test event_loop_persists_anomaly_event_to_audit_db ... ok [INFO] [stdout] test run_once_does_not_attach_stale_provider_token_samples_to_qmonster_pane ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 69 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.40s [INFO] [stdout] [INFO] [stderr] Running tests/false_positive_regression.rs (/opt/rustwide/target/debug/deps/false_positive_regression-d7a73c8b66a20857) [INFO] [stdout] [INFO] [stdout] running 18 tests [INFO] [stdout] test codex_welcome_v0_122_does_not_false_fire_permission ... ok [INFO] [stdout] test codex_welcome_v0_122_does_not_false_fire_error_hint ... ok [INFO] [stdout] test task_type_codex_exec_command_still_matches_automation ... ok [INFO] [stdout] test codex_welcome_v0_122_does_not_false_fire_context_pressure_in_common ... ok [INFO] [stdout] test gemini_idle_v0_39_does_not_false_fire_error_hint ... ok [INFO] [stdout] test claude_status_view_does_not_false_fire_log_storm_or_verbose ... ok [INFO] [stdout] test task_type_does_not_match_review_word_in_prose ... ok [INFO] [stdout] test task_type_does_not_match_search_in_prose ... ok [INFO] [stdout] test task_type_does_not_match_summary_in_prose ... ok [INFO] [stdout] test gemini_idle_v0_39_status_line_does_not_false_fire_anything ... ok [INFO] [stdout] test codex_bottom_status_v0_122_does_not_false_fire_context_pressure_in_common ... ok [INFO] [stdout] test task_type_explicit_resume_command_matches_session_resume ... ok [INFO] [stdout] test gemini_idle_v0_39_does_not_false_fire_context_pressure_in_common ... ok [INFO] [stdout] test codex_bottom_status_v0_122_is_inert_for_alerts ... ok [INFO] [stdout] test claude_status_view_does_not_false_fire_permission_or_waiting ... ok [INFO] [stdout] test claude_status_does_not_false_fire_context_pressure ... ok [INFO] [stdout] test claude_status_does_not_false_fire_error_hint ... ok [INFO] [stdout] test task_type_real_claude_status_fixture_yields_unknown ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/idle_state_regression.rs (/opt/rustwide/target/debug/deps/idle_state_regression-4c815b857e423d33) [INFO] [stdout] [INFO] [stdout] running 6 tests [INFO] [stdout] test claude_limit_hit_fixture_classifies_as_limit_hit ... ok [INFO] [stdout] test gemini_quota_full_fixture_classifies_as_limit_hit ... ok [INFO] [stdout] test claude_idle_cursor_fixture_classifies_as_work_complete ... ok [INFO] [stdout] test codex_idle_cursor_fixture_classifies_as_work_complete ... ok [INFO] [stdout] test codex_limit_hit_fixture_classifies_as_limit_hit ... ok [INFO] [stderr] Running tests/insights_report_integration.rs (/opt/rustwide/target/debug/deps/insights_report_integration-38ba9ec5f928d1fe) [INFO] [stdout] test gemini_idle_fixture_classifies_as_work_complete ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 12 tests [INFO] [stdout] test parse_since_accepts_hours_and_days ... ok [INFO] [stdout] test parse_since_accepts_minutes ... ok [INFO] [stdout] test parse_since_rejects_empty_or_unknown_units ... ok [INFO] [stdout] test parse_since_rejects_overflow ... ok [INFO] [stdout] test empty_snapshot_helper_returns_zero_state ... ok [INFO] [stdout] test insights_report_renders_pane_data_completeness_statuses ... ok [INFO] [stdout] test insights_report_labels_cost_breakdown_provider_group_honestly ... ok [INFO] [stderr] Running tests/sim.rs (/opt/rustwide/target/debug/deps/sim-21d0085a88bcb0d3) [INFO] [stdout] test insights_report_renders_learning_outcomes_and_rule_tuning_candidates ... ok [INFO] [stdout] test insights_report_renders_action_rate_summary ... ok [INFO] [stdout] test resolve_insights_paths_uses_cli_root_without_tmux ... ok [INFO] [stdout] test insights_report_renders_available_recommendation_lifecycle ... ok [INFO] [stdout] test insights_report_renders_action_ledger ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/store_insights_integration.rs (/opt/rustwide/target/debug/deps/store_insights_integration-64e32d324daf287f) [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] [stdout] [INFO] [stdout] running 31 tests [INFO] [stdout] test cost_breakdown_no_data_returns_empty_groups ... ok [INFO] [stdout] test cache_summary_saturates_token_growth_on_counter_reset ... ok [INFO] [stdout] test anomaly_correlations_ignore_same_pane_or_different_minutes ... ok [INFO] [stdout] test anomaly_correlations_group_two_panes_with_same_kind_and_confidence_in_same_minute ... ok [INFO] [stdout] test data_completeness_marks_identity_suppressed_panes ... ok [INFO] [stdout] test cache_summary_continues_token_growth_after_counter_reset ... ok [INFO] [stdout] test anomaly_correlations_do_not_group_different_kinds_in_same_minute ... ok [INFO] [stdout] test action_ledger_counts_prompt_send_terminal_outcomes ... ok [INFO] [stdout] test cost_breakdown_groups_window_cost_by_pane_model_and_situation ... ok [INFO] [stdout] test cache_summary_ignores_trailing_sparse_token_row_for_ratio_and_growth ... ok [INFO] [stdout] test cache_summary_buckets_token_growth_by_pane_and_provider ... ok [INFO] [stdout] test compact_payoff_reports_na_when_sample_count_is_too_low ... ok [INFO] [stdout] test cache_summary_reports_cache_states_latest_ratio_token_growth_and_cost_delta ... ok [INFO] [stdout] test compact_payoff_reports_regressed_when_after_growth_is_higher ... ok [INFO] [stdout] test insights_read_only_open_does_not_create_missing_db ... ok [INFO] [stdout] test compact_payoff_reports_neutral_when_change_is_below_threshold ... ok [INFO] [stdout] test compact_payoff_reports_saved_tokens_when_threshold_and_samples_pass ... ok [INFO] [stdout] test insights_read_only_snapshot_supports_old_schema_db ... ok [INFO] [stdout] test insights_classifies_legacy_subagent_label_as_code_exploration ... ok [INFO] [stdout] test insights_lifecycle_dedupes_repeated_active_recommendation ... ok [INFO] [stdout] test insights_counts_recommendations_by_situation ... ok [INFO] [stdout] test insights_lifecycle_counts_unlinked_copied_but_keeps_ttl_ignored_pending ... ok [INFO] [stdout] test insights_query_empty_db_returns_zero_state ... ok [INFO] [stdout] test insights_lifecycle_counts_outcomes_and_ttl_ignored ... ok [INFO] [stdout] test insights_lifecycle_counts_hidden_and_suppresses_ignored_for_unlinked_matches ... ok [INFO] [stdout] test insights_lifecycle_counts_learning_outcomes ... ok [INFO] [stdout] test insights_next_best_action_selects_pending_strong_recommendation ... ok [INFO] [stdout] test insights_lifecycle_reports_action_metric_impact_windows ... ok [INFO] [stdout] test insights_lifecycle_unlinked_outcome_matches_only_one_prior_event ... ok [INFO] [stdout] test insights_next_best_action_picks_latest_unaccepted_strong_rec ... ok [INFO] [stdout] test insights_counts_live_colon_actions_by_situation ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.97s [INFO] [stdout] [INFO] [stderr] Doc-tests qmonster [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] running `Command { std: "docker" "inspect" "b9989f9ddf314f32091c8be55ac07ad5f0fc096b44f10c67862528decb410573", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9989f9ddf314f32091c8be55ac07ad5f0fc096b44f10c67862528decb410573", kill_on_drop: false }` [INFO] [stdout] b9989f9ddf314f32091c8be55ac07ad5f0fc096b44f10c67862528decb410573