[INFO] cloning repository https://github.com/dweddepohl/Kanblam [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dweddepohl/Kanblam" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdweddepohl%2FKanblam", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdweddepohl%2FKanblam'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0cf5571dc5cdc99d726d550d03bc6b6917370afd [INFO] testing dweddepohl/Kanblam against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdweddepohl%2FKanblam" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dweddepohl/Kanblam [INFO] finished tweaking git repo https://github.com/dweddepohl/Kanblam [INFO] tweaked toml for git repo https://github.com/dweddepohl/Kanblam written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dweddepohl/Kanblam on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/dweddepohl/Kanblam 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [ERROR] error running command: no output for 300 seconds [INFO] testing dweddepohl/Kanblam against try#8da20828b6ea601dfd8e2448cb50ace88876bd78 for pr-150933 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdweddepohl%2FKanblam" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dweddepohl/Kanblam [INFO] finished tweaking git repo https://github.com/dweddepohl/Kanblam [INFO] tweaked toml for git repo https://github.com/dweddepohl/Kanblam written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dweddepohl/Kanblam on toolchain 8da20828b6ea601dfd8e2448cb50ace88876bd78 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/dweddepohl/Kanblam 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" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded vte_generate_state_changes v0.1.2 [INFO] [stderr] Downloaded symphonia v0.5.5 [INFO] [stderr] Downloaded symphonia-metadata v0.5.5 [INFO] [stderr] Downloaded vt100 v0.15.2 [INFO] [stderr] Downloaded atomic v0.6.1 [INFO] [stderr] Downloaded vte v0.11.1 [INFO] [stderr] Downloaded symphonia-core v0.5.5 [INFO] [stderr] Downloaded lab v0.11.0 [INFO] [stderr] Downloaded wezterm-color-types v0.3.0 [INFO] [stderr] Downloaded lebe v0.5.3 [INFO] [stderr] Downloaded edtui-jagged v0.1.13 [INFO] [stderr] Downloaded rodio v0.17.3 [INFO] [stderr] Downloaded memmem v0.1.1 [INFO] [stderr] Downloaded wezterm-blob-leases v0.1.1 [INFO] [stderr] Downloaded fax_derive v0.2.0 [INFO] [stderr] Downloaded error-code v3.3.2 [INFO] [stderr] Downloaded ratatui-crossterm v0.1.0 [INFO] [stderr] Downloaded ratatui-macros v0.7.0 [INFO] [stderr] Downloaded pest_meta v2.8.5 [INFO] [stderr] Downloaded clipboard-win v5.4.1 [INFO] [stderr] Downloaded quick-error v2.0.1 [INFO] [stderr] Downloaded arboard v3.6.1 [INFO] [stderr] Downloaded zune-jpeg v0.4.21 [INFO] [stderr] Downloaded finl_unicode v1.4.0 [INFO] [stderr] Downloaded wezterm-bidi v0.2.3 [INFO] [stderr] Downloaded qoi v0.4.1 [INFO] [stderr] Downloaded pest v2.8.5 [INFO] [stderr] Downloaded ratatui-core v0.1.0 [INFO] [stderr] Downloaded fancy-regex v0.11.0 [INFO] [stderr] Downloaded compact_str v0.9.0 [INFO] [stderr] Downloaded exr v1.74.0 [INFO] [stderr] Downloaded time v0.3.45 [INFO] [stderr] Downloaded ratatui-widgets v0.3.0 [INFO] [stderr] Downloaded tmux_interface v0.3.2 [INFO] [stderr] Downloaded ratatui v0.30.0 [INFO] [stderr] Downloaded symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Downloaded notify v6.1.1 [INFO] [stderr] Downloaded terminfo v0.9.0 [INFO] [stderr] Downloaded termwiz v0.23.3 [INFO] [stderr] Downloaded termios v0.3.3 [INFO] [stderr] Downloaded zune-core v0.4.12 [INFO] [stderr] Downloaded enum_dispatch v0.3.13 [INFO] [stderr] Downloaded zune-inflate v0.2.54 [INFO] [stderr] Downloaded gif v0.13.3 [INFO] [stderr] Downloaded weezl v0.1.12 [INFO] [stderr] Downloaded pest_generator v2.8.5 [INFO] [stderr] Downloaded pest_derive v2.8.5 [INFO] [stderr] Downloaded csscolorparser v0.6.2 [INFO] [stderr] Downloaded wezterm-input-types v0.1.0 [INFO] [stderr] Downloaded lru v0.16.3 [INFO] [stderr] Downloaded strum_macros v0.27.2 [INFO] [stderr] Downloaded strum v0.27.2 [INFO] [stderr] Downloaded fax v0.2.6 [INFO] [stderr] Downloaded jpeg-decoder v0.3.2 [INFO] [stderr] Downloaded exec v0.3.1 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded time-core v0.1.7 [INFO] [stderr] Downloaded mac_address v1.1.8 [INFO] [stderr] Downloaded ratatui-termwiz v0.1.0 [INFO] [stderr] Downloaded kasuari v0.4.11 [INFO] [stderr] Downloaded bit_field v0.10.3 [INFO] [stderr] Downloaded filedescriptor v0.8.3 [INFO] [stderr] Downloaded vtparse v0.6.2 [INFO] [stderr] Downloaded line-clipping v0.3.5 [INFO] [stderr] Downloaded unicode-truncate v2.0.0 [INFO] [stderr] Downloaded wezterm-dynamic v0.2.1 [INFO] [stderr] Downloaded wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Downloaded instability v0.3.7 [INFO] [stderr] Downloaded tiff v0.10.3 [INFO] [stderr] Downloaded tiff v0.9.1 [INFO] [stderr] Downloaded deltae v0.3.2 [INFO] [stderr] Downloaded edtui v0.10.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 64ebe67a9042f76cbd8117a188ef0092b3ba15c1c5be44be60376a2f11110fc5 [INFO] running `Command { std: "docker" "start" "-a" "64ebe67a9042f76cbd8117a188ef0092b3ba15c1c5be44be60376a2f11110fc5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "64ebe67a9042f76cbd8117a188ef0092b3ba15c1c5be44be60376a2f11110fc5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "64ebe67a9042f76cbd8117a188ef0092b3ba15c1c5be44be60376a2f11110fc5", kill_on_drop: false }` [INFO] [stdout] 64ebe67a9042f76cbd8117a188ef0092b3ba15c1c5be44be60376a2f11110fc5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4529ecead110c9c373b496d2db9ec55bef6905a2c4c41997e011b6fea277d5be [INFO] running `Command { std: "docker" "start" "-a" "4529ecead110c9c373b496d2db9ec55bef6905a2c4c41997e011b6fea277d5be", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.105 [INFO] [stderr] Compiling quote v1.0.43 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling bitflags v2.10.0 [INFO] [stderr] Compiling log v0.4.29 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling unicode-segmentation v1.12.0 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling rustversion v1.0.22 [INFO] [stderr] Compiling adler2 v2.0.1 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling thiserror v2.0.17 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Compiling bytemuck v1.24.0 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Compiling ryu v1.0.22 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling itertools v0.14.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling convert_case v0.10.0 [INFO] [stderr] Compiling powerfmt v0.2.0 [INFO] [stderr] Compiling fdeflate v0.3.7 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Compiling zerocopy v0.8.33 [INFO] [stderr] Compiling litrs v1.0.0 [INFO] [stderr] Compiling deranged v0.5.5 [INFO] [stderr] Compiling time-core v0.1.7 [INFO] [stderr] Compiling num_threads v0.1.7 [INFO] [stderr] Compiling flate2 v1.1.8 [INFO] [stderr] Compiling symphonia-core v0.5.5 [INFO] [stderr] Compiling lru v0.16.3 [INFO] [stderr] Compiling alsa-sys v0.3.1 [INFO] [stderr] Compiling line-clipping v0.3.5 [INFO] [stderr] Compiling syn v2.0.114 [INFO] [stderr] Compiling document-features v0.2.12 [INFO] [stderr] Compiling castaway v0.2.4 [INFO] [stderr] Compiling unicode-truncate v2.0.0 [INFO] [stderr] Compiling compact_str v0.9.0 [INFO] [stderr] Compiling encoding_rs v0.8.35 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling weezl v0.1.12 [INFO] [stderr] Compiling cpal v0.15.3 [INFO] [stderr] Compiling zmij v1.0.14 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling pxfm v0.1.27 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling time v0.3.45 [INFO] [stderr] Compiling signal-hook-mio v0.2.5 [INFO] [stderr] Compiling png v0.18.0 [INFO] [stderr] Compiling symphonia-metadata v0.5.5 [INFO] [stderr] Compiling alsa v0.9.1 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.2 [INFO] [stderr] Compiling zune-inflate v0.2.54 [INFO] [stderr] Compiling x11rb-protocol v0.13.2 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling jpeg-decoder v0.3.2 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Compiling bit_field v0.10.3 [INFO] [stderr] Compiling option-ext v0.2.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.15 [INFO] [stderr] Compiling dasp_sample v0.11.0 [INFO] [stderr] Compiling symphonia-bundle-mp3 v0.5.5 [INFO] [stderr] Compiling lebe v0.5.3 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling vte v0.11.1 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling dirs-sys v0.4.1 [INFO] [stderr] Compiling gif v0.13.3 [INFO] [stderr] Compiling inotify v0.9.6 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling gethostname v1.1.0 [INFO] [stderr] Compiling tiff v0.9.1 [INFO] [stderr] Compiling moxcms v0.7.11 [INFO] [stderr] Compiling symphonia v0.5.5 [INFO] [stderr] Compiling png v0.17.16 [INFO] [stderr] Compiling filetime v0.2.26 [INFO] [stderr] Compiling errno v0.2.8 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling qoi v0.4.1 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling edtui-jagged v0.1.13 [INFO] [stderr] Compiling percent-encoding v2.3.2 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling notify v6.1.1 [INFO] [stderr] Compiling vt100 v0.15.2 [INFO] [stderr] Compiling rodio v0.17.3 [INFO] [stderr] Compiling exec v0.3.1 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling crossterm v0.28.1 [INFO] [stderr] Compiling dirs v5.0.1 [INFO] [stderr] Compiling tmux_interface v0.3.2 [INFO] [stderr] Compiling thiserror-impl v2.0.17 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling zerocopy-derive v0.8.33 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tokio v1.49.0 [INFO] [stderr] Compiling derive_more v2.1.1 [INFO] [stderr] Compiling crossterm v0.29.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling kasuari v0.4.11 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling x11rb v0.13.2 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling instability v0.3.7 [INFO] [stderr] Compiling ratatui-core v0.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling ratatui-widgets v0.3.0 [INFO] [stderr] Compiling ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling image v0.25.9 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling exr v1.74.0 [INFO] [stderr] Compiling ratatui-macros v0.7.0 [INFO] [stderr] Compiling edtui v0.10.6 [INFO] [stderr] Compiling ratatui v0.30.0 [INFO] [stderr] Compiling arboard v3.6.1 [INFO] [stderr] Compiling image v0.24.9 [INFO] [stderr] Compiling kanclaude v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `SessionMode` [INFO] [stdout] --> src/app.rs:2:127 [INFO] [stdout] | [INFO] [stdout] 2 | ...ingAction, PendingConfirmation, Project, Task, TaskStatus, SessionMode}; [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: `std::io::Cursor` [INFO] [stdout] --> src/notify/audio.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::Cursor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NotificationSound` [INFO] [stdout] --> src/notify/mod.rs:4:39 [INFO] [stdout] | [INFO] [stdout] 4 | pub use audio::{play_attention_sound, NotificationSound}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/sidecar/protocol.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `capture::capture_pane_output` [INFO] [stdout] --> src/tmux/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use capture::capture_pane_output; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DetachedSessionResult`, `capture_task_output`, `create_task_window`, `focus_task_window`, `get_or_create_project_session`, `resize_pane`, `send_resume_command`, `send_sigwinch`, `send_start_command`, `start_claude_in_window`, `switch_to_session`, and `wait_for_claude_ready` [INFO] [stdout] --> src/tmux/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | switch_to_session, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | // Worktree-based task session management [INFO] [stdout] 8 | get_or_create_project_session, create_task_window, start_claude_in_window, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | wait_for_claude_ready, send_task_to_window, focus_task_window, switch_to_task_window, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | kill_task_window, kill_task_sessions, task_window_exists, capture_task_output, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | // Detached session creation [INFO] [stdout] 12 | DetachedSessionResult, open_popup_detached, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | // SDK/CLI handoff support [INFO] [stdout] 14 | send_resume_command, send_start_command, send_key_to_pane, capture_pane_with_escapes, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | resize_pane, send_sigwinch, get_pane_size, open_popup, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `output::render_output` [INFO] [stdout] --> src/ui/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use output::render_output; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChangedFile`, `WorktreeGitStatus`, `WorktreeInfo`, `abort_rebase`, `get_task_diff`, `get_worktree_path`, `is_branch_merged`, `is_git_repo`, and `list_worktrees` [INFO] [stdout] --> src/worktree/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | get_worktree_path, list_worktrees, WorktreeInfo, is_git_repo, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 13 | get_task_diff, apply_task_changes, unapply_task_changes, force_unapply_task_changes, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | generate_apply_prompt, is_rebase_in_progress, abort_rebase, try_fast_rebase, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 17 | commit_worktree_changes, has_changes_to_merge, commit_main_changes, commit_applied_changes, [INFO] [stdout] 18 | get_worktree_git_status, update_worktree_to_main, WorktreeGitStatus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | get_worktree_changed_files, ChangedFile, is_branch_merged, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `setup_claude_settings` [INFO] [stdout] --> src/worktree/mod.rs:22:20 [INFO] [stdout] | [INFO] [stdout] 22 | pub use settings::{setup_claude_settings, merge_with_project_settings, pre_trust_worktree, remove_worktree_trust}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncTaskSender` [INFO] [stdout] --> src/main.rs:12:40 [INFO] [stdout] | [INFO] [stdout] 12 | use app::{load_state, save_state, App, AsyncTaskSender}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_git` [INFO] [stdout] --> src/app.rs:1196:57 [INFO] [stdout] | [INFO] [stdout] 1196 | if let Some((project_slug, project_dir, is_git, window_name, worktree_path, git_branch)) = task_info { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_git` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `task` [INFO] [stdout] --> src/app.rs:3137:33 [INFO] [stdout] | [INFO] [stdout] 3137 | if let Some(task) = project.tasks.iter_mut().find(|t| t.id == task_id) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dark_green` [INFO] [stdout] --> src/ui/mod.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | let dark_green = Color::Rgb(60, 150, 90); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dark_green` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/worktree/git.rs:511:9 [INFO] [stdout] | [INFO] [stdout] 511 | let mut log = |msg: &str| { [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: variable `sidecar_child` is assigned to, but never used [INFO] [stdout] --> src/main.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | let mut sidecar_child = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sidecar_child` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sidecar_child` is never read [INFO] [stdout] --> src/main.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | sidecar_child = child; // Store handle if we spawned it [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `super_key` [INFO] [stdout] --> src/main.rs:673:9 [INFO] [stdout] | [INFO] [stdout] 673 | let super_key = key.modifiers.contains(KeyModifiers::SUPER); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_super_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/main.rs:1666:9 [INFO] [stdout] | [INFO] [stdout] 1611 | KeyCode::Char('r') => { [INFO] [stdout] | ------------------ matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1666 | KeyCode::Char('r') => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `select_task` are never used [INFO] [stdout] --> src/app.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl App { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn select_task(&mut self, idx: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_project_check` is never used [INFO] [stdout] --> src/app.rs:4582:8 [INFO] [stdout] | [INFO] [stdout] 4582 | pub fn run_project_check(project: &Project) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `reason` is never read [INFO] [stdout] --> src/hooks/watcher.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 17 | SessionEnded { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] ... [INFO] [stdout] 20 | reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `input_type` is never read [INFO] [stdout] --> src/hooks/watcher.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | NeedsInput { [INFO] [stdout] | ---------- field in this variant [INFO] [stdout] ... [INFO] [stdout] 26 | input_type: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `signal_dir` is never used [INFO] [stdout] --> src/hooks/watcher.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl HookWatcher { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn signal_dir(&self) -> &PathBuf { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clipboard_has_image` is never used [INFO] [stdout] --> src/image/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn clipboard_has_image() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/message.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Message { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | SelectTask(Option), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | UpdateTaskSessionState { task_id: Uuid, state: crate::model::ClaudeSessionState }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | AcceptTask(Uuid), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | DiscardTask(Uuid), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | AddProject { name: String, working_dir: PathBuf }, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | ClaudeOutputUpdated { project_id: Uuid, output: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | SdkSessionOutput { task_id: Uuid, output: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | AttachImage { task_id: Uuid, path: PathBuf }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | QuitAndSwitchPane(String), // Quit and switch to this pane ID [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Message` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `effective_check`, `effective_run`, and `effective_test` are never used [INFO] [stdout] --> src/model/mod.rs:436:12 [INFO] [stdout] | [INFO] [stdout] 375 | impl ProjectCommands { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 436 | pub fn effective_check(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 441 | pub fn effective_run(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | pub fn effective_test(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `in_progress_task`, `next_queued_for_mut`, and `next_queued_task` are never used [INFO] [stdout] --> src/model/mod.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 469 | impl Project { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 589 | pub fn in_progress_task(&self) -> Option<&Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 611 | pub fn next_queued_for_mut(&mut self, task_id: Uuid) -> Option<&mut Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 616 | pub fn next_queued_task(&self) -> Option<&Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_start`, `can_continue`, `with_description`, and `with_image` are never used [INFO] [stdout] --> src/model/mod.rs:870:12 [INFO] [stdout] | [INFO] [stdout] 814 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 870 | pub fn can_start(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 876 | pub fn can_continue(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 882 | pub fn with_description(mut self, description: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 887 | pub fn with_image(mut self, image_path: PathBuf) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `terminal_buffer` is never read [INFO] [stdout] --> src/model/mod.rs:1044:9 [INFO] [stdout] | [INFO] [stdout] 1038 | pub struct InteractiveModal { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1044 | pub terminal_buffer: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InteractiveModal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_global` is never used [INFO] [stdout] --> src/model/mod.rs:1099:12 [INFO] [stdout] | [INFO] [stdout] 1061 | impl ConfigField { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1099 | pub fn is_global(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_interactive_modal_open` is never used [INFO] [stdout] --> src/model/mod.rs:1237:12 [INFO] [stdout] | [INFO] [stdout] 1235 | impl UiState { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 1236 | /// Check if the interactive modal is open [INFO] [stdout] 1237 | pub fn is_interactive_modal_open(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OutputViewer` is never constructed [INFO] [stdout] --> src/model/mod.rs:1320:5 [INFO] [stdout] | [INFO] [stdout] 1315 | pub enum FocusArea { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1320 | OutputViewer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FocusArea` 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 `NotificationSound` is never used [INFO] [stdout] --> src/notify/audio.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum NotificationSound { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `play_test_sound` is never used [INFO] [stdout] --> src/notify/audio.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn play_test_sound() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_attention_indicator` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn has_attention_indicator() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_attention_project` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn get_attention_project() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tmux_config_hint` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn get_tmux_config_hint() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_session` is never used [INFO] [stdout] --> src/sidecar/client.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl SidecarClient { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn get_session(&self, task_id: uuid::Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `jsonrpc` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 30 | pub struct JsonRpcResponse { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 31 | pub jsonrpc: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonRpcResponse` 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 `data` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct JsonRpcError { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 45 | pub data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonRpcError` 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 `jsonrpc` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct JsonRpcNotification { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 51 | pub jsonrpc: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonRpcNotification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetSessionParams` is never constructed [INFO] [stdout] --> src/sidecar/protocol.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct GetSessionParams { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetSessionResult` is never constructed [INFO] [stdout] --> src/sidecar/protocol.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct GetSessionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `message` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct SidecarEvent { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 158 | pub message: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SidecarEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSE_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 180 | pub const PARSE_ERROR: i32 = -32700; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVALID_REQUEST` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:181:15 [INFO] [stdout] | [INFO] [stdout] 181 | pub const INVALID_REQUEST: i32 = -32600; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `METHOD_NOT_FOUND` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | pub const METHOD_NOT_FOUND: i32 = -32601; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVALID_PARAMS` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:183:15 [INFO] [stdout] | [INFO] [stdout] 183 | pub const INVALID_PARAMS: i32 = -32602; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INTERNAL_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:184:15 [INFO] [stdout] | [INFO] [stdout] 184 | pub const INTERNAL_ERROR: i32 = -32603; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SESSION_NOT_FOUND` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:185:15 [INFO] [stdout] | [INFO] [stdout] 185 | pub const SESSION_NOT_FOUND: i32 = -32000; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SESSION_ALREADY_EXISTS` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | pub const SESSION_ALREADY_EXISTS: i32 = -32001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SDK_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:187:15 [INFO] [stdout] | [INFO] [stdout] 187 | pub const SDK_ERROR: i32 = -32002; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_pane_output` is never used [INFO] [stdout] --> src/tmux/capture.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn capture_pane_output(pane_id: &str, lines: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_recent_output` is never used [INFO] [stdout] --> src/tmux/capture.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn capture_recent_output(pane_id: &str, num_lines: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_content_hash` is never used [INFO] [stdout] --> src/tmux/capture.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn get_content_hash(pane_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `switch_to_session` is never used [INFO] [stdout] --> src/tmux/session.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn switch_to_session(pane_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_claude_task` is never used [INFO] [stdout] --> src/tmux/session.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn start_claude_task(pane_id: &str, task_description: &str, images: &[PathBuf]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_or_create_project_session` is never used [INFO] [stdout] --> src/tmux/session.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn get_or_create_project_session(project_slug: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task_window` is never used [INFO] [stdout] --> src/tmux/session.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn create_task_window( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_claude_in_window` is never used [INFO] [stdout] --> src/tmux/session.rs:193:8 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn start_claude_in_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_resume_command` is never used [INFO] [stdout] --> src/tmux/session.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn send_resume_command(project_slug: &str, window_name: &str, session_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_start_command` is never used [INFO] [stdout] --> src/tmux/session.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn send_start_command(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resize_pane` is never used [INFO] [stdout] --> src/tmux/session.rs:248:8 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn resize_pane(target: &str, width: u16, height: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_sigwinch` is never used [INFO] [stdout] --> src/tmux/session.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn send_sigwinch(target: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_claude_ready` is never used [INFO] [stdout] --> src/tmux/session.rs:433:8 [INFO] [stdout] | [INFO] [stdout] 433 | pub fn wait_for_claude_ready(project_slug: &str, window_name: &str, timeout_ms: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `focus_task_window` is never used [INFO] [stdout] --> src/tmux/session.rs:505:8 [INFO] [stdout] | [INFO] [stdout] 505 | pub fn focus_task_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_task_output` is never used [INFO] [stdout] --> src/tmux/session.rs:683:8 [INFO] [stdout] | [INFO] [stdout] 683 | pub fn capture_task_output(project_slug: &str, window_name: &str, lines: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASCOT_MAGENTA` is never used [INFO] [stdout] --> src/ui/logo.rs:132:7 [INFO] [stdout] | [INFO] [stdout] 132 | const MASCOT_MAGENTA: Color = Color::Rgb(180, 70, 120); // Softer magenta, less neon [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASCOT_MAGENTA_SAT` is never used [INFO] [stdout] --> src/ui/logo.rs:138:7 [INFO] [stdout] | [INFO] [stdout] 138 | const MASCOT_MAGENTA_SAT: Color = Color::Rgb(255, 50, 150); // Electric magenta [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Minimal` and `None` are never constructed [INFO] [stdout] --> src/ui/logo.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub enum LogoSize { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 154 | Minimal, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 155 | /// No branding (too small) [INFO] [stdout] 156 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LogoSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_logo` is never used [INFO] [stdout] --> src/ui/logo.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn render_logo(frame: &mut Frame, area: Rect, shimmer_frame: u8, eye_animation: EyeAnimation, animation_frame: usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `logo_width_needed` is never used [INFO] [stdout] --> src/ui/logo.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn logo_width_needed(available_width: u16, available_height: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_output` is never used [INFO] [stdout] --> src/ui/output.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn render_output(frame: &mut Frame, area: Rect, app: &App) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_placeholder_output` is never used [INFO] [stdout] --> src/ui/output.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn get_placeholder_output(task_title: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> src/ui/output.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn truncate(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorktreeInfo` is never constructed [INFO] [stdout] --> src/worktree/git.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct WorktreeInfo { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_worktrees` is never used [INFO] [stdout] --> src/worktree/git.rs:771:8 [INFO] [stdout] | [INFO] [stdout] 771 | pub fn list_worktrees(project_dir: &PathBuf) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_diff` is never used [INFO] [stdout] --> src/worktree/git.rs:828:8 [INFO] [stdout] | [INFO] [stdout] 828 | pub fn get_task_diff(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_base_branch` is never used [INFO] [stdout] --> src/worktree/git.rs:848:4 [INFO] [stdout] | [INFO] [stdout] 848 | fn find_base_branch(project_dir: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_branch_merged` is never used [INFO] [stdout] --> src/worktree/git.rs:886:8 [INFO] [stdout] | [INFO] [stdout] 886 | pub fn is_branch_merged(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abort_rebase` is never used [INFO] [stdout] --> src/worktree/git.rs:1267:8 [INFO] [stdout] | [INFO] [stdout] 1267 | pub fn abort_rebase(worktree_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_claude_settings` is never used [INFO] [stdout] --> src/worktree/settings.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn setup_claude_settings( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 29.12s [INFO] running `Command { std: "docker" "inspect" "4529ecead110c9c373b496d2db9ec55bef6905a2c4c41997e011b6fea277d5be", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4529ecead110c9c373b496d2db9ec55bef6905a2c4c41997e011b6fea277d5be", kill_on_drop: false }` [INFO] [stdout] 4529ecead110c9c373b496d2db9ec55bef6905a2c4c41997e011b6fea277d5be [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5d1bc7bf6372ceb43db87387df5183f6cd6e6603e8e24bb4ee0440ff0620dde8 [INFO] running `Command { std: "docker" "start" "-a" "5d1bc7bf6372ceb43db87387df5183f6cd6e6603e8e24bb4ee0440ff0620dde8", kill_on_drop: false }` [INFO] [stderr] Compiling kanclaude v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `SessionMode` [INFO] [stdout] --> src/app.rs:2:127 [INFO] [stdout] | [INFO] [stdout] 2 | ...ingAction, PendingConfirmation, Project, Task, TaskStatus, SessionMode}; [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: `std::io::Cursor` [INFO] [stdout] --> src/notify/audio.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::Cursor; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `NotificationSound` [INFO] [stdout] --> src/notify/mod.rs:4:39 [INFO] [stdout] | [INFO] [stdout] 4 | pub use audio::{play_attention_sound, NotificationSound}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/sidecar/protocol.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `capture::capture_pane_output` [INFO] [stdout] --> src/tmux/mod.rs:4:9 [INFO] [stdout] | [INFO] [stdout] 4 | pub use capture::capture_pane_output; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DetachedSessionResult`, `capture_task_output`, `create_task_window`, `focus_task_window`, `get_or_create_project_session`, `resize_pane`, `send_resume_command`, `send_sigwinch`, `send_start_command`, `start_claude_in_window`, `switch_to_session`, and `wait_for_claude_ready` [INFO] [stdout] --> src/tmux/mod.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | switch_to_session, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 7 | // Worktree-based task session management [INFO] [stdout] 8 | get_or_create_project_session, create_task_window, start_claude_in_window, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 9 | wait_for_claude_ready, send_task_to_window, focus_task_window, switch_to_task_window, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 10 | kill_task_window, kill_task_sessions, task_window_exists, capture_task_output, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 11 | // Detached session creation [INFO] [stdout] 12 | DetachedSessionResult, open_popup_detached, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | // SDK/CLI handoff support [INFO] [stdout] 14 | send_resume_command, send_start_command, send_key_to_pane, capture_pane_with_escapes, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | resize_pane, send_sigwinch, get_pane_size, open_popup, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `output::render_output` [INFO] [stdout] --> src/ui/mod.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | pub use output::render_output; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `ChangedFile`, `WorktreeGitStatus`, `WorktreeInfo`, `abort_rebase`, `get_task_diff`, `get_worktree_path`, `is_branch_merged`, `is_git_repo`, and `list_worktrees` [INFO] [stdout] --> src/worktree/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | get_worktree_path, list_worktrees, WorktreeInfo, is_git_repo, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] 13 | get_task_diff, apply_task_changes, unapply_task_changes, force_unapply_task_changes, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 16 | generate_apply_prompt, is_rebase_in_progress, abort_rebase, try_fast_rebase, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 17 | commit_worktree_changes, has_changes_to_merge, commit_main_changes, commit_applied_changes, [INFO] [stdout] 18 | get_worktree_git_status, update_worktree_to_main, WorktreeGitStatus, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 19 | get_worktree_changed_files, ChangedFile, is_branch_merged, [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `setup_claude_settings` [INFO] [stdout] --> src/worktree/mod.rs:22:20 [INFO] [stdout] | [INFO] [stdout] 22 | pub use settings::{setup_claude_settings, merge_with_project_settings, pre_trust_worktree, remove_worktree_trust}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `AsyncTaskSender` [INFO] [stdout] --> src/main.rs:12:40 [INFO] [stdout] | [INFO] [stdout] 12 | use app::{load_state, save_state, App, AsyncTaskSender}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_git` [INFO] [stdout] --> src/app.rs:1196:57 [INFO] [stdout] | [INFO] [stdout] 1196 | if let Some((project_slug, project_dir, is_git, window_name, worktree_path, git_branch)) = task_info { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_git` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `task` [INFO] [stdout] --> src/app.rs:3137:33 [INFO] [stdout] | [INFO] [stdout] 3137 | if let Some(task) = project.tasks.iter_mut().find(|t| t.id == task_id) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_task` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `dark_green` [INFO] [stdout] --> src/ui/mod.rs:266:9 [INFO] [stdout] | [INFO] [stdout] 266 | let dark_green = Color::Rgb(60, 150, 90); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dark_green` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/worktree/git.rs:511:9 [INFO] [stdout] | [INFO] [stdout] 511 | let mut log = |msg: &str| { [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: variable `sidecar_child` is assigned to, but never used [INFO] [stdout] --> src/main.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | let mut sidecar_child = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_sidecar_child` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `sidecar_child` is never read [INFO] [stdout] --> src/main.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | sidecar_child = child; // Store handle if we spawned it [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `super_key` [INFO] [stdout] --> src/main.rs:673:9 [INFO] [stdout] | [INFO] [stdout] 673 | let super_key = key.modifiers.contains(KeyModifiers::SUPER); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_super_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/main.rs:1666:9 [INFO] [stdout] | [INFO] [stdout] 1611 | KeyCode::Char('r') => { [INFO] [stdout] | ------------------ matches all the relevant values [INFO] [stdout] ... [INFO] [stdout] 1666 | KeyCode::Char('r') => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `select_task` are never used [INFO] [stdout] --> src/app.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl App { [INFO] [stdout] | -------- associated items in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | pub fn select_task(&mut self, idx: Option) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `run_project_check` is never used [INFO] [stdout] --> src/app.rs:4582:8 [INFO] [stdout] | [INFO] [stdout] 4582 | pub fn run_project_check(project: &Project) -> Result<(), String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `reason` is never read [INFO] [stdout] --> src/hooks/watcher.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 17 | SessionEnded { [INFO] [stdout] | ------------ field in this variant [INFO] [stdout] ... [INFO] [stdout] 20 | reason: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `input_type` is never read [INFO] [stdout] --> src/hooks/watcher.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 23 | NeedsInput { [INFO] [stdout] | ---------- field in this variant [INFO] [stdout] ... [INFO] [stdout] 26 | input_type: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `signal_dir` is never used [INFO] [stdout] --> src/hooks/watcher.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 62 | impl HookWatcher { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 144 | pub fn signal_dir(&self) -> &PathBuf { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `clipboard_has_image` is never used [INFO] [stdout] --> src/image/mod.rs:18:8 [INFO] [stdout] | [INFO] [stdout] 18 | pub fn clipboard_has_image() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple variants are never constructed [INFO] [stdout] --> src/message.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum Message { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | SelectTask(Option), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 26 | UpdateTaskSessionState { task_id: Uuid, state: crate::model::ClaudeSessionState }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 30 | AcceptTask(Uuid), [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 38 | DiscardTask(Uuid), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 86 | AddProject { name: String, working_dir: PathBuf }, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | ClaudeOutputUpdated { project_id: Uuid, output: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 148 | SdkSessionOutput { task_id: Uuid, output: String }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 168 | AttachImage { task_id: Uuid, path: PathBuf }, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 204 | QuitAndSwitchPane(String), // Quit and switch to this pane ID [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Message` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `effective_check`, `effective_run`, and `effective_test` are never used [INFO] [stdout] --> src/model/mod.rs:436:12 [INFO] [stdout] | [INFO] [stdout] 375 | impl ProjectCommands { [INFO] [stdout] | -------------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 436 | pub fn effective_check(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 441 | pub fn effective_run(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 446 | pub fn effective_test(&self, project_dir: &PathBuf) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `in_progress_task`, `next_queued_for_mut`, and `next_queued_task` are never used [INFO] [stdout] --> src/model/mod.rs:589:12 [INFO] [stdout] | [INFO] [stdout] 469 | impl Project { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 589 | pub fn in_progress_task(&self) -> Option<&Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 611 | pub fn next_queued_for_mut(&mut self, task_id: Uuid) -> Option<&mut Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 616 | pub fn next_queued_task(&self) -> Option<&Task> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `can_start`, `can_continue`, `with_description`, and `with_image` are never used [INFO] [stdout] --> src/model/mod.rs:870:12 [INFO] [stdout] | [INFO] [stdout] 814 | impl Task { [INFO] [stdout] | --------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 870 | pub fn can_start(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 876 | pub fn can_continue(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 882 | pub fn with_description(mut self, description: String) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 887 | pub fn with_image(mut self, image_path: PathBuf) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `terminal_buffer` is never read [INFO] [stdout] --> src/model/mod.rs:1044:9 [INFO] [stdout] | [INFO] [stdout] 1038 | pub struct InteractiveModal { [INFO] [stdout] | ---------------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 1044 | pub terminal_buffer: String, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InteractiveModal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_global` is never used [INFO] [stdout] --> src/model/mod.rs:1099:12 [INFO] [stdout] | [INFO] [stdout] 1061 | impl ConfigField { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 1099 | pub fn is_global(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_interactive_modal_open` is never used [INFO] [stdout] --> src/model/mod.rs:1237:12 [INFO] [stdout] | [INFO] [stdout] 1235 | impl UiState { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 1236 | /// Check if the interactive modal is open [INFO] [stdout] 1237 | pub fn is_interactive_modal_open(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OutputViewer` is never constructed [INFO] [stdout] --> src/model/mod.rs:1320:5 [INFO] [stdout] | [INFO] [stdout] 1315 | pub enum FocusArea { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 1320 | OutputViewer, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FocusArea` 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 `NotificationSound` is never used [INFO] [stdout] --> src/notify/audio.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum NotificationSound { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `play_test_sound` is never used [INFO] [stdout] --> src/notify/audio.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn play_test_sound() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `has_attention_indicator` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn has_attention_indicator() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_attention_project` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:35:8 [INFO] [stdout] | [INFO] [stdout] 35 | pub fn get_attention_project() -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_tmux_config_hint` is never used [INFO] [stdout] --> src/notify/tmux_status.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn get_tmux_config_hint() -> &'static str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_session` is never used [INFO] [stdout] --> src/sidecar/client.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl SidecarClient { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 163 | pub fn get_session(&self, task_id: uuid::Uuid) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `data` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 41 | pub struct JsonRpcError { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 45 | pub data: Option, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonRpcError` 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 `jsonrpc` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:51:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct JsonRpcNotification { [INFO] [stdout] | ------------------- field in this struct [INFO] [stdout] 51 | pub jsonrpc: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `JsonRpcNotification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `GetSessionParams` is never constructed [INFO] [stdout] --> src/sidecar/protocol.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub struct GetSessionParams { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `message` is never read [INFO] [stdout] --> src/sidecar/protocol.rs:158:9 [INFO] [stdout] | [INFO] [stdout] 154 | pub struct SidecarEvent { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 158 | pub message: Option, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SidecarEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `PARSE_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:180:15 [INFO] [stdout] | [INFO] [stdout] 180 | pub const PARSE_ERROR: i32 = -32700; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVALID_REQUEST` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:181:15 [INFO] [stdout] | [INFO] [stdout] 181 | pub const INVALID_REQUEST: i32 = -32600; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `METHOD_NOT_FOUND` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:182:15 [INFO] [stdout] | [INFO] [stdout] 182 | pub const METHOD_NOT_FOUND: i32 = -32601; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INVALID_PARAMS` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:183:15 [INFO] [stdout] | [INFO] [stdout] 183 | pub const INVALID_PARAMS: i32 = -32602; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INTERNAL_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:184:15 [INFO] [stdout] | [INFO] [stdout] 184 | pub const INTERNAL_ERROR: i32 = -32603; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SESSION_ALREADY_EXISTS` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:186:15 [INFO] [stdout] | [INFO] [stdout] 186 | pub const SESSION_ALREADY_EXISTS: i32 = -32001; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SDK_ERROR` is never used [INFO] [stdout] --> src/sidecar/protocol.rs:187:15 [INFO] [stdout] | [INFO] [stdout] 187 | pub const SDK_ERROR: i32 = -32002; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_pane_output` is never used [INFO] [stdout] --> src/tmux/capture.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn capture_pane_output(pane_id: &str, lines: Option) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_recent_output` is never used [INFO] [stdout] --> src/tmux/capture.rs:26:8 [INFO] [stdout] | [INFO] [stdout] 26 | pub fn capture_recent_output(pane_id: &str, num_lines: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_content_hash` is never used [INFO] [stdout] --> src/tmux/capture.rs:31:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn get_content_hash(pane_id: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `switch_to_session` is never used [INFO] [stdout] --> src/tmux/session.rs:6:8 [INFO] [stdout] | [INFO] [stdout] 6 | pub fn switch_to_session(pane_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_claude_task` is never used [INFO] [stdout] --> src/tmux/session.rs:87:8 [INFO] [stdout] | [INFO] [stdout] 87 | pub fn start_claude_task(pane_id: &str, task_description: &str, images: &[PathBuf]) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_or_create_project_session` is never used [INFO] [stdout] --> src/tmux/session.rs:110:8 [INFO] [stdout] | [INFO] [stdout] 110 | pub fn get_or_create_project_session(project_slug: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_task_window` is never used [INFO] [stdout] --> src/tmux/session.rs:144:8 [INFO] [stdout] | [INFO] [stdout] 144 | pub fn create_task_window( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `start_claude_in_window` is never used [INFO] [stdout] --> src/tmux/session.rs:193:8 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn start_claude_in_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_resume_command` is never used [INFO] [stdout] --> src/tmux/session.rs:211:8 [INFO] [stdout] | [INFO] [stdout] 211 | pub fn send_resume_command(project_slug: &str, window_name: &str, session_id: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_start_command` is never used [INFO] [stdout] --> src/tmux/session.rs:230:8 [INFO] [stdout] | [INFO] [stdout] 230 | pub fn send_start_command(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `resize_pane` is never used [INFO] [stdout] --> src/tmux/session.rs:248:8 [INFO] [stdout] | [INFO] [stdout] 248 | pub fn resize_pane(target: &str, width: u16, height: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `send_sigwinch` is never used [INFO] [stdout] --> src/tmux/session.rs:273:8 [INFO] [stdout] | [INFO] [stdout] 273 | pub fn send_sigwinch(target: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wait_for_claude_ready` is never used [INFO] [stdout] --> src/tmux/session.rs:433:8 [INFO] [stdout] | [INFO] [stdout] 433 | pub fn wait_for_claude_ready(project_slug: &str, window_name: &str, timeout_ms: u64) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `focus_task_window` is never used [INFO] [stdout] --> src/tmux/session.rs:505:8 [INFO] [stdout] | [INFO] [stdout] 505 | pub fn focus_task_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `capture_task_output` is never used [INFO] [stdout] --> src/tmux/session.rs:683:8 [INFO] [stdout] | [INFO] [stdout] 683 | pub fn capture_task_output(project_slug: &str, window_name: &str, lines: u32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASCOT_MAGENTA` is never used [INFO] [stdout] --> src/ui/logo.rs:132:7 [INFO] [stdout] | [INFO] [stdout] 132 | const MASCOT_MAGENTA: Color = Color::Rgb(180, 70, 120); // Softer magenta, less neon [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MASCOT_MAGENTA_SAT` is never used [INFO] [stdout] --> src/ui/logo.rs:138:7 [INFO] [stdout] | [INFO] [stdout] 138 | const MASCOT_MAGENTA_SAT: Color = Color::Rgb(255, 50, 150); // Electric magenta [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Minimal` and `None` are never constructed [INFO] [stdout] --> src/ui/logo.rs:154:5 [INFO] [stdout] | [INFO] [stdout] 146 | pub enum LogoSize { [INFO] [stdout] | -------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 154 | Minimal, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 155 | /// No branding (too small) [INFO] [stdout] 156 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LogoSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_logo` is never used [INFO] [stdout] --> src/ui/logo.rs:162:8 [INFO] [stdout] | [INFO] [stdout] 162 | pub fn render_logo(frame: &mut Frame, area: Rect, shimmer_frame: u8, eye_animation: EyeAnimation, animation_frame: usize) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `logo_width_needed` is never used [INFO] [stdout] --> src/ui/logo.rs:387:8 [INFO] [stdout] | [INFO] [stdout] 387 | pub fn logo_width_needed(available_width: u16, available_height: u16) -> u16 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `render_output` is never used [INFO] [stdout] --> src/ui/output.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | pub fn render_output(frame: &mut Frame, area: Rect, app: &App) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_placeholder_output` is never used [INFO] [stdout] --> src/ui/output.rs:137:4 [INFO] [stdout] | [INFO] [stdout] 137 | fn get_placeholder_output(task_title: &str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate` is never used [INFO] [stdout] --> src/ui/output.rs:166:4 [INFO] [stdout] | [INFO] [stdout] 166 | fn truncate(s: &str, max_len: usize) -> String { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WorktreeInfo` is never constructed [INFO] [stdout] --> src/worktree/git.rs:10:12 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct WorktreeInfo { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `list_worktrees` is never used [INFO] [stdout] --> src/worktree/git.rs:771:8 [INFO] [stdout] | [INFO] [stdout] 771 | pub fn list_worktrees(project_dir: &PathBuf) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_task_diff` is never used [INFO] [stdout] --> src/worktree/git.rs:828:8 [INFO] [stdout] | [INFO] [stdout] 828 | pub fn get_task_diff(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_base_branch` is never used [INFO] [stdout] --> src/worktree/git.rs:848:4 [INFO] [stdout] | [INFO] [stdout] 848 | fn find_base_branch(project_dir: &PathBuf) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_branch_merged` is never used [INFO] [stdout] --> src/worktree/git.rs:886:8 [INFO] [stdout] | [INFO] [stdout] 886 | pub fn is_branch_merged(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `abort_rebase` is never used [INFO] [stdout] --> src/worktree/git.rs:1267:8 [INFO] [stdout] | [INFO] [stdout] 1267 | pub fn abort_rebase(worktree_path: &PathBuf) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `setup_claude_settings` is never used [INFO] [stdout] --> src/worktree/settings.rs:99:8 [INFO] [stdout] | [INFO] [stdout] 99 | pub fn setup_claude_settings( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.24s [INFO] running `Command { std: "docker" "inspect" "5d1bc7bf6372ceb43db87387df5183f6cd6e6603e8e24bb4ee0440ff0620dde8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5d1bc7bf6372ceb43db87387df5183f6cd6e6603e8e24bb4ee0440ff0620dde8", kill_on_drop: false }` [INFO] [stdout] 5d1bc7bf6372ceb43db87387df5183f6cd6e6603e8e24bb4ee0440ff0620dde8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:cfa559dde23f44738f9990739aaa3487d8df3af37eb5df0572f7cf76004a604a" "/opt/rustwide/cargo-home/bin/cargo" "+8da20828b6ea601dfd8e2448cb50ace88876bd78" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7019cd7b7448800e583a5ca80148f80d46085ff0d556a72cf71104f7e853e7e5 [INFO] running `Command { std: "docker" "start" "-a" "7019cd7b7448800e583a5ca80148f80d46085ff0d556a72cf71104f7e853e7e5", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `SessionMode` [INFO] [stderr] --> src/app.rs:2:127 [INFO] [stderr] | [INFO] [stderr] 2 | ...ingAction, PendingConfirmation, Project, Task, TaskStatus, SessionMode}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::Cursor` [INFO] [stderr] --> src/notify/audio.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::io::Cursor; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `NotificationSound` [INFO] [stderr] --> src/notify/mod.rs:4:39 [INFO] [stderr] | [INFO] [stderr] 4 | pub use audio::{play_attention_sound, NotificationSound}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::PathBuf` [INFO] [stderr] --> src/sidecar/protocol.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::PathBuf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `capture::capture_pane_output` [INFO] [stderr] --> src/tmux/mod.rs:4:9 [INFO] [stderr] | [INFO] [stderr] 4 | pub use capture::capture_pane_output; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DetachedSessionResult`, `capture_task_output`, `create_task_window`, `focus_task_window`, `get_or_create_project_session`, `resize_pane`, `send_resume_command`, `send_sigwinch`, `send_start_command`, `start_claude_in_window`, `switch_to_session`, and `wait_for_claude_ready` [INFO] [stderr] --> src/tmux/mod.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | switch_to_session, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 7 | // Worktree-based task session management [INFO] [stderr] 8 | get_or_create_project_session, create_task_window, start_claude_in_window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 9 | wait_for_claude_ready, send_task_to_window, focus_task_window, switch_to_task_window, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 10 | kill_task_window, kill_task_sessions, task_window_exists, capture_task_output, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 11 | // Detached session creation [INFO] [stderr] 12 | DetachedSessionResult, open_popup_detached, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 13 | // SDK/CLI handoff support [INFO] [stderr] 14 | send_resume_command, send_start_command, send_key_to_pane, capture_pane_with_escapes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 15 | resize_pane, send_sigwinch, get_pane_size, open_popup, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `output::render_output` [INFO] [stderr] --> src/ui/mod.rs:21:9 [INFO] [stderr] | [INFO] [stderr] 21 | pub use output::render_output; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `ChangedFile`, `WorktreeGitStatus`, `WorktreeInfo`, `abort_rebase`, `get_task_diff`, `get_worktree_path`, `is_branch_merged`, `is_git_repo`, and `list_worktrees` [INFO] [stderr] --> src/worktree/mod.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | get_worktree_path, list_worktrees, WorktreeInfo, is_git_repo, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stderr] 13 | get_task_diff, apply_task_changes, unapply_task_changes, force_unapply_task_changes, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 16 | generate_apply_prompt, is_rebase_in_progress, abort_rebase, try_fast_rebase, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 17 | commit_worktree_changes, has_changes_to_merge, commit_main_changes, commit_applied_changes, [INFO] [stderr] 18 | get_worktree_git_status, update_worktree_to_main, WorktreeGitStatus, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] 19 | get_worktree_changed_files, ChangedFile, is_branch_merged, [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `setup_claude_settings` [INFO] [stderr] --> src/worktree/mod.rs:22:20 [INFO] [stderr] | [INFO] [stderr] 22 | pub use settings::{setup_claude_settings, merge_with_project_settings, pre_trust_worktree, remove_worktree_trust}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `AsyncTaskSender` [INFO] [stderr] --> src/main.rs:12:40 [INFO] [stderr] | [INFO] [stderr] 12 | use app::{load_state, save_state, App, AsyncTaskSender}; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `is_git` [INFO] [stderr] --> src/app.rs:1196:57 [INFO] [stderr] | [INFO] [stderr] 1196 | if let Some((project_slug, project_dir, is_git, window_name, worktree_path, git_branch)) = task_info { [INFO] [stderr] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_git` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `task` [INFO] [stderr] --> src/app.rs:3137:33 [INFO] [stderr] | [INFO] [stderr] 3137 | if let Some(task) = project.tasks.iter_mut().find(|t| t.id == task_id) { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_task` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `dark_green` [INFO] [stderr] --> src/ui/mod.rs:266:9 [INFO] [stderr] | [INFO] [stderr] 266 | let dark_green = Color::Rgb(60, 150, 90); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dark_green` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/worktree/git.rs:511:9 [INFO] [stderr] | [INFO] [stderr] 511 | let mut log = |msg: &str| { [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable `sidecar_child` is assigned to, but never used [INFO] [stderr] --> src/main.rs:60:9 [INFO] [stderr] | [INFO] [stderr] 60 | let mut sidecar_child = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_sidecar_child` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `sidecar_child` is never read [INFO] [stderr] --> src/main.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | sidecar_child = child; // Store handle if we spawned it [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `super_key` [INFO] [stderr] --> src/main.rs:673:9 [INFO] [stderr] | [INFO] [stderr] 673 | let super_key = key.modifiers.contains(KeyModifiers::SUPER); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_super_key` [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/main.rs:1666:9 [INFO] [stderr] | [INFO] [stderr] 1611 | KeyCode::Char('r') => { [INFO] [stderr] | ------------------ matches all the relevant values [INFO] [stderr] ... [INFO] [stderr] 1666 | KeyCode::Char('r') => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ no value can reach this [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `select_task` are never used [INFO] [stderr] --> src/app.rs:27:12 [INFO] [stderr] | [INFO] [stderr] 26 | impl App { [INFO] [stderr] | -------- associated items in this implementation [INFO] [stderr] 27 | pub fn new() -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 86 | pub fn select_task(&mut self, idx: Option) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `run_project_check` is never used [INFO] [stderr] --> src/app.rs:4582:8 [INFO] [stderr] | [INFO] [stderr] 4582 | pub fn run_project_check(project: &Project) -> Result<(), String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `reason` is never read [INFO] [stderr] --> src/hooks/watcher.rs:20:9 [INFO] [stderr] | [INFO] [stderr] 17 | SessionEnded { [INFO] [stderr] | ------------ field in this variant [INFO] [stderr] ... [INFO] [stderr] 20 | reason: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `input_type` is never read [INFO] [stderr] --> src/hooks/watcher.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 23 | NeedsInput { [INFO] [stderr] | ---------- field in this variant [INFO] [stderr] ... [INFO] [stderr] 26 | input_type: String, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `WatcherEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `signal_dir` is never used [INFO] [stderr] --> src/hooks/watcher.rs:144:12 [INFO] [stderr] | [INFO] [stderr] 62 | impl HookWatcher { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 144 | pub fn signal_dir(&self) -> &PathBuf { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `clipboard_has_image` is never used [INFO] [stderr] --> src/image/mod.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn clipboard_has_image() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple variants are never constructed [INFO] [stderr] --> src/message.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 7 | pub enum Message { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 18 | SelectTask(Option), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 26 | UpdateTaskSessionState { task_id: Uuid, state: crate::model::ClaudeSessionState }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 30 | AcceptTask(Uuid), [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 38 | DiscardTask(Uuid), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 86 | AddProject { name: String, working_dir: PathBuf }, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 104 | ClaudeOutputUpdated { project_id: Uuid, output: String }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 148 | SdkSessionOutput { task_id: Uuid, output: String }, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 168 | AttachImage { task_id: Uuid, path: PathBuf }, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 204 | QuitAndSwitchPane(String), // Quit and switch to this pane ID [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `Message` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `effective_check`, `effective_run`, and `effective_test` are never used [INFO] [stderr] --> src/model/mod.rs:436:12 [INFO] [stderr] | [INFO] [stderr] 375 | impl ProjectCommands { [INFO] [stderr] | -------------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 436 | pub fn effective_check(&self, project_dir: &PathBuf) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 441 | pub fn effective_run(&self, project_dir: &PathBuf) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 446 | pub fn effective_test(&self, project_dir: &PathBuf) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `in_progress_task`, `next_queued_for_mut`, and `next_queued_task` are never used [INFO] [stderr] --> src/model/mod.rs:589:12 [INFO] [stderr] | [INFO] [stderr] 469 | impl Project { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 589 | pub fn in_progress_task(&self) -> Option<&Task> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 611 | pub fn next_queued_for_mut(&mut self, task_id: Uuid) -> Option<&mut Task> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 616 | pub fn next_queued_task(&self) -> Option<&Task> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `can_start`, `can_continue`, `with_description`, and `with_image` are never used [INFO] [stderr] --> src/model/mod.rs:870:12 [INFO] [stderr] | [INFO] [stderr] 814 | impl Task { [INFO] [stderr] | --------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 870 | pub fn can_start(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 876 | pub fn can_continue(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 882 | pub fn with_description(mut self, description: String) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 887 | pub fn with_image(mut self, image_path: PathBuf) -> Self { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `terminal_buffer` is never read [INFO] [stderr] --> src/model/mod.rs:1044:9 [INFO] [stderr] | [INFO] [stderr] 1038 | pub struct InteractiveModal { [INFO] [stderr] | ---------------- field in this struct [INFO] [stderr] ... [INFO] [stderr] 1044 | pub terminal_buffer: String, [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `InteractiveModal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `is_global` is never used [INFO] [stderr] --> src/model/mod.rs:1099:12 [INFO] [stderr] | [INFO] [stderr] 1061 | impl ConfigField { [INFO] [stderr] | ---------------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 1099 | pub fn is_global(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `is_interactive_modal_open` is never used [INFO] [stderr] --> src/model/mod.rs:1237:12 [INFO] [stderr] | [INFO] [stderr] 1235 | impl UiState { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] 1236 | /// Check if the interactive modal is open [INFO] [stderr] 1237 | pub fn is_interactive_modal_open(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant `OutputViewer` is never constructed [INFO] [stderr] --> src/model/mod.rs:1320:5 [INFO] [stderr] | [INFO] [stderr] 1315 | pub enum FocusArea { [INFO] [stderr] | --------- variant in this enum [INFO] [stderr] ... [INFO] [stderr] 1320 | OutputViewer, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `FocusArea` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: enum `NotificationSound` is never used [INFO] [stderr] --> src/notify/audio.rs:7:10 [INFO] [stderr] | [INFO] [stderr] 7 | pub enum NotificationSound { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `play_test_sound` is never used [INFO] [stderr] --> src/notify/audio.rs:48:8 [INFO] [stderr] | [INFO] [stderr] 48 | pub fn play_test_sound() { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `has_attention_indicator` is never used [INFO] [stderr] --> src/notify/tmux_status.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn has_attention_indicator() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_attention_project` is never used [INFO] [stderr] --> src/notify/tmux_status.rs:35:8 [INFO] [stderr] | [INFO] [stderr] 35 | pub fn get_attention_project() -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_tmux_config_hint` is never used [INFO] [stderr] --> src/notify/tmux_status.rs:52:8 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn get_tmux_config_hint() -> &'static str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_session` is never used [INFO] [stderr] --> src/sidecar/client.rs:163:12 [INFO] [stderr] | [INFO] [stderr] 29 | impl SidecarClient { [INFO] [stderr] | ------------------ method in this implementation [INFO] [stderr] ... [INFO] [stderr] 163 | pub fn get_session(&self, task_id: uuid::Uuid) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `data` is never read [INFO] [stderr] --> src/sidecar/protocol.rs:45:9 [INFO] [stderr] | [INFO] [stderr] 41 | pub struct JsonRpcError { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 45 | pub data: Option, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `JsonRpcError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `jsonrpc` is never read [INFO] [stderr] --> src/sidecar/protocol.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 50 | pub struct JsonRpcNotification { [INFO] [stderr] | ------------------- field in this struct [INFO] [stderr] 51 | pub jsonrpc: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `JsonRpcNotification` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: struct `GetSessionParams` is never constructed [INFO] [stderr] --> src/sidecar/protocol.rs:91:12 [INFO] [stderr] | [INFO] [stderr] 91 | pub struct GetSessionParams { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `message` is never read [INFO] [stderr] --> src/sidecar/protocol.rs:158:9 [INFO] [stderr] | [INFO] [stderr] 154 | pub struct SidecarEvent { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] ... [INFO] [stderr] 158 | pub message: Option, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SidecarEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: constant `PARSE_ERROR` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:180:15 [INFO] [stderr] | [INFO] [stderr] 180 | pub const PARSE_ERROR: i32 = -32700; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `INVALID_REQUEST` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:181:15 [INFO] [stderr] | [INFO] [stderr] 181 | pub const INVALID_REQUEST: i32 = -32600; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `METHOD_NOT_FOUND` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:182:15 [INFO] [stderr] | [INFO] [stderr] 182 | pub const METHOD_NOT_FOUND: i32 = -32601; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `INVALID_PARAMS` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:183:15 [INFO] [stderr] | [INFO] [stderr] 183 | pub const INVALID_PARAMS: i32 = -32602; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `INTERNAL_ERROR` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:184:15 [INFO] [stderr] | [INFO] [stderr] 184 | pub const INTERNAL_ERROR: i32 = -32603; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SESSION_ALREADY_EXISTS` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | pub const SESSION_ALREADY_EXISTS: i32 = -32001; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `SDK_ERROR` is never used [INFO] [stderr] --> src/sidecar/protocol.rs:187:15 [INFO] [stderr] | [INFO] [stderr] 187 | pub const SDK_ERROR: i32 = -32002; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `capture_pane_output` is never used [INFO] [stderr] --> src/tmux/capture.rs:5:8 [INFO] [stderr] | [INFO] [stderr] 5 | pub fn capture_pane_output(pane_id: &str, lines: Option) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `capture_recent_output` is never used [INFO] [stderr] --> src/tmux/capture.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn capture_recent_output(pane_id: &str, num_lines: u32) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_content_hash` is never used [INFO] [stderr] --> src/tmux/capture.rs:31:8 [INFO] [stderr] | [INFO] [stderr] 31 | pub fn get_content_hash(pane_id: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `switch_to_session` is never used [INFO] [stderr] --> src/tmux/session.rs:6:8 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn switch_to_session(pane_id: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `start_claude_task` is never used [INFO] [stderr] --> src/tmux/session.rs:87:8 [INFO] [stderr] | [INFO] [stderr] 87 | pub fn start_claude_task(pane_id: &str, task_description: &str, images: &[PathBuf]) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_or_create_project_session` is never used [INFO] [stderr] --> src/tmux/session.rs:110:8 [INFO] [stderr] | [INFO] [stderr] 110 | pub fn get_or_create_project_session(project_slug: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `create_task_window` is never used [INFO] [stderr] --> src/tmux/session.rs:144:8 [INFO] [stderr] | [INFO] [stderr] 144 | pub fn create_task_window( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `start_claude_in_window` is never used [INFO] [stderr] --> src/tmux/session.rs:193:8 [INFO] [stderr] | [INFO] [stderr] 193 | pub fn start_claude_in_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `send_resume_command` is never used [INFO] [stderr] --> src/tmux/session.rs:211:8 [INFO] [stderr] | [INFO] [stderr] 211 | pub fn send_resume_command(project_slug: &str, window_name: &str, session_id: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `send_start_command` is never used [INFO] [stderr] --> src/tmux/session.rs:230:8 [INFO] [stderr] | [INFO] [stderr] 230 | pub fn send_start_command(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `resize_pane` is never used [INFO] [stderr] --> src/tmux/session.rs:248:8 [INFO] [stderr] | [INFO] [stderr] 248 | pub fn resize_pane(target: &str, width: u16, height: u16) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `send_sigwinch` is never used [INFO] [stderr] --> src/tmux/session.rs:273:8 [INFO] [stderr] | [INFO] [stderr] 273 | pub fn send_sigwinch(target: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `wait_for_claude_ready` is never used [INFO] [stderr] --> src/tmux/session.rs:433:8 [INFO] [stderr] | [INFO] [stderr] 433 | pub fn wait_for_claude_ready(project_slug: &str, window_name: &str, timeout_ms: u64) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `focus_task_window` is never used [INFO] [stderr] --> src/tmux/session.rs:505:8 [INFO] [stderr] | [INFO] [stderr] 505 | pub fn focus_task_window(project_slug: &str, window_name: &str) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `capture_task_output` is never used [INFO] [stderr] --> src/tmux/session.rs:683:8 [INFO] [stderr] | [INFO] [stderr] 683 | pub fn capture_task_output(project_slug: &str, window_name: &str, lines: u32) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MASCOT_MAGENTA` is never used [INFO] [stderr] --> src/ui/logo.rs:132:7 [INFO] [stderr] | [INFO] [stderr] 132 | const MASCOT_MAGENTA: Color = Color::Rgb(180, 70, 120); // Softer magenta, less neon [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: constant `MASCOT_MAGENTA_SAT` is never used [INFO] [stderr] --> src/ui/logo.rs:138:7 [INFO] [stderr] | [INFO] [stderr] 138 | const MASCOT_MAGENTA_SAT: Color = Color::Rgb(255, 50, 150); // Electric magenta [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `Minimal` and `None` are never constructed [INFO] [stderr] --> src/ui/logo.rs:154:5 [INFO] [stderr] | [INFO] [stderr] 146 | pub enum LogoSize { [INFO] [stderr] | -------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 154 | Minimal, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 155 | /// No branding (too small) [INFO] [stderr] 156 | None, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LogoSize` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: function `render_logo` is never used [INFO] [stderr] --> src/ui/logo.rs:162:8 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn render_logo(frame: &mut Frame, area: Rect, shimmer_frame: u8, eye_animation: EyeAnimation, animation_frame: usize) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `logo_width_needed` is never used [INFO] [stderr] --> src/ui/logo.rs:387:8 [INFO] [stderr] | [INFO] [stderr] 387 | pub fn logo_width_needed(available_width: u16, available_height: u16) -> u16 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `render_output` is never used [INFO] [stderr] --> src/ui/output.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | pub fn render_output(frame: &mut Frame, area: Rect, app: &App) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_placeholder_output` is never used [INFO] [stderr] --> src/ui/output.rs:137:4 [INFO] [stderr] | [INFO] [stderr] 137 | fn get_placeholder_output(task_title: &str) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `truncate` is never used [INFO] [stderr] --> src/ui/output.rs:166:4 [INFO] [stderr] | [INFO] [stderr] 166 | fn truncate(s: &str, max_len: usize) -> String { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `WorktreeInfo` is never constructed [INFO] [stderr] --> src/worktree/git.rs:10:12 [INFO] [stderr] | [INFO] [stderr] 10 | pub struct WorktreeInfo { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `list_worktrees` is never used [INFO] [stderr] --> src/worktree/git.rs:771:8 [INFO] [stderr] | [INFO] [stderr] 771 | pub fn list_worktrees(project_dir: &PathBuf) -> Result> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `get_task_diff` is never used [INFO] [stderr] --> src/worktree/git.rs:828:8 [INFO] [stderr] | [INFO] [stderr] 828 | pub fn get_task_diff(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `find_base_branch` is never used [INFO] [stderr] --> src/worktree/git.rs:848:4 [INFO] [stderr] | [INFO] [stderr] 848 | fn find_base_branch(project_dir: &PathBuf) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `is_branch_merged` is never used [INFO] [stderr] --> src/worktree/git.rs:886:8 [INFO] [stderr] | [INFO] [stderr] 886 | pub fn is_branch_merged(project_dir: &PathBuf, task_id: Uuid) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `abort_rebase` is never used [INFO] [stderr] --> src/worktree/git.rs:1267:8 [INFO] [stderr] | [INFO] [stderr] 1267 | pub fn abort_rebase(worktree_path: &PathBuf) -> Result<()> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `setup_claude_settings` is never used [INFO] [stderr] --> src/worktree/settings.rs:99:8 [INFO] [stderr] | [INFO] [stderr] 99 | pub fn setup_claude_settings( [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `kanclaude` (bin "kanclaude" test) generated 79 warnings (run `cargo fix --bin "kanclaude" -p kanclaude --tests` to apply 15 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kanclaude-ea5f76e702fbc1c2) [INFO] [stdout] [INFO] [stdout] running 42 tests [INFO] [stdout] test sidecar::protocol::tests::test_get_session_result ... ok [INFO] [stdout] test sidecar::protocol::tests::test_json_rpc_error_response ... ok [INFO] [stdout] test sidecar::protocol::tests::test_json_rpc_request_serialization ... ok [INFO] [stdout] test sidecar::protocol::tests::test_json_rpc_notification_deserialization ... ok [INFO] [stdout] test sidecar::protocol::tests::test_json_rpc_request_without_params ... ok [INFO] [stdout] test sidecar::protocol::tests::test_json_rpc_response_deserialization ... ok [INFO] [stdout] test sidecar::protocol::tests::test_resume_session_params ... ok [INFO] [stdout] test sidecar::protocol::tests::test_session_event_params_full ... ok [INFO] [stdout] test sidecar::protocol::tests::test_session_event_params_minimal ... ok [INFO] [stdout] test sidecar::protocol::tests::test_session_event_type_deserialization ... ok [INFO] [stdout] test sidecar::protocol::tests::test_sidecar_event_conversion ... ok [INFO] [stdout] test sidecar::protocol::tests::test_sidecar_event_invalid_uuid ... ok [INFO] [stdout] test sidecar::protocol::tests::test_start_session_params_serialization ... ok [INFO] [stdout] test sidecar::protocol::tests::test_start_session_params_without_images ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_alt_char ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_arrows ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_backspace ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_ctrl_char ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_enter ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_escape ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_function_keys ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_navigation ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_plain_char ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_semicolon ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_tab ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_space ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_convert_vt100_color_default ... ok [INFO] [stdout] test tests::test_key_event_to_tmux_unhandled ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_convert_vt100_color_extended_256 ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_convert_vt100_color_rgb ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_convert_vt100_color_standard_16 ... ok [INFO] [stdout] test image::tests::test_get_image_dir ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_narrow_width ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_empty ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_ansi_colors ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_rgb_color ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_256_color ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_bold ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_plain_text ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_wide_width ... ok [INFO] [stdout] test ui::interactive_modal::tests::test_parse_terminal_output_with_scroll_offset ... ok [INFO] [stdout] test worktree::git::tests::test_worktree_path ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- worktree::git::tests::test_worktree_path stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'worktree::git::tests::test_worktree_path' (66) panicked at src/worktree/git.rs:1478:9: [INFO] [stdout] assertion failed: path.to_string_lossy().contains(".worktrees") [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5e1cf29d4d2a - std[da2fd379f16a7ff7]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5e1cf29d4d2a - std[da2fd379f16a7ff7]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5e1cf29d4d2a - std[da2fd379f16a7ff7]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5e1cf29d4d2a - <::print::DisplayBacktrace as core[97f61b5528a4c2b4]::fmt::Display>::fmt [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5e1cf29e9ada - ::fmt [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5e1cf29e9ada - core[97f61b5528a4c2b4]::fmt::write [INFO] [stdout] 6: 0x5e1cf29d9ae2 - std[da2fd379f16a7ff7]::io::default_write_fmt::> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/io/mod.rs:639:11 [INFO] [stdout] 7: 0x5e1cf29d9ae2 - as std[da2fd379f16a7ff7]::io::Write>::write_fmt [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/io/mod.rs:1994:13 [INFO] [stdout] 8: 0x5e1cf29b2eaf - ::print [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5e1cf29b2eaf - std[da2fd379f16a7ff7]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5e1cf29cd279 - std[da2fd379f16a7ff7]::panicking::default_hook [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5e1cf291b69c - core[97f61b5528a4c2b4]::ops::function::Fn<(&'a std[da2fd379f16a7ff7]::panic::PanicHookInfo<'b>,), Output = ()> + core[97f61b5528a4c2b4]::marker::Send + core[97f61b5528a4c2b4]::marker::Sync> as core[97f61b5528a4c2b4]::ops::function::Fn<(&std[da2fd379f16a7ff7]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 12: 0x5e1cf291b69c - test[d0b63a2f043bab5e]::test_main_with_exit_callback::::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:145:21 [INFO] [stdout] 13: 0x5e1cf29cd432 - core[97f61b5528a4c2b4]::ops::function::Fn<(&'a std[da2fd379f16a7ff7]::panic::PanicHookInfo<'b>,), Output = ()> + core[97f61b5528a4c2b4]::marker::Send + core[97f61b5528a4c2b4]::marker::Sync> as core[97f61b5528a4c2b4]::ops::function::Fn<(&std[da2fd379f16a7ff7]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/alloc/src/boxed.rs:2254:9 [INFO] [stdout] 14: 0x5e1cf29cd432 - std[da2fd379f16a7ff7]::panicking::panic_with_hook [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x5e1cf29b2f9a - std[da2fd379f16a7ff7]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:691:13 [INFO] [stdout] 16: 0x5e1cf29aa2c9 - std[da2fd379f16a7ff7]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5e1cf29b3d6d - __rustc[9f3cd9eabd71303e]::rust_begin_unwind [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x5e1cf29ea3bc - core[97f61b5528a4c2b4]::panicking::panic_fmt [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5e1cf29ea382 - core[97f61b5528a4c2b4]::panicking::panic [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/panicking.rs:150:5 [INFO] [stdout] 20: 0x5e1cf28de630 - kanclaude[1e016638f0418b0b]::worktree::git::tests::test_worktree_path [INFO] [stdout] at /opt/rustwide/workdir/src/worktree/git.rs:1478:9 [INFO] [stdout] 21: 0x5e1cf28dc5d7 - kanclaude[1e016638f0418b0b]::worktree::git::tests::test_worktree_path::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/worktree/git.rs:1474:28 [INFO] [stdout] 22: 0x5e1cf28e0166 - >::call_once [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 23: 0x5e1cf290f77b - core[97f61b5528a4c2b4]::result::Result<(), alloc[ec929a98520ab192]::string::String> as core[97f61b5528a4c2b4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5e1cf290f77b - test[d0b63a2f043bab5e]::__rust_begin_short_backtrace::, fn() -> core[97f61b5528a4c2b4]::result::Result<(), alloc[ec929a98520ab192]::string::String>> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:663:18 [INFO] [stdout] 25: 0x5e1cf291c16b - test[d0b63a2f043bab5e]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:686:74 [INFO] [stdout] 26: 0x5e1cf291c16b - as core[97f61b5528a4c2b4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 27: 0x5e1cf291c16b - std[da2fd379f16a7ff7]::panicking::catch_unwind::do_call::, core[97f61b5528a4c2b4]::result::Result<(), alloc[ec929a98520ab192]::string::String>> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:581:40 [INFO] [stdout] 28: 0x5e1cf291c16b - std[da2fd379f16a7ff7]::panicking::catch_unwind::, core[97f61b5528a4c2b4]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:544:19 [INFO] [stdout] 29: 0x5e1cf291c16b - std[da2fd379f16a7ff7]::panic::catch_unwind::, core[97f61b5528a4c2b4]::result::Result<(), alloc[ec929a98520ab192]::string::String>> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panic.rs:359:14 [INFO] [stdout] 30: 0x5e1cf291c16b - test[d0b63a2f043bab5e]::run_test_in_process [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:686:27 [INFO] [stdout] 31: 0x5e1cf291c16b - test[d0b63a2f043bab5e]::run_test::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:607:43 [INFO] [stdout] 32: 0x5e1cf2917884 - test[d0b63a2f043bab5e]::run_test::{closure#1} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/test/src/lib.rs:637:41 [INFO] [stdout] 33: 0x5e1cf2917884 - std[da2fd379f16a7ff7]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 34: 0x5e1cf291ed72 - std[da2fd379f16a7ff7]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/thread/lifecycle.rs:91:13 [INFO] [stdout] 35: 0x5e1cf291ed72 - ::{closure#1}::{closure#0}> as core[97f61b5528a4c2b4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/panic/unwind_safe.rs:274:9 [INFO] [stdout] 36: 0x5e1cf291ed72 - std[da2fd379f16a7ff7]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:581:40 [INFO] [stdout] 37: 0x5e1cf291ed72 - std[da2fd379f16a7ff7]::panicking::catch_unwind::<(), core[97f61b5528a4c2b4]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panicking.rs:544:19 [INFO] [stdout] 38: 0x5e1cf291ed72 - std[da2fd379f16a7ff7]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/panic.rs:359:14 [INFO] [stdout] 39: 0x5e1cf291ed72 - std[da2fd379f16a7ff7]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/thread/lifecycle.rs:89:26 [INFO] [stdout] 40: 0x5e1cf291ed72 - ::{closure#1} as core[97f61b5528a4c2b4]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 41: 0x5e1cf29d463f - + core[97f61b5528a4c2b4]::marker::Send> as core[97f61b5528a4c2b4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/alloc/src/boxed.rs:2240:9 [INFO] [stdout] 42: 0x5e1cf29d463f - ::new::thread_start [INFO] [stdout] at /rustc/8da20828b6ea601dfd8e2448cb50ace88876bd78/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 43: 0x7882dff86aa4 - [INFO] [stdout] 44: 0x7882e0013a64 - clone [INFO] [stdout] 45: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] worktree::git::tests::test_worktree_path [INFO] [stdout] [INFO] [stdout] test result: FAILED. 41 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin kanclaude` [INFO] running `Command { std: "docker" "inspect" "7019cd7b7448800e583a5ca80148f80d46085ff0d556a72cf71104f7e853e7e5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7019cd7b7448800e583a5ca80148f80d46085ff0d556a72cf71104f7e853e7e5", kill_on_drop: false }` [INFO] [stdout] 7019cd7b7448800e583a5ca80148f80d46085ff0d556a72cf71104f7e853e7e5