[INFO] cloning repository https://github.com/flowithin/MChat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/flowithin/MChat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 21bb012645c642c43152122d8581be399e1e82e2
[INFO] checking flowithin/MChat against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fflowithin%2FMChat" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/flowithin/MChat
[INFO] finished tweaking git repo https://github.com/flowithin/MChat
[INFO] tweaked toml for git repo https://github.com/flowithin/MChat written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/flowithin/MChat 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/flowithin/MChat 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 crossterm v0.26.1
[INFO] [stderr]   Downloaded ratatui v0.21.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1
[INFO] running `Command { std: "docker" "start" "-a" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1", kill_on_drop: false }`
[INFO] [stdout] 01de659cb2920c980ac64f43d1d045c9ad444679584725ce09052e4853c90aa1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0
[INFO] running `Command { std: "docker" "start" "-a" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.15.0
[INFO] [stderr]    Compiling syn v2.0.101
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]    Compiling convert_case v0.7.1
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking crossterm v0.26.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking cassowary v0.3.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking unicode-segmentation v1.12.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking ratatui v0.21.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.1
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling derive_more-impl v2.0.1
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking derive_more v2.0.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.8.0
[INFO] [stderr]     Checking zerovec v0.11.2
[INFO] [stderr]     Checking zerotrie v0.2.2
[INFO] [stderr]     Checking tinystr v0.8.1
[INFO] [stderr]     Checking potential_utf v0.1.2
[INFO] [stderr]     Checking icu_collections v2.0.0
[INFO] [stderr]     Checking icu_locale_core v2.0.0
[INFO] [stderr]     Checking icu_provider v2.0.0
[INFO] [stderr]     Checking icu_normalizer v2.0.0
[INFO] [stderr]     Checking icu_properties v2.0.1
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking h2 v0.3.26
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]     Checking Server v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: type `worker` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct worker {
[INFO] [stdout]   |        ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ThreadPool {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     workers: Vec<worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 10 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `worker` should have an upper camel case name
[INFO] [stdout]  --> src/lib.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct worker {
[INFO] [stdout]   |        ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Worker`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workers` is never read
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ThreadPool {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     workers: Vec<worker>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `thread` are never read
[INFO] [stdout]   --> src/lib.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | struct worker {
[INFO] [stdout]    |        ------ fields in this struct
[INFO] [stdout] 10 |     id: usize,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 11 |     thread: thread::JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: crate `Server` should have a snake case name
[INFO] [stdout]   |
[INFO] [stdout]   = help: convert the identifier to snake case: `server`
[INFO] [stdout]   = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `channel`
[INFO] [stdout]  --> src/llm.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{channel, Receiver, Sender};
[INFO] [stdout]   |                       ^^^^^^^  ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum message {
[INFO] [stdout]    |      ^^^^^^^ help: convert the identifier to upper camel case: `Message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `unConnected` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     unConnected {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `New_message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     New_message {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/server.rs:275:62
[INFO] [stdout]     |
[INFO] [stdout] 275 |     let token = distr::Alphanumeric.sample_string(&mut rand::thread_rng(), 16);
[INFO] [stdout]     |                                                              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `string`
[INFO] [stdout]  --> src/term.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::{self, stdout, Error, Read, Write},
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 4 |     string,
[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: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition`
[INFO] [stdout]   --> src/term.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::fd::AsRawFd`
[INFO] [stdout]  --> src/rata.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::os::fd::AsRawFd;
[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: `Stdout`, `stdout`, and `thread`
[INFO] [stdout]   --> src/rata.rs:8:16
[INFO] [stdout]    |
[INFO] [stdout]  8 |     io::{self, stdout, Read, Stdout, Write},
[INFO] [stdout]    |                ^^^^^^        ^^^^^^
[INFO] [stdout]  9 |     path::Path,
[INFO] [stdout] 10 |     thread,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBracketedPaste`, `DisableFocusChange`, `EnableBracketedPaste`, `EnableFocusChange`, `MouseEvent`, `WindowSize`, and `poll`
[INFO] [stdout]   --> src/rata.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |         self, poll, read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture,
[INFO] [stdout]    |               ^^^^        ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |         KeyModifiers, MouseEvent,
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         WindowSize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Spans`
[INFO] [stdout]   --> src/rata.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 |     layout::{Alignment, Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |                                                        ^^^^
[INFO] [stdout] 32 |     style::{Color, Modifier, Style},
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `string`
[INFO] [stdout]  --> src/term.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 |     io::{self, stdout, Error, Read, Write},
[INFO] [stdout]   |                        ^^^^^
[INFO] [stdout] 4 |     string,
[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: `DisableBlinking`, `EnableBlinking`, `EnableBracketedPaste`, `EnableFocusChange`, `EnableMouseCapture`, `RestorePosition`, and `SavePosition`
[INFO] [stdout]   --> src/term.rs:11:14
[INFO] [stdout]    |
[INFO] [stdout] 11 |     cursor::{DisableBlinking, EnableBlinking, MoveTo, RestorePosition, SavePosition},
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead
[INFO] [stdout]   --> src/rata.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::os::fd::AsRawFd`
[INFO] [stdout]  --> src/rata.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::os::fd::AsRawFd;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated tuple struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead
[INFO] [stdout]   --> src/rata.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/term.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout]  76 | /     loop {
[INFO] [stdout]  77 | |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout]  78 | |         // `read()` blocks until an `Event` is available
[INFO] [stdout]  79 | |         while poll(Duration::from_millis(0))? {
[INFO] [stdout] ...   |
[INFO] [stdout] 130 | |         sleep(Duration::from_millis(33));
[INFO] [stdout] 131 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 132 | /     execute!(
[INFO] [stdout] 133 | |         std::io::stdout(),
[INFO] [stdout] 134 | |         DisableBracketedPaste,
[INFO] [stdout] 135 | |         DisableFocusChange,
[INFO] [stdout] 136 | |         DisableMouseCapture
[INFO] [stdout] 137 | |     )?;
[INFO] [stdout]     | |_______^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Stdout`, `stdout`, and `thread`
[INFO] [stdout]   --> src/rata.rs:8:16
[INFO] [stdout]    |
[INFO] [stdout]  8 |     io::{self, stdout, Read, Stdout, Write},
[INFO] [stdout]    |                ^^^^^^        ^^^^^^
[INFO] [stdout]  9 |     path::Path,
[INFO] [stdout] 10 |     thread,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DisableBracketedPaste`, `DisableFocusChange`, `EnableBracketedPaste`, `EnableFocusChange`, `MouseEvent`, `WindowSize`, and `poll`
[INFO] [stdout]   --> src/rata.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |         self, poll, read, DisableBracketedPaste, DisableFocusChange, DisableMouseCapture,
[INFO] [stdout]    |               ^^^^        ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |         EnableBracketedPaste, EnableFocusChange, EnableMouseCapture, Event, KeyCode, KeyEvent,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |         KeyModifiers, MouseEvent,
[INFO] [stdout]    |                       ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 26 |         WindowSize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Rect` and `Spans`
[INFO] [stdout]   --> src/rata.rs:31:56
[INFO] [stdout]    |
[INFO] [stdout] 31 |     layout::{Alignment, Constraint, Direction, Layout, Rect},
[INFO] [stdout]    |                                                        ^^^^
[INFO] [stdout] 32 |     style::{Color, Modifier, Style},
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/term.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout]  76 | /     loop {
[INFO] [stdout]  77 | |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout]  78 | |         // `read()` blocks until an `Event` is available
[INFO] [stdout]  79 | |         while poll(Duration::from_millis(0))? {
[INFO] [stdout] ...   |
[INFO] [stdout] 130 | |         sleep(Duration::from_millis(33));
[INFO] [stdout] 131 | |     }
[INFO] [stdout]     | |_____- any code following this expression is unreachable
[INFO] [stdout] 132 | /     execute!(
[INFO] [stdout] 133 | |         std::io::stdout(),
[INFO] [stdout] 134 | |         DisableBracketedPaste,
[INFO] [stdout] 135 | |         DisableFocusChange,
[INFO] [stdout] 136 | |         DisableMouseCapture
[INFO] [stdout] 137 | |     )?;
[INFO] [stdout]     | |_______^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead
[INFO] [stdout]   --> src/rata.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated tuple struct `ratatui::text::Spans`: Use `ratatui::text::Line` instead
[INFO] [stdout]   --> src/rata.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     text::{Span, Spans},
[INFO] [stdout]    |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/term.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                     kind,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `kind: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/term.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     state,
[INFO] [stdout]    |                     ^^^^^ help: try ignoring the field: `state: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/term.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | /     execute!(
[INFO] [stdout] 133 | |         std::io::stdout(),
[INFO] [stdout] 134 | |         DisableBracketedPaste,
[INFO] [stdout] 135 | |         DisableFocusChange,
[INFO] [stdout] 136 | |         DisableMouseCapture
[INFO] [stdout] 137 | |     )?;
[INFO] [stdout]     | |______^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/term.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Rect {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     w: u16,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | /     io::stdout().write({
[INFO] [stdout] 47 | |         File::open("mchat.logo")?.read(&mut buf)?;
[INFO] [stdout] 48 | |         &buf
[INFO] [stdout] 49 | |     });
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let _ = io::stdout().write({
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     enable_raw_mode();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     print_events();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let _ = print_events();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     disable_raw_mode();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let _ = disable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `kind`
[INFO] [stdout]   --> src/term.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |                     kind,
[INFO] [stdout]    |                     ^^^^ help: try ignoring the field: `kind: _`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]   --> src/term.rs:87:21
[INFO] [stdout]    |
[INFO] [stdout] 87 |                     state,
[INFO] [stdout]    |                     ^^^^^ help: try ignoring the field: `state: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/term.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | /     execute!(
[INFO] [stdout] 133 | |         std::io::stdout(),
[INFO] [stdout] 134 | |         DisableBracketedPaste,
[INFO] [stdout] 135 | |         DisableFocusChange,
[INFO] [stdout] 136 | |         DisableMouseCapture
[INFO] [stdout] 137 | |     )?;
[INFO] [stdout]     | |______^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `w` is never read
[INFO] [stdout]   --> src/term.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Rect {
[INFO] [stdout]    |        ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 25 |     w: u16,
[INFO] [stdout]    |     ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 | /     io::stdout().write({
[INFO] [stdout] 47 | |         File::open("mchat.logo")?.read(&mut buf)?;
[INFO] [stdout] 48 | |         &buf
[INFO] [stdout] 49 | |     });
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let _ = io::stdout().write({
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 |     enable_raw_mode();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 53 |     let _ = enable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:66:5
[INFO] [stdout]    |
[INFO] [stdout] 66 |     print_events();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let _ = print_events();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 67 |     let _ = io::stdout().execute(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/term.rs:69:5
[INFO] [stdout]    |
[INFO] [stdout] 69 |     disable_raw_mode();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 69 |     let _ = disable_raw_mode();
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let _ = io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let _ = stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let _ = stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         stdout().queue(MoveTo(0, 0));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let _ = stdout().queue(MoveTo(0, 0));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Receiver` and `channel`
[INFO] [stdout]  --> src/llm.rs:4:23
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::mpsc::{channel, Receiver, Sender};
[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 `Result` that must be used
[INFO] [stdout]    --> src/term.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stdout().queue(Print(prompt.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = stdout().queue(Print(prompt.clone()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum message {
[INFO] [stdout]    |      ^^^^^^^ help: convert the identifier to upper camel case: `Message`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `unConnected` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:38:5
[INFO] [stdout]    |
[INFO] [stdout] 38 |     unConnected {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `UnConnected`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |         stdout().flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let _ = stdout().flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `New_message` should have an upper camel case name
[INFO] [stdout]   --> src/server.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     New_message {
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `NewMessage`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/server.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{self, distr, prelude::*};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:112:9
[INFO] [stdout]     |
[INFO] [stdout] 112 |         io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 112 |         let _ = io::stdout().queue(Clear(crossterm::terminal::ClearType::All));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |         stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let _ = stdout().queue(MoveTo(0, ws.rows - 2));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:115:9
[INFO] [stdout]     |
[INFO] [stdout] 115 |         stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 115 |         let _ = stdout().queue(Print("═".repeat((ws.columns) as usize)));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:117:9
[INFO] [stdout]     |
[INFO] [stdout] 117 |         stdout().queue(MoveTo(0, 0));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |         let _ = stdout().queue(MoveTo(0, 0));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |         stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 126 |         let _ = stdout().queue(MoveTo(0, ws.rows - 1));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |         stdout().queue(Print(prompt.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 127 |         let _ = stdout().queue(Print(prompt.clone()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/term.rs:129:9
[INFO] [stdout]     |
[INFO] [stdout] 129 |         stdout().flush();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let _ = stdout().flush();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws`
[INFO] [stdout]    --> src/rata.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ws`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/server.rs:275:62
[INFO] [stdout]     |
[INFO] [stdout] 275 |     let token = distr::Alphanumeric.sample_string(&mut rand::thread_rng(), 16);
[INFO] [stdout]     |                                                              ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/rata.rs:182:17
[INFO] [stdout]     |
[INFO] [stdout] 182 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rata.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |                         stream.write(prompt.as_bytes());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |                         let _ = stream.write(prompt.as_bytes());
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rata.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 | /     fs::write(
[INFO] [stdout] 230 | |         "mchat.log",
[INFO] [stdout] 231 | |         app.chat.iter().fold(fin, |mut fin, str| {
[INFO] [stdout] 232 | |             fin.push_str(&("user:".to_owned() + str + "\n"));
[INFO] [stdout] 233 | |             fin
[INFO] [stdout] 234 | |         }),
[INFO] [stdout] 235 | |     );
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let _ = fs::write(
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ws`
[INFO] [stdout]    --> src/rata.rs:168:13
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let ws: terminal::WindowSize = window_size().unwrap();
[INFO] [stdout]     |             ^^ help: if this is intentional, prefix it with an underscore: `_ws`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/rata.rs:182:17
[INFO] [stdout]     |
[INFO] [stdout] 182 |             Err(e) => {
[INFO] [stdout]     |                 ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rata.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |                         stream.write(prompt.as_bytes());
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |                         let _ = stream.write(prompt.as_bytes());
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/rata.rs:229:5
[INFO] [stdout]     |
[INFO] [stdout] 229 | /     fs::write(
[INFO] [stdout] 230 | |         "mchat.log",
[INFO] [stdout] 231 | |         app.chat.iter().fold(fin, |mut fin, str| {
[INFO] [stdout] 232 | |             fin.push_str(&("user:".to_owned() + str + "\n"));
[INFO] [stdout] 233 | |             fin
[INFO] [stdout] 234 | |         }),
[INFO] [stdout] 235 | |     );
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 229 |     let _ = fs::write(
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prelude`
[INFO] [stdout]  --> src/server.rs:3:25
[INFO] [stdout]   |
[INFO] [stdout] 3 | use rand::{self, distr, prelude::*};
[INFO] [stdout]   |                         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_json`
[INFO] [stdout]    --> src/llm.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let response_json = serde_json::to_string_pretty(&completion_response)?; // <-- This line should now work
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_json`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut tmp = [0; 64];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut buf_c = [0; 1];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]   --> src/server.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut tmp = [0; 64];
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_c`
[INFO] [stdout]    --> src/server.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut buf_c = [0; 1];
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `llm`
[INFO] [stdout]    --> src/server.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let llm = Llm::new(
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_llm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/server.rs:259:40
[INFO] [stdout]     |
[INFO] [stdout] 259 |             message::unConnected { ip, stream } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `stream: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut rng = rand::rng();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/server.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut rng = rand::rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensitive` is never constructed
[INFO] [stdout]   --> src/server.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Sensitive<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` is never used
[INFO] [stdout]   --> src/server.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/server.rs:60:18
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct AuthError(String);
[INFO] [stdout]    |        --------- ^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_to` is never used
[INFO] [stdout]   --> src/server.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn read_to(stream: Arc<TcpStream>, c: u8, buf: &mut [u8]) -> Result<(), usize> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_connection` is never used
[INFO] [stdout]    --> src/server.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn handle_connection(mut stream: TcpStream) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model`, `api`, and `url` are never read
[INFO] [stdout]   --> src/llm.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Llm {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout]  8 |     model: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]  9 |     api: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` should have an upper case name
[INFO] [stdout]   --> src/server.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 21 - const ChildMode: bool = true;
[INFO] [stdout] 21 + const CHILD_MODE: bool = true;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `tryc` should have an upper case name
[INFO] [stdout]   --> src/server.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const tryc: i32 = 3;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 22 - const tryc: i32 = 3;
[INFO] [stdout] 22 + const TRYC: i32 = 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |         stream.as_ref().read(&mut rtoken);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let _ = stream.as_ref().read(&mut rtoken);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `response_json`
[INFO] [stdout]    --> src/llm.rs:114:13
[INFO] [stdout]     |
[INFO] [stdout] 114 |         let response_json = serde_json::to_string_pretty(&completion_response)?; // <-- This line should now work
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_response_json`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:91:17
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 stream.as_ref().write("incorrect\n".as_bytes());
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 let _ = stream.as_ref().write("incorrect\n".as_bytes());
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |             stream.shutdown(Shutdown::Both);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |             let _ = stream.shutdown(Shutdown::Both);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             messages
[INFO] [stdout] 125 | |                 .send(message::New_message {
[INFO] [stdout] 126 | |                     ip,
[INFO] [stdout] 127 | |                     str: String::from_utf8(buffer[0..n].to_vec()).unwrap(),
[INFO] [stdout] ...   |
[INFO] [stdout] 130 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 131 | |                 });
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |             let _ = messages
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 | /             messages
[INFO] [stdout] 134 | |                 .send(message::unConnected {
[INFO] [stdout] 135 | |                     ip,
[INFO] [stdout] 136 | |                     stream: stream.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 140 | |                 });
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let _ = messages
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Server` should have a snake case name
[INFO] [stdout]    --> src/server.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn Server(messages: Receiver<message>) -> () {
[INFO] [stdout]     |    ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let BAN_LIMIT: Duration = Duration::from_secs_f32(10.0 * 60.0);
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `ban_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RATE_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let RATE_LIMIT: Duration = Duration::from_secs_f32(1.0);
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `rate_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `STRIKE_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let STRIKE_LIMIT: u32 = 10;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `strike_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:213:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         let _ = stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:231:29
[INFO] [stdout]     |
[INFO] [stdout] 231 | ...                   stream.as_ref().write(str.as_bytes());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 231 |                             let _ = stream.as_ref().write(str.as_bytes());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/server.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut tmp = [0; 64];
[INFO] [stdout]    |                     ----^^^
[INFO] [stdout]    |                     |
[INFO] [stdout]    |                     help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut buf_c = [0; 1];
[INFO] [stdout]     |             ----^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tmp`
[INFO] [stdout]   --> src/server.rs:93:21
[INFO] [stdout]    |
[INFO] [stdout] 93 |                 let mut tmp = [0; 64];
[INFO] [stdout]    |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tmp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `buf_c`
[INFO] [stdout]    --> src/server.rs:102:13
[INFO] [stdout]     |
[INFO] [stdout] 102 |         let mut buf_c = [0; 1];
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_buf_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `llm`
[INFO] [stdout]    --> src/server.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let llm = Llm::new(
[INFO] [stdout]     |         ^^^ help: if this is intentional, prefix it with an underscore: `_llm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/server.rs:259:40
[INFO] [stdout]     |
[INFO] [stdout] 259 |             message::unConnected { ip, stream } => {
[INFO] [stdout]     |                                        ^^^^^^ help: try ignoring the field: `stream: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/server.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut rng = rand::rng();
[INFO] [stdout]     |         ----^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rng`
[INFO] [stdout]    --> src/server.rs:274:9
[INFO] [stdout]     |
[INFO] [stdout] 274 |     let mut rng = rand::rng();
[INFO] [stdout]     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rng`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Sensitive` is never constructed
[INFO] [stdout]   --> src/server.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct Sensitive<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` is never used
[INFO] [stdout]   --> src/server.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/server.rs:60:18
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct AuthError(String);
[INFO] [stdout]    |        --------- ^^^^^^
[INFO] [stdout]    |        |
[INFO] [stdout]    |        field in this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_to` is never used
[INFO] [stdout]   --> src/server.rs:61:4
[INFO] [stdout]    |
[INFO] [stdout] 61 | fn read_to(stream: Arc<TcpStream>, c: u8, buf: &mut [u8]) -> Result<(), usize> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_connection` is never used
[INFO] [stdout]    --> src/server.rs:292:4
[INFO] [stdout]     |
[INFO] [stdout] 292 | fn handle_connection(mut stream: TcpStream) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model`, `api`, and `url` are never read
[INFO] [stdout]   --> src/llm.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  7 | pub struct Llm {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout]  8 |     model: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]  9 |     api: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 10 |     url: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ChildMode` should have an upper case name
[INFO] [stdout]   --> src/server.rs:21:7
[INFO] [stdout]    |
[INFO] [stdout] 21 | const ChildMode: bool = true;
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 21 - const ChildMode: bool = true;
[INFO] [stdout] 21 + const CHILD_MODE: bool = true;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `tryc` should have an upper case name
[INFO] [stdout]   --> src/server.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const tryc: i32 = 3;
[INFO] [stdout]    |       ^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]    |
[INFO] [stdout] 22 - const tryc: i32 = 3;
[INFO] [stdout] 22 + const TRYC: i32 = 3;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 83 |         stream.as_ref().read(&mut rtoken);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 83 |         let _ = stream.as_ref().read(&mut rtoken);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:91:17
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 stream.as_ref().write("incorrect\n".as_bytes());
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 91 |                 let _ = stream.as_ref().write("incorrect\n".as_bytes());
[INFO] [stdout]    |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/server.rs:99:13
[INFO] [stdout]    |
[INFO] [stdout] 99 |             stream.shutdown(Shutdown::Both);
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 99 |             let _ = stream.shutdown(Shutdown::Both);
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 | /             messages
[INFO] [stdout] 125 | |                 .send(message::New_message {
[INFO] [stdout] 126 | |                     ip,
[INFO] [stdout] 127 | |                     str: String::from_utf8(buffer[0..n].to_vec()).unwrap(),
[INFO] [stdout] ...   |
[INFO] [stdout] 130 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 131 | |                 });
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |             let _ = messages
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:133:13
[INFO] [stdout]     |
[INFO] [stdout] 133 | /             messages
[INFO] [stdout] 134 | |                 .send(message::unConnected {
[INFO] [stdout] 135 | |                     ip,
[INFO] [stdout] 136 | |                     stream: stream.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 139 | |                     eprintln!("cannot send message ERROR : {err}");
[INFO] [stdout] 140 | |                 });
[INFO] [stdout]     | |__________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 133 |             let _ = messages
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Server` should have a snake case name
[INFO] [stdout]    --> src/server.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn Server(messages: Receiver<message>) -> () {
[INFO] [stdout]     |    ^^^^^^ help: convert the identifier to snake case (notice the capitalization): `server`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `BAN_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:149:9
[INFO] [stdout]     |
[INFO] [stdout] 149 |     let BAN_LIMIT: Duration = Duration::from_secs_f32(10.0 * 60.0);
[INFO] [stdout]     |         ^^^^^^^^^ help: convert the identifier to snake case: `ban_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `RATE_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |     let RATE_LIMIT: Duration = Duration::from_secs_f32(1.0);
[INFO] [stdout]     |         ^^^^^^^^^^ help: convert the identifier to snake case: `rate_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `STRIKE_LIMIT` should have a snake case name
[INFO] [stdout]    --> src/server.rs:151:9
[INFO] [stdout]     |
[INFO] [stdout] 151 |     let STRIKE_LIMIT: u32 = 10;
[INFO] [stdout]     |         ^^^^^^^^^^^^ help: convert the identifier to snake case: `strike_limit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:213:25
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         let _ = stream.as_ref().write(b"you are banned\n\r");
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/server.rs:231:29
[INFO] [stdout]     |
[INFO] [stdout] 231 | ...                   stream.as_ref().write(str.as_bytes());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 231 |                             let _ = stream.as_ref().write(str.as_bytes());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 49.36s
[INFO] running `Command { std: "docker" "inspect" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0", kill_on_drop: false }`
[INFO] [stdout] 409c60a268222a778ea3b1b9a995a2cedb15cc57525a950d2a6836f163e217c0
