[INFO] fetching crate edict-cli 0.20.2... [INFO] testing edict-cli-0.20.2 against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065 [INFO] extracting crate edict-cli 0.20.2 into /workspace/builds/worker-2-tc2/source [INFO] started tweaking crates.io crate edict-cli 0.20.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate edict-cli 0.20.2 [INFO] tweaked toml for crates.io crate edict-cli 0.20.2 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate edict-cli 0.20.2 on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate edict-cli 0.20.2 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" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1448bc3c82c75d272d791bdcbf676b456c310a8e5fb5d925f25d27e3c0a09de0 [INFO] running `Command { std: "docker" "start" "-a" "1448bc3c82c75d272d791bdcbf676b456c310a8e5fb5d925f25d27e3c0a09de0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1448bc3c82c75d272d791bdcbf676b456c310a8e5fb5d925f25d27e3c0a09de0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1448bc3c82c75d272d791bdcbf676b456c310a8e5fb5d925f25d27e3c0a09de0", kill_on_drop: false }` [INFO] [stdout] 1448bc3c82c75d272d791bdcbf676b456c310a8e5fb5d925f25d27e3c0a09de0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 56b04dcf61060665cfc5aec15a17a5f4b6b485fb07e1a1d169d5a05fee8f8d42 [INFO] running `Command { std: "docker" "start" "-a" "56b04dcf61060665cfc5aec15a17a5f4b6b485fb07e1a1d169d5a05fee8f8d42", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Compiling futures-sink v0.3.32 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling futures-io v0.3.32 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling http v1.4.0 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling zerocopy v0.8.40 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling find-msvc-tools v0.1.9 [INFO] [stderr] Compiling futures-channel v0.3.32 [INFO] [stderr] Compiling http-body v1.0.1 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling socket2 v0.6.2 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling opentelemetry v0.31.0 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling form_urlencoded v1.2.2 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling prost-derive v0.14.3 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rustls-pki-types v1.14.0 [INFO] [stderr] Compiling pin-project v1.1.11 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling ipnet v2.12.0 [INFO] [stderr] Compiling iri-string v0.7.10 [INFO] [stderr] Compiling tracing-serde v0.2.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling strict v0.2.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling crossbeam-queue v0.3.12 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling prost v0.14.3 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling tonic v0.14.5 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling tracing-subscriber v0.3.22 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling crokey-proc_macros v1.4.0 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling opentelemetry_sdk v0.31.0 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling unicode-width v0.2.2 [INFO] [stderr] Compiling winnow v0.7.14 [INFO] [stderr] Compiling clap_derive v4.5.55 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling lazy-regex-proc_macros v3.6.0 [INFO] [stderr] Compiling tonic-prost v0.14.5 [INFO] [stderr] Compiling console v0.15.11 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling crokey v1.4.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling tempfile v3.26.0 [INFO] [stderr] Compiling crossbeam v0.8.4 [INFO] [stderr] Compiling lazy-regex v3.6.0 [INFO] [stderr] Compiling coolor v1.1.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling webpki-roots v1.0.6 [INFO] [stderr] Compiling ureq-proto v0.5.3 [INFO] [stderr] Compiling minimad v0.14.0 [INFO] [stderr] Compiling unicode-width v0.1.14 [INFO] [stderr] Compiling utf-8 v0.7.6 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling termimad v0.34.1 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling reqwest v0.12.28 [INFO] [stderr] Compiling dialoguer v0.11.0 [INFO] [stderr] Compiling opentelemetry-proto v0.31.0 [INFO] [stderr] Compiling clap v4.5.60 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling tracing-opentelemetry v0.32.1 [INFO] [stderr] Compiling opentelemetry-appender-tracing v0.31.1 [INFO] [stderr] Compiling minijinja v2.17.1 [INFO] [stderr] Compiling opentelemetry-http v0.31.0 [INFO] [stderr] Compiling opentelemetry-otlp v0.31.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling ureq v3.2.0 [INFO] [stderr] Compiling edict-cli v0.20.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HookEntry` and `HookEvent` [INFO] [stdout] --> src/hooks/mod.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | pub use registry::{HookEntry, HookEvent, HookRegistry}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `active` and `expires_at` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Claim { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub expires_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Claim` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bone_ids` and `workspace_names` are never used [INFO] [stdout] --> src/commands/protocol/adapters.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Claim { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 33 | /// Extract bone IDs from `bone://project/bd-xxx` patterns. [INFO] [stdout] 34 | pub fn bone_ids(&self) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn workspace_names(&self) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `advice` is never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct WorkspacesResponse { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 64 | pub advice: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WorkspacesResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `is_current`, `change_id`, `commit_id`, and `description` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct Workspace { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | pub is_current: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 74 | #[serde(default)] [INFO] [stdout] 75 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 76 | #[serde(default)] [INFO] [stdout] 77 | pub commit_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 78 | #[serde(default)] [INFO] [stdout] 79 | pub description: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Workspace` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `level`, `message`, and `details` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct WorkspaceAdvice { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 84 | #[serde(default)] [INFO] [stdout] 85 | pub level: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | #[serde(default)] [INFO] [stdout] 87 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 88 | #[serde(default)] [INFO] [stdout] 89 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WorkspaceAdvice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `assignees`, `labels`, `kind`, and `urgency` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct BoneInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 99 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub assignees: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | #[serde(default)] [INFO] [stdout] 107 | pub labels: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 108 | #[serde(rename = "kind", default)] [INFO] [stdout] 109 | pub kind: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub urgency: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BoneInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title`, `change_id`, and `author` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct ReviewSummary { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 136 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 141 | #[serde(default)] [INFO] [stdout] 142 | pub author: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `threads` is never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 147 | pub struct ReviewDetailResponse { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 150 | pub threads: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewDetailResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title` and `change_id` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct ReviewDetail { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 157 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `thread_id`, `file`, `line`, `resolved`, and `comments` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct ReviewThread { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 188 | pub thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 189 | #[serde(default)] [INFO] [stdout] 190 | pub file: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 191 | #[serde(default)] [INFO] [stdout] 192 | pub line: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 193 | #[serde(default)] [INFO] [stdout] 194 | pub resolved: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 195 | #[serde(default)] [INFO] [stdout] 196 | pub comments: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewThread` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `author`, `body`, and `created_at` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 200 | pub struct ReviewComment { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 201 | #[serde(default)] [INFO] [stdout] 202 | pub author: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 203 | #[serde(default)] [INFO] [stdout] 204 | pub body: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 205 | #[serde(default)] [INFO] [stdout] 206 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NotFound` is never constructed [INFO] [stdout] --> src/commands/protocol/adapters.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 212 | pub enum AdapterError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 213 | ParseFailed { tool: &'static str, detail: String }, [INFO] [stdout] 214 | NotFound { tool: &'static str, detail: String }, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdapterError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_review_detail` is never used [INFO] [stdout] --> src/commands/protocol/adapters.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | pub fn parse_review_detail(json: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OutputCaptureFailed` is never constructed [INFO] [stdout] --> src/commands/protocol/executor.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum ExecutionError { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 40 | OutputCaptureFailed(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 29s [INFO] running `Command { std: "docker" "inspect" "56b04dcf61060665cfc5aec15a17a5f4b6b485fb07e1a1d169d5a05fee8f8d42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "56b04dcf61060665cfc5aec15a17a5f4b6b485fb07e1a1d169d5a05fee8f8d42", kill_on_drop: false }` [INFO] [stdout] 56b04dcf61060665cfc5aec15a17a5f4b6b485fb07e1a1d169d5a05fee8f8d42 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cc8683fcb65ab2461de060f199e49925aad38f00a0e5025aa1456eacfd9d451e [INFO] running `Command { std: "docker" "start" "-a" "cc8683fcb65ab2461de060f199e49925aad38f00a0e5025aa1456eacfd9d451e", kill_on_drop: false }` [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling assert_cmd v2.1.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HookEntry` and `HookEvent` [INFO] [stdout] --> src/hooks/mod.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | pub use registry::{HookEntry, HookEvent, HookRegistry}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `active` and `expires_at` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:25:9 [INFO] [stdout] | [INFO] [stdout] 19 | pub struct Claim { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | pub active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 29 | pub expires_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Claim` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `bone_ids` and `workspace_names` are never used [INFO] [stdout] --> src/commands/protocol/adapters.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Claim { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] 33 | /// Extract bone IDs from `bone://project/bd-xxx` patterns. [INFO] [stdout] 34 | pub fn bone_ids(&self) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub fn workspace_names(&self) -> Vec<&str> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `advice` is never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct WorkspacesResponse { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 64 | pub advice: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WorkspacesResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `is_current`, `change_id`, `commit_id`, and `description` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct Workspace { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | pub is_current: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 74 | #[serde(default)] [INFO] [stdout] 75 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 76 | #[serde(default)] [INFO] [stdout] 77 | pub commit_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 78 | #[serde(default)] [INFO] [stdout] 79 | pub description: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Workspace` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `level`, `message`, and `details` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct WorkspaceAdvice { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 84 | #[serde(default)] [INFO] [stdout] 85 | pub level: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 86 | #[serde(default)] [INFO] [stdout] 87 | pub message: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 88 | #[serde(default)] [INFO] [stdout] 89 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WorkspaceAdvice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `assignees`, `labels`, `kind`, and `urgency` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct BoneInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 99 | pub id: String, [INFO] [stdout] | ^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub assignees: Vec, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 106 | #[serde(default)] [INFO] [stdout] 107 | pub labels: Vec, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 108 | #[serde(rename = "kind", default)] [INFO] [stdout] 109 | pub kind: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub urgency: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BoneInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title`, `change_id`, and `author` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct ReviewSummary { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 136 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 141 | #[serde(default)] [INFO] [stdout] 142 | pub author: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `threads` is never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 147 | pub struct ReviewDetailResponse { [INFO] [stdout] | -------------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 150 | pub threads: Vec, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewDetailResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title` and `change_id` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct ReviewDetail { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 157 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `thread_id`, `file`, `line`, `resolved`, and `comments` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct ReviewThread { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 188 | pub thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 189 | #[serde(default)] [INFO] [stdout] 190 | pub file: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 191 | #[serde(default)] [INFO] [stdout] 192 | pub line: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 193 | #[serde(default)] [INFO] [stdout] 194 | pub resolved: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 195 | #[serde(default)] [INFO] [stdout] 196 | pub comments: Vec, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewThread` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `author`, `body`, and `created_at` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 200 | pub struct ReviewComment { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 201 | #[serde(default)] [INFO] [stdout] 202 | pub author: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 203 | #[serde(default)] [INFO] [stdout] 204 | pub body: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 205 | #[serde(default)] [INFO] [stdout] 206 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NotFound` is never constructed [INFO] [stdout] --> src/commands/protocol/adapters.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 212 | pub enum AdapterError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 213 | ParseFailed { tool: &'static str, detail: String }, [INFO] [stdout] 214 | NotFound { tool: &'static str, detail: String }, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdapterError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_review_detail` is never used [INFO] [stdout] --> src/commands/protocol/adapters.rs:259:8 [INFO] [stdout] | [INFO] [stdout] 259 | pub fn parse_review_detail(json: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OutputCaptureFailed` is never constructed [INFO] [stdout] --> src/commands/protocol/executor.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum ExecutionError { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 40 | OutputCaptureFailed(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling edict-cli v0.20.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:8:28 [INFO] [stdout] | [INFO] [stdout] 8 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:17:28 [INFO] [stdout] | [INFO] [stdout] 17 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:32:28 [INFO] [stdout] | [INFO] [stdout] 32 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:51:28 [INFO] [stdout] | [INFO] [stdout] 51 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:97:28 [INFO] [stdout] | [INFO] [stdout] 97 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:151:28 [INFO] [stdout] | [INFO] [stdout] 151 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:223:28 [INFO] [stdout] | [INFO] [stdout] 223 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stdout] --> tests/run_agent_integration.rs:266:28 [INFO] [stdout] | [INFO] [stdout] 266 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `HookEntry` and `HookEvent` [INFO] [stdout] --> src/hooks/mod.rs:4:20 [INFO] [stdout] | [INFO] [stdout] 4 | pub use registry::{HookEntry, HookEvent, HookRegistry}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `config_dir` [INFO] [stdout] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `is_current`, `change_id`, `commit_id`, and `description` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:73:9 [INFO] [stdout] | [INFO] [stdout] 68 | pub struct Workspace { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 73 | pub is_current: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 74 | #[serde(default)] [INFO] [stdout] 75 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 76 | #[serde(default)] [INFO] [stdout] 77 | pub commit_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 78 | #[serde(default)] [INFO] [stdout] 79 | pub description: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Workspace` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `level` and `details` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 83 | pub struct WorkspaceAdvice { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] 84 | #[serde(default)] [INFO] [stdout] 85 | pub level: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub details: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WorkspaceAdvice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `kind` and `urgency` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:109:9 [INFO] [stdout] | [INFO] [stdout] 98 | pub struct BoneInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 109 | pub kind: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 110 | #[serde(default)] [INFO] [stdout] 111 | pub urgency: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BoneInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title`, `change_id`, and `author` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct ReviewSummary { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 136 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 141 | #[serde(default)] [INFO] [stdout] 142 | pub author: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `title` and `change_id` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:157:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct ReviewDetail { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 157 | pub title: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 161 | pub change_id: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `thread_id`, `file`, `line`, and `resolved` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 187 | pub struct ReviewThread { [INFO] [stdout] | ------------ fields in this struct [INFO] [stdout] 188 | pub thread_id: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 189 | #[serde(default)] [INFO] [stdout] 190 | pub file: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 191 | #[serde(default)] [INFO] [stdout] 192 | pub line: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] 193 | #[serde(default)] [INFO] [stdout] 194 | pub resolved: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewThread` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `author`, `body`, and `created_at` are never read [INFO] [stdout] --> src/commands/protocol/adapters.rs:202:9 [INFO] [stdout] | [INFO] [stdout] 200 | pub struct ReviewComment { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 201 | #[serde(default)] [INFO] [stdout] 202 | pub author: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 203 | #[serde(default)] [INFO] [stdout] 204 | pub body: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 205 | #[serde(default)] [INFO] [stdout] 206 | pub created_at: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ReviewComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NotFound` is never constructed [INFO] [stdout] --> src/commands/protocol/adapters.rs:214:5 [INFO] [stdout] | [INFO] [stdout] 212 | pub enum AdapterError { [INFO] [stdout] | ------------ variant in this enum [INFO] [stdout] 213 | ParseFailed { tool: &'static str, detail: String }, [INFO] [stdout] 214 | NotFound { tool: &'static str, detail: String }, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AdapterError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OutputCaptureFailed` is never constructed [INFO] [stdout] --> src/commands/protocol/executor.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 36 | pub enum ExecutionError { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 40 | OutputCaptureFailed(String), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ExecutionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 16.13s [INFO] running `Command { std: "docker" "inspect" "cc8683fcb65ab2461de060f199e49925aad38f00a0e5025aa1456eacfd9d451e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cc8683fcb65ab2461de060f199e49925aad38f00a0e5025aa1456eacfd9d451e", kill_on_drop: false }` [INFO] [stdout] cc8683fcb65ab2461de060f199e49925aad38f00a0e5025aa1456eacfd9d451e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 600f942183b9d177ea3098deeacf23db41576fa96a853ca35e2e7a8b837c5a97 [INFO] running `Command { std: "docker" "start" "-a" "600f942183b9d177ea3098deeacf23db41576fa96a853ca35e2e7a8b837c5a97", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `config_dir` [INFO] [stderr] --> src/commands/dev_loop/mod.rs:36:18 [INFO] [stderr] | [INFO] [stderr] 36 | let (config, config_dir) = load_config(&project_root)?; [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_config_dir` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `edict-cli` (lib) generated 1 warning (run `cargo fix --lib -p edict-cli` to apply 1 suggestion) [INFO] [stderr] warning: unused imports: `HookEntry` and `HookEvent` [INFO] [stderr] --> src/hooks/mod.rs:4:20 [INFO] [stderr] | [INFO] [stderr] 4 | pub use registry::{HookEntry, HookEvent, HookRegistry}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `active` and `expires_at` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 19 | pub struct Claim { [INFO] [stderr] | ----- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 25 | pub active: bool, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 29 | pub expires_at: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Claim` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: methods `bone_ids` and `workspace_names` are never used [INFO] [stderr] --> src/commands/protocol/adapters.rs:34:12 [INFO] [stderr] | [INFO] [stderr] 32 | impl Claim { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] 33 | /// Extract bone IDs from `bone://project/bd-xxx` patterns. [INFO] [stderr] 34 | pub fn bone_ids(&self) -> Vec<&str> { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 45 | pub fn workspace_names(&self) -> Vec<&str> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `advice` is never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 60 | pub struct WorkspacesResponse { [INFO] [stderr] | ------------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 64 | pub advice: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WorkspacesResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `is_current`, `change_id`, `commit_id`, and `description` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 68 | pub struct Workspace { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 73 | pub is_current: bool, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 74 | #[serde(default)] [INFO] [stderr] 75 | pub change_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 76 | #[serde(default)] [INFO] [stderr] 77 | pub commit_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 78 | #[serde(default)] [INFO] [stderr] 79 | pub description: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Workspace` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `level`, `message`, and `details` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 83 | pub struct WorkspaceAdvice { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 84 | #[serde(default)] [INFO] [stderr] 85 | pub level: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 86 | #[serde(default)] [INFO] [stderr] 87 | pub message: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 88 | #[serde(default)] [INFO] [stderr] 89 | pub details: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WorkspaceAdvice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `id`, `assignees`, `labels`, `kind`, and `urgency` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 98 | pub struct BoneInfo { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 99 | pub id: String, [INFO] [stderr] | ^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub assignees: Vec, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 106 | #[serde(default)] [INFO] [stderr] 107 | pub labels: Vec, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 108 | #[serde(rename = "kind", default)] [INFO] [stderr] 109 | pub kind: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 110 | #[serde(default)] [INFO] [stderr] 111 | pub urgency: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BoneInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `title`, `change_id`, and `author` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:136:9 [INFO] [stderr] | [INFO] [stderr] 133 | pub struct ReviewSummary { [INFO] [stderr] | ------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 136 | pub title: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub change_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 141 | #[serde(default)] [INFO] [stderr] 142 | pub author: Option, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewSummary` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `threads` is never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:150:9 [INFO] [stderr] | [INFO] [stderr] 147 | pub struct ReviewDetailResponse { [INFO] [stderr] | -------------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 150 | pub threads: Vec, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewDetailResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `title` and `change_id` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct ReviewDetail { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] ... [INFO] [stderr] 157 | pub title: Option, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 161 | pub change_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `thread_id`, `file`, `line`, `resolved`, and `comments` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 187 | pub struct ReviewThread { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 188 | pub thread_id: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 189 | #[serde(default)] [INFO] [stderr] 190 | pub file: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 191 | #[serde(default)] [INFO] [stderr] 192 | pub line: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 193 | #[serde(default)] [INFO] [stderr] 194 | pub resolved: bool, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 195 | #[serde(default)] [INFO] [stderr] 196 | pub comments: Vec, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewThread` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `author`, `body`, and `created_at` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:202:9 [INFO] [stderr] | [INFO] [stderr] 200 | pub struct ReviewComment { [INFO] [stderr] | ------------- fields in this struct [INFO] [stderr] 201 | #[serde(default)] [INFO] [stderr] 202 | pub author: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 203 | #[serde(default)] [INFO] [stderr] 204 | pub body: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] 205 | #[serde(default)] [INFO] [stderr] 206 | pub created_at: Option, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewComment` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: variant `NotFound` is never constructed [INFO] [stderr] --> src/commands/protocol/adapters.rs:214:5 [INFO] [stderr] | [INFO] [stderr] 212 | pub enum AdapterError { [INFO] [stderr] | ------------ variant in this enum [INFO] [stderr] 213 | ParseFailed { tool: &'static str, detail: String }, [INFO] [stderr] 214 | NotFound { tool: &'static str, detail: String }, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AdapterError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `parse_review_detail` is never used [INFO] [stderr] --> src/commands/protocol/adapters.rs:259:8 [INFO] [stderr] | [INFO] [stderr] 259 | pub fn parse_review_detail(json: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `OutputCaptureFailed` is never constructed [INFO] [stderr] --> src/commands/protocol/executor.rs:40:5 [INFO] [stderr] | [INFO] [stderr] 36 | pub enum ExecutionError { [INFO] [stderr] | -------------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 40 | OutputCaptureFailed(String), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ExecutionError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `edict-cli` (bin "edict") generated 16 warnings (1 duplicate) (run `cargo fix --bin "edict" -p edict-cli` to apply 1 suggestion) [INFO] [stderr] warning: fields `is_current`, `change_id`, `commit_id`, and `description` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:73:9 [INFO] [stderr] | [INFO] [stderr] 68 | pub struct Workspace { [INFO] [stderr] | --------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 73 | pub is_current: bool, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 74 | #[serde(default)] [INFO] [stderr] 75 | pub change_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 76 | #[serde(default)] [INFO] [stderr] 77 | pub commit_id: Option, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 78 | #[serde(default)] [INFO] [stderr] 79 | pub description: Option, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Workspace` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `level` and `details` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:85:9 [INFO] [stderr] | [INFO] [stderr] 83 | pub struct WorkspaceAdvice { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] 84 | #[serde(default)] [INFO] [stderr] 85 | pub level: String, [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 89 | pub details: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WorkspaceAdvice` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `kind` and `urgency` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:109:9 [INFO] [stderr] | [INFO] [stderr] 98 | pub struct BoneInfo { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 109 | pub kind: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 110 | #[serde(default)] [INFO] [stderr] 111 | pub urgency: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `BoneInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `thread_id`, `file`, `line`, and `resolved` are never read [INFO] [stderr] --> src/commands/protocol/adapters.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 187 | pub struct ReviewThread { [INFO] [stderr] | ------------ fields in this struct [INFO] [stderr] 188 | pub thread_id: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 189 | #[serde(default)] [INFO] [stderr] 190 | pub file: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 191 | #[serde(default)] [INFO] [stderr] 192 | pub line: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] 193 | #[serde(default)] [INFO] [stderr] 194 | pub resolved: bool, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ReviewThread` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:8:28 [INFO] [stderr] | [INFO] [stderr] 8 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:17:28 [INFO] [stderr] | [INFO] [stderr] 17 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:51:28 [INFO] [stderr] | [INFO] [stderr] 51 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:97:28 [INFO] [stderr] | [INFO] [stderr] 97 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:151:28 [INFO] [stderr] | [INFO] [stderr] 151 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:223:28 [INFO] [stderr] | [INFO] [stderr] 223 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!` [INFO] [stderr] --> tests/run_agent_integration.rs:266:28 [INFO] [stderr] | [INFO] [stderr] 266 | let mut cmd = Command::cargo_bin("edict").unwrap(); [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `edict-cli` (lib test) generated 1 warning (1 duplicate) [INFO] [stderr] warning: `edict-cli` (bin "edict" test) generated 11 warnings (7 duplicates) [INFO] [stderr] warning: `edict-cli` (test "run_agent_integration") generated 8 warnings [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.48s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/edict-4e30bd58dc9f778a) [INFO] [stdout] [INFO] [stdout] running 352 tests [INFO] [stdout] test commands::dev_loop::tests::parse_inbox_count_bare_number ... ok [INFO] [stdout] test commands::dev_loop::prompt::tests::prompt_contains_protocol_fallback_wording ... ok [INFO] [stdout] test commands::dev_loop::prompt::tests::prompt_contains_all_protocol_commands ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_inbox_count_total_unread ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_assignments_envelope ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_edict_array_command ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_empty ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_edict_string_command ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_legacy_botbox_array_command ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_legacy_botbox_string_command ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_preserves_non_botbox ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_old_format ... ok [INFO] [stdout] test commands::hooks::tests::validate_name_accepts_valid ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_assignments_multiple ... ok [INFO] [stdout] test commands::init::tests::test_build_config_no_env_for_non_rust ... ok [INFO] [stdout] test commands::hooks::tests::validate_name_rejects_invalid ... ok [INFO] [stdout] test commands::init::tests::test_config_version_matches ... ok [INFO] [stdout] test commands::init::tests::test_detect_from_empty_agents_md ... ok [INFO] [stdout] test commands::init::tests::test_detect_from_agents_md ... ok [INFO] [stdout] test commands::init::tests::test_fetch_gitignore_validates_languages ... ok [INFO] [stdout] test commands::init::tests::test_validate_name_invalid ... ok [INFO] [stdout] test commands::init::tests::test_validate_name_valid ... ok [INFO] [stdout] test commands::init::tests::test_validate_values_invalid ... ok [INFO] [stdout] test commands::init::tests::test_validate_values_ok ... ok [INFO] [stdout] test commands::protocol::adapters::tests::claim_bone_id_extraction ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::claim_no_matching_patterns ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_extra_fields ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_invalid_json ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_minimal ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_empty ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_extra_fields_tolerated ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_invalid_json ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_missing_optional_fields ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_extra_fields ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_minimal ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_with_votes ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_reviews_list_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_reviews_list_empty ... ok [INFO] [stdout] test commands::init::tests::test_build_config ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_missing_advice ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_with_advice ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_status_clean ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_status_has_resources ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_warning_for_active_bones ... ok [INFO] [stdout] test commands::protocol::context::tests::test_empty_claims ... ok [INFO] [stdout] test commands::protocol::context::tests::test_find_workspace ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_bone_claims_other_agent ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_workspace_claims ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_bone_claims ... ok [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone ... ok [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone_skips_default ... ok [INFO] [stdout] test commands::protocol::executor::tests::empty_steps_list ... ok [INFO] [stdout] test commands::protocol::executor::tests::execute_steps_real_subprocess ... ignored [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone_fallback_no_memo ... ok [INFO] [stdout] test commands::protocol::executor::tests::execute_steps_stops_on_failure ... ignored [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_empty ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_from_plain_output ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_from_quoted_output ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_multiline_finds_first ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_no_match ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_rejects_shell_metacharacters ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_rejects_spaces_in_quoted ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_with_whitespace ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_json_with_failure ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_json_valid_structure ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_has_colors ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_success_is_green ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_failure_is_red ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_report_delegates_to_format ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_empty_report ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_single_failure ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_single_success ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_workspace_creation ... ok [INFO] [stdout] test commands::protocol::executor::tests::ws_substitution_mock ... ok [INFO] [stdout] test commands::protocol::executor::tests::ws_substitution_no_workspace_created ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::all_statuses_map_to_success ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::blocked_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::exit_code_to_std_exit_code ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::exit_code_values ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::has_resources_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::needs_review_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::operational_error_exit_code_is_one ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_exit_error_operational ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_exit_error_to_exit_error ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_result_operational_error ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_result_success ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::stderr_diagnostic_format ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_no_merge ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_with_merge ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_announce_includes_bone ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_basic ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_extra_fields_tolerated ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_conflicts ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_ready ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_stale ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_no_push ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_blocked_workflow ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_cleanup_workflow ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_compatibility_additive_only ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_full_guidance_json ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_guidance_json_structure ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_review_workflow ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_minimal_guidance_json ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_start_workflow ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_text_render_includes_all_fields ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_shell_safety ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_add_step ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_blocked ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_add_multiple_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_new_start ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_set_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_bone_and_workspace ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_default_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_includes_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_execution_report_with_remaining_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_blocked_status_is_red ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_schema_version_is_stable ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_executed_true_skips_steps_section ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_has_colors ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_resumable ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_has_work ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_with_execution_report ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_ready_status_is_green ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_has_resources ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_fresh ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_has_work ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_fresh ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_has_resources ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_valid ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_with_execution_report ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_execution_report_with_failure ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_includes_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_advice ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_minimal ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_stale_window_logic ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_bead_and_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_advice ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_diagnostics ... ok [INFO] [stdout] test commands::protocol::render::tests::status_serialization ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_without_execution_report_shows_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::snapshot_at_is_rfc3339 ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_review ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_invalid_bead_id ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_continue_working ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_invalid_workspace_name ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_no_workspace ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_valid ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_blocked ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_approved ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_no_workspace ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_execution_report_success ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_multiple_bones_have_separators ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_fresh_guidance ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_rejects_invalid_names ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_override_trims_whitespace ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_blocked_one_reviewer_blocks ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_resumable ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_empty_config ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_blocked_then_lgtm_latest_is_lgtm ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_from_config ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_override ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_lgtm_then_block_latest_is_block ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_approved_empty_required_reviewers ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_pending ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_approved_all_reviewers_lgtm ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_multiple_reviewers_mixed ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_needs_review_no_votes ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_needs_review_missing_approvals ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_reviewer_not_in_required_list_ignored ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_done_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_done_no_reason ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_do_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_with_quotes_in_message ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_comment_with_escaping ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_json_roundtrip ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_release_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_no_label ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_release_all ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_create_with_escaping ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_request_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_multiple_single_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_all_metacharacters ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_newlines ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_prevents_variable_expansion ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_prevents_command_injection ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_backslashes ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_status_variants_are_complete ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_stake_no_memo ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_backticks ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_stake_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::command_builders_are_deterministic ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_double_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_no_prefix ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_show_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_special_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_dollar_variables ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_simple ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_single_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_unicode ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_with_spaces ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_special_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_starts_with_dash ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_no_hyphen ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_special_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_identifier_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_identifier_shell_metacharacters ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_bone_id ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_too_long ... ok [INFO] [stdout] test commands::protocol::shell::tests::workspace_exactly_64_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::safe_ident_passes_clean_values ... ok [INFO] [stdout] test commands::protocol::shell::tests::ws_merge_with_message ... ok [INFO] [stdout] test commands::responder::tests::days_to_ymd_epoch ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_review_id ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_identifiers ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_workspace_names ... ok [INFO] [stdout] test commands::responder::tests::route_bone ... ok [INFO] [stdout] test commands::responder::tests::route_dev ... ok [INFO] [stdout] test commands::responder::tests::route_dev_no_body ... ok [INFO] [stdout] test commands::responder::tests::route_devloop_not_dev ... ok [INFO] [stdout] test commands::responder::tests::route_leads_maps_to_dev ... ok [INFO] [stdout] test commands::protocol::shell::tests::safe_ident_escapes_unsafe_values ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_big_q_colon ... ok [INFO] [stdout] test commands::responder::tests::days_to_ymd_known_date ... ok [INFO] [stdout] test commands::responder::tests::extract_bone_id_from_output ... ok [INFO] [stdout] test commands::responder::tests::route_leads_no_body ... ok [INFO] [stdout] test commands::responder::tests::route_explicit_model_before_q ... ok [INFO] [stdout] test commands::responder::tests::route_dev_case_insensitive ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_tag ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_bead ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_empty ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_explicit_model_colon ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_missing ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_q_colon ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_qq_colon ... ok [INFO] [stdout] test commands::responder::tests::route_oneshot ... ok [INFO] [stdout] test commands::responder::tests::route_mission ... ok [INFO] [stdout] test commands::responder::tests::route_question_bigq ... ok [INFO] [stdout] test commands::responder::tests::route_question_q ... ok [INFO] [stdout] test commands::responder::tests::route_question_explicit_model ... ok [INFO] [stdout] test commands::responder::tests::route_question_qq ... ok [INFO] [stdout] test commands::responder::tests::route_qq_not_q ... ok [INFO] [stdout] test commands::responder::tests::route_triage_bare_message ... ok [INFO] [stdout] test commands::responder::tests::route_whitespace_only ... ok [INFO] [stdout] test commands::responder::tests::skip_project_agent_messages ... ok [INFO] [stdout] test commands::responder::tests::strip_prefix_ci_basic ... ok [INFO] [stdout] test commands::responder::tests::transcript_empty_format ... ok [INFO] [stdout] test commands::responder::tests::transcript_with_entries ... ok [INFO] [stdout] test commands::run_agent::tests::claude_result_event_is_completion ... ok [INFO] [stdout] test commands::run_agent::tests::claude_text_event_is_not_completion ... ok [INFO] [stdout] test commands::run_agent::tests::detect_api_errors ... ok [INFO] [stdout] test commands::run_agent::tests::detect_format_explicit ... ok [INFO] [stdout] test commands::run_agent::tests::detect_format_via_term_env ... ok [INFO] [stdout] test commands::run_agent::tests::pi_agent_end_is_completion ... ok [INFO] [stdout] test commands::run_agent::tests::pi_session_event_is_not_completion ... ok [INFO] [stdout] test commands::run_agent::tests::pi_tool_execution_end_parsed ... ok [INFO] [stdout] test commands::run_agent::tests::pi_tool_execution_error_parsed ... ok [INFO] [stdout] test commands::run_agent::tests::pi_toolcall_end_event_parsed ... ok [INFO] [stdout] test commands::run_agent::tests::unsupported_runner_error ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_derive_role_no_match ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_derive_role_security ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_get_reviewer_prompt_name ... ok [INFO] [stdout] test commands::status::tests::advice_command_is_optional ... ok [INFO] [stdout] test commands::run_agent::tests::pi_text_delta_is_not_completion ... ok [INFO] [stdout] test commands::status::tests::advice_structure_is_serializable ... ok [INFO] [stdout] test commands::status::tests::status_report_with_empty_advice ... ok [INFO] [stdout] test commands::sync::tests::test_design_docs_embedded ... ok [INFO] [stdout] test commands::status::tests::status_report_with_advice ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_ancestor ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_direct ... ok [INFO] [stdout] test commands::sync::tests::test_workflow_docs_embedded ... ok [INFO] [stdout] test commands::run_agent::tests::format_markdown_text_mode ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_missing ... ok [INFO] [stdout] test commands::run_agent::tests::format_markdown_pretty_mode ... ok [INFO] [stdout] test commands::worker_loop::tests::build_env_diagnostic_does_not_panic ... ok [INFO] [stdout] test commands::worker_loop::tests::build_env_diagnostic_with_empty_config ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_agent_identity ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_all_protocol_commands ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_protocol_fallback_wording ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_dispatched_fast_path ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_review_disabled ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_blocked ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_complete ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_missing ... ok [INFO] [stdout] test commands::worker_loop::tests::rate_limit_detection_error ... ok [INFO] [stdout] test commands::worker_loop::tests::rate_limit_detection_output ... ok [INFO] [stdout] test config::tests::default_model_tiers ... ok [INFO] [stdout] test config::tests::expand_env_value_no_vars ... ok [INFO] [stdout] test config::tests::expand_env_value_dollar_var ... ok [INFO] [stdout] test config::tests::expand_env_value_unset_var_preserved ... ok [INFO] [stdout] test config::tests::find_config_falls_back_to_json ... ok [INFO] [stdout] test commands::sync::tests::test_reviewer_prompts_embedded ... ok [INFO] [stdout] test config::tests::find_config_in_project_missing ... ok [INFO] [stdout] test config::tests::find_config_in_project_legacy_toml_accepted ... ok [INFO] [stdout] test config::tests::find_config_in_project_root_json_fallback ... ok [INFO] [stdout] test config::tests::find_config_falls_back_to_legacy_toml ... ok [INFO] [stdout] test config::tests::find_config_in_project_root_toml_preferred ... ok [INFO] [stdout] test config::tests::find_config_in_project_ws_json_fallback ... ok [INFO] [stdout] test config::tests::find_config_prefers_edict_toml ... ok [INFO] [stdout] test config::tests::find_config_in_project_ws_toml_beats_root_json ... ok [INFO] [stdout] test config::tests::find_config_returns_none_when_missing ... ok [INFO] [stdout] test config::tests::parse_full_toml_config ... ok [INFO] [stdout] test config::tests::parse_full_json_config_with_camel_case ... ok [INFO] [stdout] test config::tests::parse_missing_optional_fields ... ok [INFO] [stdout] test config::tests::parse_missing_required_fields ... ok [INFO] [stdout] test config::tests::parse_toml_with_env_section ... ok [INFO] [stdout] test config::tests::parse_malformed_toml ... ok [INFO] [stdout] test config::tests::parse_malformed_json ... ok [INFO] [stdout] test config::tests::parse_toml_without_env_section ... ok [INFO] [stdout] test config::tests::resolve_model_passthrough ... ok [INFO] [stdout] test config::tests::json_to_toml_conversion ... ok [INFO] [stdout] test config::tests::parse_minimal_toml_config ... ok [INFO] [stdout] test config::tests::resolve_model_pool_explicit_model ... ok [INFO] [stdout] test config::tests::resolve_model_pool_legacy_names ... ok [INFO] [stdout] test config::tests::resolve_model_custom_tiers ... ok [INFO] [stdout] test config::tests::resolve_model_tier_names ... ok [INFO] [stdout] test config::tests::resolved_env_expands_values ... ok [INFO] [stdout] test hooks::registry::tests::all_hooks_registered ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_direct ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_not_found ... ok [INFO] [stdout] test config::tests::resolve_model_pool_tiers ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_with_messages ... ok [INFO] [stdout] test subprocess::tests::maw_exec_wrapper ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_legacy_toml_accepted ... ok [INFO] [stdout] test subprocess::tests::invalid_workspace_names ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_edict_toml_preferred ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_not_found ... ok [INFO] [stdout] test subprocess::tests::parse_json_output ... ok [INFO] [stdout] test hooks::run::tests::validate_agent_name_accepts_valid ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_ws_default ... ok [INFO] [stdout] test hooks::run::tests::validate_agent_name_rejects_invalid ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_truncation ... ok [INFO] [stdout] test config::tests::to_toml_includes_comments ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_ws_default ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_empty ... ok [INFO] [stdout] test subprocess::tests::run_echo ... ok [INFO] [stdout] test template::tests::test_render_agents_md ... ok [INFO] [stdout] test commands::sync::tests::test_version_hashes ... ok [INFO] [stdout] test config::tests::roundtrip_toml ... ok [INFO] [stdout] test template::tests::test_update_managed_section ... ok [INFO] [stdout] test template::tests::test_update_managed_section_migrates_legacy_markers ... ok [INFO] [stdout] test subprocess::tests::run_not_found ... ok [INFO] [stdout] test subprocess::tests::run_false_fails ... ok [INFO] [stdout] test subprocess::tests::run_ok_returns_error_on_failure ... ok [INFO] [stdout] test subprocess::tests::run_with_timeout_succeeds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 350 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.17s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/edict-47ae8b5dc1f6a461) [INFO] [stdout] [INFO] [stdout] running 352 tests [INFO] [stdout] test commands::dev_loop::tests::parse_inbox_count_total_unread ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_inbox_count_bare_number ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_empty ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_assignments_envelope ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_edict_string_command ... ok [INFO] [stdout] test commands::dev_loop::prompt::tests::prompt_contains_all_protocol_commands ... ok [INFO] [stdout] test commands::dev_loop::prompt::tests::prompt_contains_protocol_fallback_wording ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_legacy_botbox_array_command ... ok [INFO] [stdout] test commands::dev_loop::tests::parse_ready_count_assignments_multiple ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_old_format ... ok [INFO] [stdout] test commands::hooks::tests::validate_name_accepts_valid ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_edict_array_command ... ok [INFO] [stdout] test commands::hooks::tests::validate_name_rejects_invalid ... ok [INFO] [stdout] test commands::init::tests::test_build_config_no_env_for_non_rust ... ok [INFO] [stdout] test commands::init::tests::test_detect_from_empty_agents_md ... ok [INFO] [stdout] test commands::init::tests::test_config_version_matches ... ok [INFO] [stdout] test commands::init::tests::test_fetch_gitignore_validates_languages ... ok [INFO] [stdout] test commands::init::tests::test_validate_name_valid ... ok [INFO] [stdout] test commands::init::tests::test_detect_from_agents_md ... ok [INFO] [stdout] test commands::init::tests::test_validate_values_invalid ... ok [INFO] [stdout] test commands::init::tests::test_validate_name_invalid ... ok [INFO] [stdout] test commands::protocol::adapters::tests::claim_bone_id_extraction ... ok [INFO] [stdout] test commands::protocol::adapters::tests::claim_no_matching_patterns ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_extra_fields ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_basic ... ok [INFO] [stdout] test commands::init::tests::test_build_config ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_preserves_non_botbox ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_invalid_json ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_bone_show_minimal ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_extra_fields_tolerated ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_empty ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_missing_optional_fields ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_claims_invalid_json ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_reviews_list_empty ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_basic ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_with_votes ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_status_has_resources ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_extra_fields ... ok [INFO] [stdout] test commands::protocol::context::tests::test_empty_claims ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_bone_claims ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_reviews_list_basic ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_bone_claims_other_agent ... ok [INFO] [stdout] test commands::protocol::executor::tests::execute_steps_real_subprocess ... ignored [INFO] [stdout] test commands::protocol::executor::tests::execute_steps_stops_on_failure ... ignored [INFO] [stdout] test commands::protocol::adapters::tests::parse_review_detail_minimal ... ok [INFO] [stdout] test commands::protocol::context::tests::test_held_workspace_claims ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_from_plain_output ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_empty ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_no_match ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_rejects_spaces_in_quoted ... ok [INFO] [stdout] test commands::hooks::tests::is_botbox_hook_entry_detects_legacy_botbox_string_command ... ok [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_multiline_finds_first ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_rejects_shell_metacharacters ... ok [INFO] [stdout] test commands::init::tests::test_validate_values_ok ... ok [INFO] [stdout] test commands::protocol::context::tests::test_find_workspace ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_missing_advice ... ok [INFO] [stdout] test commands::protocol::adapters::tests::parse_workspaces_with_advice ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_status_clean ... ok [INFO] [stdout] test commands::protocol::executor::tests::empty_steps_list ... ok [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone_fallback_no_memo ... ok [INFO] [stdout] test commands::protocol::cleanup::tests::test_cleanup_warning_for_active_bones ... ok [INFO] [stdout] test commands::protocol::context::tests::test_workspace_for_bone_skips_default ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_json_valid_structure ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_failure_is_red ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_report_delegates_to_format ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_has_colors ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_pretty_success_is_green ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_single_success ... ok [INFO] [stdout] test commands::protocol::executor::tests::ws_substitution_mock ... ok [INFO] [stdout] test commands::protocol::executor::tests::ws_substitution_no_workspace_created ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_single_failure ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::all_statuses_map_to_success ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::blocked_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_workspace_creation ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_text_empty_report ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::exit_code_values ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::has_resources_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::executor::tests::render_json_with_failure ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::exit_code_to_std_exit_code ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::operational_error_exit_code_is_one ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::needs_review_status_still_exits_zero ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_result_success ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_exit_error_operational ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_result_operational_error ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::stderr_diagnostic_format ... ok [INFO] [stdout] test commands::protocol::exit_policy::tests::protocol_exit_error_to_exit_error ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_shell_safety ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_no_push ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_no_merge ... ok [INFO] [stdout] test commands::protocol::finish::tests::test_build_finish_steps_with_merge ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_ready ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_extra_fields_tolerated ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_blocked_workflow ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_stale ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_cleanup_workflow ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_merge_check_result_parsing_conflicts ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_guidance_json_structure ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_review_workflow ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_minimal_guidance_json ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_full_guidance_json ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_from_quoted_output ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_basic ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_start_workflow ... ok [INFO] [stdout] test commands::protocol::merge::tests::test_build_merge_steps_announce_includes_bone ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_set_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_status_variants_are_complete ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_text_render_includes_all_fields ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_stale_window_logic ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_add_multiple_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_add_step ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_blocked ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_default_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_compatibility_additive_only ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_new_start ... ok [INFO] [stdout] test commands::protocol::executor::tests::extract_workspace_name_with_whitespace ... ok [INFO] [stdout] test commands::protocol::render::tests::golden_schema_version_is_stable ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_json_roundtrip ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_advice ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_bone_and_workspace ... ok [INFO] [stdout] test commands::protocol::render::tests::guidance_with_review ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_execution_report_with_remaining_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_fresh ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_has_resources ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_includes_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_resumable ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_blocked_status_is_red ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_has_colors ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_ready_status_is_green ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_with_execution_report ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_with_execution_report ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_has_resources ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_execution_report_with_failure ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_resumable ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_has_work ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_advice ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_bead_and_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_minimal ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_execution_report_success ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_with_diagnostics ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_status_fresh ... ok [INFO] [stdout] test commands::protocol::render::tests::render_pretty_executed_true_skips_steps_section ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_includes_freshness ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_status_has_work ... ok [INFO] [stdout] test commands::protocol::render::tests::render_text_without_execution_report_shows_steps ... ok [INFO] [stdout] test commands::protocol::render::tests::snapshot_at_is_rfc3339 ... ok [INFO] [stdout] test commands::protocol::render::tests::status_serialization ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_invalid_bead_id ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_invalid_workspace_name ... ok [INFO] [stdout] test commands::protocol::render::tests::validate_guidance_valid ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_continue_working ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_no_workspace ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_no_workspace ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_pending ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_approved ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_fresh_guidance ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_multiple_bones_have_separators ... ok [INFO] [stdout] test commands::protocol::resume::tests::test_bone_resume_review_blocked ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_override_trims_whitespace ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_rejects_invalid_names ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_override ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_approved_all_reviewers_lgtm ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_approved_empty_required_reviewers ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_blocked_one_reviewer_blocks ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_blocked_then_lgtm_latest_is_lgtm ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_lgtm_then_block_latest_is_block ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_empty_config ... ok [INFO] [stdout] test commands::protocol::review::tests::resolve_reviewers_from_config ... ok [INFO] [stdout] test commands::protocol::render::tests::render_json_valid ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_multiple_reviewers_mixed ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_needs_review_no_votes ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_reviewer_not_in_required_list_ignored ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_comment_with_escaping ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_do_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_done_no_reason ... ok [INFO] [stdout] test commands::protocol::shell::tests::bn_done_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_no_label ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_with_quotes_in_message ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_release_all ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_release_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_stake_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::claims_stake_no_memo ... ok [INFO] [stdout] test commands::protocol::shell::tests::command_builders_are_deterministic ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_create_with_escaping ... ok [INFO] [stdout] test commands::protocol::shell::tests::bus_send_basic ... ok [INFO] [stdout] test commands::protocol::review_gate::tests::test_needs_review_missing_approvals ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_show_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_backslashes ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_backticks ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_multiple_single_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_newlines ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_dollar_variables ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_simple ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_prevents_command_injection ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_single_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_no_hyphen ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_unicode ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_identifier_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_with_spaces ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_bone_id_special_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_all_metacharacters ... ok [INFO] [stdout] test commands::protocol::shell::tests::crit_request_basic ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_identifier_shell_metacharacters ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_prevents_variable_expansion ... ok [INFO] [stdout] test commands::protocol::shell::tests::escape_double_quotes ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_empty ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_starts_with_dash ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_too_long ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_bone_id ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_identifiers ... ok [INFO] [stdout] test commands::protocol::shell::tests::workspace_exactly_64_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::ws_merge_with_message ... ok [INFO] [stdout] test commands::responder::tests::days_to_ymd_epoch ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_empty ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_missing ... ok [INFO] [stdout] test commands::responder::tests::route_bone ... ok [INFO] [stdout] test commands::responder::tests::route_dev ... ok [INFO] [stdout] test commands::responder::tests::route_dev_case_insensitive ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_no_prefix ... ok [INFO] [stdout] test commands::responder::tests::route_devloop_not_dev ... ok [INFO] [stdout] test commands::responder::tests::route_explicit_model_before_q ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_review_id_special_chars ... ok [INFO] [stdout] test commands::responder::tests::route_leads_no_body ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_bead ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_big_q_colon ... ok [INFO] [stdout] test commands::responder::tests::days_to_ymd_known_date ... ok [INFO] [stdout] test commands::responder::tests::extract_bone_id_from_output ... ok [INFO] [stdout] test commands::responder::tests::extract_escalation_tag ... ok [INFO] [stdout] test commands::responder::tests::route_dev_no_body ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_special_chars ... ok [INFO] [stdout] test commands::protocol::shell::tests::safe_ident_escapes_unsafe_values ... ok [INFO] [stdout] test commands::protocol::shell::tests::safe_ident_passes_clean_values ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_review_id ... ok [INFO] [stdout] test commands::protocol::shell::tests::valid_workspace_names ... ok [INFO] [stdout] test commands::responder::tests::route_leads_maps_to_dev ... ok [INFO] [stdout] test commands::protocol::shell::tests::invalid_workspace_empty ... ok [INFO] [stdout] test commands::responder::tests::route_question_qq ... ok [INFO] [stdout] test commands::responder::tests::route_question_explicit_model ... ok [INFO] [stdout] test commands::responder::tests::route_question_q ... ok [INFO] [stdout] test commands::responder::tests::route_triage_bare_message ... ok [INFO] [stdout] test commands::responder::tests::strip_prefix_ci_basic ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_q_colon ... ok [INFO] [stdout] test commands::responder::tests::route_whitespace_only ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_qq_colon ... ok [INFO] [stdout] test commands::responder::tests::route_mission ... ok [INFO] [stdout] test commands::responder::tests::route_oneshot ... ok [INFO] [stdout] test commands::responder::tests::transcript_with_entries ... ok [INFO] [stdout] test commands::responder::tests::route_qq_not_q ... ok [INFO] [stdout] test commands::responder::tests::route_question_bigq ... ok [INFO] [stdout] test commands::responder::tests::route_legacy_explicit_model_colon ... ok [INFO] [stdout] test commands::run_agent::tests::claude_text_event_is_not_completion ... ok [INFO] [stdout] test commands::run_agent::tests::detect_format_via_term_env ... ok [INFO] [stdout] test commands::run_agent::tests::detect_api_errors ... ok [INFO] [stdout] test commands::run_agent::tests::detect_format_explicit ... ok [INFO] [stdout] test commands::run_agent::tests::pi_text_delta_is_not_completion ... ok [INFO] [stdout] test commands::run_agent::tests::pi_tool_execution_end_parsed ... ok [INFO] [stdout] test commands::run_agent::tests::pi_tool_execution_error_parsed ... ok [INFO] [stdout] test commands::run_agent::tests::unsupported_runner_error ... ok [INFO] [stdout] test commands::run_agent::tests::pi_agent_end_is_completion ... ok [INFO] [stdout] test commands::responder::tests::skip_project_agent_messages ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_derive_role_security ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_get_reviewer_prompt_name ... ok [INFO] [stdout] test commands::status::tests::advice_command_is_optional ... ok [INFO] [stdout] test commands::status::tests::advice_structure_is_serializable ... ok [INFO] [stdout] test commands::status::tests::status_report_with_empty_advice ... ok [INFO] [stdout] test commands::responder::tests::transcript_empty_format ... ok [INFO] [stdout] test commands::status::tests::status_report_with_advice ... ok [INFO] [stdout] test commands::sync::tests::test_design_docs_embedded ... ok [INFO] [stdout] test commands::run_agent::tests::claude_result_event_is_completion ... ok [INFO] [stdout] test commands::run_agent::tests::pi_session_event_is_not_completion ... ok [INFO] [stdout] test commands::run_agent::tests::pi_toolcall_end_event_parsed ... ok [INFO] [stdout] test commands::run_reviewer_loop::tests::test_derive_role_no_match ... ok [INFO] [stdout] test commands::sync::tests::test_reviewer_prompts_embedded ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_blocked ... ok [INFO] [stdout] test commands::sync::tests::test_workflow_docs_embedded ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_ancestor ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_missing ... ok [INFO] [stdout] test commands::sync::tests::test_find_jj_root_direct ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_all_protocol_commands ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_review_disabled ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_dispatched_fast_path ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_protocol_fallback_wording ... ok [INFO] [stdout] test commands::worker_loop::tests::build_env_diagnostic_does_not_panic ... ok [INFO] [stdout] test commands::worker_loop::tests::build_prompt_contains_agent_identity ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_missing ... ok [INFO] [stdout] test config::tests::expand_env_value_dollar_var ... ok [INFO] [stdout] test commands::worker_loop::tests::rate_limit_detection_error ... ok [INFO] [stdout] test config::tests::expand_env_value_no_vars ... ok [INFO] [stdout] test commands::worker_loop::tests::rate_limit_detection_output ... ok [INFO] [stdout] test commands::worker_loop::tests::parse_completion_signal_complete ... ok [INFO] [stdout] test config::tests::find_config_in_project_legacy_toml_accepted ... ok [INFO] [stdout] test config::tests::default_model_tiers ... ok [INFO] [stdout] test config::tests::expand_env_value_unset_var_preserved ... ok [INFO] [stdout] test config::tests::find_config_in_project_missing ... ok [INFO] [stdout] test config::tests::find_config_falls_back_to_legacy_toml ... ok [INFO] [stdout] test config::tests::find_config_in_project_root_json_fallback ... ok [INFO] [stdout] test commands::worker_loop::tests::build_env_diagnostic_with_empty_config ... ok [INFO] [stdout] test config::tests::find_config_falls_back_to_json ... ok [INFO] [stdout] test config::tests::find_config_in_project_root_toml_preferred ... ok [INFO] [stdout] test config::tests::find_config_in_project_ws_json_fallback ... ok [INFO] [stdout] test commands::sync::tests::test_version_hashes ... ok [INFO] [stdout] test config::tests::find_config_returns_none_when_missing ... ok [INFO] [stdout] test config::tests::find_config_in_project_ws_toml_beats_root_json ... ok [INFO] [stdout] test config::tests::find_config_prefers_edict_toml ... ok [INFO] [stdout] test config::tests::parse_missing_required_fields ... ok [INFO] [stdout] test config::tests::parse_missing_optional_fields ... ok [INFO] [stdout] test config::tests::parse_full_toml_config ... ok [INFO] [stdout] test config::tests::parse_malformed_json ... ok [INFO] [stdout] test config::tests::parse_minimal_toml_config ... ok [INFO] [stdout] test config::tests::parse_toml_without_env_section ... ok [INFO] [stdout] test config::tests::parse_toml_with_env_section ... ok [INFO] [stdout] test config::tests::resolve_model_pool_explicit_model ... ok [INFO] [stdout] test config::tests::resolve_model_pool_tiers ... ok [INFO] [stdout] test config::tests::resolve_model_passthrough ... ok [INFO] [stdout] test config::tests::resolve_model_custom_tiers ... ok [INFO] [stdout] test config::tests::resolve_model_tier_names ... ok [INFO] [stdout] test config::tests::resolve_model_pool_legacy_names ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_direct ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_not_found ... ok [INFO] [stdout] test hooks::run::tests::find_ancestor_with_ws_default ... ok [INFO] [stdout] test config::tests::to_toml_includes_comments ... ok [INFO] [stdout] test hooks::registry::tests::all_hooks_registered ... ok [INFO] [stdout] test config::tests::parse_full_json_config_with_camel_case ... ok [INFO] [stdout] test config::tests::parse_malformed_toml ... ok [INFO] [stdout] test config::tests::resolved_env_expands_values ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_truncation ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_with_messages ... ok [INFO] [stdout] test subprocess::tests::maw_exec_wrapper ... ok [INFO] [stdout] test hooks::run::tests::validate_agent_name_accepts_valid ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_ws_default ... ok [INFO] [stdout] test hooks::run::tests::parse_inbox_previews_empty ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_edict_toml_preferred ... ok [INFO] [stdout] test subprocess::tests::invalid_workspace_names ... ok [INFO] [stdout] test hooks::run::tests::validate_agent_name_rejects_invalid ... ok [INFO] [stdout] test subprocess::tests::parse_json_output ... ok [INFO] [stdout] test config::tests::roundtrip_toml ... ok [INFO] [stdout] test config::tests::json_to_toml_conversion ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_legacy_toml_accepted ... ok [INFO] [stdout] test hooks::run::tests::find_edict_config_not_found ... ok [INFO] [stdout] test subprocess::tests::run_not_found ... ok [INFO] [stdout] test subprocess::tests::run_false_fails ... ok [INFO] [stdout] test subprocess::tests::run_echo ... ok [INFO] [stdout] test subprocess::tests::run_ok_returns_error_on_failure ... ok [INFO] [stdout] test template::tests::test_render_agents_md ... ok [INFO] [stdout] test subprocess::tests::run_with_timeout_succeeds ... ok [INFO] [stdout] test template::tests::test_update_managed_section_migrates_legacy_markers ... ok [INFO] [stdout] test template::tests::test_update_managed_section ... ok [INFO] [stdout] test commands::run_agent::tests::format_markdown_text_mode ... ok [INFO] [stdout] test commands::run_agent::tests::format_markdown_pretty_mode ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 350 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.40s [INFO] [stdout] [INFO] [stderr] Running tests/run_agent_integration.rs (/opt/rustwide/target/debug/deps/run_agent_integration-c13b79fec711564e) [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test run_agent_handles_claude_not_found ... ok [INFO] [stdout] test run_agent_rejects_unknown_runner ... ok [INFO] [stdout] test run_agent_requires_prompt ... ok [INFO] [stdout] test run_agent_defaults_to_pi_runner ... ok [INFO] [stdout] test run_agent_pi_simulation_tool_error ... ok [INFO] [stdout] test run_agent_pi_simulation_error_exit ... ok [INFO] [stdout] test run_agent_pi_simulation_text_output ... ok [INFO] [stderr] Doc-tests edict [INFO] [stdout] test run_agent_pi_simulation_tool_use ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "600f942183b9d177ea3098deeacf23db41576fa96a853ca35e2e7a8b837c5a97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "600f942183b9d177ea3098deeacf23db41576fa96a853ca35e2e7a8b837c5a97", kill_on_drop: false }` [INFO] [stdout] 600f942183b9d177ea3098deeacf23db41576fa96a853ca35e2e7a8b837c5a97