[INFO] cloning repository https://github.com/xpadev-net/ccx-t1
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xpadev-net/ccx-t1" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxpadev-net%2Fccx-t1", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxpadev-net%2Fccx-t1'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7b6e56be428ebee4e674d4279f0b04c05a470465
[INFO] testing xpadev-net/ccx-t1 against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxpadev-net%2Fccx-t1" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  96% (1908/1979)
Updating files:  97% (1920/1979)
Updating files:  98% (1940/1979)
Updating files:  99% (1960/1979)
Updating files: 100% (1979/1979)
Updating files: 100% (1979/1979), done.
[INFO] started tweaking git repo https://github.com/xpadev-net/ccx-t1
[INFO] finished tweaking git repo https://github.com/xpadev-net/ccx-t1
[INFO] tweaked toml for git repo https://github.com/xpadev-net/ccx-t1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xpadev-net/ccx-t1 on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xpadev-net/ccx-t1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb
[INFO] running `Command { std: "docker" "start" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", 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" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", 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" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling camino v1.2.2
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling directories v5.0.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling fd-lock v4.0.4
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling tokio v1.52.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling ccx v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `project_id` and `work_execution_id` are never read
[INFO] [stdout]   --> src/agent_runtime/cmux_adapter.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct AgentSessionSpec {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 43 |     pub session_id: String,
[INFO] [stdout] 44 |     pub project_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub work_execution_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeartbeatConfig` is never constructed
[INFO] [stdout]   --> src/agent_runtime/harness.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct HeartbeatConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_heartbeat` is never used
[INFO] [stdout]   --> src/agent_runtime/harness.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn spawn_heartbeat(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_heartbeat_loop` is never used
[INFO] [stdout]   --> src/agent_runtime/harness.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn run_heartbeat_loop(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pane_pid`, `get_pane_cwd`, `send_keys`, and `send_literal` are never used
[INFO] [stdout]   --> src/agent_runtime/tmux_adapter.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait TmuxAdapter: Send + Sync {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get_pane_pid(&self, session_id: &str) -> Result<Option<u32>, CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn get_pane_cwd(&self, session_id: &str) -> Result<Option<String>, CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn send_keys(&self, session_id: &str, keys: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn send_literal(&self, session_id: &str, text: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> src/domain/event.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `event_type` is never used
[INFO] [stdout]    --> src/domain/event.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl EventData {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 132 |     pub fn event_type(&self) -> EventType {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WriteLeaseConflict`, `MergeLockConflict`, and `TaskFileConflict` are never constructed
[INFO] [stdout]   --> src/error.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum CcxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     WriteLeaseConflict { active_session_id: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     MergeLockConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     TaskFileConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CcxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_hard` is never used
[INFO] [stdout]   --> src/git/repo.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn reset_hard(repo: &Utf8Path) -> Result<(), CcxError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_events` is never used
[INFO] [stdout]    --> src/persistence/jsonl.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn read_events(project_id: &str) -> Result<Vec<Event>, CcxError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha256_hex` is never used
[INFO] [stdout]  --> src/watcher/mod.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) fn sha256_hex(content: &str) -> String {
[INFO] [stdout]   |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskFrontMatter` is never constructed
[INFO] [stdout]  --> src/watcher/front_matter.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct TaskFrontMatter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawTaskFrontMatter` is never constructed
[INFO] [stdout]   --> src/watcher/front_matter.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct RawTaskFrontMatter {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALLOWED_STATUS_VALUES` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const ALLOWED_STATUS_VALUES: &[&str] = &[
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_status` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn validate_status(value: Option<serde_yaml::Value>) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_front_matter` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn parse_front_matter(content: &str) -> Result<TaskFrontMatter, serde_yaml::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceWatcherState` is never constructed
[INFO] [stdout]   --> src/watcher/source_watcher.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SourceWatcherState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `observe` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn observe(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/source_watcher.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SourceWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_source_file_changed` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn notify_orchestrator_source_file_changed(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_source_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn notify_orchestrator_source_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl SourceWatcher {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 91 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskWatcherState` is never constructed
[INFO] [stdout]   --> src/watcher/task_watcher.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TaskWatcherState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `observe` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn observe(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/task_watcher.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TaskWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_task_file_changed` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn notify_orchestrator_task_file_changed(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_task_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn notify_orchestrator_task_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/watcher/task_watcher.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl TaskWatcher {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 124 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.48s
[INFO] running `Command { std: "docker" "inspect" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", 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" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling assert_cmd v2.2.2
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling ccx v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: fields `project_id` and `work_execution_id` are never read
[INFO] [stdout]   --> src/agent_runtime/cmux_adapter.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct AgentSessionSpec {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 43 |     pub session_id: String,
[INFO] [stdout] 44 |     pub project_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub work_execution_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeartbeatConfig` is never constructed
[INFO] [stdout]   --> src/agent_runtime/harness.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct HeartbeatConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `spawn_heartbeat` is never used
[INFO] [stdout]   --> src/agent_runtime/harness.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn spawn_heartbeat(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_heartbeat_loop` is never used
[INFO] [stdout]   --> src/agent_runtime/harness.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn run_heartbeat_loop(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_pane_pid`, `get_pane_cwd`, `send_keys`, and `send_literal` are never used
[INFO] [stdout]   --> src/agent_runtime/tmux_adapter.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait TmuxAdapter: Send + Sync {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 62 |     fn get_pane_pid(&self, session_id: &str) -> Result<Option<u32>, CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     fn get_pane_cwd(&self, session_id: &str) -> Result<Option<String>, CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn send_keys(&self, session_id: &str, keys: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn send_literal(&self, session_id: &str, text: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `EventType` is never used
[INFO] [stdout]   --> src/domain/event.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum EventType {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `event_type` is never used
[INFO] [stdout]    --> src/domain/event.rs:132:12
[INFO] [stdout]     |
[INFO] [stdout] 131 | impl EventData {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] 132 |     pub fn event_type(&self) -> EventType {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WriteLeaseConflict`, `MergeLockConflict`, and `TaskFileConflict` are never constructed
[INFO] [stdout]   --> src/error.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum CcxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     WriteLeaseConflict { active_session_id: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     MergeLockConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     TaskFileConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CcxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_hard` is never used
[INFO] [stdout]   --> src/git/repo.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn reset_hard(repo: &Utf8Path) -> Result<(), CcxError> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_events` is never used
[INFO] [stdout]    --> src/persistence/jsonl.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn read_events(project_id: &str) -> Result<Vec<Event>, CcxError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sha256_hex` is never used
[INFO] [stdout]  --> src/watcher/mod.rs:9:15
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub(crate) fn sha256_hex(content: &str) -> String {
[INFO] [stdout]   |               ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskFrontMatter` is never constructed
[INFO] [stdout]  --> src/watcher/front_matter.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct TaskFrontMatter {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RawTaskFrontMatter` is never constructed
[INFO] [stdout]   --> src/watcher/front_matter.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct RawTaskFrontMatter {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ALLOWED_STATUS_VALUES` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:14:18
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub(crate) const ALLOWED_STATUS_VALUES: &[&str] = &[
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_status` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn validate_status(value: Option<serde_yaml::Value>) -> Option<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_front_matter` is never used
[INFO] [stdout]   --> src/watcher/front_matter.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn parse_front_matter(content: &str) -> Result<TaskFrontMatter, serde_yaml::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceWatcherState` is never constructed
[INFO] [stdout]   --> src/watcher/source_watcher.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct SourceWatcherState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `observe` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn observe(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/source_watcher.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SourceWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_source_file_changed` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:43:4
[INFO] [stdout]    |
[INFO] [stdout] 43 | fn notify_orchestrator_source_file_changed(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_source_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn notify_orchestrator_source_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl SourceWatcher {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 91 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskWatcherState` is never constructed
[INFO] [stdout]   --> src/watcher/task_watcher.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct TaskWatcherState {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `observe` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn observe(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/task_watcher.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TaskWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_task_file_changed` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn notify_orchestrator_task_file_changed(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_task_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn notify_orchestrator_task_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/watcher/task_watcher.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl TaskWatcher {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 124 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `late_event`
[INFO] [stdout]    --> src/persistence/projector.rs:652:13
[INFO] [stdout]     |
[INFO] [stdout] 652 |         let late_event = Event::new(
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_late_event`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `project_id` and `work_execution_id` are never read
[INFO] [stdout]   --> src/agent_runtime/cmux_adapter.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct AgentSessionSpec {
[INFO] [stdout]    |            ---------------- fields in this struct
[INFO] [stdout] 43 |     pub session_id: String,
[INFO] [stdout] 44 |     pub project_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub work_execution_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `send_keys` and `send_literal` are never used
[INFO] [stdout]   --> src/agent_runtime/tmux_adapter.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait TmuxAdapter: Send + Sync {
[INFO] [stdout]    |           ----------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 69 |     fn send_keys(&self, session_id: &str, keys: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     fn send_literal(&self, session_id: &str, text: &str) -> Result<(), CcxError>;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `WriteLeaseConflict`, `MergeLockConflict`, and `TaskFileConflict` are never constructed
[INFO] [stdout]   --> src/error.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum CcxError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     WriteLeaseConflict { active_session_id: String },
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     MergeLockConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     TaskFileConflict,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CcxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_events` is never used
[INFO] [stdout]    --> src/persistence/jsonl.rs:204:8
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub fn read_events(project_id: &str) -> Result<Vec<Event>, CcxError> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SourceWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/source_watcher.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct SourceWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_source_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn notify_orchestrator_source_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/watcher/source_watcher.rs:91:12
[INFO] [stdout]    |
[INFO] [stdout] 90 | impl SourceWatcher {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 91 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TaskWatcher` is never constructed
[INFO] [stdout]   --> src/watcher/task_watcher.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct TaskWatcher {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notify_orchestrator_task_file_changed_best_effort` is never used
[INFO] [stdout]   --> src/watcher/task_watcher.rs:97:4
[INFO] [stdout]    |
[INFO] [stdout] 97 | fn notify_orchestrator_task_file_changed_best_effort(
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/watcher/task_watcher.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl TaskWatcher {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 124 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 29.28s
[INFO] running `Command { std: "docker" "inspect" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", 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" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: fields `project_id` and `work_execution_id` are never read
[INFO] [stderr]   --> src/agent_runtime/cmux_adapter.rs:44:9
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub struct AgentSessionSpec {
[INFO] [stderr]    |            ---------------- fields in this struct
[INFO] [stderr] 43 |     pub session_id: String,
[INFO] [stderr] 44 |     pub project_id: String,
[INFO] [stderr]    |         ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub work_execution_id: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HeartbeatConfig` is never constructed
[INFO] [stderr]   --> src/agent_runtime/harness.rs:15:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct HeartbeatConfig {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `spawn_heartbeat` is never used
[INFO] [stderr]   --> src/agent_runtime/harness.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn spawn_heartbeat(
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_heartbeat_loop` is never used
[INFO] [stderr]   --> src/agent_runtime/harness.rs:37:4
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn run_heartbeat_loop(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `get_pane_pid`, `get_pane_cwd`, `send_keys`, and `send_literal` are never used
[INFO] [stderr]   --> src/agent_runtime/tmux_adapter.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub trait TmuxAdapter: Send + Sync {
[INFO] [stderr]    |           ----------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 62 |     fn get_pane_pid(&self, session_id: &str) -> Result<Option<u32>, CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 |     fn get_pane_cwd(&self, session_id: &str) -> Result<Option<String>, CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 69 |     fn send_keys(&self, session_id: &str, keys: &str) -> Result<(), CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     fn send_literal(&self, session_id: &str, text: &str) -> Result<(), CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `EventType` is never used
[INFO] [stderr]   --> src/domain/event.rs:30:10
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub enum EventType {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `event_type` is never used
[INFO] [stderr]    --> src/domain/event.rs:132:12
[INFO] [stderr]     |
[INFO] [stderr] 131 | impl EventData {
[INFO] [stderr]     | -------------- method in this implementation
[INFO] [stderr] 132 |     pub fn event_type(&self) -> EventType {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variants `WriteLeaseConflict`, `MergeLockConflict`, and `TaskFileConflict` are never constructed
[INFO] [stderr]   --> src/error.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr]  5 | pub enum CcxError {
[INFO] [stderr]    |          -------- variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 13 |     WriteLeaseConflict { active_session_id: String },
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 16 |     MergeLockConflict,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     TaskFileConflict,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CcxError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `reset_hard` is never used
[INFO] [stderr]   --> src/git/repo.rs:54:8
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn reset_hard(repo: &Utf8Path) -> Result<(), CcxError> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_events` is never used
[INFO] [stderr]    --> src/persistence/jsonl.rs:204:8
[INFO] [stderr]     |
[INFO] [stderr] 204 | pub fn read_events(project_id: &str) -> Result<Vec<Event>, CcxError> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sha256_hex` is never used
[INFO] [stderr]  --> src/watcher/mod.rs:9:15
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub(crate) fn sha256_hex(content: &str) -> String {
[INFO] [stderr]   |               ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TaskFrontMatter` is never constructed
[INFO] [stderr]  --> src/watcher/front_matter.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct TaskFrontMatter {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `RawTaskFrontMatter` is never constructed
[INFO] [stderr]   --> src/watcher/front_matter.rs:10:8
[INFO] [stderr]    |
[INFO] [stderr] 10 | struct RawTaskFrontMatter {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ALLOWED_STATUS_VALUES` is never used
[INFO] [stderr]   --> src/watcher/front_matter.rs:14:18
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub(crate) const ALLOWED_STATUS_VALUES: &[&str] = &[
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `validate_status` is never used
[INFO] [stderr]   --> src/watcher/front_matter.rs:28:4
[INFO] [stderr]    |
[INFO] [stderr] 28 | fn validate_status(value: Option<serde_yaml::Value>) -> Option<String> {
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_front_matter` is never used
[INFO] [stderr]   --> src/watcher/front_matter.rs:48:8
[INFO] [stderr]    |
[INFO] [stderr] 48 | pub fn parse_front_matter(content: &str) -> Result<TaskFrontMatter, serde_yaml::Error> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SourceWatcherState` is never constructed
[INFO] [stderr]   --> src/watcher/source_watcher.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct SourceWatcherState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `observe` is never used
[INFO] [stderr]   --> src/watcher/source_watcher.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn observe(
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SourceWatcher` is never constructed
[INFO] [stderr]   --> src/watcher/source_watcher.rs:39:12
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct SourceWatcher {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_orchestrator_source_file_changed` is never used
[INFO] [stderr]   --> src/watcher/source_watcher.rs:43:4
[INFO] [stderr]    |
[INFO] [stderr] 43 | fn notify_orchestrator_source_file_changed(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_orchestrator_source_file_changed_best_effort` is never used
[INFO] [stderr]   --> src/watcher/source_watcher.rs:75:4
[INFO] [stderr]    |
[INFO] [stderr] 75 | fn notify_orchestrator_source_file_changed_best_effort(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/watcher/source_watcher.rs:91:12
[INFO] [stderr]    |
[INFO] [stderr] 90 | impl SourceWatcher {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 91 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TaskWatcherState` is never constructed
[INFO] [stderr]   --> src/watcher/task_watcher.rs:14:12
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub struct TaskWatcherState {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `observe` is never used
[INFO] [stderr]   --> src/watcher/task_watcher.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn observe(
[INFO] [stderr]    |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `TaskWatcher` is never constructed
[INFO] [stderr]   --> src/watcher/task_watcher.rs:56:12
[INFO] [stderr]    |
[INFO] [stderr] 56 | pub struct TaskWatcher {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_orchestrator_task_file_changed` is never used
[INFO] [stderr]   --> src/watcher/task_watcher.rs:60:4
[INFO] [stderr]    |
[INFO] [stderr] 60 | fn notify_orchestrator_task_file_changed(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `notify_orchestrator_task_file_changed_best_effort` is never used
[INFO] [stderr]   --> src/watcher/task_watcher.rs:97:4
[INFO] [stderr]    |
[INFO] [stderr] 97 | fn notify_orchestrator_task_file_changed_best_effort(
[INFO] [stderr]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]    --> src/watcher/task_watcher.rs:124:12
[INFO] [stderr]     |
[INFO] [stderr] 123 | impl TaskWatcher {
[INFO] [stderr]     | ---------------- associated function in this implementation
[INFO] [stderr] 124 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ccx` (bin "ccx") generated 28 warnings
[INFO] [stderr] warning: unused variable: `late_event`
[INFO] [stderr]    --> src/persistence/projector.rs:652:13
[INFO] [stderr]     |
[INFO] [stderr] 652 |         let late_event = Event::new(
[INFO] [stderr]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_late_event`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: methods `send_keys` and `send_literal` are never used
[INFO] [stderr]   --> src/agent_runtime/tmux_adapter.rs:69:8
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub trait TmuxAdapter: Send + Sync {
[INFO] [stderr]    |           ----------- methods in this trait
[INFO] [stderr] ...
[INFO] [stderr] 69 |     fn send_keys(&self, session_id: &str, keys: &str) -> Result<(), CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 72 |     fn send_literal(&self, session_id: &str, text: &str) -> Result<(), CcxError>;
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `ccx` (bin "ccx" test) generated 11 warnings (9 duplicates) (run `cargo fix --bin "ccx" -p ccx --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/ccx-10f639c76c61978e)
[INFO] [stdout] 
[INFO] [stdout] running 165 tests
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::headless_close_and_notify_are_noop ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::headless_ensure_workspace_returns_sentinel ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::headless_create_tab_returns_sentinel ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::make_adapter_from_returns_headless_when_socket_absent ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::socket_adapter_errors_on_missing_workspace_id ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::cli_adapter_sends_workspace_create ... ok
[INFO] [stdout] test agent_runtime::env_builder::tests::optional_vars_absent_when_none ... ok
[INFO] [stdout] test agent_runtime::env_builder::tests::all_nine_vars_present_when_fully_populated ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::socket_adapter_sends_surface_close ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::socket_adapter_sends_ui_notify ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::socket_adapter_sends_workspace_create ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::socket_adapter_sends_surface_create ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::make_adapter_from_returns_socket_when_file_exists ... ok
[INFO] [stdout] test agent_runtime::harness::tests::shutdown_while_alive_emits_no_stopped_event ... ok
[INFO] [stdout] test agent_runtime::prompt::tests::read_message_file ... ok
[INFO] [stdout] test agent_runtime::prompt::tests::read_message_text ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::session_name_format ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::cli_adapter_sends_surface_create ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::validate_accepts_valid_envs ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::make_adapter_from_uses_cli_when_socket_absent_and_cli_available ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::cli_adapter_sends_surface_close_and_notify ... ok
[INFO] [stdout] test agent_runtime::launch::tests::launch_uses_cwd_when_no_worktree ... ok
[INFO] [stdout] test breaker::evaluator::tests::count_failures_since_last_resume_counts_since_resume ... ok
[INFO] [stdout] test breaker::evaluator::tests::count_failures_since_last_resume_no_resume_counts_all ... ok
[INFO] [stdout] test breaker::evaluator::tests::current_state_from_events_none_when_no_events ... ok
[INFO] [stdout] test breaker::evaluator::tests::current_state_from_events_returns_last_transition ... ok
[INFO] [stdout] test breaker::evaluator::tests::elapsed_hours_returns_positive_for_past_timestamp ... ok
[INFO] [stdout] test agent_runtime::lifecycle::tests::lifecycle_stop_invalid_on_empty_task_file ... ok
[INFO] [stdout] test agent_runtime::lifecycle::tests::lifecycle_stop_ready_on_nonempty_task_file ... ok
[INFO] [stdout] test agent_runtime::lifecycle::tests::lifecycle_stop_invalid_on_missing_task_file ... ok
[INFO] [stdout] test cli::agent::tests::prompt_sends_message_file_content ... ok
[INFO] [stdout] test agent_runtime::harness::tests::session_exists_error_skips_iteration_without_false_stopped_event ... ok
[INFO] [stdout] test agent_runtime::harness::tests::heartbeat_appends_events_then_stopped_on_session_death ... ok
[INFO] [stdout] test cli::agent::tests::prompt_sends_inline_message ... ok
[INFO] [stdout] test agent_runtime::harness::tests::shutdown_while_dead_emits_stopped_event ... ok
[INFO] [stdout] test cli::project::tests::test_path_to_slug ... ok
[INFO] [stdout] test agent_runtime::launch::tests::launch_creates_tmux_session_cmux_tab_and_emits_event ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success ... FAILED
[INFO] [stdout] test agent_runtime::prompt::tests::read_message_file_not_found ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::validate_rejects_empty_key ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::validate_rejects_key_with_equals ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::validate_rejects_nul_in_key ... ok
[INFO] [stdout] test agent_runtime::tmux_adapter::tests::validate_rejects_nul_in_value ... ok
[INFO] [stdout] test agent_runtime::cmux_adapter::tests::cli_fallback_returns_headless_when_cli_rpc_fails ... ok
[INFO] [stdout] test cli::task_source::tests::expected_hash_rejects_stale_hash ... ok
[INFO] [stdout] test cli::task_source::tests::missing_task_source_reports_path ... ok
[INFO] [stdout] test domain::event::tests::event_type_serializes_as_snake_case ... ok
[INFO] [stdout] test cli::task_source::tests::load_task_source_returns_content_hash_and_mtime ... ok
[INFO] [stdout] test agent_runtime::launch::tests::launch_kills_tmux_on_cmux_failure_and_emits_no_event ... ok
[INFO] [stdout] test domain::event::tests::event_roundtrip ... ok
[INFO] [stdout] test domain::event::tests::task_file_changed_payload_defaults_priority_metadata ... ok
[INFO] [stdout] test domain::transition::tests::any_state_can_transition_to_hold_or_canceled ... ok
[INFO] [stdout] test domain::transition::tests::identity_is_always_valid ... ok
[INFO] [stdout] test domain::transition::tests::invalid_transitions_are_rejected ... ok
[INFO] [stdout] test domain::transition::tests::normal_flow_is_valid ... ok
[INFO] [stdout] test domain::event::tests::event_type_tag_in_json ... ok
[INFO] [stdout] test domain::transition::tests::retry_and_resume_flows_are_valid ... ok
[INFO] [stdout] test domain::transition::tests::return_and_interruption_flows_are_valid ... ok
[INFO] [stdout] test git::github::tests::classify_empty_is_success ... ok
[INFO] [stdout] test git::github::tests::classify_only_task_source_is_success_with_warning ... ok
[INFO] [stdout] test domain::event::tests::event_data_exposes_event_type ... ok
[INFO] [stdout] test git::github::tests::classify_task_source_and_other_is_aborted ... ok
[INFO] [stdout] test git::github::tests::classify_other_file_is_aborted ... ok
[INFO] [stdout] test git::github::tests::parse_pr_view_json_invalid ... ok
[INFO] [stdout] test git::github::tests::parse_pr_view_json_valid ... ok
[INFO] [stdout] test git::repo::tests::deleted_file_parsed ... ok
[INFO] [stdout] test git::repo::tests::modified_file_parsed ... ok
[INFO] [stdout] test git::repo::tests::empty_stdout_returns_empty ... ok
[INFO] [stdout] test git::repo::tests::multiple_entries_all_parsed ... ok
[INFO] [stdout] test git::repo::tests::path_with_spaces_preserved ... ok
[INFO] [stdout] test git::repo::tests::rename_returns_new_path ... ok
[INFO] [stdout] test git::repo::tests::short_lines_skipped ... ok
[INFO] [stdout] test git::repo::tests::staged_new_file_parsed ... ok
[INFO] [stdout] test git::repo::tests::whitespace_only_returns_empty ... ok
[INFO] [stdout] test git::repo::tests::untracked_file_parsed ... ok
[INFO] [stdout] test git::review_hook::tests::exit_0_is_pass ... ok
[INFO] [stdout] test git::review_hook::tests::exit_1_is_failure ... ok
[INFO] [stdout] test git::review_hook::tests::exit_2_is_issues ... ok
[INFO] [stdout] test git::review_hook::tests::exit_negative_is_failure ... ok
[INFO] [stdout] test cli::task_source::tests::detects_task_source_inside_repo_without_string_prefix_false_positive ... ok
[INFO] [stdout] test git::review_hook::tests::run_review_hook_exit_0_is_pass ... ok
[INFO] [stdout] test git::review_hook::tests::run_review_hook_exit_2_is_issues ... ok
[INFO] [stdout] test git::review_hook::tests::run_review_hook_exit_1_is_failure ... ok
[INFO] [stdout] test cli::agent::tests::attach_injects_all_agent_envs_into_tmux_launch ... ok
[INFO] [stdout] test cli::agent::tests::start_orchestrator_launches_tmux_and_records_session ... ok
[INFO] [stdout] test cli::agent::tests::start_orchestrator_reuses_existing_active_session ... ok
[INFO] [stdout] test persistence::jsonl::tests::locked_read_write_skips_when_none_returned ... ok
[INFO] [stdout] test cli::project::tests::test_register_appends_event_before_config ... ok
[INFO] [stdout] test cli::agent::tests::stop_kills_tmux_closes_cmux_and_records_event ... ok
[INFO] [stdout] test persistence::projector::tests::all_allowed_task_status_values_map_to_work_execution_states ... ok
[INFO] [stdout] test cli::agent::tests::start_orchestrator_ignores_stale_event_when_tmux_session_is_absent ... ok
[INFO] [stdout] test git::repo::tests::check_dirty_detects_modified_file ... ok
[INFO] [stdout] test git::repo::tests::check_dirty_clean_repo_returns_empty ... ok
[INFO] [stdout] test cli::agent::tests::concurrent_start_orchestrator_admits_one_session ... ok
[INFO] [stdout] test git::repo::tests::reset_hard_clears_modifications ... ok
[INFO] [stdout] test persistence::jsonl::tests::locked_read_write_appends_event_and_returns_true ... ok
[INFO] [stdout] test git::worktree::tests::remove_worktree_removes_directory ... ok
[INFO] [stdout] test persistence::jsonl::tests::locked_read_write_closure_sees_prior_events ... ok
[INFO] [stdout] test git::worktree::tests::create_worktree_creates_branch_and_symlink ... ok
[INFO] [stdout] test persistence::jsonl::tests::roundtrip_preserves_payload ... ok
[INFO] [stdout] test cli::project::tests::test_register_creates_project_json ... ok
[INFO] [stdout] test persistence::jsonl::tests::two_appends_produce_two_lines ... ok
[INFO] [stdout] test recovery::digest::tests::stale_seconds_corrupted_timestamp_is_sentinel ... ok
[INFO] [stdout] test recovery::digest::tests::stale_seconds_future_timestamp_clamps_to_zero ... ok
[INFO] [stdout] test persistence::projector::tests::audit_only_event_still_bumps_last_applied_event_id ... ok
[INFO] [stdout] test watcher::front_matter::tests::all_known_status_values_round_trip ... ok
[INFO] [stdout] test watcher::front_matter::tests::blank_status_is_ignored ... ok
[INFO] [stdout] test watcher::front_matter::tests::crlf_line_endings_are_handled ... ok
[INFO] [stdout] test watcher::front_matter::tests::empty_content_returns_default ... ok
[INFO] [stdout] test watcher::front_matter::tests::empty_front_matter_block_returns_default ... ok
[INFO] [stdout] test watcher::front_matter::tests::leading_blank_lines_are_ignored ... ok
[INFO] [stdout] test watcher::front_matter::tests::malformed_yaml_returns_error ... ok
[INFO] [stdout] test watcher::front_matter::tests::missing_status_field_returns_none ... ok
[INFO] [stdout] test watcher::front_matter::tests::no_closing_delimiter_returns_default ... ok
[INFO] [stdout] test recovery::digest::tests::stale_seconds_parses_rfc3339 ... ok
[INFO] [stdout] test watcher::front_matter::tests::no_front_matter_returns_default ... ok
[INFO] [stdout] test watcher::front_matter::tests::non_string_status_is_ignored ... ok
[INFO] [stdout] test watcher::front_matter::tests::status_whitespace_is_trimmed ... ok
[INFO] [stdout] test watcher::front_matter::tests::unknown_status_is_ignored ... ok
[INFO] [stdout] test persistence::projector::tests::project_registered_inserts_row ... ok
[INFO] [stdout] test watcher::front_matter::tests::valid_status_is_parsed ... ok
[INFO] [stdout] test watcher::source_watcher::tests::changed_content_emits_new_event ... ok
[INFO] [stdout] test watcher::source_watcher::tests::hash_changes_with_content ... ok
[INFO] [stdout] test watcher::source_watcher::tests::first_observation_emits_event ... ok
[INFO] [stdout] test watcher::source_watcher::tests::identical_content_is_deduplicated ... ok
[INFO] [stdout] test watcher::source_watcher::tests::no_initial_hash_means_first_call_always_emits ... ok
[INFO] [stdout] test watcher::source_watcher::tests::null_orchestrator_tab_id_is_not_an_error ... ok
[INFO] [stdout] test watcher::source_watcher::tests::source_file_path_preserved_in_payload ... ok
[INFO] [stdout] test watcher::task_watcher::tests::changed_content_emits_new_event ... ok
[INFO] [stdout] test watcher::task_watcher::tests::changed_status_uses_normal_notification_priority ... ok
[INFO] [stdout] test watcher::task_watcher::tests::different_content_produces_different_hash ... ok
[INFO] [stdout] test watcher::task_watcher::tests::first_observation_emits_event ... ok
[INFO] [stdout] test watcher::task_watcher::tests::first_observation_without_status_uses_normal_notification_priority ... ok
[INFO] [stdout] test watcher::task_watcher::tests::hash_is_deterministic ... ok
[INFO] [stdout] test watcher::task_watcher::tests::identical_content_is_deduplicated ... ok
[INFO] [stdout] test watcher::task_watcher::tests::invalid_front_matter_status_yields_none_status ... ok
[INFO] [stdout] test persistence::projector::tests::out_of_order_event_returns_error ... ok
[INFO] [stdout] test watcher::task_watcher::tests::malformed_front_matter_yields_none_status ... ok
[INFO] [stdout] test watcher::task_watcher::tests::missing_front_matter_yields_none_status ... ok
[INFO] [stdout] test persistence::projector::tests::task_file_changed_updates_hash_and_state_from_status ... ok
[INFO] [stdout] test persistence::jsonl::tests::concurrent_appends_do_not_interleave ... ok
[INFO] [stdout] test watcher::task_watcher::tests::null_orchestrator_tab_id_is_not_an_error ... ok
[INFO] [stdout] test watcher::task_watcher::tests::status_is_extracted_from_front_matter ... ok
[INFO] [stdout] test watcher::task_watcher::tests::unchanged_status_lowers_notification_priority ... ok
[INFO] [stdout] test watcher::tests::notification_db_open_does_not_create_missing_database ... ok
[INFO] [stdout] test persistence::projector::tests::task_file_changed_with_unchanged_status_leaves_state_unchanged ... ok
[INFO] [stdout] test persistence::sqlite::tests::dirty_flag_lifecycle ... ok
[INFO] [stdout] test persistence::rebuild::tests::verify_detects_consistent_state ... ok
[INFO] [stdout] test persistence::projector::tests::task_file_changed_without_status_leaves_state_unchanged ... ok
[INFO] [stdout] test recovery::digest::tests::digest_on_empty_db_returns_clean_state ... ok
[INFO] [stdout] test persistence::sqlite::tests::migrations_are_idempotent ... ok
[INFO] [stdout] test persistence::rebuild::tests::rebuild_replays_events_and_clears_dirty ... ok
[INFO] [stdout] test watcher::source_watcher::tests::missing_orchestrator_session_is_not_an_error ... ok
[INFO] [stdout] test persistence::rebuild::tests::verify_detects_stale_db ... ok
[INFO] [stdout] test cli::project::tests::test_unregister_purge_removes_project_directory ... ok
[INFO] [stdout] test watcher::source_watcher::tests::source_change_notifies_active_orchestrator ... ok
[INFO] [stdout] test work::cleanup::tests::keep_for_duration_preserves_recent_we ... ok
[INFO] [stdout] test watcher::task_watcher::tests::normal_priority_notifies_active_orchestrator ... ok
[INFO] [stdout] test work::cleanup::tests::immediate_policy_always_removes ... ok
[INFO] [stdout] test work::cleanup::tests::keep_last_n_removes_old_we ... ok
[INFO] [stdout] test work::cleanup::tests::keep_last_n_preserves_recent_we ... ok
[INFO] [stdout] test cli::project::tests::test_unregister_removes_project_from_index_and_appends_event ... ok
[INFO] [stdout] test watcher::task_watcher::tests::missing_orchestrator_session_is_not_an_error ... ok
[INFO] [stdout] test watcher::task_watcher::tests::low_priority_skips_orchestrator_notification ... ok
[INFO] [stdout] test work::cleanup::tests::keep_for_duration_removes_old_we ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success' (1307) panicked at src/agent_runtime/cmux_adapter.rs:1146:51:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Custom { kind: NotFound, error: PathError { path: "/opt/rustwide/workdir/target/test-tmp/.tmp0ZwAHx", err: Os { code: 2, kind: NotFound, message: "No such file or directory" } } }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5d89dfc5f441 - std[73adb7dc35730857]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x5d89dfc5f441 - std[73adb7dc35730857]::backtrace_rs::backtrace::trace_unsynchronized::<std[73adb7dc35730857]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x5d89dfc5f441 - std[73adb7dc35730857]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x5d89dfc5f441 - <<std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[6883ba1bc0fe4ed1]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x5d89dfc7646a - <core[6883ba1bc0fe4ed1]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x5d89dfc7646a - core[6883ba1bc0fe4ed1]::fmt::write
[INFO] [stdout]    6:     0x5d89dfc649ec - std[73adb7dc35730857]::io::default_write_fmt::<alloc[55a36b64bcbf2c0d]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:626:11
[INFO] [stdout]    7:     0x5d89dfc649ec - <alloc[55a36b64bcbf2c0d]::vec::Vec<u8> as std[73adb7dc35730857]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/io/mod.rs:1730:13
[INFO] [stdout]    8:     0x5d89dfc395e6 - <std[73adb7dc35730857]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x5d89dfc395e6 - std[73adb7dc35730857]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x5d89dfc55b89 - std[73adb7dc35730857]::panicking::default_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x5d89df9d49e0 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   12:     0x5d89df9d49e0 - test[980ffaebd391d06d]::test_main_inner::<test[980ffaebd391d06d]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x5d89dfc55eb2 - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn for<'a, 'b> core[6883ba1bc0fe4ed1]::ops::function::Fn<(&'a std[73adb7dc35730857]::panic::PanicHookInfo<'b>,), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send + core[6883ba1bc0fe4ed1]::marker::Sync> as core[6883ba1bc0fe4ed1]::ops::function::Fn<(&std[73adb7dc35730857]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2333:9
[INFO] [stdout]   14:     0x5d89dfc55eb2 - std[73adb7dc35730857]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:823:13
[INFO] [stdout]   15:     0x5d89dfc39692 - std[73adb7dc35730857]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:688:13
[INFO] [stdout]   16:     0x5d89dfc30309 - std[73adb7dc35730857]::sys::backtrace::__rust_end_short_backtrace::<std[73adb7dc35730857]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x5d89dfc3a7ed - __rustc[a7b7b02e776dd976]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:679:5
[INFO] [stdout]   18:     0x5d89dfc76c6c - core[6883ba1bc0fe4ed1]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x5d89dfc769e2 - core[6883ba1bc0fe4ed1]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1870:5
[INFO] [stdout]   20:     0x5d89df8b3fda - <core[6883ba1bc0fe4ed1]::result::Result<tempfile[5dd30d54df41b687]::dir::TempDir, core[6883ba1bc0fe4ed1]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/result.rs:1231:23
[INFO] [stdout]   21:     0x5d89df8b3fda - ccx[60e51eeb5f645465]::agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success
[INFO] [stdout]                                at /opt/rustwide/workdir/src/agent_runtime/cmux_adapter.rs:1146:51
[INFO] [stdout]   22:     0x5d89df8a69e7 - ccx[60e51eeb5f645465]::agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/agent_runtime/cmux_adapter.rs:1140:68
[INFO] [stdout]   23:     0x5d89df95ee66 - <ccx[60e51eeb5f645465]::agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success::{closure#0} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5d89df9c7d1b - <fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5d89df9c7d1b - test[980ffaebd391d06d]::__rust_begin_short_backtrace::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, fn() -> core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x5d89df9d5365 - test[980ffaebd391d06d]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x5d89df9d5365 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x5d89df9d5365 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   29:     0x5d89df9d5365 - std[73adb7dc35730857]::panicking::catch_unwind::<core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>, core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x5d89df9d5365 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<test[980ffaebd391d06d]::run_test_in_process::{closure#0}>, core[6883ba1bc0fe4ed1]::result::Result<(), alloc[55a36b64bcbf2c0d]::string::String>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x5d89df9d5365 - test[980ffaebd391d06d]::run_test_in_process
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x5d89df9d5365 - test[980ffaebd391d06d]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x5d89df9cfe14 - test[980ffaebd391d06d]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x5d89df9cfe14 - std[73adb7dc35730857]::sys::backtrace::__rust_begin_short_backtrace::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x5d89df9d84b2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x5d89df9d84b2 - <core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x5d89df9d84b2 - std[73adb7dc35730857]::panicking::catch_unwind::do_call::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:576:43
[INFO] [stdout]   38:     0x5d89df9d84b2 - std[73adb7dc35730857]::panicking::catch_unwind::<(), core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x5d89df9d84b2 - std[73adb7dc35730857]::panic::catch_unwind::<core[6883ba1bc0fe4ed1]::panic::unwind_safe::AssertUnwindSafe<std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x5d89df9d84b2 - std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked::<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x5d89df9d84b2 - <std[73adb7dc35730857]::thread::lifecycle::spawn_unchecked<test[980ffaebd391d06d]::run_test::{closure#1}, ()>::{closure#1} as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x5d89dfc5e71f - <alloc[55a36b64bcbf2c0d]::boxed::Box<dyn core[6883ba1bc0fe4ed1]::ops::function::FnOnce<(), Output = ()> + core[6883ba1bc0fe4ed1]::marker::Send> as core[6883ba1bc0fe4ed1]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/alloc/src/boxed.rs:2319:9
[INFO] [stdout]   43:     0x5d89dfc5e71f - <std[73adb7dc35730857]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/6b3fa26749ab40e159b2dd5cf577acaaf5902772/library/std/src/sys/thread/unix.rs:123:17
[INFO] [stdout]   44:     0x73d2529cdaa4 - <unknown>
[INFO] [stdout]   45:     0x73d252a5aa64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     agent_runtime::cmux_adapter::tests::cli_fallback_does_not_switch_to_headless_after_cli_success
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 164 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.95s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin ccx`
[INFO] running `Command { std: "docker" "inspect" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb", kill_on_drop: false }`
[INFO] [stdout] b435377513bf0efdfafc09daf0f62fe622669eae1db2b8bb98d001b8afbd91bb
