[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 master#f9988fefd3add01f414f52b414308e7872622fee for pr-155114
[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 f9988fefd3add01f414f52b414308e7872622fee
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "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" "+f9988fefd3add01f414f52b414308e7872622fee" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-embed-utils v8.11.0
[INFO] [stderr]   Downloaded unicode-ident v1.0.23
[INFO] [stderr]   Downloaded rust-embed-impl v8.11.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.58
[INFO] [stderr]   Downloaded redox_syscall v0.7.1
[INFO] [stderr]   Downloaded quinn-udp v0.5.14
[INFO] [stderr]   Downloaded tempfile v3.25.0
[INFO] [stderr]   Downloaded anyhow v1.0.101
[INFO] [stderr]   Downloaded clap v4.5.58
[INFO] [stderr]   Downloaded rustls-webpki v0.103.9
[INFO] [stderr]   Downloaded quinn v0.11.9
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.39
[INFO] [stderr]   Downloaded cc v1.2.56
[INFO] [stderr]   Downloaded iri-string v0.7.10
[INFO] [stderr]   Downloaded clap_builder v4.5.58
[INFO] [stderr]   Downloaded syn v2.0.115
[INFO] [stderr]   Downloaded webpki-roots v1.0.6
[INFO] [stderr]   Downloaded quinn-proto v0.11.13
[INFO] [stderr]   Downloaded chrono v0.4.43
[INFO] [stderr]   Downloaded zerocopy v0.8.39
[INFO] [stderr]   Downloaded rustls v0.23.36
[INFO] [stderr]   Downloaded web-sys v0.3.85
[INFO] [stderr]   Downloaded rust-embed v8.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 93d8afd7f2b6d9151a8417ef0d696d46bc1ae341f65ad5466900f0463182f983
[INFO] running `Command { std: "docker" "start" "-a" "93d8afd7f2b6d9151a8417ef0d696d46bc1ae341f65ad5466900f0463182f983", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "93d8afd7f2b6d9151a8417ef0d696d46bc1ae341f65ad5466900f0463182f983", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "93d8afd7f2b6d9151a8417ef0d696d46bc1ae341f65ad5466900f0463182f983", kill_on_drop: false }`
[INFO] [stdout] 93d8afd7f2b6d9151a8417ef0d696d46bc1ae341f65ad5466900f0463182f983
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dacbbebd1a1cf894ee2e90faf39cda7acff3ef30ccb1b88e0bb6f5fc421065e1
[INFO] running `Command { std: "docker" "start" "-a" "dacbbebd1a1cf894ee2e90faf39cda7acff3ef30ccb1b88e0bb6f5fc421065e1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[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 find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[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 zerocopy v0.8.39
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling httparse v1.10.1
[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 autocfg v1.5.0
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling anstyle-parse v0.2.7
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling colorchoice v1.0.4
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling pin-utils v0.1.0
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling syn v2.0.115
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling clap_builder v4.5.58
[INFO] [stderr]    Compiling thread_local v1.1.9
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling matchit v0.8.4
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling fs2 v0.4.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[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 hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[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 zstd v0.13.3
[INFO] [stderr]    Compiling tokio v1.49.0
[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 serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[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 toml v0.8.23
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling axum v0.8.8
[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<Vec<Regex>, 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<String>, post_session: Vec<String>) -> 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<Vec<Regex>> = 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<u64> {
[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<String> {
[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 28s
[INFO] running `Command { std: "docker" "inspect" "dacbbebd1a1cf894ee2e90faf39cda7acff3ef30ccb1b88e0bb6f5fc421065e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dacbbebd1a1cf894ee2e90faf39cda7acff3ef30ccb1b88e0bb6f5fc421065e1", kill_on_drop: false }`
[INFO] [stdout] dacbbebd1a1cf894ee2e90faf39cda7acff3ef30ccb1b88e0bb6f5fc421065e1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f41ae38496ae72875ab6b677c1c7de8a8501a264603649bbb83748619d1afd8
[INFO] running `Command { std: "docker" "start" "-a" "7f41ae38496ae72875ab6b677c1c7de8a8501a264603649bbb83748619d1afd8", 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.30s
[INFO] running `Command { std: "docker" "inspect" "7f41ae38496ae72875ab6b677c1c7de8a8501a264603649bbb83748619d1afd8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f41ae38496ae72875ab6b677c1c7de8a8501a264603649bbb83748619d1afd8", kill_on_drop: false }`
[INFO] [stdout] 7f41ae38496ae72875ab6b677c1c7de8a8501a264603649bbb83748619d1afd8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+f9988fefd3add01f414f52b414308e7872622fee" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 8e0e560fa547b07bef961fe1dc01b3b991c0382bc88368d2bb30be17a5b52ab7
[INFO] running `Command { std: "docker" "start" "-a" "8e0e560fa547b07bef961fe1dc01b3b991c0382bc88368d2bb30be17a5b52ab7", 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.35s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/blacksmith-a94d01d9cabfd6d9)
[INFO] [stdout] 
[INFO] [stdout] running 1207 tests
[INFO] [stdout] test adapters::aider::tests::adapter_name ... ok
[INFO] [stdout] test adapters::aider::tests::supported_metrics_list ... ok
[INFO] [stdout] test adapters::claude::tests::adapter_name ... ok
[INFO] [stdout] test adapters::claude::tests::extract_empty_file ... ok
[INFO] [stdout] test adapters::aider::tests::assistant_block_without_user_prompt ... ok
[INFO] [stdout] test adapters::aider::tests::extract_output_bytes_is_file_size ... ok
[INFO] [stdout] test adapters::claude::tests::extract_multi_model_usage ... ok
[INFO] [stdout] test adapters::aider::tests::lines_for_source_raw ... ok
[INFO] [stdout] test adapters::aider::tests::lines_for_source_text ... ok
[INFO] [stdout] test adapters::aider::tests::file_not_found_returns_error ... ok
[INFO] [stdout] test adapters::claude::tests::file_not_found_returns_error ... ok
[INFO] [stdout] test adapters::claude::tests::extract_output_bytes_is_file_size ... ok
[INFO] [stdout] test adapters::claude::tests::extract_skips_malformed_lines ... ok
[INFO] [stdout] test adapters::claude::tests::extract_single_assistant_text_only ... 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::claude::tests::lines_for_source_text ... ok
[INFO] [stdout] test adapters::aider::tests::extract_cost_from_costs_line ... ok
[INFO] [stdout] test adapters::aider::tests::extract_turns_from_chat_log ... ok
[INFO] [stdout] test adapters::aider::tests::extract_empty_file ... ok
[INFO] [stdout] test adapters::aider::tests::extract_single_turn_no_trailing_prompt ... ok
[INFO] [stdout] test adapters::aider::tests::no_cost_when_not_reported ... ok
[INFO] [stdout] test adapters::aider::tests::lines_for_source_tool_commands ... ok
[INFO] [stdout] test adapters::claude::tests::lines_for_source_raw ... ok
[INFO] [stdout] test adapters::claude::tests::supported_metrics_list ... ok
[INFO] [stdout] test adapters::codex::tests::adapter_name ... ok
[INFO] [stdout] test adapters::claude::tests::real_file_format ... ok
[INFO] [stdout] test adapters::codex::tests::extract_exit_code ... ok
[INFO] [stdout] test adapters::codex::tests::extract_duration_from_timestamps ... ok
[INFO] [stdout] test adapters::codex::tests::extract_skips_malformed_lines ... ok
[INFO] [stdout] test adapters::codex::tests::extract_output_bytes_is_file_size ... ok
[INFO] [stdout] test adapters::aider::tests::mixed_session ... ok
[INFO] [stdout] test adapters::codex::tests::file_change_and_mcp_count_as_tool_calls ... ok
[INFO] [stdout] test adapters::codex::tests::file_not_found_returns_error ... ok
[INFO] [stdout] test adapters::codex::tests::extract_tool_calls_from_command_execution ... ok
[INFO] [stdout] test adapters::codex::tests::extract_turns_from_turn_completed ... ok
[INFO] [stdout] test adapters::claude::tests::lines_for_source_tool_commands ... ok
[INFO] [stdout] test adapters::codex::tests::extract_empty_file ... ok
[INFO] [stdout] test adapters::codex::tests::supported_metrics_list ... ok
[INFO] [stdout] test adapters::opencode::tests::adapter_name ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_exit_code_from_tool_result ... ok
[INFO] [stdout] test adapters::codex::tests::lines_for_source_raw ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_skips_malformed_lines ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_output_bytes_is_file_size ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_tokens_from_usage ... ok
[INFO] [stdout] test adapters::opencode::tests::lines_for_source_raw ... ok
[INFO] [stdout] test adapters::opencode::tests::lines_for_source_tool_commands ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_tool_calls_from_parts ... ok
[INFO] [stdout] test adapters::codex::tests::lines_for_source_tool_commands ... ok
[INFO] [stdout] test adapters::opencode::tests::mixed_session ... ok
[INFO] [stdout] test adapters::codex::tests::lines_for_source_text ... ok
[INFO] [stdout] test adapters::opencode::tests::no_exit_code_when_no_tool_results ... ok
[INFO] [stdout] test adapters::opencode::tests::parse_json_array_of_messages ... ok
[INFO] [stdout] test adapters::opencode::tests::no_tokens_when_not_available ... ok
[INFO] [stdout] test adapters::opencode::tests::supported_metrics_list ... ok
[INFO] [stdout] test adapters::opencode::tests::tool_call_with_snake_case_type ... ok
[INFO] [stdout] test adapters::codex::tests::lines_for_source_tool_commands_without_bash_prefix ... ok
[INFO] [stdout] test adapters::codex::tests::no_exit_code_when_no_commands ... ok
[INFO] [stdout] test adapters::codex::tests::mixed_codex_session ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_duration_from_timestamps ... ok
[INFO] [stdout] test adapters::raw::tests::test_raw_adapter_empty_file ... 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::raw::tests::test_raw_adapter_no_supported_metrics ... ok
[INFO] [stdout] test adapters::tests::test_create_adapter_claude ... ok
[INFO] [stdout] test adapters::raw::tests::test_raw_adapter_lines_for_source_returns_raw_lines ... ok
[INFO] [stdout] test adapters::tests::test_create_adapter_codex ... 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_create_adapter_opencode ... ok
[INFO] [stdout] test adapters::tests::test_detect_claude_from_absolute_path ... ok
[INFO] [stdout] test adapters::tests::test_detect_aider ... ok
[INFO] [stdout] test adapters::tests::test_detect_claude_from_bare_command ... ok
[INFO] [stdout] test adapters::tests::test_create_adapter_aider ... ok
[INFO] [stdout] test adapters::tests::test_detect_claude_from_variant_name ... ok
[INFO] [stdout] test adapters::tests::test_detect_opencode ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_empty_file ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_tokens_with_prompt_completion_keys ... ok
[INFO] [stdout] test adapters::opencode::tests::parse_nested_session_messages ... ok
[INFO] [stdout] test adapters::tests::test_detect_codex ... ok
[INFO] [stdout] test adapters::tests::test_detect_empty_command_falls_back_to_raw ... ok
[INFO] [stdout] test adapters::opencode::tests::lines_for_source_text ... ok
[INFO] [stdout] test adapters::raw::tests::test_raw_adapter_missing_file_returns_io_error ... ok
[INFO] [stdout] test adapters::opencode::tests::parse_json_object_with_messages_key ... ok
[INFO] [stdout] test adapters::tests::test_detect_unknown_falls_back_to_raw ... ok
[INFO] [stdout] test adapters::tests::test_resolve_explicit_known_adapter ... ok
[INFO] [stdout] test adapters::tests::test_resolve_none_uses_auto_detect ... ok
[INFO] [stdout] test adapters::tests::test_resolve_explicit_overrides_detection ... ok
[INFO] [stdout] test adapters::tests::test_resolve_then_create_from_default_config ... ok
[INFO] [stdout] test adapters::tests::test_resolve_then_create_with_explicit_override ... ok
[INFO] [stdout] test adapters::tests::test_resolve_unknown_explicit_falls_back_to_detect ... ok
[INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_skips_comments ... ok
[INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_group ... ok
[INFO] [stdout] test boundary_violation::tests::extract_cross_module_imports_basic ... ok
[INFO] [stdout] test boundary_violation::tests::comments_not_parsed_as_imports ... 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_std ... ok
[INFO] [stdout] test boundary_violation::tests::extract_lowercase_function_import ... ok
[INFO] [stdout] test boundary_violation::tests::group_import_multiple_symbols ... ok
[INFO] [stdout] test boundary_violation::tests::detects_non_public_symbol_access ... ok
[INFO] [stdout] test boundary_violation::tests::no_violations_when_using_public_api ... ok
[INFO] [stdout] test boundary_violation::tests::glob_import_not_checked ... ok
[INFO] [stdout] test boundary_violation::tests::pub_use_reexport_not_violation ... ok
[INFO] [stdout] test boundary_violation::tests::no_violations_in_empty_project ... 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::violations_sorted_by_source_target_symbol ... ok
[INFO] [stdout] test brief::tests::brief_no_database_file_produces_no_output ... ok
[INFO] [stdout] test boundary_violation::tests::parse_group_import_single ... ok
[INFO] [stdout] test adapters::aider::tests::extract_cost_from_token_line ... ok
[INFO] [stdout] test adapters::opencode::tests::file_not_found_returns_error ... ok
[INFO] [stdout] test boundary_violation::tests::parse_group_import_basic ... 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::evaluate_single_observation_pct_sessions_returns_none ... ok
[INFO] [stdout] test brief::tests::format_actual_value_dollar ... ok
[INFO] [stdout] test brief::tests::format_actual_value_no_unit ... ok
[INFO] [stdout] test brief::tests::format_actual_value_percent ... ok
[INFO] [stdout] test brief::tests::format_performance_feedback_unit ... ok
[INFO] [stdout] test adapters::opencode::tests::extract_turns_from_assistant_messages_jsonl ... ok
[INFO] [stdout] test adapters::claude::tests::extract_mixed_events ... ok
[INFO] [stdout] test brief::tests::brief_observation_only_no_improvements ... ok
[INFO] [stdout] test brief::tests::is_rule_supported_tests ... ok
[INFO] [stdout] test brief::tests::brief_format_matches_prd ... ok
[INFO] [stdout] test boundary_violation::tests::no_violation_for_intra_module_imports ... ok
[INFO] [stdout] test adapters::aider::tests::multiple_cost_lines_uses_last ... ok
[INFO] [stdout] test adapters::opencode::tests::parse_session_level_tokens ... ok
[INFO] [stdout] test brief::tests::brief_performance_feedback_duration_seconds_only ... ok
[INFO] [stdout] test brief::tests::brief_empty_database_produces_no_output ... ok
[INFO] [stdout] test brief::tests::brief_performance_feedback_and_improvements_together ... ok
[INFO] [stdout] test brief::tests::brief_performance_feedback_uses_most_recent_session ... ok
[INFO] [stdout] test brief::tests::brief_excludes_non_open_improvements_from_listing ... ok
[INFO] [stdout] test brief::tests::brief_performance_feedback_zero_turns ... ok
[INFO] [stdout] test brief::tests::brief_shows_open_improvements ... ok
[INFO] [stdout] test brief::tests::target_warnings_none_config_no_section ... ok
[INFO] [stdout] test brief::tests::target_warnings_above_direction ... ok
[INFO] [stdout] test brief::tests::target_warnings_multiple_rules_mixed ... ok
[INFO] [stdout] test brief::tests::target_warnings_no_rules_no_section ... ok
[INFO] [stdout] test brief::tests::brief_shows_performance_feedback_with_observation ... ok
[INFO] [stdout] test brief::tests::target_warnings_position_between_feedback_and_improvements ... ok
[INFO] [stdout] test brief::tests::target_warnings_pct_of_miss ... ok
[INFO] [stdout] test brief::tests::target_warnings_no_miss_no_section ... ok
[INFO] [stdout] test brief::tests::target_warnings_single_miss ... ok
[INFO] [stdout] test brief::tests::target_warnings_none_supported_metrics_means_no_filtering ... ok
[INFO] [stdout] test brief::tests::streak_threshold_exactly_met_is_alert ... ok
[INFO] [stdout] test brief::tests::target_warnings_skip_unsupported_relative_to_metric ... ok
[INFO] [stdout] test brief::tests::target_warnings_skip_unsupported_metric ... ok
[INFO] [stdout] test brief::tests::target_warnings_streak_broken_by_pass ... ok
[INFO] [stdout] test brief::tests::target_warnings_streak_escalates_to_alert ... 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::multiple_files_create_one_module_edge ... ok
[INFO] [stdout] test circular_dep::tests::mixed_dag_and_cycle ... ok
[INFO] [stdout] test circular_dep::tests::no_cycles_dag ... ok
[INFO] [stdout] test circular_dep::tests::three_module_cycle ... ok
[INFO] [stdout] test circular_dep::tests::intra_module_imports_not_cycles ... ok
[INFO] [stdout] test circular_dep::tests::single_module_no_cycle ... ok
[INFO] [stdout] test circular_dep::tests::two_module_cycle ... ok
[INFO] [stdout] test commit::tests::test_compile_patterns_empty ... ok
[INFO] [stdout] test circular_dep::tests::multiple_independent_cycles ... ok
[INFO] [stdout] test circular_dep::tests::no_cycles_empty ... ok
[INFO] [stdout] test commit::tests::test_custom_patterns ... ok
[INFO] [stdout] test commit::tests::test_empty_patterns ... ok
[INFO] [stdout] test commit::tests::test_compile_patterns_valid ... ok
[INFO] [stdout] test compress::tests::test_compress_current_less_than_threshold ... ok
[INFO] [stdout] test compress::tests::test_already_compressed_files_skipped ... ok
[INFO] [stdout] test commit::tests::test_detect_commit_from_file ... ok
[INFO] [stdout] test compress::tests::test_compress_after_zero_does_nothing ... ok
[INFO] [stdout] test commit::tests::test_detect_committed ... ok
[INFO] [stdout] test commit::tests::test_detect_bd_finish ... ok
[INFO] [stdout] test compress::tests::test_missing_sessions_directory ... ok
[INFO] [stdout] test config::tests::test_architecture_aggressive_preset ... ok
[INFO] [stdout] test compress::tests::test_empty_sessions_directory ... ok
[INFO] [stdout] test commit::tests::test_no_commit_detected ... ok
[INFO] [stdout] test commit::tests::test_detect_no_commit_from_file ... 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 commit::tests::test_compile_patterns_invalid ... ok
[INFO] [stdout] test compress::tests::test_compressed_file_is_valid_zstd ... ok
[INFO] [stdout] test config::tests::test_architecture_conservative_preset ... ok
[INFO] [stdout] test config::tests::test_cli_overrides_all_fields ... ok
[INFO] [stdout] test config::tests::test_cli_overrides_partial ... ok
[INFO] [stdout] test config::tests::test_command_in_path_finds_sh ... ok
[INFO] [stdout] test config::tests::test_architecture_partial_override ... ok
[INFO] [stdout] test config::tests::test_cli_overrides_none_preserves_config ... ok
[INFO] [stdout] test config::tests::test_compile_invalid_regex_returns_error ... ok
[INFO] [stdout] test config::tests::test_default_config_has_no_extraction_rules ... ok
[INFO] [stdout] test config::tests::test_default_agent_has_no_phase_configs ... ok
[INFO] [stdout] test compress::tests::test_compress_exact_threshold ... ok
[INFO] [stdout] test config::tests::test_default_prompt_via_is_arg ... ok
[INFO] [stdout] test config::tests::test_default_improvements_config ... ok
[INFO] [stdout] test config::tests::test_default_architecture_config ... ok
[INFO] [stdout] test config::tests::test_default_config_values ... ok
[INFO] [stdout] test config::tests::test_default_agent_adapter_is_none ... ok
[INFO] [stdout] test config::tests::test_default_reconciliation_every ... ok
[INFO] [stdout] test config::tests::test_default_streak_threshold ... ok
[INFO] [stdout] test config::tests::test_architecture_defaults_when_not_specified ... ok
[INFO] [stdout] test config::tests::test_default_storage_data_dir ... ok
[INFO] [stdout] test compress::tests::test_compress_high_iteration_numbers ... ok
[INFO] [stdout] test config::tests::test_explicit_path_no_fallback ... ok
[INFO] [stdout] test config::tests::test_compile_extraction_rule ... ok
[INFO] [stdout] test config::tests::test_command_in_path_missing_binary ... ok
[INFO] [stdout] test config::tests::test_improvements_defaults_when_not_specified ... ok
[INFO] [stdout] test config::tests::test_fallback_to_blacksmith_toml ... ok
[INFO] [stdout] test config::tests::test_full_precedence_chain ... ok
[INFO] [stdout] test config::tests::test_default_quality_gates ... ok
[INFO] [stdout] test config::tests::test_load_agent_adapter_from_toml ... ok
[INFO] [stdout] test config::tests::test_improvements_auto_promote_disabled ... ok
[INFO] [stdout] test config::tests::test_load_agent_without_adapter_field ... ok
[INFO] [stdout] test config::tests::test_default_retention_when_not_specified ... ok
[INFO] [stdout] test commit::tests::test_empty_output ... 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_compress_after_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_agent_coding_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_from_new_config_path ... ok
[INFO] [stdout] test config::tests::test_load_invalid_prompt_via_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_agent_coding_and_integration_from_toml ... ok
[INFO] [stdout] test config::tests::test_existing_config_with_no_metrics_section_still_works ... ok
[INFO] [stdout] test config::tests::test_load_full_toml ... ok
[INFO] [stdout] test commit::tests::test_detect_git_commit ... ok
[INFO] [stdout] test config::tests::test_load_improvements_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_extraction_rule_with_anti_pattern ... ok
[INFO] [stdout] test commit::tests::test_default_patterns_list ... ok
[INFO] [stdout] test config::tests::test_load_invalid_retention_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_extraction_rule_source_raw ... 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 commit::tests::test_detect_git_commit_case_insensitive ... ok
[INFO] [stdout] test config::tests::test_load_missing_file_returns_defaults ... ok
[INFO] [stdout] test config::tests::test_load_invalid_toml_returns_parse_error ... ok
[INFO] [stdout] test config::tests::test_load_partial_toml_merges_with_defaults ... ok
[INFO] [stdout] test config::tests::test_load_prompt_via_default_when_not_specified ... ok
[INFO] [stdout] test config::tests::test_load_prompt_via_file_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_prompt_via_stdin_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_prompt_via_arg_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_reconciliation_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_quality_gates_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_retention_days_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_storage_data_dir_from_toml ... ok
[INFO] [stdout] test config::tests::test_load_retention_from_toml ... ok
[INFO] [stdout] test config::tests::test_prompt_via_display ... ok
[INFO] [stdout] test config::tests::test_resolved_coding_falls_back_to_flat_agent ... 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_resolved_integration_falls_back_to_coding_then_flat ... ok
[INFO] [stdout] test config::tests::test_load_streak_threshold_from_toml ... ok
[INFO] [stdout] test config::tests::test_retention_display ... ok
[INFO] [stdout] test config::tests::test_retention_parse_after_ingest ... ok
[INFO] [stdout] test config::tests::test_resolved_integration_inherits_from_coding ... ok
[INFO] [stdout] test config::tests::test_retention_parse_all ... ok
[INFO] [stdout] test config::tests::test_resolved_integration_partial_override ... ok
[INFO] [stdout] test config::tests::test_retention_parse_days ... ok
[INFO] [stdout] test config::tests::test_reconciliation_default_when_not_specified ... ok
[INFO] [stdout] test config::tests::test_retention_parse_invalid ... ok
[INFO] [stdout] test config::tests::test_quality_gates_defaults_when_not_specified ... ok
[INFO] [stdout] test config::tests::test_retention_parse_last_n ... ok
[INFO] [stdout] test config::tests::test_reconciliation_zero_disables ... ok
[INFO] [stdout] test config::tests::test_resolved_analysis_model_injects_flag ... 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_validate_invalid_commit_detection_pattern ... ok
[INFO] [stdout] test brief::tests::target_warnings_streak_threshold_configurable ... ok
[INFO] [stdout] test commit::tests::test_detect_commit_missing_file ... ok
[INFO] [stdout] test config::tests::test_validate_architecture_zero_values ... ok
[INFO] [stdout] test config::tests::test_validate_empty_command ... ok
[INFO] [stdout] test config::tests::test_validate_architecture_valid_config ... ok
[INFO] [stdout] test config::tests::test_validate_architecture_negative_drift_sensitivity ... ok
[INFO] [stdout] test config::tests::test_validate_initial_delay_exceeds_max_delay ... ok
[INFO] [stdout] test config::tests::test_validate_valid_config_no_errors ... ok
[INFO] [stdout] test config::tests::test_validate_zero_max_iterations ... ok
[INFO] [stdout] test coordinator::tests::test_analysis_outcomes_excluded_from_session_counter ... ok
[INFO] [stdout] test config::tests::test_validate_missing_prompt_file ... ok
[INFO] [stdout] test config::tests::test_validate_catches_bad_integration_command ... ok
[INFO] [stdout] test config::tests::test_validate_multiple_errors_collected ... ok
[INFO] [stdout] test coordinator::tests::test_append_promoted_to_prompt_uses_title_when_no_body ... ok
[INFO] [stdout] test coordinator::tests::test_append_promoted_to_prompt_creates_file ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_graceful_on_missing_prompt_file ... ok
[INFO] [stdout] test config::tests::test_validate_invalid_extraction_rule ... ok
[INFO] [stdout] test config::tests::test_validate_invalid_target_direction ... ok
[INFO] [stdout] test config::tests::test_validate_pct_of_missing_relative_to ... ok
[INFO] [stdout] test config::tests::test_validate_command_absolute_path_missing ... ok
[INFO] [stdout] test config::tests::test_validate_architecture_fan_in_out_of_range ... ok
[INFO] [stdout] test config::tests::test_validate_command_not_in_path ... ok
[INFO] [stdout] test config::tests::test_validate_resolves_agent_for_both_phases ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_includes_prompt_file ... 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 coordinator::tests::test_close_bead_direct_does_not_panic ... ok
[INFO] [stdout] test config::tests::test_validate_invalid_target_compare ... ok
[INFO] [stdout] test config::tests::test_validate_zero_timeout_values ... 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_already_running_guard_prevents_duplicate_analysis ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_contains_placeholders_replaced ... ok
[INFO] [stdout] test coordinator::tests::test_analyze_every_1_no_infinite_loop ... ok
[INFO] [stdout] test coordinator::tests::test_bug_report_scenario_no_runaway_loop ... 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_effective_analyze_every_zero_stays_zero ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_empty_data ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_analysis_prompt_new_placeholders_replaced ... ok
[INFO] [stdout] test coordinator::tests::test_build_progress_string_with_completed ... ok
[INFO] [stdout] test coordinator::tests::test_backlog_threshold_allows_below ... ok
[INFO] [stdout] test coordinator::tests::test_build_in_progress_list_empty_pool ... ok
[INFO] [stdout] test coordinator::tests::test_assemble_base_prompt_includes_open_improvements ... ok
[INFO] [stdout] test coordinator::tests::test_build_progress_string_empty_db ... ok
[INFO] [stdout] test coordinator::tests::test_coordinator_exits_on_signal ... ok
[INFO] [stdout] test coordinator::tests::test_format_observations_table_with_data ... ok
[INFO] [stdout] test coordinator::tests::test_backlog_threshold_blocks_analysis ... ok
[INFO] [stdout] test coordinator::tests::test_count_open_improvements ... ok
[INFO] [stdout] test coordinator::tests::test_is_analysis_bead_true ... ok
[INFO] [stdout] test coordinator::tests::test_is_rapid_session_failure_detects_zero_turns ... 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_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_format_observations_table_empty ... ok
[INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_chain_deps ... ok
[INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_blocked_by_dependency ... ok
[INFO] [stdout] test coordinator::tests::test_is_analysis_bead_false ... 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_filters_epic_with_open_child ... 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_with_cycle ... ok
[INFO] [stdout] test coordinator::tests::test_parse_and_filter_beads_no_cycles_no_deps ... ok
[INFO] [stdout] test coordinator::tests::test_parse_comma_separated_globs ... ok
[INFO] [stdout] test coordinator::tests::test_parse_open_epic_hierarchy_extracts_parent_child_edges ... ok
[INFO] [stdout] test coordinator::tests::test_handle_tripped_failure_does_not_panic ... ok
[INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_empty ... ok
[INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_invalid_json ... ok
[INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_invalid ... ok
[INFO] [stdout] test coordinator::tests::test_parse_orphaned_bead_ids_valid ... 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_ready_beads_json_no_design ... ok
[INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_missing_fields ... ok
[INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_valid ... ok
[INFO] [stdout] test coordinator::tests::test_parse_ready_beads_json_with_dependencies ... 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_should_log_dependency_filter_info ... ok
[INFO] [stdout] test coordinator::tests::test_expand_file_comments_ignored ... ok
[INFO] [stdout] test coordinator::tests::test_expand_file_no_duplicates ... ok
[INFO] [stdout] test coordinator::tests::test_no_analysis_before_any_coding_session ... ok
[INFO] [stdout] test coordinator::tests::test_sessions_since_improvement ... ok
[INFO] [stdout] test coordinator::tests::test_run_auto_promotion_not_ready_yet ... 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 coordinator::tests::test_should_spawn_analysis_already_running ... 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 coordinator::tests::test_expand_file_empty_file_ignored ... ok
[INFO] [stdout] test data_dir::tests::test_data_dir_paths ... ok
[INFO] [stdout] test data_dir::tests::test_gitignore_not_created_if_missing ... ok
[INFO] [stdout] test data_dir::tests::test_ensure_initialized_creates_and_updates_gitignore ... ok
[INFO] [stdout] test data_dir::tests::test_gitignore_append_no_trailing_newline ... ok
[INFO] [stdout] test coordinator::tests::test_dismiss_stale_improvements ... ok
[INFO] [stdout] test data_dir::tests::test_init_creates_directories_and_config ... ok
[INFO] [stdout] test data_dir::tests::test_gitignore_not_duplicated ... ok
[INFO] [stdout] test data_dir::tests::test_init_does_not_overwrite_existing_config ... ok
[INFO] [stdout] test coordinator::tests::test_run_auto_promotion_disabled_when_zero ... ok
[INFO] [stdout] test data_dir::tests::test_init_idempotent ... ok
[INFO] [stdout] test coordinator::tests::test_no_expand_file_is_noop ... ok
[INFO] [stdout] test data_dir::tests::test_init_with_config_writes_custom_content ... ok
[INFO] [stdout] test coordinator::tests::test_run_auto_promotion_promotes_after_threshold ... ok
[INFO] [stdout] test coordinator::tests::test_should_spawn_analysis_disabled ... ok
[INFO] [stdout] test coordinator::tests::test_run_auto_promotion_only_runs_on_interval ... ok
[INFO] [stdout] test coordinator::tests::test_should_spawn_analysis_triggers_at_interval ... 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 db::tests::active_worker_assignments_empty ... ok
[INFO] [stdout] test db::tests::all_columns_insertable ... ok
[INFO] [stdout] test db::tests::all_three_tables_created ... 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::active_worker_assignments_query ... ok
[INFO] [stdout] test db::tests::completed_bead_metrics_empty_when_none_completed ... 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::coordinator_tables_created ... ok
[INFO] [stdout] test coordinator::tests::test_backlog_threshold_disabled ... ok
[INFO] [stdout] test coordinator::tests::test_dismiss_stale_disabled ... ok
[INFO] [stdout] test coordinator::tests::test_expand_file_processing ... ok
[INFO] [stdout] test db::tests::created_timestamp_auto_set ... ok
[INFO] [stdout] test db::tests::default_status_is_open ... ok
[INFO] [stdout] test db::tests::creates_database_and_table ... ok
[INFO] [stdout] test db::tests::events_by_kind_query ... ok
[INFO] [stdout] test db::tests::events_indexes_created ... ok
[INFO] [stdout] test db::tests::events_empty_session_returns_empty ... ok
[INFO] [stdout] test db::tests::events_and_observations_coexist ... ok
[INFO] [stdout] test db::tests::events_table_exists ... 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_excludes_self ... ok
[INFO] [stdout] test db::tests::find_entangled_beads_excludes_non_integrated ... ok
[INFO] [stdout] test db::tests::find_entangled_beads_finds_dependents ... ok
[INFO] [stdout] test db::tests::find_failed_assignment_finds_failed_status ... ok
[INFO] [stdout] test db::tests::find_failed_assignment_ignores_completed ... 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_found ... ok
[INFO] [stdout] test db::tests::find_integration_by_bead_none ... ok
[INFO] [stdout] test db::tests::events_session_index_works ... ok
[INFO] [stdout] test db::tests::find_entangled_beads_empty ... ok
[INFO] [stdout] test db::tests::get_improvement_found ... ok
[INFO] [stdout] test db::tests::find_integration_by_bead_returns_most_recent ... ok
[INFO] [stdout] test db::tests::find_failed_assignment_finds_integration_failed ... ok
[INFO] [stdout] test db::tests::get_improvement_not_found ... ok
[INFO] [stdout] test db::tests::get_worker_assignment_nonexistent ... ok
[INFO] [stdout] test db::tests::get_improvement_meta_found ... ok
[INFO] [stdout] test db::tests::insert_and_get_worker_assignment ... ok
[INFO] [stdout] test db::tests::high_iteration_integrations_filters_by_threshold ... ok
[INFO] [stdout] test db::tests::get_observation_nonexistent ... ok
[INFO] [stdout] test db::tests::get_bead_metrics_nonexistent ... ok
[INFO] [stdout] test db::tests::idempotent_creation ... ok
[INFO] [stdout] test db::tests::index_on_status_works ... ok
[INFO] [stdout] test db::tests::insert_and_query_improvement ... ok
[INFO] [stdout] test db::tests::insert_and_list_progress_entries ... ok
[INFO] [stdout] test db::tests::insert_and_query_task_file_changes ... ok
[INFO] [stdout] test db::tests::insert_event_null_value ... ok
[INFO] [stdout] test db::tests::insert_event_with_tags ... ok
[INFO] [stdout] test db::tests::insert_event_with_explicit_ts ... ok
[INFO] [stdout] test db::tests::insert_event_basic ... ok
[INFO] [stdout] test db::tests::integration_iterations_empty_for_unknown_bead ... ok
[INFO] [stdout] test db::tests::insert_and_query_integration_log ... ok
[INFO] [stdout] test db::tests::integration_log_empty_for_no_assignment ... ok
[INFO] [stdout] test db::tests::integration_iterations_zero_count ... ok
[INFO] [stdout] test db::tests::multiple_events_per_session ... 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::next_ref_after_inserts ... ok
[INFO] [stdout] test db::tests::next_ref_handles_gaps ... ok
[INFO] [stdout] test db::tests::observation_nullable_fields ... ok
[INFO] [stdout] test db::tests::observations_session_is_primary_key ... ok
[INFO] [stdout] test db::tests::observations_table_exists ... ok
[INFO] [stdout] test db::tests::progress_entries_table_exists ... ok
[INFO] [stdout] test db::tests::opens_existing_database ... ok
[INFO] [stdout] test db::tests::rebuild_observations_boolean_values ... ok
[INFO] [stdout] test db::tests::rebuild_observations_empty_events ... ok
[INFO] [stdout] test db::tests::recent_integration_log_empty ... ok
[INFO] [stdout] test db::tests::rebuild_observations_clears_old ... ok
[INFO] [stdout] test db::tests::rebuild_observations_no_duration_event ... ok
[INFO] [stdout] test db::tests::recent_integration_log_returns_entries ... 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::recent_integration_log_with_limit ... ok
[INFO] [stdout] test db::tests::record_and_query_integration_iterations ... ok
[INFO] [stdout] test db::tests::recent_observations_limit ... ok
[INFO] [stdout] test db::tests::ref_uniqueness_enforced ... ok
[INFO] [stdout] test db::tests::search_improvements_by_body ... ok
[INFO] [stdout] test db::tests::search_improvements_by_context ... ok
[INFO] [stdout] test db::tests::search_improvements_by_title ... ok
[INFO] [stdout] test db::tests::update_improvement_body_context ... ok
[INFO] [stdout] test db::tests::update_improvement_meta ... ok
[INFO] [stdout] test db::tests::search_improvements_no_match ... ok
[INFO] [stdout] test db::tests::resolved_timestamp_nullable ... ok
[INFO] [stdout] test db::tests::search_improvements_case_insensitive ... 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 estimation::tests::critical_path_linear_chain ... ok
[INFO] [stdout] test estimation::tests::critical_path_parallel_beads ... ok
[INFO] [stdout] test estimation::tests::critical_path_single_bead ... ok
[INFO] [stdout] test estimation::tests::critical_path_with_cycle ... 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_no_resolved_on_other_status ... ok
[INFO] [stdout] test db::tests::update_improvement_sets_resolved_on_dismiss ... ok
[INFO] [stdout] test db::tests::update_improvement_sets_resolved_on_promote ... ok
[INFO] [stdout] test db::tests::update_improvement_status ... 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 estimation::tests::format_duration_seconds ... 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_by_module_counts_correctly ... ok
[INFO] [stdout] test expansion_event::tests::empty_modules_handled ... ok
[INFO] [stdout] test expansion_event::tests::count_recent_expansions_within_window ... ok
[INFO] [stdout] test expansion_event::tests::events_across_multiple_tasks ... ok
[INFO] [stdout] test expansion_event::tests::get_recent_with_fewer_than_limit ... ok
[INFO] [stdout] test db::tests::update_worker_assignment_nonexistent ... ok
[INFO] [stdout] test expansion_event::tests::no_events_returns_empty ... ok
[INFO] [stdout] test expansion_event::tests::multiple_events_same_task ... ok
[INFO] [stdout] test expansion_event::tests::record_and_retrieve_by_task ... ok
[INFO] [stdout] test fan_in::tests::deterministic_ordering_same_score ... ok
[INFO] [stdout] test fan_in::tests::hotspots_default_threshold ... ok
[INFO] [stdout] test fan_in::tests::empty_project_returns_empty ... ok
[INFO] [stdout] test fan_in::tests::hotspots_filters_above_threshold ... ok
[INFO] [stdout] test db::tests::update_worker_assignment_to_failed ... ok
[INFO] [stdout] test fan_in::tests::mod_declaration_counts_as_import ... ok
[INFO] [stdout] test fan_in::tests::scores_from_graph_directly ... ok
[INFO] [stdout] test expansion_event::tests::get_recent_returns_most_recent ... ok
[INFO] [stdout] test db::tests::update_worker_assignment_to_completed ... ok
[INFO] [stdout] test fan_in::tests::single_file_zero_fan_in ... 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_new_file_path ... ok
[INFO] [stdout] test fan_in::tests::sorted_descending_by_score ... ok
[INFO] [stdout] test fan_in::tests::multiple_importers_high_fan_in ... ok
[INFO] [stdout] test finish::tests::test_extract_section_found ... ok
[INFO] [stdout] test finish::tests::test_extract_section_not_found ... ok
[INFO] [stdout] test finish::tests::test_extract_section_stops_at_next_header ... ok
[INFO] [stdout] test finish::tests::test_and_chain_works_via_sh ... ok
[INFO] [stdout] test finish::tests::test_handle_finish_test_gate_failure ... ok
[INFO] [stdout] test finish::tests::test_looks_like_prose ... ok
[INFO] [stdout] test finish::tests::test_handle_finish_lint_gate_failure ... ok
[INFO] [stdout] test finish::tests::test_run_gate_command_failure ... ok
[INFO] [stdout] test finish::tests::test_run_gate_empty_commands ... ok
[INFO] [stdout] test db::tests::upsert_observation_insert ... ok
[INFO] [stdout] test finish::tests::test_run_gate_fails_on_first_failure ... ok
[INFO] [stdout] test finish::tests::test_sanitize_verify_command_strips_backticks ... ok
[INFO] [stdout] test db::tests::upsert_bead_metrics_updates_existing ... ok
[INFO] [stdout] test finish::tests::test_strip_verify_prose ... ok
[INFO] [stdout] test finish::tests::test_handle_finish_format_gate_failure ... ok
[INFO] [stdout] test finish::tests::test_handle_finish_skips_empty_lint_format_gates ... ok
[INFO] [stdout] test db::tests::upsert_observation_replaces ... ok
[INFO] [stdout] test gc::tests::test_gc_days_retention ... ok
[INFO] [stdout] test gc::tests::test_gc_already_compressed_skipped ... 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 god_file::tests::analyze_file_reports_clusters ... ok
[INFO] [stdout] test gc::tests::test_gc_nothing_to_clean ... ok
[INFO] [stdout] test gc::tests::test_gc_aggressive_with_retention ... ok
[INFO] [stdout] test god_file::tests::contains_word_basic ... ok
[INFO] [stdout] test god_file::tests::connected_symbols_same_cluster ... ok
[INFO] [stdout] test god_file::tests::default_config_values ... ok
[INFO] [stdout] test finish::tests::test_handle_finish_check_gate_failure ... ok
[INFO] [stdout] test god_file::tests::empty_file_zero_clusters ... ok
[INFO] [stdout] test db::tests::upsert_and_get_bead_metrics ... 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 db::tests::worker_assignments_by_status_query ... 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 finish::tests::test_run_gate_command_success ... ok
[INFO] [stdout] test estimation::tests::estimate_no_open_beads ... ok
[INFO] [stdout] test god_file::tests::find_definition_end_single_line ... ok
[INFO] [stdout] test finish::tests::test_run_gate_passes ... ok
[INFO] [stdout] test god_file::tests::multiple_concerns_flagged ... ok
[INFO] [stdout] test hooks::tests::test_hook_env_post_session ... ok
[INFO] [stdout] test hooks::tests::test_hook_env_pre_session ... ok
[INFO] [stdout] test hooks::tests::test_hook_env_post_session_no_exit_code ... ok
[INFO] [stdout] test god_file::tests::small_file_not_flagged ... ok
[INFO] [stdout] test hooks::tests::test_hook_error_display ... ok
[INFO] [stdout] test god_file::tests::impl_block_merges_with_struct ... ok
[INFO] [stdout] test god_file::tests::single_concern_file_not_flagged ... ok
[INFO] [stdout] test hooks::tests::test_pre_session_failure ... ok
[INFO] [stdout] test import_graph::tests::comments_ignored ... ok
[INFO] [stdout] test hooks::tests::test_pre_session_success ... ok
[INFO] [stdout] test hooks::tests::test_pre_session_stops_on_first_failure ... ok
[INFO] [stdout] test estimation::tests::estimate_insufficient_data ... ok
[INFO] [stdout] test import_graph::tests::deduplicates_deps ... ok
[INFO] [stdout] test import_graph::tests::parse_mod_declaration_basic ... ok
[INFO] [stdout] test import_graph::tests::glob_import ... ok
[INFO] [stdout] test import_graph::tests::empty_project ... ok
[INFO] [stdout] test hooks::tests::test_hook_receives_env_vars ... ok
[INFO] [stdout] test import_graph::tests::parse_mod_declaration_pub ... ok
[INFO] [stdout] test import_graph::tests::parse_mod_declaration_tests_skipped ... ok
[INFO] [stdout] test import_graph::tests::parse_use_crate_glob ... ok
[INFO] [stdout] test import_graph::tests::mod_declaration_resolves ... ok
[INFO] [stdout] test import_graph::tests::parse_mod_declaration_inline_skipped ... ok
[INFO] [stdout] test import_graph::tests::parse_use_crate_group ... 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::nonexistent_import_filtered ... ok
[INFO] [stdout] test import_graph::tests::mod_declaration_subdir ... ok
[INFO] [stdout] test import_graph::tests::parse_use_crate_not_crate ... ok
[INFO] [stdout] test import_graph::tests::parse_use_crate_pub ... ok
[INFO] [stdout] test import_graph::tests::nested_crate_path ... ok
[INFO] [stdout] test hooks::tests::test_post_hook_receives_all_env_vars ... ok
[INFO] [stdout] test import_graph::tests::use_group_import ... ok
[INFO] [stdout] test import_graph::tests::single_file_no_imports ... ok
[INFO] [stdout] test import_graph::tests::pub_use_reexport ... ok
[INFO] [stdout] test hooks::tests::test_post_session_logs_error_but_continues ... ok
[INFO] [stdout] test gc::tests::test_gc_aggressive_compresses_all ... ok
[INFO] [stdout] test import_graph::tests::use_crate_import ... ok
[INFO] [stdout] test estimation::tests::estimate_parallel_with_chain ... ok
[INFO] [stdout] test hooks::tests::test_pre_session_multiple_success ... ok
[INFO] [stdout] test estimation::tests::estimate_serial_basic ... ok
[INFO] [stdout] test estimation::tests::estimate_with_integration_overhead ... ok
[INFO] [stdout] test improve::tests::add_creates_improvement ... ok
[INFO] [stdout] test improve::tests::add_with_all_fields ... ok
[INFO] [stdout] test improve::tests::promote_nonexistent_returns_error ... ok
[INFO] [stdout] test improve::tests::dismiss_nonexistent_returns_error ... ok
[INFO] [stdout] test improve::tests::list_empty_database ... ok
[INFO] [stdout] test improve::tests::list_filters_by_status ... ok
[INFO] [stdout] test improve::tests::list_filters_by_status_and_category ... ok
[INFO] [stdout] test improve::tests::list_filters_by_category ... ok
[INFO] [stdout] test improve::tests::promote_sets_resolved_timestamp ... ok
[INFO] [stdout] test improve::tests::dismiss_sets_status ... ok
[INFO] [stdout] test improve::tests::add_multiple_increments_ref ... ok
[INFO] [stdout] test improve::tests::dismiss_sets_resolved_timestamp ... ok
[INFO] [stdout] test improve::tests::promote_sets_status ... ok
[INFO] [stdout] test improve::tests::dismiss_with_reason_stores_meta ... ok
[INFO] [stdout] test ingest::tests::build_observation_data_roundtrip ... ok
[INFO] [stdout] test ingest::tests::compile_invalid_anti_pattern_returns_error ... ok
[INFO] [stdout] test ingest::tests::compile_invalid_pattern_returns_error ... ok
[INFO] [stdout] test improve::tests::search_by_body ... ok
[INFO] [stdout] test improve::tests::show_existing_improvement ... ok
[INFO] [stdout] test improve::tests::show_nonexistent_returns_error ... ok
[INFO] [stdout] test improve::tests::search_case_insensitive ... ok
[INFO] [stdout] test improve::tests::search_by_context ... ok
[INFO] [stdout] test improve::tests::update_nonexistent_returns_error ... ok
[INFO] [stdout] test improve::tests::search_by_title ... ok
[INFO] [stdout] test ingest::tests::format_system_time_produces_iso8601 ... ok
[INFO] [stdout] test ingest::tests::format_system_time_recent ... ok
[INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_finish ... ok
[INFO] [stdout] test ingest::tests::extract_bead_id_from_bd_update_claim ... 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_from_bd_update_equals ... ok
[INFO] [stdout] test ingest::tests::extract_bead_id_prefers_claim_over_close ... ok
[INFO] [stdout] test improve::tests::search_no_results ... ok
[INFO] [stdout] test ingest::tests::extract_bead_id_none_for_unrelated_text ... 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::extract_bead_id_from_bd_close ... ok
[INFO] [stdout] test ingest::tests::rule_count_zero_still_emitted ... ok
[INFO] [stdout] test ingest::tests::rule_emit_no_match ... ok
[INFO] [stdout] test ingest::tests::rule_emit_boolean ... ok
[INFO] [stdout] test ingest::tests::rule_no_matches_returns_empty ... ok
[INFO] [stdout] test ingest::tests::rule_first_match_with_capture_group ... ok
[INFO] [stdout] test ingest::tests::rule_source_text ... ok
[INFO] [stdout] test ingest::tests::rule_transform_int ... ok
[INFO] [stdout] test ingest::tests::extract_bead_id_from_commit_message ... 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 ingest::tests::rule_transform_trim ... ok
[INFO] [stdout] test ingest::tests::multiple_rules_applied ... ok
[INFO] [stdout] test ingest::tests::rule_source_raw ... ok
[INFO] [stdout] test init::tests::default_commands_rust ... ok
[INFO] [stdout] test ingest::tests::attribute_session_updates_bead_metrics ... ok
[INFO] [stdout] test init::tests::detect_python_project_requirements ... 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 init::tests::generate_prompt_md_without_commands ... ok
[INFO] [stdout] test ingest::tests::attribute_session_from_jsonl_content ... ok
[INFO] [stdout] test init::tests::guidance_message_existing_prompt ... ok
[INFO] [stdout] test init::tests::guidance_message_unknown_project ... ok
[INFO] [stdout] test init::tests::guidance_message_with_llm_customized ... ok
[INFO] [stdout] test init::tests::guidance_message_with_detected_commands_no_llm ... ok
[INFO] [stdout] test init::tests::default_commands_unknown_is_empty ... ok
[INFO] [stdout] test init::tests::detect_python_project_pyproject ... ok
[INFO] [stdout] test init::tests::detect_node_project ... ok
[INFO] [stdout] test init::tests::test_agent_profiles_all_unique_names ... ok
[INFO] [stdout] test init::tests::has_anthropic_api_key_returns_true_when_set ... ok
[INFO] [stdout] test init::tests::rust_takes_priority_over_node ... ok
[INFO] [stdout] test init::tests::detect_go_project ... ok
[INFO] [stdout] test init::tests::test_apply_llm_prompt_result_agent_edited_in_place ... ok
[INFO] [stdout] test init::tests::test_apply_llm_prompt_result_empty_with_invalid_disk ... ok
[INFO] [stdout] test init::tests::test_generate_config_toml_aider ... ok
[INFO] [stdout] test init::tests::test_apply_llm_prompt_result_none_with_valid_disk ... ok
[INFO] [stdout] test init::tests::test_apply_llm_prompt_result_neither_valid_restores_original ... ok
[INFO] [stdout] test init::tests::test_generate_config_toml_node_claude ... 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_closed ... ok
[INFO] [stdout] test integrator::tests::test_check_tripped_returns_none_when_not_tripped ... ok
[INFO] [stdout] test integrator::tests::test_check_tripped_returns_some_when_tripped ... 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 init::tests::test_generate_config_toml_unknown_project ... ok
[INFO] [stdout] test init::tests::test_apply_llm_prompt_result_valid_output ... ok
[INFO] [stdout] test integrator::tests::test_circuit_breaker_exceeds_max ... 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_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 integrator::tests::test_circuit_breaker_independent_beads ... ok
[INFO] [stdout] test integrator::tests::test_compiler_check_no_build_system_passes ... ok
[INFO] [stdout] test init::tests::has_anthropic_api_key_returns_false_when_empty ... FAILED
[INFO] [stdout] test init::tests::has_anthropic_api_key_returns_false_when_unset ... FAILED
[INFO] [stdout] test init::tests::test_generate_config_toml_rust_claude ... ok
[INFO] [stdout] test integrator::tests::test_circuit_state_display ... ok
[INFO] [stdout] test integrator::tests::test_integration_error_display ... ok
[INFO] [stdout] test coordinator::tests::test_coordinator_exits_on_stop_file ... ok
[INFO] [stdout] test ingest::tests::ingest_session_no_exit_code_omits_event ... ok
[INFO] [stdout] test integrator::tests::test_integration_queue_new ... ok
[INFO] [stdout] test ingest::tests::ingest_with_raw_adapter ... ok
[INFO] [stdout] test ingest::tests::ingest_session_writes_events ... ok
[INFO] [stdout] test ingest::tests::ingest_session_writes_observation ... ok
[INFO] [stdout] test integrator::tests::test_get_head_commit ... ok
[INFO] [stdout] test ingest::tests::ingest_real_file_format ... 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 ingest::tests::ingest_with_rules_writes_events_and_observation ... ok
[INFO] [stdout] test integrator::tests::test_parent_ids_from_issue_supports_show_and_list_shapes ... ok
[INFO] [stdout] test integrator::tests::test_git_add_and_commit ... ok
[INFO] [stdout] test integrator::tests::test_reconciliation_no_build_system_passes ... 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 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_compiler_check_invalid_rust_project ... ok
[INFO] [stdout] test ingest::tests::attribute_session_no_bead_id_found ... ok
[INFO] [stdout] test integrator::tests::test_fast_forward_main ... ok
[INFO] [stdout] test integrator::tests::test_rollback_result_fields ... ok
[INFO] [stdout] test integrator::tests::test_integration_no_changes_trivial_merge ... ok
[INFO] [stdout] test integrator::tests::test_merge_main_into_branch_no_divergence ... ok
[INFO] [stdout] test integrator::tests::test_compiler_check_valid_rust_project ... ok
[INFO] [stdout] test integrator::tests::test_integration_skips_expansion_event_without_declared_affected_set ... ok
[INFO] [stdout] test integrator::tests::test_rollback_blocked_by_entanglement ... ok
[INFO] [stdout] test integrator::tests::test_spawn_integration_agent_nonexistent_command ... ok
[INFO] [stdout] test integrator::tests::test_integration_with_manifest_application ... ok
[INFO] [stdout] test integrator::tests::test_integration_records_expansion_event_for_uncovered_file ... ok
[INFO] [stdout] test integrator::tests::test_integration_skips_expansion_event_when_all_files_covered ... ok
[INFO] [stdout] test integrator::tests::test_tripped_failure_display_message ... 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_validation_circuit_breaker_zero_retries ... ok
[INFO] [stdout] test integrator::tests::test_spawn_integration_agent_sync ... ok
[INFO] [stdout] test metrics::tests::test_event_log_append_creates_file ... ok
[INFO] [stdout] test ingest::tests::ingest_session_idempotent_observation ... ok
[INFO] [stdout] test metrics::tests::test_event_log_append_multiple_events ... ok
[INFO] [stdout] test ingest::tests::attribute_session_accumulates_bead_metrics ... ok
[INFO] [stdout] test metrics::tests::test_event_log_error_display ... ok
[INFO] [stdout] test metrics::tests::test_event_log_path ... ok
[INFO] [stdout] test metrics::tests::test_session_event_serializes_to_json ... ok
[INFO] [stdout] test metrics::tests::test_session_event_null_exit_code ... ok
[INFO] [stdout] test metrics_cmd::tests::beads_no_database ... ok
[INFO] [stdout] test integrator::tests::test_tripped_failure_notes ... ok
[INFO] [stdout] test metrics::tests::test_event_log_append_to_nonexistent_dir_fails ... 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_failed_when_json_says_failed ... ok
[INFO] [stdout] test integrator::tests::test_integration_with_merge_conflict ... 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_speck_validate_passed_when_json_says_passed ... ok
[INFO] [stdout] test integrator::tests::test_speck_validate_skipped_when_binary_not_found ... ok
[INFO] [stdout] test metrics_cmd::tests::beads_empty_database ... ok
[INFO] [stdout] test metrics_cmd::tests::beads_fastest_slowest ... ok
[INFO] [stdout] test metrics_cmd::tests::beads_single_completed ... ok
[INFO] [stdout] test metrics_cmd::tests::export_no_database ... 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::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::events_all_sessions ... ok
[INFO] [stdout] test metrics_cmd::tests::beads_with_completed_and_open ... ok
[INFO] [stdout] test metrics_cmd::tests::events_empty_database ... ok
[INFO] [stdout] test metrics_cmd::tests::map_severity_to_category_mappings ... ok
[INFO] [stdout] test integrator::tests::test_reconciliation_failing_rust_project_flags_beads ... ok
[INFO] [stdout] test metrics_cmd::tests::events_nonexistent_session ... ok
[INFO] [stdout] test integrator::tests::test_rollback_successful ... ok
[INFO] [stdout] test metrics_cmd::tests::export_csv_format ... ok
[INFO] [stdout] test metrics_cmd::tests::events_filtered_by_session ... ok
[INFO] [stdout] test integrator::tests::test_rollback_forced_despite_entanglement ... ok
[INFO] [stdout] test metrics_cmd::tests::export_empty_database ... 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 integrator::tests::test_speck_validate_gate_blocks_integration_on_failure ... ok
[INFO] [stdout] test metrics_cmd::tests::export_json_format ... ok
[INFO] [stdout] test metrics_cmd::tests::export_unknown_format ... ok
[INFO] [stdout] test metrics_cmd::tests::query_no_database ... 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::migrate_both_sessions_and_improvements ... ok
[INFO] [stdout] test metrics_cmd::tests::migrate_improvements_with_category ... ok
[INFO] [stdout] test metrics_cmd::tests::rebuild_no_database ... ok
[INFO] [stdout] test metrics_cmd::tests::migrate_improvements_with_severity ... ok
[INFO] [stdout] test metrics_cmd::tests::query_avg_mode ... ok
[INFO] [stdout] test metrics_cmd::tests::migrate_sessions_no_exit_code ... ok
[INFO] [stdout] test metrics_cmd::tests::query_no_events ... ok
[INFO] [stdout] test metrics_cmd::tests::query_list_mode ... ok
[INFO] [stdout] test metrics_cmd::tests::reingest_empty_sessions_dir ... ok
[INFO] [stdout] test metrics_cmd::tests::query_unknown_aggregate ... ok
[INFO] [stdout] test metrics_cmd::tests::migrate_sessions_partial_columns ... ok
[INFO] [stdout] test metrics_cmd::tests::query_trend_mode ... ok
[INFO] [stdout] test metrics_cmd::tests::rebuild_empty_database ... 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::status_no_database ... ok
[INFO] [stdout] test integrator::tests::test_reconciliation_valid_rust_project_passes ... 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::log_ingests_jsonl ... ok
[INFO] [stdout] test metrics_cmd::tests::targets_config_from_toml ... ok
[INFO] [stdout] test metrics_cmd::tests::rebuild_replaces_stale_observations ... 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 integrator::tests::test_successful_integration ... ok
[INFO] [stdout] test metrics_cmd::tests::targets_avg_below_fail ... ok
[INFO] [stdout] test metrics_cmd::tests::truncate_bead_id_exact ... ok
[INFO] [stdout] test metrics_cmd::tests::truncate_bead_id_long ... 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 migrate::tests::test_consolidate_moves_session_files ... ok
[INFO] [stdout] test migrate::tests::test_consolidate_moves_status_file ... ok
[INFO] [stdout] test metrics_cmd::tests::status_with_observations ... ok
[INFO] [stdout] test migrate::tests::test_consolidate_no_legacy_files ... ok
[INFO] [stdout] test migrate::tests::test_consolidate_skips_existing_files ... ok
[INFO] [stdout] test migrate::tests::test_find_session_files_basic ... ok
[INFO] [stdout] test migrate::tests::test_find_session_files_empty_dir ... ok
[INFO] [stdout] test migrate::tests::test_find_session_files_custom_prefix ... 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::targets_all_unsupported_shows_summary ... ok
[INFO] [stdout] test module_detect::tests::module_name_derivation ... ok
[INFO] [stdout] test module_detect::tests::empty_project_no_modules ... ok
[INFO] [stdout] test metrics_cmd::tests::status_empty_database ... ok
[INFO] [stdout] test module_detect::tests::nested_submodules ... ok
[INFO] [stdout] test module_detect::tests::lib_rs_as_entry_point ... 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 metrics_cmd::tests::status_respects_last_limit ... ok
[INFO] [stdout] test module_detect::tests::module_without_entry_point ... 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 pool::tests::test_pool_error_display ... ok
[INFO] [stdout] test metrics_cmd::tests::targets_avg_below_pass ... ok
[INFO] [stdout] test metrics_cmd::tests::targets_multiple_rules_mixed_results ... 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 pool::tests::test_new_pool_all_idle ... 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 pool::tests::test_completed_workers_empty_initially ... 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_missing_prompt_file ... ok
[INFO] [stdout] test pool::tests::test_is_single_agent ... ok
[INFO] [stdout] test preflight::tests::test_no_git_remote ... ok
[INFO] [stdout] test preflight::tests::test_no_git_repo ... ok
[INFO] [stdout] test preflight::tests::test_git_repo_present ... ok
[INFO] [stdout] test preflight::tests::test_stream_json_without_verbose ... 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 progress::tests::resolve_body_rejects_multiple_sources ... ok
[INFO] [stdout] test pool::tests::test_no_idle_worker_error ... ok
[INFO] [stdout] test prompt::tests::test_assemble_all_commands_empty_returns_raw_prompt ... ok
[INFO] [stdout] test progress::tests::add_saves_entry_with_and_without_bead_id ... ok
[INFO] [stdout] test metrics_cmd::tests::reingest_clears_old_events ... ok
[INFO] [stdout] test prompt::tests::test_assemble_missing_prompt_file ... ok
[INFO] [stdout] test progress::tests::list_and_show_return_correct_data ... ok
[INFO] [stdout] test prompt::tests::test_assemble_no_db_skips_brief ... ok
[INFO] [stdout] test prompt::tests::test_assemble_multiline_command_output ... ok
[INFO] [stdout] test prompt::tests::test_assemble_no_prepend_commands ... ok
[INFO] [stdout] test pool::tests::test_reset_coding_worker_fails ... ok
[INFO] [stdout] test prompt::tests::test_assemble_nonzero_exit_still_captures_output ... ok
[INFO] [stdout] test prompt::tests::test_assemble_skips_empty_command_output ... 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 prompt::tests::test_assemble_with_single_prepend_command ... ok
[INFO] [stdout] test prompt::tests::test_assemble_with_multiple_prepend_commands ... ok
[INFO] [stdout] test prompt::tests::test_run_prepend_command_empty ... ok
[INFO] [stdout] test prompt::tests::test_run_prepend_command_success ... 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 pool::tests::test_session_files_use_numeric_naming ... ok
[INFO] [stdout] test public_api::tests::extract_identifier_basic ... ok
[INFO] [stdout] test public_api::tests::extract_from_files_convenience ... ok
[INFO] [stdout] test public_api::tests::extract_pub_async_fn ... 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::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::empty_module_no_symbols ... ok
[INFO] [stdout] test public_api::tests::extract_module_api_from_files ... ok
[INFO] [stdout] test public_api::tests::extract_pub_type_alias ... 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::pub_struct_tuple ... ok
[INFO] [stdout] test public_api::tests::multiple_symbols_one_file ... 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 public_api::tests::extract_public_apis_multiple_modules ... ok
[INFO] [stdout] test public_api::tests::symbols_sorted_by_kind_then_name ... ok
[INFO] [stdout] test pool::tests::test_reset_worker_after_completion ... ok
[INFO] [stdout] test ratelimit::tests::test_auth_failure_missing_file ... 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 ratelimit::tests::test_backoff_delay_zero_initial ... ok
[INFO] [stdout] test prompt::tests::test_assemble_empty_db_skips_brief ... ok
[INFO] [stdout] test prompt::tests::test_assemble_injects_brief_after_prepend ... ok
[INFO] [stdout] test ratelimit::tests::test_auth_failure_expired_key ... ok
[INFO] [stdout] test ratelimit::tests::test_auth_failure_invalid_x_api_key ... 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 metrics_cmd::tests::reingest_compressed_zst_file ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_error_event_without_rate_limit ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_error_event_with_usage_limit ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_turn_failed_with_usage_limit ... ok
[INFO] [stdout] test ratelimit::tests::test_detect_rate_limit_missing_file ... ok
[INFO] [stdout] test ratelimit::tests::test_detect_no_rate_limit_from_file_successful_session ... 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_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_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_extract_api_key_source_missing_file ... ok
[INFO] [stdout] test ratelimit::tests::test_extract_api_key_source_not_present ... ok
[INFO] [stdout] test ratelimit::tests::test_empty_content_not_rate_limited ... 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_error_result_with_rate_limit_case_insensitive ... ok
[INFO] [stdout] test ratelimit::tests::test_extract_api_key_source_present ... ok
[INFO] [stdout] test ratelimit::tests::test_no_result_event_not_rate_limited ... ok
[INFO] [stdout] test ratelimit::tests::test_normal_error_not_auth_failure ... ok
[INFO] [stdout] test ratelimit::tests::test_successful_result_with_rate_limit_in_result_text ... 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 ratelimit::tests::test_successful_session_with_rate_limit_in_tool_output ... ok
[INFO] [stdout] test prompt::tests::test_assemble_brief_without_prepend_commands ... 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 retention::tests::test_enforce_after_ingest_does_nothing_in_cleanup ... ok
[INFO] [stdout] test retention::tests::test_enforce_all_does_nothing ... ok
[INFO] [stdout] test retention::tests::test_enforce_days_deletes_old_files ... ok
[INFO] [stdout] test retention::tests::test_enforce_last_n_deletes_oldest ... 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_non_session_files_ignored ... ok
[INFO] [stdout] test retention::tests::test_parse_session_iteration_jsonl ... ok
[INFO] [stdout] test metrics_cmd::tests::reingest_last_n_only ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_quota_exhaustion_detected ... 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 retry::tests::test_proceed_when_output_sufficient ... ok
[INFO] [stdout] test ratelimit::tests::test_claude_quota_exhaustion_detected ... ok
[INFO] [stdout] test retry::tests::test_reset_clears_attempt_counter ... 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 ratelimit::tests::test_quota_from_file ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_quota_upgrade_to_pro ... ok
[INFO] [stdout] test retry::tests::test_skip_after_max_retries_exhausted ... ok
[INFO] [stdout] test ratelimit::tests::test_transient_rate_limit_not_quota ... ok
[INFO] [stdout] test retry::tests::test_zero_max_retries_skips_immediately ... ok
[INFO] [stdout] test ratelimit::tests::test_codex_quota_purchase_credits ... ok
[INFO] [stdout] test ratelimit::tests::test_no_quota_from_normal_failure ... ok
[INFO] [stdout] test scheduler::tests::assignable_disjoint_globs_all_assignable ... ok
[INFO] [stdout] test scheduler::tests::assignable_no_affected_set_on_bead_allowed_optimistically ... 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_no_affected_set_on_in_progress_does_not_lock ... ok
[INFO] [stdout] test scheduler::tests::assignable_multiple_in_progress_combined_locks ... ok
[INFO] [stdout] test retention::tests::test_parse_session_iteration_non_numeric ... 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_no_in_progress_returns_all ... ok
[INFO] [stdout] test scheduler::tests::assignable_no_ready_beads_returns_empty ... ok
[INFO] [stdout] test prompt::tests::test_assemble_passes_targets_config_to_brief ... ok
[INFO] [stdout] test scheduler::tests::assignable_skips_already_assigned_even_with_globs ... ok
[INFO] [stdout] test scheduler::tests::assignable_skips_already_assigned_beads ... 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_a_matches_everything ... 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_root_wildcard ... ok
[INFO] [stdout] test scheduler::tests::overlap_same_exact_file ... ok
[INFO] [stdout] test scheduler::tests::pair_both_wildcards_no_overlap ... ok
[INFO] [stdout] test pool::tests::test_spawn_worker_and_poll_completion ... ok
[INFO] [stdout] test scheduler::tests::pair_both_wildcards_overlap ... ok
[INFO] [stdout] test scheduler::tests::overlap_nested_globs ... 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_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::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::pair_glob_vs_file_overlap ... ok
[INFO] [stdout] test scheduler::tests::parse_single_glob ... ok
[INFO] [stdout] test scheduler::tests::parse_whitespace_handling ... ok
[INFO] [stdout] test scheduler::tests::parse_with_surrounding_text ... ok
[INFO] [stdout] test scheduler::tests::prefix_double_star ... ok
[INFO] [stdout] test scheduler::tests::prefix_no_wildcards ... ok
[INFO] [stdout] test scheduler::tests::prefix_bracket ... 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_empty ... ok
[INFO] [stdout] test scheduler::tests::schedule_next_none_when_no_ready_beads ... ok
[INFO] [stdout] test scheduler::tests::schedule_next_none_when_all_conflict ... 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_match ... ok
[INFO] [stdout] test scheduler::tests::strip_ci_exact ... ok
[INFO] [stdout] test scheduler::tests::strip_ci_no_match ... ok
[INFO] [stdout] test serve::tests::test_api_session_detail_not_found ... ok
[INFO] [stdout] test serve::tests::test_api_status_with_file ... ok
[INFO] [stdout] test metrics_cmd::tests::reingest_all_jsonl_files ... ok
[INFO] [stdout] test serve::tests::test_api_metrics_summary ... ok
[INFO] [stdout] test serve::tests::test_api_project ... 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 pool::tests::test_spawn_worker_single_agent_no_worktree ... 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_build_args_replaces_prompt_placeholder ... ok
[INFO] [stdout] test session::tests::test_output_file_path ... ok
[INFO] [stdout] test session::tests::test_run_session_captures_stderr ... ok
[INFO] [stdout] test serve::tests::test_stream_not_found ... ok
[INFO] [stdout] test serve::tests::test_api_sessions_with_data ... ok
[INFO] [stdout] test session::tests::test_run_session_prompt_via_stdin ... ok
[INFO] [stdout] test pool::tests::test_spawn_worker_failed_exit ... ok
[INFO] [stdout] test session::tests::test_run_session_reports_correct_byte_count ... ok
[INFO] [stdout] test serve::tests::test_api_sessions_empty ... ok
[INFO] [stdout] test serve::tests::test_api_sessions_last_param ... ok
[INFO] [stdout] test signal_correlator::tests::compute_smells_thresholds ... ok
[INFO] [stdout] test session::tests::test_run_session_echo_command ... ok
[INFO] [stdout] test session::tests::test_run_session_spawn_failure ... ok
[INFO] [stdout] test serve::tests::test_transcript_compressed_session ... ok
[INFO] [stdout] test serve::tests::test_stream_completed_session_replays_turns ... ok
[INFO] [stdout] test serve::tests::test_api_status_no_file ... ok
[INFO] [stdout] test serve::tests::test_transcript_not_found ... ok
[INFO] [stdout] test session::tests::test_run_session_nonzero_exit ... ok
[INFO] [stdout] test session::tests::test_run_session_duration_is_reasonable ... ok
[INFO] [stdout] test session::tests::test_run_session_prompt_via_file ... ok
[INFO] [stdout] test serve::tests::test_transcript_returns_turns ... ok
[INFO] [stdout] test signals::tests::test_force_kill_flag ... ok
[INFO] [stdout] test signals::tests::test_child_pid_management ... ok
[INFO] [stdout] test signals::tests::test_handler_is_clone ... ok
[INFO] [stdout] test signals::tests::test_initial_state ... ok
[INFO] [stdout] test signals::tests::test_request_shutdown ... ok
[INFO] [stdout] test signals::tests::test_stop_file_not_present ... ok
[INFO] [stdout] test signals::tests::test_stop_file_detected_and_deleted ... ok
[INFO] [stdout] test signals::tests::test_stop_file_sets_shutdown_flag ... ok
[INFO] [stdout] test pool::tests::test_multiple_workers_concurrent ... ok
[INFO] [stdout] test signals::tests::test_wait_for_force_kill_returns_immediately_when_set ... ok
[INFO] [stdout] test singleton::tests::test_double_acquire_fails ... ok
[INFO] [stdout] test singleton::tests::test_acquire_and_release ... 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 status::tests::test_all_harness_states_serialize ... ok
[INFO] [stdout] test status::tests::test_deserialize_error_display ... ok
[INFO] [stdout] test status::tests::test_display_status_multi_worker_label ... ok
[INFO] [stdout] test status::tests::test_display_status_no_file ... ok
[INFO] [stdout] test status::tests::test_display_status_with_data ... ok
[INFO] [stdout] test skills::tests::test_install_is_idempotent ... ok
[INFO] [stdout] test serve::tests::test_api_session_detail ... ok
[INFO] [stdout] test status::tests::test_format_bytes ... 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_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_overwrite ... ok
[INFO] [stdout] test signal_correlator::tests::empty_database_no_candidates ... ok
[INFO] [stdout] test status::tests::test_status_file_read_missing_returns_none ... ok
[INFO] [stdout] test status::tests::test_status_file_remove ... ok
[INFO] [stdout] test signals::tests::test_wait_for_force_kill_wakes_on_notify ... ok
[INFO] [stdout] test status::tests::test_status_file_write_to_nonexistent_dir_fails ... ok
[INFO] [stdout] test status::tests::test_status_tracker_lifecycle ... ok
[INFO] [stdout] test signal_correlator::tests::candidate_threshold_filters_low_scores ... ok
[INFO] [stdout] test structural_metrics::tests::cycle_detection_populates_in_cycle ... ok
[INFO] [stdout] test structural_metrics::tests::empty_project ... ok
[INFO] [stdout] test structural_metrics::tests::fan_in_scores_populated ... ok
[INFO] [stdout] test signal_correlator::tests::both_signals_produces_candidate ... ok
[INFO] [stdout] test structural_metrics::tests::module_total_lines_aggregated ... ok
[INFO] [stdout] test structural_metrics::tests::boundary_violations_counted_per_module ... ok
[INFO] [stdout] test signal_correlator::tests::correlation_report_totals ... ok
[INFO] [stdout] test structural_metrics::tests::api_surface_width_counted ... ok
[INFO] [stdout] test status::tests::test_status_file_read_roundtrip ... ok
[INFO] [stdout] test structural_metrics::tests::file_line_counts ... ok
[INFO] [stdout] test signal_correlator::tests::confidence_scales_with_signal_count ... ok
[INFO] [stdout] test structural_metrics::tests::single_file_project ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_cargo_toml_existing_dep_skipped ... ok
[INFO] [stdout] test structural_metrics::tests::multiple_modules_all_metrics ... ok
[INFO] [stdout] test structural_metrics::tests::no_cycles_in_dag ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_lib_rs_idempotent ... 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_cargo_toml_not_found ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_lib_rs_mod_declarations ... ok
[INFO] [stdout] test task_manifest::tests::test_parse_file_not_found ... ok
[INFO] [stdout] test task_manifest::tests::test_parse_empty ... ok
[INFO] [stdout] test task_manifest::tests::test_parse_invalid_kind ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_mod_rs_additions ... ok
[INFO] [stdout] test task_manifest::tests::test_parse_file ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_then_reverse_roundtrip ... ok
[INFO] [stdout] test task_manifest::tests::test_parse_full_manifest ... ok
[INFO] [stdout] test task_manifest::tests::test_reverse_already_absent ... ok
[INFO] [stdout] test task_manifest::tests::test_reverse_cargo_toml_dependency ... ok
[INFO] [stdout] test task_manifest::tests::test_reverse_lib_rs_additions ... ok
[INFO] [stdout] test tests::test_adapter_info_default_config ... ok
[INFO] [stdout] test tests::test_adapter_info_explicit_adapter ... ok
[INFO] [stdout] test tests::test_adapter_list ... ok
[INFO] [stdout] test task_manifest::tests::test_reverse_mod_rs_addition ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_full_manifest ... ok
[INFO] [stdout] test task_manifest::tests::test_reverse_nonexistent_file ... ok
[INFO] [stdout] test task_manifest::tests::test_apply_ts_index_additions ... ok
[INFO] [stdout] test structural_metrics::tests::god_file_detection_flagged ... ok
[INFO] [stdout] test tests::test_adapter_test_with_claude_jsonl ... ok
[INFO] [stdout] test tests::test_adapter_test_with_raw_adapter ... ok
[INFO] [stdout] test tests::test_adapter_test_with_empty_file ... ok
[INFO] [stdout] test tests::test_parse_bead_ids_from_bd_json ... ok
[INFO] [stdout] test signal_correlator::tests::empty_structural_report ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[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 <name>
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[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 <name>
[INFO] [stdout] test metrics_cmd::tests::log_auto_increments_session ... ok
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpvYL4q2/repo/.git/
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[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 <name>
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpKgLTYT/repo/.git/
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpnWFdAf/repo/.git/
[INFO] [stdout] test signal_correlator::tests::recency_weighting_applied ... ok
[INFO] [stdout] test signal_correlator::tests::historical_only_no_structural_no_candidate ... ok
[INFO] [stdout] test signal_correlator::tests::structural_only_no_historical_no_candidate ... ok
[INFO] [stderr] hint: Using 'master' as the name for the initial branch. This default branch name
[INFO] [stderr] hint: is subject to change. To configure the initial branch name to use in all
[INFO] [stderr] hint: of your new repositories, which will suppress this warning, call:
[INFO] [stderr] hint: 
[INFO] [stderr] hint: 	git config --global init.defaultBranch <name>
[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 <name>
[INFO] [stdout] Initialized empty Git repository in /tmp/.tmpF8KZOz/repo/.git/
[INFO] [stdout] test signal_correlator::tests::integration_iterations_contribute_to_score ... ok
[INFO] [stdout] [master (root-commit) 09eb812] 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] [stdout] [master (root-commit) 09eb812] init
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stdout] [master (root-commit) 09eb812] init
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stderr] Preparing worktree (detached HEAD 09eb812)
[INFO] [stderr] Preparing worktree (detached HEAD 09eb812)
[INFO] [stderr] Preparing worktree (detached HEAD 09eb812)
[INFO] [stdout] test status::tests::test_display_status_with_db ... ok
[INFO] [stdout] test watchdog::tests::test_file_size_empty_file ... ok
[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 09eb812 init
[INFO] [stdout] test watchdog::tests::test_monitor_cancelled_returns_process_exited ... ok
[INFO] [stdout] HEAD is now at 09eb812 init
[INFO] [stdout] HEAD is now at 09eb812 init
[INFO] [stdout] [master (root-commit) 09eb812] init
[INFO] [stdout]  1 file changed, 1 insertion(+)
[INFO] [stdout]  create mode 100644 README.md
[INFO] [stderr] Preparing worktree (detached HEAD 09eb812)
[INFO] [stdout] test tests::test_resolve_storage_data_dir_respects_non_default_config_path ... ok
[INFO] [stdout] test tests::test_integration_retry_no_failed_assignment ... ok
[INFO] [stdout] test tests::test_integration_log_empty ... ok
[INFO] [stdout] test tests::test_integration_rollback_no_integration_found ... ok
[INFO] [stdout] test tests::test_integration_rollback_already_rolled_back ... ok
[INFO] [stdout] test tests::test_integration_log_with_entries ... ok
[INFO] [stdout] HEAD is now at 09eb812 init
[INFO] [stdout] test tests::test_reap_stale_active_assignments_marks_integrated ... ok
[INFO] [stdout] test worktree::tests::test_cleanup_temp_files_no_panic_on_nonexistent ... ok
[INFO] [stdout] test worktree::tests::test_cleanup_temp_files_removes_matching_dir ... ok
[INFO] [stdout] test tests::test_workers_kill_no_active_assignment ... ok
[INFO] [stdout] test tests::test_resolve_storage_data_dir_shared_between_main_and_worktree ... ok
[INFO] [stdout] test tests::test_integration_log_with_last ... ok
[INFO] [stdout] test tests::test_workers_status_empty ... ok
[INFO] [stdout] test tests::test_workers_status_with_active ... ok
[INFO] [stdout] test tests::test_workers_kill_marks_as_failed ... 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 worktree::tests::test_cleanup_orphans_empty_dir ... ok
[INFO] [stdout] test worktree::tests::test_branch_exists_false ... ok
[INFO] [stdout] test worktree::tests::test_branch_exists_true ... ok
[INFO] [stdout] test worktree::tests::test_cleanup_orphans_nonexistent_dir ... ok
[INFO] [stdout] test worktree::tests::test_remove_nonexistent_is_ok ... ok
[INFO] [stdout] test worktree::tests::test_create_branch_not_found ... ok
[INFO] [stdout] test worktree::tests::test_create_and_remove_worktree ... ok
[INFO] [stdout] test tests::test_improve_commands_share_db_between_main_and_worktree ... ok
[INFO] [stdout] test tests::test_progress_commands_share_db_between_main_and_worktree ... ok
[INFO] [stdout] test worktree::tests::test_create_already_exists ... ok
[INFO] [stdout] test worktree::tests::test_prune ... ok
[INFO] [stdout] test worktree::tests::test_list_worktrees ... ok
[INFO] [stdout] test worktree::tests::test_cleanup_orphans ... 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] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- init::tests::has_anthropic_api_key_returns_false_when_empty stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'init::tests::has_anthropic_api_key_returns_false_when_empty' (756) panicked at src/init.rs:695:9:
[INFO] [stdout] assertion failed: !has_anthropic_api_key()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x59f08f028c6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x59f08f028c6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x59f08f028c6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x59f08f028c6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x59f08f040aea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x59f08f040aea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x59f08f02e002 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x59f08f02e002 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x59f08f0029af - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x59f08f0029af - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x59f08f01e639 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x59f08ea6a0ec - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x59f08ea6a0ec - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x59f08f01e8b2 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x59f08f01e8b2 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x59f08f002a9a - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x59f08eff7689 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x59f08f003b0d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x59f08f04135c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x59f08f041322 - core[4a92201981c6b77a]::panicking::panic
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x59f08e586740 - blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_empty
[INFO] [stdout]                                at /opt/rustwide/workdir/src/init.rs:695:9
[INFO] [stdout]   21:     0x59f08e578813 - blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_empty::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/init.rs:693:56
[INFO] [stdout]   22:     0x59f08e70b216 - <blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_empty::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x59f08ea5d3cb - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x59f08ea5d3cb - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x59f08ea6abbb - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x59f08ea642d4 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x59f08ea642d4 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x59f08ea6d7c2 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x59f08ea6d7c2 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x59f08f027c6f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   42:     0x59f08f027c6f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x701cea2e7aa4 - <unknown>
[INFO] [stdout]   44:     0x701cea374a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- init::tests::has_anthropic_api_key_returns_false_when_unset stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'init::tests::has_anthropic_api_key_returns_false_when_unset' (757) panicked at src/init.rs:689:9:
[INFO] [stdout] assertion failed: !has_anthropic_api_key()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x59f08f028c6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x59f08f028c6a - std[1209cfb42f6d497f]::backtrace_rs::backtrace::trace_unsynchronized::<std[1209cfb42f6d497f]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x59f08f028c6a - std[1209cfb42f6d497f]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x59f08f028c6a - <<std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[4a92201981c6b77a]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x59f08f040aea - <core[4a92201981c6b77a]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x59f08f040aea - core[4a92201981c6b77a]::fmt::write
[INFO] [stdout]    6:     0x59f08f02e002 - std[1209cfb42f6d497f]::io::default_write_fmt::<alloc[420bb310a727dfd7]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x59f08f02e002 - <alloc[420bb310a727dfd7]::vec::Vec<u8> as std[1209cfb42f6d497f]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x59f08f0029af - <std[1209cfb42f6d497f]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x59f08f0029af - std[1209cfb42f6d497f]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x59f08f01e639 - std[1209cfb42f6d497f]::panicking::default_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x59f08ea6a0ec - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x59f08ea6a0ec - test[59e67a9bc0e119f1]::test_main_inner::<test[59e67a9bc0e119f1]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x59f08f01e8b2 - <alloc[420bb310a727dfd7]::boxed::Box<dyn for<'a, 'b> core[4a92201981c6b77a]::ops::function::Fn<(&'a std[1209cfb42f6d497f]::panic::PanicHookInfo<'b>,), Output = ()> + core[4a92201981c6b77a]::marker::Sync + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::Fn<(&std[1209cfb42f6d497f]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x59f08f01e8b2 - std[1209cfb42f6d497f]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x59f08f002a9a - std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x59f08eff7689 - std[1209cfb42f6d497f]::sys::backtrace::__rust_end_short_backtrace::<std[1209cfb42f6d497f]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x59f08f003b0d - __rustc[4effac393e9f3da6]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x59f08f04135c - core[4a92201981c6b77a]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x59f08f041322 - core[4a92201981c6b77a]::panicking::panic
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x59f08e586776 - blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_unset
[INFO] [stdout]                                at /opt/rustwide/workdir/src/init.rs:689:9
[INFO] [stdout]   21:     0x59f08e578843 - blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_unset::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/init.rs:686:56
[INFO] [stdout]   22:     0x59f08e70b256 - <blacksmith[e294a92f1627069]::init::tests::has_anthropic_api_key_returns_false_when_unset::{closure#0} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x59f08ea5d3cb - <fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x59f08ea5d3cb - test[59e67a9bc0e119f1]::__rust_begin_short_backtrace::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, fn() -> core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:724:18
[INFO] [stdout]   25:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:74
[INFO] [stdout]   26:     0x59f08ea6abbb - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panicking::catch_unwind::<core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>, core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x59f08ea6abbb - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<test[59e67a9bc0e119f1]::run_test_in_process::{closure#0}>, core[4a92201981c6b77a]::result::Result<(), alloc[420bb310a727dfd7]::string::String>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test_in_process
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:747:27
[INFO] [stdout]   31:     0x59f08ea6abbb - test[59e67a9bc0e119f1]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:668:43
[INFO] [stdout]   32:     0x59f08ea642d4 - test[59e67a9bc0e119f1]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/test/src/lib.rs:698:41
[INFO] [stdout]   33:     0x59f08ea642d4 - std[1209cfb42f6d497f]::sys::backtrace::__rust_begin_short_backtrace::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   35:     0x59f08ea6d7c2 - <core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panicking::catch_unwind::do_call::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panicking::catch_unwind::<(), core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::panic::catch_unwind::<core[4a92201981c6b77a]::panic::unwind_safe::AssertUnwindSafe<std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x59f08ea6d7c2 - std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked::<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   40:     0x59f08ea6d7c2 - <std[1209cfb42f6d497f]::thread::lifecycle::spawn_unchecked<test[59e67a9bc0e119f1]::run_test::{closure#1}, ()>::{closure#1} as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x59f08f027c6f - <alloc[420bb310a727dfd7]::boxed::Box<dyn core[4a92201981c6b77a]::ops::function::FnOnce<(), Output = ()> + core[4a92201981c6b77a]::marker::Send> as core[4a92201981c6b77a]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   42:     0x59f08f027c6f - <std[1209cfb42f6d497f]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/f9988fefd3add01f414f52b414308e7872622fee/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x701cea2e7aa4 - <unknown>
[INFO] [stdout]   44:     0x701cea374a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     init::tests::has_anthropic_api_key_returns_false_when_empty
[INFO] [stdout]     init::tests::has_anthropic_api_key_returns_false_when_unset
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1204 passed; 2 failed; 1 ignored; 0 measured; 0 filtered out; finished in 17.32s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin blacksmith`
[INFO] running `Command { std: "docker" "inspect" "8e0e560fa547b07bef961fe1dc01b3b991c0382bc88368d2bb30be17a5b52ab7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e0e560fa547b07bef961fe1dc01b3b991c0382bc88368d2bb30be17a5b52ab7", kill_on_drop: false }`
[INFO] [stdout] 8e0e560fa547b07bef961fe1dc01b3b991c0382bc88368d2bb30be17a5b52ab7
