[INFO] cloning repository https://github.com/adrgu372/GnomeAI-RS
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/adrgu372/GnomeAI-RS" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 90e79994113711c765c05d46833501fce4f0a4d0
[INFO] checking adrgu372/GnomeAI-RS against 3154cc1a3e6424e44f438a95007d043ed5ceaaf6+rustflags=-Znext-solver=coherence for pr-133502-30
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fadrgu372%2FGnomeAI-RS" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/adrgu372/GnomeAI-RS
[INFO] finished tweaking git repo https://github.com/adrgu372/GnomeAI-RS
[INFO] tweaked toml for git repo https://github.com/adrgu372/GnomeAI-RS written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/adrgu372/GnomeAI-RS on toolchain 3154cc1a3e6424e44f438a95007d043ed5ceaaf6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/adrgu372/GnomeAI-RS 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" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded web-time-compat v0.2.1
[INFO] [stderr]   Downloaded tor-rtcompat v0.46.0
[INFO] [stderr]   Downloaded tor-general-addr v0.46.0
[INFO] [stderr]   Downloaded blanket v0.3.0
[INFO] [stderr]   Downloaded tor-memquota-cost v0.46.0
[INFO] [stderr]   Downloaded sponge-cursor v0.1.0
[INFO] [stderr]   Downloaded extend v1.2.0
[INFO] [stderr]   Downloaded retry-error v0.13.1
[INFO] [stderr]   Downloaded derive_builder_macro_fork_arti v0.11.2
[INFO] [stderr]   Downloaded amplify_syn v2.0.1
[INFO] [stderr]   Downloaded derive_builder_core_fork_arti v0.11.2
[INFO] [stderr]   Downloaded tor-error v0.46.0
[INFO] [stderr]   Downloaded tor-units v0.46.0
[INFO] [stderr]   Downloaded tor-memquota v0.46.0
[INFO] [stderr]   Downloaded keccak v0.2.2
[INFO] [stderr]   Downloaded tor-log-ratelim v0.46.0
[INFO] [stderr]   Downloaded serde_ignored v0.1.14
[INFO] [stderr]   Downloaded oneshot-fused-workaround v0.7.1
[INFO] [stderr]   Downloaded async_executors v0.7.0
[INFO] [stderr]   Downloaded amplify_num v0.5.4
[INFO] [stderr]   Downloaded amplify_derive v4.0.1
[INFO] [stderr]   Downloaded amplify v4.9.0
[INFO] [stderr]   Downloaded tor-basic-utils v0.46.0
[INFO] [stderr]   Downloaded slotmap-careful v0.8.1
[INFO] [stderr]   Downloaded tor-protover v0.46.0
[INFO] [stderr]   Downloaded derive_builder_fork_arti v0.11.2
[INFO] [stderr]   Downloaded weak-table v0.4.0
[INFO] [stderr]   Downloaded fs-mistrust v0.15.1
[INFO] [stderr]   Downloaded pwd-grp v1.0.2
[INFO] [stderr]   Downloaded safelog v0.9.1
[INFO] [stderr]   Downloaded fluid-let v1.0.0
[INFO] [stderr]   Downloaded reseeding_rng v0.10.7
[INFO] [stderr]   Downloaded tor-llcrypto v0.46.0
[INFO] [stderr]   Downloaded rdrand v0.9.0
[INFO] [stderr]   Downloaded tor-async-utils v0.46.0
[INFO] [stderr]   Downloaded priority-queue v2.7.0
[INFO] [stderr]   Downloaded derive-deftly v1.11.5
[INFO] [stderr]   Downloaded rand_jitter v0.6.1
[INFO] [stderr]   Downloaded tor-bytes v0.46.0
[INFO] [stderr]   Downloaded caret v0.10.1
[INFO] [stderr]   Downloaded saturating-time v0.4.0
[INFO] [stderr]   Downloaded tor-rtmock v0.46.0
[INFO] [stderr]   Downloaded ssh-encoding-fork-arti v0.2.0
[INFO] [stderr]   Downloaded tor-key-forge v0.46.0
[INFO] [stderr]   Downloaded ssh-cipher-fork-arti v0.2.0
[INFO] [stderr]   Downloaded tor-cert v0.46.0
[INFO] [stderr]   Downloaded polyval v0.7.3
[INFO] [stderr]   Downloaded nonany v0.3.0
[INFO] [stderr]   Downloaded tor-linkspec v0.46.0
[INFO] [stderr]   Downloaded tor-checkable v0.46.0
[INFO] [stderr]   Downloaded tor-config v0.46.0
[INFO] [stderr]   Downloaded fslock-guard v0.8.2
[INFO] [stderr]   Downloaded sanitize-filename v0.6.0
[INFO] [stderr]   Downloaded tor-relay-selection v0.46.0
[INFO] [stderr]   Downloaded derive-deftly-macros v1.11.5
[INFO] [stderr]   Downloaded glob-match v0.2.1
[INFO] [stderr]   Downloaded tor-hscrypto v0.46.0
[INFO] [stderr]   Downloaded k12 v0.3.0
[INFO] [stderr]   Downloaded growable-bloom-filter v2.1.1
[INFO] [stderr]   Downloaded sha3 v0.12.0
[INFO] [stderr]   Downloaded tor-config-path v0.46.0
[INFO] [stderr]   Downloaded adobe-cmap-parser v0.4.1
[INFO] [stderr]   Downloaded typed-index-collections v3.5.0
[INFO] [stderr]   Downloaded tor-persist v0.46.0
[INFO] [stderr]   Downloaded type1-encoding-parser v0.1.1
[INFO] [stderr]   Downloaded tor-socksproto v0.46.0
[INFO] [stderr]   Downloaded tor-dirclient v0.46.0
[INFO] [stderr]   Downloaded liblzma v0.4.8
[INFO] [stderr]   Downloaded sse-stream v0.2.5
[INFO] [stderr]   Downloaded postscript v0.14.1
[INFO] [stderr]   Downloaded globset v0.4.19
[INFO] [stderr]   Downloaded atspi v0.30.0
[INFO] [stderr]   Downloaded atspi-connection v0.14.0
[INFO] [stderr]   Downloaded tor-dircommon v0.46.0
[INFO] [stderr]   Downloaded atspi-proxies v0.14.0
[INFO] [stderr]   Downloaded tor-netdir v0.46.0
[INFO] [stderr]   Downloaded landlock v0.4.5
[INFO] [stderr]   Downloaded tor-keymgr v0.46.0
[INFO] [stderr]   Downloaded ssh-key-fork-arti v0.6.7
[INFO] [stderr]   Downloaded tor-consdiff v0.46.0
[INFO] [stderr]   Downloaded ignore v0.4.31
[INFO] [stderr]   Downloaded euclid v0.20.14
[INFO] [stderr]   Downloaded tor-cell v0.46.0
[INFO] [stderr]   Downloaded pdf-extract v0.7.12
[INFO] [stderr]   Downloaded tor-chanmgr v0.46.0
[INFO] [stderr]   Downloaded tor-hsclient v0.46.0
[INFO] [stderr]   Downloaded tor-guardmgr v0.46.0
[INFO] [stderr]   Downloaded seccompiler v0.5.0
[INFO] [stderr]   Downloaded tor-circmgr v0.46.0
[INFO] [stderr]   Downloaded arti-client v0.46.0
[INFO] [stderr]   Downloaded tor-hsservice v0.46.0
[INFO] [stderr]   Downloaded atspi-common v0.14.0
[INFO] [stderr]   Downloaded pom v1.1.0
[INFO] [stderr]   Downloaded imara-diff v0.2.0
[INFO] [stderr]   Downloaded tor-dirmgr v0.46.0
[INFO] [stderr]   Downloaded tor-proto v0.46.0
[INFO] [stderr]   Downloaded tor-netdoc v0.46.0
[INFO] [stderr]   Downloaded liblzma-sys v0.4.8
[INFO] [stderr]   Downloaded lopdf v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf
[INFO] running `Command { std: "docker" "start" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf", 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" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf", 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 -Znext-solver=coherence" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf" "/opt/rustwide/cargo-home/bin/cargo" "+3154cc1a3e6424e44f438a95007d043ed5ceaaf6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking tokio v1.51.1
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling keccak v0.2.2
[INFO] [stderr]    Compiling derive-deftly-macros v1.11.5
[INFO] [stderr]    Compiling sponge-cursor v0.1.0
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling sha3 v0.12.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling itertools v0.15.0
[INFO] [stderr]    Compiling num-integer v0.1.47
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]     Checking web-time-compat v0.2.1
[INFO] [stderr]     Checking heck v0.5.0
[INFO] [stderr]     Checking retry-error v0.13.1
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking cpufeatures v0.3.1
[INFO] [stderr]    Compiling darling_core v0.14.4
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling enum-ordinalize v3.1.15
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking hybrid-array v0.4.15
[INFO] [stderr]    Compiling educe v0.4.23
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking tor-error v0.46.0
[INFO] [stderr]    Compiling darling_macro v0.14.4
[INFO] [stderr]     Checking chacha20 v0.10.2
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling darling v0.14.4
[INFO] [stderr]    Compiling derive_builder_core_fork_arti v0.11.2
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking rand_chacha v0.10.0
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling derive_builder_macro_fork_arti v0.11.2
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking indexmap v2.14.0
[INFO] [stderr]     Checking derive_builder_fork_arti v0.11.2
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]    Compiling amplify_syn v2.0.1
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling pin-project-internal v1.1.13
[INFO] [stderr]    Compiling num-bigint-dig v0.8.6
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking inout v0.2.2
[INFO] [stderr]     Checking num-iter v0.1.46
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]    Compiling async_executors v0.7.0
[INFO] [stderr]     Checking ascii v1.1.0
[INFO] [stderr]     Checking amplify_num v0.5.4
[INFO] [stderr]     Checking cipher v0.5.2
[INFO] [stderr]    Compiling amplify_derive v4.0.1
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]     Checking tor-general-addr v0.46.0
[INFO] [stderr]    Compiling asn1-rs-derive v0.6.0
[INFO] [stderr]     Checking pin-project v1.1.13
[INFO] [stderr]    Compiling blanket v0.3.0
[INFO] [stderr]     Checking merlin v3.0.0
[INFO] [stderr]     Checking asn1-rs v0.7.2
[INFO] [stderr]     Checking rsa v0.9.10
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking sha3 v0.10.9
[INFO] [stderr]     Checking weak-table v0.4.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking cookie-factory v0.3.3
[INFO] [stderr]     Checking asynchronous-codec v0.7.0
[INFO] [stderr]    Compiling extend v1.2.0
[INFO] [stderr]     Checking coarsetime v0.1.37
[INFO] [stderr]     Checking fluid-let v1.0.0
[INFO] [stderr]     Checking safelog v0.9.1
[INFO] [stderr]     Checking der-parser v10.0.0
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking amplify v4.9.0
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking aes v0.9.3
[INFO] [stderr]     Checking ctr v0.10.1
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking rdrand v0.9.0
[INFO] [stderr]     Checking derive-deftly v1.11.5
[INFO] [stderr]     Checking rand_jitter v0.6.1
[INFO] [stderr]     Checking tor-memquota-cost v0.46.0
[INFO] [stderr]     Checking reseeding_rng v0.10.7
[INFO] [stderr]    Compiling visibility v0.1.1
[INFO] [stderr]     Checking tor-basic-utils v0.46.0
[INFO] [stderr]     Checking slotmap v1.1.1
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking crossbeam-queue v0.3.14
[INFO] [stderr]    Compiling uncased v0.9.10
[INFO] [stderr]     Checking inotify-sys v0.1.8
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking pwd-grp v1.0.2
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking postage v0.5.0
[INFO] [stderr]     Checking tor-llcrypto v0.46.0
[INFO] [stderr]     Checking oneshot-fused-workaround v0.7.1
[INFO] [stderr]    Compiling figment v0.10.19
[INFO] [stderr]     Checking fs-mistrust v0.15.1
[INFO] [stderr]     Checking inotify v0.11.5
[INFO] [stderr]     Checking toml_parser v1.1.3+spec-1.1.0
[INFO] [stderr]     Checking toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking tor-bytes v0.46.0
[INFO] [stderr]     Checking slotmap-careful v0.8.1
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking notify-types v2.1.0
[INFO] [stderr]     Checking ordered-float v2.10.1
[INFO] [stderr]     Checking caret v0.10.1
[INFO] [stderr]    Compiling darling_core v0.24.1
[INFO] [stderr]     Checking humantime-serde v1.1.1
[INFO] [stderr]     Checking notify v8.2.0
[INFO] [stderr]     Checking toml v1.1.6+spec-1.1.0
[INFO] [stderr]     Checking serde_ignored v0.1.14
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking serde-value v0.7.0
[INFO] [stderr]     Checking ssh-encoding-fork-arti v0.2.0
[INFO] [stderr]     Checking sysinfo v0.38.4
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking ssh-cipher-fork-arti v0.2.0
[INFO] [stderr]     Checking futures-rustls v0.26.0
[INFO] [stderr]     Checking tor-checkable v0.46.0
[INFO] [stderr]     Checking saturating-time v0.4.0
[INFO] [stderr]     Checking tor-cert v0.46.0
[INFO] [stderr]     Checking ssh-key-fork-arti v0.6.7
[INFO] [stderr]     Checking tor-rtcompat v0.46.0
[INFO] [stderr]     Checking downcast-rs v2.0.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]     Checking deranged v0.5.8
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]    Compiling zvariant_utils v4.2.0
[INFO] [stderr]     Checking tor-key-forge v0.46.0
[INFO] [stderr]    Compiling phf_shared v0.14.0
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking by_address v1.2.1
[INFO] [stderr]    Compiling phf_generator v0.14.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking serde_json v1.0.151
[INFO] [stderr]     Checking time v0.3.55
[INFO] [stderr]    Compiling phf_macros v0.14.0
[INFO] [stderr]    Compiling zvariant_derive v5.15.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking iprange v0.6.7
[INFO] [stderr]     Checking hostname-validator v1.1.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking phf v0.14.0
[INFO] [stderr]    Compiling zstd-sys v2.1.0+zstd.1.5.7
[INFO] [stderr]     Checking bstr v1.13.0
[INFO] [stderr]     Checking tor-async-utils v0.46.0
[INFO] [stderr]     Checking tor-log-ratelim v0.46.0
[INFO] [stderr]     Checking tor-config v0.46.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]    Compiling darling_macro v0.24.1
[INFO] [stderr]    Compiling darling v0.24.1
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_with_macros v3.23.0
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling zcheapstr v1.1.0
[INFO] [stderr]     Checking tor-memquota v0.46.0
[INFO] [stderr]    Compiling enumset_derive v0.15.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking concurrent-queue v2.5.0
[INFO] [stderr]    Compiling num_enum_derive v0.7.6
[INFO] [stderr]    Compiling tracing-test-macro v0.2.6
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]    Compiling zvariant v5.15.0
[INFO] [stderr]     Checking serde_with v3.23.0
[INFO] [stderr]     Checking tor-units v0.46.0
[INFO] [stderr]     Checking tracing-test v0.2.6
[INFO] [stderr]     Checking num_enum v0.7.6
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tor-hscrypto v0.46.0
[INFO] [stderr]     Checking enumset v1.1.14
[INFO] [stderr]     Checking radium v0.7.0
[INFO] [stderr]     Checking universal-hash v0.6.1
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]    Compiling liblzma-sys v0.4.8
[INFO] [stderr]     Checking sanitize-filename v0.6.0
[INFO] [stderr]     Checking priority-queue v2.7.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking fslock-guard v0.8.2
[INFO] [stderr]     Checking filetime v0.2.29
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]     Checking funty v2.0.0
[INFO] [stderr]    Compiling zstd-safe v8.0.0
[INFO] [stderr]     Checking typed-index-collections v3.5.0
[INFO] [stderr]     Checking assert_matches v1.5.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking bitvec v1.1.1
[INFO] [stderr]     Checking tor-protover v0.46.0
[INFO] [stderr]     Checking tor-rtmock v0.46.0
[INFO] [stderr]     Checking shellexpand v3.1.2
[INFO] [stderr]     Checking tor-persist v0.46.0
[INFO] [stderr]     Checking tor-linkspec v0.46.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking polyval v0.7.3
[INFO] [stderr]    Compiling zbus_names v4.3.4
[INFO] [stderr]     Checking nonany v0.3.0
[INFO] [stderr]     Checking zlib-rs v0.6.6
[INFO] [stderr]     Checking tor-cell v0.46.0
[INFO] [stderr]     Checking tor-config-path v0.46.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]    Compiling getset v0.1.7
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking glob-match v0.2.1
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking tor-keymgr v0.46.0
[INFO] [stderr]     Checking liblzma v0.4.8
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking tor-socksproto v0.46.0
[INFO] [stderr]     Checking compression-core v0.4.33
[INFO] [stderr]     Checking async-signal v0.2.14
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling zbus_xml v5.2.1
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]     Checking tor-netdoc v0.46.0
[INFO] [stderr]     Checking tor-proto v0.46.0
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling zbus_macros v5.19.0
[INFO] [stderr]    Compiling zbus-lockstep v0.5.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]    Compiling serde_repr v0.1.21
[INFO] [stderr]     Checking uuid v1.23.0
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]    Compiling nix v0.31.3
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.5.2
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]     Checking imara-diff v0.2.0
[INFO] [stderr]     Checking hashlink v0.11.1
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking xxhash-rust v0.8.18
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking growable-bloom-filter v2.1.1
[INFO] [stderr]     Checking zbus v5.19.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking k12 v0.3.0
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking bumpalo v3.20.2
[INFO] [stderr]    Compiling rmcp v3.1.4
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking zstd v0.14.0
[INFO] [stderr]     Checking multer v3.1.0
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking compression-codecs v0.4.41
[INFO] [stderr]     Checking process-wrap v9.1.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.7
[INFO] [stderr]     Checking async-compression v0.4.46
[INFO] [stderr]     Checking reqwest v0.13.4
[INFO] [stderr]     Checking tor-netdir v0.46.0
[INFO] [stderr]     Checking tor-dircommon v0.46.0
[INFO] [stderr]     Checking tor-consdiff v0.46.0
[INFO] [stderr]     Checking axum-core v0.5.6
[INFO] [stderr]     Checking sse-stream v0.2.5
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking globset v0.4.19
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking tokio-stream v0.1.19
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking typed-path v0.12.3
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking base64 v0.23.1
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking ignore v0.4.31
[INFO] [stderr]     Checking zip v8.6.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking tor-relay-selection v0.46.0
[INFO] [stderr]     Checking tor-chanmgr v0.46.0
[INFO] [stderr]     Checking tor-guardmgr v0.46.0
[INFO] [stderr]     Checking axum v0.8.8
[INFO] [stderr]     Checking qrcode v0.14.1
[INFO] [stderr]     Checking atspi-common v0.14.0
[INFO] [stderr]     Checking landlock v0.4.5
[INFO] [stderr]     Checking seccompiler v0.5.0
[INFO] [stderr]     Checking tor-circmgr v0.46.0
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stderr]     Checking atspi-proxies v0.14.0
[INFO] [stderr]     Checking tor-dirclient v0.46.0
[INFO] [stderr]     Checking tor-dirmgr v0.46.0
[INFO] [stderr]     Checking tor-hsservice v0.46.0
[INFO] [stderr]     Checking tor-hsclient v0.46.0
[INFO] [stderr]     Checking atspi-connection v0.14.0
[INFO] [stderr]     Checking atspi v0.30.0
[INFO] [stderr]     Checking arti-client v0.46.0
[INFO] [stderr]     Checking gnomef-rs v3.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `merge_patch` is never used
[INFO] [stdout]    --> src/config.rs:509:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl AppConfig {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn merge_patch(&mut self, patch: &Value) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entries` is never read
[INFO] [stdout]   --> src/firecrawl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FirecrawlBundle {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 21 |     pub entries: Vec<FirecrawlEntry>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FirecrawlBundle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_release_answer` is never used
[INFO] [stdout]    --> src/firecrawl.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn build_release_answer(query: &str, entries: &[FirecrawlEntry]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version_sort_key` is never used
[INFO] [stdout]    --> src/firecrawl.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn version_sort_key(version: &str) -> Vec<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_calls` is never read
[INFO] [stdout]   --> src/llama.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct LlamaResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 20 |     pub content: String,
[INFO] [stdout] 21 |     pub tool_calls: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LlamaResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `capabilities` is never read
[INFO] [stdout]   --> src/llama.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct ModelInfo {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] 26 |     pub id: String,
[INFO] [stdout] 27 |     pub capabilities: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ModelInfo` 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: type alias `TokenStream` is never used
[INFO] [stdout]    --> src/llama.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub type TokenStream = Pin<Box<dyn Stream<Item = anyhow::Result<String>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ChatStreamEvent` is never used
[INFO] [stdout]    --> src/llama.rs:169:10
[INFO] [stdout]     |
[INFO] [stdout] 169 | pub enum ChatStreamEvent {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ChatEventStream` is never used
[INFO] [stdout]    --> src/llama.rs:176:10
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub type ChatEventStream = Pin<Box<dyn Stream<Item = anyhow::Result<ChatStreamEvent>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `http`, `chat_with_tools`, `chat_stream`, `chat_stream_with_tools`, `anthropic_chat_stream`, and `anthropic_chat_stream_with_tools` are never used
[INFO] [stdout]    --> src/llama.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl LlamaClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn http(&self) -> &reqwest::Client {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub async fn chat_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub async fn chat_stream(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     pub async fn chat_stream_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     async fn anthropic_chat_stream(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 738 |     async fn anthropic_chat_stream_with_tools(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_events_from_response` is never used
[INFO] [stdout]    --> src/llama.rs:857:4
[INFO] [stdout]     |
[INFO] [stdout] 857 | fn stream_events_from_response(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ToolCallAssembler` is never constructed
[INFO] [stdout]    --> src/llama.rs:927:8
[INFO] [stdout]     |
[INFO] [stdout] 927 | struct ToolCallAssembler {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `absorb`, `start_block`, `push_arguments`, and `finish` are never used
[INFO] [stdout]    --> src/llama.rs:932:8
[INFO] [stdout]     |
[INFO] [stdout] 931 | impl ToolCallAssembler {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 932 |     fn absorb(&mut self, delta: &Value) {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 957 |     fn start_block(&mut self, index: u64, id: &str, name: &str, input: &Value) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 972 |     fn push_arguments(&mut self, index: u64, fragment: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 982 |     fn finish(self) -> Vec<Value> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartialToolCall` is never constructed
[INFO] [stdout]    --> src/llama.rs:994:8
[INFO] [stdout]     |
[INFO] [stdout] 994 | struct PartialToolCall {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `into_value` is never used
[INFO] [stdout]     --> src/llama.rs:1001:8
[INFO] [stdout]      |
[INFO] [stdout] 1000 | impl PartialToolCall {
[INFO] [stdout]      | -------------------- method in this implementation
[INFO] [stdout] 1001 |     fn into_value(self) -> Value {
[INFO] [stdout]      |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_events_from_response` is never used
[INFO] [stdout]     --> src/llama.rs:1026:4
[INFO] [stdout]      |
[INFO] [stdout] 1026 | fn stream_anthropic_events_from_response(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sse_frame_boundary` is never used
[INFO] [stdout]     --> src/llama.rs:1109:4
[INFO] [stdout]      |
[INFO] [stdout] 1109 | fn sse_frame_boundary(buffer: &str) -> Option<(usize, usize)> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_response` is never used
[INFO] [stdout]     --> src/llama.rs:1118:4
[INFO] [stdout]      |
[INFO] [stdout] 1118 | fn stream_tokens_from_response(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_line` is never used
[INFO] [stdout]     --> src/llama.rs:1146:4
[INFO] [stdout]      |
[INFO] [stdout] 1146 | fn stream_tokens_from_line(line: &str) -> anyhow::Result<Vec<String>> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_tokens` is never used
[INFO] [stdout]     --> src/llama.rs:1413:4
[INFO] [stdout]      |
[INFO] [stdout] 1413 | fn stream_anthropic_tokens(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_stream_tokens` is never used
[INFO] [stdout]     --> src/llama.rs:1607:8
[INFO] [stdout]      |
[INFO] [stdout] 1607 | pub fn extract_stream_tokens(payload: &Value) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `priority` is never used
[INFO] [stdout]   --> src/memory.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl MemoryCategory {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn priority(&self) -> i64 {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `score_recent_summary` is never used
[INFO] [stdout]    --> src/memory.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn score_recent_summary(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `combined_terms` is never used
[INFO] [stdout]    --> src/memory.rs:406:8
[INFO] [stdout]     |
[INFO] [stdout] 406 | pub fn combined_terms(query: &str, history: &[ChatMessage]) -> HashSet<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `forget_conversation`, `recent_conversation_rows`, `touch_facts`, and `working_memory_block` are never used
[INFO] [stdout]     --> src/memory_engine.rs:944:12
[INFO] [stdout]      |
[INFO] [stdout]  528 | impl MemoryEngine {
[INFO] [stdout]      | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  944 |     pub fn forget_conversation(&self, chat_id: &str) -> Result<()> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  978 |     fn recent_conversation_rows(&self) -> Result<Vec<RecentConversationSummary>> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  999 |     fn touch_facts(&self, ids: &[String]) -> Result<()> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1167 |     pub async fn working_memory_block(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `hybrid_score` is never used
[INFO] [stdout]     --> src/memory_engine.rs:2321:4
[INFO] [stdout]      |
[INFO] [stdout] 2321 | fn hybrid_score(
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_memory_block` is never used
[INFO] [stdout]     --> src/memory_engine.rs:2370:4
[INFO] [stdout]      |
[INFO] [stdout] 2370 | fn format_memory_block(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NODE_PROTOCOL_VERSION` is never used
[INFO] [stdout]  --> src/node_protocol.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const NODE_PROTOCOL_VERSION: u32 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RootPolicy` is never used
[INFO] [stdout]  --> src/node_protocol.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum RootPolicy {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeHello` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct NodeHello {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeRecord` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct NodeRecord {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeJob` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct NodeJob {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePoll` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct NodePoll {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePollResponse` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct NodePollResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeResult` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct NodeResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SetRootPolicyRequest` is never constructed
[INFO] [stdout]    --> src/node_protocol.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct SetRootPolicyRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterResponse` is never constructed
[INFO] [stdout]    --> src/node_protocol.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct RegisterResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONLINE_WINDOW_SECS` is never used
[INFO] [stdout]   --> src/nodes.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const ONLINE_WINDOW_SECS: u64 = 45;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_POLL_SECS` is never used
[INFO] [stdout]   --> src/nodes.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const LONG_POLL_SECS: u64 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RESULT_CHARS` is never used
[INFO] [stdout]   --> src/nodes.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_RESULT_CHARS: usize = 1_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeHub` is never constructed
[INFO] [stdout]   --> src/nodes.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NodeHub {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HubState` is never constructed
[INFO] [stdout]   --> src/nodes.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct HubState {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StoredNode` is never constructed
[INFO] [stdout]   --> src/nodes.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct StoredNode {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StoredRegistry` is never constructed
[INFO] [stdout]   --> src/nodes.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct StoredRegistry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/nodes.rs:68:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl NodeHub {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  68 |     pub fn open(store_path: PathBuf) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     async fn persist_locked(&self, state: &HubState) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub async fn register(&self, hello: NodeHello) -> Result<RegisterResponse> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub async fn poll(&self, node_id: &str) -> Result<NodePollResponse> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn submit_result(&self, mut result: NodeResult) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub async fn list(&self) -> Vec<NodeRecord> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub async fn set_root_policy(&self, node_id: &str, policy: RootPolicy) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn queue_and_wait(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeServerState` is never constructed
[INFO] [stdout]    --> src/nodes.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | struct NodeServerState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve` is never used
[INFO] [stdout]    --> src/nodes.rs:278:14
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub async fn serve(
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `protect_node_api` is never used
[INFO] [stdout]    --> src/nodes.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 312 | async fn protect_node_api(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_node` is never used
[INFO] [stdout]    --> src/nodes.rs:337:10
[INFO] [stdout]     |
[INFO] [stdout] 337 | async fn register_node(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_node` is never used
[INFO] [stdout]    --> src/nodes.rs:344:10
[INFO] [stdout]     |
[INFO] [stdout] 344 | async fn poll_node(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `submit_result` is never used
[INFO] [stdout]    --> src/nodes.rs:351:10
[INFO] [stdout]     |
[INFO] [stdout] 351 | async fn submit_result(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_nodes` is never used
[INFO] [stdout]    --> src/nodes.rs:359:10
[INFO] [stdout]     |
[INFO] [stdout] 359 | async fn list_nodes(State(state): State<NodeServerState>) -> Json<Value> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queue_job` is never used
[INFO] [stdout]    --> src/nodes.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | async fn queue_job(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:371:10
[INFO] [stdout]     |
[INFO] [stdout] 371 | async fn set_policy(
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeApiError` is never constructed
[INFO] [stdout]    --> src/nodes.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | struct NodeApiError(anyhow::Error);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:430:18
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl NodeClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub async fn set_policy(&self, node_id: &str, policy: RootPolicy) -> Result<Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_hello` is never used
[INFO] [stdout]    --> src/nodes.rs:468:4
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn validate_hello(hello: &NodeHello) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_job_request` is never used
[INFO] [stdout]    --> src/nodes.rs:498:4
[INFO] [stdout]     |
[INFO] [stdout] 498 | fn validate_job_request(request: &QueueJobRequest) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unix_now` is never used
[INFO] [stdout]    --> src/nodes.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn unix_now() -> u64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cap_text` is never used
[INFO] [stdout]    --> src/nodes.rs:526:4
[INFO] [stdout]     |
[INFO] [stdout] 526 | fn cap_text(value: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/nodes.rs:534:4
[INFO] [stdout]     |
[INFO] [stdout] 534 | fn constant_time_eq(left: &str, right: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `truncated` is never read
[INFO] [stdout]    --> src/sandbox.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ExecOutput {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub truncated: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecOutput` 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 `spawn_sandboxed` is never used
[INFO] [stdout]    --> src/sandbox.rs:195:14
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub async fn spawn_sandboxed(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/skills.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workspace_dir`, `config_file`, `whatsapp_bridge_file`, `whatsapp_log_file`, and `workflow_file` are never read
[INFO] [stdout]   --> src/storage.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub workspace_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub config_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub whatsapp_bridge_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub whatsapp_log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub workflow_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppPaths` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_private` is never used
[INFO] [stdout]    --> src/storage.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn write_private(path: &Path, data: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatListItem` is never constructed
[INFO] [stdout]    --> src/storage.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/storage.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_file_path` is never used
[INFO] [stdout]    --> src/storage.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub fn chat_file_path(paths: &AppPaths, cid: &str) -> anyhow::Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_chat_id` is never used
[INFO] [stdout]    --> src/storage.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn validate_chat_id(cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_chat` is never used
[INFO] [stdout]    --> src/storage.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn new_chat(paths: &AppPaths) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/storage.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_chat` is never used
[INFO] [stdout]    --> src/storage.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn save_chat(paths: &AppPaths, chat: &Chat) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_chat` is never used
[INFO] [stdout]    --> src/storage.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn delete_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/storage.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/storage.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_context` is never used
[INFO] [stdout]    --> src/storage.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn build_context(history: &[ChatMessage], window: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/storage.rs:376:8
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TRANSCRIBE_TIMEOUT` is never used
[INFO] [stdout]   --> src/transcribe.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const TRANSCRIBE_TIMEOUT: Duration = Duration::from_secs(180);
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TRANSCRIBE_BYTES` is never used
[INFO] [stdout]   --> src/transcribe.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const MAX_TRANSCRIBE_BYTES: u64 = 25 * 1024 * 1024;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `TranscriptionProvider` is never used
[INFO] [stdout]   --> src/transcribe.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait TranscriptionProvider: Send + Sync {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OpenAiTranscription` is never constructed
[INFO] [stdout]   --> src/transcribe.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OpenAiTranscription {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resolve_transcription_provider` is never used
[INFO] [stdout]    --> src/transcribe.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn resolve_transcription_provider(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `candidate_urls` is never used
[INFO] [stdout]    --> src/transcribe.rs:145:4
[INFO] [stdout]     |
[INFO] [stdout] 145 | fn candidate_urls(base: &str) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_transcription` is never used
[INFO] [stdout]    --> src/transcribe.rs:156:4
[INFO] [stdout]     |
[INFO] [stdout] 156 | fn parse_transcription(raw: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_UPLOAD_STORAGE_BYTES` is never used
[INFO] [stdout]    --> src/uploads.rs:164:11
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub const MAX_UPLOAD_STORAGE_BYTES: u64 = 1024 * 1024 * 1024;
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReadFileResult` is never constructed
[INFO] [stdout]    --> src/uploads.rs:167:12
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct ReadFileResult {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_upload_filename` is never used
[INFO] [stdout]    --> src/uploads.rs:174:8
[INFO] [stdout]     |
[INFO] [stdout] 174 | pub fn sanitize_upload_filename(filename: &str, fallback: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload_candidates` is never used
[INFO] [stdout]    --> src/uploads.rs:190:4
[INFO] [stdout]     |
[INFO] [stdout] 190 | fn upload_candidates(directory: &Path, filename: &str) -> Vec<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_unique_private` is never used
[INFO] [stdout]    --> src/uploads.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn write_unique_private(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_upload_capacity` is never used
[INFO] [stdout]    --> src/uploads.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn ensure_upload_capacity(root: &Path, incoming_bytes: usize) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `directory_bytes` is never used
[INFO] [stdout]    --> src/uploads.rs:258:4
[INFO] [stdout]     |
[INFO] [stdout] 258 | fn directory_bytes(root: &Path) -> anyhow::Result<u64> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extension_from_mime` is never used
[INFO] [stdout]    --> src/uploads.rs:281:8
[INFO] [stdout]     |
[INFO] [stdout] 281 | pub fn extension_from_mime(mime: &str, fallback: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]    --> src/uploads.rs:614:14
[INFO] [stdout]     |
[INFO] [stdout] 614 | pub async fn read_file(path: &Path) -> anyhow::Result<ReadFileResult> {
[INFO] [stdout]     |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `transcribe_media` is never used
[INFO] [stdout]    --> src/uploads.rs:703:14
[INFO] [stdout]     |
[INFO] [stdout] 703 | pub async fn transcribe_media(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_parser_with_env` is never used
[INFO] [stdout]    --> src/uploads.rs:736:10
[INFO] [stdout]     |
[INFO] [stdout] 736 | async fn run_parser_with_env(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ocr_image` is never used
[INFO] [stdout]    --> src/uploads.rs:769:10
[INFO] [stdout]     |
[INFO] [stdout] 769 | async fn ocr_image(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pdftotext` is never used
[INFO] [stdout]    --> src/uploads.rs:794:10
[INFO] [stdout]     |
[INFO] [stdout] 794 | async fn pdftotext(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_image_as_base64` is never used
[INFO] [stdout]    --> src/uploads.rs:804:8
[INFO] [stdout]     |
[INFO] [stdout] 804 | pub fn encode_image_as_base64(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_image_as_data_url` is never used
[INFO] [stdout]    --> src/uploads.rs:809:8
[INFO] [stdout]     |
[INFO] [stdout] 809 | pub fn encode_image_as_data_url(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:817:14
[INFO] [stdout]     |
[INFO] [stdout] 817 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_media` is never used
[INFO] [stdout]    --> src/uploads.rs:830:14
[INFO] [stdout]     |
[INFO] [stdout] 830 | pub async fn save_base64_media(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprints` is never used
[INFO] [stdout]   --> src/verify.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn fingerprints(diags: &[Diagnostic]) -> HashSet<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/verify.rs:371:14
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub async fn verify(root: &Path, policy: &SandboxPolicy) -> Result<VerifyReport> {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]    --> src/verify.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub enum Outcome {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]    --> src/verify.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct Loop {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/verify.rs:472:18
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Loop {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 471 |     /// Establish the baseline. Call once, before the first patch is applied.
[INFO] [stdout] 472 |     pub async fn new(root: &Path, policy: &SandboxPolicy, max_rounds: usize) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn step(
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/bin/../node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[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 `NodeRecord` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct NodeRecord {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `QueueJobRequest` is never constructed
[INFO] [stdout]    --> src/bin/../node_protocol.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct QueueJobRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_timeout` is never used
[INFO] [stdout]    --> src/bin/../node_protocol.rs:119:4
[INFO] [stdout]     |
[INFO] [stdout] 119 | fn default_timeout() -> u64 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SetRootPolicyRequest` is never constructed
[INFO] [stdout]    --> src/bin/../node_protocol.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct SetRootPolicyRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterResponse` is never constructed
[INFO] [stdout]    --> src/bin/../node_protocol.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct RegisterResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `save`, `provider_api_key`, `resolve_provider_api_key`, `remember_provider_api_key`, and `merge_patch` are never used
[INFO] [stdout]    --> src/bin/../config.rs:279:12
[INFO] [stdout]     |
[INFO] [stdout] 266 | impl AppConfig {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn save(&self, path: &Path) -> anyhow::Result<()> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 474 |     pub fn provider_api_key(&self, provider_id: &str) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 483 |     pub fn resolve_provider_api_key(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 498 |     pub fn remember_provider_api_key(&mut self, provider_id: &str, api_key: Option<&str>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn merge_patch(&mut self, patch: &Value) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_effort_scalar` is never used
[INFO] [stdout]    --> src/bin/../config.rs:581:8
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub fn reasoning_effort_scalar(effort: &str) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_effort_tier` is never used
[INFO] [stdout]    --> src/bin/../config.rs:598:8
[INFO] [stdout]     |
[INFO] [stdout] 598 | pub fn reasoning_effort_tier(value: &str) -> Option<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_effort_prompt_line` is never used
[INFO] [stdout]    --> src/bin/../config.rs:613:8
[INFO] [stdout]     |
[INFO] [stdout] 613 | pub fn reasoning_effort_prompt_line(effort: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NODE_PROTOCOL_VERSION` is never used
[INFO] [stdout]  --> src/bin/../node_protocol.rs:5:11
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub const NODE_PROTOCOL_VERSION: u32 = 1;
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RootPolicy` is never used
[INFO] [stdout]  --> src/bin/../node_protocol.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum RootPolicy {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/bin/../node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeHello` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct NodeHello {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeRecord` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct NodeRecord {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeJob` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct NodeJob {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePoll` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct NodePoll {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePollResponse` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct NodePollResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeResult` is never constructed
[INFO] [stdout]   --> src/bin/../node_protocol.rs:88:12
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub struct NodeResult {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SetRootPolicyRequest` is never constructed
[INFO] [stdout]    --> src/bin/../node_protocol.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct SetRootPolicyRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `RegisterResponse` is never constructed
[INFO] [stdout]    --> src/bin/../node_protocol.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub struct RegisterResponse {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONLINE_WINDOW_SECS` is never used
[INFO] [stdout]   --> src/bin/../nodes.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const ONLINE_WINDOW_SECS: u64 = 45;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_POLL_SECS` is never used
[INFO] [stdout]   --> src/bin/../nodes.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const LONG_POLL_SECS: u64 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RESULT_CHARS` is never used
[INFO] [stdout]   --> src/bin/../nodes.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_RESULT_CHARS: usize = 1_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeHub` is never constructed
[INFO] [stdout]   --> src/bin/../nodes.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct NodeHub {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HubState` is never constructed
[INFO] [stdout]   --> src/bin/../nodes.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | struct HubState {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StoredNode` is never constructed
[INFO] [stdout]   --> src/bin/../nodes.rs:54:8
[INFO] [stdout]    |
[INFO] [stdout] 54 | struct StoredNode {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StoredRegistry` is never constructed
[INFO] [stdout]   --> src/bin/../nodes.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | struct StoredRegistry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/bin/../nodes.rs:68:12
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl NodeHub {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout]  68 |     pub fn open(store_path: PathBuf) -> Result<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     async fn persist_locked(&self, state: &HubState) -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub async fn register(&self, hello: NodeHello) -> Result<RegisterResponse> {
[INFO] [stdout]     |                  ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub async fn poll(&self, node_id: &str) -> Result<NodePollResponse> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn submit_result(&self, mut result: NodeResult) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub async fn list(&self) -> Vec<NodeRecord> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 204 |     pub async fn set_root_policy(&self, node_id: &str, policy: RootPolicy) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn queue_and_wait(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeServerState` is never constructed
[INFO] [stdout]    --> src/bin/../nodes.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | struct NodeServerState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:278:14
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub async fn serve(
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `protect_node_api` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 312 | async fn protect_node_api(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_node` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:337:10
[INFO] [stdout]     |
[INFO] [stdout] 337 | async fn register_node(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_node` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:344:10
[INFO] [stdout]     |
[INFO] [stdout] 344 | async fn poll_node(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `submit_result` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:351:10
[INFO] [stdout]     |
[INFO] [stdout] 351 | async fn submit_result(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_nodes` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:359:10
[INFO] [stdout]     |
[INFO] [stdout] 359 | async fn list_nodes(State(state): State<NodeServerState>) -> Json<Value> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queue_job` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | async fn queue_job(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_policy` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:371:10
[INFO] [stdout]     |
[INFO] [stdout] 371 | async fn set_policy(
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeApiError` is never constructed
[INFO] [stdout]    --> src/bin/../nodes.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | struct NodeApiError(anyhow::Error);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_policy` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:430:18
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl NodeClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub async fn set_policy(&self, node_id: &str, policy: RootPolicy) -> Result<Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_hello` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:468:4
[INFO] [stdout]     |
[INFO] [stdout] 468 | fn validate_hello(hello: &NodeHello) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_job_request` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:498:4
[INFO] [stdout]     |
[INFO] [stdout] 498 | fn validate_job_request(request: &QueueJobRequest) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unix_now` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:519:4
[INFO] [stdout]     |
[INFO] [stdout] 519 | fn unix_now() -> u64 {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cap_text` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:526:4
[INFO] [stdout]     |
[INFO] [stdout] 526 | fn cap_text(value: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/bin/../nodes.rs:534:4
[INFO] [stdout]     |
[INFO] [stdout] 534 | fn constant_time_eq(left: &str, right: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RESOURCE_BYTES` is never used
[INFO] [stdout]   --> src/bin/../skills.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const MAX_RESOURCE_BYTES: u64 = 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `body` is never read
[INFO] [stdout]   --> src/bin/../skills.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct LoadedSkill {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 41 |     pub summary: SkillSummary,
[INFO] [stdout] 42 |     pub body: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LoadedSkill` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relative` is never read
[INFO] [stdout]   --> src/bin/../skills.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SkillEntrypoint {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 58 |     pub path: PathBuf,
[INFO] [stdout] 59 |     pub relative: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SkillEntrypoint` 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: struct `PreparedSource` is never constructed
[INFO] [stdout]   --> src/bin/../skills.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | struct PreparedSource {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TemporaryDirectory` is never constructed
[INFO] [stdout]   --> src/bin/../skills.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct TemporaryDirectory(PathBuf);
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]   --> src/bin/../skills.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 79 | impl TemporaryDirectory {
[INFO] [stdout]    | ----------------------- associated function in this implementation
[INFO] [stdout] 80 |     fn create(prefix: &str) -> Result<Self> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_catalog` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn render_catalog(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `inspect` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:160:8
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub fn inspect(workspace: &Path, name: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `catalog_prompt` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `catalog_prompt_for` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:207:4
[INFO] [stdout]     |
[INFO] [stdout] 207 | fn catalog_prompt_for(workspace: &Path, activation: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_for_model` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:234:8
[INFO] [stdout]     |
[INFO] [stdout] 234 | pub fn render_for_model(skill: &LoadedSkill) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_resource` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn read_resource(workspace: &Path, name: &str, relative: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `install` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 286 | pub fn install(source: &str, workspace: &Path) -> Result<SkillSummary> {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:442:8
[INFO] [stdout]     |
[INFO] [stdout] 442 | pub fn update(name: &str, workspace: &Path) -> Result<SkillSummary> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:453:8
[INFO] [stdout]     |
[INFO] [stdout] 453 | pub fn remove(name: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:471:8
[INFO] [stdout]     |
[INFO] [stdout] 471 | pub fn verify(workspace: &Path, name: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `install_from_source` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:484:4
[INFO] [stdout]     |
[INFO] [stdout] 484 | fn install_from_source(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prepare_source` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:553:4
[INFO] [stdout]     |
[INFO] [stdout] 553 | fn prepare_source(source: &str, workspace: &Path) -> Result<PreparedSource> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_git_source` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:621:4
[INFO] [stdout]     |
[INFO] [stdout] 621 | fn is_git_source(source: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `expand_path` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:629:4
[INFO] [stdout]     |
[INFO] [stdout] 629 | fn expand_path(raw: &str, workspace: &Path) -> Result<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `locate_skill_root` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:646:4
[INFO] [stdout]     |
[INFO] [stdout] 646 | fn locate_skill_root(root: &Path) -> Result<PathBuf> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_package` is never used
[INFO] [stdout]    --> src/bin/../skills.rs:912:4
[INFO] [stdout]     |
[INFO] [stdout] 912 | fn copy_package(source: &Path, destination: &Path) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AppPaths` is never constructed
[INFO] [stdout]   --> src/bin/../storage.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ensure_dirs` are never used
[INFO] [stdout]   --> src/bin/../storage.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl AppPaths {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 39 |     pub fn new(app_dir: PathBuf) -> anyhow::Result<Self> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn ensure_dirs(&self) -> anyhow::Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_private` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn write_private(path: &Path, data: &[u8]) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatMessage` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 | pub struct ChatMessage {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chat` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | pub struct Chat {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatListItem` is never constructed
[INFO] [stdout]    --> src/bin/../storage.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_file_path` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub fn chat_file_path(paths: &AppPaths, cid: &str) -> anyhow::Result<PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_chat_id` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:208:8
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub fn validate_chat_id(cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn new_chat(paths: &AppPaths) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:262:8
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub fn save_chat(paths: &AppPaths, chat: &Chat) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `delete_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:268:8
[INFO] [stdout]     |
[INFO] [stdout] 268 | pub fn delete_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_context` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:329:8
[INFO] [stdout]     |
[INFO] [stdout] 329 | pub fn build_context(history: &[ChatMessage], window: usize) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/bin/../storage.rs:376:8
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `entries` is never read
[INFO] [stdout]   --> src/firecrawl.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FirecrawlBundle {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 21 |     pub entries: Vec<FirecrawlEntry>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FirecrawlBundle` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_release_answer` is never used
[INFO] [stdout]    --> src/firecrawl.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn build_release_answer(query: &str, entries: &[FirecrawlEntry]) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `version_sort_key` is never used
[INFO] [stdout]    --> src/firecrawl.rs:716:4
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn version_sort_key(version: &str) -> Vec<u32> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_calls` is never read
[INFO] [stdout]   --> src/llama.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct LlamaResponse {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 20 |     pub content: String,
[INFO] [stdout] 21 |     pub tool_calls: Vec<Value>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LlamaResponse` 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: type alias `TokenStream` is never used
[INFO] [stdout]    --> src/llama.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub type TokenStream = Pin<Box<dyn Stream<Item = anyhow::Result<String>> + Send>>;
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `http`, `chat_with_tools`, `chat_stream`, and `anthropic_chat_stream` are never used
[INFO] [stdout]    --> src/llama.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl LlamaClient {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn http(&self) -> &reqwest::Client {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 309 |     pub async fn chat_with_tools(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     pub async fn chat_stream(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 694 |     async fn anthropic_chat_stream(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_tokens_from_response` is never used
[INFO] [stdout]     --> src/llama.rs:1118:4
[INFO] [stdout]      |
[INFO] [stdout] 1118 | fn stream_tokens_from_response(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stream_anthropic_tokens` is never used
[INFO] [stdout]     --> src/llama.rs:1413:4
[INFO] [stdout]      |
[INFO] [stdout] 1413 | fn stream_anthropic_tokens(
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `forget_conversation` is never used
[INFO] [stdout]    --> src/memory_engine.rs:944:12
[INFO] [stdout]     |
[INFO] [stdout] 528 | impl MemoryEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 944 |     pub fn forget_conversation(&self, chat_id: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePoll` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct NodePoll {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodePollResponse` is never constructed
[INFO] [stdout]   --> src/node_protocol.rs:82:12
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub struct NodePollResponse {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SetRootPolicyRequest` is never constructed
[INFO] [stdout]    --> src/node_protocol.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct SetRootPolicyRequest {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LONG_POLL_SECS` is never used
[INFO] [stdout]   --> src/nodes.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const LONG_POLL_SECS: u64 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_RESULT_CHARS` is never used
[INFO] [stdout]   --> src/nodes.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_RESULT_CHARS: usize = 1_000_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `poll` and `submit_result` are never used
[INFO] [stdout]    --> src/nodes.rs:120:18
[INFO] [stdout]     |
[INFO] [stdout]  67 | impl NodeHub {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub async fn poll(&self, node_id: &str) -> Result<NodePollResponse> {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn submit_result(&self, mut result: NodeResult) -> Result<()> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeServerState` is never constructed
[INFO] [stdout]    --> src/nodes.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | struct NodeServerState {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `serve` is never used
[INFO] [stdout]    --> src/nodes.rs:278:14
[INFO] [stdout]     |
[INFO] [stdout] 278 | pub async fn serve(
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `protect_node_api` is never used
[INFO] [stdout]    --> src/nodes.rs:312:10
[INFO] [stdout]     |
[INFO] [stdout] 312 | async fn protect_node_api(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `register_node` is never used
[INFO] [stdout]    --> src/nodes.rs:337:10
[INFO] [stdout]     |
[INFO] [stdout] 337 | async fn register_node(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_node` is never used
[INFO] [stdout]    --> src/nodes.rs:344:10
[INFO] [stdout]     |
[INFO] [stdout] 344 | async fn poll_node(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `submit_result` is never used
[INFO] [stdout]    --> src/nodes.rs:351:10
[INFO] [stdout]     |
[INFO] [stdout] 351 | async fn submit_result(
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_nodes` is never used
[INFO] [stdout]    --> src/nodes.rs:359:10
[INFO] [stdout]     |
[INFO] [stdout] 359 | async fn list_nodes(State(state): State<NodeServerState>) -> Json<Value> {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `queue_job` is never used
[INFO] [stdout]    --> src/nodes.rs:363:10
[INFO] [stdout]     |
[INFO] [stdout] 363 | async fn queue_job(
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:371:10
[INFO] [stdout]     |
[INFO] [stdout] 371 | async fn set_policy(
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NodeApiError` is never constructed
[INFO] [stdout]    --> src/nodes.rs:381:8
[INFO] [stdout]     |
[INFO] [stdout] 381 | struct NodeApiError(anyhow::Error);
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:430:18
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl NodeClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub async fn set_policy(&self, node_id: &str, policy: RootPolicy) -> Result<Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cap_text` is never used
[INFO] [stdout]    --> src/nodes.rs:526:4
[INFO] [stdout]     |
[INFO] [stdout] 526 | fn cap_text(value: &str, max: usize) -> String {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `constant_time_eq` is never used
[INFO] [stdout]    --> src/nodes.rs:534:4
[INFO] [stdout]     |
[INFO] [stdout] 534 | fn constant_time_eq(left: &str, right: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `truncated` is never read
[INFO] [stdout]    --> src/sandbox.rs:192:9
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct ExecOutput {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub truncated: bool,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecOutput` 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 `web_catalog_prompt` is never used
[INFO] [stdout]    --> src/skills.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn web_catalog_prompt(workspace: &Path) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `workspace_dir`, `config_file`, `whatsapp_bridge_file`, `whatsapp_log_file`, and `workflow_file` are never read
[INFO] [stdout]   --> src/storage.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppPaths {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 20 |     pub workspace_dir: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub config_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub whatsapp_bridge_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 29 |     pub whatsapp_log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 30 |     pub workflow_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppPaths` 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: struct `ChatListItem` is never constructed
[INFO] [stdout]    --> src/storage.rs:160:12
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub struct ChatListItem {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chat_files` is never used
[INFO] [stdout]    --> src/storage.rs:165:8
[INFO] [stdout]     |
[INFO] [stdout] 165 | pub fn list_chat_files(paths: &AppPaths) -> anyhow::Result<Vec<PathBuf>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_chats` is never used
[INFO] [stdout]    --> src/storage.rs:186:8
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub fn list_chats(paths: &AppPaths) -> anyhow::Result<Vec<ChatListItem>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_chat` is never used
[INFO] [stdout]    --> src/storage.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn load_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<Chat> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `append_msg` is never used
[INFO] [stdout]    --> src/storage.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | pub fn append_msg(
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_chat` is never used
[INFO] [stdout]    --> src/storage.rs:323:8
[INFO] [stdout]     |
[INFO] [stdout] 323 | pub fn clear_chat(paths: &AppPaths, cid: &str) -> anyhow::Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `image_meta` is never used
[INFO] [stdout]    --> src/storage.rs:376:8
[INFO] [stdout]     |
[INFO] [stdout] 376 | pub fn image_meta(filename: &str, path: &Path, ocr: &str) -> Value {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_image_as_base64` is never used
[INFO] [stdout]    --> src/uploads.rs:804:8
[INFO] [stdout]     |
[INFO] [stdout] 804 | pub fn encode_image_as_base64(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_image_as_data_url` is never used
[INFO] [stdout]    --> src/uploads.rs:809:8
[INFO] [stdout]     |
[INFO] [stdout] 809 | pub fn encode_image_as_data_url(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:817:14
[INFO] [stdout]     |
[INFO] [stdout] 817 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fingerprints` is never used
[INFO] [stdout]   --> src/verify.rs:86:4
[INFO] [stdout]    |
[INFO] [stdout] 86 | fn fingerprints(diags: &[Diagnostic]) -> HashSet<String> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify` is never used
[INFO] [stdout]    --> src/verify.rs:371:14
[INFO] [stdout]     |
[INFO] [stdout] 371 | pub async fn verify(root: &Path, policy: &SandboxPolicy) -> Result<VerifyReport> {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Outcome` is never used
[INFO] [stdout]    --> src/verify.rs:441:10
[INFO] [stdout]     |
[INFO] [stdout] 441 | pub enum Outcome {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Loop` is never constructed
[INFO] [stdout]    --> src/verify.rs:462:12
[INFO] [stdout]     |
[INFO] [stdout] 462 | pub struct Loop {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `step` are never used
[INFO] [stdout]    --> src/verify.rs:472:18
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Loop {
[INFO] [stdout]     | --------- associated items in this implementation
[INFO] [stdout] 471 |     /// Establish the baseline. Call once, before the first patch is applied.
[INFO] [stdout] 472 |     pub async fn new(root: &Path, policy: &SandboxPolicy, max_rounds: usize) -> Result<Self> {
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout] 486 |     pub async fn step(
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/codex_app_server.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct CodexAppServer {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 44 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt_notifying` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:285:14
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub async fn login_with_chatgpt_notifying<F>(on_device_code: F) -> Result<()>
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_effort_scalar` is never used
[INFO] [stdout]    --> src/config.rs:581:8
[INFO] [stdout]     |
[INFO] [stdout] 581 | pub fn reasoning_effort_scalar(effort: &str) -> Option<u8> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reasoning_effort_prompt_line` is never used
[INFO] [stdout]    --> src/config.rs:613:8
[INFO] [stdout]     |
[INFO] [stdout] 613 | pub fn reasoning_effort_prompt_line(effort: &str) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `codex_account_model_ids` is never used
[INFO] [stdout]    --> src/llama.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn codex_account_model_ids(models: Vec<ModelInfo>, active_model: &str) -> Vec<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelEntry` is never constructed
[INFO] [stdout]   --> src/model_catalog.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct ModelEntry {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelLimits` is never constructed
[INFO] [stdout]   --> src/model_catalog.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct ModelLimits {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `models_dev_provider_id` is never used
[INFO] [stdout]   --> src/model_catalog.rs:38:4
[INFO] [stdout]    |
[INFO] [stdout] 38 | fn models_dev_provider_id(preset_id: &str) -> Option<&str> {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Snapshot` is never used
[INFO] [stdout]   --> src/model_catalog.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | type Snapshot = HashMap<String, ProviderEntry>;
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProviderEntry` is never constructed
[INFO] [stdout]   --> src/model_catalog.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct ProviderEntry {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `snapshot` is never used
[INFO] [stdout]   --> src/model_catalog.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn snapshot() -> Option<&'static Snapshot> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `limits_for` is never used
[INFO] [stdout]   --> src/model_catalog.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn limits_for(preset_id: &str, model: &str) -> Option<ModelLimits> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `context_window_for` is never used
[INFO] [stdout]   --> src/model_catalog.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn context_window_for(preset_id: &str, model: &str) -> Option<i64> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `max_output_tokens_for` is never used
[INFO] [stdout]    --> src/model_catalog.rs:102:8
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub fn max_output_tokens_for(preset_id: &str, model: &str) -> Option<i64> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:430:18
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl NodeClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub async fn set_policy(&self, node_id: &str, policy: RootPolicy) -> Result<Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_MODE_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const ASKPASS_MODE_ENV: &str = "GNOMEF_SUDO_ASKPASS";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_SOCKET_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ASKPASS_SOCKET_ENV: &str = "GNOMEF_SUDO_ASKPASS_SOCKET";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_TOKEN_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const ASKPASS_TOKEN_ENV: &str = "GNOMEF_SUDO_ASKPASS_TOKEN";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ASKPASS_FRAME` is never used
[INFO] [stdout]   --> src/privilege.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const MAX_ASKPASS_FRAME: usize = 16 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeCredential` is never constructed
[INFO] [stdout]   --> src/privilege.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PrivilegeCredential {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeBroker` is never constructed
[INFO] [stdout]   --> src/privilege.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PrivilegeBroker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ensure_authenticated`, `authenticate_dynamic`, `answer_askpass`, and `wait_for_reply` are never used
[INFO] [stdout]    --> src/privilege.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl PrivilegeBroker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  46 |     pub fn new(events: mpsc::Sender<Event>, replies: mpsc::Receiver<PrivilegeCredential>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub async fn ensure_authenticated(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     async fn authenticate_dynamic(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     async fn answer_askpass(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     async fn wait_for_reply(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe_run_as_askpass` is never used
[INFO] [stdout]    --> src/privilege.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn maybe_run_as_askpass() -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AskpassEndpoint` is never constructed
[INFO] [stdout]    --> src/privilege.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | struct AskpassEndpoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]    --> src/privilege.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | impl AskpassEndpoint {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 307 |     fn create() -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_async_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:327:10
[INFO] [stdout]     |
[INFO] [stdout] 327 | async fn read_async_frame(stream: &mut UnixStream) -> Result<Vec<u8>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_async_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:337:10
[INFO] [stdout]     |
[INFO] [stdout] 337 | async fn write_async_frame(stream: &mut UnixStream, value: &[u8]) -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_askpass_cancel` is never used
[INFO] [stdout]    --> src/privilege.rs:347:10
[INFO] [stdout]     |
[INFO] [stdout] 347 | async fn write_askpass_cancel(stream: &mut UnixStream) -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_sync_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn read_sync_frame(stream: &mut StdUnixStream) -> Result<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_sync_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn write_sync_frame(stream: &mut StdUnixStream, value: &[u8]) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prompt_is_password` is never used
[INFO] [stdout]    --> src/privilege.rs:374:4
[INFO] [stdout]     |
[INFO] [stdout] 374 | fn prompt_is_password(prompt: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sudo_diagnostic` is never used
[INFO] [stdout]    --> src/privilege.rs:381:4
[INFO] [stdout]     |
[INFO] [stdout] 381 | fn sudo_diagnostic(stderr: &[u8]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Op` is never used
[INFO] [stdout]   --> src/protocol.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Op {
[INFO] [stdout]    |          ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Decision` is never used
[INFO] [stdout]    --> src/protocol.rs:293:10
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub enum Decision {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/provider.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |     Reasoning(String),
[INFO] [stdout]     |     --------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Delta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 206 -     Reasoning(String),
[INFO] [stdout] 206 +     Reasoning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/provider.rs:209:14
[INFO] [stdout]     |
[INFO] [stdout] 209 |     ToolCall(ToolCall),
[INFO] [stdout]     |     -------- ^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Delta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 209 -     ToolCall(ToolCall),
[INFO] [stdout] 209 +     ToolCall(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `reason` and `usage` are never read
[INFO] [stdout]    --> src/provider.rs:211:9
[INFO] [stdout]     |
[INFO] [stdout] 210 |     Done {
[INFO] [stdout]     |     ---- fields in this variant
[INFO] [stdout] 211 |         reason: StopReason,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 212 |         usage: Usage,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Delta` 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: methods `name` and `executes_configured_mcp` are never used
[INFO] [stdout]    --> src/provider.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub trait Provider: Send + Sync {
[INFO] [stdout]     |           -------- methods in this trait
[INFO] [stdout] 250 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     fn executes_configured_mcp(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub struct Anthropic {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 577 |     client: reqwest::Client,
[INFO] [stdout] 578 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:904:5
[INFO] [stdout]     |
[INFO] [stdout] 903 | pub struct CliProvider {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 904 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_claude` is never used
[INFO] [stdout]     --> src/provider.rs:1159:14
[INFO] [stdout]      |
[INFO] [stdout] 1159 | pub async fn login_with_claude() -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `legacy` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl ProviderSelection {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn legacy(base_url: String, api_key: Option<String>, model: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relative` is never read
[INFO] [stdout]   --> src/skills.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SkillEntrypoint {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 58 |     pub path: PathBuf,
[INFO] [stdout] 59 |     pub relative: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SkillEntrypoint` 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 `id` is never used
[INFO] [stdout]   --> src/transcribe.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait TranscriptionProvider: Send + Sync {
[INFO] [stdout]    |           --------------------- method in this trait
[INFO] [stdout] 29 |     /// Identity for diagnostics, e.g. `openai:whisper-1`.
[INFO] [stdout] 30 |     fn id(&self) -> String;
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_text_attachment` is never used
[INFO] [stdout]    --> src/uploads.rs:481:8
[INFO] [stdout]     |
[INFO] [stdout] 481 | pub fn extract_text_attachment(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:817:14
[INFO] [stdout]     |
[INFO] [stdout] 817 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]   --> src/codex_app_server.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct CodexAppServer {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 44 |     name: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:277:14
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub async fn login_with_chatgpt() -> Result<()> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_chatgpt_notifying` is never used
[INFO] [stdout]    --> src/codex_app_server.rs:285:14
[INFO] [stdout]     |
[INFO] [stdout] 285 | pub async fn login_with_chatgpt_notifying<F>(on_device_code: F) -> Result<()>
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `parse` is never used
[INFO] [stdout]   --> src/node_protocol.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl RootPolicy {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 23 |     pub fn parse(value: &str) -> Option<Self> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `set_policy` is never used
[INFO] [stdout]    --> src/nodes.rs:430:18
[INFO] [stdout]     |
[INFO] [stdout] 406 | impl NodeClient {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 430 |     pub async fn set_policy(&self, node_id: &str, policy: RootPolicy) -> Result<Value> {
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_MODE_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | const ASKPASS_MODE_ENV: &str = "GNOMEF_SUDO_ASKPASS";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_SOCKET_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const ASKPASS_SOCKET_ENV: &str = "GNOMEF_SUDO_ASKPASS_SOCKET";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ASKPASS_TOKEN_ENV` is never used
[INFO] [stdout]   --> src/privilege.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const ASKPASS_TOKEN_ENV: &str = "GNOMEF_SUDO_ASKPASS_TOKEN";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_ASKPASS_FRAME` is never used
[INFO] [stdout]   --> src/privilege.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const MAX_ASKPASS_FRAME: usize = 16 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeCredential` is never constructed
[INFO] [stdout]   --> src/privilege.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PrivilegeCredential {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrivilegeBroker` is never constructed
[INFO] [stdout]   --> src/privilege.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct PrivilegeBroker {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `ensure_authenticated`, `authenticate_dynamic`, `answer_askpass`, and `wait_for_reply` are never used
[INFO] [stdout]    --> src/privilege.rs:46:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl PrivilegeBroker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout]  46 |     pub fn new(events: mpsc::Sender<Event>, replies: mpsc::Receiver<PrivilegeCredential>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub async fn ensure_authenticated(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     async fn authenticate_dynamic(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     async fn answer_askpass(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     async fn wait_for_reply(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe_run_as_askpass` is never used
[INFO] [stdout]    --> src/privilege.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn maybe_run_as_askpass() -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AskpassEndpoint` is never constructed
[INFO] [stdout]    --> src/privilege.rs:300:8
[INFO] [stdout]     |
[INFO] [stdout] 300 | struct AskpassEndpoint {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `create` is never used
[INFO] [stdout]    --> src/privilege.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 306 | impl AskpassEndpoint {
[INFO] [stdout]     | -------------------- associated function in this implementation
[INFO] [stdout] 307 |     fn create() -> Result<Self> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_async_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:327:10
[INFO] [stdout]     |
[INFO] [stdout] 327 | async fn read_async_frame(stream: &mut UnixStream) -> Result<Vec<u8>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_async_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:337:10
[INFO] [stdout]     |
[INFO] [stdout] 337 | async fn write_async_frame(stream: &mut UnixStream, value: &[u8]) -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_askpass_cancel` is never used
[INFO] [stdout]    --> src/privilege.rs:347:10
[INFO] [stdout]     |
[INFO] [stdout] 347 | async fn write_askpass_cancel(stream: &mut UnixStream) -> Result<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_sync_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:353:4
[INFO] [stdout]     |
[INFO] [stdout] 353 | fn read_sync_frame(stream: &mut StdUnixStream) -> Result<Vec<u8>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_sync_frame` is never used
[INFO] [stdout]    --> src/privilege.rs:365:4
[INFO] [stdout]     |
[INFO] [stdout] 365 | fn write_sync_frame(stream: &mut StdUnixStream, value: &[u8]) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/provider.rs:206:15
[INFO] [stdout]     |
[INFO] [stdout] 206 |     Reasoning(String),
[INFO] [stdout]     |     --------- ^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Delta` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 206 -     Reasoning(String),
[INFO] [stdout] 206 +     Reasoning(()),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `name` and `executes_configured_mcp` are never used
[INFO] [stdout]    --> src/provider.rs:250:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub trait Provider: Send + Sync {
[INFO] [stdout]     |           -------- methods in this trait
[INFO] [stdout] 250 |     fn name(&self) -> &str;
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 260 |     fn executes_configured_mcp(&self) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 576 | pub struct Anthropic {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 577 |     client: reqwest::Client,
[INFO] [stdout] 578 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/provider.rs:904:5
[INFO] [stdout]     |
[INFO] [stdout] 903 | pub struct CliProvider {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] 904 |     name: String,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `login_with_claude` is never used
[INFO] [stdout]     --> src/provider.rs:1159:14
[INFO] [stdout]      |
[INFO] [stdout] 1159 | pub async fn login_with_claude() -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `legacy` is never used
[INFO] [stdout]    --> src/provider_catalog.rs:292:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl ProviderSelection {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 292 |     pub fn legacy(base_url: String, api_key: Option<String>, model: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `relative` is never read
[INFO] [stdout]   --> src/skills.rs:59:9
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub struct SkillEntrypoint {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] 58 |     pub path: PathBuf,
[INFO] [stdout] 59 |     pub relative: String,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SkillEntrypoint` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_text_attachment` is never used
[INFO] [stdout]    --> src/uploads.rs:481:8
[INFO] [stdout]     |
[INFO] [stdout] 481 | pub fn extract_text_attachment(path: &Path) -> anyhow::Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `save_base64_image` is never used
[INFO] [stdout]    --> src/uploads.rs:817:14
[INFO] [stdout]     |
[INFO] [stdout] 817 | pub async fn save_base64_image(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5m 05s
[INFO] running `Command { std: "docker" "inspect" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf", kill_on_drop: false }`
[INFO] [stdout] b4ebd1baf9d578f88e322d186d143cbb8ec8b3acf4338f9baab947bd3a3b4ebf
