[INFO] cloning repository https://github.com/Butoshi/buddy
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Butoshi/buddy" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FButoshi%2Fbuddy", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FButoshi%2Fbuddy'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 355f5742f192d4284b5db8bf9d941218e3817d97
[INFO] checking Butoshi/buddy against try#8ac0915e346f9a2e49ca3951b642c55bd7d1eaab for pr-158447
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FButoshi%2Fbuddy" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Butoshi/buddy
[INFO] finished tweaking git repo https://github.com/Butoshi/buddy
[INFO] tweaked toml for git repo https://github.com/Butoshi/buddy written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Butoshi/buddy on toolchain 8ac0915e346f9a2e49ca3951b642c55bd7d1eaab
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8ac0915e346f9a2e49ca3951b642c55bd7d1eaab" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Butoshi/buddy 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" "+8ac0915e346f9a2e49ca3951b642c55bd7d1eaab" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243
[INFO] running `Command { std: "docker" "start" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243", 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" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243" "/opt/rustwide/cargo-home/bin/cargo" "+8ac0915e346f9a2e49ca3951b642c55bd7d1eaab" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243" "/opt/rustwide/cargo-home/bin/cargo" "+8ac0915e346f9a2e49ca3951b642c55bd7d1eaab" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling winnow v1.0.0
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.114
[INFO] [stderr]    Compiling toml_datetime v1.0.1+spec-1.1.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking bitmaps v2.1.0
[INFO] [stderr]    Compiling solana-frozen-abi-macro v1.18.26
[INFO] [stderr]    Compiling im v15.1.0
[INFO] [stderr]    Compiling bumpalo v3.20.2
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.114
[INFO] [stderr]     Checking zeroize v1.3.0
[INFO] [stderr]    Compiling solana-frozen-abi v1.18.26
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.114
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking bv v0.11.1
[INFO] [stderr]    Compiling digest v0.9.0
[INFO] [stderr]     Checking sized-chunks v0.6.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling toml_parser v1.0.10+spec-1.1.0
[INFO] [stderr]    Compiling libsecp256k1-core v0.2.2
[INFO] [stderr]     Checking serde_bytes v0.11.19
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling toml_edit v0.25.5+spec-1.1.0
[INFO] [stderr]    Compiling solana-sdk-macro v1.18.26
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.8.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling libsecp256k1-gen-ecmult v0.2.1
[INFO] [stderr]    Compiling libsecp256k1-gen-genmult v0.2.1
[INFO] [stderr]     Checking sha2 v0.9.9
[INFO] [stderr]     Checking curve25519-dalek v3.2.1
[INFO] [stderr]     Checking hmac v0.8.1
[INFO] [stderr]     Checking rand_xoshiro v0.6.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking ahash v0.7.8
[INFO] [stderr]    Compiling libsecp256k1 v0.6.0
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking hmac-drbg v0.3.0
[INFO] [stderr]     Checking pbkdf2 v0.4.0
[INFO] [stderr]     Checking memmap2 v0.5.10
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling proc-macro-crate v0.1.5
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking sha3 v0.10.8
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling blake3 v1.8.3
[INFO] [stderr]    Compiling solana-program v1.18.26
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling borsh-derive v1.6.1
[INFO] [stderr]    Compiling num_enum_derive v0.7.6
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling solana-sdk v1.18.26
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking pbkdf2 v0.11.0
[INFO] [stderr]    Compiling qualifier_attr v0.2.2
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.9.3
[INFO] [stderr]    Compiling borsh-derive-internal v0.10.4
[INFO] [stderr]    Compiling borsh-derive-internal v0.9.3
[INFO] [stderr]    Compiling borsh-schema-derive-internal v0.10.4
[INFO] [stderr]     Checking num_enum v0.7.6
[INFO] [stderr]     Checking env_logger v0.9.3
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking solana-logger v1.18.26
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.114
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking simd-adler32 v0.3.8
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking cipher v0.3.0
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking borsh v1.6.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking universal-hash v0.4.1
[INFO] [stderr]     Checking compression-core v0.4.31
[INFO] [stderr]     Checking polyval v0.5.3
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]     Checking ctr v0.8.0
[INFO] [stderr]     Checking aes v0.7.5
[INFO] [stderr]     Checking aead v0.4.3
[INFO] [stderr]     Checking sha3 v0.9.1
[INFO] [stderr]     Checking merlin v3.0.0
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling ark-serialize-derive v0.4.2
[INFO] [stderr]    Compiling ark-ff-asm v0.4.2
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]    Compiling ark-ff-macros v0.4.2
[INFO] [stderr]     Checking ark-std v0.4.0
[INFO] [stderr]    Compiling borsh-derive v0.9.3
[INFO] [stderr]    Compiling borsh-derive v0.10.4
[INFO] [stderr]     Checking tiny-bip39 v0.8.2
[INFO] [stderr]     Checking ed25519-dalek v1.0.1
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking borsh v0.9.3
[INFO] [stderr]     Checking ark-serialize v0.4.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]     Checking ed25519-dalek-bip32 v0.2.0
[INFO] [stderr]     Checking compression-codecs v0.4.37
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking borsh v0.10.4
[INFO] [stderr]     Checking aes-gcm-siv v0.10.3
[INFO] [stderr]    Compiling spl-program-error-derive v0.3.2
[INFO] [stderr]    Compiling spl-discriminator-syn v0.1.2
[INFO] [stderr]    Compiling scroll_derive v0.11.1
[INFO] [stderr]     Checking gethostname v0.2.3
[INFO] [stderr]     Checking combine v3.8.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]    Compiling spl-discriminator-derive v0.1.2
[INFO] [stderr]    Compiling serde_with_macros v2.3.3
[INFO] [stderr]    Compiling solana-program-runtime v1.18.26
[INFO] [stderr]    Compiling enum-iterator-derive v1.5.0
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]     Checking hashbrown v0.15.2
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking scroll v0.11.0
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking goblin v0.5.4
[INFO] [stderr]    Compiling solana-version v1.18.26
[INFO] [stderr]     Checking solana-security-txt v1.1.2
[INFO] [stderr]    Compiling solana-vote-program v1.18.26
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking enum-iterator v1.5.0
[INFO] [stderr]     Checking ark-ff v0.4.2
[INFO] [stderr]     Checking Inflector v0.11.4
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking serde_with v2.3.3
[INFO] [stderr]     Checking console v0.15.11
[INFO] [stderr]    Compiling synstructure v0.12.6
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling memoffset v0.7.1
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking async-compression v0.4.41
[INFO] [stderr]    Compiling asn1-rs-derive v0.4.0
[INFO] [stderr]     Checking jsonrpc-core v18.0.0
[INFO] [stderr]     Checking yasna v0.5.2
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling asn1-rs-impl v0.1.0
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking const-oid v0.7.1
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking der v0.5.1
[INFO] [stderr]     Checking nix v0.26.4
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking rustls-webpki v0.101.7
[INFO] [stderr]     Checking sct v0.7.1
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]    Compiling solana-perf v1.18.26
[INFO] [stderr]    Compiling dlopen2_derive v0.3.0
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking rusticata-macros v4.1.0
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]     Checking indicatif v0.17.11
[INFO] [stderr]     Checking spki v0.5.4
[INFO] [stderr]     Checking asn1-rs v0.5.2
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking solana-rayon-threadlimit v1.18.26
[INFO] [stderr]     Checking dlopen2 v0.5.0
[INFO] [stderr]     Checking solana_rbpf v0.8.3
[INFO] [stderr]    Compiling num_enum_derive v0.6.1
[INFO] [stderr]     Checking webpki-roots v0.24.0
[INFO] [stderr]     Checking quinn-udp v0.4.1
[INFO] [stderr]     Checking caps v0.5.6
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking textwrap v0.16.2
[INFO] [stderr]     Checking shell-words v1.1.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking async-channel v1.9.0
[INFO] [stderr]     Checking pkcs8 v0.8.0
[INFO] [stderr]     Checking rtoolbox v0.0.3
[INFO] [stderr]     Checking rcgen v0.10.0
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking rpassword v7.4.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking async-mutex v1.4.1
[INFO] [stderr]     Checking clap v2.34.0
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking der-parser v8.2.0
[INFO] [stderr]     Checking oid-registry v0.6.1
[INFO] [stderr]     Checking num_enum v0.6.1
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking tower-http v0.5.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking dialoguer v0.10.4
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]     Checking x509-parser v0.14.0
[INFO] [stderr]     Checking tokio-rustls v0.24.1
[INFO] [stderr]     Checking quinn-proto v0.10.6
[INFO] [stderr]     Checking tungstenite v0.20.1
[INFO] [stderr]     Checking tokio-tungstenite v0.20.1
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking ark-poly v0.4.2
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]     Checking ark-ec v0.4.2
[INFO] [stderr]     Checking quinn v0.10.2
[INFO] [stderr]     Checking ark-bn254 v0.4.0
[INFO] [stderr]     Checking light-poseidon v0.2.0
[INFO] [stderr]     Checking hyper-rustls v0.24.2
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking spl-program-error v0.3.0
[INFO] [stderr]     Checking spl-discriminator v0.1.0
[INFO] [stderr]     Checking spl-memo v4.0.0
[INFO] [stderr]     Checking spl-token v4.0.0
[INFO] [stderr]     Checking solana-zk-token-sdk v1.18.26
[INFO] [stderr]     Checking solana-metrics v1.18.26
[INFO] [stderr]     Checking solana-measure v1.18.26
[INFO] [stderr]     Checking solana-remote-wallet v1.18.26
[INFO] [stderr]     Checking solana-net-utils v1.18.26
[INFO] [stderr]     Checking solana-clap-utils v1.18.26
[INFO] [stderr]     Checking solana-connection-cache v1.18.26
[INFO] [stderr]     Checking solana-config-program v1.18.26
[INFO] [stderr]     Checking spl-pod v0.1.0
[INFO] [stderr]     Checking spl-type-length-value v0.3.0
[INFO] [stderr]     Checking spl-token-group-interface v0.1.0
[INFO] [stderr]     Checking spl-tlv-account-resolution v0.5.1
[INFO] [stderr]     Checking spl-token-metadata-interface v0.2.0
[INFO] [stderr]     Checking spl-transfer-hook-interface v0.4.1
[INFO] [stderr]     Checking spl-token-2022 v1.0.0
[INFO] [stderr]     Checking solana-streamer v1.18.26
[INFO] [stderr]     Checking solana-udp-client v1.18.26
[INFO] [stderr]     Checking solana-account-decoder v1.18.26
[INFO] [stderr]     Checking spl-associated-token-account v2.3.0
[INFO] [stderr]     Checking solana-transaction-status v1.18.26
[INFO] [stderr]     Checking solana-rpc-client-api v1.18.26
[INFO] [stderr]     Checking solana-rpc-client v1.18.26
[INFO] [stderr]     Checking solana-pubsub-client v1.18.26
[INFO] [stderr]     Checking solana-quic-client v1.18.26
[INFO] [stderr]     Checking solana-tpu-client v1.18.26
[INFO] [stderr]     Checking solana-thin-client v1.18.26
[INFO] [stderr]     Checking solana-rpc-client-nonce-utils v1.18.26
[INFO] [stderr]     Checking solana-client v1.18.26
[INFO] [stderr]     Checking buddy_bot v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/config.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, Context};
[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 imports: `CreateEvent`, `TradeEvent`, and `TradingDecision`
[INFO] [stdout]   --> src/websocket.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::types::{TradeEvent, CreateEvent, TokenState, WhaleBuy, TradingDecision};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^^^^^^^                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SignalType`
[INFO] [stdout]  --> src/analyzer.rs:7:61
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::predator_engine::{PredatorEngine, TokenSnapshot, SignalType};
[INFO] [stdout]   |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/trader.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 |     signature::{Keypair, Signer},
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/trader.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/position_manager.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/position_manager.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]  --> src/price_cache.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/price_cache.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]  --> src/ai_predictor.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[cfg(feature = "ai")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`
[INFO] [stdout]   = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]   --> src/ai_predictor.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[cfg(feature = "ai")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]   --> src/ai_predictor.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[cfg(feature = "ai")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]    --> src/ai_predictor.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | #[cfg(not(feature = "ai"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]    --> src/ai_predictor.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | #[cfg(not(feature = "ai"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]   --> src/turbo_trader.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                     ^^^^         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/turbo_trader.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |             (stats.successful_txs as f64 / stats.total_txs as f64 * 100.0)
[INFO] [stdout]     |             ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 289 -             (stats.successful_txs as f64 / stats.total_txs as f64 * 100.0)
[INFO] [stdout] 289 +             stats.successful_txs as f64 / stats.total_txs as f64 * 100.0
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/predator_engine.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/runner_tracker.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/runner_tracker.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]   --> src/wallet_reputation.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/wallet_reputation.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/exit_agent.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/entry_timing.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/entry_timing.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/market_cycle.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderValue`
[INFO] [stdout]   --> src/dashboard.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 |     http::{header, Method, HeaderValue},
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]   --> src/dashboard.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::VecDeque;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/brain.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tracing::{info, debug};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DashboardData`
[INFO] [stdout]   --> src/unified_agent.rs:31:40
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::dashboard::{DashboardState, DashboardData, TokenEvent, RunnerInfo};
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentDecision`
[INFO] [stdout]   --> src/unified_agent.rs:32:44
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::adaptive_agent::{AdaptiveAgent, AgentDecision};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/token_history.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> src/token_history.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]   --> src/main.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 | use tracing::{info, warn, error, Level};
[INFO] [stdout]    |               ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Context`
[INFO] [stdout]  --> src/config.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use anyhow::{Result, Context};
[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 imports: `CreateEvent`, `TradeEvent`, and `TradingDecision`
[INFO] [stdout]   --> src/websocket.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::types::{TradeEvent, CreateEvent, TokenState, WhaleBuy, TradingDecision};
[INFO] [stdout]    |                    ^^^^^^^^^^  ^^^^^^^^^^^                        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SignalType`
[INFO] [stdout]  --> src/analyzer.rs:7:61
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::predator_engine::{PredatorEngine, TokenSnapshot, SignalType};
[INFO] [stdout]   |                                                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Signer`
[INFO] [stdout]  --> src/trader.rs:7:26
[INFO] [stdout]   |
[INFO] [stdout] 7 |     signature::{Keypair, Signer},
[INFO] [stdout]   |                          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]   --> src/trader.rs:11:27
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, warn, error};
[INFO] [stdout]    |                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DateTime` and `Duration`
[INFO] [stdout]  --> src/position_manager.rs:4:14
[INFO] [stdout]   |
[INFO] [stdout] 4 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]   |              ^^^^^^^^       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]  --> src/position_manager.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use serde::{Serialize, Deserialize};
[INFO] [stdout]   |             ^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]  --> src/price_cache.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use tokio::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/price_cache.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]  --> src/ai_predictor.rs:9:7
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[cfg(feature = "ai")]
[INFO] [stdout]   |       ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: expected values for `feature` are: `default`
[INFO] [stdout]   = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]   --> src/ai_predictor.rs:48:7
[INFO] [stdout]    |
[INFO] [stdout] 48 | #[cfg(feature = "ai")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]   --> src/ai_predictor.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[cfg(feature = "ai")]
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected values for `feature` are: `default`
[INFO] [stdout]    = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]    --> src/ai_predictor.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | #[cfg(not(feature = "ai"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `ai`
[INFO] [stdout]    --> src/ai_predictor.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 | #[cfg(not(feature = "ai"))]
[INFO] [stdout]     |           ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected values for `feature` are: `default`
[INFO] [stdout]     = help: consider adding `ai` as a feature in `Cargo.toml`
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]   --> src/turbo_trader.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 | use tracing::{info, warn, error, debug};
[INFO] [stdout]    |                     ^^^^         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around block return value
[INFO] [stdout]    --> src/turbo_trader.rs:289:13
[INFO] [stdout]     |
[INFO] [stdout] 289 |             (stats.successful_txs as f64 / stats.total_txs as f64 * 100.0)
[INFO] [stdout]     |             ^                                                            ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 289 -             (stats.successful_txs as f64 / stats.total_txs as f64 * 100.0)
[INFO] [stdout] 289 +             stats.successful_txs as f64 / stats.total_txs as f64 * 100.0
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]   --> src/predator_engine.rs:11:28
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/runner_tracker.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/runner_tracker.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `debug` and `warn`
[INFO] [stdout]   --> src/wallet_reputation.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                     ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/wallet_reputation.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 | use chrono::{DateTime, Utc, Duration};
[INFO] [stdout]    |                             ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/exit_agent.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug, warn};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Deserialize`
[INFO] [stdout]   --> src/entry_timing.rs:12:24
[INFO] [stdout]    |
[INFO] [stdout] 12 | use serde::{Serialize, Deserialize};
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]   --> src/entry_timing.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug};
[INFO] [stdout]    |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/market_cycle.rs:13:21
[INFO] [stdout]    |
[INFO] [stdout] 13 | use tracing::{info, debug};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HeaderValue`
[INFO] [stdout]   --> src/dashboard.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 |     http::{header, Method, HeaderValue},
[INFO] [stdout]    |                            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::VecDeque`
[INFO] [stdout]   --> src/dashboard.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::collections::VecDeque;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `debug`
[INFO] [stdout]   --> src/brain.rs:14:21
[INFO] [stdout]    |
[INFO] [stdout] 14 | use tracing::{info, debug};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DashboardData`
[INFO] [stdout]   --> src/unified_agent.rs:31:40
[INFO] [stdout]    |
[INFO] [stdout] 31 | use crate::dashboard::{DashboardState, DashboardData, TokenEvent, RunnerInfo};
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentDecision`
[INFO] [stdout]   --> src/unified_agent.rs:32:44
[INFO] [stdout]    |
[INFO] [stdout] 32 | use crate::adaptive_agent::{AdaptiveAgent, AgentDecision};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]   --> src/token_history.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::sync::Arc;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio::sync::RwLock`
[INFO] [stdout]   --> src/token_history.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use tokio::sync::RwLock;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]   --> src/main.rs:29:15
[INFO] [stdout]    |
[INFO] [stdout] 29 | use tracing::{info, warn, error, Level};
[INFO] [stdout]    |               ^^^^  ^^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `analysis_done`
[INFO] [stdout]    --> src/websocket.rs:549:21
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 let analysis_done = token_state.analysis_8s_done;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_analysis_done`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mc`
[INFO] [stdout]    --> src/brain.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         mc: f64,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_mc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endpoint`
[INFO] [stdout]    --> src/turbo_trader.rs:248:66
[INFO] [stdout]     |
[INFO] [stdout] 248 |     async fn update_success(&self, rpc_name: &str, latency: u64, endpoint: &RPCEndpoint) {
[INFO] [stdout]     |                                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mint`
[INFO] [stdout]    --> src/adaptive_agent.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 |         mint: &str,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mc`
[INFO] [stdout]    --> src/adaptive_agent.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         mc: f64,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_mc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `txn`
[INFO] [stdout]    --> src/adaptive_agent.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 377 |         txn: u32,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_txn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:456:14
[INFO] [stdout]     |
[INFO] [stdout] 456 |         for (combo_key, combo) in combos.iter() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slippage_bps`
[INFO] [stdout]    --> src/trader.rs:195:56
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub async fn sell(&self, mint: &str, percent: u32, slippage_bps: u32) -> Result<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slippage_bps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:559:14
[INFO] [stdout]     |
[INFO] [stdout] 559 |         for (combo_key, combo) in combos.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profit_ratio`
[INFO] [stdout]    --> src/position_manager.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let profit_ratio = current_mc / position.entry_mc;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profit_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `analysis_done`
[INFO] [stdout]    --> src/websocket.rs:549:21
[INFO] [stdout]     |
[INFO] [stdout] 549 |                 let analysis_done = token_state.analysis_8s_done;
[INFO] [stdout]     |                     ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_analysis_done`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mc`
[INFO] [stdout]    --> src/brain.rs:231:9
[INFO] [stdout]     |
[INFO] [stdout] 231 |         mc: f64,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_mc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `endpoint`
[INFO] [stdout]    --> src/turbo_trader.rs:248:66
[INFO] [stdout]     |
[INFO] [stdout] 248 |     async fn update_success(&self, rpc_name: &str, latency: u64, endpoint: &RPCEndpoint) {
[INFO] [stdout]     |                                                                  ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_endpoint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/predator_engine.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         let mut warnings = Vec::new();
[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: unused variable: `mint`
[INFO] [stdout]    --> src/adaptive_agent.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 375 |         mint: &str,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_mint`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mc`
[INFO] [stdout]    --> src/adaptive_agent.rs:376:9
[INFO] [stdout]     |
[INFO] [stdout] 376 |         mc: f64,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_mc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `txn`
[INFO] [stdout]    --> src/adaptive_agent.rs:377:9
[INFO] [stdout]     |
[INFO] [stdout] 377 |         txn: u32,
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_txn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:456:14
[INFO] [stdout]     |
[INFO] [stdout] 456 |         for (combo_key, combo) in combos.iter() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `slippage_bps`
[INFO] [stdout]    --> src/trader.rs:195:56
[INFO] [stdout]     |
[INFO] [stdout] 195 |     pub async fn sell(&self, mint: &str, percent: u32, slippage_bps: u32) -> Result<String> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_slippage_bps`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:559:14
[INFO] [stdout]     |
[INFO] [stdout] 559 |         for (combo_key, combo) in combos.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:615:14
[INFO] [stdout]     |
[INFO] [stdout] 615 |         for (combo_key, combo) in combos.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pnl_percent`
[INFO] [stdout]    --> src/adaptive_agent.rs:889:9
[INFO] [stdout]     |
[INFO] [stdout] 889 |         pnl_percent: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pnl_percent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `profit_ratio`
[INFO] [stdout]    --> src/position_manager.rs:103:13
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let profit_ratio = current_mc / position.entry_mc;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_profit_ratio`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `confidence` is never read
[INFO] [stdout]    --> src/market_cycle.rs:334:30
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let mut confidence = 0.5;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 374 |             confidence = 0.7;
[INFO] [stdout]     |             ---------------- `confidence` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/predator_engine.rs:164:13
[INFO] [stdout]     |
[INFO] [stdout] 164 |         let mut warnings = Vec::new();
[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: unused variable: `e`
[INFO] [stdout]    --> src/unified_agent.rs:335:24
[INFO] [stdout]     |
[INFO] [stdout] 335 |             if let Err(e) = agent_read.load_filters("adaptive_filters.json").await {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `combo_key`
[INFO] [stdout]    --> src/adaptive_agent.rs:615:14
[INFO] [stdout]     |
[INFO] [stdout] 615 |         for (combo_key, combo) in combos.iter_mut() {
[INFO] [stdout]     |              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_combo_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pnl_percent`
[INFO] [stdout]    --> src/adaptive_agent.rs:889:9
[INFO] [stdout]     |
[INFO] [stdout] 889 |         pnl_percent: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pnl_percent`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `confidence` is never read
[INFO] [stdout]    --> src/market_cycle.rs:334:30
[INFO] [stdout]     |
[INFO] [stdout] 334 |         let mut confidence = 0.5;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 374 |             confidence = 0.7;
[INFO] [stdout]     |             ---------------- `confidence` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]     --> src/unified_agent.rs:1525:13
[INFO] [stdout]      |
[INFO] [stdout] 1525 |         let tokens = self.tokens.clone();
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `was_caught`
[INFO] [stdout]    --> src/token_history.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         was_caught: bool,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_was_caught`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     if let Err(e) = dashboard.load_pnl_history("pnl_history.json").await {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/config.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub priority_fee: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub threshold_15s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub max_price_8s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub max_price_15s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub auto_buy_max_txn: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub auto_buy_min_traders: u32,
[INFO] [stdout] 34 |     pub auto_buy_max_traders: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub ai_min_txn: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 40 |     pub ai_min_traders: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub ai_min_buy_ratio: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub elite_wallet_max_mc: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     pub elite_min_buy_ratio: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     pub elite_min_whale_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub price_jump_tolerance: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub skip_if_txn_below: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub skip_if_buy_ratio_below: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub pumpfun_ws: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_elite_wallet` is never used
[INFO] [stdout]    --> src/config.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn is_elite_wallet(&self, wallet: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHALE_THRESHOLD_SOL` is never used
[INFO] [stdout]   --> src/websocket.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const WHALE_THRESHOLD_SOL: f64 = 3.5; // ~$500 at $140/SOL
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PumpPortalWebSocket` is never constructed
[INFO] [stdout]   --> src/websocket.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PumpPortalWebSocket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/websocket.rs:61:12
[INFO] [stdout]      |
[INFO] [stdout]   60 | impl PumpPortalWebSocket {
[INFO] [stdout]      | ------------------------ associated items in this implementation
[INFO] [stdout]   61 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  101 |     pub async fn run(&mut self) -> Result<()> {
[INFO] [stdout]      |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  115 |     async fn connect_and_listen(&mut self) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  302 |     async fn handle_message(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  351 |     async fn handle_create_event(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  439 |     async fn handle_trade_event(&mut self, json: &serde_json::Value, is_buy: bool) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  647 |     async fn analyze_token_8s(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  737 |     async fn analyze_token_15s(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  824 |     async fn analyze_token_continuous(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1125 |     async fn execute_buy(&mut self, mint: &str, reason: &str, confidence: f64) {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     async fn check_positions(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1300 |     async fn execute_sell(&mut self, mint: &str, percent: u32, signal: crate::exit_agent::ExitSignal) {
[INFO] [stdout]      |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1398 |     async fn cleanup_old_tokens(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1407 |     async fn print_stats(&self) {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1604 |     async fn learn_from_completed_runners(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/analyzer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Analyzer {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     config: Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_via_rpc` is never used
[INFO] [stdout]    --> src/trader.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl SolanaTrader {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 316 |     async fn send_via_rpc(&self, tx_bytes: &[u8]) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStats` is never constructed
[INFO] [stdout]   --> src/position_manager.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct PositionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_partial_sold`, `record_progressive_sell`, and `get_stats` are never used
[INFO] [stdout]    --> src/position_manager.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl PositionManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn mark_partial_sold(&mut self, mint: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn record_progressive_sell(&mut self, mint: &str, percent: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn get_stats(&self) -> PositionStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COINGECKO_SOL_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const COINGECKO_SOL_URL: &str = "https://api.coingecko.com/api/v3/simple/price?ids=solana&vs_currencies=usd";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEXSCREENER_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const DEXSCREENER_URL: &str = "https://api.dexscreener.com/tokens/v1/solana/";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUMPFUN_API_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PUMPFUN_API_URL: &str = "https://frontend-api.pump.fun/coins/";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceData` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PriceData {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HolderData` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct HolderData {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceCache` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct PriceCache {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/price_cache.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl PriceCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  58 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn update_from_trade(&mut self, mint: &str, mc_sol: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn get_price(&self, mint: &str) -> PriceData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_sol_price(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn set_sol_price(&mut self, price: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn cleanup_old(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_holder_count(&self, mint: &str) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub async fn fetch_holder_count(&mut self, mint: &str) -> Option<u32> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub async fn fetch_from_dexscreener(&mut self, mint: &str) -> Option<PriceData> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn refresh_sol_price(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DexScreenerPair` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | struct DexScreenerPair {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DexScreenerVolume` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | struct DexScreenerVolume {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoinGeckoResponse` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | struct CoinGeckoResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolanaPrice` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct SolanaPrice {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PumpFunCoinResponse` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct PumpFunCoinResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Features10s` is never constructed
[INFO] [stdout]   --> src/ai_predictor.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Features10s {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_token_state` and `to_array` are never used
[INFO] [stdout]   --> src/ai_predictor.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Features10s {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn from_token_state(state: &TokenState) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn to_array(&self) -> [f32; 6] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeEvent` is never constructed
[INFO] [stdout]  --> src/types.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct TradeEvent {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateEvent` is never constructed
[INFO] [stdout]   --> src/types.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct CreateEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `first_trade_at`, `analysis_8s_done`, and `analysis_15s_done` are never read
[INFO] [stdout]   --> src/types.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub first_trade_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub analysis_8s_done: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     pub analysis_15s_done: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_peak` is never used
[INFO] [stdout]    --> src/types.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl TokenState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn update_peak(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `is_elite` are never read
[INFO] [stdout]    --> src/types.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct WhaleBuy {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub timestamp: DateTime<Utc>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 207 |     pub is_elite: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WhaleBuy` 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: variant `Wait` is never constructed
[INFO] [stdout]    --> src/types.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub enum TradingDecision {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 262 |     Wait,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TradingDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supports_jito` is never read
[INFO] [stdout]   --> src/turbo_trader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct RPCEndpoint {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub supports_jito: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RPCEndpoint` 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 `get_stats` and `get_leaderboard` are never used
[INFO] [stdout]    --> src/turbo_trader.rs:280:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl TurboTrader {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub async fn get_stats(&self) -> String {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub async fn get_leaderboard(&self) -> Vec<(String, u64, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `signal_type`, `priority`, `filters_passed`, `filters_failed`, and `warnings` are never read
[INFO] [stdout]   --> src/predator_engine.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct EntryDecision {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub signal_type: SignalType,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 20 |     pub priority: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 21 |     pub filters_passed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub filters_failed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub warnings: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitDecision` is never constructed
[INFO] [stdout]   --> src/predator_engine.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ExitDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExitType` is never used
[INFO] [stdout]   --> src/predator_engine.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum ExitType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Urgency` is never used
[INFO] [stdout]   --> src/predator_engine.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum Urgency {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mint`, `symbol`, and `elite_wallets` are never read
[INFO] [stdout]   --> src/predator_engine.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct TokenSnapshot {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 65 |     pub mint: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 66 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub elite_wallets: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenSnapshot` 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: fields `whale_min_amount_sol` and `coordinated_buying_window_ms` are never read
[INFO] [stdout]   --> src/predator_engine.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct PredatorConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub whale_min_amount_sol: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     pub consecutive_whale_count: u32,
[INFO] [stdout] 88 |     pub coordinated_buying_window_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_elite_wallet`, `analyze_exit`, and `get_stats` are never used
[INFO] [stdout]    --> src/predator_engine.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl PredatorEngine {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn add_elite_wallet(&mut self, wallet: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn analyze_exit(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 422 |     pub fn get_stats(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dead_threshold_secs` is never read
[INFO] [stdout]    --> src/runner_tracker.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct TrackerConfig {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub dead_threshold_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TrackerConfig` 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 `save_to_file`, `get_summary`, `get_missed_runners`, and `get_all_runners` are never used
[INFO] [stdout]    --> src/runner_tracker.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl RunnerTracker {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub async fn save_to_file(&self, filename: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub async fn get_summary(&self) -> String {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn get_missed_runners(&self) -> Vec<(String, String, f64, String, String, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub async fn get_all_runners(&self) -> Vec<(String, String, f64, bool, String, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Volatile` is never constructed
[INFO] [stdout]   --> src/adaptive_agent.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum MarketMode {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     Volatile,  // Unpredictable, be cautious
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketMode` 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: fields `confidence`, `reasoning`, and `adjusted_threshold` are never read
[INFO] [stdout]   --> src/adaptive_agent.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct AgentDecision {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 51 |     pub should_buy: bool,
[INFO] [stdout] 52 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 53 |     pub reasoning: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub adjusted_threshold: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_pattern_observations` is never read
[INFO] [stdout]    --> src/adaptive_agent.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct AgentConfig {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub min_pattern_observations: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgentConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recent_patterns` is never read
[INFO] [stdout]    --> src/adaptive_agent.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | struct MarketMemory {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 203 |     recent_patterns: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/adaptive_agent.rs:655:18
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl AdaptiveAgent {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub async fn observe_token(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     pub async fn get_stats(&self) -> AgentStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     pub async fn get_pattern_scores(&self) -> Vec<(String, f64, f64, Trend)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub async fn get_combo_scores(&self) -> Vec<(String, f64, f64, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 690 |     pub async fn get_market_mode(&self) -> MarketMode {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 779 |     pub async fn get_filters(&self) -> AdaptiveFilters {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 927 |     pub async fn get_optimal_stop_loss(&self) -> f64 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `calculate_reputation`, and `classify_wallet` are never used
[INFO] [stdout]    --> src/wallet_reputation.rs:72:8
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl WalletReputation {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  72 |     fn new(address: String, is_elite: bool) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn calculate_reputation(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn classify_wallet(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `auto_buy_threshold`, `block_threshold`, `min_trades_for_trust`, and `max_recent_trades` are never read
[INFO] [stdout]    --> src/wallet_reputation.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct ReputationConfig {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 168 |     /// Auto-buy threshold (wallets with score above this trigger auto-buy)
[INFO] [stdout] 169 |     pub auto_buy_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub block_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub min_trades_for_trust: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub max_recent_trades: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReputationConfig` 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: fields `config` and `elite_wallets` are never read
[INFO] [stdout]    --> src/wallet_reputation.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct WalletReputationTracker {
[INFO] [stdout]     |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 198 |     config: ReputationConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     elite_wallets: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_buy`, `record_outcome`, `should_auto_buy`, `should_block`, `get_top_wallets`, and `get_stats` are never used
[INFO] [stdout]    --> src/wallet_reputation.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl WalletReputationTracker {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub async fn record_buy(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub async fn record_outcome(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub async fn should_auto_buy(&self, wallet: &str) -> (bool, f64) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub async fn should_block(&self, wallet: &str) -> (bool, String) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub async fn get_top_wallets(&self, limit: usize) -> Vec<WalletReputation> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub async fn get_stats(&self) -> ReputationStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReputationStats` is never constructed
[INFO] [stdout]    --> src/wallet_reputation.rs:408:12
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub struct ReputationStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExitSignal` is never used
[INFO] [stdout]   --> src/exit_agent.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ExitSignal {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_reason`, `expected_peak`, and `optimal_hold_time` are never used
[INFO] [stdout]   --> src/exit_agent.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl EntryPattern {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 40 |     pub fn from_reason(reason: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn expected_peak(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn optimal_hold_time(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitDecision` is never constructed
[INFO] [stdout]   --> src/exit_agent.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct ExitDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `velocity_drop_threshold`, `volume_spike_threshold`, `min_partial_profit`, and `peak_lookback` are never read
[INFO] [stdout]    --> src/exit_agent.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct ExitAgentConfig {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 112 |     /// Velocity drop threshold (% drop from peak)
[INFO] [stdout] 113 |     pub velocity_drop_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub volume_spike_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub min_partial_profit: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub peak_lookback: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExitAgentConfig` 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: multiple fields are never read
[INFO] [stdout]    --> src/exit_agent.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct PositionExit {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 139 |     pub mint: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 140 |     pub symbol: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 141 |     pub entry_mc: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 142 |     pub entry_pattern: EntryPattern,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 143 |     pub entry_time: DateTime<Utc>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub current_mc: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 147 |     pub peak_mc: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 148 |     pub current_multiplier: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub recent_velocities: Vec<(DateTime<Utc>, f64)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |     pub peak_velocity: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub recent_volumes: Vec<(DateTime<Utc>, f64)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 156 |     pub avg_volume: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub partial_sold: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 160 |     pub partial_exit_mc: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionExit` 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: fields `positions`, `exit_history`, `config`, and `learned_peaks` are never read
[INFO] [stdout]    --> src/exit_agent.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct ExitAgent {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 165 |     /// Tracked positions
[INFO] [stdout] 166 |     positions: Arc<RwLock<HashMap<String, PositionExit>>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     exit_history: Arc<RwLock<Vec<ExitRecord>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     config: ExitAgentConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     learned_peaks: Arc<RwLock<HashMap<EntryPattern, f64>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/exit_agent.rs:195:18
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl ExitAgent {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub async fn track_position(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub async fn update_position(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub async fn analyze_exit(&self, mint: &str) -> Option<ExitDecision> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub async fn record_exit(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     async fn learn_from_exit(&self, record: &ExitRecord) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub async fn get_stats(&self) -> ExitStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub async fn mark_partial_sold(&self, mint: &str, exit_mc: f64) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitStats` is never constructed
[INFO] [stdout]    --> src/exit_agent.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub struct ExitStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_u8` is never used
[INFO] [stdout]   --> src/entry_timing.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl UrgencyLevel {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn as_u8(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `urgency`, `confidence`, `optimal_time_range`, `current_age`, `reasoning`, and `time_score` are never read
[INFO] [stdout]   --> src/entry_timing.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct EntryWindow {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 66 |     pub should_enter: bool,
[INFO] [stdout] 67 |     pub urgency: UrgencyLevel,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 69 |     pub optimal_time_range: (f64, f64),  // (min_seconds, max_seconds)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub current_age: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 71 |     pub reasoning: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 72 |     pub time_score: f64,                  // How good is the timing (0-1)
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryWindow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mint` is never read
[INFO] [stdout]   --> src/entry_timing.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct TokenEntry {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 78 |     mint: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenEntry` 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: multiple fields are never read
[INFO] [stdout]    --> src/entry_timing.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  96 | struct EntrySnapshot {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout]  97 |     age_seconds: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  98 |     confidence: f64,
[INFO] [stdout]  99 |     urgency: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 100 |     patterns_present: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     whale_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 102 |     elite_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 103 |     velocity: f64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 104 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntrySnapshot` 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 `get_stats` and `cleanup` are never used
[INFO] [stdout]    --> src/entry_timing.rs:473:18
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EntryTimingAnalyzer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub async fn get_stats(&self) -> EntryStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub async fn cleanup(&self, max_age_seconds: i64) {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntryStats` is never constructed
[INFO] [stdout]    --> src/entry_timing.rs:503:12
[INFO] [stdout]     |
[INFO] [stdout] 503 | pub struct EntryStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `buy_strategy`, `sell_strategy`, and `threshold_multiplier` are never used
[INFO] [stdout]   --> src/market_cycle.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl CyclePhase {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 26 |     /// Get buying strategy for this phase
[INFO] [stdout] 27 |     pub fn buy_strategy(&self) -> BuyStrategy {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn sell_strategy(&self) -> SellStrategy {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn threshold_multiplier(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BuyStrategy` is never used
[INFO] [stdout]   --> src/market_cycle.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum BuyStrategy {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SellStrategy` is never used
[INFO] [stdout]   --> src/market_cycle.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub enum SellStrategy {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CycleAnalysis` is never constructed
[INFO] [stdout]   --> src/market_cycle.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct CycleAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/market_cycle.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct MarketDataPoint {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 87 |     timestamp: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 88 |     price_mc: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 89 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 90 |     whale_buys: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 91 |     whale_sells: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 92 |     retail_buys: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     retail_sells: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 94 |     velocity: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketDataPoint` 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: fields `data_points`, `current_phase`, `phase_started_at`, and `config` are never read
[INFO] [stdout]    --> src/market_cycle.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct MarketCycleDetector {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout]  99 |     /// Recent market data (rolling window)
[INFO] [stdout] 100 |     data_points: Arc<RwLock<VecDeque<MarketDataPoint>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     current_phase: Arc<RwLock<Option<CyclePhase>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     phase_started_at: Arc<RwLock<Option<DateTime<Utc>>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     config: CycleConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_data_points`, `distribution_volume_mult`, and `distribution_whale_sell_ratio` are never read
[INFO] [stdout]    --> src/market_cycle.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct CycleConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub min_data_points: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub distribution_volume_mult: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub distribution_whale_sell_ratio: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CycleConfig` 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: multiple methods are never used
[INFO] [stdout]    --> src/market_cycle.rs:155:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl MarketCycleDetector {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn add_data_point(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub async fn detect_phase(&self) -> Option<CycleAnalysis> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn calculate_price_trend(&self, points: &[&MarketDataPoint]) -> PriceTrend {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn calculate_volume_trend(&self, points: &[&MarketDataPoint]) -> VolumeTrend {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn calculate_whale_behavior(&self, points: &[&MarketDataPoint]) -> WhaleBehavior {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn calculate_retail_behavior(&self, points: &[&MarketDataPoint]) -> RetailBehavior {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn identify_phase(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub async fn get_current_phase(&self) -> Option<CyclePhase> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PriceTrend` is never used
[INFO] [stdout]    --> src/market_cycle.rs:403:6
[INFO] [stdout]     |
[INFO] [stdout] 403 | enum PriceTrend {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VolumeTrend` is never used
[INFO] [stdout]    --> src/market_cycle.rs:412:6
[INFO] [stdout]     |
[INFO] [stdout] 412 | enum VolumeTrend {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WhaleBehavior` is never used
[INFO] [stdout]    --> src/market_cycle.rs:420:6
[INFO] [stdout]     |
[INFO] [stdout] 420 | enum WhaleBehavior {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RetailBehavior` is never used
[INFO] [stdout]    --> src/market_cycle.rs:427:6
[INFO] [stdout]     |
[INFO] [stdout] 427 | enum RetailBehavior {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_data` is never used
[INFO] [stdout]    --> src/dashboard.rs:174:18
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl DashboardState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub async fn update_data(&self, data: DashboardData) {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CausalAnalysis` is never constructed
[INFO] [stdout]   --> src/brain.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct CausalAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `observe_trade`, and `predict_buy` are never used
[INFO] [stdout]    --> src/brain.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl WalletProfile {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  71 |     pub fn new(address: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn observe_trade(&mut self, entry_time: f64, mc: f64, outcome: bool, multiplier: f64, narrative: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn predict_buy(&self, mc: f64, narrative: &str, age: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `causal_patterns` is never read
[INFO] [stdout]    --> src/brain.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct Brain {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 212 |     causal_patterns: Arc<RwLock<HashMap<String, CausalFactor>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `analyze_causality`, `observe_wallet`, `predict_wallet_buy`, `reflect`, `get_wallet_profiles`, and `get_reflections` are never used
[INFO] [stdout]    --> src/brain.rs:225:18
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl Brain {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub async fn analyze_causality(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub async fn observe_wallet(&self, address: &str, entry_time: f64, mc: f64, outcome: bool, multiplier: f64, narrative: &str) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub async fn predict_wallet_buy(&self, address: &str, mc: f64, narrative: &str, age: f64) -> f64 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub async fn reflect(
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub async fn get_wallet_profiles(&self) -> Vec<WalletProfile> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub async fn get_reflections(&self, limit: usize) -> Vec<Reflection> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_detector` and `exit_agent` are never read
[INFO] [stdout]   --> src/unified_agent.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct UnifiedAgent {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     market_detector: Arc<RwLock<MarketCycleDetector>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     exit_agent: Arc<RwLock<ExitAgent>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stats` is never used
[INFO] [stdout]     --> src/unified_agent.rs:1899:18
[INFO] [stdout]      |
[INFO] [stdout]  303 | impl UnifiedAgent {
[INFO] [stdout]      | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1899 |     pub async fn get_stats(&self) -> UnifiedStats {
[INFO] [stdout]      |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/websocket.rs:534:21
[INFO] [stdout]     |
[INFO] [stdout] 534 |                     drop(token_state);
[INFO] [stdout]     |                     ^^^^^-----------^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          argument has type `&mut TokenState`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 534 -                     drop(token_state);
[INFO] [stdout] 534 +                     let _ = token_state;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/websocket.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |                 drop(token_state); // Drop mutable borrow before execute_buy
[INFO] [stdout]     |                 ^^^^^-----------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut TokenState`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 561 -                 drop(token_state); // Drop mutable borrow before execute_buy
[INFO] [stdout] 561 +                 let _ = token_state; // Drop mutable borrow before execute_buy
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `traderPublicKey` should have a snake case name
[INFO] [stdout]   --> src/types.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub traderPublicKey: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `trader_public_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bondingCurveKey` should have a snake case name
[INFO] [stdout]   --> src/types.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub bondingCurveKey: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bonding_curve_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `vTokensInBondingCurve` should have a snake case name
[INFO] [stdout]   --> src/types.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub vTokensInBondingCurve: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `v_tokens_in_bonding_curve`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `vSolInBondingCurve` should have a snake case name
[INFO] [stdout]   --> src/types.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub vSolInBondingCurve: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `v_sol_in_bonding_curve`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `marketCapSol` should have a snake case name
[INFO] [stdout]   --> src/types.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub marketCapSol: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `market_cap_sol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `initialBuy` should have a snake case name
[INFO] [stdout]   --> src/types.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub initialBuy: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `initial_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/unified_agent.rs:335:24
[INFO] [stdout]     |
[INFO] [stdout] 335 |             if let Err(e) = agent_read.load_filters("adaptive_filters.json").await {
[INFO] [stdout]     |                        ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tokens`
[INFO] [stdout]     --> src/unified_agent.rs:1525:13
[INFO] [stdout]      |
[INFO] [stdout] 1525 |         let tokens = self.tokens.clone();
[INFO] [stdout]      |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_tokens`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `was_caught`
[INFO] [stdout]    --> src/token_history.rs:193:9
[INFO] [stdout]     |
[INFO] [stdout] 193 |         was_caught: bool,
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_was_caught`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/main.rs:97:16
[INFO] [stdout]    |
[INFO] [stdout] 97 |     if let Err(e) = dashboard.load_pnl_history("pnl_history.json").await {
[INFO] [stdout]    |                ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/config.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct Config {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 13 |     pub priority_fee: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub threshold_15s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub max_price_8s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 28 |     pub max_price_15s: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub auto_buy_max_txn: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 33 |     pub auto_buy_min_traders: u32,
[INFO] [stdout] 34 |     pub auto_buy_max_traders: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 39 |     pub ai_min_txn: u32,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 40 |     pub ai_min_traders: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 41 |     pub ai_min_buy_ratio: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub elite_wallet_max_mc: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     pub elite_min_buy_ratio: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     pub elite_min_whale_count: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub price_jump_tolerance: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     pub skip_if_txn_below: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 54 |     pub skip_if_buy_ratio_below: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub pumpfun_ws: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Config` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_elite_wallet` is never used
[INFO] [stdout]    --> src/config.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl Config {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn is_elite_wallet(&self, wallet: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WHALE_THRESHOLD_SOL` is never used
[INFO] [stdout]   --> src/websocket.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const WHALE_THRESHOLD_SOL: f64 = 3.5; // ~$500 at $140/SOL
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PumpPortalWebSocket` is never constructed
[INFO] [stdout]   --> src/websocket.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PumpPortalWebSocket {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]     --> src/websocket.rs:61:12
[INFO] [stdout]      |
[INFO] [stdout]   60 | impl PumpPortalWebSocket {
[INFO] [stdout]      | ------------------------ associated items in this implementation
[INFO] [stdout]   61 |     pub fn new(
[INFO] [stdout]      |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  101 |     pub async fn run(&mut self) -> Result<()> {
[INFO] [stdout]      |                  ^^^
[INFO] [stdout] ...
[INFO] [stdout]  115 |     async fn connect_and_listen(&mut self) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  302 |     async fn handle_message(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  351 |     async fn handle_create_event(
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  439 |     async fn handle_trade_event(&mut self, json: &serde_json::Value, is_buy: bool) -> Result<()> {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  647 |     async fn analyze_token_8s(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  737 |     async fn analyze_token_15s(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  824 |     async fn analyze_token_continuous(&mut self, mint: &str) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1125 |     async fn execute_buy(&mut self, mint: &str, reason: &str, confidence: f64) {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1225 |     async fn check_positions(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1300 |     async fn execute_sell(&mut self, mint: &str, percent: u32, signal: crate::exit_agent::ExitSignal) {
[INFO] [stdout]      |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1398 |     async fn cleanup_old_tokens(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1407 |     async fn print_stats(&self) {
[INFO] [stdout]      |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1604 |     async fn learn_from_completed_runners(&mut self) {
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `config` is never read
[INFO] [stdout]   --> src/analyzer.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Analyzer {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 10 |     config: Config,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `send_via_rpc` is never used
[INFO] [stdout]    --> src/trader.rs:316:14
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl SolanaTrader {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 316 |     async fn send_via_rpc(&self, tx_bytes: &[u8]) -> Result<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PositionStats` is never constructed
[INFO] [stdout]   --> src/position_manager.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct PositionStats {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `mark_partial_sold`, `record_progressive_sell`, and `get_stats` are never used
[INFO] [stdout]    --> src/position_manager.rs:166:12
[INFO] [stdout]     |
[INFO] [stdout]  25 | impl PositionManager {
[INFO] [stdout]     | -------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn mark_partial_sold(&mut self, mint: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn record_progressive_sell(&mut self, mint: &str, percent: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn get_stats(&self) -> PositionStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COINGECKO_SOL_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const COINGECKO_SOL_URL: &str = "https://api.coingecko.com/api/v3/simple/price?ids=solana&vs_currencies=usd";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEXSCREENER_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const DEXSCREENER_URL: &str = "https://api.dexscreener.com/tokens/v1/solana/";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PUMPFUN_API_URL` is never used
[INFO] [stdout]   --> src/price_cache.rs:14:7
[INFO] [stdout]    |
[INFO] [stdout] 14 | const PUMPFUN_API_URL: &str = "https://frontend-api.pump.fun/coins/";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceData` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct PriceData {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HolderData` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct HolderData {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PriceCache` is never constructed
[INFO] [stdout]   --> src/price_cache.rs:46:12
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub struct PriceCache {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/price_cache.rs:58:12
[INFO] [stdout]     |
[INFO] [stdout]  57 | impl PriceCache {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout]  58 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  74 |     pub fn update_from_trade(&mut self, mint: &str, mc_sol: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  94 |     pub fn get_price(&self, mint: &str) -> PriceData {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn get_sol_price(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn set_sol_price(&mut self, price: f64) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn cleanup_old(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn get_holder_count(&self, mint: &str) -> Option<u32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub async fn fetch_holder_count(&mut self, mint: &str) -> Option<u32> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub async fn fetch_from_dexscreener(&mut self, mint: &str) -> Option<PriceData> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 215 |     pub async fn refresh_sol_price(&mut self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DexScreenerPair` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:231:8
[INFO] [stdout]     |
[INFO] [stdout] 231 | struct DexScreenerPair {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DexScreenerVolume` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | struct DexScreenerVolume {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CoinGeckoResponse` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | struct CoinGeckoResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SolanaPrice` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | struct SolanaPrice {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PumpFunCoinResponse` is never constructed
[INFO] [stdout]    --> src/price_cache.rs:261:8
[INFO] [stdout]     |
[INFO] [stdout] 261 | struct PumpFunCoinResponse {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Features10s` is never constructed
[INFO] [stdout]   --> src/ai_predictor.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Features10s {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_token_state` and `to_array` are never used
[INFO] [stdout]   --> src/ai_predictor.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl Features10s {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 28 |     pub fn from_token_state(state: &TokenState) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn to_array(&self) -> [f32; 6] {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TradeEvent` is never constructed
[INFO] [stdout]  --> src/types.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct TradeEvent {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CreateEvent` is never constructed
[INFO] [stdout]   --> src/types.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct CreateEvent {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `first_trade_at`, `analysis_8s_done`, and `analysis_15s_done` are never read
[INFO] [stdout]   --> src/types.rs:56:9
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub struct TokenState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub first_trade_at: Option<DateTime<Utc>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 88 |     pub analysis_8s_done: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     pub analysis_15s_done: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_peak` is never used
[INFO] [stdout]    --> src/types.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout]  92 | impl TokenState {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 141 |     pub fn update_peak(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `timestamp` and `is_elite` are never read
[INFO] [stdout]    --> src/types.rs:206:9
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct WhaleBuy {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub timestamp: DateTime<Utc>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout] 207 |     pub is_elite: bool,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `WhaleBuy` 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: variant `Wait` is never constructed
[INFO] [stdout]    --> src/types.rs:262:5
[INFO] [stdout]     |
[INFO] [stdout] 259 | pub enum TradingDecision {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 262 |     Wait,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TradingDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `supports_jito` is never read
[INFO] [stdout]   --> src/turbo_trader.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct RPCEndpoint {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub supports_jito: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RPCEndpoint` 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 `get_stats` and `get_leaderboard` are never used
[INFO] [stdout]    --> src/turbo_trader.rs:280:18
[INFO] [stdout]     |
[INFO] [stdout]  84 | impl TurboTrader {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 280 |     pub async fn get_stats(&self) -> String {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub async fn get_leaderboard(&self) -> Vec<(String, u64, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `signal_type`, `priority`, `filters_passed`, `filters_failed`, and `warnings` are never read
[INFO] [stdout]   --> src/predator_engine.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct EntryDecision {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub signal_type: SignalType,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 20 |     pub priority: u8,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 21 |     pub filters_passed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub filters_failed: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub warnings: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitDecision` is never constructed
[INFO] [stdout]   --> src/predator_engine.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct ExitDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExitType` is never used
[INFO] [stdout]   --> src/predator_engine.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub enum ExitType {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Urgency` is never used
[INFO] [stdout]   --> src/predator_engine.rs:56:10
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub enum Urgency {
[INFO] [stdout]    |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `mint`, `symbol`, and `elite_wallets` are never read
[INFO] [stdout]   --> src/predator_engine.rs:65:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub struct TokenSnapshot {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 65 |     pub mint: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 66 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub elite_wallets: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenSnapshot` 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: fields `whale_min_amount_sol` and `coordinated_buying_window_ms` are never read
[INFO] [stdout]   --> src/predator_engine.rs:86:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct PredatorConfig {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub whale_min_amount_sol: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 87 |     pub consecutive_whale_count: u32,
[INFO] [stdout] 88 |     pub coordinated_buying_window_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_elite_wallet`, `analyze_exit`, and `get_stats` are never used
[INFO] [stdout]    --> src/predator_engine.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | impl PredatorEngine {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn add_elite_wallet(&mut self, wallet: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn analyze_exit(
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 422 |     pub fn get_stats(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `dead_threshold_secs` is never read
[INFO] [stdout]    --> src/runner_tracker.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub struct TrackerConfig {
[INFO] [stdout]     |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub dead_threshold_secs: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TrackerConfig` 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 `save_to_file`, `get_summary`, `get_missed_runners`, and `get_all_runners` are never used
[INFO] [stdout]    --> src/runner_tracker.rs:411:18
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl RunnerTracker {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub async fn save_to_file(&self, filename: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 420 |     pub async fn get_summary(&self) -> String {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 438 |     pub async fn get_missed_runners(&self) -> Vec<(String, String, f64, String, String, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 463 |     pub async fn get_all_runners(&self) -> Vec<(String, String, f64, bool, String, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Volatile` is never constructed
[INFO] [stdout]   --> src/adaptive_agent.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub enum MarketMode {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 45 |     Volatile,  // Unpredictable, be cautious
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketMode` 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: fields `confidence`, `reasoning`, and `adjusted_threshold` are never read
[INFO] [stdout]   --> src/adaptive_agent.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub struct AgentDecision {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 51 |     pub should_buy: bool,
[INFO] [stdout] 52 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 53 |     pub reasoning: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 |     pub adjusted_threshold: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentDecision` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `min_pattern_observations` is never read
[INFO] [stdout]    --> src/adaptive_agent.rs:105:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct AgentConfig {
[INFO] [stdout]     |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 105 |     pub min_pattern_observations: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AgentConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `recent_patterns` is never read
[INFO] [stdout]    --> src/adaptive_agent.rs:203:5
[INFO] [stdout]     |
[INFO] [stdout] 199 | struct MarketMemory {
[INFO] [stdout]     |        ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 203 |     recent_patterns: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MarketMemory` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/adaptive_agent.rs:655:18
[INFO] [stdout]     |
[INFO] [stdout] 216 | impl AdaptiveAgent {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 655 |     pub async fn observe_token(&self) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 661 |     pub async fn get_stats(&self) -> AgentStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     pub async fn get_pattern_scores(&self) -> Vec<(String, f64, f64, Trend)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 678 |     pub async fn get_combo_scores(&self) -> Vec<(String, f64, f64, f64)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 690 |     pub async fn get_market_mode(&self) -> MarketMode {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 779 |     pub async fn get_filters(&self) -> AdaptiveFilters {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 927 |     pub async fn get_optimal_stop_loss(&self) -> f64 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `calculate_reputation`, and `classify_wallet` are never used
[INFO] [stdout]    --> src/wallet_reputation.rs:72:8
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl WalletReputation {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  72 |     fn new(address: String, is_elite: bool) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] ...
[INFO] [stdout]  93 |     fn calculate_reputation(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 145 |     fn classify_wallet(&mut self) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `auto_buy_threshold`, `block_threshold`, `min_trades_for_trust`, and `max_recent_trades` are never read
[INFO] [stdout]    --> src/wallet_reputation.rs:169:9
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct ReputationConfig {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] 168 |     /// Auto-buy threshold (wallets with score above this trigger auto-buy)
[INFO] [stdout] 169 |     pub auto_buy_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub block_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     pub min_trades_for_trust: u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub max_recent_trades: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ReputationConfig` 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: fields `config` and `elite_wallets` are never read
[INFO] [stdout]    --> src/wallet_reputation.rs:198:5
[INFO] [stdout]     |
[INFO] [stdout] 193 | pub struct WalletReputationTracker {
[INFO] [stdout]     |            ----------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 198 |     config: ReputationConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     elite_wallets: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `record_buy`, `record_outcome`, `should_auto_buy`, `should_block`, `get_top_wallets`, and `get_stats` are never used
[INFO] [stdout]    --> src/wallet_reputation.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 204 | impl WalletReputationTracker {
[INFO] [stdout]     | ---------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub async fn record_buy(
[INFO] [stdout]     |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 255 |     pub async fn record_outcome(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub async fn should_auto_buy(&self, wallet: &str) -> (bool, f64) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub async fn should_block(&self, wallet: &str) -> (bool, String) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 352 |     pub async fn get_top_wallets(&self, limit: usize) -> Vec<WalletReputation> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 365 |     pub async fn get_stats(&self) -> ReputationStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ReputationStats` is never constructed
[INFO] [stdout]    --> src/wallet_reputation.rs:408:12
[INFO] [stdout]     |
[INFO] [stdout] 408 | pub struct ReputationStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExitSignal` is never used
[INFO] [stdout]   --> src/exit_agent.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ExitSignal {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `from_reason`, `expected_peak`, and `optimal_hold_time` are never used
[INFO] [stdout]   --> src/exit_agent.rs:40:12
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl EntryPattern {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 40 |     pub fn from_reason(reason: &str) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 |     pub fn expected_peak(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 69 |     pub fn optimal_hold_time(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitDecision` is never constructed
[INFO] [stdout]   --> src/exit_agent.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub struct ExitDecision {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `velocity_drop_threshold`, `volume_spike_threshold`, `min_partial_profit`, and `peak_lookback` are never read
[INFO] [stdout]    --> src/exit_agent.rs:113:9
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub struct ExitAgentConfig {
[INFO] [stdout]     |            --------------- fields in this struct
[INFO] [stdout] 112 |     /// Velocity drop threshold (% drop from peak)
[INFO] [stdout] 113 |     pub velocity_drop_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub volume_spike_threshold: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub min_partial_profit: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub peak_lookback: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExitAgentConfig` 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: multiple fields are never read
[INFO] [stdout]    --> src/exit_agent.rs:139:9
[INFO] [stdout]     |
[INFO] [stdout] 138 | pub struct PositionExit {
[INFO] [stdout]     |            ------------ fields in this struct
[INFO] [stdout] 139 |     pub mint: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 140 |     pub symbol: String,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] 141 |     pub entry_mc: f64,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 142 |     pub entry_pattern: EntryPattern,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 143 |     pub entry_time: DateTime<Utc>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |     pub current_mc: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 147 |     pub peak_mc: f64,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 148 |     pub current_multiplier: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub recent_velocities: Vec<(DateTime<Utc>, f64)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 152 |     pub peak_velocity: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub recent_volumes: Vec<(DateTime<Utc>, f64)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 156 |     pub avg_volume: f64,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub partial_sold: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 160 |     pub partial_exit_mc: Option<f64>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PositionExit` 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: fields `positions`, `exit_history`, `config`, and `learned_peaks` are never read
[INFO] [stdout]    --> src/exit_agent.rs:166:5
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub struct ExitAgent {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 165 |     /// Tracked positions
[INFO] [stdout] 166 |     positions: Arc<RwLock<HashMap<String, PositionExit>>>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     exit_history: Arc<RwLock<Vec<ExitRecord>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     config: ExitAgentConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     learned_peaks: Arc<RwLock<HashMap<EntryPattern, f64>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/exit_agent.rs:195:18
[INFO] [stdout]     |
[INFO] [stdout] 178 | impl ExitAgent {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub async fn track_position(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub async fn update_position(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 265 |     pub async fn analyze_exit(&self, mint: &str) -> Option<ExitDecision> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub async fn record_exit(
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 414 |     async fn learn_from_exit(&self, record: &ExitRecord) {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 441 |     pub async fn get_stats(&self) -> ExitStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub async fn mark_partial_sold(&self, mint: &str, exit_mc: f64) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ExitStats` is never constructed
[INFO] [stdout]    --> src/exit_agent.rs:472:12
[INFO] [stdout]     |
[INFO] [stdout] 472 | pub struct ExitStats {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_u8` is never used
[INFO] [stdout]   --> src/entry_timing.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl UrgencyLevel {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn as_u8(&self) -> u8 {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `urgency`, `confidence`, `optimal_time_range`, `current_age`, `reasoning`, and `time_score` are never read
[INFO] [stdout]   --> src/entry_timing.rs:67:9
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct EntryWindow {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 66 |     pub should_enter: bool,
[INFO] [stdout] 67 |     pub urgency: UrgencyLevel,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 68 |     pub confidence: f64,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 69 |     pub optimal_time_range: (f64, f64),  // (min_seconds, max_seconds)
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 70 |     pub current_age: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 71 |     pub reasoning: Vec<String>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 72 |     pub time_score: f64,                  // How good is the timing (0-1)
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `EntryWindow` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `mint` is never read
[INFO] [stdout]   --> src/entry_timing.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 77 | struct TokenEntry {
[INFO] [stdout]    |        ---------- field in this struct
[INFO] [stdout] 78 |     mint: String,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenEntry` 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: multiple fields are never read
[INFO] [stdout]    --> src/entry_timing.rs:97:5
[INFO] [stdout]     |
[INFO] [stdout]  96 | struct EntrySnapshot {
[INFO] [stdout]     |        ------------- fields in this struct
[INFO] [stdout]  97 |     age_seconds: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout]  98 |     confidence: f64,
[INFO] [stdout]  99 |     urgency: u8,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 100 |     patterns_present: Vec<String>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 101 |     whale_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 102 |     elite_count: u32,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 103 |     velocity: f64,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 104 |     timestamp: DateTime<Utc>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `EntrySnapshot` 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 `get_stats` and `cleanup` are never used
[INFO] [stdout]    --> src/entry_timing.rs:473:18
[INFO] [stdout]     |
[INFO] [stdout] 146 | impl EntryTimingAnalyzer {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 473 |     pub async fn get_stats(&self) -> EntryStats {
[INFO] [stdout]     |                  ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 495 |     pub async fn cleanup(&self, max_age_seconds: i64) {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EntryStats` is never constructed
[INFO] [stdout]    --> src/entry_timing.rs:503:12
[INFO] [stdout]     |
[INFO] [stdout] 503 | pub struct EntryStats {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `buy_strategy`, `sell_strategy`, and `threshold_multiplier` are never used
[INFO] [stdout]   --> src/market_cycle.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl CyclePhase {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 26 |     /// Get buying strategy for this phase
[INFO] [stdout] 27 |     pub fn buy_strategy(&self) -> BuyStrategy {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn sell_strategy(&self) -> SellStrategy {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn threshold_multiplier(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BuyStrategy` is never used
[INFO] [stdout]   --> src/market_cycle.rs:58:10
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub enum BuyStrategy {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SellStrategy` is never used
[INFO] [stdout]   --> src/market_cycle.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub enum SellStrategy {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CycleAnalysis` is never constructed
[INFO] [stdout]   --> src/market_cycle.rs:76:12
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub struct CycleAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/market_cycle.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 86 | struct MarketDataPoint {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 87 |     timestamp: DateTime<Utc>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 88 |     price_mc: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 89 |     volume: f64,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 90 |     whale_buys: u32,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 91 |     whale_sells: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 92 |     retail_buys: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     retail_sells: u32,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 94 |     velocity: f64,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MarketDataPoint` 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: fields `data_points`, `current_phase`, `phase_started_at`, and `config` are never read
[INFO] [stdout]    --> src/market_cycle.rs:100:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct MarketCycleDetector {
[INFO] [stdout]     |            ------------------- fields in this struct
[INFO] [stdout]  99 |     /// Recent market data (rolling window)
[INFO] [stdout] 100 |     data_points: Arc<RwLock<VecDeque<MarketDataPoint>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     current_phase: Arc<RwLock<Option<CyclePhase>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     phase_started_at: Arc<RwLock<Option<DateTime<Utc>>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     config: CycleConfig,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `min_data_points`, `distribution_volume_mult`, and `distribution_whale_sell_ratio` are never read
[INFO] [stdout]    --> src/market_cycle.rs:118:9
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub struct CycleConfig {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub min_data_points: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub distribution_volume_mult: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub distribution_whale_sell_ratio: f64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CycleConfig` 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: multiple methods are never used
[INFO] [stdout]    --> src/market_cycle.rs:155:18
[INFO] [stdout]     |
[INFO] [stdout] 138 | impl MarketCycleDetector {
[INFO] [stdout]     | ------------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub async fn add_data_point(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub async fn detect_phase(&self) -> Option<CycleAnalysis> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     fn calculate_price_trend(&self, points: &[&MarketDataPoint]) -> PriceTrend {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     fn calculate_volume_trend(&self, points: &[&MarketDataPoint]) -> VolumeTrend {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 286 |     fn calculate_whale_behavior(&self, points: &[&MarketDataPoint]) -> WhaleBehavior {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 306 |     fn calculate_retail_behavior(&self, points: &[&MarketDataPoint]) -> RetailBehavior {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     fn identify_phase(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |     pub async fn get_current_phase(&self) -> Option<CyclePhase> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PriceTrend` is never used
[INFO] [stdout]    --> src/market_cycle.rs:403:6
[INFO] [stdout]     |
[INFO] [stdout] 403 | enum PriceTrend {
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `VolumeTrend` is never used
[INFO] [stdout]    --> src/market_cycle.rs:412:6
[INFO] [stdout]     |
[INFO] [stdout] 412 | enum VolumeTrend {
[INFO] [stdout]     |      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `WhaleBehavior` is never used
[INFO] [stdout]    --> src/market_cycle.rs:420:6
[INFO] [stdout]     |
[INFO] [stdout] 420 | enum WhaleBehavior {
[INFO] [stdout]     |      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `RetailBehavior` is never used
[INFO] [stdout]    --> src/market_cycle.rs:427:6
[INFO] [stdout]     |
[INFO] [stdout] 427 | enum RetailBehavior {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_data` is never used
[INFO] [stdout]    --> src/dashboard.rs:174:18
[INFO] [stdout]     |
[INFO] [stdout] 167 | impl DashboardState {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 174 |     pub async fn update_data(&self, data: DashboardData) {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CausalAnalysis` is never constructed
[INFO] [stdout]   --> src/brain.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct CausalAnalysis {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `observe_trade`, and `predict_buy` are never used
[INFO] [stdout]    --> src/brain.rs:71:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl WalletProfile {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  71 |     pub fn new(address: String) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn observe_trade(&mut self, entry_time: f64, mc: f64, outcome: bool, multiplier: f64, narrative: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     pub fn predict_buy(&self, mc: f64, narrative: &str, age: f64) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `causal_patterns` is never read
[INFO] [stdout]    --> src/brain.rs:212:5
[INFO] [stdout]     |
[INFO] [stdout] 204 | pub struct Brain {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 212 |     causal_patterns: Arc<RwLock<HashMap<String, CausalFactor>>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `analyze_causality`, `observe_wallet`, `predict_wallet_buy`, `reflect`, `get_wallet_profiles`, and `get_reflections` are never used
[INFO] [stdout]    --> src/brain.rs:225:18
[INFO] [stdout]     |
[INFO] [stdout] 215 | impl Brain {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub async fn analyze_causality(
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub async fn observe_wallet(&self, address: &str, entry_time: f64, mc: f64, outcome: bool, multiplier: f64, narrative: &str) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub async fn predict_wallet_buy(&self, address: &str, mc: f64, narrative: &str, age: f64) -> f64 {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub async fn reflect(
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 409 |     pub async fn get_wallet_profiles(&self) -> Vec<WalletProfile> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub async fn get_reflections(&self, limit: usize) -> Vec<Reflection> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `market_detector` and `exit_agent` are never read
[INFO] [stdout]   --> src/unified_agent.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub struct UnifiedAgent {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 77 |     market_detector: Arc<RwLock<MarketCycleDetector>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     exit_agent: Arc<RwLock<ExitAgent>>,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_stats` is never used
[INFO] [stdout]     --> src/unified_agent.rs:1899:18
[INFO] [stdout]      |
[INFO] [stdout]  303 | impl UnifiedAgent {
[INFO] [stdout]      | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1899 |     pub async fn get_stats(&self) -> UnifiedStats {
[INFO] [stdout]      |                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/websocket.rs:534:21
[INFO] [stdout]     |
[INFO] [stdout] 534 |                     drop(token_state);
[INFO] [stdout]     |                     ^^^^^-----------^
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          argument has type `&mut TokenState`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 534 -                     drop(token_state);
[INFO] [stdout] 534 +                     let _ = token_state;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/websocket.rs:561:17
[INFO] [stdout]     |
[INFO] [stdout] 561 |                 drop(token_state); // Drop mutable borrow before execute_buy
[INFO] [stdout]     |                 ^^^^^-----------^
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      argument has type `&mut TokenState`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 561 -                 drop(token_state); // Drop mutable borrow before execute_buy
[INFO] [stdout] 561 +                 let _ = token_state; // Drop mutable borrow before execute_buy
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `traderPublicKey` should have a snake case name
[INFO] [stdout]   --> src/types.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 39 |     pub traderPublicKey: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `trader_public_key`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `bondingCurveKey` should have a snake case name
[INFO] [stdout]   --> src/types.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub bondingCurveKey: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `bonding_curve_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `vTokensInBondingCurve` should have a snake case name
[INFO] [stdout]   --> src/types.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     pub vTokensInBondingCurve: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `v_tokens_in_bonding_curve`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `vSolInBondingCurve` should have a snake case name
[INFO] [stdout]   --> src/types.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     pub vSolInBondingCurve: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `v_sol_in_bonding_curve`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `marketCapSol` should have a snake case name
[INFO] [stdout]   --> src/types.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     pub marketCapSol: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `market_cap_sol`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `initialBuy` should have a snake case name
[INFO] [stdout]   --> src/types.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub initialBuy: Option<f64>,
[INFO] [stdout]    |         ^^^^^^^^^^ help: convert the identifier to snake case: `initial_buy`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: solana-client v1.18.26
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243", kill_on_drop: false }`
[INFO] [stdout] 1b52849e3d90fc9cf6ec94a6722d8772864c39ebd2a4a51812565436a0ff4243
