warning: unused import: `info`
 --> src/services/config.rs:6:22
  |
6 | use tracing::{debug, info};
  |                      ^^^^
  |
  = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused import: `Serialize`
 --> src/services/jug0.rs:7:26
  |
7 | use serde::{Deserialize, Serialize};
  |                          ^^^^^^^^^

warning: unused import: `tokio::sync::mpsc::UnboundedSender`
  --> src/services/jug0.rs:11:5
   |
11 | use tokio::sync::mpsc::UnboundedSender;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::services::agent_loader::AgentRegistry`
   --> src/builtins/mod.rs:199:17
    |
199 |             use crate::services::agent_loader::AgentRegistry;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::services::prompt_loader::PromptRegistry`
   --> src/builtins/mod.rs:200:17
    |
200 |             use crate::services::prompt_loader::PromptRegistry;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `trace`
  --> src/builtins/ai.rs:10:35
   |
10 | use tracing::{debug, error, info, trace, warn};
   |                                   ^^^^^

warning: unused import: `std::io::Write`
  --> src/registry/package.rs:11:5
   |
11 | use std::io::Write;
   |     ^^^^^^^^^^^^^^

warning: unused import: `info`
  --> src/runtime/python/mod.rs:15:22
   |
15 | use tracing::{debug, info};
   |                      ^^^^

warning: variable does not need to be mutable
   --> src/core/executor.rs:262:13
    |
262 |         let mut rt = runtime
    |             ----^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> src/core/executor.rs:697:13
    |
697 |         let mut degrees = in_degrees.lock().unwrap();
    |             ----^^^^^^^
    |             |
    |             help: remove this `mut`

warning: unused variable: `workflow_base_dir`
   --> src/builtins/mod.rs:193:13
    |
193 |         let workflow_base_dir = abs_workflow_path
    |             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_workflow_base_dir`
    |
    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> src/builtins/ai.rs:764:13
    |
764 |         let mut chat_messages_buffer = vec![json!({
    |             ----^^^^^^^^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: variable does not need to be mutable
   --> src/builtins/ai.rs:770:13
    |
770 |         let mut active_session_id = if let Some(explicit_id) = params.get("chat_id") {
    |             ----^^^^^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`

warning: value assigned to `resolved_sys_prompt` is never read
   --> src/builtins/ai.rs:901:43
    |
901 |             let mut resolved_sys_prompt = String::new();
    |                                           ^^^^^^^^^^^^^
    |
    = help: maybe it is overwritten before being read?
    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default

warning: fields `prompt_registry` and `agent_registry` are never read
  --> src/builtins/mod.rs:55:5
   |
50 | pub struct BuiltinRegistry {
   |            --------------- fields in this struct
...
55 |     prompt_registry: Arc<PromptRegistry>,
   |     ^^^^^^^^^^^^^^^
56 |     agent_registry: Arc<AgentRegistry>,
   |     ^^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: methods `try_execute_builtin`, `try_execute_mcp`, and `execute_local_tool` are never used
   --> src/builtins/ai.rs:138:14
    |
 31 | impl Chat {
    | --------- methods in this implementation
...
138 |     async fn try_execute_builtin(
    |              ^^^^^^^^^^^^^^^^^^^
...
180 |     async fn try_execute_mcp(&self, tool_name: &str, args_str: &str) -> Option<String> {
    |              ^^^^^^^^^^^^^^^
...
195 |     async fn execute_local_tool(
    |              ^^^^^^^^^^^^^^^^^^

warning: field `max_workers` is never read
   --> src/runtime/python/worker.rs:195:5
    |
192 | pub struct PythonWorkerPool {
    |            ---------------- field in this struct
...
195 |     max_workers: usize,
    |     ^^^^^^^^^^^

warning: `juglans` (lib) generated 17 warnings (run `cargo fix --lib -p juglans` to apply 13 suggestions)
warning: unused import: `crate::services::agent_loader::AgentRegistry`
   --> src/builtins/mod.rs:199:17
    |
199 |             use crate::services::agent_loader::AgentRegistry;
    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

warning: unused imports: `PythonError`, `PythonRequest`, and `PythonResponse`
 --> src/runtime/python/mod.rs:8:20
  |
8 | pub use protocol::{PythonError, PythonRequest, PythonResponse};
  |                    ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `PythonWorker`
 --> src/runtime/python/mod.rs:9:18
  |
9 | pub use worker::{PythonWorker, PythonWorkerPool};
  |                  ^^^^^^^^^^^^

warning: unused imports: `PythonRuntime`, `PythonWorkerPool`, `get_python_ref`, and `is_python_ref`
 --> src/runtime/mod.rs:7:18
  |
7 | pub use python::{get_python_ref, is_python_ref, PythonRuntime, PythonWorkerPool};
  |                  ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^

warning: unused import: `info`
 --> src/services/config.rs:6:22
  |
6 | use tracing::{debug, info};
  |                      ^^^^

warning: unused import: `render::render_markdown`
 --> src/ui/mod.rs:9:9
  |
9 | pub use render::render_markdown;
  |         ^^^^^^^^^^^^^^^^^^^^^^^

warning: variable does not need to be mutable
   --> src/builtins/ai.rs:764:13
    |
764 |         let mut chat_messages_buffer = vec![json!({
    |             ----^^^^^^^^^^^^^^^^^^^^
    |             |
    |             help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default

warning: variable does not need to be mutable
   --> src/core/executor.rs:262:13
    |
262 |         let mut rt = runtime
    |             ----^^
    |             |
    |             help: remove this `mut`

warning: function `send_webhook_rich` is never used
   --> src/adapters/feishu.rs:359:14
    |
359 | pub async fn send_webhook_rich(
    |              ^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default

warning: fields `prompt_registry` and `agent_registry` are never read
  --> src/builtins/mod.rs:55:5
   |
50 | pub struct BuiltinRegistry {
   |            --------------- fields in this struct
...
55 |     prompt_registry: Arc<PromptRegistry>,
   |     ^^^^^^^^^^^^^^^
56 |     agent_registry: Arc<AgentRegistry>,
   |     ^^^^^^^^^^^^^^

warning: methods `set_max_depth`, `get_execution_stack`, `get_execution_depth`, and `clear_trace` are never used
   --> src/core/context.rs:92:12
    |
 76 | impl WorkflowContext {
    | -------------------- methods in this implementation
...
 92 |     pub fn set_max_depth(&mut self, max_depth: usize) {
    |            ^^^^^^^^^^^^^
...
156 |     pub fn get_execution_stack(&self) -> Result<Vec<String>> {
    |            ^^^^^^^^^^^^^^^^^^^
...
165 |     pub fn get_execution_depth(&self) -> Result<usize> {
    |            ^^^^^^^^^^^^^^^^^^^
...
365 |     pub fn clear_trace(&self) {
    |            ^^^^^^^^^^^

warning: methods `eval_as_bool` and `eval_as_array` are never used
  --> src/core/expr_eval.rs:58:12
   |
29 | impl ExprEvaluator {
   | ------------------ methods in this implementation
...
58 |     pub fn eval_as_bool<F>(&self, expr_str: &str, resolver: &F) -> Result<bool>
   |            ^^^^^^^^^^^^
...
67 |     pub fn eval_as_array<F>(&self, expr_str: &str, resolver: &F) -> Result<Vec<Value>>
   |            ^^^^^^^^^^^^^

warning: variant `ExternalCall` is never constructed
  --> src/core/graph.rs:27:5
   |
13 | pub enum NodeType {
   |          -------- variant in this enum
...
27 |     ExternalCall {
   |     ^^^^^^^^^^^^
   |
   = note: `NodeType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `license`, `compatibility`, `allowed_tools`, and `metadata` are never read
  --> src/core/skill_parser.rs:16:9
   |
13 | pub struct SkillFrontmatter {
   |            ---------------- fields in this struct
...
16 |     pub license: Option<String>,
   |         ^^^^^^^
17 |     pub compatibility: Option<String>,
   |         ^^^^^^^^^^^^^
18 |     pub allowed_tools: Option<String>,
   |         ^^^^^^^^^^^^^
19 |     pub metadata: HashMap<String, String>,
   |         ^^^^^^^^
   |
   = note: `SkillFrontmatter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: method `run` is never used
   --> src/core/executor.rs:644:18
    |
 51 | impl WorkflowExecutor {
    | --------------------- method in this implementation
...
644 |     pub async fn run(
    |                  ^^^

warning: associated function `with_dir` is never used
  --> src/registry/cache.rs:27:12
   |
16 | impl PackageCache {
   | ----------------- associated function in this implementation
...
27 |     pub fn with_dir(cache_dir: PathBuf) -> Result<Self> {
   |            ^^^^^^^^

warning: fields `name`, `slug`, `description`, `author`, and `license` are never read
  --> src/registry/client.rs:13:9
   |
12 | pub struct PackageResponse {
   |            --------------- fields in this struct
13 |     pub name: String,
   |         ^^^^
14 |     pub slug: String,
   |         ^^^^
15 |     pub description: Option<String>,
   |         ^^^^^^^^^^^
16 |     pub author: Option<String>,
   |         ^^^^^^
17 |     pub license: Option<String>,
   |         ^^^^^^^
   |
   = note: `PackageResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `entry`, `checksum`, and `published_at` are never read
  --> src/registry/client.rs:24:9
   |
22 | pub struct VersionEntry {
   |            ------------ fields in this struct
23 |     pub version: String,
24 |     pub entry: Option<String>,
   |         ^^^^^
25 |     pub checksum: Option<String>,
   |         ^^^^^^^^
26 |     pub published_at: Option<String>,
   |         ^^^^^^^^^^^^
   |
   = note: `VersionEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: associated items `new` and `ensure_installed` are never used
   --> src/registry/installer.rs:33:12
    |
 32 | impl PackageInstaller {
    | --------------------- associated items in this implementation
 33 |     pub fn new(client: RegistryClient, cache: PackageCache) -> Self {
    |            ^^^
...
100 |     pub async fn ensure_installed(
    |                  ^^^^^^^^^^^^^^^^

warning: method `get` is never used
  --> src/registry/lock.rs:72:12
   |
47 | impl LockFile {
   | ------------- method in this implementation
...
72 |     pub fn get(&self, name: &str) -> Option<&LockedPackage> {
   |            ^^^

warning: method `version` is never used
   --> src/registry/package.rs:121:12
    |
 42 | impl PackageManifest {
    | -------------------- method in this implementation
...
121 |     pub fn version(&self) -> Result<semver::Version> {
    |            ^^^^^^^

warning: static `PYTHON_RUNTIME` is never used
  --> src/runtime/python/mod.rs:18:8
   |
18 | static PYTHON_RUNTIME: OnceLock<Arc<PythonRuntime>> = OnceLock::new();
   |        ^^^^^^^^^^^^^^

warning: associated items `init_global`, `global`, `is_module_imported`, and `call_method` are never used
   --> src/runtime/python/mod.rs:42:12
    |
 30 | impl PythonRuntime {
    | ------------------ associated items in this implementation
...
 42 |     pub fn init_global(max_workers: usize) -> Result<Arc<PythonRuntime>> {
    |            ^^^^^^^^^^^
...
 51 |     pub fn global() -> Option<Arc<PythonRuntime>> {
    |            ^^^^^^
...
 79 |     pub fn is_module_imported(&self, module: &str) -> bool {
    |            ^^^^^^^^^^^^^^^^^^
...
194 |     pub fn call_method(
    |            ^^^^^^^^^^^

warning: function `is_python_ref` is never used
   --> src/runtime/python/mod.rs:233:8
    |
233 | pub fn is_python_ref(value: &Value) -> bool {
    |        ^^^^^^^^^^^^^

warning: function `get_python_ref` is never used
   --> src/runtime/python/mod.rs:238:8
    |
238 | pub fn get_python_ref(value: &Value) -> Option<&str> {
    |        ^^^^^^^^^^^^^^

warning: variant `Getattr` is never constructed
  --> src/runtime/python/protocol.rs:22:5
   |
12 | pub enum PythonRequest {
   |          ------------- variant in this enum
...
22 |     Getattr {
   |     ^^^^^^^
   |
   = note: `PythonRequest` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: method `id` is never used
  --> src/runtime/python/protocol.rs:54:12
   |
33 | impl PythonRequest {
   | ------------------ method in this implementation
...
54 |     pub fn id(&self) -> &str {
   |            ^^

warning: field `id` is never read
  --> src/runtime/python/protocol.rs:76:9
   |
75 | pub struct PythonResponse {
   |            -------------- field in this struct
76 |     pub id: String,
   |         ^^
   |
   = note: `PythonResponse` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: methods `into_value` and `get_ref` are never used
   --> src/runtime/python/protocol.rs:92:12
    |
 85 | impl PythonResponse {
    | ------------------- methods in this implementation
...
 92 |     pub fn into_value(self) -> Option<Value> {
    |            ^^^^^^^^^^
...
101 |     pub fn get_ref(&self) -> Option<&str> {
    |            ^^^^^^^

warning: method `worker_count` is never used
   --> src/runtime/python/worker.rs:245:12
    |
198 | impl PythonWorkerPool {
    | --------------------- method in this implementation
...
245 |     pub fn worker_count(&self) -> usize {
    |            ^^^^^^^^^^^^

warning: methods `contains`, `list_slugs`, and `clear` are never used
   --> src/services/tool_registry.rs:45:12
    |
 14 | impl ToolRegistry {
    | ----------------- methods in this implementation
...
 45 |     pub fn contains(&self, slug: &str) -> bool {
    |            ^^^^^^^^
...
 50 |     pub fn list_slugs(&self) -> Vec<String> {
    |            ^^^^^^^^^^
...
118 |     pub fn clear(&mut self) {
    |            ^^^^^

warning: fields `calls` and `chat_id` are never read
  --> src/services/jug0.rs:27:17
   |
27 |     ToolCalls { calls: Vec<Value>, chat_id: String },
   |     ---------   ^^^^^              ^^^^^^^
   |     |
   |     fields in this variant
   |
   = note: `ChatOutput` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `handle` is never read
  --> src/services/jug0.rs:61:9
   |
60 | pub struct HandleLookup {
   |            ------------ field in this struct
61 |     pub handle: String,
   |         ^^^^^^
   |
   = note: `HandleLookup` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `id`, `description`, `username`, and `avatar` are never read
  --> src/services/jug0.rs:69:9
   |
68 | pub struct RemoteAgentDetail {
   |            ----------------- fields in this struct
69 |     pub id: Uuid,
   |         ^^
...
72 |     pub description: Option<String>,
   |         ^^^^^^^^^^^
...
75 |     pub username: Option<String>,
   |         ^^^^^^^^
76 |     pub avatar: Option<String>,
   |         ^^^^^^
   |
   = note: `RemoteAgentDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `id` and `slug` are never read
  --> src/services/jug0.rs:83:9
   |
82 | pub struct RemotePromptDetail {
   |            ------------------ fields in this struct
83 |     pub id: Uuid,
   |         ^^
84 |     pub slug: String,
   |         ^^^^
   |
   = note: `RemotePromptDetail` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `model`, `stream`, and `memory` are never read
   --> src/services/web_server.rs:144:9
    |
138 | pub struct ChatRequest {
    |            ----------- fields in this struct
...
144 |     pub model: Option<String>,
    |         ^^^^^
145 |     pub tools: Option<Vec<Value>>,
146 |     pub stream: Option<bool>,
    |         ^^^^^^
147 |     pub memory: Option<bool>,
    |         ^^^^^^
    |
    = note: `ChatRequest` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis

warning: field `model` is never read
   --> src/services/web_server.rs:163:9
    |
160 | pub struct AgentConfigInput {
    |            ---------------- field in this struct
...
163 |     pub model: Option<String>,
    |         ^^^^^
    |
    = note: `AgentConfigInput` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis

warning: fields `data` and `tool_call_id` are never read
   --> src/services/web_server.rs:174:9
    |
169 | pub struct MessagePart {
    |            ----------- fields in this struct
...
174 |     pub data: Option<Value>,
    |         ^^^^
175 |     pub tool_call_id: Option<String>,
    |         ^^^^^^^^^^^^
    |
    = note: `MessagePart` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis

warning: method `total_duration` is never used
  --> src/testing/mod.rs:68:12
   |
59 | impl FileTestResult {
   | ------------------- method in this implementation
...
68 |     pub fn total_duration(&self) -> Duration {
   |            ^^^^^^^^^^^^^^

warning: associated function `is_test_file` is never used
   --> src/testing/mod.rs:362:12
    |
 80 | impl TestRunner {
    | --------------- associated function in this implementation
...
362 |     pub fn is_test_file(path: &Path) -> bool {
    |            ^^^^^^^^^^^^

warning: function `show_status` is never used
  --> src/ui/render.rs:24:8
   |
24 | pub fn show_status(chat_id: Option<&str>, status: &str, depth: usize) {
   |        ^^^^^^^^^^^

warning: field `id` is never read
  --> src/ui/tui/claude_code.rs:20:20
   |
20 |     ToolUseStart { id: String, name: String },
   |     ------------   ^^
   |     |
   |     field in this variant
   |
   = note: `ClaudeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `index` is never read
  --> src/ui/tui/claude_code.rs:24:24
   |
24 |     ContentBlockStop { index: u32 },
   |     ----------------   ^^^^^
   |     |
   |     field in this variant
   |
   = note: `ClaudeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `duration_ms` is never read
  --> src/ui/tui/claude_code.rs:32:9
   |
30 |     Result {
   |     ------ field in this variant
31 |         cost_usd: f64,
32 |         duration_ms: u64,
   |         ^^^^^^^^^^^
   |
   = note: `ClaudeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: fields `tool_name` and `input` are never read
  --> src/ui/tui/claude_code.rs:40:9
   |
38 |     PermissionRequest {
   |     ----------------- fields in this variant
39 |         request_id: String,
40 |         tool_name: String,
   |         ^^^^^^^^^
41 |         input: serde_json::Value,
   |         ^^^^^
   |
   = note: `ClaudeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: field `success` is never read
  --> src/ui/tui/claude_code.rs:45:9
   |
44 |     ProcessExited {
   |     ------------- field in this variant
45 |         success: bool,
   |         ^^^^^^^
   |
   = note: `ClaudeEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis

warning: variant `PermissionRequest` is never constructed
  --> src/ui/tui/dialog.rs:20:5
   |
13 | pub enum Dialog {
   |          ------ variant in this enum
...
20 |     PermissionRequest {
   |     ^^^^^^^^^^^^^^^^^
   |
   = note: `Dialog` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: fields `0` and `1` are never read
  --> src/ui/tui/event.rs:12:12
   |
12 |     Resize(u16, u16),
   |     ------ ^^^  ^^^
   |     |
   |     fields in this variant
   |
   = note: `AppEvent` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
   |
12 -     Resize(u16, u16),
12 +     Resize((), ()),
   |

warning: fields `tick_counter` and `request_start` are never read
   --> src/ui/tui/messages.rs:197:9
    |
191 | pub struct MessagesWidget<'a> {
    |            -------------- fields in this struct
...
197 |     pub tick_counter: u32,
    |         ^^^^^^^^^^^^
198 |     pub request_start: Option<Instant>,
    |         ^^^^^^^^^^^^^

warning: fields `border_focused`, `user_msg`, and `assistant_msg` are never read
  --> src/ui/tui/theme.rs:9:9
   |
 4 | pub struct Theme {
   |            ----- fields in this struct
...
 9 |     pub border_focused: Color,
   |         ^^^^^^^^^^^^^^
10 |     pub user_msg: Color,
   |         ^^^^^^^^
11 |     pub assistant_msg: Color,
   |         ^^^^^^^^^^^^^
   |
   = note: `Theme` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
   --> src/adapters/feishu.rs:187:5
    |
187 |     drop(bot_config);
    |     ^^^^^----------^
    |          |
    |          argument has type `&FeishuBotConfig`
    |
    = note: `#[warn(dropping_references)]` on by default
help: use `let _ = ...` to ignore the expression or result
    |
187 -     drop(bot_config);
187 +     let _ = bot_config;
    |

warning: `juglans` (bin "juglans") generated 63 warnings (12 duplicates) (run `cargo fix --bin "juglans" -p juglans` to apply 8 suggestions)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.23s
     Running `target/debug/juglans chat`
