[INFO] cloning repository https://github.com/pleme-io/tend
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/pleme-io/tend" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Ftend", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Ftend'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d2df2a3ddb33ea053bef8fb8cc1e14c856015311
[INFO] checking pleme-io/tend against master#4eb62535fc12dd1a63fd43a4173e224e79313c4d for pr-158816
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Ftend" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/pleme-io/tend
[INFO] finished tweaking git repo https://github.com/pleme-io/tend
[INFO] tweaked toml for git repo https://github.com/pleme-io/tend written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pleme-io/tend on toolchain 4eb62535fc12dd1a63fd43a4173e224e79313c4d
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/pleme-io/tend 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" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/kanshou`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/opencode-zen`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/samba`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/shigoto`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/shikumi`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/todoku`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/tsunagu`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/gen`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.123
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.73
[INFO] [stderr]   Downloaded js-sys v0.3.100
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.123
[INFO] [stderr]   Downloaded web-sys v0.3.100
[INFO] [stderr]   Downloaded async-nats v0.38.0
[INFO] [stderr]   Downloaded tryhard v0.5.2
[INFO] [stderr]   Downloaded tokio-websockets v0.10.1
[INFO] [stderr]   Downloaded nkeys v0.4.5
[INFO] [stderr]   Downloaded rowan v0.15.18
[INFO] [stderr]   Downloaded rnix v0.11.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9
[INFO] running `Command { std: "docker" "start" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9" "/opt/rustwide/cargo-home/bin/cargo" "+4eb62535fc12dd1a63fd43a4173e224e79313c4d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]     Checking log v0.4.32
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking socket2 v0.6.4
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling zerocopy v0.8.50
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]    Compiling cc v1.2.63
[INFO] [stderr]     Checking mio v1.2.1
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking constant_time_eq v0.4.2
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking brotli-decompressor v5.0.1
[INFO] [stderr]     Checking rustls-native-certs v0.8.4
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling gen-macros v0.1.10 (https://github.com/pleme-io/gen#712c3466)
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]     Checking compression-core v0.4.32
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]    Compiling time-macros v0.2.27
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking brotli v8.0.3
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking http v1.4.2
[INFO] [stderr]    Compiling openssl v0.10.80
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling proc-macro2-diagnostics v0.10.1
[INFO] [stderr]    Compiling k8s-openapi v0.24.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling blake3 v1.8.5
[INFO] [stderr]    Compiling openssl-sys v0.9.116
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking jsonptr v0.6.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking gen-types v0.1.10 (https://github.com/pleme-io/gen#712c3466)
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking compression-codecs v0.4.38
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking json-patch v3.0.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking publicsuffix v2.3.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]    Compiling enum-ordinalize-derive v4.3.2
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling pear_codegen v0.2.9
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking signatory v0.27.1
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]    Compiling enum-ordinalize v4.3.2
[INFO] [stderr]     Checking cookie_store v0.22.1
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking gen-platform v0.1.10 (https://github.com/pleme-io/gen#712c3466)
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]     Checking inlinable_string v0.1.15
[INFO] [stderr]     Checking shigoto-types v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking inotify v0.11.2
[INFO] [stderr]     Checking pear v0.2.9
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]    Compiling educe v0.6.0
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking jsonpath-rust v0.7.5
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking async-compression v0.4.42
[INFO] [stderr]     Checking tryhard v0.5.2
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking nkeys v0.4.5
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking nuid v0.5.0
[INFO] [stderr]     Checking h2 v0.4.14
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking serde_nanos v0.1.4
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking hostname v0.4.2
[INFO] [stderr]     Checking text-size v1.1.1
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking countme v3.0.1
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking serde_yaml_ng v0.10.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling kanshou-derive v0.1.0 (https://github.com/pleme-io/kanshou#cd7b34f4)
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking shigoto-dag v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking shigoto-gate v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking shigoto-retry v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking shigoto-budget v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking shigoto-emit v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking kanshou v0.1.0 (https://github.com/pleme-io/kanshou#cd7b34f4)
[INFO] [stderr]     Checking tsunagu v0.1.1 (https://github.com/pleme-io/tsunagu#0e1b3a99)
[INFO] [stderr]     Checking shigoto-scheduler v0.1.7 (https://github.com/pleme-io/shigoto#1f37e3ee)
[INFO] [stderr]     Checking shellexpand v3.1.2
[INFO] [stderr]     Checking rowan v0.15.18
[INFO] [stderr]     Checking uuid v1.23.2
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking shikumi v0.1.11 (https://github.com/pleme-io/shikumi#755e6153)
[INFO] [stderr]     Checking rnix v0.11.0
[INFO] [stderr]     Checking cron v0.15.0
[INFO] [stderr]    Compiling kube-derive v0.98.0
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking tokio-websockets v0.10.1
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking async-nats v0.38.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking hyper-timeout v0.5.2
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking kube-core v0.98.0
[INFO] [stderr]     Checking kube-client v0.98.0
[INFO] [stderr]     Checking todoku v0.1.0 (https://github.com/pleme-io/todoku#4e19678d)
[INFO] [stderr]     Checking opencode-zen v0.1.2 (https://github.com/pleme-io/opencode-zen#9236d493)
[INFO] [stderr]     Checking samba v0.1.3 (https://github.com/pleme-io/samba#87cbeacb)
[INFO] [stderr]     Checking kube-runtime v0.98.0
[INFO] [stderr]     Checking kube v0.98.0
[INFO] [stderr]     Checking pleme-tend v0.3.10 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AiFlowPlan` and `RetryPolicy`
[INFO] [stdout]  --> src/ai_executor.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ai_flow::{AiFlowPlan, AiStep, AiTaskRef, RetryPolicy};
[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 import: `AiStep`
[INFO] [stdout]  --> src/ai_planner.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ai_flow::{AiFlowPlan, AiStep};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConfigDiscovery` and `Format`
[INFO] [stdout]  --> src/config.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shikumi::{ConfigDiscovery, Format};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/drift.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/drift.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DagError`
[INFO] [stdout]   --> src/operator/dag.rs:16:40
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use shigoto_dag::{Dag as FleetDag, DagError};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/operator/helm_release_adapter.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::Config`
[INFO] [stdout]   --> src/operator/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AiFlowPlan` and `RetryPolicy`
[INFO] [stdout]  --> src/ai_executor.rs:6:22
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::ai_flow::{AiFlowPlan, AiStep, AiTaskRef, RetryPolicy};
[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 import: `AiStep`
[INFO] [stdout]  --> src/ai_planner.rs:5:34
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::ai_flow::{AiFlowPlan, AiStep};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ConfigDiscovery` and `Format`
[INFO] [stdout]  --> src/config.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use shikumi::{ConfigDiscovery, Format};
[INFO] [stdout]   |               ^^^^^^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]   --> src/drift.rs:16:17
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::path::{Path, PathBuf};
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Mutex`
[INFO] [stdout]   --> src/drift.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::sync::Mutex;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CloneMethod`
[INFO] [stdout]     --> src/watch.rs:1634:25
[INFO] [stdout]      |
[INFO] [stdout] 1634 |     use crate::config::{CloneMethod, Workspace, WatchConfig};
[INFO] [stdout]      |                         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]     --> src/watch.rs:1636:38
[INFO] [stdout]      |
[INFO] [stdout] 1636 |     use std::collections::{BTreeMap, HashMap};
[INFO] [stdout]      |                                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DagError`
[INFO] [stdout]   --> src/operator/dag.rs:16:40
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use shigoto_dag::{Dag as FleetDag, DagError};
[INFO] [stdout]    |                                        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/operator/helm_release_adapter.rs:21:26
[INFO] [stdout]    |
[INFO] [stdout] 21 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::config::Config`
[INFO] [stdout]   --> src/operator/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | use crate::config::Config;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attempt`
[INFO] [stdout]    --> src/ai_executor.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |         for attempt in 0..step.retry.count.max(1) {
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attempt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `shigoto_types::Job`
[INFO] [stdout]    --> src/jobs/reactions.rs:108:9
[INFO] [stdout]     |
[INFO] [stdout] 108 |     use shigoto_types::Job;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attempt`
[INFO] [stdout]    --> src/ai_executor.rs:157:13
[INFO] [stdout]     |
[INFO] [stdout] 157 |         for attempt in 0..step.retry.count.max(1) {
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attempt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StepState` is never used
[INFO] [stdout]   --> src/ai_cron.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum StepState {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlowState` is never constructed
[INFO] [stdout]   --> src/ai_cron.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct FlowState {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ai_cron.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl FlowState {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(flow_name: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_converged(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn is_failed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn mark_running(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn mark_success(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn mark_failed(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiFlowDaemon` is never constructed
[INFO] [stdout]   --> src/ai_cron.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AiFlowDaemon {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ai_cron.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl AiFlowDaemon {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub async fn register(&self, flow_name: &str, step_ids: Vec<String>) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn tick(&self, flow_name: &str) -> Option<FlowState> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub async fn update_state(&self, flow_name: &str, step_id: &str, state: StepState) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub async fn is_converged(&self, flow_name: &str) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn get_pending_steps(&self, flow_name: &str) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub async fn list_flows(&self) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub async fn get_step_state(&self, flow_name: &str, step_id: &str) -> Option<StepState> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionPhase` is never used
[INFO] [stdout]   --> src/ai_executor.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ExecutionPhase {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/ai_executor.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl ExecutionPhase {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 22 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionReport` is never constructed
[INFO] [stdout]   --> src/ai_executor.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ExecutionReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_success`, and `summary` are never used
[INFO] [stdout]   --> src/ai_executor.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl ExecutionReport {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 40 |     pub fn new(phase: ExecutionPhase) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_success(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn summary(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiExecutor` is never constructed
[INFO] [stdout]   --> src/ai_executor.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct AiExecutor {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ai_executor.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl AiExecutor {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn new(api_key: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn with_dry_run(mut self, dry_run: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn models(&self) -> &ModelRegistry {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub async fn run(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub async fn plan(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn destroy(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub async fn execute_step(&self, step: &AiStep) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     async fn execute_single(&self, model: &str, step: &AiStep) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub async fn get_result(&self, step_id: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub async fn clear_results(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiFlowPlan` is never constructed
[INFO] [stdout]  --> src/ai_flow.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct AiFlowPlan {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiStep` is never constructed
[INFO] [stdout]   --> src/ai_flow.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct AiStep {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RetryPolicy` is never constructed
[INFO] [stdout]   --> src/ai_flow.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct RetryPolicy {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ai_flow.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RetryPolicy {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new(count: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `VerifyPolicy` is never constructed
[INFO] [stdout]   --> src/ai_flow.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct VerifyPolicy {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AiTaskRef` is never used
[INFO] [stdout]   --> src/ai_flow.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum AiTaskRef {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `model` and `kind` are never used
[INFO] [stdout]   --> src/ai_flow.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl AiTaskRef {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 54 |     pub fn model(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn kind(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `model` is never used
[INFO] [stdout]   --> src/ai_flow.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl AiStep {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 70 |     pub fn model(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `add_step`, and `with_deps` are never used
[INFO] [stdout]   --> src/ai_flow.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl AiFlowPlan {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 76 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn add_step(&mut self, id: impl Into<String>, task: AiTaskRef) -> &mut AiStep {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |     pub fn with_deps(&mut self, id: &str, deps: Vec<String>) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiGroup` is never constructed
[INFO] [stdout]    --> src/ai_flow.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct AiGroup {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ai_flow.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl AiGroup {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 113 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiFlowFile` is never constructed
[INFO] [stdout]   --> src/ai_lisp.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AiFlowFile {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_json` is never used
[INFO] [stdout]   --> src/ai_lisp.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn parse_json(text: &str) -> Result<AiFlowFile, String> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelEntry` is never constructed
[INFO] [stdout]  --> src/ai_models.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ModelEntry {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelRegistry` is never constructed
[INFO] [stdout]   --> src/ai_models.rs:14:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ModelRegistry {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `free_models`, `primary`, `fallback_for`, and `all` are never used
[INFO] [stdout]   --> src/ai_models.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ModelRegistry {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 25 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn free_models(&self) -> Vec<&ModelEntry> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub fn primary(&self) -> &ModelEntry {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub fn fallback_for(&self, model_id: &str) -> Option<&ModelEntry> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn all(&self) -> &[ModelEntry] {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlannedFlow` is never constructed
[INFO] [stdout]   --> src/ai_planner.rs:10:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PlannedFlow {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plan` is never used
[INFO] [stdout]   --> src/ai_planner.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn plan(flow: &AiFlowPlan) -> Result<PlannedFlow> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detect_cycle` is never used
[INFO] [stdout]   --> src/ai_planner.rs:48:4
[INFO] [stdout]    |
[INFO] [stdout] 48 | fn detect_cycle(flow: &AiFlowPlan, deps: &[Vec<usize>]) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dfs_visit` is never used
[INFO] [stdout]   --> src/ai_planner.rs:67:4
[INFO] [stdout]    |
[INFO] [stdout] 67 | fn dfs_visit(node: usize, adj: &[Vec<usize>], color: &mut [u8], flow: &AiFlowPlan) -> Result<()> {
[INFO] [stdout]    |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `topological_sort` is never used
[INFO] [stdout]   --> src/ai_planner.rs:85:4
[INFO] [stdout]    |
[INFO] [stdout] 85 | fn topological_sort(deps: &[Vec<usize>]) -> Result<Vec<usize>> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CiTrimApi` is never used
[INFO] [stdout]   --> src/ci_trim.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait CiTrimApi: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WorkflowRun` is never constructed
[INFO] [stdout]   --> src/ci_trim.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct WorkflowRun {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RunStatus` is never used
[INFO] [stdout]   --> src/ci_trim.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum RunStatus {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `identify_duplicates_to_cancel` is never used
[INFO] [stdout]   --> src/ci_trim.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn identify_duplicates_to_cancel(runs: &[WorkflowRun]) -> Vec<u64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TrimReport` is never constructed
[INFO] [stdout]    --> src/ci_trim.rs:117:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub struct TrimReport {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_runs` is never used
[INFO] [stdout]    --> src/ci_trim.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 125 | impl TrimReport {
[INFO] [stdout]     | --------------- associated function in this implementation
[INFO] [stdout] 126 |     /// Build a report from a policy pass over a repo's runs.
[INFO] [stdout] 127 |     pub fn from_runs(org: impl Into<String>, repo: impl Into<String>, runs: &[WorkflowRun]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_single_repo` is never used
[INFO] [stdout]    --> src/ci_trim.rs:154:14
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub async fn run_single_repo(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/daemon.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub(crate) async fn run(opts: DaemonOpts) -> Result<()> {
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_cargo_lock_repos` is never used
[INFO] [stdout]    --> src/flake.rs:907:15
[INFO] [stdout]     |
[INFO] [stdout] 907 | pub(crate) fn find_cargo_lock_repos(workspace: &Workspace) -> Result<Vec<String>> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]    --> src/flake_lock.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl FlakeLock {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn iter(&self) -> impl Iterator<Item = (&String, &LockedInput)> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read` is never used
[INFO] [stdout]    --> src/flake_lock.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl ExtendedLockFile {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn read(path: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `workspace` is never used
[INFO] [stdout]    --> src/drift.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl DriftEvent {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn workspace(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullFailureContext` is never constructed
[INFO] [stdout]    --> src/drift.rs:251:19
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub(crate) struct PullFailureContext {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PullFailureClassifier` is never constructed
[INFO] [stdout]    --> src/drift.rs:265:19
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub(crate) struct PullFailureClassifier;
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NullDriftSink` is never used
[INFO] [stdout]    --> src/drift.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub(crate) type NullDriftSink = shigoto_types::sink::NullSink<DriftEvent>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `InMemoryDriftSink` is never used
[INFO] [stdout]    --> src/drift.rs:312:17
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub(crate) type InMemoryDriftSink = shigoto_types::sink::InMemorySink<DriftEvent>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_refresh` is never used
[INFO] [stdout]   --> src/jobs/discover_org.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl DiscoverOrgJob {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(crate) fn with_refresh(mut self, refresh: bool) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_output_sink` is never used
[INFO] [stdout]   --> src/jobs/fetch_repo.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl FetchRepoJob {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub(crate) fn with_output_sink(mut self, sink: Arc<dyn OutputSink<FetchOutcome>>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STATUS_REPO_KIND` is never used
[INFO] [stdout]   --> src/jobs/status_repo.rs:26:18
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub(crate) const STATUS_REPO_KIND: &str = "tend.status-repo";
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StatusRepoJob` is never constructed
[INFO] [stdout]   --> src/jobs/status_repo.rs:29:19
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub(crate) struct StatusRepoJob {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `with_output_sink` are never used
[INFO] [stdout]   --> src/jobs/status_repo.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl StatusRepoJob {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 48 |     pub(crate) fn new(
[INFO] [stdout]    |                   ^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(crate) fn with_output_sink(mut self, sink: Arc<dyn OutputSink<RepoStatus>>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StatusRepoError` is never used
[INFO] [stdout]   --> src/jobs/status_repo.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub(crate) enum StatusRepoError {
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `FailureClass` is never used
[INFO] [stdout]   --> src/anomaly.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub enum FailureClass {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/anomaly.rs:80:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl FailureClass {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `classify` is never used
[INFO] [stdout]   --> src/anomaly.rs:97:8
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub fn classify(stderr: &str) -> FailureClass {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrebuildFailureClassifier` is never constructed
[INFO] [stdout]    --> src/anomaly.rs:142:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub struct PrebuildFailureClassifier;
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `per_repo` is never used
[INFO] [stdout]   --> src/planner.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | impl WorkItem {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn per_repo(
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/provider.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl RepoState {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub fn name(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `enabled` and `with_enabled_repo` are never used
[INFO] [stdout]    --> src/release_swarm.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl OrgReleaseSwarmConfig {
[INFO] [stdout]     | -------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn enabled(org: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn with_enabled_repo(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default_for_github` is never used
[INFO] [stdout]   --> src/operator/budget.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl RequestBudget {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn default_for_github() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelmRev` is never constructed
[INFO] [stdout]   --> src/operator/crds.rs:89:12
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub struct HelmRev {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelmSourceRef` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:107:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct HelmSourceRef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RolloutWaveProposalRef` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct RolloutWaveProposalRef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RolloutWave` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub struct RolloutWave {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RolloutTrigger` is never used
[INFO] [stdout]    --> src/operator/crds.rs:327:10
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub enum RolloutTrigger {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlakeUpdateRolloutSpec` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:348:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub struct FlakeUpdateRolloutSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlakeUpdateRolloutStatus` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct FlakeUpdateRolloutStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `discover_advances` is never used
[INFO] [stdout]    --> src/operator/discovery.rs:517:14
[INFO] [stdout]     |
[INFO] [stdout] 517 | pub async fn discover_advances<R: RegistryClient + ?Sized>(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> src/operator/failure_set.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl FailureSet {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 33 |     #[must_use]
[INFO] [stdout] 34 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `format_url` is never used
[INFO] [stdout]   --> src/operator/flake_lock_adapter.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl FlakeLockAdapter {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 21 |     fn format_url(locked: &crate::flake_lock::ExtendedLocked) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_all` is never used
[INFO] [stdout]    --> src/operator/gates.rs:201:14
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub async fn run_all(
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HelmReleaseAdapter` is never constructed
[INFO] [stdout]   --> src/operator/helm_release_adapter.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct HelmReleaseAdapter;
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ParsedHelmRelease` is never constructed
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:111:8
[INFO] [stdout]     |
[INFO] [stdout] 111 | struct ParsedHelmRelease {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_helmrelease` is never used
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn parse_helmrelease(value: &Yaml) -> Result<Option<ParsedHelmRelease>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_image_tags` is never used
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:186:4
[INFO] [stdout]     |
[INFO] [stdout] 186 | fn collect_image_tags(value: &Yaml, path: &str, out: &mut BTreeMap<String, String>) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `matches_helmrelease` is never used
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:206:4
[INFO] [stdout]     |
[INFO] [stdout] 206 | fn matches_helmrelease(value: &Yaml, target: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_pin_to_release` is never used
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:220:4
[INFO] [stdout]     |
[INFO] [stdout] 220 | fn apply_pin_to_release(value: &mut Yaml, new: &HelmRev) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_nested_string` is never used
[INFO] [stdout]    --> src/operator/helm_release_adapter.rs:247:4
[INFO] [stdout]     |
[INFO] [stdout] 247 | fn update_nested_string(value: &mut Yaml, dotted_path: &str, new_value: &str) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lock_path`, `parse`, and `edges` are never used
[INFO] [stdout]   --> src/operator/lock_format.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait LockFormat: Send + Sync {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn lock_path(&self) -> &'static Path;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 17 |
[INFO] [stdout] 18 |     fn parse(&self, contents: &str) -> Result<BTreeMap<String, Self::Pin>>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn edges(&self, parsed: &BTreeMap<String, Self::Pin>) -> Vec<(String, String)>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `refresh_targets` is never read
[INFO] [stdout]   --> src/operator/planner.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct PlanOutput {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 51 |     pub spec: FlakeUpdatePlanSpec,
[INFO] [stdout] 52 |     pub refresh_targets: Vec<(String, UpstreamId)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/operator/fleet_watch.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl<T: Clone + Eq + std::hash::Hash> RoundRobin<T> {
[INFO] [stdout]     | --------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HeadInfoExt` is never used
[INFO] [stdout]    --> src/operator/fleet_watch.rs:502:7
[INFO] [stdout]     |
[INFO] [stdout] 502 | trait HeadInfoExt {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `new_oci`, `new_crate`, and `new_image` are never used
[INFO] [stdout]   --> src/operator/upstream.rs:64:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl UpstreamId {
[INFO] [stdout]    | --------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn new_oci(host: &str, path: &str, tag: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn new_crate(name: &str, channel: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn new_image(registry: &str, image: &str, tag: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `was_unchanged` is never used
[INFO] [stdout]    --> src/operator/upstream.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl HeadOutcome {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn was_unchanged(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `head` is never used
[INFO] [stdout]    --> src/operator/upstream.rs:283:14
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub trait RegistryClient: Send + Sync {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 283 |     async fn head(&self, id: &UpstreamId) -> Result<HeadInfo, RegistryError> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `StepState` is never used
[INFO] [stdout]   --> src/ai_cron.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum StepState {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlowState` is never constructed
[INFO] [stdout]   --> src/ai_cron.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct FlowState {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]   --> src/ai_cron.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl FlowState {
[INFO] [stdout]    | -------------- associated items in this implementation
[INFO] [stdout] 37 |     pub fn new(flow_name: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn is_converged(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn is_failed(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn reset(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn mark_running(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn mark_success(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn mark_failed(&mut self, step_id: &str) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiFlowDaemon` is never constructed
[INFO] [stdout]   --> src/ai_cron.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub struct AiFlowDaemon {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ai_cron.rs:79:12
[INFO] [stdout]     |
[INFO] [stdout]  78 | impl AiFlowDaemon {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout]  79 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  85 |     pub async fn register(&self, flow_name: &str, step_ids: Vec<String>) {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub async fn tick(&self, flow_name: &str) -> Option<FlowState> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  99 |     pub async fn update_state(&self, flow_name: &str, step_id: &str, state: StepState) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     pub async fn is_converged(&self, flow_name: &str) -> bool {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub async fn get_pending_steps(&self, flow_name: &str) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub async fn list_flows(&self) -> Vec<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub async fn get_step_state(&self, flow_name: &str, step_id: &str) -> Option<StepState> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionPhase` is never used
[INFO] [stdout]   --> src/ai_executor.rs:15:10
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub enum ExecutionPhase {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/ai_executor.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl ExecutionPhase {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] 22 |     pub fn as_str(&self) -> &str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExecutionReport` is never constructed
[INFO] [stdout]   --> src/ai_executor.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct ExecutionReport {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `is_success`, and `summary` are never used
[INFO] [stdout]   --> src/ai_executor.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl ExecutionReport {
[INFO] [stdout]    | -------------------- associated items in this implementation
[INFO] [stdout] 40 |     pub fn new(phase: ExecutionPhase) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_success(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub fn summary(&self) -> String {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AiExecutor` is never constructed
[INFO] [stdout]   --> src/ai_executor.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct AiExecutor {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/ai_executor.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl AiExecutor {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  71 |     pub fn new(api_key: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn with_dry_run(mut self, dry_run: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn models(&self) -> &ModelRegistry {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub async fn run(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub async fn plan(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub async fn destroy(&self, planned: &PlannedFlow) -> Result<ExecutionReport> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub async fn execute_step(&self, step: &AiStep) -> Result<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     async fn execute_single(&self, model: &str, step: &AiStep) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     pub async fn get_result(&self, step_id: &str) -> Option<String> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 244 |     pub async fn clear_results(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/ai_flow.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl RetryPolicy {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 32 |     pub fn new(count: u32) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `model` and `kind` are never used
[INFO] [stdout]   --> src/ai_flow.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 53 | impl AiTaskRef {
[INFO] [stdout]    | -------------- methods in this implementation
[INFO] [stdout] 54 |     pub fn model(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn kind(&self) -> &str {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `model` is never used
[INFO] [stdout]   --> src/ai_flow.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl AiStep {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 70 |     pub fn model(&self) -> &str {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ai_flow.rs:113:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | impl AiGroup {
[INFO] [stdout]     | ------------ associated function in this implementation
[INFO] [stdout] 113 |     pub fn new(name: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `priority` are never read
[INFO] [stdout]   --> src/ai_models.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct ModelEntry {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout]  8 |     pub id: String,
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 10 |     pub priority: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelEntry` 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: method `all` is never used
[INFO] [stdout]   --> src/ai_models.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl ModelRegistry {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn all(&self) -> &[ModelEntry] {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `plan` and `deps` are never read
[INFO] [stdout]   --> src/ai_planner.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub struct PlannedFlow {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 11 |     pub plan: AiFlowPlan,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 12 |     pub deps: Vec<Vec<usize>>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `PlannedFlow` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]   --> src/daemon.rs:57:21
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub(crate) async fn run(opts: DaemonOpts) -> Result<()> {
[INFO] [stdout]    |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_cargo_lock_repos` is never used
[INFO] [stdout]    --> src/flake.rs:907:15
[INFO] [stdout]     |
[INFO] [stdout] 907 | pub(crate) fn find_cargo_lock_repos(workspace: &Workspace) -> Result<Vec<String>> {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]    --> src/flake_lock.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl FlakeLock {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn iter(&self) -> impl Iterator<Item = (&String, &LockedInput)> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read` is never used
[INFO] [stdout]    --> src/flake_lock.rs:235:12
[INFO] [stdout]     |
[INFO] [stdout] 230 | impl ExtendedLockFile {
[INFO] [stdout]     | --------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn read(path: &Path) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `workspace` is never used
[INFO] [stdout]    --> src/drift.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | impl DriftEvent {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn workspace(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `NullDriftSink` is never used
[INFO] [stdout]    --> src/drift.rs:311:17
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub(crate) type NullDriftSink = shigoto_types::sink::NullSink<DriftEvent>;
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_output_sink` is never used
[INFO] [stdout]   --> src/jobs/fetch_repo.rs:59:19
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl FetchRepoJob {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub(crate) fn with_output_sink(mut self, sink: Arc<dyn OutputSink<FetchOutcome>>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_output_sink` is never used
[INFO] [stdout]   --> src/jobs/status_repo.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl StatusRepoJob {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(crate) fn with_output_sink(mut self, sink: Arc<dyn OutputSink<RepoStatus>>) -> Self {
[INFO] [stdout]    |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `default_for_github` is never used
[INFO] [stdout]   --> src/operator/budget.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl RequestBudget {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 54 |     pub fn default_for_github() -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RolloutWaveProposalRef` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:315:12
[INFO] [stdout]     |
[INFO] [stdout] 315 | pub struct RolloutWaveProposalRef {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RolloutWave` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:321:12
[INFO] [stdout]     |
[INFO] [stdout] 321 | pub struct RolloutWave {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RolloutTrigger` is never used
[INFO] [stdout]    --> src/operator/crds.rs:327:10
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub enum RolloutTrigger {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlakeUpdateRolloutSpec` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:348:12
[INFO] [stdout]     |
[INFO] [stdout] 348 | pub struct FlakeUpdateRolloutSpec {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FlakeUpdateRolloutStatus` is never constructed
[INFO] [stdout]    --> src/operator/crds.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct FlakeUpdateRolloutStatus {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_all` is never used
[INFO] [stdout]    --> src/operator/gates.rs:201:14
[INFO] [stdout]     |
[INFO] [stdout] 201 | pub async fn run_all(
[INFO] [stdout]     |              ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `lock_path` and `edges` are never used
[INFO] [stdout]   --> src/operator/lock_format.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub trait LockFormat: Send + Sync {
[INFO] [stdout]    |           ---------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 16 |     fn lock_path(&self) -> &'static Path;
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     fn edges(&self, parsed: &BTreeMap<String, Self::Pin>) -> Vec<(String, String)>;
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/operator/fleet_watch.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl<T: Clone + Eq + std::hash::Hash> RoundRobin<T> {
[INFO] [stdout]     | --------------------------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `HeadInfoExt` is never used
[INFO] [stdout]    --> src/operator/fleet_watch.rs:502:7
[INFO] [stdout]     |
[INFO] [stdout] 502 | trait HeadInfoExt {
[INFO] [stdout]     |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `was_unchanged` is never used
[INFO] [stdout]    --> src/operator/upstream.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 142 | impl HeadOutcome {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn was_unchanged(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `head` is never used
[INFO] [stdout]    --> src/operator/upstream.rs:283:14
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub trait RegistryClient: Send + Sync {
[INFO] [stdout]     |           -------------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 283 |     async fn head(&self, id: &UpstreamId) -> Result<HeadInfo, RegistryError> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ref_defaults_to_HEAD_when_empty` should have a snake case name
[INFO] [stdout]    --> src/operator/upstream.rs:331:8
[INFO] [stdout]     |
[INFO] [stdout] 331 |     fn ref_defaults_to_HEAD_when_empty() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `ref_defaults_to_head_when_empty`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 13s
[INFO] running `Command { std: "docker" "inspect" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9", kill_on_drop: false }`
[INFO] [stdout] dfb93a020b4b02c24fbb33ff5ae7a3285affda2b84b9a44a2b0f3eb3496653a9
