[INFO] fetching crate nexus-tui-client 0.1.0...
[INFO] building nexus-tui-client-0.1.0 against try#58b1b3c5342a414c161338871f8004258ccef2a7 for pr-149937
[INFO] extracting crate nexus-tui-client 0.1.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate nexus-tui-client 0.1.0
[INFO] finished tweaking crates.io crate nexus-tui-client 0.1.0
[INFO] tweaked toml for crates.io crate nexus-tui-client 0.1.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nexus-tui-client 0.1.0 on toolchain 58b1b3c5342a414c161338871f8004258ccef2a7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nexus-tui-client 0.1.0 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" "+58b1b3c5342a414c161338871f8004258ccef2a7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 05324a6ada15bd41b7a6109fe9b9d4d95df504cbd807ffa7978249b8cb5599fb
[INFO] running `Command { std: "docker" "start" "-a" "05324a6ada15bd41b7a6109fe9b9d4d95df504cbd807ffa7978249b8cb5599fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "05324a6ada15bd41b7a6109fe9b9d4d95df504cbd807ffa7978249b8cb5599fb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "05324a6ada15bd41b7a6109fe9b9d4d95df504cbd807ffa7978249b8cb5599fb", kill_on_drop: false }`
[INFO] [stdout] 05324a6ada15bd41b7a6109fe9b9d4d95df504cbd807ffa7978249b8cb5599fb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f18a0bc7b3c92a20eb9d29e225a6bca6cd9c3d6a64720d0b6f5c0992a1d1263a
[INFO] running `Command { std: "docker" "start" "-a" "f18a0bc7b3c92a20eb9d29e225a6bca6cd9c3d6a64720d0b6f5c0992a1d1263a", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling log v0.4.27
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling winnow v0.7.11
[INFO] [stderr]    Compiling static_assertions v1.1.0
[INFO] [stderr]    Compiling memchr v2.7.5
[INFO] [stderr]    Compiling parking v2.2.1
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling futures-io v0.3.31
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling hashbrown v0.15.4
[INFO] [stderr]    Compiling signal-hook-registry v1.4.5
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling event-listener v5.4.0
[INFO] [stderr]    Compiling mio v1.0.4
[INFO] [stderr]    Compiling zeroize v1.8.1
[INFO] [stderr]    Compiling slab v0.4.10
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]    Compiling tracing-core v0.1.34
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling parking_lot v0.12.4
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling bytemuck v1.23.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling futures-lite v2.6.0
[INFO] [stderr]    Compiling indexmap v2.9.0
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling endi v1.1.0
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling ident_case v1.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling built v0.7.7
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling async-lock v3.4.0
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]    Compiling rav1e v0.7.1
[INFO] [stderr]    Compiling cfg_aliases v0.2.1
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling aws-lc-rs v1.13.1
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling symphonia-core v0.5.4
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling simd_helpers v0.1.0
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling castaway v0.2.3
[INFO] [stderr]    Compiling async-channel v2.3.1
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling encoding_rs v0.8.35
[INFO] [stderr]    Compiling weezl v0.1.10
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]    Compiling imgref v1.11.0
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling noop_proc_macro v0.3.0
[INFO] [stderr]    Compiling bitstream-io v2.6.0
[INFO] [stderr]    Compiling time v0.3.41
[INFO] [stderr]    Compiling loop9 v0.1.5
[INFO] [stderr]    Compiling piper v0.2.4
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling symphonia-metadata v0.5.4
[INFO] [stderr]    Compiling aws-lc-sys v0.29.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling maybe-rayon v0.1.1
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling futures-channel v0.3.31
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling zune-inflate v0.2.54
[INFO] [stderr]    Compiling avif-serialize v0.8.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling rustls v0.22.4
[INFO] [stderr]    Compiling lebe v0.5.2
[INFO] [stderr]    Compiling bit_field v0.10.2
[INFO] [stderr]    Compiling rgb v0.8.50
[INFO] [stderr]    Compiling iana-time-zone v0.1.63
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling proc-macro-crate v3.3.0
[INFO] [stderr]    Compiling jpeg-decoder v0.3.2
[INFO] [stderr]    Compiling zune-core v0.4.12
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling zune-jpeg v0.4.18
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling exr v1.73.0
[INFO] [stderr]    Compiling gif v0.13.3
[INFO] [stderr]    Compiling image-webp v0.2.3
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]    Compiling tiff v0.9.1
[INFO] [stderr]    Compiling blocking v1.6.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling async-executor v1.13.2
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling qoi v0.4.1
[INFO] [stderr]    Compiling ordered-stream v0.2.0
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling rustls v0.23.28
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling symphonia v0.5.4
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling phf v0.11.3
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling equator-macro v0.4.2
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling profiling-procmacros v1.0.17
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling equator v0.4.2
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling arg_enum_proc_macro v0.3.4
[INFO] [stderr]    Compiling profiling v1.0.17
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling aligned-vec v0.6.4
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling v_frame v0.3.9
[INFO] [stderr]    Compiling async-trait v0.1.88
[INFO] [stderr]    Compiling rustls-webpki v0.102.8
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling tokio v1.45.1
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling av1-grain v0.2.4
[INFO] [stderr]    Compiling icy_sixel v0.1.3
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling polling v3.8.0
[INFO] [stderr]    Compiling rustls-native-certs v0.7.3
[INFO] [stderr]    Compiling async-io v2.4.1
[INFO] [stderr]    Compiling rodio v0.17.3
[INFO] [stderr]    Compiling emojis v0.6.4
[INFO] [stderr]    Compiling async-signal v0.2.11
[INFO] [stderr]    Compiling async-process v2.3.1
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling figlet-rs v0.1.5
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling zvariant_utils v3.2.0
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling uuid v1.17.0
[INFO] [stderr]    Compiling tokio-rustls v0.25.0
[INFO] [stderr]    Compiling tokio-util v0.7.15
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling bincode v1.3.3
[INFO] [stderr]    Compiling chrono-humanize v0.2.3
[INFO] [stderr]    Compiling zvariant_derive v5.5.3
[INFO] [stderr]    Compiling ravif v0.11.20
[INFO] [stderr]    Compiling zvariant v5.5.3
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling nexus-tui-common v0.1.0
[INFO] [stderr]    Compiling image v0.25.6
[INFO] [stderr]    Compiling zbus_names v4.2.0
[INFO] [stderr]    Compiling zbus_macros v5.7.1
[INFO] [stderr]    Compiling zbus v5.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.103.3
[INFO] [stderr]    Compiling ratatui-image v8.0.1
[INFO] [stderr]    Compiling notify-rust v4.11.7
[INFO] [stderr]    Compiling nexus-tui-client v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ListItem` and `List`
[INFO] [stdout]  --> src/ui/main_menu.rs:3:130
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...nment}, style::{Style, Color, Modifier}, widgets::{Block, List, ListItem, Borders, Paragraph, BorderType}, text::{Line, Span}};
[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: `ListItem` and `List`
[INFO] [stdout]  --> src/ui/settings.rs:3:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ratatui::{Frame, layout::Rect, style::{Style, Color, Modifier}, widgets::{Block, List, ListItem, Paragraph, Borders, BorderType, ...
[INFO] [stdout]   |                                                                                      ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::Paragraph`
[INFO] [stdout]  --> src/ui/themes/minimal.rs:1:59
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{Frame, layout::Rect, style::{Style, Color}, widgets::Paragraph};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color`, `Style`, and `widgets::Paragraph`
[INFO] [stdout]  --> src/ui/backgrounds/none.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{Frame, layout::Rect, style::{Style, Color}, widgets::Paragraph};
[INFO] [stdout]   |                                            ^^^^^  ^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tokio_rustls::rustls::{self, ClientConfig as RustlsClientConfig, RootCertStore};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rustls::rustls::client::danger::ServerCertVerifier`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use tokio_rustls::rustls::client::danger::ServerCertVerifier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]    --> src/app.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         use chrono::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/services/image.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use base64::{Engine as _, engine::general_purpose::STANDARD as BASE64};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::themes::Theme`
[INFO] [stdout]  --> src/ui/settings.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ui::themes::Theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/app.rs:590:48
[INFO] [stdout]     |
[INFO] [stdout] 590 |     fn handle_legacy_server_message(&mut self, msg: ServerMessage) {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[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/app.rs:910:25
[INFO] [stdout]     |
[INFO] [stdout] 910 |                     Err(e) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_buffer`
[INFO] [stdout]   --> src/services/chat.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         current_buffer: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_padding`
[INFO] [stdout]    --> src/services/image.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let text_padding = 20; // Move text higher up
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_padding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/settings.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let tick = app.ui.tick_count;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple patterns overlap on their endpoints
[INFO] [stdout]   --> src/ui/themes/cyberpunk.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                     23..=25 => '◁',
[INFO] [stdout]    |                     ------- this range overlaps on `25_u64`...
[INFO] [stdout] 71 |                     25..=28 => '◀',
[INFO] [stdout]    |                     ^^^^^^^ ... with this range
[INFO] [stdout]    |
[INFO] [stdout]    = note: you likely meant to write mutually exclusive ranges
[INFO] [stdout]    = note: `#[warn(overlapping_range_endpoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/themes/minimal.rs:48:105
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...atatui::widgets::ListState, tick: u64, area: ratatui::layout::Rect) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/themes/minimal.rs:73:113
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...atatui::widgets::ListState, tick: u64, area: ratatui::layout::Rect) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/ui/themes/minimal.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn main_menu_layout(&self, area: Rect) -> ThemeMainMenuLayout {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_tilt`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let camera_tilt = 0.0; // No tilt
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_tilt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pz`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:43:38
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 if let Some((px, py, pz)) = prev {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_pz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pz`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:63:38
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 if let Some((px, py, pz)) = prev {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_pz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:57
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/desktop_notifications.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let handle = notification.show()?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_port`
[INFO] [stdout]   --> src/main.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let server_port = parts.get(1).cloned().unwrap_or_else(|| "8080".to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RetryConnection` is never constructed
[INFO] [stdout]   --> src/main.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | enum AppEvent {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     RetryConnection, // New event for connection retry
[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 `image_cache` and `config` are never read
[INFO] [stdout]   --> src/app.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct App<'a> {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub image_cache: Arc<ImageCache>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub config: AppConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cache_stats`, `cleanup_cache`, and `clear_cache` are never used
[INFO] [stdout]    --> src/app.rs:598:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl<'a> App<'a> {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub fn get_cache_stats(&self) -> Option<ImageCacheStats> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 603 |     pub fn cleanup_cache(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn clear_cache(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `calculate_optimal_buffer_size`, `process_user_avatar`, `batch_process_avatars`, and `get_cache_stats` are never used
[INFO] [stdout]    --> src/services/chat.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl ChatService {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn calculate_optimal_buffer_size(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn process_user_avatar(&self, user: &User) -> Option<CachedImage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn batch_process_avatars(&self, users: &[User]) -> Vec<(uuid::Uuid, Option<CachedImage>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_cache_stats(&self) -> Option<ImageCacheStats> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `is_command` and `format_mention` are never used
[INFO] [stdout]   --> src/services/message.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl MessageService {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn is_command(content: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn format_mention(username: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `default_ttl_seconds` and `cleanup_interval_seconds` are never read
[INFO] [stdout]    --> src/services/image.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 397 | pub struct ImageCacheConfig {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub default_ttl_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 401 |     pub cleanup_interval_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageCacheConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `format`, and `access_count` are never read
[INFO] [stdout]    --> src/services/image.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub struct CachedImage {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 418 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 419 |     pub format: ImageFormat,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub access_count: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CachedImage` 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: associated function `detect_from_data` is never used
[INFO] [stdout]    --> src/services/image.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 436 | impl ImageFormat {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 437 |     /// Detect format from data or mime type
[INFO] [stdout] 438 |     pub fn detect_from_data(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `touch` is never used
[INFO] [stdout]    --> src/services/image.rs:505:12
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl CachedImage {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn touch(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UserCoverBanner`, `ServerIcon`, `ServerBanner`, and `Custom` are never constructed
[INFO] [stdout]    --> src/services/image.rs:518:5
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub enum ImageCacheKey {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 517 |     UserAvatar(Uuid),
[INFO] [stdout] 518 |     UserCoverBanner(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 519 |     ServerIcon(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 520 |     ServerBanner(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 521 |     Custom(String),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageCacheKey` 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: associated functions `user_cover_banner`, `server_icon`, `server_banner`, and `custom` are never used
[INFO] [stdout]    --> src/services/image.rs:529:12
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl ImageCacheKey {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn user_cover_banner(user_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub fn server_icon(server_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn server_banner(server_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn custom(key: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `remove`, `clear`, and `stats` are never used
[INFO] [stdout]    --> src/services/image.rs:593:12
[INFO] [stdout]     |
[INFO] [stdout] 553 | impl ImageCache {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 593 |     pub fn get(&self, key: &ImageCacheKey) -> Result<Option<CachedImage>, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub fn remove(&self, key: &ImageCacheKey) -> Result<Option<CachedImage>, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     pub fn clear(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 654 |     pub fn stats(&self) -> Result<ImageCacheStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageCacheStats` is never constructed
[INFO] [stdout]    --> src/services/image.rs:729:12
[INFO] [stdout]     |
[INFO] [stdout] 729 | pub struct ImageCacheStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scroll_lines_per_page`, `notification_timeout_ms`, `min_two_column_width`, and `avatar_pixel_size` are never read
[INFO] [stdout]   --> src/state/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppConfig {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 18 |     pub max_message_length: usize,
[INFO] [stdout] 19 |     pub scroll_lines_per_page: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub notification_timeout_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub min_two_column_width: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub avatar_pixel_size: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Network` and `IO` are never constructed
[INFO] [stdout]   --> src/state/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 40 |     Network(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     Validation(String),
[INFO] [stdout] 42 |     IO(std::io::Error),
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show_thread_navigation` and `thread_nav_selection` are never read
[INFO] [stdout]   --> src/state/forum.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ForumState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub show_thread_navigation: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub thread_nav_selection: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toggle_thread_navigation`, `get_thread_navigation_items`, `move_thread_nav_selection`, and `jump_to_selected_nav_item` are never used
[INFO] [stdout]    --> src/state/forum.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl ForumState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn toggle_thread_navigation(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn move_thread_nav_selection(&mut self, direction: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn jump_to_selected_nav_item(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ThreadNavItem` is never used
[INFO] [stdout]    --> src/state/forum.rs:314:10
[INFO] [stdout]     |
[INFO] [stdout] 314 | pub enum ThreadNavItem<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `profile_image_state` is never read
[INFO] [stdout]   --> src/state/profile.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ProfileState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub profile_image_state: Option<StatefulProtocol>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connected_users` is never read
[INFO] [stdout]   --> src/state/ui.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct UiState {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub connected_users: Vec<nexus_tui_common::User>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_background` is never used
[INFO] [stdout]   --> src/ui/settings.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn draw_settings_background(f: &mut Frame, app: &mut App, area: Rect) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_border` is never used
[INFO] [stdout]   --> src/ui/settings.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn draw_settings_border(f: &mut Frame, app: &mut App, area: Rect, is_top: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_info_panel` is never used
[INFO] [stdout]    --> src/ui/settings.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn draw_settings_info_panel(f: &mut Frame, app: &mut App, area: Rect) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThemeColors` is never constructed
[INFO] [stdout]   --> src/ui/themes/mod.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ThemeColors {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccentColors` is never constructed
[INFO] [stdout]   --> src/ui/themes/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AccentColors {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `colors`, `accents`, `border_color`, `selected_style`, and `text_style` are never used
[INFO] [stdout]   --> src/ui/themes/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Theme {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn colors(&self) -> ThemeColors;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 40 |     /// Accent colors
[INFO] [stdout] 41 |     fn accents(&self) -> AccentColors;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 42 |     /// Border style for blocks
[INFO] [stdout] 43 |     fn border_color(&self, tick: u64) -> Color;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 44 |     /// Style for selected items
[INFO] [stdout] 45 |     fn selected_style(&self) -> Style;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Style for normal text
[INFO] [stdout] 47 |     fn text_style(&self) -> Style;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `global_prefs_mut` is never used
[INFO] [stdout]   --> src/global_prefs.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn global_prefs_mut() -> std::sync::RwLockWriteGuard<'static, GlobalPrefs> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/state/forum.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem> {
[INFO] [stdout]     |                                        ^^^^^         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 38s
[INFO] running `Command { std: "docker" "inspect" "f18a0bc7b3c92a20eb9d29e225a6bca6cd9c3d6a64720d0b6f5c0992a1d1263a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f18a0bc7b3c92a20eb9d29e225a6bca6cd9c3d6a64720d0b6f5c0992a1d1263a", kill_on_drop: false }`
[INFO] [stdout] f18a0bc7b3c92a20eb9d29e225a6bca6cd9c3d6a64720d0b6f5c0992a1d1263a
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/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:845e597a41426bbf2703be69acdb67d10b6de511142d05cba7bbe119c898b2c7" "/opt/rustwide/cargo-home/bin/cargo" "+58b1b3c5342a414c161338871f8004258ccef2a7" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f8ea349381f97df12571a22f238bc3b02664e56f5a6c37eb5991cae4b305e9a0
[INFO] running `Command { std: "docker" "start" "-a" "f8ea349381f97df12571a22f238bc3b02664e56f5a6c37eb5991cae4b305e9a0", kill_on_drop: false }`
[INFO] [stderr]    Compiling nexus-tui-client v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ListItem` and `List`
[INFO] [stdout]  --> src/ui/main_menu.rs:3:130
[INFO] [stdout]   |
[INFO] [stdout] 3 | ...nment}, style::{Style, Color, Modifier}, widgets::{Block, List, ListItem, Borders, Paragraph, BorderType}, text::{Line, Span}};
[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: `ListItem` and `List`
[INFO] [stdout]  --> src/ui/settings.rs:3:86
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ratatui::{Frame, layout::Rect, style::{Style, Color, Modifier}, widgets::{Block, List, ListItem, Paragraph, Borders, BorderType, ...
[INFO] [stdout]   |                                                                                      ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::Paragraph`
[INFO] [stdout]  --> src/ui/themes/minimal.rs:1:59
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{Frame, layout::Rect, style::{Style, Color}, widgets::Paragraph};
[INFO] [stdout]   |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Color`, `Style`, and `widgets::Paragraph`
[INFO] [stdout]  --> src/ui/backgrounds/none.rs:1:44
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ratatui::{Frame, layout::Rect, style::{Style, Color}, widgets::Paragraph};
[INFO] [stdout]   |                                            ^^^^^  ^^^^^   ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `self`
[INFO] [stdout]   --> src/main.rs:25:28
[INFO] [stdout]    |
[INFO] [stdout] 25 | use tokio_rustls::rustls::{self, ClientConfig as RustlsClientConfig, RootCertStore};
[INFO] [stdout]    |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `tokio_rustls::rustls::client::danger::ServerCertVerifier`
[INFO] [stdout]   --> src/main.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | use tokio_rustls::rustls::client::danger::ServerCertVerifier;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `chrono::prelude`
[INFO] [stdout]    --> src/app.rs:146:13
[INFO] [stdout]     |
[INFO] [stdout] 146 |         use chrono::prelude::*;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Engine`
[INFO] [stdout]  --> src/services/image.rs:8:14
[INFO] [stdout]   |
[INFO] [stdout] 8 | use base64::{Engine as _, engine::general_purpose::STANDARD as BASE64};
[INFO] [stdout]   |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ui::themes::Theme`
[INFO] [stdout]  --> src/ui/settings.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::ui::themes::Theme;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg`
[INFO] [stdout]    --> src/app.rs:590:48
[INFO] [stdout]     |
[INFO] [stdout] 590 |     fn handle_legacy_server_message(&mut self, msg: ServerMessage) {
[INFO] [stdout]     |                                                ^^^ help: if this is intentional, prefix it with an underscore: `_msg`
[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/app.rs:910:25
[INFO] [stdout]     |
[INFO] [stdout] 910 |                     Err(e) => {
[INFO] [stdout]     |                         ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `current_buffer`
[INFO] [stdout]   --> src/services/chat.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |         current_buffer: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_buffer`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_padding`
[INFO] [stdout]    --> src/services/image.rs:191:13
[INFO] [stdout]     |
[INFO] [stdout] 191 |         let text_padding = 20; // Move text higher up
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_padding`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/settings.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let tick = app.ui.tick_count;
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple patterns overlap on their endpoints
[INFO] [stdout]   --> src/ui/themes/cyberpunk.rs:71:21
[INFO] [stdout]    |
[INFO] [stdout] 70 |                     23..=25 => '◁',
[INFO] [stdout]    |                     ------- this range overlaps on `25_u64`...
[INFO] [stdout] 71 |                     25..=28 => '◀',
[INFO] [stdout]    |                     ^^^^^^^ ... with this range
[INFO] [stdout]    |
[INFO] [stdout]    = note: you likely meant to write mutually exclusive ranges
[INFO] [stdout]    = note: `#[warn(overlapping_range_endpoints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/themes/minimal.rs:48:105
[INFO] [stdout]    |
[INFO] [stdout] 48 | ...atatui::widgets::ListState, tick: u64, area: ratatui::layout::Rect) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tick`
[INFO] [stdout]   --> src/ui/themes/minimal.rs:73:113
[INFO] [stdout]    |
[INFO] [stdout] 73 | ...atatui::widgets::ListState, tick: u64, area: ratatui::layout::Rect) {
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_tick`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]    --> src/ui/themes/minimal.rs:137:32
[INFO] [stdout]     |
[INFO] [stdout] 137 |     fn main_menu_layout(&self, area: Rect) -> ThemeMainMenuLayout {
[INFO] [stdout]     |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera_tilt`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:19:13
[INFO] [stdout]    |
[INFO] [stdout] 19 |         let camera_tilt = 0.0; // No tilt
[INFO] [stdout]    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera_tilt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pz`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:43:38
[INFO] [stdout]    |
[INFO] [stdout] 43 |                 if let Some((px, py, pz)) = prev {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_pz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pz`
[INFO] [stdout]   --> src/ui/backgrounds/wireframeearth.rs:63:38
[INFO] [stdout]    |
[INFO] [stdout] 63 |                 if let Some((px, py, pz)) = prev {
[INFO] [stdout]    |                                      ^^ help: if this is intentional, prefix it with an underscore: `_pz`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:31
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                               ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `app`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:46
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                                              ^^^ help: if this is intentional, prefix it with an underscore: `_app`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `area`
[INFO] [stdout]   --> src/ui/backgrounds/none.rs:12:57
[INFO] [stdout]    |
[INFO] [stdout] 12 |     fn draw_background(&self, f: &mut Frame, app: &App, area: Rect) {
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_area`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `handle`
[INFO] [stdout]    --> src/desktop_notifications.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |         let handle = notification.show()?;
[INFO] [stdout]     |             ^^^^^^ help: if this is intentional, prefix it with an underscore: `_handle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `server_port`
[INFO] [stdout]   --> src/main.rs:91:9
[INFO] [stdout]    |
[INFO] [stdout] 91 |     let server_port = parts.get(1).cloned().unwrap_or_else(|| "8080".to_string());
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_server_port`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `RetryConnection` is never constructed
[INFO] [stdout]   --> src/main.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 56 | enum AppEvent {
[INFO] [stdout]    |      -------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 60 |     RetryConnection, // New event for connection retry
[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 `image_cache` and `config` are never read
[INFO] [stdout]   --> src/app.rs:31:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct App<'a> {
[INFO] [stdout]    |            --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub image_cache: Arc<ImageCache>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub config: AppConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cache_stats`, `cleanup_cache`, and `clear_cache` are never used
[INFO] [stdout]    --> src/app.rs:598:12
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl<'a> App<'a> {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 598 |     pub fn get_cache_stats(&self) -> Option<ImageCacheStats> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 603 |     pub fn cleanup_cache(&mut self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 608 |     pub fn clear_cache(&mut self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `calculate_optimal_buffer_size`, `process_user_avatar`, `batch_process_avatars`, and `get_cache_stats` are never used
[INFO] [stdout]    --> src/services/chat.rs:67:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | impl ChatService {
[INFO] [stdout]     | ---------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  67 |     pub fn calculate_optimal_buffer_size(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  88 |     pub fn process_user_avatar(&self, user: &User) -> Option<CachedImage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 110 |     pub fn batch_process_avatars(&self, users: &[User]) -> Vec<(uuid::Uuid, Option<CachedImage>)> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_cache_stats(&self) -> Option<ImageCacheStats> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `is_command` and `format_mention` are never used
[INFO] [stdout]   --> src/services/message.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout]  6 | impl MessageService {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub fn is_command(content: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 44 |     pub fn format_mention(username: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `default_ttl_seconds` and `cleanup_interval_seconds` are never read
[INFO] [stdout]    --> src/services/image.rs:400:9
[INFO] [stdout]     |
[INFO] [stdout] 397 | pub struct ImageCacheConfig {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 400 |     pub default_ttl_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 401 |     pub cleanup_interval_seconds: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageCacheConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `data`, `format`, and `access_count` are never read
[INFO] [stdout]    --> src/services/image.rs:418:9
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub struct CachedImage {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 418 |     pub data: Vec<u8>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 419 |     pub format: ImageFormat,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     pub access_count: u64,
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CachedImage` 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: associated function `detect_from_data` is never used
[INFO] [stdout]    --> src/services/image.rs:438:12
[INFO] [stdout]     |
[INFO] [stdout] 436 | impl ImageFormat {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 437 |     /// Detect format from data or mime type
[INFO] [stdout] 438 |     pub fn detect_from_data(data: &[u8]) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `touch` is never used
[INFO] [stdout]    --> src/services/image.rs:505:12
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl CachedImage {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 505 |     pub fn touch(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UserCoverBanner`, `ServerIcon`, `ServerBanner`, and `Custom` are never constructed
[INFO] [stdout]    --> src/services/image.rs:518:5
[INFO] [stdout]     |
[INFO] [stdout] 516 | pub enum ImageCacheKey {
[INFO] [stdout]     |          ------------- variants in this enum
[INFO] [stdout] 517 |     UserAvatar(Uuid),
[INFO] [stdout] 518 |     UserCoverBanner(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 519 |     ServerIcon(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 520 |     ServerBanner(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 521 |     Custom(String),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ImageCacheKey` 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: associated functions `user_cover_banner`, `server_icon`, `server_banner`, and `custom` are never used
[INFO] [stdout]    --> src/services/image.rs:529:12
[INFO] [stdout]     |
[INFO] [stdout] 524 | impl ImageCacheKey {
[INFO] [stdout]     | ------------------ associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 529 |     pub fn user_cover_banner(user_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 533 |     pub fn server_icon(server_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 537 |     pub fn server_banner(server_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 541 |     pub fn custom(key: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get`, `remove`, `clear`, and `stats` are never used
[INFO] [stdout]    --> src/services/image.rs:593:12
[INFO] [stdout]     |
[INFO] [stdout] 553 | impl ImageCache {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 593 |     pub fn get(&self, key: &ImageCacheKey) -> Result<Option<CachedImage>, String> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 629 |     pub fn remove(&self, key: &ImageCacheKey) -> Result<Option<CachedImage>, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 643 |     pub fn clear(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 654 |     pub fn stats(&self) -> Result<ImageCacheStats, String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImageCacheStats` is never constructed
[INFO] [stdout]    --> src/services/image.rs:729:12
[INFO] [stdout]     |
[INFO] [stdout] 729 | pub struct ImageCacheStats {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `scroll_lines_per_page`, `notification_timeout_ms`, `min_two_column_width`, and `avatar_pixel_size` are never read
[INFO] [stdout]   --> src/state/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct AppConfig {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 18 |     pub max_message_length: usize,
[INFO] [stdout] 19 |     pub scroll_lines_per_page: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     pub notification_timeout_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub min_two_column_width: u16,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 22 |     pub avatar_pixel_size: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Network` and `IO` are never constructed
[INFO] [stdout]   --> src/state/mod.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub enum AppError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] 40 |     Network(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 41 |     Validation(String),
[INFO] [stdout] 42 |     IO(std::io::Error),
[INFO] [stdout]    |     ^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `show_thread_navigation` and `thread_nav_selection` are never read
[INFO] [stdout]   --> src/state/forum.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub struct ForumState {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub show_thread_navigation: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 23 |     pub thread_nav_selection: Option<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toggle_thread_navigation`, `get_thread_navigation_items`, `move_thread_nav_selection`, and `jump_to_selected_nav_item` are never used
[INFO] [stdout]    --> src/state/forum.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout]  46 | impl ForumState {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 225 |     pub fn toggle_thread_navigation(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn move_thread_nav_selection(&mut self, direction: i32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 283 |     pub fn jump_to_selected_nav_item(&mut self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ThreadNavItem` is never used
[INFO] [stdout]    --> src/state/forum.rs:314:10
[INFO] [stdout]     |
[INFO] [stdout] 314 | pub enum ThreadNavItem<'a> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `profile_image_state` is never read
[INFO] [stdout]   --> src/state/profile.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct ProfileState {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub profile_image_state: Option<StatefulProtocol>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `connected_users` is never read
[INFO] [stdout]   --> src/state/ui.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct UiState {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub connected_users: Vec<nexus_tui_common::User>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_background` is never used
[INFO] [stdout]   --> src/ui/settings.rs:39:4
[INFO] [stdout]    |
[INFO] [stdout] 39 | fn draw_settings_background(f: &mut Frame, app: &mut App, area: Rect) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_border` is never used
[INFO] [stdout]   --> src/ui/settings.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn draw_settings_border(f: &mut Frame, app: &mut App, area: Rect, is_top: bool) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `draw_settings_info_panel` is never used
[INFO] [stdout]    --> src/ui/settings.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn draw_settings_info_panel(f: &mut Frame, app: &mut App, area: Rect) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ThemeColors` is never constructed
[INFO] [stdout]   --> src/ui/themes/mod.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct ThemeColors {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccentColors` is never constructed
[INFO] [stdout]   --> src/ui/themes/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct AccentColors {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `colors`, `accents`, `border_color`, `selected_style`, and `text_style` are never used
[INFO] [stdout]   --> src/ui/themes/mod.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub trait Theme {
[INFO] [stdout]    |           ----- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 39 |     fn colors(&self) -> ThemeColors;
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 40 |     /// Accent colors
[INFO] [stdout] 41 |     fn accents(&self) -> AccentColors;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 42 |     /// Border style for blocks
[INFO] [stdout] 43 |     fn border_color(&self, tick: u64) -> Color;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 44 |     /// Style for selected items
[INFO] [stdout] 45 |     fn selected_style(&self) -> Style;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 46 |     /// Style for normal text
[INFO] [stdout] 47 |     fn text_style(&self) -> Style;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `global_prefs_mut` is never used
[INFO] [stdout]   --> src/global_prefs.rs:64:8
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub fn global_prefs_mut() -> std::sync::RwLockWriteGuard<'static, GlobalPrefs> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/state/forum.rs:242:40
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem> {
[INFO] [stdout]     |                                        ^^^^^         ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 242 |     pub fn get_thread_navigation_items(&self) -> Vec<ThreadNavItem<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.81s
[INFO] running `Command { std: "docker" "inspect" "f8ea349381f97df12571a22f238bc3b02664e56f5a6c37eb5991cae4b305e9a0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f8ea349381f97df12571a22f238bc3b02664e56f5a6c37eb5991cae4b305e9a0", kill_on_drop: false }`
[INFO] [stdout] f8ea349381f97df12571a22f238bc3b02664e56f5a6c37eb5991cae4b305e9a0
