[INFO] cloning repository https://github.com/ximbi1/SupaTermX [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ximbi1/SupaTermX" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fximbi1%2FSupaTermX", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fximbi1%2FSupaTermX'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 06048cf161355354556147b9fdac3a3bad1ad6cd [INFO] checking ximbi1/SupaTermX against master#ba412a6e70ac84641be7764d088acabd0eb3fa39 for pr-145457 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fximbi1%2FSupaTermX" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ximbi1/SupaTermX [INFO] finished tweaking git repo https://github.com/ximbi1/SupaTermX [INFO] tweaked toml for git repo https://github.com/ximbi1/SupaTermX written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ximbi1/SupaTermX on toolchain ba412a6e70ac84641be7764d088acabd0eb3fa39 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ba412a6e70ac84641be7764d088acabd0eb3fa39" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ximbi1/SupaTermX 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" "+ba412a6e70ac84641be7764d088acabd0eb3fa39" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded wezterm-color-types v0.2.0 [INFO] [stderr] Downloaded portable-pty v0.8.1 [INFO] [stderr] Downloaded openai-api-rs v3.0.1 [INFO] [stderr] Downloaded wezterm-dynamic v0.1.0 [INFO] [stderr] Downloaded termwiz v0.20.0 [INFO] [stderr] Downloaded ratatui v0.23.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ba412a6e70ac84641be7764d088acabd0eb3fa39" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ef4773b743d2a4ebe1a44defe771e7cbf3c5c5d8d03e40ac2d67e8030a427bb7 [INFO] running `Command { std: "docker" "start" "-a" "ef4773b743d2a4ebe1a44defe771e7cbf3c5c5d8d03e40ac2d67e8030a427bb7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ef4773b743d2a4ebe1a44defe771e7cbf3c5c5d8d03e40ac2d67e8030a427bb7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ef4773b743d2a4ebe1a44defe771e7cbf3c5c5d8d03e40ac2d67e8030a427bb7", kill_on_drop: false }` [INFO] [stdout] ef4773b743d2a4ebe1a44defe771e7cbf3c5c5d8d03e40ac2d67e8030a427bb7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:7ad1b28ee6f5f7f699f6cf7015098d6ccdd96d6f2d78dd06228f5b4c9faf309c" "/opt/rustwide/cargo-home/bin/cargo" "+ba412a6e70ac84641be7764d088acabd0eb3fa39" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e95cd20f5fc932f1f20c195eec07d8b5dc51b363573945e6e3113c2fe3f2fac1 [INFO] running `Command { std: "docker" "start" "-a" "e95cd20f5fc932f1f20c195eec07d8b5dc51b363573945e6e3113c2fe3f2fac1", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling libc v0.2.172 [INFO] [stderr] Compiling autocfg v1.4.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling siphasher v1.0.1 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling thiserror v2.0.12 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling cc v1.2.24 [INFO] [stderr] Checking once_cell v1.21.3 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Checking itoa v1.0.15 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.32 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking futures-sink v0.3.31 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Checking equivalent v1.0.2 [INFO] [stderr] Checking futures-task v0.3.31 [INFO] [stderr] Checking hashbrown v0.15.3 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling openssl v0.10.72 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking http v0.2.12 [INFO] [stderr] Checking tracing-core v0.1.33 [INFO] [stderr] Compiling signal-hook v0.3.18 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling native-tls v0.2.14 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking ryu v1.0.20 [INFO] [stderr] Checking strsim v0.11.1 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Checking bitflags v1.3.2 [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling httparse v1.10.1 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling phf_codegen v0.11.3 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling nom v5.1.3 [INFO] [stderr] Compiling rustls v0.21.12 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Compiling anyhow v1.0.98 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Checking openssl-probe v0.1.6 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling openssl-sys v0.9.108 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Checking http-body v0.4.6 [INFO] [stderr] Compiling terminfo v0.7.5 [INFO] [stderr] Checking ordered-float v3.9.2 [INFO] [stderr] Checking ordered-float v4.6.0 [INFO] [stderr] Checking anstyle-parse v0.2.6 [INFO] [stderr] Compiling memoffset v0.7.1 [INFO] [stderr] Checking signal-hook-registry v1.4.5 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking termios v0.2.2 [INFO] [stderr] Checking ioctl-rs v0.1.6 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking serial-core v0.4.0 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking anstyle v1.0.10 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking anstyle-query v1.1.2 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling minreq v2.13.4 [INFO] [stderr] Checking lab v0.11.0 [INFO] [stderr] Checking colorchoice v1.0.3 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Compiling rustix v1.0.7 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking strsim v0.10.0 [INFO] [stderr] Checking siphasher v0.3.11 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking anstream v0.6.18 [INFO] [stderr] Checking serial-unix v0.4.0 [INFO] [stderr] Checking dirs v4.0.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking phf_shared v0.10.0 [INFO] [stderr] Checking winnow v0.7.10 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Checking toml_write v0.1.1 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Checking cpufeatures v0.2.17 [INFO] [stderr] Checking webpki-roots v0.25.4 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking deltae v0.3.2 [INFO] [stderr] Checking opaque-debug v0.3.1 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking clap_lex v0.7.4 [INFO] [stderr] Checking phf v0.10.1 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking dirs-sys v0.4.1 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking serial v0.4.0 [INFO] [stderr] Checking rustls-pemfile v1.0.4 [INFO] [stderr] Checking clap_builder v4.5.38 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Checking signal-hook v0.1.17 [INFO] [stderr] Checking termios v0.3.3 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.2 [INFO] [stderr] Checking vtparse v0.6.2 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking encoding_rs v0.8.35 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking finl_unicode v1.3.0 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking fastrand v2.3.0 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking memmem v0.1.1 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Checking unicode-width v0.2.0 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking humantime v2.2.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking home v0.5.11 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking iana-time-zone v0.1.63 [INFO] [stderr] Checking ipnet v2.11.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking tempfile v3.20.0 [INFO] [stderr] Checking vte v0.11.1 [INFO] [stderr] Checking nix v0.26.4 [INFO] [stderr] Checking dirs v5.0.1 [INFO] [stderr] Checking uuid v1.17.0 [INFO] [stderr] Checking similar v2.7.0 [INFO] [stderr] Checking htmlescape v0.3.1 [INFO] [stderr] Checking glob v0.3.2 [INFO] [stderr] Checking downcast-rs v2.0.1 [INFO] [stderr] Checking which v4.4.2 [INFO] [stderr] Compiling wezterm-dynamic-derive v0.1.1 [INFO] [stderr] Compiling num-derive v0.3.3 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking sct v0.7.1 [INFO] [stderr] Checking rustls-webpki v0.101.7 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking env_logger v0.9.3 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Compiling clap_derive v4.5.32 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking csscolorparser v0.6.2 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking wezterm-dynamic v0.2.1 [INFO] [stderr] Checking filedescriptor v0.8.3 [INFO] [stderr] Compiling pest v2.8.0 [INFO] [stderr] Checking wezterm-dynamic v0.1.0 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking wezterm-bidi v0.2.3 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking ratatui v0.23.0 [INFO] [stderr] Checking wezterm-color-types v0.2.0 [INFO] [stderr] Checking portable-pty v0.8.1 [INFO] [stderr] Checking clap v4.5.38 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Compiling pest_meta v2.8.0 [INFO] [stderr] Checking semver-parser v0.10.3 [INFO] [stderr] Checking semver v0.11.0 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Compiling pest_generator v2.8.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking futures-executor v0.3.31 [INFO] [stderr] Checking futures v0.3.31 [INFO] [stderr] Compiling pest_derive v2.8.0 [INFO] [stderr] Checking termwiz v0.20.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking serde_spanned v0.6.8 [INFO] [stderr] Checking toml_datetime v0.6.9 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking chrono v0.4.41 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking toml_edit v0.22.26 [INFO] [stderr] Checking tokio-util v0.7.15 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Checking h2 v0.3.26 [INFO] [stderr] Checking openai-api-rs v3.0.1 [INFO] [stderr] Checking toml v0.8.22 [INFO] [stderr] Checking hyper v0.14.32 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.27 [INFO] [stderr] Checking supaterm v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/scaffold/mod.rs:1250:9 [INFO] [stdout] | [INFO] [stdout] 1250 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OpenOptions` [INFO] [stdout] --> src/session/mod.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fs::{self, File, OpenOptions}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/session/mod.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/session/mod.rs:14:23 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::terminal::{self, TerminalOutput}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `OpenOptions` [INFO] [stdout] --> src/session/mod.rs:6:27 [INFO] [stdout] | [INFO] [stdout] 6 | use std::fs::{self, File, OpenOptions}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/session/mod.rs:7:21 [INFO] [stdout] | [INFO] [stdout] 7 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/session/mod.rs:14:23 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::terminal::{self, TerminalOutput}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/session/mod.rs:1026:39 [INFO] [stdout] | [INFO] [stdout] 1026 | let encoded = base64::encode(&content); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `base64::encode`: Use Engine::encode [INFO] [stdout] --> src/session/mod.rs:1026:39 [INFO] [stdout] | [INFO] [stdout] 1026 | let encoded = base64::encode(&content); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/terminal/mod.rs:883:29 [INFO] [stdout] | [INFO] [stdout] 883 | let mut to_write = if line.ends_with('\n') { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/terminal/mod.rs:883:29 [INFO] [stdout] | [INFO] [stdout] 883 | let mut to_write = if line.ends_with('\n') { [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lock` [INFO] [stdout] --> src/session/mod.rs:609:25 [INFO] [stdout] | [INFO] [stdout] 609 | let lock = replay_lock.lock().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_lock` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_control` [INFO] [stdout] --> src/session/mod.rs:634:29 [INFO] [stdout] | [INFO] [stdout] 634 | let is_control = event.metadata.get("is_control") [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_control` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timestamp` [INFO] [stdout] --> src/session/mod.rs:662:29 [INFO] [stdout] | [INFO] [stdout] 662 | let timestamp = event.metadata.get("timestamp") [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `lock` [INFO] [stdout] --> src/session/mod.rs:609:25 [INFO] [stdout] | [INFO] [stdout] 609 | let lock = replay_lock.lock().unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_lock` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `is_control` [INFO] [stdout] --> src/session/mod.rs:634:29 [INFO] [stdout] | [INFO] [stdout] 634 | let is_control = event.metadata.get("is_control") [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_control` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `timestamp` [INFO] [stdout] --> src/session/mod.rs:662:29 [INFO] [stdout] | [INFO] [stdout] 662 | let timestamp = event.metadata.get("timestamp") [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `panic_info` [INFO] [stdout] --> src/terminal/mod.rs:955:41 [INFO] [stdout] | [INFO] [stdout] 955 | std::panic::set_hook(Box::new(move |panic_info| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_panic_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `panic_info` [INFO] [stdout] --> src/terminal/mod.rs:955:41 [INFO] [stdout] | [INFO] [stdout] 955 | std::panic::set_hook(Box::new(move |panic_info| { [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_panic_info` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AsAny` is never used [INFO] [stdout] --> src/terminal/mod.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | trait AsAny { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `is_control`, `csi_params`, and `csi_action` are never read [INFO] [stdout] --> src/terminal/mod.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct TerminalOutput { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | pub is_control: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 55 | /// Optional CSI parameters for control sequences [INFO] [stdout] 56 | pub csi_params: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 57 | /// Optional action character for CSI sequences [INFO] [stdout] 58 | pub csi_action: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TerminalOutput` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WriterAdapter` is never constructed [INFO] [stdout] --> src/terminal/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | struct WriterAdapter { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/terminal/mod.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 66 | impl WriterAdapter { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 67 | fn new(tx: tokio::sync::mpsc::Sender>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vte_parser` is never read [INFO] [stdout] --> src/terminal/mod.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct Terminal { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 115 | vte_parser: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `raw_mode` is never read [INFO] [stdout] --> src/terminal/mod.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 122 | struct OriginalState { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 123 | /// Whether the terminal was in raw mode [INFO] [stdout] 124 | raw_mode: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OriginalState` 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 `csi_buffer` is never read [INFO] [stdout] --> src/terminal/mod.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 131 | struct VteHandler { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 136 | csi_buffer: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VteHandler` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `flush_line`, `send_control_sequence`, and `send_control_sequence_sync` are never used [INFO] [stdout] --> src/terminal/mod.rs:173:14 [INFO] [stdout] | [INFO] [stdout] 159 | impl VteHandler { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | async fn flush_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | async fn send_control_sequence(&mut self, seq: String, params: Option>, action: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn send_control_sequence_sync(&mut self, seq: String, params: Option>, action: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `convert_screen_size` and `emergency_restore` are never used [INFO] [stdout] --> src/terminal/mod.rs:648:8 [INFO] [stdout] | [INFO] [stdout] 646 | impl Terminal { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 647 | /// Convert between terminal size types [INFO] [stdout] 648 | fn convert_screen_size(&self, size: &ScreenSize) -> PtySize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 905 | pub fn emergency_restore(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/tui/mod.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct ChatMessage { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 113 | pub timestamp: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatMessage` 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 `render_diff`, `send_ai_message`, and `execute_shell_command` are never used [INFO] [stdout] --> src/tui/mod.rs:551:8 [INFO] [stdout] | [INFO] [stdout] 147 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 551 | fn render_diff<'a>(&self, original: &'a str, modified: &'a str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | async fn send_ai_message(&mut self, message: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 592 | async fn execute_shell_command(&mut self, command: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_RETRIES` is never used [INFO] [stdout] --> src/ai/mod.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const MAX_RETRIES: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INITIAL_BACKOFF_MS` is never used [INFO] [stdout] --> src/ai/mod.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const INITIAL_BACKOFF_MS: u64 = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_CONTEXT_MESSAGES` is never used [INFO] [stdout] --> src/ai/mod.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const MAX_CONTEXT_MESSAGES: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STREAMING_TIMEOUT_SECS` is never used [INFO] [stdout] --> src/ai/mod.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const STREAMING_TIMEOUT_SECS: u64 = 60; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMMAND_SUGGESTIONS` is never used [INFO] [stdout] --> src/ai/mod.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const MAX_COMMAND_SUGGESTIONS: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AiResponse` is never constructed [INFO] [stdout] --> src/ai/mod.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct AiResponse { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ResponseType` is never used [INFO] [stdout] --> src/ai/mod.rs:47:10 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum ResponseType { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `model`, `max_tokens`, and `temperature` are never read [INFO] [stdout] --> src/ai/mod.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub struct Config { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub max_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 75 | /// Temperature (randomness) [INFO] [stdout] 76 | pub temperature: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandSuggestion` is never constructed [INFO] [stdout] --> src/ai/mod.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct CommandSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrorAnalysis` is never constructed [INFO] [stdout] --> src/ai/mod.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct ErrorAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client` and `config` are never read [INFO] [stdout] --> src/ai/mod.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 151 | pub struct AiClient { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 152 | /// OpenAI client [INFO] [stdout] 153 | client: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 154 | /// Configuration [INFO] [stdout] 155 | config: Config, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AiClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ai/mod.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl AiClient { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn new_with_defaults() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn process_query( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub async fn generate_scaffold( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub async fn analyze_output( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 395 | pub async fn suggest_commands( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub async fn autocomplete( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub async fn analyze_shell_error( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | pub async fn generate_diff( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 734 | async fn streaming_completion_with_retry( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 789 | fn determine_response_type(content: &str) -> ResponseType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 819 | pub fn extract_code_blocks(content: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 850 | pub fn parse_scaffold_data(json_str: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | pub fn extract_commands(content: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 909 | pub fn format_error(error: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 914 | pub fn is_api_key_configured() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Generated` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum TemplateSource { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Generated, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TemplateSource` 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 `ScaffoldStatus` is never used [INFO] [stdout] --> src/scaffold/mod.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum ScaffoldStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldProgress` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct ScaffoldProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldFile` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | pub struct ScaffoldFile { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppliedChange` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct AppliedChange { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChangeType` is never used [INFO] [stdout] --> src/scaffold/mod.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub enum ChangeType { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldResult` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct ScaffoldResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ai_client`, `current_dir`, `modified_files`, and `template_variables` are never read [INFO] [stdout] --> src/scaffold/mod.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 168 | pub struct Scaffolder { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 169 | /// AI client for generating content [INFO] [stdout] 170 | ai_client: AiClient, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 171 | /// Current working directory [INFO] [stdout] 172 | current_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 173 | /// Set of modified files to prevent double-modification [INFO] [stdout] 174 | modified_files: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | template_variables: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/scaffold/mod.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl Scaffolder { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn find_template(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | fn process_template( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | fn evaluate_condition(condition: &str, user_inputs: &HashMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | fn process_variables(text: &str, user_inputs: &HashMap, project_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn set_working_directory>(&mut self, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub async fn generate_scaffold(&mut self, description: &str) -> Result<(Receiver, Sender)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub async fn generate_from_template( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 763 | pub async fn apply_diff(&mut self, original_path: &Path, diff_text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 806 | pub fn generate_diff(original: &str, modified: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 823 | fn parse_and_apply_diff(&self, original: &str, diff_text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 857 | pub fn create_file(&mut self, path: &Path, content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 901 | pub fn create_directory(&mut self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 927 | fn resolve_and_validate_path(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 957 | fn write_file(&self, path: &Path, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 975 | fn create_files(files: &[ScaffoldFile]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn read_file(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1111 | pub fn file_exists(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1117 | pub fn directory_exists(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1123 | pub fn list_directory(&self, path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1145 | pub fn backup_file(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1175 | pub fn verify_file(&self, path: &Path, expected_content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1181 | pub fn delete_file(&mut self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1228 | pub fn format_error_message(error: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1233 | pub fn format_success_message(message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1238 | pub fn get_modified_files(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1243 | pub fn reset_modified_files(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ErrorKind` is never used [INFO] [stdout] --> src/utils/error.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ErrorKind { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_error` is never used [INFO] [stdout] --> src/utils/error.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn format_error(error: &anyhow::Error) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Style` is never constructed [INFO] [stdout] --> src/utils/format.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Style { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `default` and `fg` are never used [INFO] [stdout] --> src/utils/format.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Style { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 13 | pub fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn fg(mut self, color: Color) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FormatStyle` is never used [INFO] [stdout] --> src/utils/format.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum FormatStyle { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_style` is never used [INFO] [stdout] --> src/utils/format.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl FormatStyle { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 50 | /// Get the appropriate style for TUI rendering [INFO] [stdout] 51 | pub fn to_style(self) -> Style { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_markdown` is never used [INFO] [stdout] --> src/utils/format.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn format_markdown(text: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_file_with_parents` is never used [INFO] [stdout] --> src/utils/fs.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn create_file_with_parents(path: &Path, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file_to_string` is never used [INFO] [stdout] --> src/utils/fs.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn read_file_to_string(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_child_path` is never used [INFO] [stdout] --> src/utils/fs.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn is_child_path(parent: &Path, child: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_files` is never used [INFO] [stdout] --> src/utils/fs.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn find_files(dir: &Path, pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_directories` is never used [INFO] [stdout] --> src/utils/fs.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn find_directories(dir: &Path, pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_file_extension` is never used [INFO] [stdout] --> src/utils/fs.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn get_file_extension(path: &Path) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_file_older_than` is never used [INFO] [stdout] --> src/utils/fs.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn is_file_older_than(path: &Path, duration: std::time::Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_temp_file` is never used [INFO] [stdout] --> src/utils/fs.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn create_temp_file(content: &str) -> Result<(PathBuf, tempfile::NamedTempFile)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `backup_file` is never used [INFO] [stdout] --> src/utils/fs.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn backup_file(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_file` is never used [INFO] [stdout] --> src/utils/test.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn create_test_file(dir: &Path, name: &str, content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_project` is never used [INFO] [stdout] --> src/utils/test.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn create_test_project(dir: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockCommand` is never constructed [INFO] [stdout] --> src/utils/test.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct MockCommand { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_args`, `with_stdout`, `with_stderr`, `with_exit_code`, and `execute` are never used [INFO] [stdout] --> src/utils/test.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl MockCommand { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 103 | /// Create a new MockCommand [INFO] [stdout] 104 | pub fn new(command: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn with_args(mut self, args: &[&str]) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn with_stdout(mut self, stdout: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn with_stderr(mut self, stderr: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn with_exit_code(mut self, code: i32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn execute(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockFile` is never constructed [INFO] [stdout] --> src/utils/test.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct MockFile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/utils/test.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl MockFile { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 156 | /// Create a new MockFile [INFO] [stdout] 157 | pub fn new(path: &Path, content: &str, exists: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn read(&self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn write(&mut self, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_SESSION_DIR` is never used [INFO] [stdout] --> src/session/mod.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const DEFAULT_SESSION_DIR: &str = ".supaterm/sessions"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG_EXTENSION` is never used [INFO] [stdout] --> src/session/mod.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const LOG_EXTENSION: &str = "term"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_SESSION_HISTORY` is never used [INFO] [stdout] --> src/session/mod.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const MAX_SESSION_HISTORY: usize = 50; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_REPLAY_SPEED` is never used [INFO] [stdout] --> src/session/mod.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const DEFAULT_REPLAY_SPEED: f32 = 1.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SessionEventType` is never used [INFO] [stdout] --> src/session/mod.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum SessionEventType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionData` is never constructed [INFO] [stdout] --> src/session/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct SessionData { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReplayStatus` is never constructed [INFO] [stdout] --> src/session/mod.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct ReplayStatus { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AsciicastHeader` is never constructed [INFO] [stdout] --> src/session/mod.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct AsciicastHeader { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionEvent` is never constructed [INFO] [stdout] --> src/session/mod.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct SessionEvent { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionInfo` is never constructed [INFO] [stdout] --> src/session/mod.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct SessionInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SharingOptions` is never constructed [INFO] [stdout] --> src/session/mod.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct SharingOptions { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExportFormat` is never used [INFO] [stdout] --> src/session/mod.rs:154:10 [INFO] [stdout] | [INFO] [stdout] 154 | pub enum ExportFormat { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ReplayState` is never used [INFO] [stdout] --> src/session/mod.rs:182:10 [INFO] [stdout] | [INFO] [stdout] 182 | pub enum ReplayState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionManager` is never constructed [INFO] [stdout] --> src/session/mod.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub struct SessionManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/session/mod.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 219 | impl SessionManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 220 | /// Create a new session manager [INFO] [stdout] 221 | pub fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn start_recording(&mut self, session_name: &str, shell: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn stop_recording(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn add_event( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 381 | pub fn record_input(&mut self, input: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn record_output(&mut self, output: &TerminalOutput) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn record_command(&mut self, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | pub fn record_resize(&mut self, cols: u16, rows: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn save_session(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn list_sessions(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | fn load_session_info(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 503 | pub fn load_session(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 525 | fn validate_session_data(&self, data: &SessionData) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 547 | pub fn set_output_channel(&mut self, tx: Sender) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pub async fn start_replay( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 710 | pub fn toggle_replay_pause(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 728 | pub fn set_replay_speed(&mut self, speed: f32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn stop_replay(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn export_session(&self, session_path: &Path, output_path: &Path, format: ExportFormat) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 779 | fn export_as_json(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 785 | fn export_as_text(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 820 | fn export_as_asciicast(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 893 | fn export_as_markdown(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 930 | fn export_as_html(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 991 | pub async fn share_session(&self, session_path: &Path, options: SharingOptions) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1041 | pub fn get_session_stats(&self, session_path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1077 | pub fn delete_session(&self, session_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `AsAny` is never used [INFO] [stdout] --> src/terminal/mod.rs:29:7 [INFO] [stdout] | [INFO] [stdout] 29 | trait AsAny { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `is_control`, `csi_params`, and `csi_action` are never read [INFO] [stdout] --> src/terminal/mod.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 50 | pub struct TerminalOutput { [INFO] [stdout] | -------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 54 | pub is_control: bool, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 55 | /// Optional CSI parameters for control sequences [INFO] [stdout] 56 | pub csi_params: Option>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 57 | /// Optional action character for CSI sequences [INFO] [stdout] 58 | pub csi_action: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TerminalOutput` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `WriterAdapter` is never constructed [INFO] [stdout] --> src/terminal/mod.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | struct WriterAdapter { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/terminal/mod.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 66 | impl WriterAdapter { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 67 | fn new(tx: tokio::sync::mpsc::Sender>) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `vte_parser` is never read [INFO] [stdout] --> src/terminal/mod.rs:115:5 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct Terminal { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 115 | vte_parser: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `raw_mode` is never read [INFO] [stdout] --> src/terminal/mod.rs:124:5 [INFO] [stdout] | [INFO] [stdout] 122 | struct OriginalState { [INFO] [stdout] | ------------- field in this struct [INFO] [stdout] 123 | /// Whether the terminal was in raw mode [INFO] [stdout] 124 | raw_mode: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `OriginalState` 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 `csi_buffer` is never read [INFO] [stdout] --> src/terminal/mod.rs:136:5 [INFO] [stdout] | [INFO] [stdout] 131 | struct VteHandler { [INFO] [stdout] | ---------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 136 | csi_buffer: String, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VteHandler` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `flush_line`, `send_control_sequence`, and `send_control_sequence_sync` are never used [INFO] [stdout] --> src/terminal/mod.rs:173:14 [INFO] [stdout] | [INFO] [stdout] 159 | impl VteHandler { [INFO] [stdout] | --------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 173 | async fn flush_line(&mut self) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 200 | async fn send_control_sequence(&mut self, seq: String, params: Option>, action: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 211 | fn send_control_sequence_sync(&mut self, seq: String, params: Option>, action: Option) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `convert_screen_size` and `emergency_restore` are never used [INFO] [stdout] --> src/terminal/mod.rs:648:8 [INFO] [stdout] | [INFO] [stdout] 646 | impl Terminal { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 647 | /// Convert between terminal size types [INFO] [stdout] 648 | fn convert_screen_size(&self, size: &ScreenSize) -> PtySize { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 905 | pub fn emergency_restore(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `timestamp` is never read [INFO] [stdout] --> src/tui/mod.rs:113:9 [INFO] [stdout] | [INFO] [stdout] 107 | pub struct ChatMessage { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 113 | pub timestamp: chrono::DateTime, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChatMessage` 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 `render_diff`, `send_ai_message`, and `execute_shell_command` are never used [INFO] [stdout] --> src/tui/mod.rs:551:8 [INFO] [stdout] | [INFO] [stdout] 147 | impl App { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 551 | fn render_diff<'a>(&self, original: &'a str, modified: &'a str) -> Vec> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 566 | async fn send_ai_message(&mut self, message: String) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 592 | async fn execute_shell_command(&mut self, command: String) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_RETRIES` is never used [INFO] [stdout] --> src/ai/mod.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const MAX_RETRIES: usize = 3; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `INITIAL_BACKOFF_MS` is never used [INFO] [stdout] --> src/ai/mod.rs:22:7 [INFO] [stdout] | [INFO] [stdout] 22 | const INITIAL_BACKOFF_MS: u64 = 500; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_CONTEXT_MESSAGES` is never used [INFO] [stdout] --> src/ai/mod.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const MAX_CONTEXT_MESSAGES: usize = 10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `STREAMING_TIMEOUT_SECS` is never used [INFO] [stdout] --> src/ai/mod.rs:28:7 [INFO] [stdout] | [INFO] [stdout] 28 | const STREAMING_TIMEOUT_SECS: u64 = 60; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_COMMAND_SUGGESTIONS` is never used [INFO] [stdout] --> src/ai/mod.rs:30:7 [INFO] [stdout] | [INFO] [stdout] 30 | const MAX_COMMAND_SUGGESTIONS: usize = 5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AiResponse` is never constructed [INFO] [stdout] --> src/ai/mod.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub struct AiResponse { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `CommandSuggestion` and `Autocompletion` are never constructed [INFO] [stdout] --> src/ai/mod.rs:59:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum ResponseType { [INFO] [stdout] | ------------ variants in this enum [INFO] [stdout] ... [INFO] [stdout] 59 | CommandSuggestion, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] 60 | /// Autocompletion [INFO] [stdout] 61 | Autocompletion, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ResponseType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `model`, `max_tokens`, and `temperature` are never read [INFO] [stdout] --> src/ai/mod.rs:70:9 [INFO] [stdout] | [INFO] [stdout] 66 | pub struct Config { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 70 | pub model: String, [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 74 | pub max_tokens: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 75 | /// Temperature (randomness) [INFO] [stdout] 76 | pub temperature: Option, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Config` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CommandSuggestion` is never constructed [INFO] [stdout] --> src/ai/mod.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct CommandSuggestion { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ErrorAnalysis` is never constructed [INFO] [stdout] --> src/ai/mod.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct ErrorAnalysis { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `client` and `config` are never read [INFO] [stdout] --> src/ai/mod.rs:153:5 [INFO] [stdout] | [INFO] [stdout] 151 | pub struct AiClient { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 152 | /// OpenAI client [INFO] [stdout] 153 | client: Arc, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 154 | /// Configuration [INFO] [stdout] 155 | config: Config, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AiClient` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/ai/mod.rs:179:12 [INFO] [stdout] | [INFO] [stdout] 158 | impl AiClient { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 179 | pub fn new_with_defaults() -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub async fn process_query( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 259 | pub async fn generate_scaffold( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | pub async fn analyze_output( [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 395 | pub async fn suggest_commands( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 480 | pub async fn autocomplete( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 549 | pub async fn analyze_shell_error( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 665 | pub async fn generate_diff( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 734 | async fn streaming_completion_with_retry( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 850 | pub fn parse_scaffold_data(json_str: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 878 | pub fn extract_commands(content: &str) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 909 | pub fn format_error(error: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 914 | pub fn is_api_key_configured() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Generated` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:22:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum TemplateSource { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 22 | Generated, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TemplateSource` 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 `ScaffoldStatus` is never used [INFO] [stdout] --> src/scaffold/mod.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | pub enum ScaffoldStatus { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldProgress` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:106:12 [INFO] [stdout] | [INFO] [stdout] 106 | pub struct ScaffoldProgress { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldFile` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:121:12 [INFO] [stdout] | [INFO] [stdout] 121 | pub struct ScaffoldFile { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AppliedChange` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:132:12 [INFO] [stdout] | [INFO] [stdout] 132 | pub struct AppliedChange { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChangeType` is never used [INFO] [stdout] --> src/scaffold/mod.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | pub enum ChangeType { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScaffoldResult` is never constructed [INFO] [stdout] --> src/scaffold/mod.rs:158:12 [INFO] [stdout] | [INFO] [stdout] 158 | pub struct ScaffoldResult { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `ai_client`, `current_dir`, `modified_files`, and `template_variables` are never read [INFO] [stdout] --> src/scaffold/mod.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 168 | pub struct Scaffolder { [INFO] [stdout] | ---------- fields in this struct [INFO] [stdout] 169 | /// AI client for generating content [INFO] [stdout] 170 | ai_client: AiClient, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 171 | /// Current working directory [INFO] [stdout] 172 | current_dir: PathBuf, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 173 | /// Set of modified files to prevent double-modification [INFO] [stdout] 174 | modified_files: HashSet, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 180 | template_variables: std::collections::HashMap, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/scaffold/mod.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 189 | impl Scaffolder { [INFO] [stdout] | --------------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 212 | pub fn find_template(&self, name: &str) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 368 | fn process_template( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 401 | fn evaluate_condition(condition: &str, user_inputs: &HashMap) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 432 | fn process_variables(text: &str, user_inputs: &HashMap, project_name: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 447 | pub fn set_working_directory>(&mut self, path: P) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 460 | pub async fn generate_scaffold(&mut self, description: &str) -> Result<(Receiver, Sender)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 558 | pub async fn generate_from_template( [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 763 | pub async fn apply_diff(&mut self, original_path: &Path, diff_text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 806 | pub fn generate_diff(original: &str, modified: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 823 | fn parse_and_apply_diff(&self, original: &str, diff_text: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 857 | pub fn create_file(&mut self, path: &Path, content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 901 | pub fn create_directory(&mut self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 927 | fn resolve_and_validate_path(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 957 | fn write_file(&self, path: &Path, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 975 | fn create_files(files: &[ScaffoldFile]) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1092 | pub fn read_file(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1111 | pub fn file_exists(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1117 | pub fn directory_exists(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1123 | pub fn list_directory(&self, path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1145 | pub fn backup_file(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1175 | pub fn verify_file(&self, path: &Path, expected_content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1181 | pub fn delete_file(&mut self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1228 | pub fn format_error_message(error: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1233 | pub fn format_success_message(message: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1238 | pub fn get_modified_files(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1243 | pub fn reset_modified_files(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_dir` is never used [INFO] [stdout] --> src/scaffold/mod.rs:1254:8 [INFO] [stdout] | [INFO] [stdout] 1254 | fn create_test_dir() -> TempDir { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ErrorKind` is never used [INFO] [stdout] --> src/utils/error.rs:5:10 [INFO] [stdout] | [INFO] [stdout] 5 | pub enum ErrorKind { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_error` is never used [INFO] [stdout] --> src/utils/error.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn format_error(error: &anyhow::Error) -> String { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Style` is never constructed [INFO] [stdout] --> src/utils/format.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Style { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `default` and `fg` are never used [INFO] [stdout] --> src/utils/format.rs:13:12 [INFO] [stdout] | [INFO] [stdout] 12 | impl Style { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] 13 | pub fn default() -> Self { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 22 | pub fn fg(mut self, color: Color) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FormatStyle` is never used [INFO] [stdout] --> src/utils/format.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum FormatStyle { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `to_style` is never used [INFO] [stdout] --> src/utils/format.rs:51:12 [INFO] [stdout] | [INFO] [stdout] 49 | impl FormatStyle { [INFO] [stdout] | ---------------- method in this implementation [INFO] [stdout] 50 | /// Get the appropriate style for TUI rendering [INFO] [stdout] 51 | pub fn to_style(self) -> Style { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_markdown` is never used [INFO] [stdout] --> src/utils/format.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 66 | pub fn format_markdown(text: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_file_with_parents` is never used [INFO] [stdout] --> src/utils/fs.rs:7:8 [INFO] [stdout] | [INFO] [stdout] 7 | pub fn create_file_with_parents(path: &Path, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `read_file_to_string` is never used [INFO] [stdout] --> src/utils/fs.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn read_file_to_string(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_child_path` is never used [INFO] [stdout] --> src/utils/fs.rs:37:8 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn is_child_path(parent: &Path, child: &Path) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_files` is never used [INFO] [stdout] --> src/utils/fs.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn find_files(dir: &Path, pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_directories` is never used [INFO] [stdout] --> src/utils/fs.rs:64:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn find_directories(dir: &Path, pattern: &str) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_file_extension` is never used [INFO] [stdout] --> src/utils/fs.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn get_file_extension(path: &Path) -> Option { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_file_older_than` is never used [INFO] [stdout] --> src/utils/fs.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn is_file_older_than(path: &Path, duration: std::time::Duration) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_temp_file` is never used [INFO] [stdout] --> src/utils/fs.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn create_temp_file(content: &str) -> Result<(PathBuf, tempfile::NamedTempFile)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `backup_file` is never used [INFO] [stdout] --> src/utils/fs.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | pub fn backup_file(path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_file` is never used [INFO] [stdout] --> src/utils/test.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn create_test_file(dir: &Path, name: &str, content: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_test_project` is never used [INFO] [stdout] --> src/utils/test.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn create_test_project(dir: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockCommand` is never constructed [INFO] [stdout] --> src/utils/test.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct MockCommand { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `with_args`, `with_stdout`, `with_stderr`, `with_exit_code`, and `execute` are never used [INFO] [stdout] --> src/utils/test.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 102 | impl MockCommand { [INFO] [stdout] | ---------------- associated items in this implementation [INFO] [stdout] 103 | /// Create a new MockCommand [INFO] [stdout] 104 | pub fn new(command: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn with_args(mut self, args: &[&str]) -> Self { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 118 | pub fn with_stdout(mut self, stdout: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn with_stderr(mut self, stderr: &str) -> Self { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 130 | pub fn with_exit_code(mut self, code: i32) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn execute(&self) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `MockFile` is never constructed [INFO] [stdout] --> src/utils/test.rs:146:12 [INFO] [stdout] | [INFO] [stdout] 146 | pub struct MockFile { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `read`, and `write` are never used [INFO] [stdout] --> src/utils/test.rs:157:12 [INFO] [stdout] | [INFO] [stdout] 155 | impl MockFile { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 156 | /// Create a new MockFile [INFO] [stdout] 157 | pub fn new(path: &Path, content: &str, exists: bool) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 166 | pub fn read(&self) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 175 | pub fn write(&mut self, content: &str) -> Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_SESSION_DIR` is never used [INFO] [stdout] --> src/session/mod.rs:17:7 [INFO] [stdout] | [INFO] [stdout] 17 | const DEFAULT_SESSION_DIR: &str = ".supaterm/sessions"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `LOG_EXTENSION` is never used [INFO] [stdout] --> src/session/mod.rs:20:7 [INFO] [stdout] | [INFO] [stdout] 20 | const LOG_EXTENSION: &str = "term"; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `MAX_SESSION_HISTORY` is never used [INFO] [stdout] --> src/session/mod.rs:23:7 [INFO] [stdout] | [INFO] [stdout] 23 | const MAX_SESSION_HISTORY: usize = 50; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_REPLAY_SPEED` is never used [INFO] [stdout] --> src/session/mod.rs:26:7 [INFO] [stdout] | [INFO] [stdout] 26 | const DEFAULT_REPLAY_SPEED: f32 = 1.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `SessionEventType` is never used [INFO] [stdout] --> src/session/mod.rs:30:10 [INFO] [stdout] | [INFO] [stdout] 30 | pub enum SessionEventType { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionData` is never constructed [INFO] [stdout] --> src/session/mod.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct SessionData { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ReplayStatus` is never constructed [INFO] [stdout] --> src/session/mod.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | pub struct ReplayStatus { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `AsciicastHeader` is never constructed [INFO] [stdout] --> src/session/mod.rs:73:12 [INFO] [stdout] | [INFO] [stdout] 73 | pub struct AsciicastHeader { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionEvent` is never constructed [INFO] [stdout] --> src/session/mod.rs:92:12 [INFO] [stdout] | [INFO] [stdout] 92 | pub struct SessionEvent { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionInfo` is never constructed [INFO] [stdout] --> src/session/mod.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct SessionInfo { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SharingOptions` is never constructed [INFO] [stdout] --> src/session/mod.rs:133:12 [INFO] [stdout] | [INFO] [stdout] 133 | pub struct SharingOptions { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ExportFormat` is never used [INFO] [stdout] --> src/session/mod.rs:154:10 [INFO] [stdout] | [INFO] [stdout] 154 | pub enum ExportFormat { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ReplayState` is never used [INFO] [stdout] --> src/session/mod.rs:182:10 [INFO] [stdout] | [INFO] [stdout] 182 | pub enum ReplayState { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SessionManager` is never constructed [INFO] [stdout] --> src/session/mod.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 194 | pub struct SessionManager { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/session/mod.rs:221:12 [INFO] [stdout] | [INFO] [stdout] 219 | impl SessionManager { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 220 | /// Create a new session manager [INFO] [stdout] 221 | pub fn new() -> Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 246 | pub fn start_recording(&mut self, session_name: &str, shell: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 295 | pub fn stop_recording(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 345 | pub fn add_event( [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 381 | pub fn record_input(&mut self, input: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 391 | pub fn record_output(&mut self, output: &TerminalOutput) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 399 | pub fn record_command(&mut self, command: &str) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 413 | pub fn record_resize(&mut self, cols: u16, rows: u16) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 422 | fn save_session(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 455 | pub fn list_sessions(&self) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 487 | fn load_session_info(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 503 | pub fn load_session(&self, path: &Path) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 525 | fn validate_session_data(&self, data: &SessionData) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 547 | pub fn set_output_channel(&mut self, tx: Sender) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 552 | pub async fn start_replay( [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 710 | pub fn toggle_replay_pause(&mut self) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 728 | pub fn set_replay_speed(&mut self, speed: f32) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 740 | pub fn stop_replay(&mut self) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 756 | pub fn export_session(&self, session_path: &Path, output_path: &Path, format: ExportFormat) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 779 | fn export_as_json(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 785 | fn export_as_text(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 820 | fn export_as_asciicast(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 893 | fn export_as_markdown(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 930 | fn export_as_html(&self, session: &SessionData) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 991 | pub async fn share_session(&self, session_path: &Path, options: SharingOptions) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1041 | pub fn get_session_stats(&self, session_path: &Path) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 1077 | pub fn delete_session(&self, session_path: &Path) -> Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 03s [INFO] running `Command { std: "docker" "inspect" "e95cd20f5fc932f1f20c195eec07d8b5dc51b363573945e6e3113c2fe3f2fac1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e95cd20f5fc932f1f20c195eec07d8b5dc51b363573945e6e3113c2fe3f2fac1", kill_on_drop: false }` [INFO] [stdout] e95cd20f5fc932f1f20c195eec07d8b5dc51b363573945e6e3113c2fe3f2fac1