[INFO] cloning repository https://github.com/Xhhemoing/cursor-proxy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Xhhemoing/cursor-proxy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FXhhemoing%2Fcursor-proxy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FXhhemoing%2Fcursor-proxy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 207018b19995562a97d8c71115836170666d5c88
[INFO] testing Xhhemoing/cursor-proxy against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FXhhemoing%2Fcursor-proxy" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Xhhemoing/cursor-proxy
[INFO] finished tweaking git repo https://github.com/Xhhemoing/cursor-proxy
[INFO] tweaked toml for git repo https://github.com/Xhhemoing/cursor-proxy written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Xhhemoing/cursor-proxy on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Xhhemoing/cursor-proxy 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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] caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2
[INFO] running `Command { std: "docker" "start" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", 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" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling pkg-config v0.3.34
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling cc v1.4.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling cmake v0.1.58
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling rustversion v1.0.23
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.6
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling futures-macro v0.3.34
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling inotify-sys v0.1.8
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.16
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling symlink v0.1.0
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling tokio-socks v0.5.3
[INFO] [stderr]    Compiling uuid v1.26.0
[INFO] [stderr]    Compiling tracing-appender v0.2.5
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling arc-swap v1.9.2
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling cursor-fast-proxy-rs v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Stream`
[INFO] [stdout]  --> src/admin/events.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures_util::stream::{Stream, StreamExt};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/admin/model_center.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Body as HttpBody`
[INFO] [stdout]  --> src/cursor.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use hyper::body::{Body as HttpBody, Incoming};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]  --> src/models.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::BTreeMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `merge_tool_arg_text`
[INFO] [stdout]   --> src/translate.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     merge_tool_arg_text, openai_message_with_tools, responses_message_with_request, sse_event,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2825:18
[INFO] [stdout]      |
[INFO] [stdout] 2825 |         let (tx, mut rx) = mpsc::channel::<Result<Bytes, std::convert::Infallible>>(64);
[INFO] [stdout]      |                  ----^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/cards.rs:3179:18
[INFO] [stdout]      |
[INFO] [stdout] 3179 |                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout]      |                  ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 3179 -                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout] 3179 +                 .try_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cards.rs:1037:13
[INFO] [stdout]      |
[INFO] [stdout] 1037 |         let mut pace = global.unwrap_or(plan_pace);
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `status_4xx` is assigned to, but never used
[INFO] [stdout]    --> src/health.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |         let mut status_4xx = 0usize;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_status_4xx` instead
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `status_4xx` is never read
[INFO] [stdout]    --> src/health.rs:422:21
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     status_4xx += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_user` is never read
[INFO] [stdout]    --> src/protocol.rs:710:21
[INFO] [stdout]     |
[INFO] [stdout] 710 |                     has_user = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `log`, `config_update`, and `key_update` are never used
[INFO] [stdout]   --> src/admin/events.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl EventBus {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn log(&self, entry: &serde_json::Value) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn config_update(&self, config: &crate::config::AppConfig) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn key_update(&self, keys: &[crate::config::ApiKeyRecord]) {
[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 `stack_mode` is never read
[INFO] [stdout]    --> src/admin/portal.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct PurchaseBody {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 238 |     pub plan_id: String,
[INFO] [stdout] 239 |     pub stack_mode: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `written` and `ignored` are never read
[INFO] [stdout]    --> src/billing.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 360 | pub struct Ledger {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 368 |     written: Arc<AtomicU64>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 369 |     /// 因 UNIQUE 冲突被忽略 (重复 req_id)
[INFO] [stdout] 370 |     ignored: Arc<AtomicU64>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `stats` and `db_path` are never used
[INFO] [stdout]    --> src/billing.rs:490:12
[INFO] [stdout]     |
[INFO] [stdout] 416 | impl Ledger {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 490 |     pub fn stats(&self) -> Value {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 504 |     pub fn db_path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `upstream_fetched_at`, `issue_card`, `issue_card_priced`, `eval_throttle`, and `settle` are never used
[INFO] [stdout]     --> src/cards.rs:1475:12
[INFO] [stdout]      |
[INFO] [stdout] 1414 | impl CardStore {
[INFO] [stdout]      | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1475 |     pub fn upstream_fetched_at(&self) -> Option<u64> {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1958 |     pub fn issue_card(&self, plan_id: &str, owner: &str) -> Result<Card, String> {
[INFO] [stdout]      |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1963 |     pub fn issue_card_priced(
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2382 |     fn eval_throttle(
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2743 |     pub fn settle(
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `throttle` is never read
[INFO] [stdout]     --> src/cards.rs:3094:5
[INFO] [stdout]      |
[INFO] [stdout] 3092 | pub struct CardPermit {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] 3093 |     rt: Arc<CardRuntime>,
[INFO] [stdout] 3094 |     throttle: Throttle,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `throttle`, `degraded`, `model`, and `sent_tokens` are never used
[INFO] [stdout]     --> src/cards.rs:3114:12
[INFO] [stdout]      |
[INFO] [stdout] 3113 | impl CardPermit {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] 3114 |     pub fn throttle(&self) -> Throttle {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3117 |     pub fn degraded(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3120 |     pub fn model(&self) -> &str {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3169 |     pub fn sent_tokens(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STREAM_PATH` is never used
[INFO] [stdout]   --> src/cursor.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const STREAM_PATH: &str = "/aiserver.v1.InferenceService/Stream";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GROK_BOT_CLIENT_VERSION` is never used
[INFO] [stdout]   --> src/cursor.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const GROK_BOT_CLIENT_VERSION: &str = crate::grok_version::FALLBACK;
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_kimi_family` is never used
[INFO] [stdout]   --> src/cursor.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn is_kimi_family(model: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `thinking_level_from_model` is never used
[INFO] [stdout]   --> src/cursor.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn thinking_level_from_model(model: &str) -> ThinkingLevel {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_cursor_body` is never used
[INFO] [stdout]    --> src/cursor.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn build_cursor_body(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refresh_access_token` is never used
[INFO] [stdout]     --> src/cursor.rs:1076:14
[INFO] [stdout]      |
[INFO] [stdout] 1076 | pub async fn refresh_access_token(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAUTH_ISSUER` is never used
[INFO] [stdout]   --> src/grok_auth.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const OAUTH_ISSUER: &str = "https://auth.x.ai";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CODE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const DEVICE_CODE_URL: &str = "https://auth.x.ai/oauth2/device/code";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_VERIFY_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const DEVICE_VERIFY_URL: &str = "https://auth.x.ai/oauth2/device/verify";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_APPROVE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const DEVICE_APPROVE_URL: &str = "https://auth.x.ai/oauth2/device/approve";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const TOKEN_URL: &str = "https://auth.x.ai/oauth2/token";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCOUNTS_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const ACCOUNTS_URL: &str = "https://accounts.x.ai/";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLIENT_ID` is never used
[INFO] [stdout]   --> src/grok_auth.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const CLIENT_ID: &str = "b1a00492-073a-47ea-816f-4c329264a828";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_SCOPE` is never used
[INFO] [stdout]   --> src/grok_auth.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const BUILD_SCOPE: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_BASE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const CLI_BASE_URL: &str = "https://cli-chat-proxy.grok.com/v1";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_HOST` is never used
[INFO] [stdout]   --> src/grok_auth.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const CLI_HOST: &str = "cli-chat-proxy.grok.com";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_TOKEN_AUTH` is never used
[INFO] [stdout]   --> src/grok_auth.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const CLI_TOKEN_AUTH: &str = "xai-grok-cli";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CLIENT_IDENTIFIER` is never used
[INFO] [stdout]   --> src/grok_auth.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const CLI_CLIENT_IDENTIFIER: &str = "grok-shell";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CLIENT_VERSION` is never used
[INFO] [stdout]   --> src/grok_auth.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const CLI_CLIENT_VERSION: &str = "0.2.93";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_UA` is never used
[INFO] [stdout]   --> src/grok_auth.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const DEFAULT_UA: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Sa...
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TOKEN_TTL_SECS` is never used
[INFO] [stdout]   --> src/grok_auth.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const DEFAULT_TOKEN_TTL_SECS: u64 = 6 * 3600;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AUTH_BODY` is never used
[INFO] [stdout]   --> src/grok_auth.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const MAX_AUTH_BODY: usize = 2 << 20; // 2 MiB
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_TOKEN_LEN` is never used
[INFO] [stdout]   --> src/grok_auth.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const MAX_TOKEN_LEN: usize = 16 << 10;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BuildToken` is never constructed
[INFO] [stdout]   --> src/grok_auth.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct BuildToken {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_expired` is never used
[INFO] [stdout]   --> src/grok_auth.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl BuildToken {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 56 |     pub fn is_expired(&self, skew_secs: u64) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `now_unix` is never used
[INFO] [stdout]   --> src/grok_auth.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn now_unix() -> u64 {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `normalize_sso_token` is never used
[INFO] [stdout]   --> src/grok_auth.rs:72:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn normalize_sso_token(value: &str) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sanitize_token` is never used
[INFO] [stdout]   --> src/grok_auth.rs:96:4
[INFO] [stdout]    |
[INFO] [stdout] 96 | fn sanitize_token(value: &str) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_jwt_claims` is never used
[INFO] [stdout]    --> src/grok_auth.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn decode_jwt_claims(token: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_email` is never used
[INFO] [stdout]    --> src/grok_auth.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn token_email(tok: &BuildToken) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrokAuth` is never constructed
[INFO] [stdout]    --> src/grok_auth.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct GrokAuth {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `convert_sso_to_build`, `poll_token`, `refresh_build_token`, and `do_request` are never used
[INFO] [stdout]    --> src/grok_auth.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl GrokAuth {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 154 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn convert_sso_to_build(&self, sso_token: &str) -> Result<BuildToken, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     async fn poll_token(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub async fn refresh_build_token(&self, refresh_token: &str) -> Result<BuildToken, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     async fn do_request(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `safe_xai_url` is never used
[INFO] [stdout]    --> src/grok_auth.rs:471:4
[INFO] [stdout]     |
[INFO] [stdout] 471 | fn safe_xai_url(raw: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_headers` is never used
[INFO] [stdout]    --> src/grok_auth.rs:484:8
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub fn cli_headers() -> Vec<(&'static str, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/metrics.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RpmTracker {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `resolve_smart_model` is never used
[INFO] [stdout]    --> src/models.rs:654:12
[INFO] [stdout]     |
[INFO] [stdout] 241 | impl ModelRegistry {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 654 |     pub fn resolve_smart_model(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `mask` are never read
[INFO] [stdout]   --> src/pool.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct AvailableSlot {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 40 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub mask: u8,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AvailableSlot` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ALL_OK` and `is_available` are never used
[INFO] [stdout]   --> src/pool.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl AvailableSlot {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     const ALL_OK: u8 = 0b111;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]     --> src/pool.rs:245:12
[INFO] [stdout]      |
[INFO] [stdout]  193 | impl AccountPool {
[INFO] [stdout]      | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  245 |     pub fn max_concurrency(&self) -> usize {
[INFO] [stdout]      |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  362 |     pub async fn acquire_by_session(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  371 |     pub async fn acquire(
[INFO] [stdout]      |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  387 |     pub async fn acquire_by_session_ex(
[INFO] [stdout]      |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  535 |     fn is_slot_available(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  581 |     fn slot_live_available(&self, avail: &AvailableSlot) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  593 |     fn is_slot_available_fast(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1054 |     pub fn get_quota(&self, account_id: &str) -> Option<QuotaSnapshot> {
[INFO] [stdout]      |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceLogEntry` is never constructed
[INFO] [stdout]    --> src/portal.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BalanceLogEntry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snapshot` and `create_key` are never used
[INFO] [stdout]    --> src/portal.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl PortalStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn snapshot(&self) -> Arc<PortalData> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn create_key(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_reasoning` is never used
[INFO] [stdout]   --> src/protocol.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn decode_reasoning(encrypted: &str) -> Option<(String, Option<String>)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `responses_message` is never used
[INFO] [stdout]     --> src/protocol.rs:1270:8
[INFO] [stdout]      |
[INFO] [stdout] 1270 | pub fn responses_message(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `https` is never read
[INFO] [stdout]    --> src/proxypool.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 721 | pub struct ParsedProxy {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub https: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedProxy` 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 `open_conn` and `gc` are never used
[INFO] [stdout]    --> src/quota.rs:734:8
[INFO] [stdout]     |
[INFO] [stdout] 699 | impl QuotaStore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn open_conn(&self) -> anyhow::Result<rusqlite::Connection> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 853 |     pub async fn gc(&self, keep_days: u32) -> anyhow::Result<usize> {
[INFO] [stdout]     |                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_openai_delta` is never used
[INFO] [stdout]    --> src/translate.rs:174:4
[INFO] [stdout]     |
[INFO] [stdout] 174 | fn extract_openai_delta(obj: &Value) -> Option<String> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_openai_finish` is never used
[INFO] [stdout]    --> src/translate.rs:195:4
[INFO] [stdout]     |
[INFO] [stdout] 195 | fn is_openai_finish(obj: &Value) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_output_token_limit_error` is never used
[INFO] [stdout]    --> src/translate.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn is_output_token_limit_error(obj: &Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `upstream_model` is never read
[INFO] [stdout]    --> src/translate.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 512 | pub struct StreamTranslator {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub upstream_model: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upstream_to_openai_stream` is never used
[INFO] [stdout]     --> src/translate.rs:1656:8
[INFO] [stdout]      |
[INFO] [stdout] 1656 | pub fn upstream_to_openai_stream<E>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upstream_to_openai_full` is never used
[INFO] [stdout]     --> src/translate.rs:1754:14
[INFO] [stdout]      |
[INFO] [stdout] 1754 | pub async fn upstream_to_openai_full<E>(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpstreamKind` is never used
[INFO] [stdout]   --> src/upstream.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum UpstreamKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpstreamConfig` is never constructed
[INFO] [stdout]   --> src/upstream.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct UpstreamConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout_s` is never read
[INFO] [stdout]    --> src/upstream.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct OpenAiClient {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     timeout_s: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OpenAiClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `rustls-pemfile`
[INFO] [stderr]   --> Cargo.toml:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | rustls-pemfile = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `rustls-pemfile`
[INFO] [stderr] warning: unused dependency `tower-http`
[INFO] [stderr]   --> Cargo.toml:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | [dependencies.tower-http]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tower-http`
[INFO] [stderr] warning: `cursor-fast-proxy-rs` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 6m 10s
[INFO] running `Command { std: "docker" "inspect" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling pin-project-lite v0.2.17
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling scopeguard v1.2.0
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling futures-core v0.3.34
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling futures-task v0.3.34
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling futures-util v0.3.34
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling socket2 v0.6.5
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling futures-sink v0.3.34
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling http-body v1.1.0
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling tower-layer v0.3.3
[INFO] [stderr]    Compiling tower-service v0.3.3
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling icu_provider v2.3.1
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling aws-lc-sys v0.44.0
[INFO] [stderr]    Compiling indexmap v2.14.1
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling atomic-waker v1.1.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling aws-lc-rs v1.18.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling futures-channel v0.3.34
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling http-body-util v0.1.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]    Compiling rustls-webpki v0.103.15
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling h2 v0.4.19
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling sharded-slab v0.1.7
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling rustls-native-certs v0.8.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling inotify-sys v0.1.8
[INFO] [stderr]    Compiling tracing-serde v0.2.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling thread_local v1.1.10
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling bitflags v1.3.2
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling num-conv v0.2.2
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling time-core v0.1.9
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling time v0.3.55
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling inotify v0.9.6
[INFO] [stderr]    Compiling miniz_oxide v0.9.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling libsqlite3-sys v0.30.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling hyper v1.11.1
[INFO] [stderr]    Compiling crossbeam-channel v0.5.16
[INFO] [stderr]    Compiling crc32fast v1.5.1
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling filetime v0.2.29
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling sha1_smol v1.0.1
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling symlink v0.1.0
[INFO] [stderr]    Compiling http-range-header v0.4.2
[INFO] [stderr]    Compiling tracing-appender v0.2.5
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling tower-http v0.5.2
[INFO] [stderr]    Compiling rusqlite v0.32.1
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling uuid v1.26.0
[INFO] [stderr]    Compiling notify v6.1.1
[INFO] [stderr]    Compiling tokio-socks v0.5.3
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]    Compiling anyhow v1.0.104
[INFO] [stderr]    Compiling hyper-rustls v0.27.9
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling sha1 v0.10.7
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling dashmap v6.2.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling arc-swap v1.9.2
[INFO] [stderr]    Compiling tokio-stream v0.1.19
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling cursor-fast-proxy-rs v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Stream`
[INFO] [stdout]  --> src/admin/events.rs:9:28
[INFO] [stdout]   |
[INFO] [stdout] 9 | use futures_util::stream::{Stream, StreamExt};
[INFO] [stdout]   |                            ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]   --> src/admin/model_center.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::collections::BTreeMap;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Body as HttpBody`
[INFO] [stdout]  --> src/cursor.rs:5:19
[INFO] [stdout]   |
[INFO] [stdout] 5 | use hyper::body::{Body as HttpBody, Incoming};
[INFO] [stdout]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::BTreeMap`
[INFO] [stdout]  --> src/models.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::collections::BTreeMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/main.rs:2825:18
[INFO] [stdout]      |
[INFO] [stdout] 2825 |         let (tx, mut rx) = mpsc::channel::<Result<Bytes, std::convert::Infallible>>(64);
[INFO] [stdout]      |                  ----^^
[INFO] [stdout]      |                  |
[INFO] [stdout]      |                  help: remove this `mut`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]     --> src/cards.rs:3179:18
[INFO] [stdout]      |
[INFO] [stdout] 3179 |                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout]      |                  ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]      |
[INFO] [stdout] 3179 -                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout] 3179 +                 .try_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cards.rs:1037:13
[INFO] [stdout]      |
[INFO] [stdout] 1037 |         let mut pace = global.unwrap_or(plan_pace);
[INFO] [stdout]      |             ----^^^^
[INFO] [stdout]      |             |
[INFO] [stdout]      |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/cards.rs:3513:20
[INFO] [stdout]      |
[INFO] [stdout] 3513 |         let (_, _, mut g1, _) = s.acquire(&key, "kimi-k3", 0).await.unwrap();
[INFO] [stdout]      |                    ----^^
[INFO] [stdout]      |                    |
[INFO] [stdout]      |                    help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `body1`
[INFO] [stdout]     --> src/cursor.rs:1585:13
[INFO] [stdout]      |
[INFO] [stdout] 1585 |         let body1 = build_cursor_body_with_tools(
[INFO] [stdout]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_body1`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `status_4xx` is assigned to, but never used
[INFO] [stdout]    --> src/health.rs:411:13
[INFO] [stdout]     |
[INFO] [stdout] 411 |         let mut status_4xx = 0usize;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_status_4xx` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `status_4xx` is never read
[INFO] [stdout]    --> src/health.rs:422:21
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     status_4xx += 1;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `has_user` is never read
[INFO] [stdout]    --> src/protocol.rs:710:21
[INFO] [stdout]     |
[INFO] [stdout] 710 |                     has_user = true;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `log`, `config_update`, and `key_update` are never used
[INFO] [stdout]   --> src/admin/events.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl EventBus {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn log(&self, entry: &serde_json::Value) {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn config_update(&self, config: &crate::config::AppConfig) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn key_update(&self, keys: &[crate::config::ApiKeyRecord]) {
[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 `stack_mode` is never read
[INFO] [stdout]    --> src/admin/portal.rs:239:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct PurchaseBody {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 238 |     pub plan_id: String,
[INFO] [stdout] 239 |     pub stack_mode: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `db_path` is never used
[INFO] [stdout]    --> src/billing.rs:504:12
[INFO] [stdout]     |
[INFO] [stdout] 416 | impl Ledger {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 504 |     pub fn db_path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `eval_throttle` is never used
[INFO] [stdout]     --> src/cards.rs:2382:8
[INFO] [stdout]      |
[INFO] [stdout] 1414 | impl CardStore {
[INFO] [stdout]      | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 2382 |     fn eval_throttle(
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `throttle` is never read
[INFO] [stdout]     --> src/cards.rs:3094:5
[INFO] [stdout]      |
[INFO] [stdout] 3092 | pub struct CardPermit {
[INFO] [stdout]      |            ---------- field in this struct
[INFO] [stdout] 3093 |     rt: Arc<CardRuntime>,
[INFO] [stdout] 3094 |     throttle: Throttle,
[INFO] [stdout]      |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `throttle`, `degraded`, `model`, and `sent_tokens` are never used
[INFO] [stdout]     --> src/cards.rs:3114:12
[INFO] [stdout]      |
[INFO] [stdout] 3113 | impl CardPermit {
[INFO] [stdout]      | --------------- methods in this implementation
[INFO] [stdout] 3114 |     pub fn throttle(&self) -> Throttle {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3117 |     pub fn degraded(&self) -> bool {
[INFO] [stdout]      |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3120 |     pub fn model(&self) -> &str {
[INFO] [stdout]      |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3169 |     pub fn sent_tokens(&self) -> f64 {
[INFO] [stdout]      |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STREAM_PATH` is never used
[INFO] [stdout]   --> src/cursor.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const STREAM_PATH: &str = "/aiserver.v1.InferenceService/Stream";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `build_cursor_body` is never used
[INFO] [stdout]    --> src/cursor.rs:380:8
[INFO] [stdout]     |
[INFO] [stdout] 380 | pub fn build_cursor_body(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `refresh_access_token` is never used
[INFO] [stdout]     --> src/cursor.rs:1076:14
[INFO] [stdout]      |
[INFO] [stdout] 1076 | pub async fn refresh_access_token(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OAUTH_ISSUER` is never used
[INFO] [stdout]   --> src/grok_auth.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const OAUTH_ISSUER: &str = "https://auth.x.ai";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_CODE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const DEVICE_CODE_URL: &str = "https://auth.x.ai/oauth2/device/code";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_VERIFY_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const DEVICE_VERIFY_URL: &str = "https://auth.x.ai/oauth2/device/verify";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEVICE_APPROVE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const DEVICE_APPROVE_URL: &str = "https://auth.x.ai/oauth2/device/approve";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOKEN_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const TOKEN_URL: &str = "https://auth.x.ai/oauth2/token";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ACCOUNTS_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:21:11
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub const ACCOUNTS_URL: &str = "https://accounts.x.ai/";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLIENT_ID` is never used
[INFO] [stdout]   --> src/grok_auth.rs:22:11
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub const CLIENT_ID: &str = "b1a00492-073a-47ea-816f-4c329264a828";
[INFO] [stdout]    |           ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BUILD_SCOPE` is never used
[INFO] [stdout]   --> src/grok_auth.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const BUILD_SCOPE: &str =
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_BASE_URL` is never used
[INFO] [stdout]   --> src/grok_auth.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const CLI_BASE_URL: &str = "https://cli-chat-proxy.grok.com/v1";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_HOST` is never used
[INFO] [stdout]   --> src/grok_auth.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const CLI_HOST: &str = "cli-chat-proxy.grok.com";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_TOKEN_AUTH` is never used
[INFO] [stdout]   --> src/grok_auth.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const CLI_TOKEN_AUTH: &str = "xai-grok-cli";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CLIENT_IDENTIFIER` is never used
[INFO] [stdout]   --> src/grok_auth.rs:31:11
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub const CLI_CLIENT_IDENTIFIER: &str = "grok-shell";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CLIENT_VERSION` is never used
[INFO] [stdout]   --> src/grok_auth.rs:32:11
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub const CLI_CLIENT_VERSION: &str = "0.2.93";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_UA` is never used
[INFO] [stdout]   --> src/grok_auth.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const DEFAULT_UA: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Sa...
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEFAULT_TOKEN_TTL_SECS` is never used
[INFO] [stdout]   --> src/grok_auth.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const DEFAULT_TOKEN_TTL_SECS: u64 = 6 * 3600;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_AUTH_BODY` is never used
[INFO] [stdout]   --> src/grok_auth.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const MAX_AUTH_BODY: usize = 2 << 20; // 2 MiB
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_jwt_claims` is never used
[INFO] [stdout]    --> src/grok_auth.rs:109:8
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub fn decode_jwt_claims(token: &str) -> Option<serde_json::Value> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `token_email` is never used
[INFO] [stdout]    --> src/grok_auth.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn token_email(tok: &BuildToken) -> Option<String> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GrokAuth` is never constructed
[INFO] [stdout]    --> src/grok_auth.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 140 | pub struct GrokAuth {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `convert_sso_to_build`, `poll_token`, `refresh_build_token`, and `do_request` are never used
[INFO] [stdout]    --> src/grok_auth.rs:154:12
[INFO] [stdout]     |
[INFO] [stdout] 153 | impl GrokAuth {
[INFO] [stdout]     | ------------- associated items in this implementation
[INFO] [stdout] 154 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub async fn convert_sso_to_build(&self, sso_token: &str) -> Result<BuildToken, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     async fn poll_token(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 351 |     pub async fn refresh_build_token(&self, refresh_token: &str) -> Result<BuildToken, String> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     async fn do_request(
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cli_headers` is never used
[INFO] [stdout]    --> src/grok_auth.rs:484:8
[INFO] [stdout]     |
[INFO] [stdout] 484 | pub fn cli_headers() -> Vec<(&'static str, String)> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/metrics.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl RpmTracker {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 16 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `mask` are never read
[INFO] [stdout]   --> src/pool.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct AvailableSlot {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 40 |     pub id: String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub mask: u8,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AvailableSlot` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `ALL_OK` and `is_available` are never used
[INFO] [stdout]   --> src/pool.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 46 | impl AvailableSlot {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 50 |     const ALL_OK: u8 = 0b111;
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn is_available(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `max_concurrency`, `is_slot_available`, `slot_live_available`, and `is_slot_available_fast` are never used
[INFO] [stdout]    --> src/pool.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 193 | impl AccountPool {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 245 |     pub fn max_concurrency(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 535 |     fn is_slot_available(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 581 |     fn slot_live_available(&self, avail: &AvailableSlot) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 593 |     fn is_slot_available_fast(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BalanceLogEntry` is never constructed
[INFO] [stdout]    --> src/portal.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BalanceLogEntry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `snapshot` and `create_key` are never used
[INFO] [stdout]    --> src/portal.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout] 166 | impl PortalStore {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn snapshot(&self) -> Arc<PortalData> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn create_key(
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `https` is never read
[INFO] [stdout]    --> src/proxypool.rs:726:9
[INFO] [stdout]     |
[INFO] [stdout] 721 | pub struct ParsedProxy {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 726 |     pub https: bool,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ParsedProxy` 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 `open_conn` and `gc` are never used
[INFO] [stdout]    --> src/quota.rs:734:8
[INFO] [stdout]     |
[INFO] [stdout] 699 | impl QuotaStore {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 734 |     fn open_conn(&self) -> anyhow::Result<rusqlite::Connection> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 853 |     pub async fn gc(&self, keep_days: u32) -> anyhow::Result<usize> {
[INFO] [stdout]     |                  ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_output_token_limit_error` is never used
[INFO] [stdout]    --> src/translate.rs:225:8
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub fn is_output_token_limit_error(obj: &Value) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `upstream_model` is never read
[INFO] [stdout]    --> src/translate.rs:518:9
[INFO] [stdout]     |
[INFO] [stdout] 512 | pub struct StreamTranslator {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 518 |     pub upstream_model: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upstream_to_openai_stream` is never used
[INFO] [stdout]     --> src/translate.rs:1656:8
[INFO] [stdout]      |
[INFO] [stdout] 1656 | pub fn upstream_to_openai_stream<E>(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UpstreamKind` is never used
[INFO] [stdout]   --> src/upstream.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum UpstreamKind {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UpstreamConfig` is never constructed
[INFO] [stdout]   --> src/upstream.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct UpstreamConfig {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timeout_s` is never read
[INFO] [stdout]    --> src/upstream.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct OpenAiClient {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     timeout_s: u64,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `OpenAiClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `rustls-pemfile`
[INFO] [stderr]   --> Cargo.toml:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | rustls-pemfile = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `rustls-pemfile`
[INFO] [stderr] warning: unused dependency `tower-http`
[INFO] [stderr]   --> Cargo.toml:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | [dependencies.tower-http]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tower-http`
[INFO] [stderr] warning: `cursor-fast-proxy-rs` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 28s
[INFO] running `Command { std: "docker" "inspect" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Stream`
[INFO] [stderr]  --> src/admin/events.rs:9:28
[INFO] [stderr]   |
[INFO] [stderr] 9 | use futures_util::stream::{Stream, StreamExt};
[INFO] [stderr]   |                            ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::BTreeMap`
[INFO] [stderr]   --> src/admin/model_center.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 | use std::collections::BTreeMap;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Body as HttpBody`
[INFO] [stderr]  --> src/cursor.rs:5:19
[INFO] [stderr]   |
[INFO] [stderr] 5 | use hyper::body::{Body as HttpBody, Incoming};
[INFO] [stderr]   |                   ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::BTreeMap`
[INFO] [stderr]  --> src/models.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use std::collections::BTreeMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/main.rs:2825:18
[INFO] [stderr]      |
[INFO] [stderr] 2825 |         let (tx, mut rx) = mpsc::channel::<Result<Bytes, std::convert::Infallible>>(64);
[INFO] [stderr]      |                  ----^^
[INFO] [stderr]      |                  |
[INFO] [stderr]      |                  help: remove this `mut`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::Atomic::<u64>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stderr]     --> src/cards.rs:3179:18
[INFO] [stderr]      |
[INFO] [stderr] 3179 |                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stderr]      |                  ^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]      |
[INFO] [stderr] 3179 -                 .fetch_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stderr] 3179 +                 .try_update(Ordering::AcqRel, Ordering::Relaxed, |cur| {
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cards.rs:1037:13
[INFO] [stderr]      |
[INFO] [stderr] 1037 |         let mut pace = global.unwrap_or(plan_pace);
[INFO] [stderr]      |             ----^^^^
[INFO] [stderr]      |             |
[INFO] [stderr]      |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/cards.rs:3513:20
[INFO] [stderr]      |
[INFO] [stderr] 3513 |         let (_, _, mut g1, _) = s.acquire(&key, "kimi-k3", 0).await.unwrap();
[INFO] [stderr]      |                    ----^^
[INFO] [stderr]      |                    |
[INFO] [stderr]      |                    help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `body1`
[INFO] [stderr]     --> src/cursor.rs:1585:13
[INFO] [stderr]      |
[INFO] [stderr] 1585 |         let body1 = build_cursor_body_with_tools(
[INFO] [stderr]      |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_body1`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable `status_4xx` is assigned to, but never used
[INFO] [stderr]    --> src/health.rs:411:13
[INFO] [stderr]     |
[INFO] [stderr] 411 |         let mut status_4xx = 0usize;
[INFO] [stderr]     |             ^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: consider using `_status_4xx` instead
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `status_4xx` is never read
[INFO] [stderr]    --> src/health.rs:422:21
[INFO] [stderr]     |
[INFO] [stderr] 422 |                     status_4xx += 1;
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: value assigned to `has_user` is never read
[INFO] [stderr]    --> src/protocol.rs:710:21
[INFO] [stderr]     |
[INFO] [stderr] 710 |                     has_user = true;
[INFO] [stderr]     |                     ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = help: maybe it is overwritten before being read?
[INFO] [stderr] 
[INFO] [stderr] warning: methods `log`, `config_update`, and `key_update` are never used
[INFO] [stderr]   --> src/admin/events.rs:76:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl EventBus {
[INFO] [stderr]    | ------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn log(&self, entry: &serde_json::Value) {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 81 |     pub fn config_update(&self, config: &crate::config::AppConfig) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 87 |     pub fn key_update(&self, keys: &[crate::config::ApiKeyRecord]) {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `stack_mode` is never read
[INFO] [stderr]    --> src/admin/portal.rs:239:9
[INFO] [stderr]     |
[INFO] [stderr] 237 | pub struct PurchaseBody {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] 238 |     pub plan_id: String,
[INFO] [stderr] 239 |     pub stack_mode: Option<String>,
[INFO] [stderr]     |         ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `db_path` is never used
[INFO] [stderr]    --> src/billing.rs:504:12
[INFO] [stderr]     |
[INFO] [stderr] 416 | impl Ledger {
[INFO] [stderr]     | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 504 |     pub fn db_path(&self) -> &Path {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `eval_throttle` is never used
[INFO] [stderr]     --> src/cards.rs:2382:8
[INFO] [stderr]      |
[INFO] [stderr] 1414 | impl CardStore {
[INFO] [stderr]      | -------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 2382 |     fn eval_throttle(
[INFO] [stderr]      |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `throttle` is never read
[INFO] [stderr]     --> src/cards.rs:3094:5
[INFO] [stderr]      |
[INFO] [stderr] 3092 | pub struct CardPermit {
[INFO] [stderr]      |            ---------- field in this struct
[INFO] [stderr] 3093 |     rt: Arc<CardRuntime>,
[INFO] [stderr] 3094 |     throttle: Throttle,
[INFO] [stderr]      |     ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `throttle`, `degraded`, `model`, and `sent_tokens` are never used
[INFO] [stderr]     --> src/cards.rs:3114:12
[INFO] [stderr]      |
[INFO] [stderr] 3113 | impl CardPermit {
[INFO] [stderr]      | --------------- methods in this implementation
[INFO] [stderr] 3114 |     pub fn throttle(&self) -> Throttle {
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 3117 |     pub fn degraded(&self) -> bool {
[INFO] [stderr]      |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 3120 |     pub fn model(&self) -> &str {
[INFO] [stderr]      |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 3169 |     pub fn sent_tokens(&self) -> f64 {
[INFO] [stderr]      |            ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `STREAM_PATH` is never used
[INFO] [stderr]   --> src/cursor.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const STREAM_PATH: &str = "/aiserver.v1.InferenceService/Stream";
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `build_cursor_body` is never used
[INFO] [stderr]    --> src/cursor.rs:380:8
[INFO] [stderr]     |
[INFO] [stderr] 380 | pub fn build_cursor_body(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `refresh_access_token` is never used
[INFO] [stderr]     --> src/cursor.rs:1076:14
[INFO] [stderr]      |
[INFO] [stderr] 1076 | pub async fn refresh_access_token(
[INFO] [stderr]      |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `OAUTH_ISSUER` is never used
[INFO] [stderr]   --> src/grok_auth.rs:16:11
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub const OAUTH_ISSUER: &str = "https://auth.x.ai";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEVICE_CODE_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:17:11
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub const DEVICE_CODE_URL: &str = "https://auth.x.ai/oauth2/device/code";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEVICE_VERIFY_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:18:11
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub const DEVICE_VERIFY_URL: &str = "https://auth.x.ai/oauth2/device/verify";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEVICE_APPROVE_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:19:11
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub const DEVICE_APPROVE_URL: &str = "https://auth.x.ai/oauth2/device/approve";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `TOKEN_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:20:11
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub const TOKEN_URL: &str = "https://auth.x.ai/oauth2/token";
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `ACCOUNTS_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:21:11
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub const ACCOUNTS_URL: &str = "https://accounts.x.ai/";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLIENT_ID` is never used
[INFO] [stderr]   --> src/grok_auth.rs:22:11
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub const CLIENT_ID: &str = "b1a00492-073a-47ea-816f-4c329264a828";
[INFO] [stderr]    |           ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `BUILD_SCOPE` is never used
[INFO] [stderr]   --> src/grok_auth.rs:23:11
[INFO] [stderr]    |
[INFO] [stderr] 23 | pub const BUILD_SCOPE: &str =
[INFO] [stderr]    |           ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLI_BASE_URL` is never used
[INFO] [stderr]   --> src/grok_auth.rs:26:11
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub const CLI_BASE_URL: &str = "https://cli-chat-proxy.grok.com/v1";
[INFO] [stderr]    |           ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLI_HOST` is never used
[INFO] [stderr]   --> src/grok_auth.rs:27:11
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub const CLI_HOST: &str = "cli-chat-proxy.grok.com";
[INFO] [stderr]    |           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLI_TOKEN_AUTH` is never used
[INFO] [stderr]   --> src/grok_auth.rs:30:11
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub const CLI_TOKEN_AUTH: &str = "xai-grok-cli";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLI_CLIENT_IDENTIFIER` is never used
[INFO] [stderr]   --> src/grok_auth.rs:31:11
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub const CLI_CLIENT_IDENTIFIER: &str = "grok-shell";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `CLI_CLIENT_VERSION` is never used
[INFO] [stderr]   --> src/grok_auth.rs:32:11
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub const CLI_CLIENT_VERSION: &str = "0.2.93";
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_UA` is never used
[INFO] [stderr]   --> src/grok_auth.rs:34:7
[INFO] [stderr]    |
[INFO] [stderr] 34 | const DEFAULT_UA: &str = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Sa...
[INFO] [stderr]    |       ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `DEFAULT_TOKEN_TTL_SECS` is never used
[INFO] [stderr]   --> src/grok_auth.rs:35:7
[INFO] [stderr]    |
[INFO] [stderr] 35 | const DEFAULT_TOKEN_TTL_SECS: u64 = 6 * 3600;
[INFO] [stderr]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `MAX_AUTH_BODY` is never used
[INFO] [stderr]   --> src/grok_auth.rs:36:7
[INFO] [stderr]    |
[INFO] [stderr] 36 | const MAX_AUTH_BODY: usize = 2 << 20; // 2 MiB
[INFO] [stderr]    |       ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `decode_jwt_claims` is never used
[INFO] [stderr]    --> src/grok_auth.rs:109:8
[INFO] [stderr]     |
[INFO] [stderr] 109 | pub fn decode_jwt_claims(token: &str) -> Option<serde_json::Value> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `token_email` is never used
[INFO] [stderr]    --> src/grok_auth.rs:124:8
[INFO] [stderr]     |
[INFO] [stderr] 124 | pub fn token_email(tok: &BuildToken) -> Option<String> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `GrokAuth` is never constructed
[INFO] [stderr]    --> src/grok_auth.rs:140:12
[INFO] [stderr]     |
[INFO] [stderr] 140 | pub struct GrokAuth {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `convert_sso_to_build`, `poll_token`, `refresh_build_token`, and `do_request` are never used
[INFO] [stderr]    --> src/grok_auth.rs:154:12
[INFO] [stderr]     |
[INFO] [stderr] 153 | impl GrokAuth {
[INFO] [stderr]     | ------------- associated items in this implementation
[INFO] [stderr] 154 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 169 |     pub async fn convert_sso_to_build(&self, sso_token: &str) -> Result<BuildToken, String> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 275 |     async fn poll_token(
[INFO] [stderr]     |              ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 351 |     pub async fn refresh_build_token(&self, refresh_token: &str) -> Result<BuildToken, String> {
[INFO] [stderr]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 409 |     async fn do_request(
[INFO] [stderr]     |              ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cli_headers` is never used
[INFO] [stderr]    --> src/grok_auth.rs:484:8
[INFO] [stderr]     |
[INFO] [stderr] 484 | pub fn cli_headers() -> Vec<(&'static str, String)> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `new` is never used
[INFO] [stderr]   --> src/metrics.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl RpmTracker {
[INFO] [stderr]    | --------------- associated function in this implementation
[INFO] [stderr] 16 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `mask` are never read
[INFO] [stderr]   --> src/pool.rs:40:9
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct AvailableSlot {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] 40 |     pub id: String,
[INFO] [stderr]    |         ^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub mask: u8,
[INFO] [stderr]    |         ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `AvailableSlot` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `ALL_OK` and `is_available` are never used
[INFO] [stderr]   --> src/pool.rs:50:11
[INFO] [stderr]    |
[INFO] [stderr] 46 | impl AvailableSlot {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 50 |     const ALL_OK: u8 = 0b111;
[INFO] [stderr]    |           ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 57 |     pub fn is_available(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `max_concurrency`, `is_slot_available`, `slot_live_available`, and `is_slot_available_fast` are never used
[INFO] [stderr]    --> src/pool.rs:245:12
[INFO] [stderr]     |
[INFO] [stderr] 193 | impl AccountPool {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 245 |     pub fn max_concurrency(&self) -> usize {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 535 |     fn is_slot_available(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 581 |     fn slot_live_available(&self, avail: &AvailableSlot) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 593 |     fn is_slot_available_fast(&self, slot: &Arc<Slot>) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `BalanceLogEntry` is never constructed
[INFO] [stderr]    --> src/portal.rs:112:12
[INFO] [stderr]     |
[INFO] [stderr] 112 | pub struct BalanceLogEntry {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `snapshot` and `create_key` are never used
[INFO] [stderr]    --> src/portal.rs:187:12
[INFO] [stderr]     |
[INFO] [stderr] 166 | impl PortalStore {
[INFO] [stderr]     | ---------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 187 |     pub fn snapshot(&self) -> Arc<PortalData> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 452 |     pub fn create_key(
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `https` is never read
[INFO] [stderr]    --> src/proxypool.rs:726:9
[INFO] [stderr]     |
[INFO] [stderr] 721 | pub struct ParsedProxy {
[INFO] [stderr]     |            ----------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 726 |     pub https: bool,
[INFO] [stderr]     |         ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ParsedProxy` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `open_conn` and `gc` are never used
[INFO] [stderr]    --> src/quota.rs:734:8
[INFO] [stderr]     |
[INFO] [stderr] 699 | impl QuotaStore {
[INFO] [stderr]     | --------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 734 |     fn open_conn(&self) -> anyhow::Result<rusqlite::Connection> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 853 |     pub async fn gc(&self, keep_days: u32) -> anyhow::Result<usize> {
[INFO] [stderr]     |                  ^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_output_token_limit_error` is never used
[INFO] [stderr]    --> src/translate.rs:225:8
[INFO] [stderr]     |
[INFO] [stderr] 225 | pub fn is_output_token_limit_error(obj: &Value) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `upstream_model` is never read
[INFO] [stderr]    --> src/translate.rs:518:9
[INFO] [stderr]     |
[INFO] [stderr] 512 | pub struct StreamTranslator {
[INFO] [stderr]     |            ---------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 518 |     pub upstream_model: String,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `upstream_to_openai_stream` is never used
[INFO] [stderr]     --> src/translate.rs:1656:8
[INFO] [stderr]      |
[INFO] [stderr] 1656 | pub fn upstream_to_openai_stream<E>(
[INFO] [stderr]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `UpstreamKind` is never used
[INFO] [stderr]   --> src/upstream.rs:11:10
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub enum UpstreamKind {
[INFO] [stderr]    |          ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `UpstreamConfig` is never constructed
[INFO] [stderr]   --> src/upstream.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct UpstreamConfig {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `timeout_s` is never read
[INFO] [stderr]    --> src/upstream.rs:118:5
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct OpenAiClient {
[INFO] [stderr]     |            ------------ field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 118 |     timeout_s: u64,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `OpenAiClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: `cursor-fast-proxy-rs` (bin "cursor-fast-proxy-rs" test) generated 56 warnings (run `cargo fix --bin "cursor-fast-proxy-rs" -p cursor-fast-proxy-rs --tests` to apply 9 suggestions)
[INFO] [stderr] warning: unused dependency `rustls-pemfile`
[INFO] [stderr]   --> Cargo.toml:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | rustls-pemfile = "2"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `rustls-pemfile`
[INFO] [stderr] warning: unused dependency `tower-http`
[INFO] [stderr]   --> Cargo.toml:85:15
[INFO] [stderr]    |
[INFO] [stderr] 85 | [dependencies.tower-http]
[INFO] [stderr]    |               ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `tower-http`
[INFO] [stderr] warning: `cursor-fast-proxy-rs` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.24s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/cursor-fast-proxy-rs/9814480da7f3813f/out/cursor_fast_proxy_rs-9814480da7f3813f)
[INFO] [stdout] 
[INFO] [stdout] running 250 tests
[INFO] [stdout] test admin::keys::tests::key_strength_rejects_weak ... ok
[INFO] [stdout] test admin::tests::admin_login_page_is_html_not_json ... ok
[INFO] [stdout] test admin::keys::tests::generated_key_is_strong_and_unique ... ok
[INFO] [stdout] test admin::tests::mobile_media_flattens_system_nav ... ok
[INFO] [stdout] test admin::keys::tests::keys_are_redacted ... ok
[INFO] [stdout] test admin::tests::card_edit_listeners_do_not_throw_if_node_missing ... ok
[INFO] [stdout] test admin::tests::nav_grp_css_is_valid ... ok
[INFO] [stdout] test admin::tests::card_edit_modal_exists_before_inline_script ... ok
[INFO] [stdout] test admin::tests::system_nav_is_always_visible ... ok
[INFO] [stdout] test admin::tests::show_page_still_runs_after_card_edit_bindings ... ok
[INFO] [stdout] test admin::tests::portal_nav_includes_redeem ... ok
[INFO] [stdout] test analytics::tests::aggregate_by_model_computes_online_and_busy_hours ... ok
[INFO] [stdout] test analytics::tests::aggregate_multi_dim_membership ... ok
[INFO] [stdout] test admin::tests::portal_has_mobile_topbar_wrap ... ok
[INFO] [stdout] test analytics::tests::auto_gap_adapts_to_rhythm ... ok
[INFO] [stdout] test analytics::tests::hourly_buckets_count_distinct_users ... ok
[INFO] [stdout] test analytics::tests::lane_best_fit_reuses_freed_lane ... ok
[INFO] [stdout] test analytics::tests::presence_rules ... ok
[INFO] [stdout] test analytics::tests::normalize_input_only_for_old_rows ... ok
[INFO] [stdout] test analytics::tests::req_from_row_zero_usage_is_free ... ok
[INFO] [stdout] test analytics::tests::lanes_count_concurrency_and_lane_hours_exceed_online_hours ... ok
[INFO] [stdout] test analytics::tests::sessionize_gap_measured_from_previous_end ... ok
[INFO] [stdout] test analytics::tests::sessionize_splits_on_gap_and_uses_start_time ... ok
[INFO] [stdout] test analytics::tests::simulate_pace_stretches_agent_loops_not_humans ... ok
[INFO] [stdout] test analytics::tests::simulate_pace_uses_visible_output_when_known ... ok
[INFO] [stdout] test analytics::tests::upstream_tps_removes_pace_sleep ... ok
[INFO] [stdout] test analytics::tests::speed_percentiles_and_tps_exclude_ttft ... ok
[INFO] [stdout] test billing::tests::money_is_exact_integer_math ... ok
[INFO] [stdout] test billing::tests::quote_uses_official_table_and_flags_unknown ... ok
[INFO] [stdout] test card_settle_tests::settle_usage_prefers_reported_input_and_max_output ... ok
[INFO] [stdout] test cards::tests::abuse_score_human_vs_script ... ok
[INFO] [stdout] test billing::tests::parse_time_formats ... ok
[INFO] [stdout] test billing::tests::output_tps_excludes_ttft ... FAILED
[INFO] [stdout] test cards::tests::cost_model_rmb_per_usd ... ok
[INFO] [stdout] test cards::tests::day_start_rolls ... ok
[INFO] [stdout] test cards::tests::default_plan_and_presets_have_no_pacing ... ok
[INFO] [stdout] test cards::tests::abuse_threshold_forces_degraded ... ok
[INFO] [stdout] test cards::tests::estimate_tokens_cjk_vs_ascii ... ok
[INFO] [stdout] test cards::tests::degraded_is_sticky_for_hold_secs ... ok
[INFO] [stdout] test cards::tests::admin_pool_issue_uses_plan_concurrency_when_slots_omitted ... ok
[INFO] [stdout] test cards::tests::concurrency_cap_enforced ... ok
[INFO] [stdout] test cards::tests::fixed_unit_locks_hours ... ok
[INFO] [stdout] test cards::tests::appeal_flow_and_trust_disables_scoring ... ok
[INFO] [stdout] test cards::tests::fair_use_degrades_and_paces_down ... ok
[INFO] [stdout] test cards::tests::expired_card_rejected ... ok
[INFO] [stdout] test cards::tests::first_frame_bypasses_shared_pacer ... ok
[INFO] [stdout] test cards::tests::official_prices_calibrated ... ok
[INFO] [stdout] test cards::tests::pacer_idle_resync_limits_burst ... ok
[INFO] [stdout] test cards::tests::pacer_math ... ok
[INFO] [stdout] test cards::tests::plan_allows_model_combination ... ok
[INFO] [stdout] test cards::tests::plan_allows_model_falls_back_to_family_base_for_upgraded_variants ... ok
[INFO] [stdout] test cards::tests::issue_and_acquire ... ok
[INFO] [stdout] test cards::tests::plan_model_pace_override ... ok
[INFO] [stdout] test billing::tests::ledger_roundtrip_dedup_and_face_cost ... ok
[INFO] [stdout] test cards::tests::manual_activate_and_extend_rebase ... ok
[INFO] [stdout] test cards::tests::plan_model_groups_gate ... ok
[INFO] [stdout] test cards::tests::plan_models_respects_gate_and_disabled ... ok
[INFO] [stdout] test cards::tests::pool_activate_concurrent_no_double_spend ... ok
[INFO] [stdout] test cards::tests::quota_admin_negative_adjust ... ok
[INFO] [stdout] test cards::tests::pool_mode_purchase_and_activate ... ok
[INFO] [stdout] test cards::tests::presets_seed_and_persist ... ok
[INFO] [stdout] test billing::tests::migrate_adds_cache_columns_to_old_db ... ok
[INFO] [stdout] test cards::tests::quota_card_deducts_and_exhausts ... ok
[INFO] [stdout] test cards::tests::quota_hold_release_on_drop_path ... ok
[INFO] [stdout] test cards::tests::quota_hold_blocks_concurrent_overdraft ... ok
[INFO] [stdout] test cards::tests::quota_log_written ... ok
[INFO] [stdout] test cards::tests::quota_plan_requires_face ... ok
[INFO] [stdout] test cards::tests::quota_soften_then_degrade ... ok
[INFO] [stdout] test cards::tests::quota_settle_writes_db_not_json ... ok
[INFO] [stdout] test cards::tests::rate_price_calc ... ok
[INFO] [stdout] test cards::tests::registry_prefix_hit_keeps_fast_multiplier ... ok
[INFO] [stdout] test cards::tests::risk_policy_pace_precedence_and_hard_cap ... ok
[INFO] [stdout] test cards::tests::quota_wallet_402_on_exhaust ... ok
[INFO] [stdout] test cards::tests::score_weights_are_tunable ... ok
[INFO] [stdout] test cards::tests::quota_ledger_migrates_from_json_and_takes_max ... ok
[INFO] [stdout] test cards::tests::quota_wallet_credit_admit_settle ... ok
[INFO] [stdout] test cards::tests::risk_policy_persists_in_cards_json ... ok
[INFO] [stdout] test cards::tests::rate_card_issued_unactivated_then_first_call_activates ... ok
[INFO] [stdout] test cards::tests::set_card_slots_respects_plan_cap ... ok
[INFO] [stdout] test cards::tests::v4_migrate_from_legacy_json ... ok
[INFO] [stdout] test cards::tests::unactivated_card_never_expires_in_listing ... ok
[INFO] [stdout] test cards::tests::unsettled_permit_drop_releases_hold ... ok
[INFO] [stdout] test cards::tests::upstream_names_persist_across_reopen ... ok
[INFO] [stdout] test cards::tests::v4_pool_plan_not_legacy_and_speed_profile_wins ... ok
[INFO] [stdout] test config::tests::persist_toggle_keeps_disabled_accounts_on_disk ... ok
[INFO] [stdout] test config::tests::save_config_roundtrip_default_model ... ok
[INFO] [stdout] test cursor::tests::auto_detect_thinking_level_explicit ... ok
[INFO] [stdout] test cursor::tests::auto_detect_thinking_level_long_context ... ok
[INFO] [stdout] test cursor::tests::auto_detect_thinking_level_tools ... ok
[INFO] [stdout] test cursor::tests::auto_select_kimi_model_real_scenarios ... ok
[INFO] [stdout] test cursor::tests::auto_select_kimi_model_test ... ok
[INFO] [stdout] test cursor::tests::box_relay_descriptor_is_fresh_within_ttl ... ok
[INFO] [stdout] test cursor::tests::box_relay_headers_use_gateway_token_and_network_token_not_session_jwt ... ok
[INFO] [stdout] test cards::tests::shared_pacer_caps_total_output_across_streams ... ok
[INFO] [stdout] test cursor::tests::box_relay_path_is_sand_stream_relay ... ok
[INFO] [stdout] test cursor::tests::box_relay_target_joins_gateway_url_and_path ... ok
[INFO] [stdout] test cursor::tests::effective_max_tokens_respects_model_cap ... ok
[INFO] [stdout] test cursor::tests::conversation_id_is_stable_for_same_session ... ok
[INFO] [stdout] test cursor::tests::grok_bot_headers_use_current_release_consistently ... ok
[INFO] [stdout] test cursor::tests::grok_bot_session_headers_are_current_sand_desktop_not_018 ... ok
[INFO] [stdout] test cards::tests::v4_pool_route_extension_first ... ok
[INFO] [stdout] test cursor::tests::kimi_family_gets_1m_and_long_output ... ok
[INFO] [stdout] test cursor::tests::max_mode_defaults_off ... ok
[INFO] [stdout] test cursor::tests::max_output_cap_clamps_anthropic_family_to_vendor_limit ... ok
[INFO] [stdout] test cursor::tests::max_mode_from_request_variants ... ok
[INFO] [stdout] test cursor::tests::model_config_floor_and_default_budget ... ok
[INFO] [stdout] test cursor::tests::max_tokens_floor_protection ... ok
[INFO] [stdout] test cursor::tests::model_for_thinking_level_test ... ok
[INFO] [stdout] test cursor::tests::parse_ensure_sandbox_reads_gateway_descriptor ... ok
[INFO] [stdout] test cursor::tests::relay_hop_does_not_override_box_runtime_identity ... ok
[INFO] [stdout] test cursor::tests::response_format_hint_only_first_turn ... ok
[INFO] [stdout] test cursor::tests::sampling_params_live_in_model_config_not_top_level ... ok
[INFO] [stdout] test cursor::tests::session_refresh_is_only_for_explicit_version_rejection ... ok
[INFO] [stdout] test cursor::tests::thinking_level_from_model_test ... ok
[INFO] [stdout] test cursor::tests::tool_choice_hint_only_first_turn ... ok
[INFO] [stdout] test grok_auth::tests::expiry_check ... ok
[INFO] [stdout] test cursor::tests::tools_go_into_cursor_body ... ok
[INFO] [stdout] test grok_auth::tests::normalize_sso_variants ... FAILED
[INFO] [stdout] test grok_auth::tests::safe_url_check ... ok
[INFO] [stdout] test grok_auth::tests::sanitize_strips_control_chars ... ok
[INFO] [stdout] test grok_version::tests::accepts_official_release_and_rejects_untrusted_metadata ... ok
[INFO] [stdout] test grok_version::tests::cached_version_survives_restart_and_never_downgrades ... ok
[INFO] [stdout] test grok_version::tests::fetches_redirect_without_following_or_sending_credentials ... ok
[INFO] [stdout] test grok_version::tests::release_metadata_rejects_query_and_fragment ... ok
[INFO] [stdout] test health::tests::severity_ordering ... ok
[INFO] [stdout] test kvv::tests::normalize_drops_invalid_or_unsupported_params_silently ... ok
[INFO] [stdout] test kvv::tests::test_kimi_is_thinking ... ok
[INFO] [stdout] test kvv::tests::normalize_passes_real_client_temperatures_through ... ok
[INFO] [stdout] test kvv::tests::test_kimi_vendor_param_check_invalid ... ok
[INFO] [stdout] test kvv::tests::test_kimi_vendor_param_check_valid ... ok
[INFO] [stdout] test grok_version::tests::failed_refresh_backoff_survives_restart_and_force_does_not_storm ... ok
[INFO] [stdout] test kvv::tests::test_kimi_vendor_request_validate_dynamic_tools ... ok
[INFO] [stdout] test kvv::tests::test_kimi_vendor_request_validate_response_format ... ok
[INFO] [stdout] test kvv::tests::test_kimi_vendor_request_validate_tool_choice ... ok
[INFO] [stdout] test kvv::tests::test_tool_name_validation ... ok
[INFO] [stdout] test logbuf::tests::filter_key_kind_ok_q ... ok
[INFO] [stdout] test logbuf::tests::recent_is_newest_first_and_caps ... ok
[INFO] [stdout] test metrics::tests::render_contains_gauges ... ok
[INFO] [stdout] test models::tests::console_key_folds_thinking_keeps_fast ... ok
[INFO] [stdout] test models::tests::disabled_model ... ok
[INFO] [stdout] test models::tests::family_base_collapses_variants ... ok
[INFO] [stdout] test models::tests::group_exclude_members ... ok
[INFO] [stdout] test models::tests::groups_gate ... ok
[INFO] [stdout] test cards::tests::v4_status_gates ... ok
[INFO] [stdout] test models::tests::lookup_exact_then_longest_prefix ... ok
[INFO] [stdout] test models::tests::model_known_gate_rules ... ok
[INFO] [stdout] test logbuf::tests::rotate_log_file_keeps_generations ... ok
[INFO] [stdout] test models::tests::pattern_rules ... ok
[INFO] [stdout] test models::tests::resolve_smart_model_picks_variant_by_thinking_level ... ok
[INFO] [stdout] test models::tests::strip_suffix_chains ... ok
[INFO] [stdout] test models::tests::upstream_present_rules_and_guards ... ok
[INFO] [stdout] test models::tests::visibility_rules ... ok
[INFO] [stdout] test models::tests::visible_models_includes_cursor_prefixed_builtin_alias ... ok
[INFO] [stdout] test models::tests::visible_models_collapses_to_family_bases ... ok
[INFO] [stdout] test pool::tests::acquire_round_robin ... ok
[INFO] [stdout] test pool::tests::auto_disable_after_warm_pool_is_respected_including_sticky ... ok
[INFO] [stdout] test pool::tests::auto_disable_quarantine_grows_and_caps ... ok
[INFO] [stdout] test models::tests::persist_roundtrip ... ok
[INFO] [stdout] test pool::tests::auto_disable_recovers_after_quarantine_but_manual_disable_does_not ... ok
[INFO] [stdout] test pool::tests::auto_disable_threshold ... ok
[INFO] [stdout] test pool::tests::clear_cooldown_unblocks ... ok
[INFO] [stdout] test pool::tests::cached_query_respects_fingerprint ... ok
[INFO] [stdout] test pool::tests::cooldown_after_warm_pool_is_respected_by_round_robin ... ok
[INFO] [stdout] test pool::tests::cooldown_blocks_acquire ... ok
[INFO] [stdout] test pool::tests::disabled_account_skipped ... ok
[INFO] [stdout] test pool::tests::empty_pool_is_empty ... ok
[INFO] [stdout] test pool::tests::failed_quota_keeps_last_good ... ok
[INFO] [stdout] test pool::tests::health_score_calculation ... ok
[INFO] [stdout] test pool::tests::high_usage_percent_does_not_block_when_usage_available ... ok
[INFO] [stdout] test pool::tests::ineligible_is_immediate_persistent_and_explained ... ok
[INFO] [stdout] test cards::tests::value_ratio_signal_scores_cost_vs_paid ... ok
[INFO] [stdout] test pool::tests::note_error_keeps_latest_truncated ... ok
[INFO] [stdout] test pool::tests::model_permission_skips_account_for_that_model_only ... ok
[INFO] [stdout] test pool::tests::quota_block_after_warm_pool_is_respected ... ok
[INFO] [stdout] test pool::tests::query_pages_and_attention ... ok
[INFO] [stdout] test pool::tests::persist_runtime_state_roundtrip ... ok
[INFO] [stdout] test pool::tests::quota_exhausted_skipped ... ok
[INFO] [stdout] test pool::tests::relay_unsupported_excludes_account_without_disabling_it ... ok
[INFO] [stdout] test pool::tests::session_gc_clears_expired ... ok
[INFO] [stdout] test pool::tests::session_stickiness ... ok
[INFO] [stdout] test protocol::tests::anthropic_body_passes_sampling_and_session_fields ... ok
[INFO] [stdout] test pool::tests::restore_drops_stale_ineligible_but_keeps_free_plan ... ok
[INFO] [stdout] test protocol::tests::anthropic_tool_result_precedes_sibling_text_in_same_user_turn ... ok
[INFO] [stdout] test protocol::tests::anthropic_tools_roundtrip_to_cursor ... ok
[INFO] [stdout] test protocol::tests::conversation_prefix_stable_across_tool_turns ... ok
[INFO] [stdout] test protocol::tests::assistant_tool_call_only_has_no_empty_text_field ... ok
[INFO] [stdout] test protocol::tests::chat_tool_round_trip_matches_python_wire_format ... ok
[INFO] [stdout] test protocol::tests::cursor_tools_wrap_json_schema_for_claude_and_codex ... ok
[INFO] [stdout] test protocol::tests::named_tool_choice_normalizes_for_kimi ... ok
[INFO] [stdout] test protocol::tests::responses_body_passes_sampling_fields ... ok
[INFO] [stdout] test protocol::tests::responses_function_call_loop_to_cursor ... ok
[INFO] [stdout] test protocol::tests::tool_call_id_differs_for_different_tool_names ... ok
[INFO] [stdout] test protocol::tests::responses_reasoning_effort_maps_to_top_level ... ok
[INFO] [stdout] test protocol::tests::tool_call_id_stable_for_same_tool_name ... ok
[INFO] [stdout] test protocol::tests::tool_call_part_delta_and_anthropic_output ... ok
[INFO] [stdout] test protocol::tests::vision_chat_image_url_to_cursor_parts ... ok
[INFO] [stdout] test protocol::tests::vision_responses_input_image_survives ... ok
[INFO] [stdout] test proxypool::tests::exclusive_caps_at_one ... ok
[INFO] [stdout] test proxypool::tests::hash_is_sticky ... ok
[INFO] [stdout] test proxypool::tests::import_line_formats ... ok
[INFO] [stdout] test proxypool::tests::judge_flags_shared_egress ... ok
[INFO] [stdout] test proxypool::tests::parse_http_proxy ... ok
[INFO] [stdout] test proxypool::tests::mask_hides_password ... ok
[INFO] [stdout] test quota::tests::expired_key_blocked ... ok
[INFO] [stdout] test quota::tests::key_limit_blocks_when_exhausted ... ok
[INFO] [stdout] test quota::tests::plan_label_hides_grok ... ok
[INFO] [stdout] test quota::tests::sand_percent_is_already_percent ... ok
[INFO] [stdout] test ratelimit::tests::allows_up_to_limit ... ok
[INFO] [stdout] test ratelimit::tests::different_ips_independent ... ok
[INFO] [stdout] test quota::tests::usage_persist_roundtrip ... ok
[INFO] [stdout] test rejected_dump::tests::redacts_anthropic_base64_source_and_keeps_short_strings ... ok
[INFO] [stdout] test rejected_dump::tests::redacts_openai_image_url_object_and_string_forms ... ok
[INFO] [stdout] test relay_provision::tests::tail_keeps_short_and_clips_long ... ok
[INFO] [stdout] test stream_error_frame_tests::anthropic_error_frame_uses_error_event_without_message_stop ... ok
[INFO] [stdout] test stream_error_frame_tests::chat_error_frame_classifies_output_limit ... ok
[INFO] [stdout] test stream_error_frame_tests::chat_error_frame_is_sdk_visible_and_terminated ... ok
[INFO] [stdout] test stream_error_frame_tests::responses_error_frame_emits_error_then_failed ... ok
[INFO] [stdout] test stream_error_frame_tests::upstream_error_details_extracts_code_and_retryable ... ok
[INFO] [stdout] test rejected_dump::tests::dump_writes_envelope_and_prunes_oldest ... ok
[INFO] [stdout] test translate::format_conformance_probe::anthropic_stream_blocks_start_and_stop_exactly_once ... ok
[INFO] [stdout] test translate::format_conformance_probe::chat_stream_has_single_finish_reason_and_both_tools ... ok
[INFO] [stdout] test translate::format_conformance_probe::probe_all_dialects_print_shapes ... ok
[INFO] [stdout] test translate::tests::capacity_error_detects_kimi_high_load_not_max_mode ... ok
[INFO] [stdout] test translate::tests::conversation_id_from_uses_explicit_then_user_then_prefix ... ok
[INFO] [stdout] test translate::tests::conversation_id_sha1_matches_python ... ok
[INFO] [stdout] test translate::format_conformance_probe::responses_stream_items_are_consistent ... ok
[INFO] [stdout] test translate::tests::encode_decode_reasoning_roundtrip ... ok
[INFO] [stdout] test translate::tests::display_model_id_maps_claude_fable ... ok
[INFO] [stdout] test translate::tests::error_classes_transient_vs_ineligible_vs_content ... ok
[INFO] [stdout] test translate::tests::extract_cursor_error_prefers_title_over_generic_error ... ok
[INFO] [stdout] test translate::tests::extract_usage_cache_write_deducted_even_when_cache_read_zero ... ok
[INFO] [stdout] test translate::tests::extract_usage_prompt_total_excludes_cache_but_input_style_is_independent ... ok
[INFO] [stdout] test translate::tests::full_anthropic_emits_thinking_block ... ok
[INFO] [stdout] test translate::tests::full_collects_thinking_and_reasoning_parts ... ok
[INFO] [stdout] test translate::tests::merge_tool_arg_text_handles_json_boundary ... ok
[INFO] [stdout] test translate::tests::full_responses_emits_reasoning_item_with_encrypted ... ok
[INFO] [stdout] test translate::tests::full_collects_tool_call ... ok
[INFO] [stdout] test translate::tests::openai_delta_extraction_and_finish ... ok
[INFO] [stdout] test translate::tests::provider_4xx_and_policy_block_are_content_errors_not_capacity ... ok
[INFO] [stdout] test translate::tests::provider_error_message_carries_code_and_retryable ... ok
[INFO] [stdout] test translate::tests::response_format_hint_constructs_prompt ... ok
[INFO] [stdout] test translate::tests::to_openai_json_prompt_tokens_includes_cache_write ... ok
[INFO] [stdout] test translate::tests::tool_choice_forced_name_test ... ok
[INFO] [stdout] test translate::tests::tool_choice_hint_message ... ok
[INFO] [stdout] test translate::tests::tool_choice_omits_tools_works ... ok
[INFO] [stdout] test logbuf::tests::persist_writes_jsonl ... ok
[INFO] [stdout] test billing::tests::concurrent_writes_sum_exactly ... ok
[INFO] [stdout] test pool::tests::busy_waits_then_succeeds ... ok
[INFO] [stdout] test cards::tests::lane_wait_times_out_and_rolls_back ... ok
[INFO] [stdout] test cards::tests::lane_wait_queues_then_proceeds ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- billing::tests::output_tps_excludes_ttft stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'billing::tests::output_tps_excludes_ttft' (5047) panicked at src/billing.rs:893:33:
[INFO] [stdout] called `Option::unwrap()` on a `None` value
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x61de03239145 - <unknown>
[INFO] [stdout]    1:     0x61de030ad55a - <unknown>
[INFO] [stdout]    2:     0x61de032387db - <unknown>
[INFO] [stdout]    3:     0x61de032382bf - <unknown>
[INFO] [stdout]    4:     0x61de03237eea - <unknown>
[INFO] [stdout]    5:     0x61de03237a25 - <unknown>
[INFO] [stdout]    6:     0x61de0325e8f2 - <unknown>
[INFO] [stdout]    7:     0x61de0325e879 - <unknown>
[INFO] [stdout]    8:     0x61de0325ed7c - <unknown>
[INFO] [stdout]    9:     0x61de030ad3eb - <unknown>
[INFO] [stdout]   10:     0x61de030aec91 - <unknown>
[INFO] [stdout]   11:     0x61de030b1b98 - <unknown>
[INFO] [stdout]   12:     0x61de0306189b - <unknown>
[INFO] [stdout]   13:     0x61de0327e61b - <unknown>
[INFO] [stdout]   14:     0x61de0327a062 - <unknown>
[INFO] [stdout]   15:     0x61de03279acc - <unknown>
[INFO] [stdout]   16:     0x61de032977ec - <unknown>
[INFO] [stdout]   17:     0x61de03260874 - <unknown>
[INFO] [stdout]   18:     0x77521f0e9dfa - <unknown>
[INFO] [stdout]   19:     0x77521f17d3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- grok_auth::tests::normalize_sso_variants stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'grok_auth::tests::normalize_sso_variants' (5183) panicked at src/grok_auth.rs:501:9:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "xyz"
[INFO] [stdout]  right: "abc"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x61de03239145 - <unknown>
[INFO] [stdout]    1:     0x61de030ad55a - <unknown>
[INFO] [stdout]    2:     0x61de032387db - <unknown>
[INFO] [stdout]    3:     0x61de032382bf - <unknown>
[INFO] [stdout]    4:     0x61de03237eea - <unknown>
[INFO] [stdout]    5:     0x61de03237a25 - <unknown>
[INFO] [stdout]    6:     0x61de0325e8c1 - <unknown>
[INFO] [stdout]    7:     0x61de0325e879 - <unknown>
[INFO] [stdout]    8:     0x61de0325ed7c - <unknown>
[INFO] [stdout]    9:     0x61de030ad3eb - <unknown>
[INFO] [stdout]   10:     0x61de030ad30d - <unknown>
[INFO] [stdout]   11:     0x61de02e9c482 - <unknown>
[INFO] [stdout]   12:     0x61de0308e270 - <unknown>
[INFO] [stdout]   13:     0x61de0327e61b - <unknown>
[INFO] [stdout]   14:     0x61de0327a062 - <unknown>
[INFO] [stdout]   15:     0x61de03279acc - <unknown>
[INFO] [stdout]   16:     0x61de032977ec - <unknown>
[INFO] [stdout]   17:     0x61de03260874 - <unknown>
[INFO] [stdout]   18:     0x77521f0e9dfa - <unknown>
[INFO] [stdout]   19:     0x77521f17d3d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     billing::tests::output_tps_excludes_ttft
[INFO] [stdout]     grok_auth::tests::normalize_sso_variants
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 248 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin cursor-fast-proxy-rs`
[INFO] running `Command { std: "docker" "inspect" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2", kill_on_drop: false }`
[INFO] [stdout] caf8731af473fb14d183b8db8dfe46beb46002f568c91d2d79884fae4c0e1eb2
