[INFO] cloning repository https://github.com/jiebei-668/sea-otter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jiebei-668/sea-otter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiebei-668%2Fsea-otter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiebei-668%2Fsea-otter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0c0521cc13e62060b8bdd6119671f8824387f0ac
[INFO] checking jiebei-668/sea-otter against e3607d549209cc9fdfe7e907123b4185210e2c2b for pr-158915
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjiebei-668%2Fsea-otter" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/jiebei-668/sea-otter
[INFO] finished tweaking git repo https://github.com/jiebei-668/sea-otter
[INFO] tweaked toml for git repo https://github.com/jiebei-668/sea-otter written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/jiebei-668/sea-otter on toolchain e3607d549209cc9fdfe7e907123b4185210e2c2b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/jiebei-668/sea-otter 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" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: binary `YesBoss-cli` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /workspace/builds/worker-5-tc2/source/target/.../YesBoss-cli
[INFO] [stderr]    |                                                  ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `yes-boss-cli`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 - name = "YesBoss-cli"
[INFO] [stderr] 40 + name = "yes-boss-cli"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `yes-boss-cli`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:41:19
[INFO] [stderr]    |
[INFO] [stderr] 41 ~ version = "0.1.0"
[INFO] [stderr] 42 + [[bin]]
[INFO] [stderr] 43 + name = "yes-boss-cli"
[INFO] [stderr] 44 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `YesBoss-cli` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474
[INFO] running `Command { std: "docker" "start" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474" "/opt/rustwide/cargo-home/bin/cargo" "+e3607d549209cc9fdfe7e907123b4185210e2c2b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: binary `YesBoss-cli` should have a kebab-case name
[INFO] [stderr]    |
[INFO] [stderr]  1 | /opt/rustwide/target/.../YesBoss-cli
[INFO] [stderr]    |                          ^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::non_kebab_case_bins` is set to `warn` by default
[INFO] [stderr] help: to change the binary name to `yes-boss-cli`, convert `package.name`
[INFO] [stderr]   --> Cargo.toml:40:8
[INFO] [stderr]    |
[INFO] [stderr] 40 - name = "YesBoss-cli"
[INFO] [stderr] 40 + name = "yes-boss-cli"
[INFO] [stderr]    |
[INFO] [stderr] help: to change the binary name to `yes-boss-cli`, specify `bin.name`
[INFO] [stderr]   --> Cargo.toml:41:19
[INFO] [stderr]    |
[INFO] [stderr] 41 ~ version = "0.1.0"
[INFO] [stderr] 42 + [[bin]]
[INFO] [stderr] 43 + name = "yes-boss-cli"
[INFO] [stderr] 44 + path = "src/main.rs"
[INFO] [stderr]    |
[INFO] [stderr] warning: `YesBoss-cli` (manifest) generated 1 warning
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling unicode-segmentation v1.13.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling darling_core v0.23.0
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking itertools v0.14.0
[INFO] [stderr]    Compiling strum_macros v0.27.2
[INFO] [stderr]     Checking castaway v0.2.4
[INFO] [stderr]    Compiling indoc v2.0.7
[INFO] [stderr]     Checking unicode-width v0.2.0
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling instability v0.3.12
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking tokio v1.52.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking compact_str v0.9.0
[INFO] [stderr]     Checking signal-hook-mio v0.2.5
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking kasuari v0.4.12
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking num-conv v0.2.1
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling convert_case v0.10.0
[INFO] [stderr]     Checking num_threads v0.1.7
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking time v0.3.47
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rustls v0.23.40
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking line-clipping v0.3.7
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking unicode-truncate v2.0.1
[INFO] [stderr]    Compiling strict v0.2.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking crossbeam-deque v0.8.6
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking minimad v0.14.0
[INFO] [stderr]     Checking iri-string v0.7.12
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking derive_more v2.1.1
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking symlink v0.1.0
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking strum v0.27.2
[INFO] [stderr]     Checking ratatui-core v0.1.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking coolor v1.1.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking similar v3.1.0
[INFO] [stderr]     Checking glob v0.3.3
[INFO] [stderr]    Compiling crokey-proc_macros v1.4.0
[INFO] [stderr]    Compiling darling_macro v0.23.0
[INFO] [stderr]     Checking crokey v1.4.0
[INFO] [stderr]    Compiling darling v0.23.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking ratatui-widgets v0.3.0
[INFO] [stderr]     Checking ratatui-crossterm v0.1.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking ratatui-macros v0.7.0
[INFO] [stderr]     Checking ratatui v0.30.0
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking rustls-webpki v0.103.13
[INFO] [stderr]    Compiling lazy-regex-proc_macros v3.6.0
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking tracing-appender v0.2.5
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking lazy-regex v3.6.0
[INFO] [stderr]     Checking termimad v0.34.1
[INFO] [stderr]     Checking ratskin v0.3.1
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking hyper-rustls v0.27.9
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking YesBoss-cli v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `CommandRegistry`, `CommandResult`, and `Command`
[INFO] [stdout]  --> src/command/mod.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use command::{Command, CommandRegistry, CommandResult};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::llm1::types::ChatResponse`
[INFO] [stdout]  --> src/message/message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::llm1::types::ChatResponse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `USER_HIDDEN` should have an upper camel case name
[INFO] [stdout]   --> src/message/message.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     USER_HIDDEN(UserMessage),
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `UserHidden`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentTool`
[INFO] [stdout]   --> src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::tool::tool::{AgentTool, ToolRegistry};
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandRegistry`, `CommandResult`, and `Command`
[INFO] [stdout]  --> src/command/mod.rs:6:19
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub use command::{Command, CommandRegistry, CommandResult};
[INFO] [stdout]   |                   ^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::llm1::types::ChatResponse`
[INFO] [stdout]  --> src/message/message.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::llm1::types::ChatResponse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `USER_HIDDEN` should have an upper camel case name
[INFO] [stdout]   --> src/message/message.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 |     USER_HIDDEN(UserMessage),
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to upper camel case: `UserHidden`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AgentTool`
[INFO] [stdout]   --> src/main.rs:25:25
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::tool::tool::{AgentTool, ToolRegistry};
[INFO] [stdout]    |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tool/tool.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 375 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tool/tool.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |                       crate::service::runtime_state::PermissionResponse::AllowOnce => {}
[INFO] [stdout]     |                       ------------------------------------------------------------ matches some of the same values
[INFO] [stdout] 330 |                       crate::service::runtime_state::PermissionResponse::AllowAlways => {
[INFO] [stdout]     |                       -------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 334 |                       crate::service::runtime_state::PermissionResponse::DenyOnce { comment } => {
[INFO] [stdout]     |                       ----------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 352 | /                     crate::service::runtime_state::PermissionResponse::DenyAlways {
[INFO] [stdout] 353 | |                         comment,
[INFO] [stdout] 354 | |                     } => {
[INFO] [stdout]     | |_____________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 375 |                       _ => {
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/tool/tool.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 375 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/tool/tool.rs:375:21
[INFO] [stdout]     |
[INFO] [stdout] 329 |                       crate::service::runtime_state::PermissionResponse::AllowOnce => {}
[INFO] [stdout]     |                       ------------------------------------------------------------ matches some of the same values
[INFO] [stdout] 330 |                       crate::service::runtime_state::PermissionResponse::AllowAlways => {
[INFO] [stdout]     |                       -------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 334 |                       crate::service::runtime_state::PermissionResponse::DenyOnce { comment } => {
[INFO] [stdout]     |                       ----------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 352 | /                     crate::service::runtime_state::PermissionResponse::DenyAlways {
[INFO] [stdout] 353 | |                         comment,
[INFO] [stdout] 354 | |                     } => {
[INFO] [stdout]     | |_____________________- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 375 |                       _ => {
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/context/system_reminder.rs:115:23
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn file_read_by_ai_cb(payload: &ReminderPayload) -> Option<ReminderMessage> {
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `payload`
[INFO] [stdout]    --> src/context/system_reminder.rs:115:23
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn file_read_by_ai_cb(payload: &ReminderPayload) -> Option<ReminderMessage> {
[INFO] [stdout]     |                       ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_payload`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:69:47
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ----^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:69:47
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tool/file_read_tool.rs:63:47
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ----^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_read_tool.rs:63:47
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_write_tool.rs:61:47
[INFO] [stdout]    |
[INFO] [stdout] 61 |     async fn run(&self, arguments_json: &str, ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:69:47
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ----^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:69:47
[INFO] [stdout]    |
[INFO] [stdout] 69 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/tool/file_read_tool.rs:63:47
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ----^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_read_tool.rs:63:47
[INFO] [stdout]    |
[INFO] [stdout] 63 |     async fn run(&self, arguments_json: &str, mut ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctx`
[INFO] [stdout]   --> src/tool/file_write_tool.rs:61:47
[INFO] [stdout]    |
[INFO] [stdout] 61 |     async fn run(&self, arguments_json: &str, ctx: ToolContext) -> ToolResult {
[INFO] [stdout]    |                                               ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HookInput` is more private than the item `run_prompt_hook`
[INFO] [stdout]    --> src/service/hooks.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | / pub async fn run_prompt_hook(
[INFO] [stdout] 163 | |     action: &crate::config::schema::HookAction,
[INFO] [stdout] 164 | |     hook_input: &HookInput,
[INFO] [stdout] 165 | | ) -> ExitInfo {
[INFO] [stdout]     | |_____________^ function `run_prompt_hook` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `HookInput` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/service/hooks.rs:264:1
[INFO] [stdout]     |
[INFO] [stdout] 264 | struct HookInput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HookInput` is more private than the item `run_command_hook`
[INFO] [stdout]    --> src/service/hooks.rs:288:1
[INFO] [stdout]     |
[INFO] [stdout] 288 | / pub async fn run_command_hook(
[INFO] [stdout] 289 | |     action: &crate::config::schema::HookAction,
[INFO] [stdout] 290 | |     hook_input: &HookInput,
[INFO] [stdout] 291 | | ) -> ExitInfo {
[INFO] [stdout]     | |_____________^ function `run_command_hook` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `HookInput` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/service/hooks.rs:264:1
[INFO] [stdout]     |
[INFO] [stdout] 264 | struct HookInput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/command/command.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait Command {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn name(&self) -> String;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AutoUpdaterStatus` is never used
[INFO] [stdout]    --> src/config/schema.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum AutoUpdaterStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str_lossy` is never used
[INFO] [stdout]    --> src/config/schema.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl AutoUpdaterStatus {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 140 |     pub fn from_str_lossy(value: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NotificationChannel` is never used
[INFO] [stdout]    --> src/config/schema.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub enum NotificationChannel {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelProfile` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct ModelProfile {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidationStatus` is never used
[INFO] [stdout]    --> src/config/schema.rs:249:10
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub enum ValidationStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ModelPointerType` is never used
[INFO] [stdout]    --> src/config/schema.rs:262:10
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub enum ModelPointerType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelPointers` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct ModelPointers {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfo` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct AccountInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomApiKeyResponses` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub struct CustomApiKeyResponses {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLOBAL_CONFIG_KEYS` is never used
[INFO] [stdout]    --> src/config/schema.rs:359:11
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub const GLOBAL_CONFIG_KEYS: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GlobalConfigKey` is never used
[INFO] [stdout]    --> src/config/schema.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 | pub type GlobalConfigKey = &'static str;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_global_config_key` is never used
[INFO] [stdout]    --> src/config/schema.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub fn is_global_config_key(key: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECT_CONFIG_KEYS` is never used
[INFO] [stdout]    --> src/config/schema.rs:379:11
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub const PROJECT_CONFIG_KEYS: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProjectConfigKey` is never used
[INFO] [stdout]    --> src/config/schema.rs:386:10
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub type ProjectConfigKey = &'static str;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_project_config_key` is never used
[INFO] [stdout]    --> src/config/schema.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub fn is_project_config_key(key: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectMcpServerDefinitions` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 433 | pub struct ProjectMcpServerDefinitions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalidate_context` is never used
[INFO] [stdout]   --> src/context/context.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn invalidate_context() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT_NAME` is never used
[INFO] [stdout]  --> src/context/fixed_prompt.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const PRODUCT_NAME: &str = "YesBoss";
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalidate_system_prompt` is never used
[INFO] [stdout]   --> src/context/fixed_prompt.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn invalidate_system_prompt() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/context/system_reminder.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct ReminderMessage {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub timestamp: i64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SessionStartUp` is never constructed
[INFO] [stdout]   --> src/context/system_reminder.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum ReminderPayload {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     SessionStartUp,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReminderPayload` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/llm1/client.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Http(reqwest::Error),
[INFO] [stdout]   |     ---- ^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LlmError` has a derived impl for the trait `Debug`, but this is 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] 8 -     Http(reqwest::Error),
[INFO] [stdout] 8 +     Http(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/llm1/client.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Api(String),
[INFO] [stdout]   |     --- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LlmError` has a derived impl for the trait `Debug`, but this is 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] 9 -     Api(String),
[INFO] [stdout] 9 +     Api(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat` is never used
[INFO] [stdout]    --> src/llm1/client.rs:117:14
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub async fn chat(
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_unified_messages1` is never used
[INFO] [stdout]    --> src/llm1/client.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub async fn chat_unified_messages1(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_unified_messages` is never used
[INFO] [stdout]    --> src/llm1/client.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub async fn chat_unified_messages(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usage` is never read
[INFO] [stdout]   --> src/llm1/types.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ChatResponse {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub usage: Option<Usage>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finish_reason` is never read
[INFO] [stdout]   --> src/llm1/types.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct ResponseChoice {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 57 |     pub message: ResponseMessage,
[INFO] [stdout] 58 |     pub finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseChoice` 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 `role` and `content` are never read
[INFO] [stdout]   --> src/llm1/types.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct ResponseMessage {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 63 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 64 |     pub content: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseMessage` 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: enum `ChatResult` is never used
[INFO] [stdout]    --> src/llm1/types.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum ChatResult {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `assistant_with_tool_calls` and `assistant_without_tool_calls` are never used
[INFO] [stdout]    --> src/llm1/types.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ChatMessage {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn assistant_with_tool_calls(content: Option<String>, tool_calls: Vec<ToolCall>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn assistant_without_tool_calls(content: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `of_chat_response` is never used
[INFO] [stdout]   --> src/message/message.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl AssistantMessage {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn of_chat_response(res: ChatResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `assistant_without_tool_calls`, `assistant_with_tool_calls`, and `of_chat_response` are never used
[INFO] [stdout]   --> src/message/message.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl UnifiedMessage {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 68 |     pub fn assistant_without_tool_calls(content: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn assistant_with_tool_calls(content: Option<String>, calls: Vec<ToolCall>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn of_chat_response(res: ChatResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model` is never read
[INFO] [stdout]  --> src/service/agent.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct AgentConfig {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub model: Option<String>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]  --> src/service/background_task.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TaskState {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Error,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_error` is never used
[INFO] [stdout]   --> src/service/background_task.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn set_error(id: &str, error: &str) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_access` is never read
[INFO] [stdout]  --> src/service/file_tracker.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct FileTimestamps {
[INFO] [stdout]   |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     last_access: i64,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `system_messages` is never read
[INFO] [stdout]   --> src/service/hooks.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Block {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 25 |         blk_message: String,
[INFO] [stdout] 26 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_messages` and `ask_user` are never read
[INFO] [stdout]   --> src/service/hooks.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     NonBlock {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 30 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |         warning_message: Option<String>,
[INFO] [stdout] 32 |         ask_user: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_messages` and `warning_message` are never read
[INFO] [stdout]   --> src/service/hooks.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     NonBlock {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 44 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |         warning_message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_cwd` is never used
[INFO] [stdout]   --> src/service/runtime_state.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn set_cwd(path: PathBuf) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on_main` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn is_on_main() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_permission_mode` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn set_permission_mode(mode: PermissionMode) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_messages` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn clear_messages() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_last_uuid_from_jsonl` is never used
[INFO] [stdout]   --> src/service/session_storage.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn init_last_uuid_from_jsonl() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/bash/bash_tool.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct BashTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct FileEditTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_read_tool.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FileReadTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_write_tool.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct FileWriteTool {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/glob_tool.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct GlobTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/grep_tool.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct GrepTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/task_output_tool.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TaskOutputTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]    --> src/tool/task_tool.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct TaskTool {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     requires_user_interaction: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_concurrency/test_safe_tool.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TestSafeTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_concurrency/test_unsafe_tool.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TestUnsafeTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_hook_tool/test_danger_tool.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TestDangerTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TESTOOL_JSONSCHEMA` is never used
[INFO] [stdout]  --> src/tool/test_tool.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const TESTOOL_JSONSCHEMA: &str = r#"{
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestTool` is never constructed
[INFO] [stdout]   --> src/tool/test_tool.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TestTool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tool/test_tool.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TestTool {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 28 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/todo_write_tool.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TodoWriteTool {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `requires_user_interaction`, `is_read_only`, and `need_user_permission` are never used
[INFO] [stdout]   --> src/tool/tool.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait AgentTool: Send + Sync {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn requires_user_interaction(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn is_read_only(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 21 |     fn need_user_permission(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `read_file_timestamps` is never read
[INFO] [stdout]   --> src/tool/tool.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ToolContext {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 37 |     pub tool_use_id: String,
[INFO] [stdout] 38 |     pub read_file_timestamps: Arc<Mutex<HashMap<String, i64>>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `record_read` are never used
[INFO] [stdout]   --> src/tool/tool.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl ToolContext {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn record_read(&self, path: &str) {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `COMPLETED` is never constructed
[INFO] [stdout]   --> src/tool/tool.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum ToolRunStatus {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 99 |     COMPLETED,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_MID` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const TOOL_MID: &str = "\u{2502}";     // │
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ASSISTANT` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const COLOR_ASSISTANT: Color = Color::Rgb(226, 232, 240); // #E2E8F0 white
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_CODE_BG` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const COLOR_CODE_BG: Color = Color::Rgb(30, 41, 59);      // #1E293B dark slate
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/ui/chat_view.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum ToolCallStatus {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `line_count` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl TurnBlock {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn line_count(&self, registry: &ToolRegistry, width: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `item_at_row_mut` and `max_scroll` are never used
[INFO] [stdout]    --> src/ui/file_tree.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl FileTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn item_at_row_mut(&mut self, row: u16) -> Option<&mut TreeItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn max_scroll(&self, visible_height: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `duration_ms` is never read
[INFO] [stdout]   --> src/utils/ripgrep.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct GrepResult {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 74 |     pub lines: Vec<String>,
[INFO] [stdout] 75 |     pub duration_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HookInput` is more private than the item `run_prompt_hook`
[INFO] [stdout]    --> src/service/hooks.rs:162:1
[INFO] [stdout]     |
[INFO] [stdout] 162 | / pub async fn run_prompt_hook(
[INFO] [stdout] 163 | |     action: &crate::config::schema::HookAction,
[INFO] [stdout] 164 | |     hook_input: &HookInput,
[INFO] [stdout] 165 | | ) -> ExitInfo {
[INFO] [stdout]     | |_____________^ function `run_prompt_hook` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `HookInput` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/service/hooks.rs:264:1
[INFO] [stdout]     |
[INFO] [stdout] 264 | struct HookInput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `HookInput` is more private than the item `run_command_hook`
[INFO] [stdout]    --> src/service/hooks.rs:288:1
[INFO] [stdout]     |
[INFO] [stdout] 288 | / pub async fn run_command_hook(
[INFO] [stdout] 289 | |     action: &crate::config::schema::HookAction,
[INFO] [stdout] 290 | |     hook_input: &HookInput,
[INFO] [stdout] 291 | | ) -> ExitInfo {
[INFO] [stdout]     | |_____________^ function `run_command_hook` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `HookInput` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/service/hooks.rs:264:1
[INFO] [stdout]     |
[INFO] [stdout] 264 | struct HookInput {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/command/command.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub trait Command {
[INFO] [stdout]    |           ------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 11 |     fn name(&self) -> String;
[INFO] [stdout]    |        ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `AutoUpdaterStatus` is never used
[INFO] [stdout]    --> src/config/schema.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum AutoUpdaterStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_str_lossy` is never used
[INFO] [stdout]    --> src/config/schema.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 139 | impl AutoUpdaterStatus {
[INFO] [stdout]     | ---------------------- associated function in this implementation
[INFO] [stdout] 140 |     pub fn from_str_lossy(value: &str) -> Option<Self> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NotificationChannel` is never used
[INFO] [stdout]    --> src/config/schema.rs:154:10
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub enum NotificationChannel {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelProfile` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 225 | pub struct ModelProfile {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ValidationStatus` is never used
[INFO] [stdout]    --> src/config/schema.rs:249:10
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub enum ValidationStatus {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ModelPointerType` is never used
[INFO] [stdout]    --> src/config/schema.rs:262:10
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub enum ModelPointerType {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ModelPointers` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:274:12
[INFO] [stdout]     |
[INFO] [stdout] 274 | pub struct ModelPointers {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AccountInfo` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:284:12
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub struct AccountInfo {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CustomApiKeyResponses` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:294:12
[INFO] [stdout]     |
[INFO] [stdout] 294 | pub struct CustomApiKeyResponses {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GLOBAL_CONFIG_KEYS` is never used
[INFO] [stdout]    --> src/config/schema.rs:359:11
[INFO] [stdout]     |
[INFO] [stdout] 359 | pub const GLOBAL_CONFIG_KEYS: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `GlobalConfigKey` is never used
[INFO] [stdout]    --> src/config/schema.rs:373:10
[INFO] [stdout]     |
[INFO] [stdout] 373 | pub type GlobalConfigKey = &'static str;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_global_config_key` is never used
[INFO] [stdout]    --> src/config/schema.rs:375:8
[INFO] [stdout]     |
[INFO] [stdout] 375 | pub fn is_global_config_key(key: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PROJECT_CONFIG_KEYS` is never used
[INFO] [stdout]    --> src/config/schema.rs:379:11
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub const PROJECT_CONFIG_KEYS: &[&str] = &[
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ProjectConfigKey` is never used
[INFO] [stdout]    --> src/config/schema.rs:386:10
[INFO] [stdout]     |
[INFO] [stdout] 386 | pub type ProjectConfigKey = &'static str;
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_project_config_key` is never used
[INFO] [stdout]    --> src/config/schema.rs:388:8
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub fn is_project_config_key(key: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProjectMcpServerDefinitions` is never constructed
[INFO] [stdout]    --> src/config/schema.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 433 | pub struct ProjectMcpServerDefinitions {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalidate_context` is never used
[INFO] [stdout]   --> src/context/context.rs:88:8
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub fn invalidate_context() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PRODUCT_NAME` is never used
[INFO] [stdout]  --> src/context/fixed_prompt.rs:4:7
[INFO] [stdout]   |
[INFO] [stdout] 4 | const PRODUCT_NAME: &str = "YesBoss";
[INFO] [stdout]   |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `invalidate_system_prompt` is never used
[INFO] [stdout]   --> src/context/fixed_prompt.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub fn invalidate_system_prompt() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]   --> src/context/system_reminder.rs:34:9
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct ReminderMessage {
[INFO] [stdout]    |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub timestamp: i64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SessionStartUp` is never constructed
[INFO] [stdout]   --> src/context/system_reminder.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub enum ReminderPayload {
[INFO] [stdout]    |          --------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     SessionStartUp,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReminderPayload` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/llm1/client.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Http(reqwest::Error),
[INFO] [stdout]   |     ---- ^^^^^^^^^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LlmError` has a derived impl for the trait `Debug`, but this is 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] 8 -     Http(reqwest::Error),
[INFO] [stdout] 8 +     Http(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]  --> src/llm1/client.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Api(String),
[INFO] [stdout]   |     --- ^^^^^^
[INFO] [stdout]   |     |
[INFO] [stdout]   |     field in this variant
[INFO] [stdout]   |
[INFO] [stdout]   = note: `LlmError` has a derived impl for the trait `Debug`, but this is 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] 9 -     Api(String),
[INFO] [stdout] 9 +     Api(()),
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat` is never used
[INFO] [stdout]    --> src/llm1/client.rs:117:14
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub async fn chat(
[INFO] [stdout]     |              ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_unified_messages1` is never used
[INFO] [stdout]    --> src/llm1/client.rs:136:14
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub async fn chat_unified_messages1(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chat_unified_messages` is never used
[INFO] [stdout]    --> src/llm1/client.rs:148:14
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub async fn chat_unified_messages(
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `usage` is never read
[INFO] [stdout]   --> src/llm1/types.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ChatResponse {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 52 |     pub usage: Option<Usage>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `finish_reason` is never read
[INFO] [stdout]   --> src/llm1/types.rs:58:9
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct ResponseChoice {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 57 |     pub message: ResponseMessage,
[INFO] [stdout] 58 |     pub finish_reason: String,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseChoice` 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 `role` and `content` are never read
[INFO] [stdout]   --> src/llm1/types.rs:63:9
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub struct ResponseMessage {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 63 |     pub role: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 64 |     pub content: Option<String>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ResponseMessage` 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: enum `ChatResult` is never used
[INFO] [stdout]    --> src/llm1/types.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub enum ChatResult {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `assistant_with_tool_calls` and `assistant_without_tool_calls` are never used
[INFO] [stdout]    --> src/llm1/types.rs:169:12
[INFO] [stdout]     |
[INFO] [stdout] 150 | impl ChatMessage {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn assistant_with_tool_calls(content: Option<String>, tool_calls: Vec<ToolCall>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 |     pub fn assistant_without_tool_calls(content: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `of_chat_response` is never used
[INFO] [stdout]   --> src/message/message.rs:50:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl AssistantMessage {
[INFO] [stdout]    | --------------------- associated function in this implementation
[INFO] [stdout] 50 |     pub fn of_chat_response(res: ChatResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `assistant_without_tool_calls`, `assistant_with_tool_calls`, and `of_chat_response` are never used
[INFO] [stdout]   --> src/message/message.rs:68:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl UnifiedMessage {
[INFO] [stdout]    | ------------------- associated functions in this implementation
[INFO] [stdout] 68 |     pub fn assistant_without_tool_calls(content: String) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn assistant_with_tool_calls(content: Option<String>, calls: Vec<ToolCall>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 84 |     pub fn of_chat_response(res: ChatResult) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `model` is never read
[INFO] [stdout]  --> src/service/agent.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub struct AgentConfig {
[INFO] [stdout]   |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     pub model: Option<String>,
[INFO] [stdout]   |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]  --> src/service/background_task.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum TaskState {
[INFO] [stdout]   |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 8 |     Error,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `TaskState` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_error` is never used
[INFO] [stdout]   --> src/service/background_task.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn set_error(id: &str, error: &str) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `last_access` is never read
[INFO] [stdout]  --> src/service/file_tracker.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | struct FileTimestamps {
[INFO] [stdout]   |        -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 9 |     last_access: i64,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `system_messages` is never read
[INFO] [stdout]   --> src/service/hooks.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Block {
[INFO] [stdout]    |     ----- field in this variant
[INFO] [stdout] 25 |         blk_message: String,
[INFO] [stdout] 26 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_messages` and `ask_user` are never read
[INFO] [stdout]   --> src/service/hooks.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     NonBlock {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 30 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 31 |         warning_message: Option<String>,
[INFO] [stdout] 32 |         ask_user: Option<bool>,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `system_messages` and `warning_message` are never read
[INFO] [stdout]   --> src/service/hooks.rs:44:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     NonBlock {
[INFO] [stdout]    |     -------- fields in this variant
[INFO] [stdout] 44 |         system_messages: Option<Vec<String>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |         warning_message: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_cwd` is never used
[INFO] [stdout]   --> src/service/runtime_state.rs:80:8
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub fn set_cwd(path: PathBuf) {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_on_main` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn is_on_main() -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_permission_mode` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn set_permission_mode(mode: PermissionMode) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_messages` is never used
[INFO] [stdout]    --> src/service/runtime_state.rs:242:8
[INFO] [stdout]     |
[INFO] [stdout] 242 | pub fn clear_messages() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_last_uuid_from_jsonl` is never used
[INFO] [stdout]   --> src/service/session_storage.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn init_last_uuid_from_jsonl() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/bash/bash_tool.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub struct BashTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_edit_tool.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct FileEditTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_read_tool.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct FileReadTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 31 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/file_write_tool.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct FileWriteTool {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 28 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/glob_tool.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct GlobTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 29 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/grep_tool.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct GrepTool {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/task_output_tool.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct TaskOutputTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]    --> src/tool/task_tool.rs:108:5
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct TaskTool {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 108 |     requires_user_interaction: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_concurrency/test_safe_tool.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TestSafeTool {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_concurrency/test_unsafe_tool.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct TestUnsafeTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/test_hook_tool/test_danger_tool.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct TestDangerTool {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TESTOOL_JSONSCHEMA` is never used
[INFO] [stdout]  --> src/tool/test_tool.rs:7:7
[INFO] [stdout]   |
[INFO] [stdout] 7 | const TESTOOL_JSONSCHEMA: &str = r#"{
[INFO] [stdout]   |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TestTool` is never constructed
[INFO] [stdout]   --> src/tool/test_tool.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct TestTool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/tool/test_tool.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl TestTool {
[INFO] [stdout]    | ------------- associated function in this implementation
[INFO] [stdout] 28 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `requires_user_interaction` is never read
[INFO] [stdout]   --> src/tool/todo_write_tool.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct TodoWriteTool {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 39 |     requires_user_interaction: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `requires_user_interaction`, `is_read_only`, and `need_user_permission` are never used
[INFO] [stdout]   --> src/tool/tool.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub trait AgentTool: Send + Sync {
[INFO] [stdout]    |           --------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 17 |     fn requires_user_interaction(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn is_read_only(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 21 |     fn need_user_permission(&self) -> bool;
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `read_file_timestamps` is never read
[INFO] [stdout]   --> src/tool/tool.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct ToolContext {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] 37 |     pub tool_use_id: String,
[INFO] [stdout] 38 |     pub read_file_timestamps: Arc<Mutex<HashMap<String, i64>>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `record_read` are never used
[INFO] [stdout]   --> src/tool/tool.rs:45:12
[INFO] [stdout]    |
[INFO] [stdout] 44 | impl ToolContext {
[INFO] [stdout]    | ---------------- associated items in this implementation
[INFO] [stdout] 45 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub async fn record_read(&self, path: &str) {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `COMPLETED` is never constructed
[INFO] [stdout]   --> src/tool/tool.rs:99:5
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum ToolRunStatus {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 99 |     COMPLETED,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TOOL_MID` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const TOOL_MID: &str = "\u{2502}";     // │
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_ASSISTANT` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:22:7
[INFO] [stdout]    |
[INFO] [stdout] 22 | const COLOR_ASSISTANT: Color = Color::Rgb(226, 232, 240); // #E2E8F0 white
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COLOR_CODE_BG` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const COLOR_CODE_BG: Color = Color::Rgb(30, 41, 59);      // #1E293B dark slate
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Error` is never constructed
[INFO] [stdout]   --> src/ui/chat_view.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum ToolCallStatus {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 58 |     Error(String),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `line_count` is never used
[INFO] [stdout]   --> src/ui/chat_view.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 67 | impl TurnBlock {
[INFO] [stdout]    | -------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 90 |     pub fn line_count(&self, registry: &ToolRegistry, width: usize) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `item_at_row_mut` and `max_scroll` are never used
[INFO] [stdout]    --> src/ui/file_tree.rs:187:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl FileTree {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn item_at_row_mut(&mut self, row: u16) -> Option<&mut TreeItem> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 192 |     pub fn max_scroll(&self, visible_height: u16) -> u16 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `duration_ms` is never read
[INFO] [stdout]   --> src/utils/ripgrep.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct GrepResult {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 74 |     pub lines: Vec<String>,
[INFO] [stdout] 75 |     pub duration_ms: u64,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.36s
[INFO] running `Command { std: "docker" "inspect" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474", kill_on_drop: false }`
[INFO] [stdout] e107713469f5ca4383b703400a64480bffd17e94beda6be11f84bff68789e474
