[INFO] cloning repository https://github.com/Yupkidangju/femtoClaw
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Yupkidangju/femtoClaw" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYupkidangju%2FfemtoClaw", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYupkidangju%2FfemtoClaw'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2742e80a2a2fdd212ed949d185308aeea693f28d
[INFO] checking Yupkidangju/femtoClaw against 1.95.0-beta.7 for beta-1.95-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FYupkidangju%2FfemtoClaw" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Yupkidangju/femtoClaw
[INFO] finished tweaking git repo https://github.com/Yupkidangju/femtoClaw
[INFO] tweaked toml for git repo https://github.com/Yupkidangju/femtoClaw written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Yupkidangju/femtoClaw on toolchain 1.95.0-beta.7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.95.0-beta.7" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Yupkidangju/femtoClaw 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" "+1.95.0-beta.7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6adae29bf3df3d2cc493f138d7a507e8a2da3a90eab94148f46055cf680ee598
[INFO] running `Command { std: "docker" "start" "-a" "6adae29bf3df3d2cc493f138d7a507e8a2da3a90eab94148f46055cf680ee598", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6adae29bf3df3d2cc493f138d7a507e8a2da3a90eab94148f46055cf680ee598", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6adae29bf3df3d2cc493f138d7a507e8a2da3a90eab94148f46055cf680ee598", kill_on_drop: false }`
[INFO] [stdout] 6adae29bf3df3d2cc493f138d7a507e8a2da3a90eab94148f46055cf680ee598
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.95.0-beta.7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] efa736ca96432ad07cade5a7549be164cca84c1fd56771fca1b3b9947556c11a
[INFO] running `Command { std: "docker" "start" "-a" "efa736ca96432ad07cade5a7549be164cca84c1fd56771fca1b3b9947556c11a", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]    Compiling openssl v0.10.76
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling strsim v0.10.0
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking openssl-probe v0.2.1
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]     Checking lru v0.16.3
[INFO] [stderr]    Compiling erasable v1.3.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling openssl-sys v0.9.112
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling libsqlite3-sys v0.37.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]    Compiling nix v0.31.2
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling darling_core v0.13.4
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]    Compiling smartstring v1.0.1
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking line-clipping v0.3.5
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling include_dir_macros v0.7.4
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]    Compiling derive_more v0.99.20
[INFO] [stderr]    Compiling include_dir v0.7.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking rc-box v1.3.0
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking takecell v0.1.1
[INFO] [stderr]     Checking base64ct v1.8.3
[INFO] [stderr]     Checking take_mut v0.2.2
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking iri-string v0.7.10
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking password-hash v0.5.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling darling_macro v0.13.4
[INFO] [stderr]     Checking ratatui-crossterm v0.1.0
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]    Compiling teloxide-macros v0.8.0
[INFO] [stderr]     Checking poly1305 v0.8.0
[INFO] [stderr]     Checking ratatui-macros v0.7.0
[INFO] [stderr]    Compiling darling v0.13.4
[INFO] [stderr]     Checking blake2 v0.10.6
[INFO] [stderr]    Compiling serde_with_macros v1.5.2
[INFO] [stderr]    Compiling aquamarine v0.5.0
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking chacha20 v0.9.1
[INFO] [stderr]     Checking fancy-regex v0.13.0
[INFO] [stderr]     Checking bstr v1.12.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking dptree v0.3.0
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking hashlink v0.11.0
[INFO] [stderr]     Checking serde_with v1.14.0
[INFO] [stderr]    Compiling rhai_codegen v3.1.0
[INFO] [stderr]     Checking thin-vec v0.2.14
[INFO] [stderr]     Checking ctrlc v3.5.2
[INFO] [stderr]     Checking tiktoken-rs v0.9.1
[INFO] [stderr]     Checking chacha20poly1305 v0.10.1
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking argon2 v0.5.3
[INFO] [stderr]     Checking ratatui v0.30.0
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rhai v1.24.0
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking rustls-webpki v0.103.10
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking hyper-tls v0.5.0
[INFO] [stderr]     Checking reqwest v0.11.27
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking teloxide-core v0.10.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking rusqlite v0.39.0
[INFO] [stderr]     Checking teloxide v0.13.0
[INFO] [stderr]     Checking femtoclaw v1.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `AtomicBool` and `Ordering`
[INFO] [stdout]   --> src/core/chat_loop.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicBool, Ordering};
[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: `Arc` and `Mutex`
[INFO] [stdout]   --> src/core/chat_loop.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                       ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `teloxide::types::ParseMode`
[INFO] [stdout]   --> src/core/telegram.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use teloxide::types::ParseMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scope`
[INFO] [stdout]   --> src/skills/rhai_engine.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rhai::{Engine, Scope, AST};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool` and `Ordering`
[INFO] [stdout]   --> src/core/chat_loop.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicBool, Ordering};
[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: `Arc` and `Mutex`
[INFO] [stdout]   --> src/core/chat_loop.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                       ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `teloxide::types::ParseMode`
[INFO] [stdout]   --> src/core/telegram.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use teloxide::types::ParseMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scope`
[INFO] [stdout]   --> src/skills/rhai_engine.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rhai::{Engine, Scope, AST};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persona`
[INFO] [stdout]    --> src/core/context.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let persona = Persona::new_default("Test");
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persona`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_first_run` is never read
[INFO] [stdout]    --> src/tui/app.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     is_first_run: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool` and `Ordering`
[INFO] [stdout]   --> src/core/chat_loop.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicBool, Ordering};
[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: `Arc` and `Mutex`
[INFO] [stdout]   --> src/core/chat_loop.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                       ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `teloxide::types::ParseMode`
[INFO] [stdout]   --> src/core/telegram.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use teloxide::types::ParseMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `compress_data` and `decompress_data`
[INFO] [stdout]   --> src/db/mod.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use compress::{compress_data, decompress_data};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scope`
[INFO] [stdout]   --> src/skills/rhai_engine.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rhai::{Engine, Scope, AST};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillAction`, `Skill`, and `save_skill`
[INFO] [stdout]   --> src/skills/mod.rs:11:40
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use loader::{load_skills_from_dir, save_skill, Skill, SkillAction, SkillType};
[INFO] [stdout]    |                                        ^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToolError`, `ToolExecutor`, and `ToolResult`
[INFO] [stdout]   --> src/tools/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use executor::{ToolError, ToolExecutor, ToolResult};
[INFO] [stdout]    |                    ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `guide::JailingGuide`
[INFO] [stdout]   --> src/tools/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use guide::JailingGuide;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prompt::build_system_prompt`
[INFO] [stdout]   --> src/tools/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use prompt::build_system_prompt;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BUILTIN_TOOLS`, `SecurityLevel`, `ToolDef`, and `ToolParam`
[INFO] [stdout]   --> src/tools/mod.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use registry::{SecurityLevel, ToolDef, ToolParam, BUILTIN_TOOLS};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_first_run` is never read
[INFO] [stdout]    --> src/tui/app.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     is_first_run: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AtomicBool` and `Ordering`
[INFO] [stdout]   --> src/core/chat_loop.rs:13:25
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::sync::atomic::{AtomicBool, Ordering};
[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: `Arc` and `Mutex`
[INFO] [stdout]   --> src/core/chat_loop.rs:14:23
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::sync::{mpsc, Arc, Mutex};
[INFO] [stdout]    |                       ^^^  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `teloxide::types::ParseMode`
[INFO] [stdout]   --> src/core/telegram.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | use teloxide::types::ParseMode;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `compress_data` and `decompress_data`
[INFO] [stdout]   --> src/db/mod.rs:12:20
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use compress::{compress_data, decompress_data};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Scope`
[INFO] [stdout]   --> src/skills/rhai_engine.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rhai::{Engine, Scope, AST};
[INFO] [stdout]    |                    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `SkillAction`, `Skill`, and `save_skill`
[INFO] [stdout]   --> src/skills/mod.rs:11:40
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use loader::{load_skills_from_dir, save_skill, Skill, SkillAction, SkillType};
[INFO] [stdout]    |                                        ^^^^^^^^^^  ^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ToolError`, `ToolExecutor`, and `ToolResult`
[INFO] [stdout]   --> src/tools/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use executor::{ToolError, ToolExecutor, ToolResult};
[INFO] [stdout]    |                    ^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `guide::JailingGuide`
[INFO] [stdout]   --> src/tools/mod.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use guide::JailingGuide;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `prompt::build_system_prompt`
[INFO] [stdout]   --> src/tools/mod.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use prompt::build_system_prompt;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BUILTIN_TOOLS`, `SecurityLevel`, `ToolDef`, and `ToolParam`
[INFO] [stdout]   --> src/tools/mod.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use registry::{SecurityLevel, ToolDef, ToolParam, BUILTIN_TOOLS};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `native_name` is never used
[INFO] [stdout]   --> src/i18n/mod.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Lang {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 65 |     pub fn native_name(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_HOME_NOT_FOUND` is never used
[INFO] [stdout]  --> src/i18n/keys.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_HOME_NOT_FOUND: &str = "err.home_not_found";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_SANDBOX_CREATE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_SANDBOX_CREATE: &str = "err.sandbox_create";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_ALREADY_RUNNING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const ERR_ALREADY_RUNNING: &str = "err.already_running";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_LOCK_FILE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const ERR_LOCK_FILE: &str = "err.lock_file";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_KEY_DERIVATION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const ERR_KEY_DERIVATION: &str = "err.key_derivation";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_ENCRYPTION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const ERR_ENCRYPTION: &str = "err.encryption";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_DECRYPTION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const ERR_DECRYPTION: &str = "err.decryption";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_CONFIG_IO` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_CONFIG_IO: &str = "err.config_io";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_INVALID_CONFIG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ERR_INVALID_CONFIG: &str = "err.invalid_config";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_SERIALIZATION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const ERR_SERIALIZATION: &str = "err.serialization";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MAX_AGENTS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ERR_MAX_AGENTS: &str = "err.max_agents";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_HTTP_CLIENT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const ERR_HTTP_CLIENT: &str = "err.http_client";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_EMPTY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const PW_EMPTY: &str = "pw.empty";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_TOO_SHORT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const PW_TOO_SHORT: &str = "pw.too_short";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_MISMATCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const PW_MISMATCH: &str = "pw.mismatch";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_KEY_GENERATED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const PW_KEY_GENERATED: &str = "pw.key_generated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const PW_SAVE_FAIL: &str = "pw.save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_DECRYPT_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const PW_DECRYPT_OK: &str = "pw.decrypt_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_3FAIL_RESET` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const PW_3FAIL_RESET: &str = "pw.3fail_reset";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_WRONG_PW` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const PW_WRONG_PW: &str = "pw.wrong_pw";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_SAVE_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const ONBOARD_SAVE_OK: &str = "onboard.save_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const ONBOARD_SAVE_FAIL: &str = "onboard.save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_WAIT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const ONBOARD_LLM_WAIT: &str = "onboard.llm_status_wait";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_TESTING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const ONBOARD_LLM_TESTING: &str = "onboard.llm_status_testing";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_FAIL_RETRY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ONBOARD_LLM_FAIL_RETRY: &str = "onboard.llm_status_fail_retry";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_WAIT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const ONBOARD_TG_WAIT: &str = "onboard.tg_status_wait";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_TESTING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const ONBOARD_TG_TESTING: &str = "onboard.tg_status_testing";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const ONBOARD_TG_OK: &str = "onboard.tg_status_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_FAIL_RETRY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const ONBOARD_TG_FAIL_RETRY: &str = "onboard.tg_status_fail_retry";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOT_INIT_MSG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const BOOT_INIT_MSG: &str = "boot.init_msg";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const FEED_LLM_OK: &str = "feed.llm_verify_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_OK_SIMPLE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const FEED_LLM_OK_SIMPLE: &str = "feed.llm_verify_ok_simple";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const FEED_LLM_FAIL: &str = "feed.llm_verify_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_TG_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const FEED_TG_OK: &str = "feed.tg_verify_ok";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_TG_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const FEED_TG_FAIL: &str = "feed.tg_verify_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_STATUS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const DASH_AGENT_STATUS: &str = "dash.agent_status";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const DASH_AGENT_NAME: &str = "dash.agent_name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_MODEL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub const DASH_MODEL: &str = "dash.model";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SECURITY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub const DASH_SECURITY: &str = "dash.security";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_LLM_NONE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const DASH_LLM_NONE: &str = "dash.llm_none";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_HEADER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub const DASH_SKILL_HEADER: &str = "dash.skill_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_BUILTIN` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const DASH_SKILL_BUILTIN: &str = "dash.skill_builtin";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_CORE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const DASH_SKILL_CORE_FAIL: &str = "dash.skill_core_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_USER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const DASH_SKILL_USER: &str = "dash.skill_user";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_USER_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub const DASH_SKILL_USER_FAIL: &str = "dash.skill_user_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TM_HEADER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const DASH_TM_HEADER: &str = "dash.timemachine_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TM_COLS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub const DASH_TM_COLS: &str = "dash.timemachine_cols";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_RECORDS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const DASH_NO_RECORDS: &str = "dash.no_records";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TOTAL_COUNT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const DASH_TOTAL_COUNT: &str = "dash.total_count";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_DB_QUERY_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const DASH_DB_QUERY_FAIL: &str = "dash.db_query_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_DB_OPEN_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:69:11
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub const DASH_DB_OPEN_FAIL: &str = "dash.db_open_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_SWITCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub const DASH_AGENT_SWITCH: &str = "dash.agent_switch_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_AGENTS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:71:11
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub const DASH_NO_AGENTS: &str = "dash.no_agents";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_ACTIVE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:72:11
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub const DASH_ACTIVE: &str = "dash.active";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_INACTIVE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub const DASH_INACTIVE: &str = "dash.inactive";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_SWITCHED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const DASH_AGENT_SWITCHED: &str = "dash.agent_switched";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_SWITCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:75:11
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub const DASH_NO_SWITCH: &str = "dash.no_switch";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_ADDED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:76:11
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub const DASH_AGENT_ADDED: &str = "dash.agent_added";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_ADD_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub const DASH_AGENT_ADD_FAIL: &str = "dash.agent_add_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_NO_CONFIG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub const CLI_NO_CONFIG: &str = "cli.no_config";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_ENTER_PW` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub const CLI_ENTER_PW: &str = "cli.enter_pw";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_NO_TELEGRAM` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:82:11
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub const CLI_NO_TELEGRAM: &str = "cli.no_telegram";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_PAIRED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:83:11
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub const CLI_PAIRED: &str = "cli.paired";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CHAT_SAVED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub const CLI_CHAT_SAVED: &str = "cli.chat_saved";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CHAT_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub const CLI_CHAT_SAVE_FAIL: &str = "cli.chat_save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_MSG_RECEIVED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub const CLI_MSG_RECEIVED: &str = "cli.msg_received";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_BOT_SHUTDOWN` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub const CLI_BOT_SHUTDOWN: &str = "cli.bot_shutdown";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_GRACEFUL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:88:11
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub const CLI_GRACEFUL: &str = "cli.graceful_shutdown";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_SAFE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const TOOL_LEVEL_SAFE: &str = "tool.level.safe";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_JAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub const TOOL_LEVEL_JAIL: &str = "tool.level.jail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_RESTRICTED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const TOOL_LEVEL_RESTRICTED: &str = "tool.level.restricted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_READ_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub const TOOL_FILE_READ_NAME: &str = "tool.file_read.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_WRITE_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const TOOL_FILE_WRITE_NAME: &str = "tool.file_write.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_LIST_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const TOOL_FILE_LIST_NAME: &str = "tool.file_list.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_SLEEP_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub const TOOL_SLEEP_NAME: &str = "tool.sleep.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_PRINT_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const TOOL_PRINT_NAME: &str = "tool.print.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_PROMPT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub const BOT_PAIR_PROMPT: &str = "bot.pair_prompt";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_SUCCESS` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub const BOT_PAIR_SUCCESS: &str = "bot.pair_success";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_FAIL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:103:11
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub const BOT_PAIR_FAIL: &str = "bot.pair_fail";
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_HELP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const BOT_HELP: &str = "bot.help";
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_USER_MSG` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:107:11
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const DB_TYPE_USER_MSG: &str = "db.type.user_msg";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_AGENT_RESP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:108:11
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub const DB_TYPE_AGENT_RESP: &str = "db.type.agent_resp";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_FILE_OP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:109:11
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub const DB_TYPE_FILE_OP: &str = "db.type.file_op";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_CONFIG_CHANGE` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:110:11
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const DB_TYPE_CONFIG_CHANGE: &str = "db.type.config_change";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_TOOL_CALL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:111:11
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub const DB_TYPE_TOOL_CALL: &str = "db.type.tool_call";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_SECURITY_EVENT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const DB_TYPE_SECURITY_EVENT: &str = "db.type.security_event";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_TIMEOUT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:115:11
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub const VAL_TIMEOUT: &str = "val.timeout";
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_CONNECT_FAIL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:116:11
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub const VAL_CONNECT_FAIL: &str = "val.connect_fail";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_BOT_CONFIRMED` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:117:11
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const VAL_BOT_CONFIRMED: &str = "val.bot_confirmed";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_CHECK_TOKEN` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const VAL_CHECK_TOKEN: &str = "val.check_token";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_agent_mut` is never used
[INFO] [stdout]    --> src/config.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl AppConfig {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn active_agent_mut(&mut self) -> Option<&mut AgentConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model` and `tokens_used` are never read
[INFO] [stdout]   --> src/core/agent.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct AgentResponse {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub model: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 99 |     pub tokens_used: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentResponse` 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: function `chat` is never used
[INFO] [stdout]    --> src/core/agent.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub async fn chat(config: &AgentConfig, messages: &[ChatMessage]) -> Result<AgentResponse, String> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `root` is never read
[INFO] [stdout]   --> src/core/agent_manager.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct AgentPaths {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub root: PathBuf,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentPaths` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sandbox_root` is never read
[INFO] [stdout]   --> src/core/agent_manager.rs:63:5
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub struct AgentManager {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 62 |     /// 샌드박스 루트 경로
[INFO] [stdout] 63 |     sandbox_root: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_agent`, `count`, and `agent_ids` are never used
[INFO] [stdout]    --> src/core/agent_manager.rs:91:12
[INFO] [stdout]     |
[INFO] [stdout]  68 | impl AgentManager {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn add_agent(&mut self, agent_id: u8) -> Result<&AgentPaths, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 107 |     pub fn count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 112 |     pub fn agent_ids(&self) -> Vec<u8> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `seed_bootstrap_file` is never used
[INFO] [stdout]    --> src/core/bootstrap.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn seed_bootstrap_file(workspace: &Path) -> Result<(), String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ToolUsed` and `Error` are never constructed
[INFO] [stdout]   --> src/core/chat_loop.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ChatEvent {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     ToolUsed(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `busy` is never read
[INFO] [stdout]   --> src/core/chat_loop.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ChatWorker {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     busy: std::sync::Arc<std::sync::atomic::AtomicBool>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_busy` is never used
[INFO] [stdout]    --> src/core/chat_loop.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl ChatWorker {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_busy(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `pending_count`, `clear_history`, and `history` are never used
[INFO] [stdout]    --> src/core/chat_loop.rs:397:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl ChatSession {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 559 |     pub fn clear_history(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 564 |     pub fn history(&self) -> &[ChatMessage] {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `utilization` is never used
[INFO] [stdout]    --> src/core/context.rs:153:12
[INFO] [stdout]     |
[INFO] [stdout] 151 | impl TokenUsage {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 152 |     /// 사용률 (0.0 ~ 1.0+)
[INFO] [stdout] 153 |     pub fn utilization(&self) -> f64 {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/core/persona.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl UserProfile {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 289 |     /// user.toml 로드
[INFO] [stdout] 290 |     pub fn load(workspace: &Path) -> Option<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Started(String),
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Started(String),
[INFO] [stdout] 27 +     Started(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     ResponseSent(String),
[INFO] [stdout]    |     ------------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 33 -     ResponseSent(String),
[INFO] [stdout] 33 +     ResponseSent(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 |     AgentSwitched(u8),
[INFO] [stdout]    |     ------------- ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 35 -     AgentSwitched(u8),
[INFO] [stdout] 35 +     AgentSwitched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Shutdown` is never constructed
[INFO] [stdout]   --> src/core/telegram.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum BotCommand {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotCommand` 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 items `new` and `set_agents` are never used
[INFO] [stdout]   --> src/core/telegram.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl BotState {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 67 |     pub fn new(pin: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn set_agents(&mut self, ids: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OfflineQueue` is never constructed
[INFO] [stdout]    --> src/core/telegram.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub struct OfflineQueue {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `enqueue`, `drain`, `len`, and `is_empty` are never used
[INFO] [stdout]    --> src/core/telegram.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 111 | impl OfflineQueue {
[INFO] [stdout]     | ----------------- associated items in this implementation
[INFO] [stdout] 112 |     pub fn new(max_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn enqueue(&mut self, msg: String) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn drain(&mut self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]    --> src/core/telegram.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 155 | impl Backoff {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 181 |     pub fn reset(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shutdown_flag` is never used
[INFO] [stdout]    --> src/core/telegram.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub fn create_shutdown_flag() -> Arc<AtomicBool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `content` is never read
[INFO] [stdout]   --> src/db/store.rs:89:9
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct ActionRecord {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 89 |     pub content: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ActionRecord` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `db_path` is never read
[INFO] [stdout]   --> src/db/store.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub struct FemtoDb {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 97 |     conn: Connection,
[INFO] [stdout] 98 |     db_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/db/store.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl FemtoDb {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 179 |     pub fn recent_actions(&self, limit: usize) -> Result<Vec<ActionRecord>, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 212 |     pub fn actions_filtered(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 237 |     pub fn undo_by_id(&self, id: i64) -> Result<bool, String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 249 |     pub fn undo_last(&self) -> Result<Option<ActionRecord>, String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     pub fn check_integrity(&self) -> Result<bool, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn backup(&self) -> Result<PathBuf, String> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn restore_from_backup(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn action_count_filtered(&self, action_type: &ActionType) -> Result<i64, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log_file` is never read
[INFO] [stdout]   --> src/sandbox.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SandboxPaths {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SandboxPaths` 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 `release` is never used
[INFO] [stdout]    --> src/sandbox.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl ProcessLock {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn release(&self) -> FemtoResult<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `BlacklistedCommand` is never constructed
[INFO] [stdout]   --> src/security/jail.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub enum JailViolation {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 20 |     BlacklistedCommand(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `JailViolation` 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: constant `BLACKLISTED_COMMANDS` is never used
[INFO] [stdout]   --> src/security/jail.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const BLACKLISTED_COMMANDS: &[&str] = &[
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_command` is never used
[INFO] [stdout]    --> src/security/jail.rs:120:8
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub fn validate_command(command: &str) -> Result<(), JailViolation> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cleanup_temp` is never used
[INFO] [stdout]    --> src/security/jail.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub fn cleanup_temp(workspace: &Path) -> Result<usize, String> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `version`, `prompt_template`, `system_prompt`, `allowed_actions`, and `is_builtin` are never read
[INFO] [stdout]    --> src/skills/loader.rs:96:9
[INFO] [stdout]     |
[INFO] [stdout]  93 | pub struct Skill {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub version: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]  97 |     pub prompt_template: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout]  98 |     pub system_prompt: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]  99 |     pub allowed_actions: Vec<SkillAction>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 103 |     pub is_builtin: bool,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Skill` 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: function `save_skill` is never used
[INFO] [stdout]    --> src/skills/loader.rs:207:8
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub fn save_skill(skill: &Skill, user_dir: &Path) -> Result<PathBuf, String> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workspace` is never read
[INFO] [stdout]   --> src/skills/rhai_engine.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct RhaiEngine {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     workspace: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `compile` and `workspace` are never used
[INFO] [stdout]    --> src/skills/rhai_engine.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl RhaiEngine {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 186 |     pub fn compile(&self, script: &str) -> Result<AST, String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn workspace(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Timeout` and `CommandBlocked` are never constructed
[INFO] [stdout]   --> src/tools/executor.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum ToolError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 31 |     Timeout(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     /// 블랙리스트 명령어
[INFO] [stdout] 33 |     CommandBlocked(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolError` 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 `tool_id` and `security_event` are never read
[INFO] [stdout]    --> src/tools/executor.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ToolResult {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 110 |     /// 도구 ID
[INFO] [stdout] 111 |     pub tool_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 119 |     pub security_event: bool,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolResult` 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 `reset_failures` is never used
[INFO] [stdout]    --> src/tools/executor.rs:291:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | impl ToolExecutor {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 291 |     pub fn reset_failures(&mut self, tool_id: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `welcome_message`, `explain_workspace`, and `help_for_error` are never used
[INFO] [stdout]   --> src/tools/guide.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | impl JailingGuide {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 14 |     /// [v0.5.0] 첫 대화 시 workspace 개념을 소개하는 메시지
[INFO] [stdout] 15 |     pub fn welcome_message() -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn explain_workspace() -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 85 |     pub fn help_for_error(error_type: &str) -> String {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tool_summary` is never used
[INFO] [stdout]    --> src/tools/prompt.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn tool_summary() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Restricted` is never constructed
[INFO] [stdout]   --> src/tools/registry.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum SecurityLevel {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Restricted,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityLevel` 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 `display` is never used
[INFO] [stdout]   --> src/tools/registry.rs:23:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl SecurityLevel {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 22 |     /// [v0.5.0] 보안 수준 표시명 (영어 → 다국어 지원 시 msg!() 전환 가능)
[INFO] [stdout] 23 |     pub fn display(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_first_run` is never read
[INFO] [stdout]    --> src/tui/app.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     is_first_run: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SURFACE` is never used
[INFO] [stdout]   --> src/tui/theme.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SURFACE: Color = Color::Rgb(0x14, 0x0E, 0x00);
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `persona`
[INFO] [stdout]    --> src/core/context.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let persona = Persona::new_default("Test");
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_persona`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_HOME_NOT_FOUND` is never used
[INFO] [stdout]  --> src/i18n/keys.rs:9:11
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const ERR_HOME_NOT_FOUND: &str = "err.home_not_found";
[INFO] [stdout]   |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_SANDBOX_CREATE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:10:11
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const ERR_SANDBOX_CREATE: &str = "err.sandbox_create";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_ALREADY_RUNNING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:11:11
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub const ERR_ALREADY_RUNNING: &str = "err.already_running";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_LOCK_FILE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:12:11
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub const ERR_LOCK_FILE: &str = "err.lock_file";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_KEY_DERIVATION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const ERR_KEY_DERIVATION: &str = "err.key_derivation";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_ENCRYPTION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:14:11
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub const ERR_ENCRYPTION: &str = "err.encryption";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_DECRYPTION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const ERR_DECRYPTION: &str = "err.decryption";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_CONFIG_IO` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:16:11
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub const ERR_CONFIG_IO: &str = "err.config_io";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_INVALID_CONFIG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:17:11
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub const ERR_INVALID_CONFIG: &str = "err.invalid_config";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_SERIALIZATION` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:18:11
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub const ERR_SERIALIZATION: &str = "err.serialization";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_MAX_AGENTS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:19:11
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub const ERR_MAX_AGENTS: &str = "err.max_agents";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ERR_HTTP_CLIENT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:20:11
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub const ERR_HTTP_CLIENT: &str = "err.http_client";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_EMPTY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:23:11
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub const PW_EMPTY: &str = "pw.empty";
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_TOO_SHORT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub const PW_TOO_SHORT: &str = "pw.too_short";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_MISMATCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:25:11
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub const PW_MISMATCH: &str = "pw.mismatch";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_KEY_GENERATED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:26:11
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub const PW_KEY_GENERATED: &str = "pw.key_generated";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:27:11
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub const PW_SAVE_FAIL: &str = "pw.save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_DECRYPT_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub const PW_DECRYPT_OK: &str = "pw.decrypt_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_3FAIL_RESET` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:29:11
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub const PW_3FAIL_RESET: &str = "pw.3fail_reset";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PW_WRONG_PW` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:30:11
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub const PW_WRONG_PW: &str = "pw.wrong_pw";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_SAVE_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:33:11
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub const ONBOARD_SAVE_OK: &str = "onboard.save_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub const ONBOARD_SAVE_FAIL: &str = "onboard.save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_WAIT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:35:11
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub const ONBOARD_LLM_WAIT: &str = "onboard.llm_status_wait";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_TESTING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub const ONBOARD_LLM_TESTING: &str = "onboard.llm_status_testing";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_LLM_FAIL_RETRY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:37:11
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub const ONBOARD_LLM_FAIL_RETRY: &str = "onboard.llm_status_fail_retry";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_WAIT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:38:11
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub const ONBOARD_TG_WAIT: &str = "onboard.tg_status_wait";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_TESTING` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const ONBOARD_TG_TESTING: &str = "onboard.tg_status_testing";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:40:11
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub const ONBOARD_TG_OK: &str = "onboard.tg_status_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ONBOARD_TG_FAIL_RETRY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:41:11
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub const ONBOARD_TG_FAIL_RETRY: &str = "onboard.tg_status_fail_retry";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOT_INIT_MSG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:44:11
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub const BOOT_INIT_MSG: &str = "boot.init_msg";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:47:11
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub const FEED_LLM_OK: &str = "feed.llm_verify_ok";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_OK_SIMPLE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:48:11
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub const FEED_LLM_OK_SIMPLE: &str = "feed.llm_verify_ok_simple";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_LLM_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:49:11
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub const FEED_LLM_FAIL: &str = "feed.llm_verify_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_TG_OK` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub const FEED_TG_OK: &str = "feed.tg_verify_ok";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `FEED_TG_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:51:11
[INFO] [stdout]    |
[INFO] [stdout] 51 | pub const FEED_TG_FAIL: &str = "feed.tg_verify_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_STATUS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub const DASH_AGENT_STATUS: &str = "dash.agent_status";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:55:11
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub const DASH_AGENT_NAME: &str = "dash.agent_name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_MODEL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:56:11
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub const DASH_MODEL: &str = "dash.model";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SECURITY` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:57:11
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub const DASH_SECURITY: &str = "dash.security";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_LLM_NONE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:58:11
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub const DASH_LLM_NONE: &str = "dash.llm_none";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_HEADER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub const DASH_SKILL_HEADER: &str = "dash.skill_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_BUILTIN` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:60:11
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub const DASH_SKILL_BUILTIN: &str = "dash.skill_builtin";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_CORE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:61:11
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub const DASH_SKILL_CORE_FAIL: &str = "dash.skill_core_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_USER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:62:11
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub const DASH_SKILL_USER: &str = "dash.skill_user";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_SKILL_USER_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:63:11
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub const DASH_SKILL_USER_FAIL: &str = "dash.skill_user_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TM_HEADER` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:64:11
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub const DASH_TM_HEADER: &str = "dash.timemachine_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TM_COLS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:65:11
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub const DASH_TM_COLS: &str = "dash.timemachine_cols";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_RECORDS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub const DASH_NO_RECORDS: &str = "dash.no_records";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_TOTAL_COUNT` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:67:11
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub const DASH_TOTAL_COUNT: &str = "dash.total_count";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_DB_QUERY_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:68:11
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub const DASH_DB_QUERY_FAIL: &str = "dash.db_query_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_DB_OPEN_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:69:11
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub const DASH_DB_OPEN_FAIL: &str = "dash.db_open_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_SWITCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:70:11
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub const DASH_AGENT_SWITCH: &str = "dash.agent_switch_header";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_AGENTS` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:71:11
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub const DASH_NO_AGENTS: &str = "dash.no_agents";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_ACTIVE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:72:11
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub const DASH_ACTIVE: &str = "dash.active";
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_INACTIVE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:73:11
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub const DASH_INACTIVE: &str = "dash.inactive";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_SWITCHED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:74:11
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub const DASH_AGENT_SWITCHED: &str = "dash.agent_switched";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_NO_SWITCH` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:75:11
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub const DASH_NO_SWITCH: &str = "dash.no_switch";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_ADDED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:76:11
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub const DASH_AGENT_ADDED: &str = "dash.agent_added";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DASH_AGENT_ADD_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:77:11
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub const DASH_AGENT_ADD_FAIL: &str = "dash.agent_add_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_NO_CONFIG` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:80:11
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub const CLI_NO_CONFIG: &str = "cli.no_config";
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_ENTER_PW` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:81:11
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub const CLI_ENTER_PW: &str = "cli.enter_pw";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_NO_TELEGRAM` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:82:11
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub const CLI_NO_TELEGRAM: &str = "cli.no_telegram";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_PAIRED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:83:11
[INFO] [stdout]    |
[INFO] [stdout] 83 | pub const CLI_PAIRED: &str = "cli.paired";
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CHAT_SAVED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:84:11
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub const CLI_CHAT_SAVED: &str = "cli.chat_saved";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_CHAT_SAVE_FAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub const CLI_CHAT_SAVE_FAIL: &str = "cli.chat_save_fail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_MSG_RECEIVED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:86:11
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub const CLI_MSG_RECEIVED: &str = "cli.msg_received";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_BOT_SHUTDOWN` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:87:11
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub const CLI_BOT_SHUTDOWN: &str = "cli.bot_shutdown";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLI_GRACEFUL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:88:11
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub const CLI_GRACEFUL: &str = "cli.graceful_shutdown";
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_SAFE` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:91:11
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub const TOOL_LEVEL_SAFE: &str = "tool.level.safe";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_JAIL` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:92:11
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub const TOOL_LEVEL_JAIL: &str = "tool.level.jail";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_LEVEL_RESTRICTED` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:93:11
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub const TOOL_LEVEL_RESTRICTED: &str = "tool.level.restricted";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_READ_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:94:11
[INFO] [stdout]    |
[INFO] [stdout] 94 | pub const TOOL_FILE_READ_NAME: &str = "tool.file_read.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_WRITE_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:95:11
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub const TOOL_FILE_WRITE_NAME: &str = "tool.file_write.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_FILE_LIST_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:96:11
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub const TOOL_FILE_LIST_NAME: &str = "tool.file_list.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_SLEEP_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:97:11
[INFO] [stdout]    |
[INFO] [stdout] 97 | pub const TOOL_SLEEP_NAME: &str = "tool.sleep.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_PRINT_NAME` is never used
[INFO] [stdout]   --> src/i18n/keys.rs:98:11
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub const TOOL_PRINT_NAME: &str = "tool.print.name";
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_PROMPT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:101:11
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub const BOT_PAIR_PROMPT: &str = "bot.pair_prompt";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_SUCCESS` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:102:11
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub const BOT_PAIR_SUCCESS: &str = "bot.pair_success";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_PAIR_FAIL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:103:11
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub const BOT_PAIR_FAIL: &str = "bot.pair_fail";
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOT_HELP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:104:11
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub const BOT_HELP: &str = "bot.help";
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_USER_MSG` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:107:11
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub const DB_TYPE_USER_MSG: &str = "db.type.user_msg";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_AGENT_RESP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:108:11
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub const DB_TYPE_AGENT_RESP: &str = "db.type.agent_resp";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_FILE_OP` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:109:11
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub const DB_TYPE_FILE_OP: &str = "db.type.file_op";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_CONFIG_CHANGE` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:110:11
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub const DB_TYPE_CONFIG_CHANGE: &str = "db.type.config_change";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_TOOL_CALL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:111:11
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub const DB_TYPE_TOOL_CALL: &str = "db.type.tool_call";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `DB_TYPE_SECURITY_EVENT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:112:11
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub const DB_TYPE_SECURITY_EVENT: &str = "db.type.security_event";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_TIMEOUT` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:115:11
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub const VAL_TIMEOUT: &str = "val.timeout";
[INFO] [stdout]     |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_CONNECT_FAIL` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:116:11
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub const VAL_CONNECT_FAIL: &str = "val.connect_fail";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_BOT_CONFIRMED` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:117:11
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub const VAL_BOT_CONFIRMED: &str = "val.bot_confirmed";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VAL_CHECK_TOKEN` is never used
[INFO] [stdout]    --> src/i18n/keys.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub const VAL_CHECK_TOKEN: &str = "val.check_token";
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `active_agent_mut` is never used
[INFO] [stdout]    --> src/config.rs:130:12
[INFO] [stdout]     |
[INFO] [stdout] 123 | impl AppConfig {
[INFO] [stdout]     | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 130 |     pub fn active_agent_mut(&mut self) -> Option<&mut AgentConfig> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `model` and `tokens_used` are never read
[INFO] [stdout]   --> src/core/agent.rs:98:9
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub struct AgentResponse {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub model: String,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 99 |     pub tokens_used: Option<u32>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AgentResponse` 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: function `chat` is never used
[INFO] [stdout]    --> src/core/agent.rs:250:14
[INFO] [stdout]     |
[INFO] [stdout] 250 | pub async fn chat(config: &AgentConfig, messages: &[ChatMessage]) -> Result<AgentResponse, String> {
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ToolUsed` and `Error` are never constructed
[INFO] [stdout]   --> src/core/chat_loop.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum ChatEvent {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 29 |     ToolUsed(String),
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `busy` is never read
[INFO] [stdout]   --> src/core/chat_loop.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub struct ChatWorker {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     busy: std::sync::Arc<std::sync::atomic::AtomicBool>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_busy` is never used
[INFO] [stdout]    --> src/core/chat_loop.rs:139:12
[INFO] [stdout]     |
[INFO] [stdout]  74 | impl ChatWorker {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn is_busy(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pending_count` is never used
[INFO] [stdout]    --> src/core/chat_loop.rs:397:12
[INFO] [stdout]     |
[INFO] [stdout] 192 | impl ChatSession {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 397 |     pub fn pending_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `load` is never used
[INFO] [stdout]    --> src/core/persona.rs:290:12
[INFO] [stdout]     |
[INFO] [stdout] 288 | impl UserProfile {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 289 |     /// user.toml 로드
[INFO] [stdout] 290 |     pub fn load(workspace: &Path) -> Option<Self> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:27:13
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Started(String),
[INFO] [stdout]    |     ------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 27 -     Started(String),
[INFO] [stdout] 27 +     Started(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |     ResponseSent(String),
[INFO] [stdout]    |     ------------ ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 33 -     ResponseSent(String),
[INFO] [stdout] 33 +     ResponseSent(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/core/telegram.rs:35:19
[INFO] [stdout]    |
[INFO] [stdout] 35 |     AgentSwitched(u8),
[INFO] [stdout]    |     ------------- ^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 35 -     AgentSwitched(u8),
[INFO] [stdout] 35 +     AgentSwitched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Shutdown` is never constructed
[INFO] [stdout]   --> src/core/telegram.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub enum BotCommand {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     Shutdown,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `BotCommand` 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 items `new` and `set_agents` are never used
[INFO] [stdout]   --> src/core/telegram.rs:67:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | impl BotState {
[INFO] [stdout]    | ------------- associated items in this implementation
[INFO] [stdout] 67 |     pub fn new(pin: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn set_agents(&mut self, ids: Vec<u8>) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_shutdown_flag` is never used
[INFO] [stdout]    --> src/core/telegram.rs:197:8
[INFO] [stdout]     |
[INFO] [stdout] 197 | pub fn create_shutdown_flag() -> Arc<AtomicBool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `restore_from_backup` is never used
[INFO] [stdout]    --> src/db/store.rs:289:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | impl FemtoDb {
[INFO] [stdout]     | ------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 289 |     pub fn restore_from_backup(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `log_file` is never read
[INFO] [stdout]   --> src/sandbox.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct SandboxPaths {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub log_file: PathBuf,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SandboxPaths` 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 `release` is never used
[INFO] [stdout]    --> src/sandbox.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout]  89 | impl ProcessLock {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn release(&self) -> FemtoResult<()> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `workspace` is never read
[INFO] [stdout]   --> src/skills/rhai_engine.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct RhaiEngine {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     workspace: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `workspace` is never used
[INFO] [stdout]    --> src/skills/rhai_engine.rs:206:12
[INFO] [stdout]     |
[INFO] [stdout]  39 | impl RhaiEngine {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 206 |     pub fn workspace(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Timeout` and `CommandBlocked` are never constructed
[INFO] [stdout]   --> src/tools/executor.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum ToolError {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 31 |     Timeout(String),
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     /// 블랙리스트 명령어
[INFO] [stdout] 33 |     CommandBlocked(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ToolError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `tool_id` is never read
[INFO] [stdout]    --> src/tools/executor.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ToolResult {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] 110 |     /// 도구 ID
[INFO] [stdout] 111 |     pub tool_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ToolResult` 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 `Restricted` is never constructed
[INFO] [stdout]   --> src/tools/registry.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub enum SecurityLevel {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 18 |     Restricted,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SecurityLevel` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `is_first_run` is never read
[INFO] [stdout]    --> src/tui/app.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 123 | pub struct App {
[INFO] [stdout]     |            --- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 135 |     is_first_run: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SURFACE` is never used
[INFO] [stdout]   --> src/tui/theme.rs:13:11
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub const SURFACE: Color = Color::Rgb(0x14, 0x0E, 0x00);
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] running `Command { std: "docker" "inspect" "efa736ca96432ad07cade5a7549be164cca84c1fd56771fca1b3b9947556c11a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "efa736ca96432ad07cade5a7549be164cca84c1fd56771fca1b3b9947556c11a", kill_on_drop: false }`
[INFO] [stdout] efa736ca96432ad07cade5a7549be164cca84c1fd56771fca1b3b9947556c11a
