[INFO] cloning repository https://github.com/OshinoShinobu-Chan/AIPilot
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/OshinoShinobu-Chan/AIPilot" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOshinoShinobu-Chan%2FAIPilot", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOshinoShinobu-Chan%2FAIPilot'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 31cc5987ad15b4f7ac10bfde333cef05281cec85
[INFO] checking OshinoShinobu-Chan/AIPilot against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOshinoShinobu-Chan%2FAIPilot" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/OshinoShinobu-Chan/AIPilot
[INFO] finished tweaking git repo https://github.com/OshinoShinobu-Chan/AIPilot
[INFO] tweaked toml for git repo https://github.com/OshinoShinobu-Chan/AIPilot written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/OshinoShinobu-Chan/AIPilot on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/OshinoShinobu-Chan/AIPilot 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" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tempfile v3.19.0
[INFO] [stderr]   Downloaded fern v0.7.1
[INFO] [stderr]   Downloaded rustls-webpki v0.103.0
[INFO] [stderr]   Downloaded rustix v1.0.2
[INFO] [stderr]   Downloaded tokio v1.44.1
[INFO] [stderr]   Downloaded linux-raw-sys v0.9.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] bba425d1ba5db16a4aa905bc5fd1b3528f1266bf5af92f6741a0fb6651a78284
[INFO] running `Command { std: "docker" "start" "-a" "bba425d1ba5db16a4aa905bc5fd1b3528f1266bf5af92f6741a0fb6651a78284", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bba425d1ba5db16a4aa905bc5fd1b3528f1266bf5af92f6741a0fb6651a78284", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bba425d1ba5db16a4aa905bc5fd1b3528f1266bf5af92f6741a0fb6651a78284", kill_on_drop: false }`
[INFO] [stdout] bba425d1ba5db16a4aa905bc5fd1b3528f1266bf5af92f6741a0fb6651a78284
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0bbad56cd25eee7e650b0dfac74092632c37db798147537dd58707ccf7554cc7
[INFO] running `Command { std: "docker" "start" "-a" "0bbad56cd25eee7e650b0dfac74092632c37db798147537dd58707ccf7554cc7", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking once_cell v1.21.1
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling openssl-sys v0.9.106
[INFO] [stderr]     Checking socket2 v0.5.8
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]     Checking tracing-core v0.1.33
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]    Compiling openssl v0.10.71
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]     Checking tokio v1.44.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking indexmap v2.8.0
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]    Compiling getrandom v0.3.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking fern v0.7.1
[INFO] [stderr]     Checking uuid v1.16.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking tokio-util v0.7.14
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking h2 v0.4.8
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking hyper-util v0.1.10
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.15
[INFO] [stderr]     Checking aipilot v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:547:13
[INFO] [stdout]     |
[INFO] [stdout] 546 |             super::AIService::DeepSeek { client: client } => client,
[INFO] [stdout]     |             --------------------------------------------- matches all the relevant values
[INFO] [stdout] 547 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PilotErrorType` is never used
[INFO] [stdout]   --> src/error.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum PilotErrorType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PilotError` is never constructed
[INFO] [stdout]   --> src/error.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct PilotError {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl PilotError {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] 25 |     /// Create a new PilotError.
[INFO] [stdout] 26 |     pub fn new(error_type: PilotErrorType, message: String) -> PilotError {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PilotResult` is never used
[INFO] [stdout]   --> src/error.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub type PilotResult<T> = Result<T, PilotError>;
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AINodeErrorType` is never used
[INFO] [stdout]   --> src/error/ai_node_error.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum AINodeErrorType {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AINodeError` is never constructed
[INFO] [stdout]   --> src/error/ai_node_error.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct AINodeError {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/ai_node_error.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl AINodeError {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 24 |     /// Create a new AINodeError.
[INFO] [stdout] 25 |     pub fn new(error_type: AINodeErrorType, message: String) -> AINodeError {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `AINodeResult` is never used
[INFO] [stdout]   --> src/error/ai_node_error.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub type AINodeResult<T> = Result<T, AINodeError>;
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DeepSeekErrorType` is never used
[INFO] [stdout]  --> src/error/ai_node_error/deepseek_error.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum DeepSeekErrorType {
[INFO] [stdout]   |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeepSeekError` is never constructed
[INFO] [stdout]   --> src/error/ai_node_error/deepseek_error.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct DeepSeekError {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/error/ai_node_error/deepseek_error.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl DeepSeekError {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 26 |     /// Create a new DeepSeekError.
[INFO] [stdout] 27 |     pub fn new(error_type: DeepSeekErrorType, message: String) -> DeepSeekError {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `DeepSeekResult` is never used
[INFO] [stdout]   --> src/error/ai_node_error/deepseek_error.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub type DeepSeekResult<T> = Result<T, DeepSeekError>;
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Worknodecore` is never used
[INFO] [stdout]   --> src/worknode.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Worknodecore {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `excute` is never used
[INFO] [stdout]   --> src/worknode.rs:37:18
[INFO] [stdout]    |
[INFO] [stdout] 35 | impl Worknodecore {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 36 |     /// Excute the worknode.
[INFO] [stdout] 37 |     pub async fn excute(&mut self, input: String) -> PilotResult<String> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Worknode` is never constructed
[INFO] [stdout]   --> src/worknode.rs:52:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Worknode {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `excute`, `get_uid`, `get_node`, and `set_node` are never used
[INFO] [stdout]   --> src/worknode.rs:61:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Worknode {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 60 |     /// Create a new worknode.
[INFO] [stdout] 61 |     pub fn new(node: Worknodecore) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub async fn excute(&mut self, input: String) -> PilotResult<String> {
[INFO] [stdout]    |                  ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get_uid(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_node(&self) -> &Worknodecore {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_node(&mut self, node: Worknodecore) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Chat` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Chat {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/worknode/ai_node.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl Chat {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] 34 |     /// Create a new Chat.
[INFO] [stdout] 35 |     pub fn new(role: String, content: String) -> Chat {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AIService` is never used
[INFO] [stdout]   --> src/worknode/ai_node.rs:42:10
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub enum AIService {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AINode` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct AINode {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new_deepseek` is never used
[INFO] [stdout]   --> src/worknode/ai_node.rs:71:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl AIService {
[INFO] [stdout]    | -------------- associated function in this implementation
[INFO] [stdout] 70 |     /// Create a new AIService.
[INFO] [stdout] 71 |     pub fn new_deepseek(client: DeepSeekClient) -> AIService {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/worknode/ai_node.rs:78:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl AINode {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout]  77 |     /// Create a new AINode.
[INFO] [stdout]  78 |     pub fn new(service: AIService) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  89 |     pub async fn execute(&mut self, input: String) -> AINodeResult<String> {
[INFO] [stdout]     |                  ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     async fn execute_raw(&mut self) -> AINodeResult<String> {
[INFO] [stdout]     |              ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn role(mut self, role: Option<String>) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn set_role(&mut self, role: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_role(&self) -> &Option<String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn history(mut self, history: Vec<Chat>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn set_history(&mut self, history: Vec<Chat>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_history(&self) -> &Vec<Chat> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn push_history(&mut self, chat: Chat) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn prompt_prefix(mut self, prompt_prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn set_prompt_prefix(&mut self, prompt_prefix: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_prompt_prefix(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn prompt_suffix(mut self, prompt_suffix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn set_prompt_suffix(&mut self, prompt_suffix: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_prompt_suffix(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub fn input(mut self, input: String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_input(&mut self, input: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn get_input(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn get_service(&self) -> &AIService {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn set_service(&mut self, service: AIService) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DEEPSEEK_API_URL` is never used
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const DEEPSEEK_API_URL: &str = "https://api.deepseek.com/chat/completions";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ResponseFormat` is never used
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ResponseFormat {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StreamOption` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub struct StreamOption {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DeepSeekModel` is never used
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:31:10
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum DeepSeekModel {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeepSeekUsage` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct DeepSeekUsage {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:53:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl DeepSeekUsage {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 52 |     /// Create a new DeepSeekUsage.
[INFO] [stdout] 53 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeepSeekClient` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct DeepSeekClient {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl DeepSeekClient {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 128 |     pub fn new(url: &str, model: DeepSeekModel) -> DeepSeekClient {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     pub async fn send_request(&mut self, chats: &Vec<Chat>) -> DeepSeekResult<JsonValue> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     async fn send_request_raw(request: String, api_key: String) -> DeepSeekResult<Response> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     fn chats_to_json(chats: &Vec<Chat>) -> JsonValue {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     fn into_request_string(&self, msg: JsonValue) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn check_params(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn get_url(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn set_url(&mut self, url: String) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     pub fn api_key_from_env(mut self) -> DeepSeekResult<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 344 |     pub fn api_key_from_file(mut self, file: &str) -> DeepSeekResult<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn get_api_key(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn set_api_key(&mut self, api_key: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn get_model(&self) -> &DeepSeekModel {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn set_model(&mut self, model: DeepSeekModel) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 369 |     pub fn frequency_panalty(mut self, frequency_panalty: Option<f64>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn get_frequency_panalty(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn set_frequency_panalty(&mut self, frequency_panalty: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 379 |     pub fn default_frequency_panalty() -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 382 |     pub fn check_frequency_panalty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 390 |     pub fn max_tokens(mut self, max_tokens: Option<i32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn get_max_tokens(&self) -> Option<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn set_max_tokens(&mut self, max_tokens: Option<i32>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub fn default_max_tokens() -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 403 |     pub fn check_max_tokens(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 411 |     pub fn presence_penalty(mut self, presence_penalty: Option<f64>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn get_presence_penalty(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn set_presence_penalty(&mut self, presence_penalty: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 421 |     pub fn default_presence_penalty() -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn check_presence_penalty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 432 |     pub fn response_format(mut self, response_format: Option<ResponseFormat>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn get_response_format(&self) -> Option<ResponseFormat> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn set_response_format(&mut self, response_format: Option<ResponseFormat>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 442 |     pub fn default_response_format() -> ResponseFormat {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn stream(mut self, stream: Option<bool>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     pub fn get_stream(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn set_stream(&mut self, stream: Option<bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 455 |     pub fn default_stream() -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     pub fn stream_option(mut self, stream_option: Option<StreamOption>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub fn get_stream_option(&self) -> Option<StreamOption> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn set_stream_option(&mut self, stream_option: Option<StreamOption>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 468 |     pub fn check_stream_option(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 475 |     pub fn temperature(mut self, temperature: Option<f64>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn get_temperature(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn set_temperature(&mut self, temperature: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 485 |     pub fn default_temperature() -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 488 |     pub fn check_temperature(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 496 |     pub fn top_p(mut self, top_p: Option<f64>) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn get_top_p(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn set_top_p(&mut self, top_p: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 506 |     pub fn default_top_p() -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 509 |     pub fn check_top_p(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 517 |     pub fn logprobs(mut self, logprobs: bool) -> Self {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub fn get_logprobs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub fn set_logprobs(&mut self, logprobs: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 527 |     pub fn top_logprobs(mut self, top_logprobs: Option<i32>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn get_top_logprobs(&self) -> Option<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn set_top_logprobs(&mut self, top_logprobs: Option<i32>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn check_top_logprobs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `deepseek_execute` is never used
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:544:25
[INFO] [stdout]     |
[INFO] [stdout] 543 | impl super::AINode {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] 544 |     pub(super) async fn deepseek_execute(&mut self) -> AINodeResult<String> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `client:` in this pattern is redundant
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:546:42
[INFO] [stdout]     |
[INFO] [stdout] 546 |             super::AIService::DeepSeek { client: client } => client,
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^ help: use shorthand field pattern: `client`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:547:13
[INFO] [stdout]     |
[INFO] [stdout] 546 |             super::AIService::DeepSeek { client: client } => client,
[INFO] [stdout]     |             --------------------------------------------- matches all the relevant values
[INFO] [stdout] 547 |             _ => {
[INFO] [stdout]     |             ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Start`, `End`, `Local`, and `User` are never constructed
[INFO] [stdout]   --> src/worknode.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub enum Worknodecore {
[INFO] [stdout]    |          ------------ variants in this enum
[INFO] [stdout] 23 |     /// The start node of the workflow graph.
[INFO] [stdout] 24 |     Start,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 25 |     /// The end node of the workflow graph.
[INFO] [stdout] 26 |     End,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     Local,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 31 |     /// The user node of the workflow graph.
[INFO] [stdout] 32 |     User,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Worknodecore` has derived impls for the traits `Clone` and `Debug`, 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: field `uid` is never read
[INFO] [stdout]   --> src/worknode.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub struct Worknode {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] 53 |     /// The uid of the worknode.
[INFO] [stdout] 54 |     uid: Uuid,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Worknode` 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_uid`, `get_node`, and `set_node` are never used
[INFO] [stdout]   --> src/worknode.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 59 | impl Worknode {
[INFO] [stdout]    | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub fn get_uid(&self) -> Uuid {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn get_node(&self) -> &Worknodecore {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn set_node(&mut self, node: Worknodecore) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/worknode/ai_node.rs:143:12
[INFO] [stdout]     |
[INFO] [stdout]  76 | impl AINode {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 143 |     pub fn get_role(&self) -> &Option<String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     pub fn history(mut self, history: Vec<Chat>) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn set_history(&mut self, history: Vec<Chat>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn get_history(&self) -> &Vec<Chat> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn push_history(&mut self, chat: Chat) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn prompt_prefix(mut self, prompt_prefix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn set_prompt_prefix(&mut self, prompt_prefix: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 |     pub fn get_prompt_prefix(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn prompt_suffix(mut self, prompt_suffix: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn set_prompt_suffix(&mut self, prompt_suffix: String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn get_prompt_suffix(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 195 |     pub fn set_input(&mut self, input: String) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn get_input(&self) -> &String {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn get_service(&self) -> &AIService {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 207 |     pub fn set_service(&mut self, service: AIService) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `DeepseekReasoner` is never constructed
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub enum DeepSeekModel {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] 32 |     DeepseekChat,
[INFO] [stdout] 33 |     DeepseekReasoner,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeepSeekModel` 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 `url` is never read
[INFO] [stdout]   --> src/worknode/ai_node/deepseek.rs:83:5
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub struct DeepSeekClient {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 82 |     /// The url of the DeepSeek API.
[INFO] [stdout] 83 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeepSeekClient` 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/worknode/ai_node/deepseek.rs:329:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl DeepSeekClient {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 329 |     pub fn get_url(&self) -> &str {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn set_url(&mut self, url: String) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 357 |     pub fn get_api_key(&self) -> Option<&str> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 360 |     pub fn set_api_key(&mut self, api_key: Option<String>) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 363 |     pub fn get_model(&self) -> &DeepSeekModel {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn set_model(&mut self, model: DeepSeekModel) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |     pub fn get_frequency_panalty(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     pub fn set_frequency_panalty(&mut self, frequency_panalty: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 394 |     pub fn get_max_tokens(&self) -> Option<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn set_max_tokens(&mut self, max_tokens: Option<i32>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 415 |     pub fn get_presence_penalty(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn set_presence_penalty(&mut self, presence_penalty: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 436 |     pub fn get_response_format(&self) -> Option<ResponseFormat> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 439 |     pub fn set_response_format(&mut self, response_format: Option<ResponseFormat>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 449 |     pub fn get_stream(&self) -> Option<bool> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 452 |     pub fn set_stream(&mut self, stream: Option<bool>) {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 462 |     pub fn get_stream_option(&self) -> Option<StreamOption> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 465 |     pub fn set_stream_option(&mut self, stream_option: Option<StreamOption>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 479 |     pub fn get_temperature(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn set_temperature(&mut self, temperature: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 500 |     pub fn get_top_p(&self) -> Option<f64> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 503 |     pub fn set_top_p(&mut self, top_p: Option<f64>) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 521 |     pub fn get_logprobs(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 524 |     pub fn set_logprobs(&mut self, logprobs: bool) {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 531 |     pub fn get_top_logprobs(&self) -> Option<i32> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 534 |     pub fn set_top_logprobs(&mut self, top_logprobs: Option<i32>) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the `client:` in this pattern is redundant
[INFO] [stdout]    --> src/worknode/ai_node/deepseek.rs:546:42
[INFO] [stdout]     |
[INFO] [stdout] 546 |             super::AIService::DeepSeek { client: client } => client,
[INFO] [stdout]     |                                          ^^^^^^^^^^^^^^ help: use shorthand field pattern: `client`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_shorthand_field_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.86s
[INFO] running `Command { std: "docker" "inspect" "0bbad56cd25eee7e650b0dfac74092632c37db798147537dd58707ccf7554cc7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0bbad56cd25eee7e650b0dfac74092632c37db798147537dd58707ccf7554cc7", kill_on_drop: false }`
[INFO] [stdout] 0bbad56cd25eee7e650b0dfac74092632c37db798147537dd58707ccf7554cc7
