[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] 9919f310bc023a4f298522165ba0a09474f60752
[INFO] checking pleme-io/tend against master#57f772f25c5ce2bd870d6f8c3ab318eaee5a3326 for pr-133502-22
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fpleme-io%2Ftend" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-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-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/pleme-io/tend on toolchain 57f772f25c5ce2bd870d6f8c3ab318eaee5a3326
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "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" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/opencode-zen`
[INFO] [stderr]     Updating git repository `https://github.com/pleme-io/samba`
[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]  Downloading crates ...
[INFO] [stderr]   Downloaded uuid v1.23.1
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.68
[INFO] [stderr]   Downloaded openssl-sys v0.9.114
[INFO] [stderr]   Downloaded hyper-rustls v0.27.9
[INFO] [stderr]   Downloaded rustls-webpki v0.103.13
[INFO] [stderr]   Downloaded cc v1.2.60
[INFO] [stderr]   Downloaded serde_yaml_ng v0.10.0
[INFO] [stderr]   Downloaded serde_nanos v0.1.4
[INFO] [stderr]   Downloaded rustls-native-certs v0.7.3
[INFO] [stderr]   Downloaded rand v0.9.4
[INFO] [stderr]   Downloaded tryhard v0.5.2
[INFO] [stderr]   Downloaded nuid v0.5.0
[INFO] [stderr]   Downloaded text-size v1.1.1
[INFO] [stderr]   Downloaded arc-swap v1.9.1
[INFO] [stderr]   Downloaded nkeys v0.4.5
[INFO] [stderr]   Downloaded countme v3.0.1
[INFO] [stderr]   Downloaded iri-string v0.7.12
[INFO] [stderr]   Downloaded rowan v0.15.18
[INFO] [stderr]   Downloaded webpki-roots v1.0.7
[INFO] [stderr]   Downloaded enum-ordinalize-derive v4.3.2
[INFO] [stderr]   Downloaded kube v0.98.0
[INFO] [stderr]   Downloaded hyper-http-proxy v1.1.0
[INFO] [stderr]   Downloaded enum-ordinalize v4.3.2
[INFO] [stderr]   Downloaded jsonpath-rust v0.7.5
[INFO] [stderr]   Downloaded signatory v0.27.1
[INFO] [stderr]   Downloaded kube-core v0.98.0
[INFO] [stderr]   Downloaded educe v0.6.0
[INFO] [stderr]   Downloaded kube-derive v0.98.0
[INFO] [stderr]   Downloaded cron v0.15.0
[INFO] [stderr]   Downloaded tokio-websockets v0.10.1
[INFO] [stderr]   Downloaded kube-runtime v0.98.0
[INFO] [stderr]   Downloaded kube-client v0.98.0
[INFO] [stderr]   Downloaded openssl v0.10.78
[INFO] [stderr]   Downloaded rustls v0.23.38
[INFO] [stderr]   Downloaded rnix v0.11.0
[INFO] [stderr]   Downloaded winnow v0.6.26
[INFO] [stderr]   Downloaded async-nats v0.38.0
[INFO] [stderr]   Downloaded web-sys v0.3.95
[INFO] [stderr]   Downloaded tokio v1.52.1
[INFO] [stderr]   Downloaded k8s-openapi v0.24.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0d7423052d4476ab1222b7a3a41802473fd8fb6bf09675cd5570bc5923031bdd
[INFO] running `Command { std: "docker" "start" "-a" "0d7423052d4476ab1222b7a3a41802473fd8fb6bf09675cd5570bc5923031bdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0d7423052d4476ab1222b7a3a41802473fd8fb6bf09675cd5570bc5923031bdd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d7423052d4476ab1222b7a3a41802473fd8fb6bf09675cd5570bc5923031bdd", kill_on_drop: false }`
[INFO] [stdout] 0d7423052d4476ab1222b7a3a41802473fd8fb6bf09675cd5570bc5923031bdd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+57f772f25c5ce2bd870d6f8c3ab318eaee5a3326" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ad3fa43bf426a8b6fdb6bb62c891fd010450ec38d5a97e7bbdff2eaafbbb7e00
[INFO] running `Command { std: "docker" "start" "-a" "ad3fa43bf426a8b6fdb6bb62c891fd010450ec38d5a97e7bbdff2eaafbbb7e00", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]     Checking hashbrown v0.17.0
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling rustls v0.23.38
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]    Compiling pkg-config v0.3.33
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking alloc-no-stdlib v2.0.4
[INFO] [stderr]     Checking alloc-stdlib v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]    Compiling openssl-sys v0.9.114
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking simd-adler32 v0.3.9
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking brotli-decompressor v5.0.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking brotli v8.0.2
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling openssl v0.10.78
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling pest v2.8.6
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking compression-codecs v0.4.37
[INFO] [stderr]     Checking async-compression v0.4.41
[INFO] [stderr]     Checking webpki-roots v1.0.7
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling pest_meta v2.8.6
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]    Compiling k8s-openapi v0.24.0
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]    Compiling pest_generator v2.8.6
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]     Checking jsonptr v0.6.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking dyn-clone v1.0.20
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking publicsuffix v2.3.0
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]    Compiling pest_derive v2.8.6
[INFO] [stderr]     Checking json-patch v3.0.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]    Compiling enum-ordinalize-derive v4.3.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling protobuf v2.28.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]    Compiling enum-ordinalize v4.3.2
[INFO] [stderr]     Checking dirs-sys v0.5.0
[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 jsonpath-rust v0.7.5
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking signatory v0.27.1
[INFO] [stderr]     Checking cookie_store v0.22.1
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking pem v3.0.6
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking home v0.5.12
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking openssl-probe v0.1.6
[INFO] [stderr]    Compiling prometheus v0.13.4
[INFO] [stderr]     Checking rustls-native-certs v0.7.3
[INFO] [stderr]     Checking nkeys v0.4.5
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking inotify v0.11.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]    Compiling educe v0.6.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking tokio-websockets v0.10.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking nuid v0.5.0
[INFO] [stderr]     Checking tryhard v0.5.2
[INFO] [stderr]     Checking rustls-webpki v0.102.8
[INFO] [stderr]     Checking hostname v0.4.2
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking serde_nanos v0.1.4
[INFO] [stderr]     Checking tracing-serde v0.2.0
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking text-size v1.1.1
[INFO] [stderr]     Checking countme v3.0.1
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking async-nats v0.38.0
[INFO] [stderr]     Checking rowan v0.15.18
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking figment v0.10.19
[INFO] [stderr]     Checking arc-swap v1.9.1
[INFO] [stderr]     Checking rand v0.9.4
[INFO] [stderr]     Checking serde_yaml_ng v0.10.0
[INFO] [stderr]     Checking winnow v0.6.26
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling kube-derive v0.98.0
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking shikumi v0.1.0 (https://github.com/pleme-io/shikumi#90773680)
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking rnix v0.11.0
[INFO] [stderr]     Checking opencode-zen v0.1.0 (https://github.com/pleme-io/opencode-zen#5c065b2f)
[INFO] [stderr]     Checking todoku v0.1.0 (https://github.com/pleme-io/todoku#f87606e6)
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking tsunagu v0.1.0 (https://github.com/pleme-io/tsunagu#abc9944a)
[INFO] [stderr]     Checking shellexpand v3.1.2
[INFO] [stderr]     Checking fastrand v2.4.1
[INFO] [stderr]     Checking cron v0.15.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking samba v0.1.0 (https://github.com/pleme-io/samba#aa83abd3)
[INFO] [stderr]     Checking kube-core v0.98.0
[INFO] [stderr]     Checking kube-client v0.98.0
[INFO] [stderr]     Checking kube-runtime v0.98.0
[INFO] [stderr]     Checking kube v0.98.0
[INFO] [stderr]     Checking pleme-tend v0.1.0 (/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: `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: `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: `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 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 `find_cargo_lock_repos` is never used
[INFO] [stdout]    --> src/flake.rs:828:15
[INFO] [stdout]     |
[INFO] [stdout] 828 | 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: 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: associated items `enabled` and `with_enabled_repo` are never used
[INFO] [stdout]   --> src/release_swarm.rs:85:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl OrgReleaseSwarmConfig {
[INFO] [stdout]    | -------------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn enabled(org: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     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: methods `node_count` and `edge_count` are never used
[INFO] [stdout]    --> src/operator/dag.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout]  42 | impl FleetDag {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 129 |     pub fn node_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn edge_count(&self) -> usize {
[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 `find_cargo_lock_repos` is never used
[INFO] [stdout]    --> src/flake.rs:828:15
[INFO] [stdout]     |
[INFO] [stdout] 828 | 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: 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 2m 53s
[INFO] running `Command { std: "docker" "inspect" "ad3fa43bf426a8b6fdb6bb62c891fd010450ec38d5a97e7bbdff2eaafbbb7e00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ad3fa43bf426a8b6fdb6bb62c891fd010450ec38d5a97e7bbdff2eaafbbb7e00", kill_on_drop: false }`
[INFO] [stdout] ad3fa43bf426a8b6fdb6bb62c891fd010450ec38d5a97e7bbdff2eaafbbb7e00
