[INFO] cloning repository https://github.com/ozten/simple-agent-harness [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ozten/simple-agent-harness" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozten%2Fsimple-agent-harness", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozten%2Fsimple-agent-harness'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6bb0015f1250709bee5214af7e6fb603048e6899 [INFO] testing ozten/simple-agent-harness against 1.99.0-beta.8 for beta-1.100-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozten%2Fsimple-agent-harness" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ozten/simple-agent-harness [INFO] finished tweaking git repo https://github.com/ozten/simple-agent-harness [INFO] tweaked toml for git repo https://github.com/ozten/simple-agent-harness written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ozten/simple-agent-harness on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ozten/simple-agent-harness 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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rust-embed-utils v8.11.0 [INFO] [stderr] Downloaded rust-embed-impl v8.11.0 [INFO] [stderr] Downloaded redox_syscall v0.7.1 [INFO] [stderr] Downloaded clap v4.5.58 [INFO] [stderr] Downloaded webpki-roots v1.0.6 [INFO] [stderr] Downloaded axum v0.8.8 [INFO] [stderr] Downloaded clap_builder v4.5.58 [INFO] [stderr] Downloaded rust-embed v8.11.0 [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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b [INFO] running `Command { std: "docker" "start" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", 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" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", 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" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.23 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling bytes v1.11.1 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling futures-core v0.3.32 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling tower-service v0.3.3 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling tower-layer v0.3.3 [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling utf8parse v0.2.2 [INFO] [stderr] Compiling regex-syntax v0.8.8 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling is_terminal_polyfill v1.70.2 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling futures-task v0.3.32 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling atomic-waker v1.1.2 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling getrandom v0.4.1 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling anstream v0.6.21 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling syn v2.0.115 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling clap_lex v1.0.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling sharded-slab v0.1.7 [INFO] [stderr] Compiling clap_builder v4.5.58 [INFO] [stderr] Compiling tracing-log v0.2.0 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling thread_local v1.1.9 [INFO] [stderr] Compiling nu-ansi-term v0.50.3 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling fallible-streaming-iterator v0.1.9 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling fallible-iterator v0.3.0 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling fs2 v0.4.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling libsqlite3-sys v0.28.0 [INFO] [stderr] Compiling tempfile v3.25.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling hashlink v0.9.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling clap v4.5.58 [INFO] [stderr] Compiling zstd v0.13.3 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling chrono v0.4.43 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling rusqlite v0.31.0 [INFO] [stderr] Compiling blacksmith v0.1.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: function `detect_commit` is never used [INFO] [stdout] --> src/commit.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn detect_commit(output_path: &Path, patterns: &[Regex]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_commit_in_text` is never used [INFO] [stdout] --> src/commit.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn detect_commit_in_text(text: &str, patterns: &[Regex]) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compile_patterns` is never used [INFO] [stdout] --> src/commit.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn compile_patterns(patterns: &[String]) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HookRunner` is never constructed [INFO] [stdout] --> src/hooks.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct HookRunner { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HookEnv` is never constructed [INFO] [stdout] --> src/hooks.rs:16:12 [INFO] [stdout] | [INFO] [stdout] 16 | pub struct HookEnv { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `pre_session` and `post_session` are never used [INFO] [stdout] --> src/hooks.rs:22:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl HookEnv { [INFO] [stdout] | ------------ associated functions in this implementation [INFO] [stdout] 21 | /// Create environment for pre-session hooks. [INFO] [stdout] 22 | pub fn pre_session(iteration: u32, global_iteration: u64, prompt_file: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | pub fn post_session( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `HookError` is never constructed [INFO] [stdout] --> src/hooks.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 69 | pub struct HookError { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `HookErrorKind` is never used [INFO] [stdout] --> src/hooks.rs:76:10 [INFO] [stdout] | [INFO] [stdout] 76 | pub enum HookErrorKind { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `run_pre_session`, and `run_post_session` are never used [INFO] [stdout] --> src/hooks.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 100 | impl HookRunner { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] 101 | /// Create a new HookRunner from config hook lists. [INFO] [stdout] 102 | pub fn new(pre_session: Vec, post_session: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn run_pre_session(&self, env: &HookEnv) -> Result<(), HookError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 121 | pub fn run_post_session(&self, env: &HookEnv) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_hook_command` is never used [INFO] [stdout] --> src/hooks.rs:132:4 [INFO] [stdout] | [INFO] [stdout] 132 | fn run_hook_command(command: &str, env: &HookEnv) -> Result<(), HookError> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PROMPT` is never used [INFO] [stdout] --> src/init.rs:245:7 [INFO] [stdout] | [INFO] [stdout] 245 | const DEFAULT_PROMPT: &str = include_str!("../templates/DEFAULT_PROMPT.md"); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_prompt_md` is never used [INFO] [stdout] --> src/init.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | pub fn default_prompt_md() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `attempt_count` is never used [INFO] [stdout] --> src/integrator.rs:233:12 [INFO] [stdout] | [INFO] [stdout] 194 | impl ValidationCircuitBreaker { [INFO] [stdout] | ----------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 233 | pub fn attempt_count(&self, bead_id: &str) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionEvent` is never constructed [INFO] [stdout] --> src/metrics.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 13 | pub struct SessionEvent { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `append` are never used [INFO] [stdout] --> src/metrics.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl EventLog { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 32 | /// Create a new EventLog writer for the given path. [INFO] [stdout] 33 | pub fn new(path: PathBuf) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | pub fn append(&self, event: &SessionEvent) -> Result<(), EventLogError> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `session_complete` is never used [INFO] [stdout] --> src/metrics.rs:69:12 [INFO] [stdout] | [INFO] [stdout] 66 | impl SessionEvent { [INFO] [stdout] | ----------------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn session_complete( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `EventLogError` is never used [INFO] [stdout] --> src/metrics.rs:96:10 [INFO] [stdout] | [INFO] [stdout] 96 | pub enum EventLogError { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `fatals` is never used [INFO] [stdout] --> src/preflight.rs:39:12 [INFO] [stdout] | [INFO] [stdout] 23 | impl PreflightReport { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 39 | pub fn fatals(&self) -> Vec<&CheckResult> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `RATE_LIMIT_PATTERNS` is never used [INFO] [stdout] --> src/ratelimit.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | static RATE_LIMIT_PATTERNS: LazyLock> = LazyLock::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_rate_limit` is never used [INFO] [stdout] --> src/ratelimit.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn detect_rate_limit(output_path: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_rate_limit_in_content` is never used [INFO] [stdout] --> src/ratelimit.rs:168:4 [INFO] [stdout] | [INFO] [stdout] 168 | fn detect_rate_limit_in_content(jsonl_content: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_rate_limit_in_result_event` is never used [INFO] [stdout] --> src/ratelimit.rs:214:4 [INFO] [stdout] | [INFO] [stdout] 214 | fn detect_rate_limit_in_result_event(jsonl_content: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_rate_limit_in_error_events` is never used [INFO] [stdout] --> src/ratelimit.rs:242:4 [INFO] [stdout] | [INFO] [stdout] 242 | fn detect_rate_limit_in_error_events(jsonl_content: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `detect_rate_limit_in_text` is never used [INFO] [stdout] --> src/ratelimit.rs:254:4 [INFO] [stdout] | [INFO] [stdout] 254 | fn detect_rate_limit_in_text(text: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enforce_retention` is never used [INFO] [stdout] --> src/retention.rs:20:8 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn enforce_retention(sessions_dir: &Path, retention: &RetentionPolicy) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `delete_after_ingest` is never used [INFO] [stdout] --> src/retention.rs:34:8 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn delete_after_ingest(path: &Path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enforce_last_n` is never used [INFO] [stdout] --> src/retention.rs:52:4 [INFO] [stdout] | [INFO] [stdout] 52 | fn enforce_last_n(sessions_dir: &Path, n: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `enforce_days` is never used [INFO] [stdout] --> src/retention.rs:81:4 [INFO] [stdout] | [INFO] [stdout] 81 | fn enforce_days(sessions_dir: &Path, days: u64) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_session_files` is never used [INFO] [stdout] --> src/retention.rs:129:4 [INFO] [stdout] | [INFO] [stdout] 129 | fn list_session_files(sessions_dir: &Path) -> Vec<(u64, std::path::PathBuf)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_session_file` is never used [INFO] [stdout] --> src/retention.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn is_session_file(path: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_session_iteration` is never used [INFO] [stdout] --> src/retention.rs:154:4 [INFO] [stdout] | [INFO] [stdout] 154 | fn parse_session_iteration(path: &Path) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `RetryDecision` is never used [INFO] [stdout] --> src/retry.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum RetryDecision { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `max_retries` and `min_output_bytes` are never read [INFO] [stdout] --> src/retry.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct RetryPolicy { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 21 | max_retries: u32, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 22 | min_output_bytes: u64, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `evaluate`, and `reset` are never used [INFO] [stdout] --> src/retry.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl RetryPolicy { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 27 | /// Create a new retry policy from config values. [INFO] [stdout] 28 | pub fn new(max_retries: u32, min_output_bytes: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn evaluate(&mut self, output_bytes: u64) -> RetryDecision { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 69 | pub fn reset(&mut self) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionResult` is never constructed [INFO] [stdout] --> src/session.rs:12:12 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct SessionResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SessionError` is never used [INFO] [stdout] --> src/session.rs:28:10 [INFO] [stdout] | [INFO] [stdout] 28 | pub enum SessionError { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `build_args` is never used [INFO] [stdout] --> src/session.rs:89:4 [INFO] [stdout] | [INFO] [stdout] 89 | fn build_args(agent_config: &AgentConfig, prompt: &str, prompt_file: Option<&Path>) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_session` is never used [INFO] [stdout] --> src/session.rs:112:14 [INFO] [stdout] | [INFO] [stdout] 112 | pub async fn run_session( [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `force_kill_requested`, `set_child_pid`, `clear_child_pid`, and `wait_for_force_kill` are never used [INFO] [stdout] --> src/signals.rs:65:12 [INFO] [stdout] | [INFO] [stdout] 38 | impl SignalHandler { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 65 | pub fn force_kill_requested(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | pub fn set_child_pid(&self, pid: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 76 | pub fn clear_child_pid(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub async fn wait_for_force_kill(&self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_output_file`, `set_output_bytes`, `set_session_start`, `set_last_completed`, `set_last_committed`, and `set_consecutive_rate_limits` are never used [INFO] [stdout] --> src/status.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl StatusTracker { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 171 | pub fn set_output_file(&mut self, path: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 176 | pub fn set_output_bytes(&mut self, bytes: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 181 | pub fn set_session_start(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 186 | pub fn set_last_completed(&mut self, global: u64) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn set_last_committed(&mut self, committed: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn set_consecutive_rate_limits(&mut self, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `WatchdogOutcome` is never used [INFO] [stdout] --> src/watchdog.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | pub enum WatchdogOutcome { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monitor` is never used [INFO] [stdout] --> src/watchdog.rs:30:14 [INFO] [stdout] | [INFO] [stdout] 30 | pub async fn monitor( [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `monitor_inner` is never used [INFO] [stdout] --> src/watchdog.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 40 | async fn monitor_inner( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `kill_process_group` is never used [INFO] [stdout] --> src/watchdog.rs:90:10 [INFO] [stdout] | [INFO] [stdout] 90 | async fn kill_process_group(pgid: Pid) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `file_size` is never used [INFO] [stdout] --> src/watchdog.rs:110:4 [INFO] [stdout] | [INFO] [stdout] 110 | fn file_size(path: &Path) -> u64 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", 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" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling filetime v0.2.27 [INFO] [stderr] Compiling blacksmith v0.1.5 (/opt/rustwide/workdir) [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2401:13 [INFO] [stdout] | [INFO] [stdout] 2401 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2401:13 [INFO] [stdout] | [INFO] [stdout] 2401 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2412:13 [INFO] [stdout] | [INFO] [stdout] 2412 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2412:13 [INFO] [stdout] | [INFO] [stdout] 2412 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2424:13 [INFO] [stdout] | [INFO] [stdout] 2424 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2424:13 [INFO] [stdout] | [INFO] [stdout] 2424 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2437:13 [INFO] [stdout] | [INFO] [stdout] 2437 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2437:13 [INFO] [stdout] | [INFO] [stdout] 2437 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2449:13 [INFO] [stdout] | [INFO] [stdout] 2449 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2449:13 [INFO] [stdout] | [INFO] [stdout] 2449 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2463:13 [INFO] [stdout] | [INFO] [stdout] 2463 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2463:13 [INFO] [stdout] | [INFO] [stdout] 2463 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2496:13 [INFO] [stdout] | [INFO] [stdout] 2496 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2496:13 [INFO] [stdout] | [INFO] [stdout] 2496 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/integrator.rs:2512:13 [INFO] [stdout] | [INFO] [stdout] 2512 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `vcb` [INFO] [stdout] --> src/integrator.rs:2512:13 [INFO] [stdout] | [INFO] [stdout] 2512 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_PROMPT` is never used [INFO] [stdout] --> src/init.rs:245:7 [INFO] [stdout] | [INFO] [stdout] 245 | const DEFAULT_PROMPT: &str = include_str!("../templates/DEFAULT_PROMPT.md"); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `default_prompt_md` is never used [INFO] [stdout] --> src/init.rs:258:8 [INFO] [stdout] | [INFO] [stdout] 258 | pub fn default_prompt_md() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `set_last_committed` and `set_consecutive_rate_limits` are never used [INFO] [stdout] --> src/status.rs:191:12 [INFO] [stdout] | [INFO] [stdout] 120 | impl StatusTracker { [INFO] [stdout] | ------------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 191 | pub fn set_last_committed(&mut self, committed: bool) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 196 | pub fn set_consecutive_rate_limits(&mut self, count: u32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 26.29s [INFO] running `Command { std: "docker" "inspect" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", 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" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2401:13 [INFO] [stderr] | [INFO] [stderr] 2401 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2401:13 [INFO] [stderr] | [INFO] [stderr] 2401 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2412:13 [INFO] [stderr] | [INFO] [stderr] 2412 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2412:13 [INFO] [stderr] | [INFO] [stderr] 2412 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2424:13 [INFO] [stderr] | [INFO] [stderr] 2424 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2424:13 [INFO] [stderr] | [INFO] [stderr] 2424 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2437:13 [INFO] [stderr] | [INFO] [stderr] 2437 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2437:13 [INFO] [stderr] | [INFO] [stderr] 2437 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2449:13 [INFO] [stderr] | [INFO] [stderr] 2449 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2449:13 [INFO] [stderr] | [INFO] [stderr] 2449 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2463:13 [INFO] [stderr] | [INFO] [stderr] 2463 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2463:13 [INFO] [stderr] | [INFO] [stderr] 2463 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2496:13 [INFO] [stderr] | [INFO] [stderr] 2496 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2496:13 [INFO] [stderr] | [INFO] [stderr] 2496 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/integrator.rs:2512:13 [INFO] [stderr] | [INFO] [stderr] 2512 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vcb` [INFO] [stderr] --> src/integrator.rs:2512:13 [INFO] [stderr] | [INFO] [stderr] 2512 | let mut vcb = ValidationCircuitBreaker::new(2); [INFO] [stderr] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vcb` [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_PROMPT` is never used [INFO] [stderr] --> src/init.rs:245:7 [INFO] [stderr] | [INFO] [stderr] 245 | const DEFAULT_PROMPT: &str = include_str!("../templates/DEFAULT_PROMPT.md"); [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `default_prompt_md` is never used [INFO] [stderr] --> src/init.rs:258:8 [INFO] [stderr] | [INFO] [stderr] 258 | pub fn default_prompt_md() -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `set_last_committed` and `set_consecutive_rate_limits` are never used [INFO] [stderr] --> src/status.rs:191:12 [INFO] [stderr] | [INFO] [stderr] 120 | impl StatusTracker { [INFO] [stderr] | ------------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 191 | pub fn set_last_committed(&mut self, committed: bool) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 196 | pub fn set_consecutive_rate_limits(&mut self, count: u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `blacksmith` (bin "blacksmith" test) generated 19 warnings (run `cargo fix --bin "blacksmith" -p blacksmith --tests` to apply 16 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.26s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/blacksmith-608ef0da7fbe0a13) [INFO] [stdout] [INFO] [stdout] running 1207 tests [INFO] [stdout] test adapters::aider::tests::extract_cost_from_costs_line ... ok [INFO] [stdout] test adapters::aider::tests::file_not_found_returns_error ... ok [INFO] [stdout] test adapters::aider::tests::extract_single_turn_no_trailing_prompt ... ok [INFO] [stdout] test adapters::aider::tests::extract_output_bytes_is_file_size ... ok [INFO] [stdout] test adapters::aider::tests::extract_turns_from_chat_log ... ok [INFO] [stdout] test adapters::aider::tests::extract_cost_from_token_line ... ok [INFO] [stdout] test adapters::aider::tests::lines_for_source_raw ... ok [INFO] [stdout] test adapters::claude::tests::adapter_name ... ok [INFO] [stdout] test adapters::aider::tests::lines_for_source_tool_commands ... ok [INFO] [stdout] test adapters::aider::tests::extract_empty_file ... ok [INFO] [stdout] test adapters::aider::tests::assistant_block_without_user_prompt ... ok [INFO] [stdout] test adapters::claude::tests::extract_result_metrics ... ok [INFO] [stdout] test adapters::claude::tests::extract_parallel_tools ... ok [INFO] [stdout] test adapters::aider::tests::mixed_session ... ok [INFO] [stdout] test adapters::aider::tests::adapter_name ... ok [INFO] [stdout] test adapters::claude::tests::extract_empty_file ... ok [INFO] [stdout] test adapters::aider::tests::no_cost_when_not_reported ... ok [INFO] [stdout] test adapters::aider::tests::lines_for_source_text ... ok [INFO] [stdout] test adapters::aider::tests::supported_metrics_list ... ok [INFO] [stdout] test adapters::claude::tests::extract_output_bytes_is_file_size ... ok [INFO] [stdout] test adapters::codex::tests::extract_empty_file ... ok [INFO] [stdout] test adapters::aider::tests::multiple_cost_lines_uses_last ... ok [INFO] [stdout] test adapters::codex::tests::adapter_name ... ok [INFO] [stdout] test adapters::codex::tests::extract_duration_from_timestamps ... ok [INFO] [stdout] test adapters::claude::tests::lines_for_source_text ... ok [INFO] [stdout] test adapters::claude::tests::lines_for_source_raw ... ok [INFO] [stdout] test adapters::codex::tests::file_change_and_mcp_count_as_tool_calls ... ok [INFO] [stdout] test adapters::claude::tests::lines_for_source_tool_commands ... ok [INFO] [stdout] test adapters::codex::tests::lines_for_source_raw ... ok [INFO] [stdout] test adapters::codex::tests::extract_exit_code ... ok [INFO] [stdout] test adapters::codex::tests::file_not_found_returns_error ... ok [INFO] [stdout] test adapters::codex::tests::extract_output_bytes_is_file_size ... ok [INFO] [stdout] test adapters::codex::tests::lines_for_source_tool_commands ... ok [INFO] [stdout] test adapters::claude::tests::extract_skips_malformed_lines ... ok [INFO] [stdout] test adapters::codex::tests::extract_skips_malformed_lines ... ok [INFO] [stdout] test adapters::codex::tests::lines_for_source_tool_commands_without_bash_prefix ... ok [INFO] [stdout] test adapters::claude::tests::real_file_format ... ok [INFO] [stdout] test adapters::claude::tests::extract_multi_model_usage ... ok [INFO] [stdout] test adapters::claude::tests::extract_mixed_events ... ok [INFO] [stdout] test adapters::codex::tests::extract_tool_calls_from_command_execution ... ok [INFO] [stdout] test adapters::codex::tests::mixed_codex_session ... ok [INFO] [stdout] test adapters::codex::tests::supported_metrics_list ... ok [INFO] [stdout] test adapters::codex::tests::extract_turns_from_turn_completed ... ok [INFO] [stdout] test adapters::opencode::tests::extract_skips_malformed_lines ... ok [INFO] [stdout] test adapters::opencode::tests::extract_exit_code_from_tool_result ... ok [INFO] [stdout] test adapters::opencode::tests::extract_empty_file ... ok [INFO] [stdout] test adapters::opencode::tests::extract_output_bytes_is_file_size ... ok [INFO] [stdout] test adapters::codex::tests::lines_for_source_text ... ok [INFO] [stdout] test adapters::claude::tests::extract_single_assistant_text_only ... ok [INFO] [stdout] test adapters::codex::tests::no_exit_code_when_no_commands ... ok [INFO] [stdout] test adapters::opencode::tests::no_exit_code_when_no_tool_results ... ok [INFO] [stdout] test adapters::opencode::tests::extract_tokens_with_prompt_completion_keys ... ok [INFO] [stdout] test adapters::opencode::tests::no_tokens_when_not_available ... ok [INFO] [stdout] test adapters::opencode::tests::lines_for_source_tool_commands ... ok [INFO] [stdout] test adapters::opencode::tests::extract_tokens_from_usage ... ok [INFO] [stdout] test adapters::opencode::tests::lines_for_source_text ... ok [INFO] [stdout] test adapters::claude::tests::file_not_found_returns_error ... ok [INFO] [stdout] test adapters::opencode::tests::extract_tool_calls_from_parts ... ok [INFO] [stdout] test adapters::opencode::tests::extract_turns_from_assistant_messages_jsonl ... ok [INFO] [stdout] test adapters::opencode::tests::mixed_session ... ok [INFO] [stdout] test adapters::opencode::tests::extract_duration_from_timestamps ... ok [INFO] [stdout] test adapters::claude::tests::supported_metrics_list ... ok [INFO] [stdout] test adapters::opencode::tests::adapter_name ... ok [INFO] [stdout] test adapters::opencode::tests::parse_json_object_with_messages_key ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_lines_for_source_returns_raw_lines ... ok [INFO] [stdout] test adapters::opencode::tests::file_not_found_returns_error ... ok [INFO] [stdout] test adapters::opencode::tests::lines_for_source_raw ... ok [INFO] [stdout] test adapters::opencode::tests::tool_call_with_snake_case_type ... ok [INFO] [stdout] test adapters::opencode::tests::parse_json_array_of_messages ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_name ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_no_builtin_metrics ... ok [INFO] [stdout] test adapters::opencode::tests::parse_nested_session_messages ... ok [INFO] [stdout] test adapters::opencode::tests::parse_session_level_tokens ... ok [INFO] [stdout] test adapters::opencode::tests::supported_metrics_list ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_empty_file ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_no_supported_metrics ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_claude ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_raw ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_unknown_falls_back_to_raw ... ok [INFO] [stdout] test adapters::tests::test_detect_claude_from_absolute_path ... ok [INFO] [stdout] test adapters::raw::tests::test_raw_adapter_missing_file_returns_io_error ... ok [INFO] [stdout] test adapters::tests::test_detect_claude_from_bare_command ... ok [INFO] [stdout] test adapters::tests::test_detect_claude_from_variant_name ... ok [INFO] [stdout] test adapters::tests::test_detect_unknown_falls_back_to_raw ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_aider ... ok [INFO] [stdout] test adapters::tests::test_resolve_unknown_explicit_falls_back_to_detect ... ok [INFO] [stdout] test adapters::tests::test_detect_empty_command_falls_back_to_raw ... ok [INFO] [stdout] test adapters::tests::test_resolve_then_create_with_explicit_override ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_group ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_nested ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_pub_use ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_skips_comments ... ok [INFO] [stdout] test adapters::tests::test_detect_opencode ... ok [INFO] [stdout] test adapters::tests::test_detect_aider ... ok [INFO] [stdout] test adapters::tests::test_resolve_explicit_overrides_detection ... ok [INFO] [stdout] test adapters::tests::test_resolve_none_uses_auto_detect ... ok [INFO] [stdout] test adapters::tests::test_resolve_then_create_from_default_config ... ok [INFO] [stdout] test adapters::tests::test_detect_codex ... ok [INFO] [stdout] test adapters::tests::test_resolve_explicit_known_adapter ... ok [INFO] [stdout] test boundary_violation::tests::detects_non_public_symbol_access ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_basic ... ok [INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_skips_std ... ok [INFO] [stdout] test boundary_violation::tests::extract_lowercase_function_import ... ok [INFO] [stdout] test boundary_violation::tests::no_violations_in_empty_project ... ok [INFO] [stdout] test boundary_violation::tests::parse_group_import_single ... ok [INFO] [stdout] test boundary_violation::tests::no_violations_when_using_public_api ... ok [INFO] [stdout] test boundary_violation::tests::parse_group_import_basic ... ok [INFO] [stdout] test brief::tests::brief_no_database_file_produces_no_output ... ok [INFO] [stdout] test boundary_violation::tests::no_violation_for_intra_module_imports ... ok [INFO] [stdout] test boundary_violation::tests::pub_use_reexport_not_violation ... ok [INFO] [stdout] test boundary_violation::tests::nested_module_violation ... ok [INFO] [stdout] test boundary_violation::tests::multiple_violations_across_modules ... ok [INFO] [stdout] test boundary_violation::tests::comments_not_parsed_as_imports ... ok [INFO] [stdout] test boundary_violation::tests::glob_import_not_checked ... ok [INFO] [stdout] test boundary_violation::tests::violations_sorted_by_source_target_symbol ... ok [INFO] [stdout] test brief::tests::evaluate_single_observation_miss ... ok [INFO] [stdout] test brief::tests::evaluate_single_observation_missing_data ... ok [INFO] [stdout] test brief::tests::evaluate_single_observation_pass ... ok [INFO] [stdout] test brief::tests::evaluate_single_observation_pct_of ... ok [INFO] [stdout] test brief::tests::format_actual_value_dollar ... ok [INFO] [stdout] test brief::tests::evaluate_single_observation_pct_sessions_returns_none ... ok [INFO] [stdout] test boundary_violation::tests::group_import_multiple_symbols ... ok [INFO] [stdout] test brief::tests::is_rule_supported_tests ... ok [INFO] [stdout] test brief::tests::format_actual_value_percent ... ok [INFO] [stdout] test brief::tests::format_actual_value_no_unit ... ok [INFO] [stdout] test brief::tests::format_performance_feedback_unit ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_codex ... ok [INFO] [stdout] test adapters::tests::test_create_adapter_opencode ... ok [INFO] [stdout] test brief::tests::brief_observation_only_no_improvements ... ok [INFO] [stdout] test brief::tests::brief_performance_feedback_uses_most_recent_session ... ok [INFO] [stdout] test brief::tests::brief_performance_feedback_duration_seconds_only ... ok [INFO] [stdout] test brief::tests::brief_performance_feedback_zero_turns ... ok [INFO] [stdout] test brief::tests::target_warnings_above_direction ... ok [INFO] [stdout] test brief::tests::brief_empty_database_produces_no_output ... ok [INFO] [stdout] test brief::tests::target_warnings_no_miss_no_section ... ok [INFO] [stdout] test brief::tests::brief_performance_feedback_and_improvements_together ... ok [INFO] [stdout] test brief::tests::brief_format_matches_prd ... ok [INFO] [stdout] test brief::tests::brief_shows_open_improvements ... ok [INFO] [stdout] test circular_dep::tests::cycle_via_multiple_file_edges ... ok [INFO] [stdout] test circular_dep::tests::files_not_in_any_module_ignored ... ok [INFO] [stdout] test circular_dep::tests::integration_with_real_structures ... ok [INFO] [stdout] test circular_dep::tests::intra_module_imports_not_cycles ... ok [INFO] [stdout] test circular_dep::tests::mixed_dag_and_cycle ... ok [INFO] [stdout] test circular_dep::tests::multiple_files_create_one_module_edge ... ok [INFO] [stdout] test circular_dep::tests::multiple_independent_cycles ... ok [INFO] [stdout] test circular_dep::tests::no_cycles_dag ... ok [INFO] [stdout] test circular_dep::tests::no_cycles_empty ... ok [INFO] [stdout] test circular_dep::tests::single_module_no_cycle ... ok [INFO] [stdout] test circular_dep::tests::three_module_cycle ... ok [INFO] [stdout] test brief::tests::target_warnings_multiple_rules_mixed ... ok [INFO] [stdout] test circular_dep::tests::two_module_cycle ... ok [INFO] [stdout] test commit::tests::test_compile_patterns_empty ... ok [INFO] [stdout] test commit::tests::test_compile_patterns_invalid ... ok [INFO] [stdout] test brief::tests::brief_shows_performance_feedback_with_observation ... ok [INFO] [stdout] test commit::tests::test_custom_patterns ... ok [INFO] [stdout] test brief::tests::streak_threshold_exactly_met_is_alert ... ok [INFO] [stdout] test brief::tests::target_warnings_no_rules_no_section ... ok [INFO] [stdout] test commit::tests::test_compile_patterns_valid ... ok [INFO] [stdout] test brief::tests::brief_excludes_non_open_improvements_from_listing ... ok [INFO] [stdout] test commit::tests::test_default_patterns_list ... ok [INFO] [stdout] test commit::tests::test_detect_bd_finish ... ok [INFO] [stdout] test commit::tests::test_detect_committed ... ok [INFO] [stdout] test commit::tests::test_detect_commit_from_file ... ok [INFO] [stdout] test commit::tests::test_empty_patterns ... ok [INFO] [stdout] test brief::tests::target_warnings_none_config_no_section ... ok [INFO] [stdout] test commit::tests::test_detect_git_commit ... ok [INFO] [stdout] test commit::tests::test_empty_output ... ok [INFO] [stdout] test commit::tests::test_detect_git_commit_case_insensitive ... ok [INFO] [stdout] test compress::tests::test_already_compressed_files_skipped ... ok [INFO] [stdout] test compress::tests::test_compress_current_less_than_threshold ... ok [INFO] [stdout] test commit::tests::test_detect_no_commit_from_file ... ok [INFO] [stdout] test compress::tests::test_compress_high_iteration_numbers ... ok [INFO] [stdout] test commit::tests::test_no_commit_detected ... ok [INFO] [stdout] test compress::tests::test_empty_sessions_directory ... ok [INFO] [stdout] test commit::tests::test_detect_commit_missing_file ... ok [INFO] [stdout] test compress::tests::test_missing_sessions_directory ... ok [INFO] [stdout] test compress::tests::test_compressed_file_is_valid_zstd ... ok [INFO] [stdout] test compress::tests::test_compress_exact_threshold ... ok [INFO] [stdout] test compress::tests::test_non_numeric_files_ignored ... ok [INFO] [stdout] test compress::tests::test_compress_old_sessions_basic ... ok [INFO] [stdout] test config::tests::test_cli_overrides_all_fields ... ok [INFO] [stdout] test config::tests::test_cli_overrides_none_preserves_config ... ok [INFO] [stdout] test config::tests::test_architecture_aggressive_preset ... ok [INFO] [stdout] test config::tests::test_architecture_defaults_when_not_specified ... ok [INFO] [stdout] test config::tests::test_architecture_conservative_preset ... ok [INFO] [stdout] test config::tests::test_compile_invalid_regex_returns_error ... ok [INFO] [stdout] test config::tests::test_command_in_path_finds_sh ... ok [INFO] [stdout] test config::tests::test_cli_overrides_partial ... ok [INFO] [stdout] test config::tests::test_default_agent_adapter_is_none ... ok [INFO] [stdout] test config::tests::test_default_agent_has_no_phase_configs ... ok [INFO] [stdout] test config::tests::test_compile_extraction_rule ... ok [INFO] [stdout] test config::tests::test_default_architecture_config ... ok [INFO] [stdout] test config::tests::test_default_config_has_no_extraction_rules ... ok [INFO] [stdout] test compress::tests::test_compress_after_zero_does_nothing ... ok [INFO] [stdout] test config::tests::test_default_config_values ... ok [INFO] [stdout] test config::tests::test_default_improvements_config ... ok [INFO] [stdout] test config::tests::test_architecture_partial_override ... ok [INFO] [stdout] test config::tests::test_command_in_path_missing_binary ... ok [INFO] [stdout] test config::tests::test_default_prompt_via_is_arg ... ok [INFO] [stdout] test config::tests::test_default_quality_gates ... ok [INFO] [stdout] test config::tests::test_default_reconciliation_every ... ok [INFO] [stdout] test config::tests::test_default_storage_data_dir ... ok [INFO] [stdout] test config::tests::test_default_streak_threshold ... ok [INFO] [stdout] test config::tests::test_existing_config_with_no_metrics_section_still_works ... ok [INFO] [stdout] test config::tests::test_fallback_to_blacksmith_toml ... ok [INFO] [stdout] test config::tests::test_improvements_defaults_when_not_specified ... ok [INFO] [stdout] test config::tests::test_default_retention_when_not_specified ... ok [INFO] [stdout] test config::tests::test_full_precedence_chain ... ok [INFO] [stdout] test config::tests::test_improvements_auto_promote_disabled ... ok [INFO] [stdout] test config::tests::test_explicit_path_no_fallback ... ok [INFO] [stdout] test config::tests::test_load_agent_coding_and_integration_from_toml ... ok [INFO] [stdout] test config::tests::test_load_compress_after_from_toml ... ok [INFO] [stdout] test config::tests::test_load_agent_adapter_from_toml ... ok [INFO] [stdout] test config::tests::test_load_agent_without_adapter_field ... ok [INFO] [stdout] test config::tests::test_load_file_not_found_returns_read_error ... ok [INFO] [stdout] test config::tests::test_load_architecture_from_toml ... ok [INFO] [stdout] test config::tests::test_load_extraction_rules_from_toml ... ok [INFO] [stdout] test config::tests::test_load_empty_file_returns_defaults ... ok [INFO] [stdout] test config::tests::test_load_extraction_rule_source_raw ... ok [INFO] [stdout] test config::tests::test_load_agent_coding_from_toml ... ok [INFO] [stdout] test config::tests::test_load_full_toml ... ok [INFO] [stdout] test config::tests::test_load_improvements_from_toml ... ok [INFO] [stdout] test config::tests::test_load_invalid_retention_from_toml ... ok [INFO] [stdout] test config::tests::test_load_missing_file_returns_defaults ... ok [INFO] [stdout] test config::tests::test_load_invalid_prompt_via_from_toml ... ok [INFO] [stdout] test config::tests::test_load_prompt_via_default_when_not_specified ... ok [INFO] [stdout] test config::tests::test_load_invalid_toml_returns_parse_error ... ok [INFO] [stdout] test config::tests::test_load_prompt_via_arg_from_toml ... ok [INFO] [stdout] test config::tests::test_load_quality_gates_from_toml ... ok [INFO] [stdout] test config::tests::test_load_prompt_via_stdin_from_toml ... ok [INFO] [stdout] test config::tests::test_load_partial_toml_merges_with_defaults ... ok [INFO] [stdout] test config::tests::test_load_prompt_via_file_from_toml ... ok [INFO] [stdout] test config::tests::test_load_retention_after_ingest_from_toml ... ok [INFO] [stdout] test config::tests::test_load_retention_all_from_toml ... ok [INFO] [stdout] test config::tests::test_load_from_new_config_path ... ok [INFO] [stdout] test config::tests::test_load_storage_data_dir_from_toml ... ok [INFO] [stdout] test config::tests::test_load_reconciliation_from_toml ... ok [INFO] [stdout] test config::tests::test_prompt_via_display ... ok [INFO] [stdout] test config::tests::test_load_extraction_rule_with_anti_pattern ... ok [INFO] [stdout] test config::tests::test_load_retention_from_toml ... ok [INFO] [stdout] test config::tests::test_load_streak_threshold_from_toml ... ok [INFO] [stdout] test config::tests::test_quality_gates_defaults_when_not_specified ... ok [INFO] [stdout] test config::tests::test_reconciliation_default_when_not_specified ... ok [INFO] [stdout] test config::tests::test_load_retention_days_from_toml ... ok [INFO] [stdout] test config::tests::test_resolved_coding_falls_back_to_flat_agent ... ok [INFO] [stdout] test config::tests::test_reconciliation_zero_disables ... ok [INFO] [stdout] test config::tests::test_resolved_integration_inherits_from_coding ... ok [INFO] [stdout] test config::tests::test_resolved_integration_partial_override ... ok [INFO] [stdout] test config::tests::test_retention_display ... ok [INFO] [stdout] test config::tests::test_resolved_analysis_model_injects_flag ... ok [INFO] [stdout] test config::tests::test_resolved_integration_falls_back_to_coding_then_flat ... ok [INFO] [stdout] test config::tests::test_retention_parse_days ... ok [INFO] [stdout] test config::tests::test_retention_parse_invalid ... ok [INFO] [stdout] test config::tests::test_retention_parse_after_ingest ... ok [INFO] [stdout] test config::tests::test_retention_parse_last_n ... ok [INFO] [stdout] test config::tests::test_retention_parse_all ... ok [INFO] [stdout] test config::tests::test_uses_legacy_flat_config ... ok [INFO] [stdout] test config::tests::test_resolved_coding_model_injects_flag ... ok [INFO] [stdout] test config::tests::test_no_config_file_returns_defaults ... ok [INFO] [stdout] test config::tests::test_resolved_coding_overrides_flat_fields ... ok [INFO] [stdout] test config::tests::test_validate_architecture_valid_config ... ok [INFO] [stdout] test brief::tests::target_warnings_pct_of_miss ... ok [INFO] [stdout] test brief::tests::target_warnings_none_supported_metrics_means_no_filtering ... ok [INFO] [stdout] test config::tests::test_validate_architecture_zero_values ... ok [INFO] [stdout] test config::tests::test_validate_invalid_commit_detection_pattern ... ok [INFO] [stdout] test config::tests::test_validate_command_absolute_path_missing ... ok [INFO] [stdout] test config::tests::test_validate_initial_delay_exceeds_max_delay ... ok [INFO] [stdout] test brief::tests::target_warnings_single_miss ... ok [INFO] [stdout] test config::tests::test_validate_missing_prompt_file ... ok [INFO] [stdout] test config::tests::test_validate_empty_command ... ok [INFO] [stdout] test config::tests::test_validate_invalid_extraction_rule ... ok [INFO] [stdout] test config::tests::test_validate_multiple_errors_collected ... ok [INFO] [stdout] test config::tests::test_validate_pct_of_missing_relative_to ... ok [INFO] [stdout] test config::tests::test_validate_resolves_agent_for_both_phases ... ok [INFO] [stdout] test brief::tests::target_warnings_skip_unsupported_metric ... ok [INFO] [stdout] test brief::tests::target_warnings_skip_unsupported_relative_to_metric ... ok [INFO] [stdout] test brief::tests::target_warnings_streak_threshold_configurable ... ok [INFO] [stdout] test config::tests::test_validate_valid_config_no_errors ... ok [INFO] [stdout] test config::tests::test_validate_architecture_negative_drift_sensitivity ... ok [INFO] [stdout] test config::tests::test_validate_zero_timeout_values ... ok [INFO] [stdout] test config::tests::test_validate_invalid_target_compare ... ok [INFO] [stdout] test coordinator::tests::test_analysis_outcomes_excluded_from_session_counter ... ok [INFO] [stdout] test coordinator::tests::test_append_promoted_to_prompt_creates_file ... ok [INFO] [stdout] test brief::tests::target_warnings_streak_escalates_to_alert ... ok [INFO] [stdout] test coordinator::tests::test_append_promoted_to_prompt_uses_title_when_no_body ... ok [INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_includes_prompt_file ... ok [INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_graceful_on_missing_prompt_file ... ok [INFO] [stdout] test config::tests::test_validate_command_not_in_path ... ok [INFO] [stdout] test brief::tests::target_warnings_streak_broken_by_pass ... ok [INFO] [stdout] test config::tests::test_validate_invalid_target_direction ... ok [INFO] [stdout] test config::tests::test_validate_zero_max_iterations ... ok [INFO] [stdout] test config::tests::test_validate_catches_bad_integration_command ... ok [INFO] [stdout] test coordinator::tests::test_chrono_timestamp_is_numeric ... ok [INFO] [stdout] test coordinator::tests::test_circuit_breaker_integration_with_coordinator_logic ... ok [INFO] [stdout] test brief::tests::target_warnings_position_between_feedback_and_improvements ... ok [INFO] [stdout] test coordinator::tests::test_close_bead_direct_does_not_panic ... ok [INFO] [stdout] test config::tests::test_validate_architecture_fan_in_out_of_range ... ok [INFO] [stdout] test coordinator::tests::test_coordinator_exits_with_no_work ... ignored [INFO] [stdout] test coordinator::tests::test_coordinator_single_agent_direct_commit ... ok [INFO] [stdout] test coordinator::tests::test_bug_report_scenario_no_runaway_loop ... ok [INFO] [stdout] test coordinator::tests::test_build_in_progress_list_empty_pool ... ok [INFO] [stdout] test coordinator::tests::test_build_progress_string_empty_db ... ok [INFO] [stdout] test coordinator::tests::test_effective_analyze_every_clamps ... ok [INFO] [stdout] test coordinator::tests::test_effective_analyze_every_no_clamp_when_above ... ok [INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_includes_open_improvements ... ok [INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_new_placeholders_replaced ... ok [INFO] [stdout] test coordinator::tests::test_effective_analyze_every_zero_stays_zero ... ok [INFO] [stdout] test coordinator::tests::test_coordinator_exits_on_signal ... ok [INFO] [stdout] test coordinator::tests::test_already_running_guard_prevents_duplicate_analysis ... ok [INFO] [stdout] test coordinator::tests::test_analyze_every_1_no_infinite_loop ... ok [INFO] [stdout] test coordinator::tests::test_format_cycle_path ... ok [INFO] [stdout] test coordinator::tests::test_format_duration_secs_hours ... ok [INFO] [stdout] test coordinator::tests::test_format_duration_secs_minutes ... ok [INFO] [stdout] test coordinator::tests::test_format_duration_secs_seconds ... ok [INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_contains_placeholders_replaced ... ok [INFO] [stdout] test coordinator::tests::test_format_observations_table_empty ... ok [INFO] [stdout] test coordinator::tests::test_format_observations_table_with_data ... ok [INFO] [stdout] test coordinator::tests::test_is_analysis_bead_true ... ok [INFO] [stdout] test coordinator::tests::test_is_analysis_bead_false ... ok [INFO] [stdout] test coordinator::tests::test_is_rapid_session_failure_falls_back_to_short_small_output ... ok [INFO] [stdout] test coordinator::tests::test_is_rapid_session_failure_ignores_non_instant_failures ... ok [INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_empty_data ... ok [INFO] [stdout] test coordinator::tests::test_is_rapid_session_failure_detects_zero_turns ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_blocked_by_dependency ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_chain_deps ... ok [INFO] [stdout] test coordinator::tests::test_backlog_threshold_allows_below ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_dep_on_closed_bead ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_keeps_epic_without_open_children ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_no_cycles_no_deps ... ok [INFO] [stdout] test coordinator::tests::test_handle_tripped_failure_does_not_panic ... ok [INFO] [stdout] test coordinator::tests::test_parse_comma_separated_globs ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_with_cycle ... ok [INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_empty ... ok [INFO] [stdout] test coordinator::tests::test_parse_open_epic_hierarchy_extracts_parent_child_edges ... ok [INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_invalid_json ... ok [INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_missing_id ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_empty ... ok [INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_valid ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_invalid ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_missing_fields ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_no_design ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_with_dependencies ... ok [INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_valid ... ok [INFO] [stdout] test coordinator::tests::test_plan_parent_epic_autoclose_order_chains_upward ... ok [INFO] [stdout] test coordinator::tests::test_plan_parent_epic_autoclose_order_requires_all_children_closed ... ok [INFO] [stdout] test coordinator::tests::test_rapid_failure_backoff_delay_starts_at_threshold ... ok [INFO] [stdout] test coordinator::tests::test_recover_orphaned_beads_does_not_panic ... ok [INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_filters_epic_with_open_child ... ok [INFO] [stdout] test coordinator::tests::test_build_progress_string_with_completed ... ok [INFO] [stdout] test coordinator::tests::test_count_open_improvements ... ok [INFO] [stdout] test coordinator::tests::test_backlog_threshold_blocks_analysis ... ok [INFO] [stdout] test coordinator::tests::test_should_log_dependency_filter_info ... ok [INFO] [stdout] test coordinator::tests::test_no_expand_file_is_noop ... ok [INFO] [stdout] test coordinator::tests::test_expand_file_empty_file_ignored ... ok [INFO] [stdout] test coordinator::tests::test_no_analysis_before_any_coding_session ... ok [INFO] [stdout] test coordinator::tests::test_expand_file_comments_ignored ... ok [INFO] [stdout] test coordinator::tests::test_run_auto_promotion_disabled_when_zero ... ok [INFO] [stdout] test cycle_detect::tests::all_nodes_in_one_big_cycle ... ok [INFO] [stdout] test cycle_detect::tests::complex_graph_mixed_cycles_and_dag ... ok [INFO] [stdout] test cycle_detect::tests::external_deps_ignored ... ok [INFO] [stdout] test cycle_detect::tests::multiple_independent_cycles ... ok [INFO] [stdout] test cycle_detect::tests::no_cycles_dag ... ok [INFO] [stdout] test cycle_detect::tests::no_cycles_diamond_dag ... ok [INFO] [stdout] test cycle_detect::tests::no_cycles_empty_graph ... ok [INFO] [stdout] test cycle_detect::tests::self_loop ... ok [INFO] [stdout] test cycle_detect::tests::single_cycle_three_nodes ... ok [INFO] [stdout] test cycle_detect::tests::single_cycle_two_nodes ... ok [INFO] [stdout] test cycle_detect::tests::single_node_no_cycle ... ok [INFO] [stdout] test data_dir::tests::test_config_path ... ok [INFO] [stdout] test data_dir::tests::test_data_dir_paths ... ok [INFO] [stdout] test coordinator::tests::test_run_auto_promotion_not_ready_yet ... ok [INFO] [stdout] test coordinator::tests::test_expand_file_no_duplicates ... ok [INFO] [stdout] test data_dir::tests::test_ensure_initialized_creates_and_updates_gitignore ... ok [INFO] [stdout] test data_dir::tests::test_gitignore_not_created_if_missing ... ok [INFO] [stdout] test data_dir::tests::test_gitignore_not_duplicated ... ok [INFO] [stdout] test data_dir::tests::test_init_creates_directories_and_config ... ok [INFO] [stdout] test data_dir::tests::test_gitignore_append_no_trailing_newline ... ok [INFO] [stdout] test data_dir::tests::test_init_does_not_overwrite_existing_config ... ok [INFO] [stdout] test data_dir::tests::test_init_idempotent ... ok [INFO] [stdout] test data_dir::tests::test_init_with_config_writes_custom_content ... ok [INFO] [stdout] test coordinator::tests::test_sessions_since_improvement ... ok [INFO] [stdout] test coordinator::tests::test_run_auto_promotion_promotes_after_threshold ... ok [INFO] [stdout] test coordinator::tests::test_should_spawn_analysis_already_running ... ok [INFO] [stdout] test coordinator::tests::test_run_auto_promotion_only_runs_on_interval ... ok [INFO] [stdout] test coordinator::tests::test_should_spawn_analysis_disabled ... ok [INFO] [stdout] test coordinator::tests::test_dismiss_stale_improvements ... ok [INFO] [stdout] test coordinator::tests::test_single_worker_coding_not_starved_by_analysis ... ok [INFO] [stdout] test coordinator::tests::test_two_workers_analysis_gets_one_slot ... ok [INFO] [stdout] test coordinator::tests::test_should_spawn_analysis_triggers_at_interval ... ok [INFO] [stdout] test coordinator::tests::test_expand_file_processing ... ok [INFO] [stdout] test db::tests::all_columns_insertable ... ok [INFO] [stdout] test db::tests::active_worker_assignments_empty ... ok [INFO] [stdout] test db::tests::all_three_tables_created ... ok [INFO] [stdout] test db::tests::active_worker_assignments_query ... ok [INFO] [stdout] test db::tests::bead_metrics_nullable_fields ... ok [INFO] [stdout] test db::tests::all_bead_metrics_ordering ... ok [INFO] [stdout] test db::tests::completed_bead_metrics_empty_when_none_completed ... ok [INFO] [stdout] test db::tests::coordinator_tables_created ... ok [INFO] [stdout] test db::tests::completed_bead_metrics_filters_correctly ... ok [INFO] [stdout] test db::tests::coordinator_indexes_created ... ok [INFO] [stdout] test db::tests::creates_database_and_table ... ok [INFO] [stdout] test db::tests::created_timestamp_auto_set ... ok [INFO] [stdout] test coordinator::tests::test_backlog_threshold_disabled ... ok [INFO] [stdout] test db::tests::events_empty_session_returns_empty ... ok [INFO] [stdout] test db::tests::default_status_is_open ... ok [INFO] [stdout] test db::tests::events_table_exists ... ok [INFO] [stdout] test db::tests::events_indexes_created ... ok [INFO] [stdout] test db::tests::events_by_kind_query ... ok [INFO] [stdout] test db::tests::events_and_observations_coexist ... ok [INFO] [stdout] test db::tests::events_session_index_works ... ok [INFO] [stdout] test db::tests::events_timestamp_auto_set ... ok [INFO] [stdout] test db::tests::file_changes_empty_for_no_assignment ... ok [INFO] [stdout] test db::tests::find_entangled_beads_empty ... ok [INFO] [stdout] test coordinator::tests::test_dismiss_stale_disabled ... ok [INFO] [stdout] test db::tests::find_entangled_beads_excludes_self ... ok [INFO] [stdout] test coordinator::tests::test_coordinator_exits_on_stop_file ... ok [INFO] [stdout] test db::tests::find_failed_assignment_finds_failed_status ... ok [INFO] [stdout] test db::tests::find_failed_assignment_finds_integration_failed ... ok [INFO] [stdout] test db::tests::find_entangled_beads_finds_dependents ... ok [INFO] [stdout] test db::tests::find_failed_assignment_ignores_completed ... ok [INFO] [stdout] test db::tests::find_integration_by_bead_found ... ok [INFO] [stdout] test db::tests::find_integration_by_bead_none ... ok [INFO] [stdout] test db::tests::find_entangled_beads_excludes_non_integrated ... ok [INFO] [stdout] test db::tests::find_failed_assignment_none ... ok [INFO] [stdout] test db::tests::find_failed_assignment_returns_most_recent ... ok [INFO] [stdout] test db::tests::find_integration_by_bead_returns_most_recent ... ok [INFO] [stdout] test db::tests::get_bead_metrics_nonexistent ... ok [INFO] [stdout] test db::tests::get_improvement_found ... ok [INFO] [stdout] test db::tests::get_improvement_meta_found ... ok [INFO] [stdout] test db::tests::get_observation_nonexistent ... ok [INFO] [stdout] test db::tests::get_worker_assignment_nonexistent ... ok [INFO] [stdout] test db::tests::insert_and_get_worker_assignment ... ok [INFO] [stdout] test db::tests::get_improvement_not_found ... ok [INFO] [stdout] test db::tests::idempotent_creation ... ok [INFO] [stdout] test db::tests::insert_and_query_improvement ... ok [INFO] [stdout] test db::tests::high_iteration_integrations_filters_by_threshold ... ok [INFO] [stdout] test db::tests::insert_and_list_progress_entries ... ok [INFO] [stdout] test db::tests::index_on_status_works ... ok [INFO] [stdout] test db::tests::insert_event_basic ... ok [INFO] [stdout] test db::tests::insert_and_query_task_file_changes ... ok [INFO] [stdout] test db::tests::insert_and_query_integration_log ... ok [INFO] [stdout] test db::tests::insert_event_null_value ... ok [INFO] [stdout] test db::tests::insert_event_with_explicit_ts ... ok [INFO] [stdout] test db::tests::insert_event_with_tags ... ok [INFO] [stdout] test db::tests::integration_log_empty_for_no_assignment ... ok [INFO] [stdout] test db::tests::integration_iterations_empty_for_unknown_bead ... ok [INFO] [stdout] test db::tests::integration_iterations_zero_count ... ok [INFO] [stdout] test db::tests::latest_progress_entry_filters_by_bead_id ... ok [INFO] [stdout] test db::tests::integration_log_with_reconciliation ... ok [INFO] [stdout] test db::tests::next_ref_empty_table ... ok [INFO] [stdout] test db::tests::multiple_events_per_session ... ok [INFO] [stdout] test db::tests::next_ref_handles_gaps ... ok [INFO] [stdout] test db::tests::next_ref_after_inserts ... ok [INFO] [stdout] test db::tests::observations_table_exists ... ok [INFO] [stdout] test db::tests::observations_session_is_primary_key ... ok [INFO] [stdout] test db::tests::observation_nullable_fields ... ok [INFO] [stdout] test db::tests::opens_existing_database ... ok [INFO] [stdout] test db::tests::progress_entries_table_exists ... ok [INFO] [stdout] test db::tests::rebuild_observations_boolean_values ... ok [INFO] [stdout] test db::tests::rebuild_observations_clears_old ... ok [INFO] [stdout] test db::tests::rebuild_observations_empty_events ... ok [INFO] [stdout] test db::tests::rebuild_observations_no_duration_event ... ok [INFO] [stdout] test db::tests::recent_integration_log_empty ... ok [INFO] [stdout] test db::tests::recent_integration_log_returns_entries ... ok [INFO] [stdout] test db::tests::record_and_query_integration_iterations ... ok [INFO] [stdout] test db::tests::rebuild_observations_from_events ... ok [INFO] [stdout] test db::tests::recent_observations_ordering ... ok [INFO] [stdout] test db::tests::search_improvements_by_context ... ok [INFO] [stdout] test db::tests::recent_integration_log_with_limit ... ok [INFO] [stdout] test db::tests::resolved_timestamp_nullable ... ok [INFO] [stdout] test db::tests::search_improvements_by_body ... ok [INFO] [stdout] test db::tests::ref_uniqueness_enforced ... ok [INFO] [stdout] test db::tests::recent_observations_limit ... ok [INFO] [stdout] test db::tests::search_improvements_by_title ... ok [INFO] [stdout] test db::tests::search_improvements_case_insensitive ... ok [INFO] [stdout] test db::tests::search_improvements_no_match ... ok [INFO] [stdout] test db::tests::update_improvement_meta ... ok [INFO] [stdout] test estimation::tests::critical_path_diamond ... ok [INFO] [stdout] test estimation::tests::critical_path_empty ... ok [INFO] [stdout] test estimation::tests::critical_path_external_deps_ignored ... ok [INFO] [stdout] test db::tests::update_improvement_body_context ... ok [INFO] [stdout] test estimation::tests::critical_path_linear_chain ... ok [INFO] [stdout] test estimation::tests::critical_path_parallel_beads ... ok [INFO] [stdout] test estimation::tests::critical_path_with_cycle ... ok [INFO] [stdout] test estimation::tests::critical_path_single_bead ... ok [INFO] [stdout] test db::tests::update_improvement_no_resolved_on_other_status ... ok [INFO] [stdout] test db::tests::update_improvement_nonexistent ... ok [INFO] [stdout] test db::tests::update_improvement_nothing_to_update ... ok [INFO] [stdout] test db::tests::update_improvement_sets_resolved_on_dismiss ... ok [INFO] [stdout] test estimation::tests::format_duration_exact_hour ... ok [INFO] [stdout] test estimation::tests::format_duration_hours_and_minutes ... ok [INFO] [stdout] test estimation::tests::format_duration_minutes ... ok [INFO] [stdout] test db::tests::update_worker_assignment_nonexistent ... ok [INFO] [stdout] test estimation::tests::format_duration_seconds ... ok [INFO] [stdout] test db::tests::update_improvement_sets_resolved_on_promote ... ok [INFO] [stdout] test estimation::tests::format_insufficient_data ... ok [INFO] [stdout] test estimation::tests::format_with_cycles ... ok [INFO] [stdout] test estimation::tests::format_with_estimate ... ok [INFO] [stdout] test estimation::tests::parse_json_empty_array ... ok [INFO] [stdout] test estimation::tests::parse_json_invalid ... ok [INFO] [stdout] test estimation::tests::parse_json_no_dependencies_field ... ok [INFO] [stdout] test estimation::tests::parse_json_valid ... ok [INFO] [stdout] test expansion_event::tests::count_recent_expansions_within_window ... ok [INFO] [stdout] test expansion_event::tests::empty_modules_handled ... ok [INFO] [stdout] test expansion_event::tests::count_by_module_counts_correctly ... ok [INFO] [stdout] test expansion_event::tests::get_recent_returns_most_recent ... ok [INFO] [stdout] test expansion_event::tests::events_across_multiple_tasks ... ok [INFO] [stdout] test expansion_event::tests::multiple_events_same_task ... ok [INFO] [stdout] test expansion_event::tests::no_events_returns_empty ... ok [INFO] [stdout] test expansion_event::tests::get_recent_with_fewer_than_limit ... ok [INFO] [stdout] test fan_in::tests::deterministic_ordering_same_score ... ok [INFO] [stdout] test db::tests::update_worker_assignment_to_completed ... ok [INFO] [stdout] test fan_in::tests::empty_project_returns_empty ... ok [INFO] [stdout] test db::tests::update_improvement_status ... ok [INFO] [stdout] test fan_in::tests::mod_declaration_counts_as_import ... ok [INFO] [stdout] test expansion_event::tests::record_and_retrieve_by_task ... ok [INFO] [stdout] test fan_in::tests::scores_from_graph_directly ... ok [INFO] [stdout] test fan_in::tests::hotspots_default_threshold ... ok [INFO] [stdout] test fan_in::tests::hotspots_filters_above_threshold ... ok [INFO] [stdout] test fan_in::tests::multiple_importers_high_fan_in ... ok [INFO] [stdout] test fan_in::tests::single_file_zero_fan_in ... ok [INFO] [stdout] test finish::tests::test_extract_new_file_path ... ok [INFO] [stdout] test db::tests::upsert_and_get_bead_metrics ... ok [INFO] [stdout] test fan_in::tests::sorted_descending_by_score ... ok [INFO] [stdout] test finish::tests::test_extract_section_found ... ok [INFO] [stdout] test fan_in::tests::one_importer ... ok [INFO] [stdout] test finish::tests::test_extract_modified_file_path ... ok [INFO] [stdout] test finish::tests::test_extract_section_not_found ... ok [INFO] [stdout] test finish::tests::test_handle_finish_lint_gate_failure ... ok [INFO] [stdout] test finish::tests::test_handle_finish_format_gate_failure ... ok [INFO] [stdout] test finish::tests::test_looks_like_prose ... ok [INFO] [stdout] test finish::tests::test_handle_finish_test_gate_failure ... ok [INFO] [stdout] test finish::tests::test_handle_finish_skips_empty_lint_format_gates ... ok [INFO] [stdout] test finish::tests::test_and_chain_works_via_sh ... ok [INFO] [stdout] test finish::tests::test_run_gate_empty_commands ... ok [INFO] [stdout] test finish::tests::test_run_gate_command_success ... ok [INFO] [stdout] test finish::tests::test_sanitize_verify_command_strips_backticks ... ok [INFO] [stdout] test finish::tests::test_strip_verify_prose ... ok [INFO] [stdout] test db::tests::update_worker_assignment_to_failed ... ok [INFO] [stdout] test finish::tests::test_run_gate_command_failure ... ok [INFO] [stdout] test gc::tests::test_gc_aggressive_compresses_all ... ok [INFO] [stdout] test finish::tests::test_run_gate_fails_on_first_failure ... ok [INFO] [stdout] test gc::tests::test_gc_aggressive_with_retention ... ok [INFO] [stdout] test gc::tests::test_gc_dry_run_no_changes ... ok [INFO] [stdout] test gc::tests::test_gc_missing_sessions_dir ... ok [INFO] [stdout] test gc::tests::test_gc_already_compressed_skipped ... ok [INFO] [stdout] test gc::tests::test_gc_days_retention ... ok [INFO] [stdout] test god_file::tests::connected_symbols_same_cluster ... ok [INFO] [stdout] test gc::tests::test_gc_nothing_to_clean ... ok [INFO] [stdout] test god_file::tests::analyze_file_reports_clusters ... ok [INFO] [stdout] test finish::tests::test_run_gate_passes ... ok [INFO] [stdout] test god_file::tests::default_config_values ... ok [INFO] [stdout] test god_file::tests::contains_word_basic ... ok [INFO] [stdout] test god_file::tests::empty_file_zero_clusters ... ok [INFO] [stdout] test god_file::tests::extract_all_symbols_includes_private ... ok [INFO] [stdout] test god_file::tests::find_definition_end_braced_block ... ok [INFO] [stdout] test god_file::tests::find_definition_end_single_line ... ok [INFO] [stdout] test db::tests::upsert_bead_metrics_updates_existing ... ok [INFO] [stdout] test god_file::tests::impl_block_merges_with_struct ... ok [INFO] [stdout] test god_file::tests::detect_god_files_sorted_by_severity ... ok [INFO] [stdout] test gc::tests::test_gc_normal_mode ... ok [INFO] [stdout] test hooks::tests::test_hook_env_post_session_no_exit_code ... ok [INFO] [stdout] test hooks::tests::test_hook_env_pre_session ... ok [INFO] [stdout] test db::tests::upsert_observation_insert ... ok [INFO] [stdout] test god_file::tests::small_file_not_flagged ... ok [INFO] [stdout] test god_file::tests::multiple_concerns_flagged ... ok [INFO] [stdout] test god_file::tests::single_concern_file_not_flagged ... ok [INFO] [stdout] test hooks::tests::test_hook_env_post_session ... ok [INFO] [stdout] test hooks::tests::test_hook_error_display ... ok [INFO] [stdout] test hooks::tests::test_pre_session_failure ... ok [INFO] [stdout] test hooks::tests::test_post_hook_receives_all_env_vars ... ok [INFO] [stdout] test import_graph::tests::comments_ignored ... ok [INFO] [stdout] test hooks::tests::test_pre_session_stops_on_first_failure ... ok [INFO] [stdout] test hooks::tests::test_hook_receives_env_vars ... ok [INFO] [stdout] test import_graph::tests::deduplicates_deps ... ok [INFO] [stdout] test import_graph::tests::empty_project ... ok [INFO] [stdout] test import_graph::tests::mod_declaration_subdir ... ok [INFO] [stdout] test import_graph::tests::mod_declaration_resolves ... ok [INFO] [stdout] test import_graph::tests::glob_import ... ok [INFO] [stdout] test hooks::tests::test_pre_session_success ... ok [INFO] [stdout] test import_graph::tests::parse_mod_declaration_inline_skipped ... ok [INFO] [stdout] test import_graph::tests::parse_mod_declaration_tests_skipped ... ok [INFO] [stdout] test import_graph::tests::nonexistent_import_filtered ... ok [INFO] [stdout] test import_graph::tests::nested_crate_path ... ok [INFO] [stdout] test import_graph::tests::parse_mod_declaration_basic ... ok [INFO] [stdout] test import_graph::tests::parse_mod_declaration_pub ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_group ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_pub ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_nested ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_basic ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_glob ... ok [INFO] [stdout] test import_graph::tests::parse_use_crate_not_crate ... ok [INFO] [stdout] test import_graph::tests::single_file_no_imports ... ok [INFO] [stdout] test finish::tests::test_extract_section_stops_at_next_header ... ok [INFO] [stdout] test import_graph::tests::pub_use_reexport ... ok [INFO] [stdout] test import_graph::tests::use_crate_import ... ok [INFO] [stdout] test finish::tests::test_handle_finish_check_gate_failure ... ok [INFO] [stdout] test hooks::tests::test_pre_session_multiple_success ... ok [INFO] [stdout] test hooks::tests::test_post_session_logs_error_but_continues ... ok [INFO] [stdout] test db::tests::upsert_observation_replaces ... ok [INFO] [stdout] test import_graph::tests::use_group_import ... ok [INFO] [stdout] test db::tests::worker_assignments_by_status_query ... ok [INFO] [stdout] test estimation::tests::estimate_insufficient_data ... ok [INFO] [stdout] test estimation::tests::estimate_serial_basic ... ok [INFO] [stdout] test estimation::tests::estimate_with_integration_overhead ... ok [INFO] [stdout] test estimation::tests::estimate_parallel_with_chain ... ok [INFO] [stdout] test estimation::tests::estimate_no_open_beads ... ok [INFO] [stdout] test improve::tests::add_creates_improvement ... ok [INFO] [stdout] test improve::tests::list_empty_database ... ok [INFO] [stdout] test improve::tests::dismiss_nonexistent_returns_error ... ok [INFO] [stdout] test improve::tests::list_filters_by_status ... ok [INFO] [stdout] test improve::tests::list_filters_by_category ... ok [INFO] [stdout] test improve::tests::dismiss_sets_resolved_timestamp ... ok [INFO] [stdout] test improve::tests::add_multiple_increments_ref ... ok [INFO] [stdout] test improve::tests::dismiss_with_reason_stores_meta ... ok [INFO] [stdout] test improve::tests::add_with_all_fields ... ok [INFO] [stdout] test improve::tests::list_filters_by_status_and_category ... ok [INFO] [stdout] test improve::tests::dismiss_sets_status ... ok [INFO] [stdout] test improve::tests::promote_nonexistent_returns_error ... ok [INFO] [stdout] test improve::tests::search_by_context ... ok [INFO] [stdout] test improve::tests::promote_sets_status ... ok [INFO] [stdout] test ingest::tests::build_observation_data_roundtrip ... ok [INFO] [stdout] test improve::tests::promote_sets_resolved_timestamp ... ok [INFO] [stdout] test ingest::tests::compile_invalid_pattern_returns_error ... ok [INFO] [stdout] test ingest::tests::compile_invalid_anti_pattern_returns_error ... ok [INFO] [stdout] test improve::tests::search_by_body ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_update_equals ... ok [INFO] [stdout] test improve::tests::search_case_insensitive ... ok [INFO] [stdout] test improve::tests::search_by_title ... ok [INFO] [stdout] test improve::tests::show_nonexistent_returns_error ... ok [INFO] [stdout] test ingest::tests::format_system_time_produces_iso8601 ... ok [INFO] [stdout] test improve::tests::update_nonexistent_returns_error ... ok [INFO] [stdout] test improve::tests::search_no_results ... ok [INFO] [stdout] test ingest::tests::format_system_time_recent ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_from_commit_message ... ok [INFO] [stdout] test improve::tests::update_body_and_context ... ok [INFO] [stdout] test improve::tests::update_status ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_none_for_unrelated_text ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_update_claim ... ok [INFO] [stdout] test ingest::tests::multiple_rules_applied ... ok [INFO] [stdout] test ingest::tests::rule_count_tool_commands ... ok [INFO] [stdout] test ingest::tests::rule_count_with_anti_pattern ... ok [INFO] [stdout] test ingest::tests::rule_count_zero_still_emitted ... ok [INFO] [stdout] test ingest::tests::rule_emit_boolean ... ok [INFO] [stdout] test ingest::tests::rule_emit_no_match ... ok [INFO] [stdout] test ingest::tests::rule_first_match_with_capture_group ... ok [INFO] [stdout] test ingest::tests::rule_no_matches_returns_empty ... ok [INFO] [stdout] test improve::tests::show_existing_improvement ... ok [INFO] [stdout] test ingest::tests::rule_source_text ... ok [INFO] [stdout] test ingest::tests::rule_source_raw ... ok [INFO] [stdout] test ingest::tests::rule_transform_trim ... ok [INFO] [stdout] test ingest::tests::rule_transform_int ... ok [INFO] [stdout] test ingest::tests::value_to_event_string_float ... ok [INFO] [stdout] test ingest::tests::value_to_event_string_integer ... ok [INFO] [stdout] test ingest::tests::value_to_event_string_string ... ok [INFO] [stdout] test init::tests::default_commands_rust ... ok [INFO] [stdout] test init::tests::default_commands_unknown_is_empty ... ok [INFO] [stdout] test init::tests::detect_node_project ... ok [INFO] [stdout] test init::tests::detect_go_project ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_close ... ok [INFO] [stdout] test init::tests::detect_rust_project ... ok [INFO] [stdout] test init::tests::detect_unknown_project ... ok [INFO] [stdout] test init::tests::generate_prompt_md_node_commands ... ok [INFO] [stdout] test init::tests::generate_prompt_md_with_commands ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_finish ... ok [INFO] [stdout] test init::tests::generate_prompt_md_without_commands ... ok [INFO] [stdout] test init::tests::guidance_message_existing_prompt ... ok [INFO] [stdout] test init::tests::guidance_message_with_detected_commands_no_llm ... ok [INFO] [stdout] test init::tests::guidance_message_with_llm_customized ... ok [INFO] [stdout] test init::tests::has_anthropic_api_key_returns_false_when_empty ... ok [INFO] [stdout] test init::tests::has_anthropic_api_key_returns_false_when_unset ... ok [INFO] [stdout] test init::tests::has_anthropic_api_key_returns_true_when_set ... ok [INFO] [stdout] test init::tests::guidance_message_unknown_project ... ok [INFO] [stdout] test init::tests::test_agent_profiles_all_unique_names ... ok [INFO] [stdout] test init::tests::detect_python_project_pyproject ... ok [INFO] [stdout] test init::tests::rust_takes_priority_over_node ... ok [INFO] [stdout] test init::tests::test_apply_llm_prompt_result_agent_edited_in_place ... ok [INFO] [stdout] test ingest::tests::attribute_session_no_bead_id_found ... ok [INFO] [stdout] test init::tests::test_apply_llm_prompt_result_none_with_valid_disk ... ok [INFO] [stdout] test init::tests::test_generate_config_toml_aider ... ok [INFO] [stdout] test ingest::tests::extract_bead_id_prefers_claim_over_close ... ok [INFO] [stdout] test init::tests::test_generate_config_toml_rust_claude ... ok [INFO] [stdout] test init::tests::test_apply_llm_prompt_result_valid_output ... ok [INFO] [stdout] test init::tests::test_generate_config_toml_unknown_project ... ok [INFO] [stdout] test init::tests::test_generate_config_toml_node_claude ... ok [INFO] [stdout] test init::tests::test_apply_llm_prompt_result_empty_with_invalid_disk ... ok [INFO] [stdout] test init::tests::test_apply_llm_prompt_result_neither_valid_restores_original ... ok [INFO] [stdout] test init::tests::detect_python_project_requirements ... ok [INFO] [stdout] test integrator::tests::test_check_tripped_returns_none_when_closed ... ok [INFO] [stdout] test integrator::tests::test_chrono_now_utc_format ... ok [INFO] [stdout] test integrator::tests::test_circuit_breaker_default ... ok [INFO] [stdout] test integrator::tests::test_circuit_breaker_exceeds_max ... ok [INFO] [stdout] test integrator::tests::test_circuit_breaker_independent_beads ... ok [INFO] [stdout] test integrator::tests::test_circuit_breaker_reset ... ok [INFO] [stdout] test integrator::tests::test_circuit_state_closed_initial ... ok [INFO] [stdout] test integrator::tests::test_check_tripped_returns_some_when_tripped ... ok [INFO] [stdout] test integrator::tests::test_circuit_state_display ... ok [INFO] [stdout] test integrator::tests::test_circuit_state_retrying_after_one_attempt ... ok [INFO] [stdout] test integrator::tests::test_circuit_state_retrying_after_two_attempts ... ok [INFO] [stdout] test integrator::tests::test_circuit_state_tripped_after_max_attempts ... ok [INFO] [stdout] test init::tests::write_prompt_md_creates_file ... ok [INFO] [stdout] test init::tests::write_prompt_md_skips_existing ... ok [INFO] [stdout] test integrator::tests::test_check_tripped_returns_none_when_not_tripped ... ok [INFO] [stdout] test integrator::tests::test_compiler_check_no_build_system_passes ... ok [INFO] [stdout] test integrator::tests::test_integration_error_display ... ok [INFO] [stdout] test ingest::tests::attribute_session_from_jsonl_content ... ok [INFO] [stdout] test integrator::tests::test_integration_queue_new ... ok [INFO] [stdout] test integrator::tests::test_get_head_commit ... ok [INFO] [stdout] test integrator::tests::test_compiler_check_valid_rust_project ... ok [INFO] [stdout] test integrator::tests::test_git_add_and_commit ... ok [INFO] [stdout] test integrator::tests::test_compiler_check_invalid_rust_project ... ok [INFO] [stdout] test ingest::tests::ingest_session_no_exit_code_omits_event ... ok [INFO] [stdout] test ingest::tests::ingest_real_file_format ... ok [INFO] [stdout] test ingest::tests::ingest_with_raw_adapter ... ok [INFO] [stdout] test integrator::tests::test_fast_forward_main ... ok [INFO] [stdout] test integrator::tests::test_is_leap_year ... ok [INFO] [stdout] test integrator::tests::test_issue_has_open_parent_child_dependencies ... ok [INFO] [stdout] test integrator::tests::test_issue_is_epic_case_insensitive ... ok [INFO] [stdout] test integrator::tests::test_parent_ids_from_issue_supports_show_and_list_shapes ... ok [INFO] [stdout] test ingest::tests::ingest_with_rules_writes_events_and_observation ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_every_one_always_triggers ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_new ... ok [INFO] [stdout] test ingest::tests::attribute_session_accumulates_bead_metrics ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_record_below_threshold ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_reset ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_triggers_at_threshold ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_tracker_zero_every_never_triggers ... ok [INFO] [stdout] test integrator::tests::test_integration_no_changes_trivial_merge ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_no_build_system_passes ... ok [INFO] [stdout] test integrator::tests::test_rollback_result_fields ... ok [INFO] [stdout] test ingest::tests::attribute_session_updates_bead_metrics ... ok [INFO] [stdout] test integrator::tests::test_merge_main_into_branch_no_divergence ... ok [INFO] [stdout] test ingest::tests::ingest_session_writes_observation ... ok [INFO] [stdout] test ingest::tests::ingest_session_writes_events ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_failing_rust_project_flags_beads ... ok [INFO] [stdout] test integrator::tests::test_integration_skips_expansion_event_when_all_files_covered ... ok [INFO] [stdout] test integrator::tests::test_speck_validate_failed_when_json_says_failed ... ok [INFO] [stdout] test integrator::tests::test_spawn_integration_agent_sync ... ok [INFO] [stdout] test integrator::tests::test_tripped_failure_display_message ... ok [INFO] [stdout] test integrator::tests::test_tripped_failure_notes ... ok [INFO] [stdout] test integrator::tests::test_validation_circuit_breaker_independent_from_integration ... ok [INFO] [stdout] test integrator::tests::test_validation_circuit_breaker_state_transitions ... ok [INFO] [stdout] test integrator::tests::test_integration_records_expansion_event_for_uncovered_file ... ok [INFO] [stdout] test integrator::tests::test_validation_circuit_breaker_zero_retries ... ok [INFO] [stdout] test metrics::tests::test_event_log_append_multiple_events ... ok [INFO] [stdout] test integrator::tests::test_spawn_integration_agent_nonexistent_command ... ok [INFO] [stdout] test metrics::tests::test_event_log_error_display ... ok [INFO] [stdout] test integrator::tests::test_integration_skips_expansion_event_without_declared_affected_set ... ok [INFO] [stdout] test metrics::tests::test_session_event_null_exit_code ... ok [INFO] [stdout] test metrics::tests::test_event_log_append_to_nonexistent_dir_fails ... ok [INFO] [stdout] test metrics::tests::test_session_event_serializes_to_json ... ok [INFO] [stdout] test metrics::tests::test_event_log_append_creates_file ... ok [INFO] [stdout] test metrics::tests::test_event_log_path ... ok [INFO] [stdout] test metrics_cmd::tests::beads_no_database ... ok [INFO] [stdout] test integrator::tests::test_rollback_blocked_by_entanglement ... ok [INFO] [stdout] test metrics_cmd::tests::evaluate_target_avg ... ok [INFO] [stdout] test metrics_cmd::tests::evaluate_target_no_data ... ok [INFO] [stdout] test metrics_cmd::tests::evaluate_target_pct_of ... ok [INFO] [stdout] test metrics_cmd::tests::evaluate_target_pct_sessions ... ok [INFO] [stdout] test metrics_cmd::tests::evaluate_target_unknown_compare_mode ... ok [INFO] [stdout] test integrator::tests::test_speck_validate_skipped_when_binary_not_found ... ok [INFO] [stdout] test integrator::tests::test_speck_validate_passed_when_json_says_passed ... ok [INFO] [stdout] test integrator::tests::test_integration_with_compiler_check_no_build_system ... ok [INFO] [stdout] test metrics_cmd::tests::events_no_database ... ok [INFO] [stdout] test integrator::tests::test_reconciliation_valid_rust_project_passes ... ok [INFO] [stdout] test integrator::tests::test_integration_with_merge_conflict ... ok [INFO] [stdout] test integrator::tests::test_integration_with_manifest_application ... ok [INFO] [stdout] test integrator::tests::test_speck_validate_gate_blocks_integration_on_failure ... ok [INFO] [stdout] test metrics_cmd::tests::export_no_database ... ok [INFO] [stdout] test metrics_cmd::tests::beads_empty_database ... ok [INFO] [stdout] test metrics_cmd::tests::beads_single_completed ... ok [INFO] [stdout] test metrics_cmd::tests::beads_with_completed_and_open ... ok [INFO] [stdout] test metrics_cmd::tests::beads_fastest_slowest ... ok [INFO] [stdout] test metrics_cmd::tests::events_all_sessions ... ok [INFO] [stdout] test metrics_cmd::tests::events_nonexistent_session ... ok [INFO] [stdout] test metrics_cmd::tests::export_csv_format ... ok [INFO] [stdout] test metrics_cmd::tests::format_duration_seconds_only ... ok [INFO] [stdout] test metrics_cmd::tests::format_duration_with_minutes ... ok [INFO] [stdout] test metrics_cmd::tests::format_duration_zero ... ok [INFO] [stdout] test metrics_cmd::tests::export_empty_database ... ok [INFO] [stdout] test metrics_cmd::tests::format_target_line_dollar_unit ... ok [INFO] [stdout] test metrics_cmd::tests::format_target_line_miss ... ok [INFO] [stdout] test metrics_cmd::tests::format_target_line_percent_unit ... ok [INFO] [stdout] test metrics_cmd::tests::is_metric_available_tests ... ok [INFO] [stdout] test metrics_cmd::tests::map_severity_to_category_mappings ... ok [INFO] [stdout] test metrics_cmd::tests::events_empty_database ... ok [INFO] [stdout] test integrator::tests::test_rollback_successful ... ok [INFO] [stdout] test metrics_cmd::tests::export_json_format ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_v1_not_found ... ok [INFO] [stdout] test metrics_cmd::tests::parse_session_iteration_jsonl ... ok [INFO] [stdout] test metrics_cmd::tests::parse_session_iteration_non_numeric ... ok [INFO] [stdout] test metrics_cmd::tests::parse_session_iteration_other_ext ... ok [INFO] [stdout] test metrics_cmd::tests::parse_session_iteration_zst ... ok [INFO] [stdout] test ingest::tests::ingest_session_idempotent_observation ... ok [INFO] [stdout] test integrator::tests::test_rollback_forced_despite_entanglement ... ok [INFO] [stdout] test metrics_cmd::tests::query_no_database ... ok [INFO] [stdout] test metrics_cmd::tests::events_filtered_by_session ... ok [INFO] [stdout] test integrator::tests::test_successful_integration ... ok [INFO] [stdout] test metrics_cmd::tests::export_unknown_format ... ok [INFO] [stdout] test metrics_cmd::tests::log_file_not_found ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_empty_v1_database ... ok [INFO] [stdout] test metrics_cmd::tests::rebuild_no_database ... ok [INFO] [stdout] test metrics_cmd::tests::query_avg_mode ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_improvements_with_category ... ok [INFO] [stdout] test metrics_cmd::tests::query_list_mode ... ok [INFO] [stdout] test metrics_cmd::tests::query_no_events ... ok [INFO] [stdout] test metrics_cmd::tests::query_unknown_aggregate ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_empty_sessions_dir ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_sessions_no_exit_code ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_no_sessions_dir ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_requires_last_or_all ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_improvements_with_severity ... ok [INFO] [stdout] test metrics_cmd::tests::query_trend_mode ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_sessions_partial_columns ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_both_sessions_and_improvements ... ok [INFO] [stdout] test metrics_cmd::tests::status_no_database ... ok [INFO] [stdout] test metrics_cmd::tests::migrate_sessions_basic ... ok [INFO] [stdout] test metrics_cmd::tests::query_with_last_limit ... ok [INFO] [stdout] test metrics_cmd::tests::targets_config_from_toml ... ok [INFO] [stdout] test metrics_cmd::tests::log_ingests_jsonl ... ok [INFO] [stdout] test metrics_cmd::tests::rebuild_empty_database ... ok [INFO] [stdout] test metrics_cmd::tests::targets_no_database ... ok [INFO] [stdout] test metrics_cmd::tests::targets_no_rules_configured ... ok [INFO] [stdout] test metrics_cmd::tests::rebuild_regenerates_observations ... ok [INFO] [stdout] test metrics_cmd::tests::rebuild_replaces_stale_observations ... ok [INFO] [stdout] test metrics_cmd::tests::status_with_observations ... ok [INFO] [stdout] test metrics_cmd::tests::status_empty_database ... ok [INFO] [stdout] test metrics_cmd::tests::truncate_bead_id_exact ... ok [INFO] [stdout] test metrics_cmd::tests::truncate_bead_id_short ... ok [INFO] [stdout] test migrate::tests::test_consolidate_moves_database ... ok [INFO] [stdout] test migrate::tests::test_consolidate_moves_harness_db ... ok [INFO] [stdout] test metrics_cmd::tests::truncate_bead_id_long ... ok [INFO] [stdout] test migrate::tests::test_consolidate_moves_status_file ... ok [INFO] [stdout] test migrate::tests::test_consolidate_no_legacy_files ... ok [INFO] [stdout] test migrate::tests::test_consolidate_moves_session_files ... ok [INFO] [stdout] test migrate::tests::test_find_session_files_basic ... ok [INFO] [stdout] test migrate::tests::test_consolidate_skips_existing_files ... ok [INFO] [stdout] test migrate::tests::test_find_session_files_custom_prefix ... ok [INFO] [stdout] test migrate::tests::test_find_session_files_empty_dir ... ok [INFO] [stdout] test migrate::tests::test_move_file_same_filesystem ... ok [INFO] [stdout] test module_detect::tests::crate_with_sibling_modules ... ok [INFO] [stdout] test module_detect::tests::detect_modules_returns_sorted_files ... ok [INFO] [stdout] test module_detect::tests::detect_modules_with_import_graph_input ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_clears_old_events ... ok [INFO] [stdout] test module_detect::tests::empty_project_no_modules ... ok [INFO] [stdout] test module_detect::tests::module_name_derivation ... ok [INFO] [stdout] test module_detect::tests::lib_rs_as_entry_point ... ok [INFO] [stdout] test module_detect::tests::module_without_entry_point ... ok [INFO] [stdout] test metrics_cmd::tests::targets_all_unsupported_shows_summary ... ok [INFO] [stdout] test metrics_cmd::tests::targets_avg_below_fail ... ok [INFO] [stdout] test module_detect::tests::single_main_file ... ok [INFO] [stdout] test module_detect::tests::submodule_detection ... ok [INFO] [stdout] test module_detect::tests::subdir_module_with_mod_rs ... ok [INFO] [stdout] test module_detect::tests::nested_submodules ... ok [INFO] [stdout] test metrics_cmd::tests::status_respects_last_limit ... ok [INFO] [stdout] test metrics_cmd::tests::targets_avg_below_pass ... ok [INFO] [stdout] test pool::tests::test_pool_error_display ... ok [INFO] [stdout] test metrics_cmd::tests::targets_empty_database ... ok [INFO] [stdout] test metrics_cmd::tests::targets_pct_of_pass ... ok [INFO] [stdout] test metrics_cmd::tests::targets_multiple_rules_mixed_results ... ok [INFO] [stdout] test metrics_cmd::tests::log_auto_increments_session ... ok [INFO] [stdout] test pool::tests::test_completed_workers_empty_initially ... ok [INFO] [stdout] test pool::tests::test_active_worktree_paths_empty_initially ... ok [INFO] [stdout] test pool::tests::test_worker_state_roundtrip ... ok [INFO] [stdout] test metrics_cmd::tests::targets_pct_sessions_pass ... ok [INFO] [stdout] test metrics_cmd::tests::targets_unsupported_metric_shows_na ... ok [INFO] [stdout] test preflight::tests::test_has_fatal ... ok [INFO] [stdout] test preflight::tests::test_is_clean ... ok [INFO] [stdout] test preflight::tests::test_git_repo_present ... ok [INFO] [stdout] test pool::tests::test_new_pool_all_idle ... ok [INFO] [stdout] test preflight::tests::test_no_git_remote ... ok [INFO] [stdout] test preflight::tests::test_missing_prompt_file ... ok [INFO] [stdout] test preflight::tests::test_no_git_repo ... ok [INFO] [stdout] test preflight::tests::test_stream_json_with_verbose ... ok [INFO] [stdout] test progress::tests::resolve_body_from_file ... ok [INFO] [stdout] test progress::tests::resolve_body_from_text ... ok [INFO] [stdout] test pool::tests::test_is_single_agent ... ok [INFO] [stdout] test progress::tests::resolve_body_rejects_multiple_sources ... ok [INFO] [stdout] test prompt::tests::test_assemble_all_commands_empty_returns_raw_prompt ... ok [INFO] [stdout] test preflight::tests::test_stream_json_without_verbose ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_compressed_zst_file ... ok [INFO] [stdout] test prompt::tests::test_assemble_missing_prompt_file ... ok [INFO] [stdout] test prompt::tests::test_assemble_multiline_command_output ... ok [INFO] [stdout] test prompt::tests::test_assemble_no_db_skips_brief ... ok [INFO] [stdout] test prompt::tests::test_assemble_no_prepend_commands ... ok [INFO] [stdout] test prompt::tests::test_assemble_nonzero_exit_still_captures_output ... ok [INFO] [stdout] test pool::tests::test_reset_coding_worker_fails ... ok [INFO] [stdout] test prompt::tests::test_assemble_skips_empty_command_output ... ok [INFO] [stdout] test progress::tests::list_and_show_return_correct_data ... ok [INFO] [stdout] test prompt::tests::test_assemble_uses_fallback_when_no_file ... ok [INFO] [stdout] test prompt::tests::test_assemble_whitespace_only_output_is_skipped ... ok [INFO] [stdout] test prompt::tests::test_assemble_with_prompt_file_override ... ok [INFO] [stdout] test pool::tests::test_no_idle_worker_error ... ok [INFO] [stdout] test progress::tests::add_saves_entry_with_and_without_bead_id ... ok [INFO] [stdout] test prompt::tests::test_run_prepend_command_empty ... ok [INFO] [stdout] test prompt::tests::test_assemble_with_multiple_prepend_commands ... ok [INFO] [stdout] test prompt::tests::test_assemble_with_single_prepend_command ... ok [INFO] [stdout] test prompt::tests::test_assemble_empty_db_skips_brief ... ok [INFO] [stdout] test public_api::tests::empty_module_no_symbols ... ok [INFO] [stdout] test public_api::tests::extract_identifier_basic ... ok [INFO] [stdout] test prompt::tests::test_run_prepend_command_success ... ok [INFO] [stdout] test public_api::tests::extract_pub_async_fn ... ok [INFO] [stdout] test public_api::tests::clean_signature_preserves_semicolon ... ok [INFO] [stdout] test public_api::tests::clean_signature_removes_brace ... ok [INFO] [stdout] test public_api::tests::extract_pub_fn ... ok [INFO] [stdout] test public_api::tests::extract_pub_struct ... ok [INFO] [stdout] test public_api::tests::extract_pub_trait ... ok [INFO] [stdout] test public_api::tests::extract_pub_type_alias ... ok [INFO] [stdout] test public_api::tests::extract_pub_const_and_static ... ok [INFO] [stdout] test public_api::tests::extract_pub_enum ... ok [INFO] [stdout] test public_api::tests::format_boundary_signatures_output ... ok [INFO] [stdout] test public_api::tests::multiline_block_comment_skips_pub ... ok [INFO] [stdout] test public_api::tests::multiple_symbols_one_file ... ok [INFO] [stdout] test public_api::tests::pub_struct_tuple ... ok [INFO] [stdout] test public_api::tests::pub_struct_with_semicolon ... ok [INFO] [stdout] test public_api::tests::skip_attributes ... ok [INFO] [stdout] test public_api::tests::skip_block_comments ... ok [INFO] [stdout] test public_api::tests::skip_comments ... ok [INFO] [stdout] test public_api::tests::skip_private_items ... ok [INFO] [stdout] test public_api::tests::skip_pub_crate ... ok [INFO] [stdout] test public_api::tests::skip_pub_in_path ... ok [INFO] [stdout] test public_api::tests::skip_pub_super ... ok [INFO] [stdout] test ratelimit::tests::test_auth_failure_expired_key ... ok [INFO] [stdout] test public_api::tests::extract_module_api_from_files ... ok [INFO] [stdout] test prompt::tests::test_assemble_brief_without_prepend_commands ... ok [INFO] [stdout] test ratelimit::tests::test_auth_failure_invalid_x_api_key ... ok [INFO] [stdout] test ratelimit::tests::test_auth_failure_missing_file ... ok [INFO] [stdout] test public_api::tests::extract_public_apis_multiple_modules ... ok [INFO] [stdout] test ratelimit::tests::test_backoff_delay_basic ... ok [INFO] [stdout] test ratelimit::tests::test_backoff_delay_capped ... ok [INFO] [stdout] test ratelimit::tests::test_backoff_delay_overflow_safe ... ok [INFO] [stdout] test public_api::tests::symbols_sorted_by_kind_then_name ... ok [INFO] [stdout] test ratelimit::tests::test_backoff_delay_zero_initial ... ok [INFO] [stdout] test ratelimit::tests::test_claude_auth_failure_detected_from_error_field ... ok [INFO] [stdout] test ratelimit::tests::test_claude_auth_failure_detected_from_result_text ... ok [INFO] [stdout] test ratelimit::tests::test_auth_failure_from_file ... ok [INFO] [stdout] test public_api::tests::extract_from_files_convenience ... ok [INFO] [stdout] test prompt::tests::test_assemble_injects_brief_after_prepend ... ok [INFO] [stdout] test pool::tests::test_session_files_use_numeric_naming ... ok [INFO] [stdout] test ratelimit::tests::test_detect_no_rate_limit_from_file_successful_session ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_all_jsonl_files ... ok [INFO] [stdout] test ratelimit::tests::test_detect_rate_limit_missing_file ... ok [INFO] [stdout] test ratelimit::tests::test_empty_content_not_rate_limited ... ok [INFO] [stdout] test prompt::tests::test_assemble_passes_targets_config_to_brief ... ok [INFO] [stdout] test ratelimit::tests::test_codex_error_event_without_rate_limit ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_with_rate_limit_case_insensitive ... ok [INFO] [stdout] test ratelimit::tests::test_codex_error_event_with_usage_limit ... ok [INFO] [stdout] test ratelimit::tests::test_detect_rate_limit_from_file_with_error_result ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_with_hit_your_limit ... ok [INFO] [stdout] test ratelimit::tests::test_codex_turn_failed_with_usage_limit ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_with_rate_limit_detected ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_with_rate_limit_json_error ... ok [INFO] [stdout] test ratelimit::tests::test_extract_api_key_source_missing_file ... ok [INFO] [stdout] test ratelimit::tests::test_extract_api_key_source_present ... ok [INFO] [stdout] test ratelimit::tests::test_extract_api_key_source_not_present ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_with_usage_limit ... ok [INFO] [stdout] test ratelimit::tests::test_error_result_without_rate_limit_keywords ... ok [INFO] [stdout] test ratelimit::tests::test_malformed_result_line_not_rate_limited ... ok [INFO] [stdout] test ratelimit::tests::test_multiple_result_events_uses_last ... ok [INFO] [stdout] test ratelimit::tests::test_no_result_event_not_rate_limited ... ok [INFO] [stdout] test ratelimit::tests::test_successful_result_with_rate_limit_in_result_text ... ok [INFO] [stdout] test ratelimit::tests::test_successful_session_with_rate_limit_in_tool_output ... ok [INFO] [stdout] test ratelimit::tests::test_normal_error_not_auth_failure ... ok [INFO] [stdout] test retention::tests::test_delete_after_ingest ... ok [INFO] [stdout] test retention::tests::test_delete_after_ingest_nonexistent_file ... ok [INFO] [stdout] test ratelimit::tests::test_successful_session_never_rate_limited ... ok [INFO] [stdout] test ratelimit::tests::test_successful_session_not_auth_failure ... ok [INFO] [stdout] test retention::tests::test_enforce_after_ingest_does_nothing_in_cleanup ... ok [INFO] [stdout] test retention::tests::test_enforce_days_deletes_old_files ... ok [INFO] [stdout] test retention::tests::test_enforce_all_does_nothing ... ok [INFO] [stdout] test retention::tests::test_enforce_last_n_no_deletion_when_under_limit ... ok [INFO] [stdout] test retention::tests::test_missing_sessions_directory ... ok [INFO] [stdout] test retention::tests::test_parse_session_iteration_jsonl ... ok [INFO] [stdout] test retention::tests::test_non_session_files_ignored ... ok [INFO] [stdout] test retention::tests::test_parse_session_iteration_other_ext ... ok [INFO] [stdout] test retention::tests::test_parse_session_iteration_zst ... ok [INFO] [stdout] test retry::tests::test_exact_threshold_proceeds ... ok [INFO] [stdout] test retry::tests::test_min_output_zero_always_proceeds ... ok [INFO] [stdout] test retry::tests::test_proceed_after_retry_when_output_recovers ... ok [INFO] [stdout] test retry::tests::test_proceed_does_not_increment_attempt ... ok [INFO] [stdout] test retention::tests::test_parse_session_iteration_non_numeric ... ok [INFO] [stdout] test retry::tests::test_proceed_when_output_sufficient ... ok [INFO] [stdout] test retry::tests::test_reset_clears_attempt_counter ... ok [INFO] [stdout] test retention::tests::test_enforce_last_n_deletes_oldest ... ok [INFO] [stdout] test retry::tests::test_retry_when_output_below_threshold ... ok [INFO] [stdout] test retry::tests::test_retry_when_output_empty ... ok [INFO] [stdout] test retry::tests::test_skip_after_max_retries_exhausted ... ok [INFO] [stdout] test scheduler::tests::assignable_all_overlap ... ok [INFO] [stdout] test scheduler::tests::assignable_bead_with_no_globs_and_no_in_progress ... ok [INFO] [stdout] test scheduler::tests::assignable_disjoint_globs_all_assignable ... ok [INFO] [stdout] test scheduler::tests::assignable_multiple_in_progress_combined_locks ... ok [INFO] [stdout] test scheduler::tests::assignable_no_affected_set_on_bead_allowed_optimistically ... ok [INFO] [stdout] test scheduler::tests::assignable_no_in_progress_returns_all ... ok [INFO] [stdout] test scheduler::tests::assignable_no_ready_beads_returns_empty ... ok [INFO] [stdout] test scheduler::tests::assignable_overlapping_filtered_out ... ok [INFO] [stdout] test scheduler::tests::assignable_preserves_order ... ok [INFO] [stdout] test scheduler::tests::assignable_skips_already_assigned_beads ... ok [INFO] [stdout] test retry::tests::test_zero_max_retries_skips_immediately ... ok [INFO] [stdout] test scheduler::tests::assignable_skips_already_assigned_even_with_globs ... ok [INFO] [stdout] test scheduler::tests::overlap_both_empty ... ok [INFO] [stdout] test scheduler::tests::overlap_different_exact_files ... ok [INFO] [stdout] test scheduler::tests::overlap_disjoint_directories ... ok [INFO] [stdout] test scheduler::tests::overlap_empty_b_matches_everything ... ok [INFO] [stdout] test scheduler::tests::overlap_glob_contains_file ... ok [INFO] [stdout] test scheduler::tests::overlap_multiple_globs_none_overlap ... ok [INFO] [stdout] test scheduler::tests::overlap_multiple_globs_one_overlaps ... ok [INFO] [stdout] test scheduler::tests::overlap_nested_globs ... ok [INFO] [stdout] test scheduler::tests::overlap_root_wildcard ... ok [INFO] [stdout] test scheduler::tests::overlap_same_exact_file ... ok [INFO] [stdout] test scheduler::tests::assignable_no_affected_set_on_in_progress_does_not_lock ... ok [INFO] [stdout] test scheduler::tests::pair_both_wildcards_overlap ... ok [INFO] [stdout] test scheduler::tests::pair_exact_different ... ok [INFO] [stdout] test scheduler::tests::pair_exact_same ... ok [INFO] [stdout] test scheduler::tests::pair_both_wildcards_no_overlap ... ok [INFO] [stdout] test scheduler::tests::pair_glob_vs_file_no_overlap ... ok [INFO] [stdout] test scheduler::tests::parse_case_insensitive ... ok [INFO] [stdout] test scheduler::tests::parse_empty_affected_line ... ok [INFO] [stdout] test scheduler::tests::pair_glob_vs_file_overlap ... ok [INFO] [stdout] test scheduler::tests::overlap_empty_a_matches_everything ... ok [INFO] [stdout] test scheduler::tests::parse_empty_design ... ok [INFO] [stdout] test scheduler::tests::parse_multiple_globs ... ok [INFO] [stdout] test scheduler::tests::parse_no_affected_line ... ok [INFO] [stdout] test scheduler::tests::parse_whitespace_handling ... ok [INFO] [stdout] test scheduler::tests::prefix_bracket ... ok [INFO] [stdout] test scheduler::tests::prefix_double_star ... ok [INFO] [stdout] test scheduler::tests::parse_with_surrounding_text ... ok [INFO] [stdout] test scheduler::tests::prefix_question_mark ... ok [INFO] [stdout] test scheduler::tests::prefix_star_only ... ok [INFO] [stdout] test scheduler::tests::schedule_next_none_when_all_conflict ... ok [INFO] [stdout] test scheduler::tests::parse_single_glob ... ok [INFO] [stdout] test scheduler::tests::prefix_no_wildcards ... ok [INFO] [stdout] test scheduler::tests::schedule_next_picks_first_assignable ... ok [INFO] [stdout] test scheduler::tests::schedule_next_picks_highest_priority_when_all_free ... ok [INFO] [stdout] test scheduler::tests::strip_ci_exact ... ok [INFO] [stdout] test scheduler::tests::schedule_next_none_when_empty ... ok [INFO] [stdout] test scheduler::tests::schedule_next_none_when_no_ready_beads ... ok [INFO] [stdout] test scheduler::tests::strip_ci_match ... ok [INFO] [stdout] test metrics_cmd::tests::reingest_last_n_only ... ok [INFO] [stdout] test scheduler::tests::strip_ci_no_match ... ok [INFO] [stdout] test ratelimit::tests::test_codex_quota_purchase_credits ... ok [INFO] [stdout] test ratelimit::tests::test_codex_quota_upgrade_to_pro ... ok [INFO] [stdout] test ratelimit::tests::test_claude_quota_exhaustion_detected ... ok [INFO] [stdout] test ratelimit::tests::test_transient_rate_limit_not_quota ... ok [INFO] [stdout] test ratelimit::tests::test_quota_from_file ... ok [INFO] [stdout] test ratelimit::tests::test_no_quota_from_normal_failure ... ok [INFO] [stdout] test ratelimit::tests::test_codex_quota_exhaustion_detected ... ok [INFO] [stdout] test pool::tests::test_spawn_worker_single_agent_no_worktree ... ok [INFO] [stdout] test serve::tests::test_api_metrics_summary ... ok [INFO] [stdout] test serve::tests::test_api_session_detail ... ok [INFO] [stdout] test pool::tests::test_reset_worker_after_completion ... ok [INFO] [stdout] test session::tests::test_build_args_multiple_placeholders ... ok [INFO] [stdout] test session::tests::test_build_args_no_placeholder ... ok [INFO] [stdout] test session::tests::test_build_args_prompt_file_placeholder ... ok [INFO] [stdout] test session::tests::test_build_args_replaces_prompt_placeholder ... ok [INFO] [stdout] test session::tests::test_output_file_path ... ok [INFO] [stdout] test session::tests::test_output_file_path_default_dir ... ok [INFO] [stdout] test session::tests::test_run_session_bad_output_path ... ok [INFO] [stdout] test session::tests::test_run_session_captures_stderr ... ok [INFO] [stdout] test serve::tests::test_api_status_with_file ... ok [INFO] [stdout] test pool::tests::test_spawn_worker_and_poll_completion ... ok [INFO] [stdout] test session::tests::test_run_session_echo_command ... ok [INFO] [stdout] test session::tests::test_run_session_nonzero_exit ... ok [INFO] [stdout] test pool::tests::test_multiple_workers_concurrent ... ok [INFO] [stdout] test serve::tests::test_transcript_not_found ... ok [INFO] [stdout] test session::tests::test_run_session_prompt_via_file ... ok [INFO] [stdout] test session::tests::test_run_session_prompt_via_stdin ... ok [INFO] [stdout] test serve::tests::test_stream_not_found ... ok [INFO] [stdout] test signal_correlator::tests::compute_smells_thresholds ... ok [INFO] [stdout] test session::tests::test_run_session_spawn_failure ... ok [INFO] [stdout] test serve::tests::test_api_project ... ok [INFO] [stdout] test serve::tests::test_transcript_compressed_session ... ok [INFO] [stdout] test pool::tests::test_spawn_worker_failed_exit ... ok [INFO] [stdout] test serve::tests::test_api_sessions_empty ... ok [INFO] [stdout] test serve::tests::test_api_session_detail_not_found ... ok [INFO] [stdout] test session::tests::test_run_session_duration_is_reasonable ... ok [INFO] [stdout] test serve::tests::test_api_sessions_with_data ... ok [INFO] [stdout] test serve::tests::test_api_status_no_file ... ok [INFO] [stdout] test signals::tests::test_child_pid_management ... ok [INFO] [stdout] test signals::tests::test_force_kill_flag ... ok [INFO] [stdout] test signals::tests::test_handler_is_clone ... ok [INFO] [stdout] test session::tests::test_run_session_reports_correct_byte_count ... ok [INFO] [stdout] test signals::tests::test_request_shutdown ... ok [INFO] [stdout] test signals::tests::test_initial_state ... ok [INFO] [stdout] test signals::tests::test_stop_file_detected_and_deleted ... ok [INFO] [stdout] test serve::tests::test_stream_completed_session_replays_turns ... ok [INFO] [stdout] test signals::tests::test_stop_file_sets_shutdown_flag ... ok [INFO] [stdout] test signals::tests::test_stop_file_not_present ... ok [INFO] [stdout] test signals::tests::test_wait_for_force_kill_returns_immediately_when_set ... ok [INFO] [stdout] test singleton::tests::test_acquire_and_release ... ok [INFO] [stdout] test singleton::tests::test_double_acquire_fails ... ok [INFO] [stdout] test singleton::tests::test_lock_released_on_drop ... ok [INFO] [stdout] test singleton::tests::test_read_pid_from_lock_missing_file ... ok [INFO] [stdout] test singleton::tests::test_read_pid_from_lock_garbage ... ok [INFO] [stdout] test skills::tests::test_install_creates_skills ... ok [INFO] [stdout] test skills::tests::test_install_is_idempotent ... ok [INFO] [stdout] test status::tests::test_deserialize_error_display ... ok [INFO] [stdout] test status::tests::test_all_harness_states_serialize ... ok [INFO] [stdout] test status::tests::test_display_status_no_file ... ok [INFO] [stdout] test serve::tests::test_api_sessions_last_param ... ok [INFO] [stdout] test status::tests::test_display_status_multi_worker_label ... ok [INFO] [stdout] test status::tests::test_display_status_with_data ... ok [INFO] [stdout] test status::tests::test_format_duration_f64_hours ... ok [INFO] [stdout] test status::tests::test_format_duration_f64_minutes ... ok [INFO] [stdout] test status::tests::test_format_duration_f64_seconds ... ok [INFO] [stdout] test status::tests::test_format_uptime ... ok [INFO] [stdout] test status::tests::test_harness_state_display_labels ... ok [INFO] [stdout] test status::tests::test_format_bytes ... ok [INFO] [stdout] test status::tests::test_read_error_display ... ok [INFO] [stdout] test status::tests::test_status_error_display ... ok [INFO] [stdout] test status::tests::test_status_file_atomic_write ... ok [INFO] [stdout] test status::tests::test_status_file_read_invalid_json ... ok [INFO] [stdout] test status::tests::test_status_file_read_missing_returns_none ... ok [INFO] [stdout] test status::tests::test_status_file_overwrite ... ok [INFO] [stdout] test status::tests::test_status_file_read_roundtrip ... ok [INFO] [stdout] test status::tests::test_status_file_remove ... ok [INFO] [stdout] test status::tests::test_status_file_write_to_nonexistent_dir_fails ... ok [INFO] [stdout] test structural_metrics::tests::api_surface_width_counted ... ok [INFO] [stdout] test status::tests::test_status_tracker_lifecycle ... ok [INFO] [stdout] test signals::tests::test_wait_for_force_kill_wakes_on_notify ... ok [INFO] [stdout] test structural_metrics::tests::empty_project ... ok [INFO] [stdout] test structural_metrics::tests::boundary_violations_counted_per_module ... ok [INFO] [stdout] test structural_metrics::tests::fan_in_scores_populated ... ok [INFO] [stdout] test structural_metrics::tests::cycle_detection_populates_in_cycle ... ok [INFO] [stdout] test structural_metrics::tests::file_line_counts ... ok [INFO] [stdout] test structural_metrics::tests::god_file_detection_flagged ... ok [INFO] [stdout] test structural_metrics::tests::multiple_modules_all_metrics ... ok [INFO] [stdout] test structural_metrics::tests::module_total_lines_aggregated ... ok [INFO] [stdout] test structural_metrics::tests::single_file_project ... ok [INFO] [stdout] test structural_metrics::tests::no_cycles_in_dag ... ok [INFO] [stdout] test task_manifest::tests::test_apply_cargo_toml_dev_dependency ... ok [INFO] [stdout] test task_manifest::tests::test_apply_cargo_toml_new_dep ... ok [INFO] [stdout] test task_manifest::tests::test_apply_falls_back_to_main_rs ... ok [INFO] [stdout] test task_manifest::tests::test_apply_cargo_toml_existing_dep_skipped ... ok [INFO] [stdout] test task_manifest::tests::test_apply_lib_rs_idempotent ... ok [INFO] [stdout] test task_manifest::tests::test_apply_lib_rs_mod_declarations ... ok [INFO] [stdout] test task_manifest::tests::test_apply_full_manifest ... ok [INFO] [stdout] test task_manifest::tests::test_apply_mod_rs_additions ... ok [INFO] [stdout] test task_manifest::tests::test_apply_ts_index_additions ... ok [INFO] [stdout] test task_manifest::tests::test_cargo_toml_not_found ... ok [INFO] [stdout] test task_manifest::tests::test_parse_empty ... ok [INFO] [stdout] test task_manifest::tests::test_apply_then_reverse_roundtrip ... ok [INFO] [stdout] test task_manifest::tests::test_parse_file_not_found ... ok [INFO] [stdout] test task_manifest::tests::test_parse_full_manifest ... ok [INFO] [stdout] test task_manifest::tests::test_parse_invalid_kind ... ok [INFO] [stdout] test task_manifest::tests::test_reverse_cargo_toml_dependency ... ok [INFO] [stdout] test task_manifest::tests::test_parse_file ... ok [INFO] [stdout] test serve::tests::test_transcript_returns_turns ... ok [INFO] [stdout] test task_manifest::tests::test_reverse_already_absent ... ok [INFO] [stdout] test task_manifest::tests::test_reverse_nonexistent_file ... ok [INFO] [stdout] test task_manifest::tests::test_reverse_lib_rs_additions ... ok [INFO] [stdout] test tests::test_adapter_info_explicit_adapter ... ok [INFO] [stdout] test tests::test_adapter_list ... ok [INFO] [stdout] test tests::test_adapter_test_with_claude_jsonl ... ok [INFO] [stdout] test tests::test_adapter_info_default_config ... ok [INFO] [stdout] test task_manifest::tests::test_reverse_mod_rs_addition ... ok [INFO] [stdout] test tests::test_adapter_test_with_empty_file ... ok [INFO] [stdout] test tests::test_adapter_test_with_raw_adapter ... ok [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: will change to "main" in Git 3.0. To configure the initial branch name [INFO] [stderr] hint: to use in all of your new repositories, which will suppress this warning, [INFO] [stderr] hint: call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stderr] hint: [INFO] [stderr] hint: Disable this message with "git config set advice.defaultBranchName false" [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpq1dhQf/repo/.git/ [INFO] [stdout] [master (root-commit) a03bb17] init [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test signal_correlator::tests::candidate_threshold_filters_low_scores ... ok [INFO] [stdout] test signal_correlator::tests::empty_database_no_candidates ... ok [INFO] [stdout] test signal_correlator::tests::structural_only_no_historical_no_candidate ... ok [INFO] [stdout] test signal_correlator::tests::correlation_report_totals ... ok [INFO] [stdout] test tests::test_parse_bead_ids_from_bd_json ... ok [INFO] [stdout] test signal_correlator::tests::both_signals_produces_candidate ... ok [INFO] [stdout] test signal_correlator::tests::recency_weighting_applied ... ok [INFO] [stdout] test signal_correlator::tests::empty_structural_report ... ok [INFO] [stdout] test signal_correlator::tests::historical_only_no_structural_no_candidate ... ok [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: will change to "main" in Git 3.0. To configure the initial branch name [INFO] [stderr] hint: to use in all of your new repositories, which will suppress this warning, [INFO] [stderr] hint: call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stderr] hint: [INFO] [stderr] hint: Disable this message with "git config set advice.defaultBranchName false" [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpcwTko1/repo/.git/ [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stderr] hint: will change to "main" in Git 3.0. To configure the initial branch name [INFO] [stderr] hint: to use in all of your new repositories, which will suppress this warning, [INFO] [stderr] hint: call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stderr] hint: [INFO] [stderr] hint: Disable this message with "git config set advice.defaultBranchName false" [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpzbOiXY/repo/.git/ [INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name [INFO] [stdout] Initialized empty Git repository in /tmp/.tmpLELEA6/repo/.git/ [INFO] [stderr] hint: will change to "main" in Git 3.0. To configure the initial branch name [INFO] [stderr] hint: to use in all of your new repositories, which will suppress this warning, [INFO] [stderr] hint: call: [INFO] [stderr] hint: [INFO] [stderr] hint: git config --global init.defaultBranch [INFO] [stderr] hint: [INFO] [stderr] hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and [INFO] [stderr] hint: 'development'. The just-created branch can be renamed via this command: [INFO] [stderr] hint: [INFO] [stderr] hint: git branch -m [INFO] [stderr] hint: [INFO] [stderr] hint: Disable this message with "git config set advice.defaultBranchName false" [INFO] [stdout] test signal_correlator::tests::confidence_scales_with_signal_count ... ok [INFO] [stdout] test signal_correlator::tests::integration_iterations_contribute_to_score ... ok [INFO] [stderr] Preparing worktree (detached HEAD a03bb17) [INFO] [stdout] [master (root-commit) a03bb17] init [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test status::tests::test_display_status_with_db ... ok [INFO] [stderr] Preparing worktree (detached HEAD a03bb17) [INFO] [stdout] [master (root-commit) a03bb17] init [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test signal_correlator::tests::multiple_modules_ranked_by_score ... ok [INFO] [stderr] Preparing worktree (detached HEAD a03bb17) [INFO] [stdout] test watchdog::tests::test_file_size_empty_file ... ok [INFO] [stdout] HEAD is now at a03bb17 init [INFO] [stdout] test watchdog::tests::test_file_size_existing_file ... ok [INFO] [stdout] test watchdog::tests::test_file_size_nonexistent ... ok [INFO] [stdout] HEAD is now at a03bb17 init [INFO] [stdout] HEAD is now at a03bb17 init [INFO] [stdout] test tests::test_resolve_storage_data_dir_respects_non_default_config_path ... ok [INFO] [stdout] test watchdog::tests::test_monitor_cancelled_returns_process_exited ... ok [INFO] [stdout] test tests::test_integration_log_empty ... ok [INFO] [stdout] test tests::test_resolve_storage_data_dir_shared_between_main_and_worktree ... ok [INFO] [stdout] [master (root-commit) a03bb17] init [INFO] [stdout] 1 file changed, 1 insertion(+) [INFO] [stdout] create mode 100644 README.md [INFO] [stdout] test tests::test_integration_log_with_entries ... ok [INFO] [stderr] Preparing worktree (detached HEAD a03bb17) [INFO] [stdout] HEAD is now at a03bb17 init [INFO] [stdout] test tests::test_integration_log_with_last ... ok [INFO] [stdout] test tests::test_integration_retry_no_failed_assignment ... ok [INFO] [stdout] test tests::test_integration_rollback_already_rolled_back ... ok [INFO] [stdout] test worktree::tests::test_cleanup_temp_files_no_panic_on_nonexistent ... ok [INFO] [stdout] test worktree::tests::test_branch_exists_true ... ok [INFO] [stdout] test worktree::tests::test_cleanup_temp_files_removes_matching_dir ... ok [INFO] [stdout] test tests::test_integration_rollback_no_integration_found ... ok [INFO] [stdout] test tests::test_reap_stale_active_assignments_marks_integrated ... ok [INFO] [stdout] test worktree::tests::test_cleanup_orphans ... ok [INFO] [stdout] test tests::test_workers_kill_no_active_assignment ... ok [INFO] [stdout] test worktree::tests::test_branch_exists_false ... ok [INFO] [stdout] test worktree::tests::test_worktree_error_display ... ok [INFO] [stdout] test worktree::tests::test_worktree_name ... ok [INFO] [stdout] test worktree::tests::test_worktree_path ... ok [INFO] [stdout] test tests::test_workers_kill_marks_as_failed ... ok [INFO] [stdout] test tests::test_workers_status_empty ... ok [INFO] [stdout] test tests::test_workers_status_with_active ... ok [INFO] [stdout] test worktree::tests::test_create_and_remove_worktree ... ok [INFO] [stdout] test worktree::tests::test_create_branch_not_found ... ok [INFO] [stdout] test worktree::tests::test_cleanup_orphans_empty_dir ... ok [INFO] [stdout] test worktree::tests::test_create_already_exists ... ok [INFO] [stdout] test worktree::tests::test_remove_nonexistent_is_ok ... ok [INFO] [stdout] test tests::test_improve_commands_share_db_between_main_and_worktree ... ok [INFO] [stdout] test worktree::tests::test_cleanup_orphans_nonexistent_dir ... ok [INFO] [stdout] test worktree::tests::test_prune ... ok [INFO] [stdout] test tests::test_progress_commands_share_db_between_main_and_worktree ... ok [INFO] [stdout] test worktree::tests::test_list_worktrees ... ok [INFO] [stdout] test watchdog::tests::test_monitor_kills_stale_process ... ok [INFO] [stdout] test watchdog::tests::test_monitor_resets_on_growth ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1206 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 21.28s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b", kill_on_drop: false }` [INFO] [stdout] c7630d3729b7b6740992c9fd5a1efbe747b65008cac89a67dbcc9b7fba9fda0b