[INFO] cloning repository https://github.com/GG-O-BP/chz-talk-assistant
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/GG-O-BP/chz-talk-assistant" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGG-O-BP%2Fchz-talk-assistant", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGG-O-BP%2Fchz-talk-assistant'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] cfd2be4fe9cf6b4b797e58f428260a48cc4ef186
[INFO] checking GG-O-BP/chz-talk-assistant against master#f8463896a9b36a04899c013bd8825a7fd29dd7a4 for pr-151920
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FGG-O-BP%2Fchz-talk-assistant" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/GG-O-BP/chz-talk-assistant
[INFO] finished tweaking git repo https://github.com/GG-O-BP/chz-talk-assistant
[INFO] tweaked toml for git repo https://github.com/GG-O-BP/chz-talk-assistant written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/GG-O-BP/chz-talk-assistant on toolchain f8463896a9b36a04899c013bd8825a7fd29dd7a4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/GG-O-BP/chz-talk-assistant 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" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.107
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.107
[INFO] [stderr]   Downloaded unicode-truncate v2.0.0
[INFO] [stderr]   Downloaded wasm-bindgen-futures v0.4.57
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.107
[INFO] [stderr]   Downloaded coreaudio-rs v0.13.0
[INFO] [stderr]   Downloaded js-sys v0.3.84
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.107
[INFO] [stderr]   Downloaded alsa v0.10.0
[INFO] [stderr]   Downloaded mach2 v0.5.0
[INFO] [stderr]   Downloaded objc2-core-audio v0.3.2
[INFO] [stderr]   Downloaded objc2-avf-audio v0.3.2
[INFO] [stderr]   Downloaded cpal v0.17.1
[INFO] [stderr]   Downloaded objc2-core-audio-types v0.3.2
[INFO] [stderr]   Downloaded objc2-audio-toolbox v0.3.2
[INFO] [stderr]   Downloaded aws-lc-rs v1.15.3
[INFO] [stderr]   Downloaded whisper-rs v0.15.1
[INFO] [stderr]   Downloaded web-sys v0.3.84
[INFO] [stderr]   Downloaded whisper-rs-sys v0.14.1
[INFO] [stderr]   Downloaded aws-lc-sys v0.36.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8b9fdbd39e52d5843e368dac3c440dd2e3b832bd3217e3335bc5f2c64c5d1f30
[INFO] running `Command { std: "docker" "start" "-a" "8b9fdbd39e52d5843e368dac3c440dd2e3b832bd3217e3335bc5f2c64c5d1f30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8b9fdbd39e52d5843e368dac3c440dd2e3b832bd3217e3335bc5f2c64c5d1f30", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8b9fdbd39e52d5843e368dac3c440dd2e3b832bd3217e3335bc5f2c64c5d1f30", kill_on_drop: false }`
[INFO] [stdout] 8b9fdbd39e52d5843e368dac3c440dd2e3b832bd3217e3335bc5f2c64c5d1f30
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:61361fe0aef631f17e9d025a70c5a647956f8c671dd02950a60ad3f5cc5526d7" "/opt/rustwide/cargo-home/bin/cargo" "+f8463896a9b36a04899c013bd8825a7fd29dd7a4" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2a234439ccfd04a78197d02035b576d82fbc5faf89a4fe29a48b60d679958d09
[INFO] running `Command { std: "docker" "start" "-a" "2a234439ccfd04a78197d02035b576d82fbc5faf89a4fe29a48b60d679958d09", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.105
[INFO] [stderr]    Compiling quote v1.0.43
[INFO] [stderr]    Compiling find-msvc-tools v0.1.7
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking socket2 v0.6.1
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling aws-lc-rs v1.15.3
[INFO] [stderr]    Compiling prettyplease v0.2.37
[INFO] [stderr]    Compiling regex-syntax v0.8.8
[INFO] [stderr]    Compiling time-core v0.1.7
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling libloading v0.8.9
[INFO] [stderr]     Checking deranged v0.5.5
[INFO] [stderr]     Checking rustls-pki-types v1.13.2
[INFO] [stderr]    Compiling bindgen v0.71.1
[INFO] [stderr]    Compiling time-macros v0.2.25
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]    Compiling zerocopy v0.8.33
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling bitflags v2.10.0
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling instability v0.3.11
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling zmij v1.0.14
[INFO] [stderr]    Compiling cookie v0.18.1
[INFO] [stderr]     Checking line-clipping v0.3.5
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking openssl-probe v0.2.0
[INFO] [stderr]     Checking psl-types v2.0.11
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking rustls-native-certs v0.8.3
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking alsa-sys v0.3.1
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking winnow v0.7.14
[INFO] [stderr]    Compiling whisper-rs v0.15.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]    Compiling cpal v0.17.1
[INFO] [stderr]     Checking alsa v0.10.0
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking unicode-truncate v2.0.0
[INFO] [stderr]     Checking serde_spanned v1.0.4
[INFO] [stderr]     Checking toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling syn v2.0.114
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]     Checking uuid v1.19.0
[INFO] [stderr]     Checking time v0.3.45
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling cc v1.2.52
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking toml_parser v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling aws-lc-sys v0.36.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking toml v0.9.11+spec-1.1.0
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tokio-macros v2.6.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking tracing-subscriber v0.3.22
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking thiserror v2.0.17
[INFO] [stderr]     Checking kasuari v0.4.11
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]     Checking ratatui-crossterm v0.1.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking ratatui-macros v0.7.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking ratatui v0.30.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tungstenite v0.28.0
[INFO] [stderr]     Checking chrono v0.4.43
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking publicsuffix v2.3.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking tokio-tungstenite v0.28.0
[INFO] [stderr]     Checking h2 v0.4.13
[INFO] [stderr]     Checking cookie_store v0.22.0
[INFO] [stderr]    Compiling whisper-rs-sys v0.14.1
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking rustls-webpki v0.103.8
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking rustls-platform-verifier v0.6.2
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.13.1
[INFO] [stderr]     Checking chz-talk-assistant v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]  --> src/chzzk/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use types::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `types::*`
[INFO] [stdout]  --> src/chzzk/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use types::*;
[INFO] [stdout]   |         ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmConfig`
[INFO] [stdout]   --> src/llm/mod.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::config::{AppConfig, LlmConfig};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LlmConfig`
[INFO] [stdout]   --> src/llm/mod.rs:14:32
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::config::{AppConfig, LlmConfig};
[INFO] [stdout]    |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]  --> src/tui/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use widgets::*;
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `widgets::*`
[INFO] [stdout]  --> src/tui/mod.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use widgets::*;
[INFO] [stdout]   |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_state` is never used
[INFO] [stdout]   --> src/chzzk/client.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl ChzzkChatClient {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub async fn get_state(&self) -> ConnectionState {
[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 `code` and `message` are never read
[INFO] [stdout]  --> src/chzzk/types.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LiveDetailResponse {
[INFO] [stdout]   |            ------------------ fields in this struct
[INFO] [stdout] 8 |     pub code: i32,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 9 |     pub message: Option<String>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LiveDetailResponse` 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 `live_id`, `live_title`, `status`, `live_polling_status_json`, and `channel` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct LiveDetail {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 17 |     pub live_id: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 18 |     pub live_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 19 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub live_polling_status_json: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub chat_channel_id: Option<String>,
[INFO] [stdout] 22 |     pub channel: Option<ChannelInfo>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LiveDetail` 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 `channel_id`, `channel_name`, and `channel_image_url` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ChannelInfo {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 29 |     pub channel_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub channel_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub channel_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChannelInfo` 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 `code` and `message` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct AccessTokenResponse {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 37 |     pub code: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 38 |     pub message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccessTokenResponse` 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 `temporary_restrict` and `real_name_auth` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct AccessTokenContent {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 46 |     pub access_token: String,
[INFO] [stdout] 47 |     pub temporary_restrict: Option<TemporaryRestrict>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub real_name_auth: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccessTokenContent` 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 `temporary_restrict` and `duration` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct TemporaryRestrict {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 55 |     pub temporary_restrict: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub duration: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TemporaryRestrict` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatMessageBody` is never constructed
[INFO] [stdout]   --> src/chzzk/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct ChatMessageBody {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `profile_image_url`, `badge`, `title`, and `verified_mark` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ChatProfile {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 91 |     pub nickname: Option<String>,
[INFO] [stdout] 92 |     pub profile_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 93 |     pub user_id_hash: Option<String>,
[INFO] [stdout] 94 |     pub badge: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 95 |     pub title: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 96 |     pub activity_badges: Option<Vec<serde_json::Value>>,
[INFO] [stdout] 97 |     pub verified_mark: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatProfile` 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 `donation_type` and `weekly_rank` are never read
[INFO] [stdout]    --> src/chzzk/types.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct DonationExtras {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub donation_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 108 |     #[serde(rename = "weeklyRank")]
[INFO] [stdout] 109 |     pub weekly_rank: Option<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DonationExtras` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `timestamp` and `to_xml` are never used
[INFO] [stdout]   --> src/context/mod.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl TimelineEvent {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 21 |     /// 이벤트 타임스탬프 가져오기
[INFO] [stdout] 22 |     pub fn timestamp(&self) -> DateTime<Utc> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn to_xml(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `script_usage` is never read
[INFO] [stdout]   --> src/context/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ContextManager {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     script_usage: Vec<ScriptUsage>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/context/mod.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl ContextManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_recent(&self, count: usize) -> Vec<&TimelineEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_recent_chats(&self, count: usize) -> Vec<&ChatMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn get_recent_utterances(&self, count: usize) -> Vec<&StreamerUtterance> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn record_script_usage(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn calculate_similarity(a: &str, b: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn to_xml_context(&self, max_events: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn analyze_script_usage(&self) -> ScriptUsageAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptUsageAnalysis` is never constructed
[INFO] [stdout]    --> src/context/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct ScriptUsageAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_xml` is never used
[INFO] [stdout]    --> src/context/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl ScriptUsageAnalysis {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 219 |     /// XML 형식으로 변환 (프롬프트용)
[INFO] [stdout] 220 |     pub fn to_xml(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UserInput` and `Quit` are never constructed
[INFO] [stdout]    --> src/event.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum AppEvent {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 169 |     UserInput(UserInputEvent),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 170 |     /// 애플리케이션 종료 요청
[INFO] [stdout] 171 |     Quit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Reconnecting` is never constructed
[INFO] [stdout]    --> src/event.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub enum ConnectionState {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Reconnecting,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionState` 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: variants `ConfigChange`, `RequestScript`, `ApproveScript`, `RejectScript`, `TabChange`, and `Scroll` are never constructed
[INFO] [stdout]    --> src/event.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub enum UserInputEvent {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 196 |     /// 설정 변경 요청
[INFO] [stdout] 197 |     ConfigChange,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 198 |     /// 스크립트 수동 요청
[INFO] [stdout] 199 |     RequestScript,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 200 |     /// 특정 스크립트 승인 (사용했음을 표시)
[INFO] [stdout] 201 |     ApproveScript(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 202 |     /// 특정 스크립트 거부
[INFO] [stdout] 203 |     RejectScript(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 204 |     /// 탭 변경
[INFO] [stdout] 205 |     TabChange(usize),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 206 |     /// 스크롤
[INFO] [stdout] 207 |     Scroll(i32),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserInputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_auto_generation` is never used
[INFO] [stdout]    --> src/llm/mod.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl ScriptEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn start_auto_generation(self: Arc<Self>, interval_secs: u64, min_chats: usize) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model` and `stop_reason` are never read
[INFO] [stdout]   --> src/llm/anthropic.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct MessageResponse {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 41 |     content: Vec<ContentBlock>,
[INFO] [stdout] 42 |     model: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 43 |     stop_reason: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_running` is never used
[INFO] [stdout]   --> src/stt/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl SttManager {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `list_devices` is never used
[INFO] [stdout]   --> src/stt/audio_capture.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AudioCapture {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn list_devices() -> Result<Vec<String>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_model_urls` is never used
[INFO] [stdout]   --> src/stt/whisper_engine.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn get_model_urls() -> Vec<(&'static str, &'static str)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_model` is never used
[INFO] [stdout]   --> src/stt/whisper_engine.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub async fn download_model(model_name: &str, dest_path: &Path) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `script_scroll` is never read
[INFO] [stdout]   --> src/tui/app.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct App {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub script_scroll: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `msgTime` should have a snake case name
[INFO] [stdout]   --> src/chzzk/types.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub msgTime: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^ help: convert the identifier to snake case: `msg_time`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `msgTypeCode` should have a snake case name
[INFO] [stdout]   --> src/chzzk/types.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub msgTypeCode: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `msg_type_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_state` is never used
[INFO] [stdout]   --> src/chzzk/client.rs:46:18
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl ChzzkChatClient {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 46 |     pub async fn get_state(&self) -> ConnectionState {
[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 `code` and `message` are never read
[INFO] [stdout]  --> src/chzzk/types.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct LiveDetailResponse {
[INFO] [stdout]   |            ------------------ fields in this struct
[INFO] [stdout] 8 |     pub code: i32,
[INFO] [stdout]   |         ^^^^
[INFO] [stdout] 9 |     pub message: Option<String>,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LiveDetailResponse` 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 `live_id`, `live_title`, `status`, `live_polling_status_json`, and `channel` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub struct LiveDetail {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 17 |     pub live_id: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 18 |     pub live_title: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 19 |     pub status: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 20 |     pub live_polling_status_json: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 21 |     pub chat_channel_id: Option<String>,
[INFO] [stdout] 22 |     pub channel: Option<ChannelInfo>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `LiveDetail` 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 `channel_id`, `channel_name`, and `channel_image_url` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct ChannelInfo {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 29 |     pub channel_id: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 30 |     pub channel_name: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 31 |     pub channel_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChannelInfo` 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 `code` and `message` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct AccessTokenResponse {
[INFO] [stdout]    |            ------------------- fields in this struct
[INFO] [stdout] 37 |     pub code: i32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 38 |     pub message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccessTokenResponse` 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 `temporary_restrict` and `real_name_auth` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub struct AccessTokenContent {
[INFO] [stdout]    |            ------------------ fields in this struct
[INFO] [stdout] 46 |     pub access_token: String,
[INFO] [stdout] 47 |     pub temporary_restrict: Option<TemporaryRestrict>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 48 |     pub real_name_auth: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AccessTokenContent` 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 `temporary_restrict` and `duration` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:55:9
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub struct TemporaryRestrict {
[INFO] [stdout]    |            ----------------- fields in this struct
[INFO] [stdout] 55 |     pub temporary_restrict: bool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 56 |     pub duration: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TemporaryRestrict` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ChatMessageBody` is never constructed
[INFO] [stdout]   --> src/chzzk/types.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct ChatMessageBody {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `profile_image_url`, `badge`, `title`, and `verified_mark` are never read
[INFO] [stdout]   --> src/chzzk/types.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ChatProfile {
[INFO] [stdout]    |            ----------- fields in this struct
[INFO] [stdout] 91 |     pub nickname: Option<String>,
[INFO] [stdout] 92 |     pub profile_image_url: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 93 |     pub user_id_hash: Option<String>,
[INFO] [stdout] 94 |     pub badge: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 95 |     pub title: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 96 |     pub activity_badges: Option<Vec<serde_json::Value>>,
[INFO] [stdout] 97 |     pub verified_mark: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatProfile` 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 `donation_type` and `weekly_rank` are never read
[INFO] [stdout]    --> src/chzzk/types.rs:107:9
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct DonationExtras {
[INFO] [stdout]     |            -------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub donation_type: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 108 |     #[serde(rename = "weeklyRank")]
[INFO] [stdout] 109 |     pub weekly_rank: Option<i32>,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `DonationExtras` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `timestamp` and `to_xml` are never used
[INFO] [stdout]   --> src/context/mod.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl TimelineEvent {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] 21 |     /// 이벤트 타임스탬프 가져오기
[INFO] [stdout] 22 |     pub fn timestamp(&self) -> DateTime<Utc> {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn to_xml(&self) -> String {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `script_usage` is never read
[INFO] [stdout]   --> src/context/mod.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ContextManager {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 46 |     script_usage: Vec<ScriptUsage>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/context/mod.rs:95:12
[INFO] [stdout]     |
[INFO] [stdout]  64 | impl ContextManager {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn get_recent(&self, count: usize) -> Vec<&TimelineEvent> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     pub fn get_recent_chats(&self, count: usize) -> Vec<&ChatMessage> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     pub fn get_recent_utterances(&self, count: usize) -> Vec<&StreamerUtterance> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     pub fn record_script_usage(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |     fn calculate_similarity(a: &str, b: &str) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     pub fn to_xml_context(&self, max_events: usize) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 |     pub fn analyze_script_usage(&self) -> ScriptUsageAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ScriptUsageAnalysis` is never constructed
[INFO] [stdout]    --> src/context/mod.rs:207:12
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub struct ScriptUsageAnalysis {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_xml` is never used
[INFO] [stdout]    --> src/context/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 218 | impl ScriptUsageAnalysis {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] 219 |     /// XML 형식으로 변환 (프롬프트용)
[INFO] [stdout] 220 |     pub fn to_xml(&self) -> String {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `UserInput` and `Quit` are never constructed
[INFO] [stdout]    --> src/event.rs:169:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum AppEvent {
[INFO] [stdout]     |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 169 |     UserInput(UserInputEvent),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 170 |     /// 애플리케이션 종료 요청
[INFO] [stdout] 171 |     Quit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `AppEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Reconnecting` is never constructed
[INFO] [stdout]    --> src/event.rs:180:5
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub enum ConnectionState {
[INFO] [stdout]     |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 180 |     Reconnecting,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionState` 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: variants `ConfigChange`, `RequestScript`, `ApproveScript`, `RejectScript`, `TabChange`, and `Scroll` are never constructed
[INFO] [stdout]    --> src/event.rs:197:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub enum UserInputEvent {
[INFO] [stdout]     |          -------------- variants in this enum
[INFO] [stdout] 196 |     /// 설정 변경 요청
[INFO] [stdout] 197 |     ConfigChange,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 198 |     /// 스크립트 수동 요청
[INFO] [stdout] 199 |     RequestScript,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 200 |     /// 특정 스크립트 승인 (사용했음을 표시)
[INFO] [stdout] 201 |     ApproveScript(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 202 |     /// 특정 스크립트 거부
[INFO] [stdout] 203 |     RejectScript(Uuid),
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 204 |     /// 탭 변경
[INFO] [stdout] 205 |     TabChange(usize),
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 206 |     /// 스크롤
[INFO] [stdout] 207 |     Scroll(i32),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `UserInputEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `start_auto_generation` is never used
[INFO] [stdout]    --> src/llm/mod.rs:106:18
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl ScriptEngine {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub async fn start_auto_generation(self: Arc<Self>, interval_secs: u64, min_chats: usize) {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model` and `stop_reason` are never read
[INFO] [stdout]   --> src/llm/anthropic.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | struct MessageResponse {
[INFO] [stdout]    |        --------------- fields in this struct
[INFO] [stdout] 41 |     content: Vec<ContentBlock>,
[INFO] [stdout] 42 |     model: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 43 |     stop_reason: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MessageResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_running` is never used
[INFO] [stdout]   --> src/stt/mod.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl SttManager {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn is_running(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `list_devices` is never used
[INFO] [stdout]   --> src/stt/audio_capture.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 16 | impl AudioCapture {
[INFO] [stdout]    | ----------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn list_devices() -> Result<Vec<String>> {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_model_urls` is never used
[INFO] [stdout]   --> src/stt/whisper_engine.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn get_model_urls() -> Vec<(&'static str, &'static str)> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download_model` is never used
[INFO] [stdout]   --> src/stt/whisper_engine.rs:97:14
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub async fn download_model(model_name: &str, dest_path: &Path) -> Result<()> {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `script_scroll` is never read
[INFO] [stdout]   --> src/tui/app.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct App {
[INFO] [stdout]    |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub script_scroll: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `msgTime` should have a snake case name
[INFO] [stdout]   --> src/chzzk/types.rs:80:9
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub msgTime: Option<i64>,
[INFO] [stdout]    |         ^^^^^^^ help: convert the identifier to snake case: `msg_time`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: structure field `msgTypeCode` should have a snake case name
[INFO] [stdout]   --> src/chzzk/types.rs:82:9
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub msgTypeCode: Option<i32>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: convert the identifier to snake case: `msg_type_code`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 24s
[INFO] running `Command { std: "docker" "inspect" "2a234439ccfd04a78197d02035b576d82fbc5faf89a4fe29a48b60d679958d09", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2a234439ccfd04a78197d02035b576d82fbc5faf89a4fe29a48b60d679958d09", kill_on_drop: false }`
[INFO] [stdout] 2a234439ccfd04a78197d02035b576d82fbc5faf89a4fe29a48b60d679958d09
