[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::>(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::::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, [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, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 369 | /// 因 UNIQUE 冲突被忽略 (重复 req_id) [INFO] [stdout] 370 | ignored: Arc, [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 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1958 | pub fn issue_card(&self, plan_id: &str, owner: &str) -> Result { [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, [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 { [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 { [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 { [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 { [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) -> 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) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1054 | pub fn get_quota(&self, account_id: &str) -> Option { [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 { [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)> { [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 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 853 | pub async fn gc(&self, keep_days: u32) -> anyhow::Result { [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 { [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( [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( [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::>(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::::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, [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, [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 { [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 { [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 { [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 { [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) -> 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) -> 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 { [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 { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 853 | pub async fn gc(&self, keep_days: u32) -> anyhow::Result { [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( [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::>(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::::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, [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, [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 { [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 { [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 { [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 { [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) -> 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) -> 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 { [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 { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 853 | pub async fn gc(&self, keep_days: u32) -> anyhow::Result { [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( [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 - [INFO] [stdout] 1: 0x61de030ad55a - [INFO] [stdout] 2: 0x61de032387db - [INFO] [stdout] 3: 0x61de032382bf - [INFO] [stdout] 4: 0x61de03237eea - [INFO] [stdout] 5: 0x61de03237a25 - [INFO] [stdout] 6: 0x61de0325e8f2 - [INFO] [stdout] 7: 0x61de0325e879 - [INFO] [stdout] 8: 0x61de0325ed7c - [INFO] [stdout] 9: 0x61de030ad3eb - [INFO] [stdout] 10: 0x61de030aec91 - [INFO] [stdout] 11: 0x61de030b1b98 - [INFO] [stdout] 12: 0x61de0306189b - [INFO] [stdout] 13: 0x61de0327e61b - [INFO] [stdout] 14: 0x61de0327a062 - [INFO] [stdout] 15: 0x61de03279acc - [INFO] [stdout] 16: 0x61de032977ec - [INFO] [stdout] 17: 0x61de03260874 - [INFO] [stdout] 18: 0x77521f0e9dfa - [INFO] [stdout] 19: 0x77521f17d3d4 - clone [INFO] [stdout] 20: 0x0 - [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 - [INFO] [stdout] 1: 0x61de030ad55a - [INFO] [stdout] 2: 0x61de032387db - [INFO] [stdout] 3: 0x61de032382bf - [INFO] [stdout] 4: 0x61de03237eea - [INFO] [stdout] 5: 0x61de03237a25 - [INFO] [stdout] 6: 0x61de0325e8c1 - [INFO] [stdout] 7: 0x61de0325e879 - [INFO] [stdout] 8: 0x61de0325ed7c - [INFO] [stdout] 9: 0x61de030ad3eb - [INFO] [stdout] 10: 0x61de030ad30d - [INFO] [stdout] 11: 0x61de02e9c482 - [INFO] [stdout] 12: 0x61de0308e270 - [INFO] [stdout] 13: 0x61de0327e61b - [INFO] [stdout] 14: 0x61de0327a062 - [INFO] [stdout] 15: 0x61de03279acc - [INFO] [stdout] 16: 0x61de032977ec - [INFO] [stdout] 17: 0x61de03260874 - [INFO] [stdout] 18: 0x77521f0e9dfa - [INFO] [stdout] 19: 0x77521f17d3d4 - clone [INFO] [stdout] 20: 0x0 - [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