[INFO] cloning repository https://github.com/hndrewaall/claude-watch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hndrewaall/claude-watch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhndrewaall%2Fclaude-watch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhndrewaall%2Fclaude-watch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d998cbf7f4e9e0bcd482654da70627ebc72994a8
[INFO] testing hndrewaall/claude-watch against 1.97.0-beta.6 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhndrewaall%2Fclaude-watch" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-5-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/hndrewaall/claude-watch
[INFO] finished tweaking git repo https://github.com/hndrewaall/claude-watch
[INFO] tweaked toml for git repo https://github.com/hndrewaall/claude-watch written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/hndrewaall/claude-watch on toolchain 1.97.0-beta.6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/hndrewaall/claude-watch already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded clap_derive v4.6.0
[INFO] [stderr]   Downloaded notify v7.0.0
[INFO] [stderr]   Downloaded notify-types v1.0.1
[INFO] [stderr]   Downloaded fastrand v2.4.0
[INFO] [stderr]   Downloaded tree-sitter-bash v0.25.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c
[INFO] running `Command { std: "docker" "start" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling inotify v0.10.2
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling notify-types v1.0.1
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling filetime v0.2.27
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling claude-watch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling notify v7.0.0
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling regex-lite v0.1.9
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling tree-sitter-bash v0.25.1
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tree-sitter v0.26.8
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.81s
[INFO] running `Command { std: "docker" "inspect" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling fastrand v2.4.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling claude-watch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 32.37s
[INFO] running `Command { std: "docker" "inspect" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/claude_watch-ff5ee8d688a21690)
[INFO] [stdout] 
[INFO] [stdout] running 608 tests
[INFO] [stdout] test active_agents::tests::active_agents_empty_serializes_to_empty_arrays ... ok
[INFO] [stdout] test active_agents::tests::active_agents_serializes_to_expected_json_shape ... ok
[INFO] [stdout] test active_agents::tests::atomic_write_writes_and_replaces ... ok
[INFO] [stdout] test active_agents::tests::atomic_write_creates_parent_dir ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_fresh ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_future ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_at_threshold ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_none ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_stale ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_marker_no_qid ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_no_marker ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_missing_dir ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_missing_projects_root_is_empty ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_terminator_punctuation ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_extra_whitespace ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_first_match_wins ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_basic ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_short_form ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_empty_dir ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_filters_dead_panes ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_parses_queue_id_and_alive ... ok
[INFO] [stdout] test active_agents::tests::should_replace_does_not_replace_on_equal_fields ... ok
[INFO] [stdout] test active_agents::tests::should_replace_keeps_some_queue_id ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_alive_when_qid_ties ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_empty_input ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_fresher_when_qid_and_alive_tie ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_some_queue_id ... ok
[INFO] [stdout] test agent::tests::test_container_claude_exe_prefix_constant ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_sorts_alphabetically ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_empty_state ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_all_dead ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_corrupt ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_empty ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_no_bash ... ok
[INFO] [stdout] test agent::tests::test_find_claude_pid_with_paths_no_proc_panic_safety ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_double_quotes ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_no_eval ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_single_quotes ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_all_watchers ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_unquoted ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_context_watch ... ok
[INFO] [stdout] test agent::tests::test_is_own_command ... ok
[INFO] [stdout] test agent::tests::test_format_list_no_agents ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_via_watcher_ctl ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_watchmen ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_basic ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_empty ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_whitespace_only ... ok
[INFO] [stdout] test agent::tests::test_watcher_patterns_comprehensive ... ok
[INFO] [stdout] test cadence::tests::checklist_is_generic_no_private_paths ... ok
[INFO] [stdout] test cadence::tests::first_call_fires_both ... ok
[INFO] [stdout] test cadence::tests::heartbeat_fires_at_its_interval_but_not_reminder ... ok
[INFO] [stdout] test cadence::tests::immediate_second_call_fires_neither ... ok
[INFO] [stdout] test cadence::tests::reminder_fires_at_its_interval ... ok
[INFO] [stdout] test cadence::tests::slow_loop_does_not_replay_missed_ticks ... ok
[INFO] [stdout] test cadence::tests::tags_match_protocol ... ok
[INFO] [stdout] test cadence::tests::timers_are_independent ... ok
[INFO] [stdout] test config::tests::test_ask_question_monitor_defaults ... ok
[INFO] [stdout] test config::tests::test_ask_question_monitor_override ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_has_no_raw_tool_call_tags ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_is_single_line ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_targets_the_heartbeat_file ... ok
[INFO] [stdout] test config::tests::test_default_update_resume_prompt_includes_orphan_recovery ... ok
[INFO] [stdout] test config::tests::test_global_cooldown_exempt_watcher_down_defaults_true ... ok
[INFO] [stdout] test config::tests::test_global_cooldown_exempt_watcher_down_override_false ... ok
[INFO] [stdout] test config::tests::test_heartbeat_stale_prompt_defaults_when_absent ... ok
[INFO] [stdout] test config::tests::test_heartbeat_stale_prompt_override_parses ... ok
[INFO] [stdout] test config::tests::test_hybrid_config_override ... ok
[INFO] [stdout] test config::tests::test_malformed_nudges_steer_to_clear_on_recurrence ... ok
[INFO] [stdout] test config::tests::test_merge_toml_overlay_wins_per_field ... ok
[INFO] [stdout] test config::tests::test_parse_config_heartbeat_fresh_secs_override ... ok
[INFO] [stdout] test config::tests::test_parse_config_min_tokens_delta_override ... ok
[INFO] [stdout] test config::tests::test_parse_config_suppression_defaults ... ok
[INFO] [stdout] test config::tests::test_parse_config_suppression_overrides ... ok
[INFO] [stdout] test config::tests::test_parse_config_without_auto_update_section ... ok
[INFO] [stdout] test config::tests::test_parse_invalid_config ... ok
[INFO] [stdout] test config::tests::test_parse_minimal_values ... ok
[INFO] [stdout] test config::tests::test_parse_missing_section ... ok
[INFO] [stdout] test config::tests::test_parse_valid_config ... ok
[INFO] [stdout] test config::tests::test_post_escape_settle_ms_default_when_tmux_section_missing ... ok
[INFO] [stdout] test config::tests::test_post_escape_settle_ms_explicit_override ... ok
[INFO] [stdout] test config::tests::test_post_interrupt_cooldown_default_is_300 ... ok
[INFO] [stdout] test config::tests::test_stuck_detection_defaults ... ok
[INFO] [stdout] test config::tests::test_stuck_detection_override ... ok
[INFO] [stdout] test config::tests::test_tmux_config_defaults_when_omitted ... ok
[INFO] [stdout] test config::tests::test_tmux_config_empty_section ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_extra_patterns_env_var ... ok
[INFO] [stdout] test agent::tests::test_match_agent_to_pid_basic ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_returns_all_when_all_fresh ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_excludes_watchers ... ok
[INFO] [stdout] test agent::tests::test_format_list_with_agents ... ok
[INFO] [stdout] test agent::tests::test_is_not_watcher ... ok
[INFO] [stdout] test active_agents::tests::merge_returns_none_when_no_dir_has_marker ... ok
[INFO] [stdout] test active_agents::tests::merge_prefers_alive_record_over_stale_when_queue_ids_tie ... ok
[INFO] [stdout] test active_agents::tests::merge_breaks_alive_tie_by_freshest_mtime ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_sorts_ascending ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_returns_only_dirs_within_window ... ok
[INFO] [stdout] test active_agents::tests::merge_prefers_record_with_queue_id_over_one_without ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_excludes_own_commands ... ok
[INFO] [stdout] test agent::tests::test_match_agent_to_pid_no_match ... ok
[INFO] [stdout] test active_agents::tests::merge_dedupes_and_sorts_by_agent_id ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_failure_exit ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_handles_watcher_down ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_natural_exit ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_killed ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_with_queue_id_includes_field ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_handles_minimal_alert ... ok
[INFO] [stdout] test config::tests::test_tmux_config_partial_override ... ok
[INFO] [stdout] test event_bus::tests::build_cadence_json_has_required_fields ... ok
[INFO] [stdout] test event_bus::tests::heartbeat_tick_data_carries_configured_path ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_has_required_fields ... ok
[INFO] [stdout] test event_bus::tests::emit_cadence_writes_file_with_sanitized_name ... ok
[INFO] [stdout] test event_bus::tests::emit_cadence_heartbeat_tick_writes_event ... ok
[INFO] [stdout] test event_bus::tests::emit_workload_done_writes_file_with_correct_shape ... ok
[INFO] [stdout] test event_bus::tests::severity_maps_to_priority ... ok
[INFO] [stdout] test obligation_arm::tests::test_arm_writes_exact_schema ... ok
[INFO] [stdout] test obligation_arm::tests::test_missing_file_is_not_armed ... ok
[INFO] [stdout] test obligation_arm::tests::test_truncate_respects_utf8_boundary ... ok
[INFO] [stdout] test obligation_arm::tests::test_is_armed_true_after_arm_false_other_source ... ok
[INFO] [stdout] test obligation_arm::tests::test_file_and_dir_perms ... ok
[INFO] [stdout] test event_bus::tests::emit_writes_a_file_in_temp_queue_dir ... ok
[INFO] [stdout] test obligation_arm::tests::test_distinct_sources_coexist ... ok
[INFO] [stdout] test obligation_arm::tests::test_message_truncated_at_4096_bytes ... ok
[INFO] [stdout] test obligation_arm::tests::test_second_arm_same_source_is_noop ... ok
[INFO] [stdout] test obligation_arm::tests::test_corrupt_file_default_open ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_bare_signal_history ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_obligations_bypass_in_comment ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_obligations_bypass_in_double_quoted_string ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_obligations_bypass_in_heredoc_body ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_obligations_bypass_in_single_quoted_string ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_pipe_to_other_consumer ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_signal_history_with_tail_flag ... ok
[INFO] [stdout] test pr_parse::tests::empty_subject_is_none ... ok
[INFO] [stdout] test pr_parse::tests::merge_branch_is_none ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_tail_in_command_substitution_arg ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_tail_in_heredoc_body ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::allow_tail_in_single_quoted_string ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_env_var_prefix_on_pipeline_first_stage ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_obligations_bypass_prefix ... ok
[INFO] [stdout] test pr_parse::tests::merge_commit_subject ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_obligations_bypass_prefix_multi ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_pipe_to_head_dash_n ... ok
[INFO] [stdout] test pr_parse::tests::merge_commit_without_branch_suffix ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_pipe_to_tail_dash_n ... ok
[INFO] [stdout] test pr_parse::tests::mid_text_hash_is_none ... ok
[INFO] [stdout] test pr_parse::tests::plain_subject_is_none ... ok
[INFO] [stdout] test pr_parse::tests::squash_trailing_ref ... ok
[INFO] [stdout] test proc_util::tests::test_agent_deployment_mode_self_is_terminal_or_unknown ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_absent ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_at_end ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_at_start ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::comment_only_is_allowed ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::ban_pipe_to_tail_through_grep ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::empty_command_is_allowed ... ok
[INFO] [stdout] test proc_util::tests::test_agent_deployment_mode_unknown_for_bogus_pid ... ok
[INFO] [stdout] test obligations::ast_predicate::tests::nested_command_substitution_pipe_to_tail_still_caught ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_empty_value ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_in_middle ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_no_trailing_nul ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_empty_environ ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_substring_not_a_match ... ok
[INFO] [stdout] test proc_util::tests::test_is_service_output_no_file ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_append ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_empty ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_no_flags_line ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_rdonly ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_rdwr ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_wronly ... ok
[INFO] [stdout] test reminders::tests::from_str_canonical_forms ... ok
[INFO] [stdout] test respawn::tests::active_subagent_blocks_respawn_even_when_threshold_met ... ok
[INFO] [stdout] test respawn::tests::agent_guard_runs_before_threshold_check ... ok
[INFO] [stdout] test reminders::tests::all_fire_counts_covers_all_types ... ok
[INFO] [stdout] test respawn::tests::config_defaults_match_spec ... ok
[INFO] [stdout] test respawn::tests::cooldown_blocks_re_fire ... ok
[INFO] [stdout] test respawn::tests::cooldown_expires_allows_re_fire ... ok
[INFO] [stdout] test reminders::tests::marker_roundtrip_preserves_context ... ok
[INFO] [stdout] test reminders::tests::read_marker_missing_file_is_default ... ok
[INFO] [stdout] test respawn::tests::count_active_subagents_no_claude_pid_returns_zero ... ok
[INFO] [stdout] test respawn::tests::duplicate_signal_does_not_count_twice ... ok
[INFO] [stdout] test respawn::tests::hash_differs_for_different_input ... ok
[INFO] [stdout] test respawn::tests::hash_is_deterministic_for_same_input ... ok
[INFO] [stdout] test reminders::tests::record_fire_increments_counter ... ok
[INFO] [stdout] test respawn::tests::higher_threshold_requires_more_signals ... ok
[INFO] [stdout] test respawn::tests::many_active_subagents_block_respawn ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_below_threshold_does_not_fire ... ok
[INFO] [stdout] test reminders::tests::seconds_since_fire_after_record ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_change_resets_timer ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_fires_after_threshold ... ok
[INFO] [stdout] test respawn::tests::respawn_command_defaults_to_dashboard_detach ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_first_observation_does_not_fire ... ok
[INFO] [stdout] test reminders::tests::should_defer_false_for_stale_marker ... ok
[INFO] [stdout] test respawn::tests::signal_names_are_stable_strings ... ok
[INFO] [stdout] test respawn::tests::respawn_command_deserialises_from_toml_array ... ok
[INFO] [stdout] test respawn::tests::signals_outside_window_are_pruned ... ok
[INFO] [stdout] test reminders::tests::should_defer_to_hook_respects_grace_window ... ok
[INFO] [stdout] test respawn::tests::signals_required_is_two_by_default ... ok
[INFO] [stdout] test respawn::tests::single_signal_does_not_trigger_respawn ... ok
[INFO] [stdout] test respawn::tests::three_signals_trigger_respawn_when_required_two ... ok
[INFO] [stdout] test respawn::tests::zero_subagents_does_not_change_existing_behavior ... ok
[INFO] [stdout] test respawn::tests::two_distinct_signals_trigger_respawn ... ok
[INFO] [stdout] test session_event::tests::test_fmt_duration ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_basic ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_empty ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_no_compactions ... ok
[INFO] [stdout] test session_event::tests::test_format_history_basic ... ok
[INFO] [stdout] test session_event::tests::test_format_number ... ok
[INFO] [stdout] test session_event::tests::test_format_history_empty ... ok
[INFO] [stdout] test session_event::tests::test_format_stats_basic ... ok
[INFO] [stdout] test session_event::tests::test_format_stats_empty ... ok
[INFO] [stdout] test session_event::tests::test_parse_duration_secs ... ok
[INFO] [stdout] test session_event::tests::test_read_completed_tasks_from_str ... ok
[INFO] [stdout] test session_event::tests::test_read_completed_tasks_from_str_all ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_basic ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_skips_corrupt ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_empty ... ok
[INFO] [stdout] test session_event::tests::test_session_event_serialization ... ok
[INFO] [stdout] test session_event::tests::test_session_event_serialization_skip_none ... ok
[INFO] [stdout] test session_event::tests::test_valid_events_constant ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_false_when_only_pane_set_without_session ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_false_when_unconfigured ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_true_when_session_set ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_true_with_only_session ... ok
[INFO] [stdout] test status::tests::test_cmdline_matches_exec_transform ... ok
[INFO] [stdout] test status::tests::test_extract_version_empty ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_no_version ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_non_numeric_ignored ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_package_json ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_session_marker ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_whitespace_variants ... ok
[INFO] [stdout] test status::tests::test_extract_version_no_match ... ok
[INFO] [stdout] test status::tests::test_extract_version_three_part ... ok
[INFO] [stdout] test status::tests::test_extract_version_simple ... ok
[INFO] [stdout] test status::tests::test_is_claude_hooks_shim ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_bashes_found ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_empty_capture ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_status_bar_visible_no_counts ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_tokens_found ... ok
[INFO] [stdout] test status::tests::test_is_pid_alive_self_and_bogus ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_basic ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_fewer_lines_than_max ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_has_content_but_nothing_parsed ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_skips_blank_lines ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_truncates_long_lines ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_accept_edits_icon_alone ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_background_tasks ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_diag_full_bar_returns_true ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_compact_zero ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_diag_no_status_bar_visible ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_empty ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_bashes ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_missing_fields ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_extreme_wrap_incident_2026_04_18 ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_large_tokens ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_idle_no_counts ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_only_last_10_lines ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_active_shell_singular ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_full ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_does_not_overshadow_inline_bar ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_thinking_token_pushed_above_window ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_active_shells ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_realistic ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_with_shells_and_agents_section_2026_04_27 ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells_realistic ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells_wrapped_permissi ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_does_not_match_prose ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_single_chevron_not_enough ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_m_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_shell ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_k_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_tokens_no_commas ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_truncated_ellipsis ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_down_arrow ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_background_task ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_bash ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_basic ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_wrapped_with_compact ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_comments_and_blanks ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_config_missing_file ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_no_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_disabled ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_empty ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_minimal_fields ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_invalid_min_count ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_wrapped_narrow_pane ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_on_restart_cmd ... ok
[INFO] [stdout] test status::tests::test_pidfile_watcher_is_down_decision ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_single_field_rejected ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_missing_binary ... ok
[INFO] [stdout] test status::tests::test_strip_script_suffix ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_both_stale_is_not_in_grace ... ok
[INFO] [stdout] test status::tests::test_read_watcher_recorded_pid_prefers_lock_then_pid ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_either_anchor_fresh ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_complete ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_empty ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_pidfile_fresh_overrides_stale_last_seen ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_user_only ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_agent ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_with_hyphens ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_empty_brackets ... ok
[INFO] [stdout] test task_watch::tests::test_has_output_no_file ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_standard ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_agent_id_only ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_no_brackets ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_empty ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_still_working ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_unrelated_package_json_ignored ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_none_when_no_files ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_long_text ... ok
[INFO] [stdout] test task_watch::tests::test_find_tasks_dir_in_nonexistent ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_short_text ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_agent_slug ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_invalid_json ... ok
[INFO] [stdout] test task_watch::tests::test_is_agent_output_no_file ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_empty_object ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_fresh_lock ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_native_layout ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_missing_file ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_takes_freshest ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_npm_global_layout ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_malformed_json ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_multiple_workloads ... ok
[INFO] [stdout] test tmux::tests::inject_outcome_variants_are_distinct ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_root_is_array ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_ask_user_question_menu ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_do_you_trust_folder ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_not_fired_on_idle_with_typed_text ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_permission_confirmation ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_single_workload ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_default ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_empty_env_falls_back_to_default ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_env_override ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_cursored_numbered_option ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_extracts_text_after_cursor ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_not_fired_on_bare_idle_prompt ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_fires_on_background_tasks_viewer_overlay ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_empty_when_prompt_bare ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_none_without_prompt ... ok
[INFO] [stdout] test tmux::tests::sanitize_focus_main_keys_empty_stays_empty ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_uses_last_prompt_line ... ok
[INFO] [stdout] test tmux::tests::sanitize_focus_main_keys_trims_and_drops_blanks ... ok
[INFO] [stdout] test tmux::tests::submit_keystroke_sequence_is_tab_escape_enter ... ok
[INFO] [stdout] test tmux::tests::test_activity_bullets_with_prompt_and_completion_is_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_display ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_takes_priority_over_spinner ... ok
[INFO] [stdout] test tmux::tests::test_activity_bullets_with_prompt_no_completion_is_writing ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_takes_priority_over_thinking ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_when_content_has_middle_dot_and_ellipsis ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_when_only_completion_no_thinking_content ... ok
[INFO] [stdout] test tmux::tests::test_activity_stale_thinking_with_completion_is_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_273b_flowing ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_273b_with_separator_and_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_honking ... ok
[INFO] [stdout] test tmux::tests::test_activity_only_checks_last_15_lines ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_new_format_with_bullet_prefix ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_standard ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_pondering ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_takes_priority_over_spinner ... ok
[INFO] [stdout] test tmux::tests::test_activity_unknown_empty ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_indented_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_read ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_bash ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_within_last_15 ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_multiple_bullets_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_unknown ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_various_spinners ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_429_with_retrying_in ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_empty_input ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_isolated_overloaded_word ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_overload_with_retrying_in ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_no_indicators ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_resolved_no_banner ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_percent_in_status_bar_not_shell ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_shell_prompt_overrides_tokens ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_attempt_marker_with_5xx ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_arrow_prompt ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_bira_dollar_prompt ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_status_bar ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_wrapped ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_overloaded_keyword_alone ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_background_stopped ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_goodbye ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_only_background_stopped ... ok
[INFO] [stdout] test tmux::tests::test_feedback_prompt_dismiss_only ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_shell_prompt_bira ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_basic ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_none ... ok
[INFO] [stdout] test tmux::tests::test_feedback_prompt_detected ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_some_on_malformed ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_differs_for_different_malform ... ok
[INFO] [stdout] test tmux::tests::test_focus_main_keys_get_set_roundtrip ... ok
[INFO] [stdout] test tmux::tests::test_foreground_busy_with_spinner ... ok
[INFO] [stdout] test tmux::tests::test_foreground_not_busy_no_spinner ... ok
[INFO] [stdout] test tmux::tests::test_foreground_not_busy_with_prompt ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_detected ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_not_present ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_only_checks_last_15_lines ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_colored_ansi_capture ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_not_present ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_unwrapped_dashes ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_none_on_clean ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_within_last_15 ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_substring_inserted_does_not_match_in_tail ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_word_in_chat_does_not_false_positive ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_wrapped_bare_token ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_stable_across_chrome_changes ... ok
[INFO] [stdout] test tmux::tests::test_malformed_bare_invoke_tag ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_lookahead_gap ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_with_whitespace ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_signature ... ok
[INFO] [stdout] test tmux::tests::test_malformed_empty_input ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_completion_lines ... ok
[INFO] [stdout] test tmux::tests::test_malformed_with_stray_text_prefix ... ok
[INFO] [stdout] test tmux::tests::test_malformed_only_checks_recent_lines ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_positive_cases ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_tool_output_and_markdown ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_status_bar_wrap ... ok
[INFO] [stdout] test tmux::tests::test_malformed_outside_fence_still_fires ... ok
[INFO] [stdout] test tmux::tests::test_malformed_single_line_construct ... ok
[INFO] [stdout] test tmux::tests::test_no_exit_teardown_goodbye_in_content ... ok
[INFO] [stdout] test tmux::tests::test_malformed_parameter_with_close_invoke ... ok
[INFO] [stdout] test tmux::tests::test_no_exit_teardown_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_no_shell_prompt ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_normal_thinking ... ok
[INFO] [stdout] test tmux::tests::test_no_feedback_prompt ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_old_history_only ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_lone_invoke_no_name_no_corroboration ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_without_error_marker ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_in_prose ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_far_from_invoke ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_prefix_inside_code_fence ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_prose_with_namespaced_call ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_inside_code_fence ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_invokexyz_not_a_tag ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_lone_parameter_no_corroboration ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_prose_mentioning_invoke ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_429_without_reject ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_api_error_without_429 ... ok
[INFO] [stdout] test tmux::tests::test_reauth_auth_required ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_reauth_browser_didnt_open ... ok
[INFO] [stdout] test tmux::tests::test_post_escape_settle_ms_get_set_roundtrip ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_agents_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_authentication_error_json_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_401_text_with_tui ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_background_tasks_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_api_error_401_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_login_url ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_bypass_permissions_banner_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_conversation_about_401 ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_conversation_about_auth ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_empty ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_normal_tui ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_shells_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_invalid_credentials_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_startup ... ok
[INFO] [stdout] test tmux::tests::test_reauth_oauth_url ... ok
[INFO] [stdout] test tmux::tests::test_reauth_paste_code ... ok
[INFO] [stdout] test tmux::tests::test_reauth_session_expired ... ok
[INFO] [stdout] test tmux::tests::test_reauth_still_detected_when_tui_gone ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_arrow ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_dollar ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_percent ... ok
[INFO] [stdout] test tmux::tests::test_tag_name_attr_present ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_bare_invoke ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_ignores_non_tag_words ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_close_tags ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_named_invoke ... ok
[INFO] [stdout] test tmux::tests::test_wedged_empty_input ... ok
[INFO] [stdout] test tmux::tests::test_wedged_context_limit_alt_phrasing ... ok
[INFO] [stdout] test tmux::tests::test_wedged_context_limit_banner ... ok
[INFO] [stdout] test tmux::tests::test_wedged_only_checks_recent_lines ... ok
[INFO] [stdout] test tmux::tests::test_wedged_rate_limit_repeated ... ok
[INFO] [stdout] test tmux::tests::test_wedged_reason_display ... ok
[INFO] [stdout] test watcher::tests::test_any_unhealthy_includes_duplicate ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_neither_falls_back_to_one ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_nonzero ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_takes_precedence ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigint ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_zero ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigkill ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigterm ... ok
[INFO] [stdout] test watcher::tests::test_format_list_basic ... ok
[INFO] [stdout] test watcher::tests::test_format_list_empty ... ok
[INFO] [stdout] test watcher::tests::test_format_status_all_ok ... ok
[INFO] [stdout] test watcher::tests::test_format_status_all_shows_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_default_hides_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_default_hides_disabled_but_keeps_warning ... ok
[INFO] [stdout] test watcher::tests::test_format_status_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_down_only_suggests_watcher_ctl_run ... ok
[INFO] [stdout] test watcher::tests::test_format_status_down_takes_precedence_over_duplicate ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_both ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_pollers ... ok
[INFO] [stdout] test tmux::tests::test_wedged_rate_limit_429 ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_suggests_watcher_restart ... ok
[INFO] [stdout] test watcher::tests::test_format_status_healthy_no_recovery_footer ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_supervisors_only ... ok
[INFO] [stdout] test watcher::tests::test_format_status_machine_greppable ... ok
[INFO] [stdout] test watcher::tests::test_format_status_some_down ... ok
[INFO] [stdout] test watcher::tests::test_format_status_mixed_down_and_duplicate_prefers_watcher_restart ... ok
[INFO] [stdout] test watcher::tests::test_is_supervisor_comm_nonexistent_pid ... ok
[INFO] [stdout] test watcher::tests::test_is_supervisor_comm_self ... ok
[INFO] [stdout] test watcher::tests::test_pid_is_alive_bogus_false ... ok
[INFO] [stdout] test watcher::tests::test_pid_is_alive_self_true ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_dead_pid_is_false ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_empty_start_cmd_is_false ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_mismatch_rejects_recycled_pid ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_self ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_strips_sh_suffix_via_shared_helper ... ok
[INFO] [stdout] test watcher::tests::test_protected_watchers_includes_memory_remind ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_disable ... ok
[INFO] [stdout] test watcher::tests::test_read_pid_file_valid ... ok
[INFO] [stdout] test watcher::tests::test_read_pid_file_missing_or_garbage ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_enable ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_minimal_fields ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_not_found ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_preserves_comments ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_skip_when_poller_already_running ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_skip_when_recorded_pid_alive ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_start_when_nothing_alive ... ok
[INFO] [stdout] test watcher::tests::test_try_claim_pid_file_after_removal_succeeds ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_excludes_concurrent_holder ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_released_on_drop_allows_reacquire ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_lock_uses_runlock_not_child_lock_path ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_distinct_names_dont_collide ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_decision_is_pidfile_based ... ok
[INFO] [stdout] test watcher::tests::test_try_claim_pid_file_first_wins_second_loses ... ok
[INFO] [stdout] test workload::tests::babysit_loop_clamps_zero_poll ... ok
[INFO] [stdout] test workload::tests::babysit_loop_fires_heartbeats_on_cadence ... ok
[INFO] [stdout] test watcher::tests::test_watcher_toggle_enable_is_config_only ... ok
[INFO] [stdout] test workload::tests::babysit_loop_heartbeats_at_least_once_even_on_fast_completion ... ok
[INFO] [stdout] test workload::tests::babysit_loop_propagates_nonzero_workload_rc ... ok
[INFO] [stdout] test workload::tests::babysit_loop_times_out_to_still_running ... ok
[INFO] [stdout] test workload::tests::babysit_loop_returns_done_with_workload_rc ... ok
[INFO] [stdout] test workload::tests::capture_absolute_interpreter_path_basename_match ... ok
[INFO] [stdout] test workload::tests::capture_bash_script_happy_path ... ok
[INFO] [stdout] test workload::tests::capture_detects_binary_content ... ok
[INFO] [stdout] test workload::tests::capture_refuses_dash_c_inline_script ... ok
[INFO] [stdout] test workload::tests::capture_does_not_crash_on_missing_dir ... ok
[INFO] [stdout] test workload::tests::capture_python_versioned_interpreter ... ok
[INFO] [stdout] test workload::tests::capture_refuses_symlink ... ok
[INFO] [stdout] test workload::tests::capture_refuses_too_many_args ... ok
[INFO] [stdout] test workload::tests::capture_refuses_nonexistent_path ... ok
[INFO] [stdout] test workload::tests::capture_refuses_unknown_interpreter ... ok
[INFO] [stdout] test workload::tests::capture_serde_roundtrip ... ok
[INFO] [stdout] test workload::tests::cmd_babysit_rejects_bad_qid ... ok
[INFO] [stdout] test workload::tests::cmd_babysit_unknown_label_exits_1 ... ok
[INFO] [stdout] test workload::tests::auto_create_calls_register_after_add ... ok
[INFO] [stdout] test workload::tests::capture_truncates_oversized_file ... ok
[INFO] [stdout] test workload::tests::auto_create_calls_queue_add_with_workload_scope ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_when_session_task_missing ... ok
[INFO] [stdout] test workload::tests::babysit_heartbeat_invokes_session_task_queue_heartbeat ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_on_queue_add_failure ... ok
[INFO] [stdout] test watcher::tests::test_watcher_toggle_enable_does_not_spawn_process ... ok
[INFO] [stdout] test workload::tests::cmd_wait_with_force_flag_proceeds_to_state_lookup ... ok
[INFO] [stdout] test workload::tests::cmd_wait_without_force_flag_exits_with_code_2 ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_is_idempotent ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_links_when_missing ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_skips_existing_dir ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_no_pid_file_starts ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_second_invocation_noops_while_alive ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_on_malformed_json ... ok
[INFO] [stdout] test workload::tests::auto_create_register_failure_still_returns_qid ... ok
[INFO] [stdout] test workload::tests::capture_resolves_path_lookup ... ok
[INFO] [stdout] test workload::tests::shell_quote_plain ... ok
[INFO] [stdout] test workload::tests::shell_quote_with_apostrophe ... ok
[INFO] [stdout] test workload::tests::state_loads_legacy_entry_without_queue_id_field ... ok
[INFO] [stdout] test workload::tests::state_loads_missing_file_as_empty ... ok
[INFO] [stdout] test workload::tests::state_roundtrip ... ok
[INFO] [stdout] test workload::tests::state_roundtrip_with_queue_id ... ok
[INFO] [stdout] test workload::tests::wrapper_script_contains_heartbeat_sidecar ... ok
[INFO] [stdout] test workload::tests::wrapper_script_contains_runtime_heartbeat_sidecar ... ok
[INFO] [stdout] test workload::tests::wrapper_script_heartbeat_disabled_via_env ... ok
[INFO] [stdout] test workload::tests::wrapper_script_line_buffers_via_stdbuf ... ok
[INFO] [stdout] test workload::tests::wrapper_script_no_queue_id_omits_arg ... ok
[INFO] [stdout] test workload::tests::wrapper_script_no_unprefixed_tee_exec ... ok
[INFO] [stdout] test workload::tests::wrapper_script_preserves_headers_and_emit_done ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_queue_abandon_on_failure ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_queue_abandon_on_kill ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_session_task_queue_done_on_clean_exit ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_killed_marker ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_queue_transition_skipped_by_env ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_with_queue_id_carries_qid_in_event ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_writes_event_file ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_stale_pid_file_starts ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_sidecar_does_not_touch_unconditionally ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_stale_lock_is_down ... ok
[INFO] [stdout] test workload::tests::wrapper_script_wraps_user_command_in_pty ... ok
[INFO] [stdout] test workload::tests::wrapper_script_writes_output_without_ts_prefix ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_exec_argv_is_up_via_pidfile ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_calls_update_scope ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_fail_soft_on_missing_cli ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_fail_soft_on_nonzero_exit ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_emits_body_and_headers ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_idempotent ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_propagates_inner_exit_code ... ok
[INFO] [stdout] test workload::tests::run_session_task_with_timeout_kills_runaway_child ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_pets_and_cleans_runtime_heartbeat ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_streams_carriage_return_progress ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_line_buffers_python_child ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_drives_queue_abandon_on_failure ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_pets_and_reaps_heartbeat ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_heartbeat_does_not_refresh_when_silent ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_heartbeat_refreshes_when_output_grows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 608 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.88s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/claude_watch-2025eebbc0a93572)
[INFO] [stdout] 
[INFO] [stdout] running 962 tests
[INFO] [stdout] test active_agents::tests::active_agents_empty_serializes_to_empty_arrays ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_at_threshold ... ok
[INFO] [stdout] test active_agents::tests::active_agents_serializes_to_expected_json_shape ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_none ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_future ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_stale ... ok
[INFO] [stdout] test active_agents::tests::agent_alive_from_mtime_fresh ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_missing_dir ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_empty_dir ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_basic ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_first_match_wins ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_extra_whitespace ... ok
[INFO] [stdout] test active_agents::tests::atomic_write_creates_parent_dir ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_marker_no_qid ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_no_marker ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_short_form ... ok
[INFO] [stdout] test active_agents::tests::collect_agent_records_parses_queue_id_and_alive ... ok
[INFO] [stdout] test active_agents::tests::extract_queue_id_terminator_punctuation ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_empty_input ... ok
[INFO] [stdout] test active_agents::tests::atomic_write_writes_and_replaces ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_all_watchers ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_missing_projects_root_is_empty ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_sorts_ascending ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_excludes_watchers ... ok
[INFO] [stdout] test active_agents::tests::filter_subagent_pids_excludes_own_commands ... ok
[INFO] [stdout] test active_agents::tests::should_replace_does_not_replace_on_equal_fields ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_alive_when_qid_ties ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_all_dead ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_filters_dead_panes ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_sorts_alphabetically ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_returns_all_when_all_fresh ... ok
[INFO] [stdout] test active_agents::tests::running_workload_labels_empty_state ... ok
[INFO] [stdout] test active_agents::tests::merge_breaks_alive_tie_by_freshest_mtime ... ok
[INFO] [stdout] test active_agents::tests::find_dirs_returns_only_dirs_within_window ... ok
[INFO] [stdout] test active_agents::tests::merge_prefers_alive_record_over_stale_when_queue_ids_tie ... ok
[INFO] [stdout] test active_agents::tests::merge_dedupes_and_sorts_by_agent_id ... ok
[INFO] [stdout] test active_agents::tests::should_replace_keeps_some_queue_id ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_no_bash ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_fresher_when_qid_and_alive_tie ... ok
[INFO] [stdout] test active_agents::tests::should_replace_prefers_some_queue_id ... ok
[INFO] [stdout] test active_agents::tests::merge_prefers_record_with_queue_id_over_one_without ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_double_quotes ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_single_quotes ... ok
[INFO] [stdout] test agent::tests::test_container_claude_exe_prefix_constant ... ok
[INFO] [stdout] test agent::tests::test_find_claude_pid_with_paths_no_proc_panic_safety ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_no_eval ... ok
[INFO] [stdout] test agent::tests::test_format_list_with_agents ... ok
[INFO] [stdout] test agent::tests::test_extract_eval_command_unquoted ... ok
[INFO] [stdout] test agent::tests::test_format_list_no_agents ... ok
[INFO] [stdout] test active_agents::tests::merge_returns_none_when_no_dir_has_marker ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_corrupt ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_context_watch ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_watchmen ... ok
[INFO] [stdout] test agent::tests::test_is_not_watcher ... ok
[INFO] [stdout] test agent::tests::test_match_agent_to_pid_basic ... ok
[INFO] [stdout] test agent::tests::test_match_agent_to_pid_no_match ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_basic ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_via_watcher_ctl ... ok
[INFO] [stdout] test agent::tests::test_is_watcher_extra_patterns_env_var ... ok
[INFO] [stdout] test agent::tests::test_extract_last_bash_cmd_from_str_empty ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_empty ... ok
[INFO] [stdout] test alert::tests::notify_alert_struct_compiles ... ok
[INFO] [stdout] test cadence::tests::first_call_fires_both ... ok
[INFO] [stdout] test cadence::tests::checklist_is_generic_no_private_paths ... ok
[INFO] [stdout] test cadence::tests::reminder_fires_at_its_interval ... ok
[INFO] [stdout] test cadence::tests::immediate_second_call_fires_neither ... ok
[INFO] [stdout] test agent::tests::test_is_own_command ... ok
[INFO] [stdout] test cadence::tests::heartbeat_fires_at_its_interval_but_not_reminder ... ok
[INFO] [stdout] test agent::tests::test_parse_ps_output_whitespace_only ... ok
[INFO] [stdout] test cadence::tests::timers_are_independent ... ok
[INFO] [stdout] test agent::tests::test_watcher_patterns_comprehensive ... ok
[INFO] [stdout] test cadence::tests::slow_loop_does_not_replay_missed_ticks ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_has_no_raw_tool_call_tags ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_is_single_line ... ok
[INFO] [stdout] test cadence::tests::tags_match_protocol ... ok
[INFO] [stdout] test config::tests::test_ask_question_monitor_defaults ... ok
[INFO] [stdout] test config::tests::test_global_cooldown_exempt_watcher_down_override_false ... ok
[INFO] [stdout] test config::tests::test_malformed_nudges_steer_to_clear_on_recurrence ... ok
[INFO] [stdout] test config::tests::test_heartbeat_stale_prompt_defaults_when_absent ... ok
[INFO] [stdout] test config::tests::test_default_heartbeat_stale_prompt_targets_the_heartbeat_file ... ok
[INFO] [stdout] test config::tests::test_ask_question_monitor_override ... ok
[INFO] [stdout] test config::tests::test_global_cooldown_exempt_watcher_down_defaults_true ... ok
[INFO] [stdout] test config::tests::test_merge_toml_overlay_wins_per_field ... ok
[INFO] [stdout] test config::tests::test_heartbeat_stale_prompt_override_parses ... ok
[INFO] [stdout] test config::tests::test_parse_invalid_config ... ok
[INFO] [stdout] test config::tests::test_default_update_resume_prompt_includes_orphan_recovery ... ok
[INFO] [stdout] test config::tests::test_parse_missing_section ... ok
[INFO] [stdout] test config::tests::test_parse_config_suppression_defaults ... ok
[INFO] [stdout] test config::tests::test_parse_config_suppression_overrides ... ok
[INFO] [stdout] test config::tests::test_post_escape_settle_ms_default_when_tmux_section_missing ... ok
[INFO] [stdout] test event_bus::tests::build_cadence_json_has_required_fields ... ok
[INFO] [stdout] test config::tests::test_parse_config_heartbeat_fresh_secs_override ... ok
[INFO] [stdout] test config::tests::test_parse_config_min_tokens_delta_override ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_handles_watcher_down ... ok
[INFO] [stdout] test config::tests::test_parse_minimal_values ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_has_required_fields ... ok
[INFO] [stdout] test config::tests::test_post_escape_settle_ms_explicit_override ... ok
[INFO] [stdout] test config::tests::test_parse_valid_config ... ok
[INFO] [stdout] test config::tests::test_parse_config_without_auto_update_section ... ok
[INFO] [stdout] test config::tests::test_hybrid_config_override ... ok
[INFO] [stdout] test config::tests::test_tmux_config_empty_section ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_failure_exit ... ok
[INFO] [stdout] test config::tests::test_stuck_detection_defaults ... ok
[INFO] [stdout] test config::tests::test_post_interrupt_cooldown_default_is_300 ... ok
[INFO] [stdout] test config::tests::test_tmux_config_partial_override ... ok
[INFO] [stdout] test event_bus::tests::emit_cadence_writes_file_with_sanitized_name ... ok
[INFO] [stdout] test config::tests::test_tmux_config_defaults_when_omitted ... ok
[INFO] [stdout] test event_bus::tests::emit_workload_done_writes_file_with_correct_shape ... ok
[INFO] [stdout] test config::tests::test_stuck_detection_override ... ok
[INFO] [stdout] test event_bus::tests::emit_cadence_heartbeat_tick_writes_event ... ok
[INFO] [stdout] test event_bus::tests::build_event_json_handles_minimal_alert ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_killed ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_with_queue_id_includes_field ... ok
[INFO] [stdout] test event_bus::tests::heartbeat_tick_data_carries_configured_path ... ok
[INFO] [stdout] test hook_fire::tests::block_with_context_additional_context_event ... ok
[INFO] [stdout] test hook_fire::tests::block_with_context_stop_event_uses_system_message ... ok
[INFO] [stdout] test event_bus::tests::build_workload_done_natural_exit ... ok
[INFO] [stdout] test hook_fire::tests::event_classification ... ok
[INFO] [stdout] test hook_fire::tests::noop_shape ... ok
[INFO] [stdout] test event_bus::tests::emit_writes_a_file_in_temp_queue_dir ... ok
[INFO] [stdout] test hook_fire::tests::block_with_context_system_message_event ... ok
[INFO] [stdout] test hook_fire::tests::reminder_response_additional_context_events ... ok
[INFO] [stdout] test hook_fire::tests::stop_event_reminder_matches_bug_report_fix ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_ide_panel_other_failure_falls_through_to_event ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_ide_panel_queued_still_routes_to_pidfd ... ok
[INFO] [stdout] test hook_fire::tests::reminder_response_system_message_events ... ok
[INFO] [stdout] test event_bus::tests::severity_maps_to_priority ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_terminal_routes_to_tmux ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_ide_panel_with_none_agent_pid_emits_unknown ... ok
[INFO] [stdout] test inject_dispatch::tests::mode_for_bogus_pid_is_unknown ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_unknown_no_pane_routes_to_event ... ok
[INFO] [stdout] test inject_dispatch::tests::mode_for_none_pid_is_unknown ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_unknown_with_pane_present_routes_to_tmux ... ok
[INFO] [stdout] test inject_dispatch::tests::panel_warn_cache_first_call_returns_true ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_ide_panel_routes_to_pidfd ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_ide_panel_eperm_falls_through_to_event ... ok
[INFO] [stdout] test inject_dispatch::tests::panel_warn_cache_per_pid ... ok
[INFO] [stdout] test inject_dispatch::tests::dispatch_terminal_queued_routes_to_tmux_queued ... ok
[INFO] [stdout] test inject_dispatch::tests::panel_warn_cache_reset_clears_state ... ok
[INFO] [stdout] test inject_probe::tests::test_expected_parent_inode_basic ... ok
[INFO] [stdout] test inject_probe::tests::test_build_user_message_shape ... ok
[INFO] [stdout] test inject_probe::tests::test_build_user_message_escapes_quotes ... ok
[INFO] [stdout] test inject_probe::tests::test_expected_parent_inode_zero_saturates ... ok
[INFO] [stdout] test inject_probe::tests::test_parse_socket_inode_malformed ... ok
[INFO] [stdout] test inject_probe::tests::test_parse_socket_inode_ok ... ok
[INFO] [stdout] test inject_probe::tests::test_parse_socket_inode_pipe_is_none ... ok
[INFO] [stdout] test inject_probe::tests::test_probe_bogus_pid_returns_agent_unreadable ... ok
[INFO] [stdout] test inject_probe::tests::test_probe_self_returns_wrong_mode_or_unreadable ... ok
[INFO] [stdout] test logging::tests::test_log_event_empty_fields ... ok
[INFO] [stdout] test logging::tests::test_log_event_flattened_fields ... ok
[INFO] [stdout] test logging::tests::test_log_event_serialization ... ok
[INFO] [stdout] test logging::tests::test_write_jsonl_log_creates_file ... ok
[INFO] [stdout] test metrics::tests::build_metrics_includes_mainloop_heartbeat_when_present ... ok
[INFO] [stdout] test logging::tests::test_write_legacy_log_creates_file ... ok
[INFO] [stdout] test metrics::tests::build_metrics_includes_fallback_counters ... ok
[INFO] [stdout] test metrics::tests::build_metrics_includes_per_interrupt_kind_counters ... ok
[INFO] [stdout] test metrics::tests::build_metrics_includes_reminder_fire_labels ... ok
[INFO] [stdout] test metrics::tests::build_metrics_minimal ... ok
[INFO] [stdout] test metrics::tests::build_metrics_live_counts_zero_default ... ok
[INFO] [stdout] test metrics::tests::build_metrics_live_counts_populated ... ok
[INFO] [stdout] test metrics::tests::build_metrics_omits_mainloop_heartbeat_when_absent ... ok
[INFO] [stdout] test metrics::tests::build_metrics_watcher_health ... ok
[INFO] [stdout] test metrics::tests::down_metrics_format ... ok
[INFO] [stdout] test metrics::tests::build_metrics_per_interrupt_defaults_to_zero ... ok
[INFO] [stdout] test metrics::tests::parse_iso_garbage_is_zero ... ok
[INFO] [stdout] test metrics::tests::parse_iso_rfc3339 ... ok
[INFO] [stdout] test metrics::tests::heartbeat_file_mtime_present_for_fresh_file ... ok
[INFO] [stdout] test metrics::tests::last_context_clear_emitted_when_set ... ok
[INFO] [stdout] test metrics::tests::last_context_clear_omitted_when_unset ... ok
[INFO] [stdout] test metrics::tests::parse_iso_empty_is_zero ... ok
[INFO] [stdout] test metrics::tests::heartbeat_file_mtime_none_when_missing ... ok
[INFO] [stdout] test obligation_arm::tests::test_truncate_respects_utf8_boundary ... ok
[INFO] [stdout] test obligation_arm::tests::test_arm_writes_exact_schema ... ok
[INFO] [stdout] test policy::tests::relaunch_inject_cmd_falls_back_to_inline_launch ... ok
[INFO] [stdout] test obligation_arm::tests::test_missing_file_is_not_armed ... ok
[INFO] [stdout] test policy::tests::relaunch_inject_cmd_is_single_line ... ok
[INFO] [stdout] test policy::tests::relaunch_inject_cmd_runs_script_when_present ... ok
[INFO] [stdout] test policy::tests::resolve_claude_bin_honors_env_override_else_falls_back ... ok
[INFO] [stdout] test policy::tests::stuck_suppressed_by_activity_truth_table ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_at_consecutive_threshold_suppresses ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_below_consecutive_threshold_does_not_suppress ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_first_detection_stamps_first_seen ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_max_stuck_secs_lifts_suppression ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_max_stuck_secs_zero_disables_cap ... ok
[INFO] [stdout] test policy::tests::relaunch_argv_always_skips_permissions_and_continues ... ok
[INFO] [stdout] test policy::tests::relaunch_argv_uses_resolved_absolute_bin_when_env_set ... ok
[INFO] [stdout] test policy::tests::relaunch_argv_resumes_with_session_id ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_not_retrying_clears_state ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_preserves_first_seen_across_cycles ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_resolution_then_re_entry ... ok
[INFO] [stdout] test policy::tests::test_api_retry_eval_saturating_consecutive ... ok
[INFO] [stdout] test policy::tests::test_apply_token_progress_counter_reset_slides_state ... ok
[INFO] [stdout] test policy::tests::test_apply_token_progress_keep_touches_nothing ... ok
[INFO] [stdout] test policy::tests::test_apply_token_progress_rearm_slides_state ... ok
[INFO] [stdout] test policy::tests::test_ask_question_timer_disabled_never_fires ... ok
[INFO] [stdout] test policy::tests::test_apply_token_progress_late_capture_keeps_timer ... ok
[INFO] [stdout] test policy::tests::test_ask_question_timer_never_fires_when_not_interactive ... ok
[INFO] [stdout] test policy::tests::test_ask_question_timer_fires_once_at_threshold_then_resets ... ok
[INFO] [stdout] test obligation_arm::tests::test_file_and_dir_perms ... ok
[INFO] [stdout] test obligation_arm::tests::test_is_armed_true_after_arm_false_other_source ... ok
[INFO] [stdout] test obligation_arm::tests::test_second_arm_same_source_is_noop ... ok
[INFO] [stdout] test policy::tests::test_cmdline_matches_empty_start_cmd_is_false ... ok
[INFO] [stdout] test policy::tests::test_cmdline_matches_exec_transform_sh_to_binary ... ok
[INFO] [stdout] test obligation_arm::tests::test_corrupt_file_default_open ... ok
[INFO] [stdout] test obligation_arm::tests::test_message_truncated_at_4096_bytes ... ok
[INFO] [stdout] test obligation_arm::tests::test_distinct_sources_coexist ... ok
[INFO] [stdout] test policy::tests::test_cmdline_matches_rejects_unrelated ... ok
[INFO] [stdout] test policy::tests::test_cmdline_matches_literal_path ... ok
[INFO] [stdout] test policy::tests::test_auto_respawn_default_off ... ok
[INFO] [stdout] test metrics::tests::write_and_read_prom ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_does_not_block_percent_fallback ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_present_but_safe_falls_through_to_percent ... ok
[INFO] [stdout] test policy::tests::test_check_auto_respawn_is_noop_when_disabled ... ok
[INFO] [stdout] test policy::tests::test_collect_thinking_signal_requires_two_interrupts ... ok
[INFO] [stdout] test policy::tests::test_collect_no_signals_when_clean_state ... ok
[INFO] [stdout] test policy::tests::test_check_auto_respawn_records_but_does_not_fire_below_threshold ... ok
[INFO] [stdout] test policy::tests::test_check_auto_respawn_cooldown_blocks_re_fire ... ok
[INFO] [stdout] test policy::tests::test_collect_watcher_signal_requires_recent_inject ... ok
[INFO] [stdout] test policy::tests::test_collect_watcher_signal_ignores_stale_inject ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_wins_over_margin ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_remaining_at_boundary ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_zero ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_remaining_safe ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_fallback_token_percent_triggers ... ok
[INFO] [stdout] test policy::tests::test_check_auto_respawn_aborts_when_no_claude_via_mock ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_margin_triggers ... ok
[INFO] [stdout] test policy::tests::test_dead_process_invalid_timestamp_treated_as_idle ... ok
[INFO] [stdout] test policy::tests::test_dead_process_not_suppressed_when_disabled ... ok
[INFO] [stdout] test policy::tests::test_collect_wedged_signal_requires_recent_clear_and_climbing ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_fallback_token_percent_safe ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_margin_safe ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_compact_remaining_triggers ... ok
[INFO] [stdout] test policy::tests::test_dead_process_suppressed_when_actively_turning ... ok
[INFO] [stdout] test policy::tests::test_dead_process_not_suppressed_when_idle_outside_window ... ok
[INFO] [stdout] test policy::tests::test_dead_process_not_suppressed_when_no_history ... ok
[INFO] [stdout] test policy::tests::test_collect_heartbeat_stuck_emits_signal ... ok
[INFO] [stdout] test policy::tests::test_default_state_has_clean_suppression_counters ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_margin_fires_even_when_compact_remaining_present ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_margin_overrides_percent ... ok
[INFO] [stdout] test policy::tests::test_context_threshold_neither_compact_nor_margin_fires ... ok
[INFO] [stdout] test policy::tests::test_dead_process_suppressed_when_recent_activity_in_window ... ok
[INFO] [stdout] test policy::tests::test_dead_process_uses_wider_default_window_than_watcher_down ... ok
[INFO] [stdout] test policy::tests::test_elapsed_since_invalid ... ok
[INFO] [stdout] test policy::tests::test_effective_cooldown_base_1_is_flat ... ok
[INFO] [stdout] test policy::tests::test_filter_consumer_for_event_emit_consumer_absent_returns_unchanged ... ok
[INFO] [stdout] test policy::tests::test_collect_multiple_signals_combine ... ok
[INFO] [stdout] test policy::tests::test_effective_cooldown_growth ... ok
[INFO] [stdout] test policy::tests::test_effective_cooldown_caps_at_max ... ok
[INFO] [stdout] test policy::tests::test_effective_cooldown_streak_zero_is_base ... ok
[INFO] [stdout] test policy::tests::test_filter_consumer_for_event_emit_custom_consumer_name ... ok
[INFO] [stdout] test policy::tests::test_filter_consumer_for_event_emit_consumer_among_others_filtered_out ... ok
[INFO] [stdout] test policy::tests::test_filter_consumer_for_event_emit_empty_returns_none ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_invalid_timestamp_treated_as_idle ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_not_suppressed_when_disabled ... ok
[INFO] [stdout] test policy::tests::test_elapsed_since_valid ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_not_suppressed_when_no_history ... ok
[INFO] [stdout] test policy::tests::test_effective_cooldown_saturating_no_panic ... ok
[INFO] [stdout] test policy::tests::test_default_watcher_inject_cooldown ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_not_suppressed_when_idle_outside_window ... ok
[INFO] [stdout] test policy::tests::test_filter_consumer_for_event_emit_only_consumer_returns_none ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_suppressed_when_recent_activity_in_window ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_window_zero_idle_does_not_suppress ... ok
[INFO] [stdout] test policy::tests::test_fresh_inject_due_requires_idle ... ok
[INFO] [stdout] test policy::tests::test_fresh_inject_due_requires_threshold_and_not_already_injected ... ok
[INFO] [stdout] test policy::tests::test_external_clear_path_records_timestamp ... ok
[INFO] [stdout] test policy::tests::test_fresh_inject_due_suppressed_when_interactive_prompt_pending ... ok
[INFO] [stdout] test policy::tests::test_global_cooldown_active_within_window ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_window_zero_still_honors_live_bashes ... ok
[INFO] [stdout] test policy::tests::test_external_clear_path_skipped_during_boot ... ok
[INFO] [stdout] test policy::tests::test_fresh_inject_due_fires_when_idle_and_no_interactive_prompt ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_age_secs_past_mtime ... ok
[INFO] [stdout] test policy::tests::test_fresh_clear_suppressed_when_actively_turning ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_fresh_rearm_unparseable_tokens_clears_baseline ... ok
[INFO] [stdout] test policy::tests::test_global_cooldown_disabled_when_zero ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_gate_zero_disables ... ok
[INFO] [stdout] test policy::tests::test_global_cooldown_ignores_malformed_timestamp ... ok
[INFO] [stdout] test policy::tests::test_inject_active_session_marks_alive ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_fresh_suppresses_and_rearms ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_future_mtime_fails_open ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_missing_file_fails_open ... ok
[INFO] [stdout] test policy::tests::test_global_cooldown_expired_after_window ... ok
[INFO] [stdout] test policy::tests::test_global_cooldown_inactive_when_no_prior_interrupt ... ok
[INFO] [stdout] test policy::tests::test_heartbeat_stale_allows_fire ... ok
[INFO] [stdout] test policy::tests::test_inject_loop_prevention_never_alive_recent ... ok
[INFO] [stdout] test policy::tests::test_inject_loop_prevention_expired_never_alive ... ok
[INFO] [stdout] test policy::tests::test_inject_pane_change_resets_both_flags ... ok
[INFO] [stdout] test policy::tests::test_inject_loop_prevention_no_timestamp ... ok
[INFO] [stdout] test policy::tests::test_interrupt_counter_saturating_increment_accumulates ... ok
[INFO] [stdout] test policy::tests::test_inject_loop_prevention_was_alive_then_died ... ok
[INFO] [stdout] test policy::tests::test_interrupt_counter_saturating_increment_does_not_panic_at_u64_max ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_invalid_timestamp_treated_as_idle ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_no_history_idle ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_stale_activity_outside_window ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_window_zero_still_honors_live_bashes ... ok
[INFO] [stdout] test policy::tests::test_interrupt_counter_independent_of_backoff_index ... ok
[INFO] [stdout] test policy::tests::test_interrupt_counters_independent_per_kind ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_window_zero_idle_returns_false ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_recent_activity_in_window ... ok
[INFO] [stdout] test policy::tests::test_malformed_not_post_clear_high_tokens_no_recent_clear ... ok
[INFO] [stdout] test policy::tests::test_malformed_post_clear_old_clear_not_exempt ... ok
[INFO] [stdout] test policy::tests::test_obligation_decision_arm_when_unarmed ... ok
[INFO] [stdout] test policy::tests::test_obligation_decision_dwell_zero_short_circuits_escalate ... ok
[INFO] [stdout] test policy::tests::test_malformed_post_clear_low_tokens_exempt ... ok
[INFO] [stdout] test policy::tests::test_obligation_decision_hold_when_dwell_not_elapsed ... ok
[INFO] [stdout] test policy::tests::test_is_api_retry_suppressing_below_threshold ... ok
[INFO] [stdout] test policy::tests::test_is_api_retry_suppressing_max_stuck_lifts ... ok
[INFO] [stdout] test policy::tests::test_is_api_retry_suppressing_no_episode ... ok
[INFO] [stdout] test policy::tests::test_obligation_decision_escalate_when_dwelled_and_idle ... ok
[INFO] [stdout] test policy::tests::test_main_loop_actively_turning_when_bashes_nonzero ... ok
[INFO] [stdout] test policy::tests::test_pidfile_watcher_down_when_pidfile_missing ... ok
[INFO] [stdout] test policy::tests::test_is_api_retry_suppressing_active_episode ... ok
[INFO] [stdout] test policy::tests::test_is_api_retry_suppressing_disabled ... ok
[INFO] [stdout] test policy::tests::test_malformed_post_clear_recent_clear_exempt ... ok
[INFO] [stdout] test policy::tests::test_pidfile_watcher_up_when_live_matching ... ok
[INFO] [stdout] test policy::tests::test_pidfile_watcher_down_when_recycled_pid ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_pid_empty_file ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_pid_missing_file ... ok
[INFO] [stdout] test policy::tests::test_obligation_decision_hold_when_subagents_active ... ok
[INFO] [stdout] test policy::tests::test_pidfile_watcher_down_when_stale_dead_pid ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_pid_trims_whitespace ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_pid_valid ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_recorded_pid_none_when_missing ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_recorded_pid_falls_back_to_pid ... ok
[INFO] [stdout] test policy::tests::test_record_suppression_subsequent_calls_preserve_timestamp ... ok
[INFO] [stdout] test policy::tests::test_record_then_reset_returns_to_pristine_state ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_pid_garbage ... ok
[INFO] [stdout] test policy::tests::test_record_suppression_does_not_touch_last_watcher_inject ... ok
[INFO] [stdout] test policy::tests::test_record_suppression_does_not_touch_last_interrupt_at ... ok
[INFO] [stdout] test policy::tests::test_record_suppression_first_call_stamps_timestamp ... ok
[INFO] [stdout] test policy::tests::test_record_suppression_saturates_at_u32_max ... ok
[INFO] [stdout] test policy::tests::test_reset_suppression_clears_both_fields ... ok
[INFO] [stdout] test policy::tests::test_read_watcher_recorded_pid_prefers_lock ... ok
[INFO] [stdout] test policy::tests::test_self_heal_triggers_above_threshold ... ok
[INFO] [stdout] test policy::tests::test_self_heal_no_trigger_below_threshold ... ok
[INFO] [stdout] test policy::tests::test_self_heal_no_trigger_when_retry_still_zero ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_consecutive_cap_zero_disables_consecutive_check ... ok
[INFO] [stdout] test policy::tests::test_self_heal_triggers_at_threshold_with_bashes ... ok
[INFO] [stdout] test policy::tests::test_self_heal_triggers_at_threshold_with_tokens ... ok
[INFO] [stdout] test policy::tests::test_reset_suppression_idempotent_when_already_clear ... ok
[INFO] [stdout] test policy::tests::test_reset_idempotent_when_flag_already_clear ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_consecutive_cap_takes_precedence_over_window ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_fires_on_consecutive_cap ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_returns_none_when_counter_zero ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_fires_on_consecutive_cap_overshoot ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_fires_on_window_exceeded ... ok
[INFO] [stdout] test policy::tests::test_reset_at_exact_fresh_threshold_does_not_reset ... ok
[INFO] [stdout] test policy::tests::test_reset_just_below_threshold_resets ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_caps_at_max ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_multiplier_2_matches_legacy ... ok
[INFO] [stdout] test policy::tests::test_reset_high_tokens_leaves_flag_set ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_multiplier_3 ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_returns_none_below_both_limits ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_invalid_first_suppression_at_treated_as_no_window_data ... ok
[INFO] [stdout] test policy::tests::test_reset_low_tokens_clears_triggered_flag ... ok
[INFO] [stdout] test policy::tests::test_should_escalate_window_zero_disables_window_check ... ok
[INFO] [stdout] test policy::tests::test_self_heal_no_trigger_at_zero ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_first_interrupt ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_multiplier_overflow_safety ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_overflow_safety ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_different_base ... ok
[INFO] [stdout] test policy::tests::test_reset_zero_tokens_clears_triggered_flag ... ok
[INFO] [stdout] test policy::tests::test_thinking_backoff_sequence ... ok
[INFO] [stdout] test policy::tests::test_token_action_counter_reset ... ok
[INFO] [stdout] test policy::tests::test_token_action_rearm_at_floor ... ok
[INFO] [stdout] test policy::tests::test_token_action_unparseable_or_disabled_keeps ... ok
[INFO] [stdout] test policy::tests::test_token_action_late_baseline_capture ... ok
[INFO] [stdout] test policy::tests::test_try_claim_global_interrupt_grants_after_window ... ok
[INFO] [stdout] test policy::tests::test_try_claim_global_interrupt_grants_when_no_prior ... ok
[INFO] [stdout] test policy::tests::test_try_claim_global_interrupt_zero_cooldown_always_grants ... ok
[INFO] [stdout] test policy::tests::test_token_action_keep_below_floor ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_above_event_threshold_emits ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_at_event_threshold_emits ... ok
[INFO] [stdout] test policy::tests::test_try_claim_backoff_base_1_is_flat_legacy ... ok
[INFO] [stdout] test policy::tests::test_token_progress_production_replay_2026_06_11 ... ok
[INFO] [stdout] test policy::tests::test_try_claim_exponential_widens_cooldown ... ok
[INFO] [stdout] test policy::tests::test_try_claim_streak_resets_after_quiet_window ... ok
[INFO] [stdout] test policy::tests::test_try_claim_global_interrupt_denies_within_cooldown ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_consumer_watcher_falls_through_to_inject_at_threshold ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_consumer_watcher_skips_event_below_inject_threshold ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_grace_zero_disables_quiet_path_after_first_emit ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_grace_expired_at_inject_threshold_falls_through_to_inject ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_recovery_clears_event_emitted_at_externally ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_within_grace_window_suppresses ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_dwell_zero_legacy_same_cycle ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_escalates_after_dwell_no_subagents ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_holds_within_dwell ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_suppression_escalation_forces_escalate ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_below_event_threshold_does_nothing ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_re_emit_suppressed_when_grace_active_and_count_grew ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_arms_on_first_detection ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_grace_expired_below_inject_threshold_does_nothing ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_due_never_injected ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_due_within_cooldown ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_ignores_global_cooldown ... ok
[INFO] [stdout] test policy::tests::test_watcher_down_decision_holds_when_subagents_live ... ok
[INFO] [stdout] test policy::tests::test_watcher_action_misconfig_event_threshold_above_inject_threshold ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_mixed_alive_and_zombie ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_min_count_zero ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_due_cooldown_zero_always_due ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_due_after_cooldown ... ok
[INFO] [stdout] test policy::tests::test_watcher_inject_due_malformed_timestamp_fails_open ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_no_matches ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_alive_match_meets_min ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_false_down_after_restart_regression ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_empty_dir_returns_false ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_fresh_file_returns_true ... ok
[INFO] [stdout] test policy::tests::test_watcher_is_down_zombie_only_match ... ok
[INFO] [stdout] test policy::tests::test_watcher_state_recovery_clears_event_emitted_at ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_at_end ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_missing_dir_returns_false ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_ignores_non_heartbeat_files ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_empty_environ ... ok
[INFO] [stdout] test proc_util::tests::test_agent_deployment_mode_unknown_for_bogus_pid ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_one_fresh_among_stale_returns_true ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_stale_file_returns_false ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_at_start ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_empty_value ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_suppresses_stuck_respects_master_switch ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_substring_not_a_match ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_absent ... ok
[INFO] [stdout] test policy::tests::workload_heartbeat_fresh_future_mtime_returns_true ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_in_middle ... ok
[INFO] [stdout] test proc_util::tests::test_env_contains_key_no_trailing_nul ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_append ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_no_flags_line ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_rdonly ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_wronly ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_rdwr ... ok
[INFO] [stdout] test proc_util::tests::test_parse_fdinfo_writable_empty ... ok
[INFO] [stdout] test queue_check::tests::build_event_json_orphaned_shape ... ok
[INFO] [stdout] test queue_check::tests::build_event_json_stuck_priority ... ok
[INFO] [stdout] test proc_util::tests::test_is_service_output_no_file ... ok
[INFO] [stdout] test queue_check::tests::build_message_orphaned_singular ... ok
[INFO] [stdout] test queue_check::tests::completed_items_ignored ... ok
[INFO] [stdout] test queue_check::tests::dedup_skips_already_emitted_same_condition ... ok
[INFO] [stdout] test queue_check::tests::fresh_heartbeat_not_stuck ... ok
[INFO] [stdout] test queue_check::tests::dedup_allows_new_condition_for_same_id ... ok
[INFO] [stdout] test queue_check::tests::not_orphaned_when_pid_alive ... ok
[INFO] [stdout] test queue_check::tests::orphaned_takes_precedence_over_stale_heartbeat ... ok
[INFO] [stdout] test queue_check::tests::load_state_missing_returns_empty ... ok
[INFO] [stdout] test queue_check::tests::orphaned_when_pid_dead ... ok
[INFO] [stdout] test queue_check::tests::orphaned_sorted_before_stuck ... ok
[INFO] [stdout] test queue_check::tests::stuck_on_stale_heartbeat ... ok
[INFO] [stdout] test queue_check::tests::wedged_is_stuck ... ok
[INFO] [stdout] test queue_check::tests::parse_iso_handles_rfc3339_and_naive ... ok
[INFO] [stdout] test reminders::tests::from_str_canonical_forms ... ok
[INFO] [stdout] test proc_util::tests::test_agent_deployment_mode_self_is_terminal_or_unknown ... ok
[INFO] [stdout] test queue_check::tests::pid_none_never_orphaned ... ok
[INFO] [stdout] test queue_check::tests::prune_drops_missing_qids ... ok
[INFO] [stdout] test respawn::tests::active_subagent_blocks_respawn_even_when_threshold_met ... ok
[INFO] [stdout] test reminders::tests::marker_roundtrip_preserves_context ... ok
[INFO] [stdout] test respawn::tests::agent_guard_runs_before_threshold_check ... ok
[INFO] [stdout] test queue_check::tests::pending_items_ignored ... ok
[INFO] [stdout] test queue_check::tests::state_roundtrip ... ok
[INFO] [stdout] test respawn::tests::config_defaults_match_spec ... ok
[INFO] [stdout] test respawn::tests::cooldown_blocks_re_fire ... ok
[INFO] [stdout] test respawn::tests::cooldown_expires_allows_re_fire ... ok
[INFO] [stdout] test respawn::tests::hash_is_deterministic_for_same_input ... ok
[INFO] [stdout] test respawn::tests::duplicate_signal_does_not_count_twice ... ok
[INFO] [stdout] test respawn::tests::higher_threshold_requires_more_signals ... ok
[INFO] [stdout] test respawn::tests::count_active_subagents_no_claude_pid_returns_zero ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_change_resets_timer ... ok
[INFO] [stdout] test reminders::tests::record_fire_increments_counter ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_fires_after_threshold ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_first_observation_does_not_fire ... ok
[INFO] [stdout] test respawn::tests::respawn_command_defaults_to_dashboard_detach ... ok
[INFO] [stdout] test respawn::tests::many_active_subagents_block_respawn ... ok
[INFO] [stdout] test respawn::tests::hash_differs_for_different_input ... ok
[INFO] [stdout] test respawn::tests::pane_unchanged_below_threshold_does_not_fire ... ok
[INFO] [stdout] test respawn::tests::signals_outside_window_are_pruned ... ok
[INFO] [stdout] test reminders::tests::should_defer_false_for_stale_marker ... ok
[INFO] [stdout] test respawn::tests::respawn_command_deserialises_from_toml_array ... ok
[INFO] [stdout] test respawn::tests::two_distinct_signals_trigger_respawn ... ok
[INFO] [stdout] test respawn::tests::signals_required_is_two_by_default ... ok
[INFO] [stdout] test respawn::tests::zero_subagents_does_not_change_existing_behavior ... ok
[INFO] [stdout] test respawn::tests::single_signal_does_not_trigger_respawn ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_empty ... ok
[INFO] [stdout] test respawn::tests::three_signals_trigger_respawn_when_required_two ... ok
[INFO] [stdout] test respawn::tests::signal_names_are_stable_strings ... ok
[INFO] [stdout] test reminders::tests::should_defer_to_hook_respects_grace_window ... ok
[INFO] [stdout] test session_event::tests::test_fmt_duration ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_no_compactions ... ok
[INFO] [stdout] test session_event::tests::test_format_number ... ok
[INFO] [stdout] test session_event::tests::test_format_history_basic ... ok
[INFO] [stdout] test session_event::tests::test_format_compaction_stats_basic ... ok
[INFO] [stdout] test session_event::tests::test_read_completed_tasks_from_str_all ... ok
[INFO] [stdout] test session_event::tests::test_format_stats_empty ... ok
[INFO] [stdout] test session_event::tests::test_format_stats_basic ... ok
[INFO] [stdout] test reminders::tests::all_fire_counts_covers_all_types ... ok
[INFO] [stdout] test session_event::tests::test_format_history_empty ... ok
[INFO] [stdout] test reminders::tests::read_marker_missing_file_is_default ... ok
[INFO] [stdout] test session_event::tests::test_read_completed_tasks_from_str ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_basic ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_empty ... ok
[INFO] [stdout] test session_event::tests::test_parse_duration_secs ... ok
[INFO] [stdout] test session_event::tests::test_session_event_serialization ... ok
[INFO] [stdout] test session_event::tests::test_session_event_serialization_skip_none ... ok
[INFO] [stdout] test session_event::tests::test_read_events_from_str_skips_corrupt ... ok
[INFO] [stdout] test stale_ready::tests::build_message_plural_and_top_n ... ok
[INFO] [stdout] test stale_ready::tests::build_event_json_has_required_fields ... ok
[INFO] [stdout] test stale_ready::tests::build_message_singular ... ok
[INFO] [stdout] test session_event::tests::test_valid_events_constant ... ok
[INFO] [stdout] test reminders::tests::seconds_since_fire_after_record ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_picks_over_threshold ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_skips_under_threshold ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_sorts_oldest_first ... ok
[INFO] [stdout] test stale_ready::tests::build_message_empty_string_on_empty_input ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_handles_missing_summary ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_respects_single_emit_state ... ok
[INFO] [stdout] test stale_ready::tests::compute_qualifying_skips_non_pending ... ok
[INFO] [stdout] test stale_ready::tests::load_state_missing_file_returns_empty ... ok
[INFO] [stdout] test stale_ready::tests::parse_iso_epoch_secs_handles_naive ... ok
[INFO] [stdout] test stale_ready::tests::parse_iso_epoch_secs_handles_rfc3339 ... ok
[INFO] [stdout] test stale_ready::tests::parse_iso_epoch_secs_rejects_garbage ... ok
[INFO] [stdout] test stale_ready::tests::prune_state_drops_missing_ids ... ok
[INFO] [stdout] test stale_ready::tests::load_state_garbage_file_returns_empty ... ok
[INFO] [stdout] test stale_ready::tests::prune_state_keeps_all_when_all_present ... ok
[INFO] [stdout] test state::tests::test_default_state ... ok
[INFO] [stdout] test state::tests::test_api_retry_suppressions_total_default_to_zero ... ok
[INFO] [stdout] test state::tests::test_api_retry_state_transient_reset_on_load ... ok
[INFO] [stdout] test state::tests::test_load_state_invalid_json ... ok
[INFO] [stdout] test stale_ready::tests::save_state_writes_atomically ... ok
[INFO] [stdout] test stale_ready::tests::save_and_load_state_roundtrip ... ok
[INFO] [stdout] test state::tests::test_interrupt_counters_preserved_across_load ... ok
[INFO] [stdout] test state::tests::test_interrupt_counters_default_to_zero_on_missing_fields ... ok
[INFO] [stdout] test state::tests::test_ask_question_fields_roundtrip_and_default ... ok
[INFO] [stdout] test state::tests::test_hybrid_fallback_counters_roundtrip ... ok
[INFO] [stdout] test state::tests::test_load_state_missing_file ... ok
[INFO] [stdout] test state::tests::test_interrupt_counters_roundtrip ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_false_when_only_pane_set_without_session ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_false_when_unconfigured ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_true_when_session_set ... ok
[INFO] [stdout] test state::tests::test_watcher_down_since_roundtrip_and_default ... ok
[INFO] [stdout] test state::tests::test_suppression_counters_cleared_on_load ... ok
[INFO] [stdout] test state::tests::test_cold_start_seeds_last_interrupt_at_to_startup_now ... ok
[INFO] [stdout] test status::tests::prefer_configured_pane_true_with_only_session ... ok
[INFO] [stdout] test state::tests::test_save_and_load_roundtrip ... ok
[INFO] [stdout] test status::tests::test_cmdline_matches_exec_transform ... ok
[INFO] [stdout] test state::tests::test_obligation_arm_timers_cleared_on_load ... ok
[INFO] [stdout] test state::tests::test_serialize_deserialize_roundtrip ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_non_numeric_ignored ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_package_json ... ok
[INFO] [stdout] test status::tests::test_is_claude_hooks_shim ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_no_version ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_whitespace_variants ... ok
[INFO] [stdout] test status::tests::test_extract_version_from_json_session_marker ... ok
[INFO] [stdout] test status::tests::test_extract_version_empty ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_bashes_found ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_empty_capture ... ok
[INFO] [stdout] test status::tests::test_extract_version_three_part ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_has_content_but_nothing_parsed ... ok
[INFO] [stdout] test status::tests::test_extract_version_simple ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_tokens_found ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_basic ... ok
[INFO] [stdout] test status::tests::test_is_pid_alive_self_and_bogus ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_fewer_lines_than_max ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_skips_blank_lines ... ok
[INFO] [stdout] test status::tests::test_parse_miss_tail_truncates_long_lines ... ok
[INFO] [stdout] test status::tests::test_extract_version_no_match ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_accept_edits_icon_alone ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_diag_full_bar_returns_true ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_empty ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_background_tasks ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_diag_no_status_bar_visible ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_large_tokens ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_full ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_idle_no_counts ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_extreme_wrap_incident_2026_04_18 ... ok
[INFO] [stdout] test status::tests::test_is_parse_miss_status_bar_visible_no_counts ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_missing_fields ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_compact_zero ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_bashes ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_only_last_10_lines ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_active_shell_singular ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells_realistic ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_does_not_overshadow_inline_bar ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells_wrapped_permissi ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_active_shells ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_shell ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_shells ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_realistic ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_single_chevron_not_enough ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_thinking_token_pushed_above_window ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_bash ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_k_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_down_arrow ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_overlay_with_shells_and_agents_section_2026_04_27 ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_singular_background_task ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_comments_and_blanks ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_m_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_tokens_no_commas ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_empty ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_invalid_min_count ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_truncated_ellipsis ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_no_suffix ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_thinking_indicator_does_not_match_prose ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_basic ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_minimal_fields ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_wrapped_narrow_pane ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_disabled ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_on_restart_cmd ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_config_missing_file ... ok
[INFO] [stdout] test status::tests::test_parse_status_bar_wrapped_with_compact ... ok
[INFO] [stdout] test status::tests::test_pidfile_watcher_is_down_decision ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_missing_binary ... ok
[INFO] [stdout] test status::tests::test_parse_watchers_single_field_rejected ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_both_stale_is_not_in_grace ... ok
[INFO] [stdout] test status::tests::test_read_watcher_recorded_pid_prefers_lock_then_pid ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_pidfile_fresh_overrides_stale_last_seen ... ok
[INFO] [stdout] test task_filters::tests::format_line_assistant_text ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_none_when_no_files ... ok
[INFO] [stdout] test task_filters::tests::format_line_bash_tool_with_description ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_unrelated_package_json_ignored ... ok
[INFO] [stdout] test task_filters::tests::format_line_empty_returns_none ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_takes_freshest ... ok
[INFO] [stdout] test task_filters::tests::format_line_invalid_json_returns_none ... ok
[INFO] [stdout] test task_filters::tests::format_line_progress_bash ... ok
[INFO] [stdout] test task_filters::tests::format_line_read_tool ... ok
[INFO] [stdout] test status::tests::test_watcher_runtime_file_age_secs_fresh_lock ... ok
[INFO] [stdout] test status::tests::test_watcher_in_grace_either_anchor_fresh ... ok
[INFO] [stdout] test status::tests::test_strip_script_suffix ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_npm_global_layout ... ok
[INFO] [stdout] test task_filters::tests::format_line_user_prompt_shown_only_once ... ok
[INFO] [stdout] test task_filters::tests::format_line_bash_tool_truncates_long_cmd ... ok
[INFO] [stdout] test task_filters::tests::wrap_text_breaks_long_line ... ok
[INFO] [stdout] test task_filters::tests::wrap_text_preserves_newlines ... ok
[INFO] [stdout] test task_filters::tests::wrap_text_short ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_empty ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_complete ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_user_only ... ok
[INFO] [stdout] test task_watch::tests::test_agent_conversation_complete_from_str_still_working ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_empty_brackets ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_agent ... ok
[INFO] [stdout] test status::tests::test_resolve_installed_version_native_layout ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_no_brackets ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_standard ... ok
[INFO] [stdout] test task_watch::tests::test_has_output_no_file ... ok
[INFO] [stdout] test task_watch::tests::test_find_tasks_dir_in_nonexistent ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_agent_id_only ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_agent_slug ... ok
[INFO] [stdout] test task_watch::tests::test_extract_task_id_from_pane_cmd_with_hyphens ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_long_text ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_empty ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_invalid_json ... ok
[INFO] [stdout] test task_watch::tests::test_is_agent_output_no_file ... ok
[INFO] [stdout] test task_watch::tests::test_infer_label_from_content_short_text ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_empty_object ... ok
[INFO] [stdout] test tests::format_status_human_compact_only_when_present ... ok
[INFO] [stdout] test tests::format_status_human_running_vs_installed_mismatch ... ok
[INFO] [stdout] test tests::format_status_human_separates_versions ... ok
[INFO] [stdout] test tests::format_status_human_tokens_pct_calculation ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_multiple_workloads ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_default ... ok
[INFO] [stdout] test tests::format_status_human_includes_all_runtime_counts ... ok
[INFO] [stdout] test tests::format_status_human_omits_pane_when_empty ... ok
[INFO] [stdout] test tests::format_status_human_unhealthy_watchers_visible_in_count ... ok
[INFO] [stdout] test tests::format_status_human_versions_match_no_warning ... ok
[INFO] [stdout] test tests::format_status_human_service_active_inactive ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_malformed_json ... ok
[INFO] [stdout] test tests::status_json_value_preserves_pre_refactor_keys ... ok
[INFO] [stdout] test tests::format_status_human_two_section_headers ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_missing_file ... ok
[INFO] [stdout] test tests::status_json_value_omits_pane_when_empty ... ok
[INFO] [stdout] test tests::status_json_value_adds_new_count_keys ... ok
[INFO] [stdout] test tests::status_json_value_omits_daemon_active_when_unknown ... ok
[INFO] [stdout] test tmux::tests::inject_outcome_variants_are_distinct ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_ask_user_question_menu ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_cursored_numbered_option ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_do_you_trust_folder ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_single_workload ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_fires_on_background_tasks_viewer_overlay ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_not_fired_on_bare_idle_prompt ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_not_fired_on_idle_with_typed_text ... ok
[INFO] [stdout] test tmux::tests::interactive_prompt_permission_confirmation ... ok
[INFO] [stdout] test task_watch::tests::test_load_workload_pane_ids_root_is_array ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_empty_env_falls_back_to_default ... ok
[INFO] [stdout] test task_watch::tests::test_workload_state_path_env_override ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_extracts_text_after_cursor ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_empty_when_prompt_bare ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_uses_last_prompt_line ... ok
[INFO] [stdout] test tmux::tests::prompt_line_text_none_without_prompt ... ok
[INFO] [stdout] test tmux::tests::sanitize_focus_main_keys_trims_and_drops_blanks ... ok
[INFO] [stdout] test tmux::tests::sanitize_focus_main_keys_empty_stays_empty ... ok
[INFO] [stdout] test tmux::tests::submit_keystroke_sequence_is_tab_escape_enter ... ok
[INFO] [stdout] test tmux::tests::test_activity_bullets_with_prompt_and_completion_is_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_takes_priority_over_spinner ... ok
[INFO] [stdout] test tmux::tests::test_activity_display ... ok
[INFO] [stdout] test tmux::tests::test_activity_bullets_with_prompt_no_completion_is_writing ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_takes_priority_over_thinking ... ok
[INFO] [stdout] test tmux::tests::test_activity_stale_thinking_with_completion_is_idle ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_273b_flowing ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_when_only_completion_no_thinking_content ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_273b_with_separator_and_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_honking ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_pondering ... ok
[INFO] [stdout] test tmux::tests::test_activity_idle_when_content_has_middle_dot_and_ellipsis ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_standard ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_bash ... ok
[INFO] [stdout] test tmux::tests::test_activity_unknown_empty ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_read ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_new_format_with_bullet_prefix ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_indented_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_takes_priority_over_spinner ... ok
[INFO] [stdout] test tmux::tests::test_activity_unknown ... ok
[INFO] [stdout] test tmux::tests::test_activity_only_checks_last_15_lines ... ok
[INFO] [stdout] test tmux::tests::test_activity_thinking_within_last_15 ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_multiple_bullets_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_429_with_retrying_in ... ok
[INFO] [stdout] test tmux::tests::test_activity_writing_no_prompt ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_attempt_marker_with_5xx ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_isolated_overloaded_word ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_shell_prompt_overrides_tokens ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_overloaded_keyword_alone ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_empty_input ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_bira_dollar_prompt ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_resolved_no_banner ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_percent_in_status_bar_not_shell ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_status_bar ... ok
[INFO] [stdout] test tmux::tests::test_api_retry_overload_with_retrying_in ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_shell_prompt_bira ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_background_stopped ... ok
[INFO] [stdout] test tmux::tests::test_feedback_prompt_detected ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_wrapped ... ok
[INFO] [stdout] test tmux::tests::test_activity_tool_running_various_spinners ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_no_indicators ... ok
[INFO] [stdout] test tmux::tests::test_feedback_prompt_dismiss_only ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_goodbye ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_none_on_clean ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_some_on_malformed ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_basic ... ok
[INFO] [stdout] test tmux::tests::test_claude_running_with_arrow_prompt ... ok
[INFO] [stdout] test tmux::tests::test_extract_login_url_none ... ok
[INFO] [stdout] test tmux::tests::test_focus_main_keys_get_set_roundtrip ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_stable_across_chrome_changes ... ok
[INFO] [stdout] test tmux::tests::test_fingerprint_differs_for_different_malform ... ok
[INFO] [stdout] test tmux::tests::test_exit_teardown_only_background_stopped ... ok
[INFO] [stdout] test tmux::tests::test_foreground_not_busy_no_spinner ... ok
[INFO] [stdout] test tmux::tests::test_foreground_not_busy_with_prompt ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_only_checks_last_15_lines ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_detected ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_not_present ... ok
[INFO] [stdout] test tmux::tests::test_foreground_busy_with_spinner ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_substring_inserted_does_not_match_in_tail ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_unwrapped_dashes ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_not_present ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_wrapped_bare_token ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_colored_ansi_capture ... ok
[INFO] [stdout] test tmux::tests::test_idle_prompt_within_last_15 ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_status_bar_wrap ... ok
[INFO] [stdout] test tmux::tests::test_malformed_bare_invoke_tag ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_with_whitespace ... ok
[INFO] [stdout] test tmux::tests::test_malformed_outside_fence_still_fires ... ok
[INFO] [stdout] test tmux::tests::test_insert_mode_word_in_chat_does_not_false_positive ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_tool_output_and_markdown ... ok
[INFO] [stdout] test tmux::tests::test_malformed_parameter_with_close_invoke ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_lookahead_gap ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_positive_cases ... ok
[INFO] [stdout] test tmux::tests::test_is_active_thinking_negative_completion_lines ... ok
[INFO] [stdout] test tmux::tests::test_malformed_court_prefix_signature ... ok
[INFO] [stdout] test tmux::tests::test_malformed_empty_input ... ok
[INFO] [stdout] test tmux::tests::test_malformed_only_checks_recent_lines ... ok
[INFO] [stdout] test tmux::tests::test_malformed_single_line_construct ... ok
[INFO] [stdout] test tmux::tests::test_malformed_with_stray_text_prefix ... ok
[INFO] [stdout] test tmux::tests::test_no_exit_teardown_goodbye_in_content ... ok
[INFO] [stdout] test tmux::tests::test_no_exit_teardown_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_no_feedback_prompt ... ok
[INFO] [stdout] test tmux::tests::test_no_shell_prompt ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_far_from_invoke ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_normal_thinking ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_in_prose ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_prefix_inside_code_fence ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_court_prose_with_namespaced_call ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_invokexyz_not_a_tag ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_inside_code_fence ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_without_error_marker ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_lone_parameter_no_corroboration ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_lone_invoke_no_name_no_corroboration ... ok
[INFO] [stdout] test tmux::tests::test_not_api_retry_old_history_only ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_429_without_reject ... ok
[INFO] [stdout] test tmux::tests::test_not_malformed_prose_mentioning_invoke ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_api_error_without_429 ... ok
[INFO] [stdout] test tmux::tests::test_not_wedged_normal_output ... ok
[INFO] [stdout] test tmux::tests::test_post_escape_settle_ms_get_set_roundtrip ... ok
[INFO] [stdout] test tmux::tests::test_reauth_browser_didnt_open ... ok
[INFO] [stdout] test tmux::tests::test_reauth_auth_required ... ok
[INFO] [stdout] test tmux::tests::test_reauth_login_url ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_401_text_with_tui ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_agents_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_api_error_401_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_authentication_error_json_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_background_tasks_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_bypass_permissions_banner_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_conversation_about_401 ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_empty ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_conversation_about_auth ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_invalid_credentials_in_conversation ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_shells_counter_with_auth_text ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_normal_tui ... ok
[INFO] [stdout] test tmux::tests::test_reauth_not_detected_startup ... ok
[INFO] [stdout] test tmux::tests::test_reauth_session_expired ... ok
[INFO] [stdout] test tmux::tests::test_reauth_oauth_url ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_arrow ... ok
[INFO] [stdout] test tmux::tests::test_reauth_paste_code ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_close_tags ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_bare_invoke ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_dollar ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_ignores_non_tag_words ... ok
[INFO] [stdout] test tmux::tests::test_reauth_still_detected_when_tui_gone ... ok
[INFO] [stdout] test tmux::tests::test_tag_name_attr_present ... ok
[INFO] [stdout] test tmux::tests::test_shell_prompt_percent ... ok
[INFO] [stdout] test tmux::tests::test_wedged_context_limit_banner ... ok
[INFO] [stdout] test tmux::tests::test_wedged_rate_limit_429 ... ok
[INFO] [stdout] test tmux::tests::test_wedged_rate_limit_repeated ... ok
[INFO] [stdout] test tmux::tests::test_wedged_only_checks_recent_lines ... ok
[INFO] [stdout] test tmux::tests::test_wedged_context_limit_alt_phrasing ... ok
[INFO] [stdout] test tmux::tests::test_wedged_empty_input ... ok
[INFO] [stdout] test token_usage::tests::counts_turn_without_id ... ok
[INFO] [stdout] test token_usage::tests::dedups_repeated_message_id_within_file ... ok
[INFO] [stdout] test token_usage::tests::parse_basic_single_turn ... ok
[INFO] [stdout] test token_usage::tests::distinct_ids_accumulate ... ok
[INFO] [stdout] test tmux::tests::test_tokenize_named_invoke ... ok
[INFO] [stdout] test token_usage::tests::summarize_empty_month_resets ... ok
[INFO] [stdout] test token_usage::tests::skips_non_assistant_and_marker_lines ... ok
[INFO] [stdout] test token_usage::tests::skips_turn_without_timestamp ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_neither_falls_back_to_one ... ok
[INFO] [stdout] test token_usage::tests::token_metric_lines_render_both_series ... ok
[INFO] [stdout] test tmux::tests::test_wedged_reason_display ... ok
[INFO] [stdout] test token_usage::tests::summarize_splits_month_to_date ... ok
[INFO] [stdout] test token_usage::tests::collect_missing_projects_dir_is_zero ... ok
[INFO] [stdout] test watcher::tests::test_any_unhealthy_includes_duplicate ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_nonzero ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_takes_precedence ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_normal_zero ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigint ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigkill ... ok
[INFO] [stdout] test watcher::tests::test_exit_code_from_status_sigterm ... ok
[INFO] [stdout] test watcher::tests::test_format_list_basic ... ok
[INFO] [stdout] test watcher::tests::test_format_list_empty ... ok
[INFO] [stdout] test watcher::tests::test_format_status_all_ok ... ok
[INFO] [stdout] test watcher::tests::test_format_status_all_shows_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_default_hides_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_default_hides_disabled_but_keeps_warning ... ok
[INFO] [stdout] test watcher::tests::test_format_status_disabled ... ok
[INFO] [stdout] test watcher::tests::test_format_status_down_only_suggests_watcher_ctl_run ... ok
[INFO] [stdout] test watcher::tests::test_format_status_down_takes_precedence_over_duplicate ... ok
[INFO] [stdout] test token_usage::tests::collect_drops_stale_cache_entries ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_pollers ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_both ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_suggests_watcher_restart ... ok
[INFO] [stdout] test watcher::tests::test_format_status_duplicate_supervisors_only ... ok
[INFO] [stdout] test watcher::tests::test_format_status_healthy_no_recovery_footer ... ok
[INFO] [stdout] test watcher::tests::test_format_status_machine_greppable ... ok
[INFO] [stdout] test watcher::tests::test_format_status_some_down ... ok
[INFO] [stdout] test token_usage::tests::collect_uses_and_refreshes_cache ... ok
[INFO] [stdout] test watcher::tests::test_is_supervisor_comm_nonexistent_pid ... ok
[INFO] [stdout] test watcher::tests::test_pid_is_alive_self_true ... ok
[INFO] [stdout] test watcher::tests::test_is_supervisor_comm_self ... ok
[INFO] [stdout] test watcher::tests::test_pid_is_alive_bogus_false ... ok
[INFO] [stdout] test watcher::tests::test_format_status_mixed_down_and_duplicate_prefers_watcher_restart ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_dead_pid_is_false ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_empty_start_cmd_is_false ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_strips_sh_suffix_via_shared_helper ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_self ... ok
[INFO] [stdout] test watcher::tests::test_pid_matches_watcher_mismatch_rejects_recycled_pid ... ok
[INFO] [stdout] test watcher::tests::test_protected_watchers_includes_memory_remind ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_disable ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_minimal_fields ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_not_found ... ok
[INFO] [stdout] test watcher::tests::test_read_pid_file_valid ... ok
[INFO] [stdout] test watcher::tests::test_read_pid_file_missing_or_garbage ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_skip_when_recorded_pid_alive ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_preserves_comments ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_skip_when_poller_already_running ... ok
[INFO] [stdout] test watcher::tests::test_run_guard_start_when_nothing_alive ... ok
[INFO] [stdout] test watcher::tests::test_rewrite_config_enable ... ok
[INFO] [stdout] test watcher::tests::test_try_claim_pid_file_first_wins_second_loses ... ok
[INFO] [stdout] test watcher::tests::test_try_claim_pid_file_after_removal_succeeds ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_excludes_concurrent_holder ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_distinct_names_dont_collide ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_decision_is_pidfile_based ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_lock_uses_runlock_not_child_lock_path ... ok
[INFO] [stdout] test watcher::tests::test_watcher_lock_released_on_drop_allows_reacquire ... ok
[INFO] [stdout] test workload::tests::babysit_loop_clamps_zero_poll ... ok
[INFO] [stdout] test workload::tests::babysit_loop_heartbeats_at_least_once_even_on_fast_completion ... ok
[INFO] [stdout] test workload::tests::babysit_loop_fires_heartbeats_on_cadence ... ok
[INFO] [stdout] test workload::tests::babysit_loop_propagates_nonzero_workload_rc ... ok
[INFO] [stdout] test watcher::tests::test_watcher_toggle_enable_is_config_only ... ok
[INFO] [stdout] test workload::tests::babysit_loop_times_out_to_still_running ... ok
[INFO] [stdout] test workload::tests::babysit_loop_returns_done_with_workload_rc ... ok
[INFO] [stdout] test workload::tests::capture_absolute_interpreter_path_basename_match ... ok
[INFO] [stdout] test workload::tests::capture_bash_script_happy_path ... ok
[INFO] [stdout] test workload::tests::capture_does_not_crash_on_missing_dir ... ok
[INFO] [stdout] test workload::tests::capture_refuses_dash_c_inline_script ... ok
[INFO] [stdout] test workload::tests::capture_detects_binary_content ... ok
[INFO] [stdout] test workload::tests::capture_python_versioned_interpreter ... ok
[INFO] [stdout] test workload::tests::capture_refuses_nonexistent_path ... ok
[INFO] [stdout] test workload::tests::capture_refuses_symlink ... ok
[INFO] [stdout] test workload::tests::capture_refuses_too_many_args ... ok
[INFO] [stdout] test workload::tests::capture_refuses_unknown_interpreter ... ok
[INFO] [stdout] test workload::tests::capture_serde_roundtrip ... ok
[INFO] [stdout] test workload::tests::cmd_babysit_rejects_bad_qid ... ok
[INFO] [stdout] test workload::tests::cmd_babysit_unknown_label_exits_1 ... ok
[INFO] [stdout] test workload::tests::capture_truncates_oversized_file ... ok
[INFO] [stdout] test workload::tests::auto_create_calls_queue_add_with_workload_scope ... ok
[INFO] [stdout] test workload::tests::auto_create_register_failure_still_returns_qid ... ok
[INFO] [stdout] test workload::tests::auto_create_calls_register_after_add ... ok
[INFO] [stdout] test watcher::tests::test_watcher_toggle_enable_does_not_spawn_process ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_no_pid_file_starts ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_on_queue_add_failure ... ok
[INFO] [stdout] test workload::tests::cmd_wait_with_force_flag_proceeds_to_state_lookup ... ok
[INFO] [stdout] test workload::tests::cmd_wait_without_force_flag_exits_with_code_2 ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_is_idempotent ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_links_when_missing ... ok
[INFO] [stdout] test workload::tests::create_compat_symlink_skips_existing_dir ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_on_malformed_json ... ok
[INFO] [stdout] test workload::tests::auto_create_returns_err_when_session_task_missing ... ok
[INFO] [stdout] test workload::tests::babysit_heartbeat_invokes_session_task_queue_heartbeat ... ok
[INFO] [stdout] test workload::tests::capture_resolves_path_lookup ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_queue_abandon_on_failure ... ok
[INFO] [stdout] test workload::tests::shell_quote_plain ... ok
[INFO] [stdout] test workload::tests::shell_quote_with_apostrophe ... ok
[INFO] [stdout] test workload::tests::state_loads_legacy_entry_without_queue_id_field ... ok
[INFO] [stdout] test workload::tests::state_loads_missing_file_as_empty ... ok
[INFO] [stdout] test workload::tests::state_roundtrip ... ok
[INFO] [stdout] test workload::tests::state_roundtrip_with_queue_id ... ok
[INFO] [stdout] test workload::tests::wrapper_script_contains_heartbeat_sidecar ... ok
[INFO] [stdout] test workload::tests::wrapper_script_contains_runtime_heartbeat_sidecar ... ok
[INFO] [stdout] test workload::tests::wrapper_script_heartbeat_disabled_via_env ... ok
[INFO] [stdout] test workload::tests::wrapper_script_line_buffers_via_stdbuf ... ok
[INFO] [stdout] test workload::tests::wrapper_script_no_queue_id_omits_arg ... ok
[INFO] [stdout] test workload::tests::wrapper_script_no_unprefixed_tee_exec ... ok
[INFO] [stdout] test workload::tests::wrapper_script_preserves_headers_and_emit_done ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_queue_abandon_on_kill ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_calls_session_task_queue_done_on_clean_exit ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_killed_marker ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_queue_transition_skipped_by_env ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_with_queue_id_carries_qid_in_event ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_stale_pid_file_starts ... ok
[INFO] [stdout] test workload::tests::cmd_emit_done_writes_event_file ... ok
[INFO] [stdout] test watcher::tests::test_watcher_run_second_invocation_noops_while_alive ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_sidecar_does_not_touch_unconditionally ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_stale_lock_is_down ... ok
[INFO] [stdout] test workload::tests::wrapper_script_wraps_user_command_in_pty ... ok
[INFO] [stdout] test workload::tests::wrapper_script_writes_output_without_ts_prefix ... ok
[INFO] [stdout] test watcher::tests::test_watcher_status_exec_argv_is_up_via_pidfile ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_calls_update_scope ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_fail_soft_on_missing_cli ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_fail_soft_on_nonzero_exit ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_emits_body_and_headers ... ok
[INFO] [stdout] test workload::tests::inject_workload_scope_token_is_idempotent ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_propagates_inner_exit_code ... ok
[INFO] [stdout] test workload::tests::run_session_task_with_timeout_kills_runaway_child ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_pets_and_cleans_runtime_heartbeat ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_line_buffers_python_child ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_streams_carriage_return_progress ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_drives_queue_abandon_on_failure ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_pets_and_reaps_heartbeat ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_heartbeat_does_not_refresh_when_silent ... ok
[INFO] [stdout] test workload::tests::wrapper_script_runtime_heartbeat_refreshes_when_output_grows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 962 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.73s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/bench_ast_predicate.rs (/opt/rustwide/target/debug/deps/bench_ast_predicate-e82fe7180bfe5779)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test heredoc_fp_demo_is_a_pass ... ok
[INFO] [stdout] test surface_string_regex_fp_for_comparison ... ok
[INFO] [stdout] test bench_representative_invocations ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.73s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_dead_process.rs (/opt/rustwide/target/debug/deps/e2e_dead_process-40342153c17837b6)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test transient_zero_tokens_no_restart ... FAILED
[INFO] [stdout] test dead_process_detected_and_restart_triggered ... FAILED
[INFO] [stdout] test healthy_process_not_flagged_as_dead ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- transient_zero_tokens_no_restart stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'transient_zero_tokens_no_restart' (3913) panicked at tests/common/mod.rs:349:14:
[INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x588f7986da58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x588f7986da58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x588f7988239a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x588f7988239a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x588f79872342 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x588f79872342 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x588f7984ab56 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x588f7984ab56 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x588f798652e9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x588f797ff9fc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x588f797ff9fc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x588f798654a2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x588f798654a2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x588f7984ac12 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x588f7983fbe9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x588f7984b9bd - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x588f79882b2c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x588f798828a2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x588f797c19de - <core[8fb95b77d25ab6c8]::result::Result<std[10d71ac2c42b111e]::process::ExitStatus, std[10d71ac2c42b111e]::io::error::Error>>::expect
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x588f797b8d42 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::create_tmux_session
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:349:14
[INFO] [stdout]   22:     0x588f797ba464 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::new
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:258:17
[INFO] [stdout]   23:     0x588f797c09f3 - e2e_dead_process[47270c5aeec05488]::transient_zero_tokens_no_restart
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:106:15
[INFO] [stdout]   24:     0x588f797c0727 - e2e_dead_process[47270c5aeec05488]::transient_zero_tokens_no_restart::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:105:38
[INFO] [stdout]   25:     0x588f797be8b6 - <e2e_dead_process[47270c5aeec05488]::transient_zero_tokens_no_restart::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x588f797f2adb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x588f797f2adb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   28:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   29:     0x588f79800355 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   30:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   31:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   32:     0x588f79800355 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   33:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   34:     0x588f79800355 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   35:     0x588f797f9c64 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   36:     0x588f797f9c64 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   37:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   38:     0x588f798033d2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   39:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   40:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   41:     0x588f798033d2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   42:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   43:     0x588f798033d2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x588f7986ceaf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   45:     0x588f7986ceaf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   46:     0x7b89ef706aa4 - <unknown>
[INFO] [stdout]   47:     0x7b89ef793a64 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- dead_process_detected_and_restart_triggered stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'dead_process_detected_and_restart_triggered' (3911) panicked at tests/common/mod.rs:349:14:
[INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x588f7986da58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x588f7986da58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x588f7988239a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x588f7988239a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x588f79872342 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x588f79872342 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x588f7984ab56 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x588f7984ab56 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x588f798652e9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x588f797ff9fc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x588f797ff9fc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x588f798654a2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x588f798654a2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x588f7984ac12 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x588f7983fbe9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x588f7984b9bd - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x588f79882b2c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x588f798828a2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x588f797c19de - <core[8fb95b77d25ab6c8]::result::Result<std[10d71ac2c42b111e]::process::ExitStatus, std[10d71ac2c42b111e]::io::error::Error>>::expect
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x588f797b8d42 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::create_tmux_session
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:349:14
[INFO] [stdout]   22:     0x588f797ba464 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::new
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:258:17
[INFO] [stdout]   23:     0x588f797c12b6 - e2e_dead_process[47270c5aeec05488]::dead_process_detected_and_restart_triggered
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:16:15
[INFO] [stdout]   24:     0x588f797c0787 - e2e_dead_process[47270c5aeec05488]::dead_process_detected_and_restart_triggered::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:15:49
[INFO] [stdout]   25:     0x588f797be936 - <e2e_dead_process[47270c5aeec05488]::dead_process_detected_and_restart_triggered::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x588f797f2adb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x588f797f2adb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   28:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   29:     0x588f79800355 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   30:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   31:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   32:     0x588f79800355 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   33:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   34:     0x588f79800355 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   35:     0x588f797f9c64 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   36:     0x588f797f9c64 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   37:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   38:     0x588f798033d2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   39:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   40:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   41:     0x588f798033d2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   42:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   43:     0x588f798033d2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x588f7986ceaf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   45:     0x588f7986ceaf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   46:     0x7b89ef706aa4 - <unknown>
[INFO] [stdout]   47:     0x7b89ef793a64 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- healthy_process_not_flagged_as_dead stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'healthy_process_not_flagged_as_dead' (3912) panicked at tests/common/mod.rs:349:14:
[INFO] [stdout] create tmux session: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x588f7986da58 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized::<std[10d71ac2c42b111e]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x588f7986da58 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x588f7986da58 - <<std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x588f7988239a - <core[8fb95b77d25ab6c8]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x588f7988239a - core[8fb95b77d25ab6c8]::fmt::write
[INFO] [stdout]    6:     0x588f79872342 - std[10d71ac2c42b111e]::io::default_write_fmt::<alloc[a7ee25936407c584]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11
[INFO] [stdout]    7:     0x588f79872342 - <alloc[a7ee25936407c584]::vec::Vec<u8> as std[10d71ac2c42b111e]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13
[INFO] [stdout]    8:     0x588f7984ab56 - <std[10d71ac2c42b111e]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x588f7984ab56 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x588f798652e9 - std[10d71ac2c42b111e]::panicking::default_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x588f797ff9fc - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   12:     0x588f797ff9fc - test[213991da798b1c03]::test_main_inner::<test[213991da798b1c03]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stderr] error: test failed, to rerun pass `--test e2e_dead_process`
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x588f798654a2 - <alloc[a7ee25936407c584]::boxed::Box<dyn for<'a, 'b> core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9
[INFO] [stdout]   14:     0x588f798654a2 - std[10d71ac2c42b111e]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x588f7984ac12 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x588f7983fbe9 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace::<std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x588f7984b9bd - __rustc[3be9ba60078d4c86]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x588f79882b2c - core[8fb95b77d25ab6c8]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x588f798828a2 - core[8fb95b77d25ab6c8]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x588f797c19de - <core[8fb95b77d25ab6c8]::result::Result<std[10d71ac2c42b111e]::process::ExitStatus, std[10d71ac2c42b111e]::io::error::Error>>::expect
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1185:23
[INFO] [stdout]   21:     0x588f797b8d42 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::create_tmux_session
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:349:14
[INFO] [stdout]   22:     0x588f797ba464 - <e2e_dead_process[47270c5aeec05488]::common::TestEnv>::new
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/common/mod.rs:258:17
[INFO] [stdout]   23:     0x588f797c0e29 - e2e_dead_process[47270c5aeec05488]::healthy_process_not_flagged_as_dead
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:71:15
[INFO] [stdout]   24:     0x588f797c0757 - e2e_dead_process[47270c5aeec05488]::healthy_process_not_flagged_as_dead::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/e2e_dead_process.rs:70:41
[INFO] [stdout]   25:     0x588f797be8f6 - <e2e_dead_process[47270c5aeec05488]::healthy_process_not_flagged_as_dead::{closure#0} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   26:     0x588f797f2adb - <fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x588f797f2adb - test[213991da798b1c03]::__rust_begin_short_backtrace::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18
[INFO] [stdout]   28:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74
[INFO] [stdout]   29:     0x588f79800355 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   30:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   31:     0x588f79800355 - std[10d71ac2c42b111e]::panicking::catch_unwind::<core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   32:     0x588f79800355 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<test[213991da798b1c03]::run_test_in_process::{closure#0}>, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   33:     0x588f79800355 - test[213991da798b1c03]::run_test_in_process
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27
[INFO] [stdout]   34:     0x588f79800355 - test[213991da798b1c03]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43
[INFO] [stdout]   35:     0x588f797f9c64 - test[213991da798b1c03]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41
[INFO] [stdout]   36:     0x588f797f9c64 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace::<test[213991da798b1c03]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   37:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   38:     0x588f798033d2 - <core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   39:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   40:     0x588f798033d2 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   41:     0x588f798033d2 - std[10d71ac2c42b111e]::panic::catch_unwind::<core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe<std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14
[INFO] [stdout]   42:     0x588f798033d2 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   43:     0x588f798033d2 - <std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked<test[213991da798b1c03]::run_test::{closure#1}, ()>::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   44:     0x588f7986ceaf - <alloc[a7ee25936407c584]::boxed::Box<dyn core[8fb95b77d25ab6c8]::ops::function::FnOnce<(), Output = ()> + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9
[INFO] [stdout]   45:     0x588f7986ceaf - <std[10d71ac2c42b111e]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   46:     0x7b89ef706aa4 - <unknown>
[INFO] [stdout]   47:     0x7b89ef793a64 - clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     dead_process_detected_and_restart_triggered
[INFO] [stdout]     healthy_process_not_flagged_as_dead
[INFO] [stdout]     transient_zero_tokens_no_restart
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c", kill_on_drop: false }`
[INFO] [stdout] deda69e9ae1cc932d4bf920cca956712119627ab27ea62864329199cd5176f2c
