[INFO] cloning repository https://github.com/OdyNobody/verse-vault
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/OdyNobody/verse-vault" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOdyNobody%2Fverse-vault", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOdyNobody%2Fverse-vault'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b0fe59e531b1edb45da2a63155de572489949b64
[INFO] checking OdyNobody/verse-vault against try#53f0b05ecbcf011a1f77f1c627304e87ebd05801 for pr-154492
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FOdyNobody%2Fverse-vault" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/OdyNobody/verse-vault
[INFO] finished tweaking git repo https://github.com/OdyNobody/verse-vault
[INFO] tweaked toml for git repo https://github.com/OdyNobody/verse-vault written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/OdyNobody/verse-vault on toolchain 53f0b05ecbcf011a1f77f1c627304e87ebd05801
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/OdyNobody/verse-vault 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" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c4b4d48052da3b10462fc550121de31807f3f21f25236b8d2ff74e01bc3a726d
[INFO] running `Command { std: "docker" "start" "-a" "c4b4d48052da3b10462fc550121de31807f3f21f25236b8d2ff74e01bc3a726d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c4b4d48052da3b10462fc550121de31807f3f21f25236b8d2ff74e01bc3a726d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4b4d48052da3b10462fc550121de31807f3f21f25236b8d2ff74e01bc3a726d", kill_on_drop: false }`
[INFO] [stdout] c4b4d48052da3b10462fc550121de31807f3f21f25236b8d2ff74e01bc3a726d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+53f0b05ecbcf011a1f77f1c627304e87ebd05801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1fa27c2b4887f7aea13f9893ef2dae570da972c0fd6c7d22756e8a29242bce59
[INFO] running `Command { std: "docker" "start" "-a" "1fa27c2b4887f7aea13f9893ef2dae570da972c0fd6c7d22756e8a29242bce59", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling wayland-sys v0.31.10
[INFO] [stderr]     Checking num-traits v0.2.19
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]     Checking core_maths v0.1.1
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]     Checking ttf-parser v0.25.1
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]    Compiling winnow v1.0.0
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]    Compiling toml_datetime v1.1.0+spec-1.1.0
[INFO] [stderr]     Checking tinyvec v1.11.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]     Checking encoding_rs v0.8.35
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking unicode-segmentation v1.13.1
[INFO] [stderr]     Checking x11rb-protocol v0.13.2
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking ordered-float v5.1.0
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking euclid v0.22.14
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking ctor-lite v0.1.2
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]    Compiling alsa-sys v0.4.0
[INFO] [stderr]    Compiling mundy v0.2.2
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking etagere v0.2.15
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking kurbo v0.10.4
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]    Compiling toml_parser v1.1.0+spec-1.1.0
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking mio v1.1.1
[INFO] [stderr]     Checking getrandom v0.4.2
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking uuid v1.22.0
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling cpal v0.17.3
[INFO] [stderr]    Compiling toml_edit v0.25.8+spec-1.1.0
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking rand v0.10.0
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking alsa v0.11.0
[INFO] [stderr]     Checking option-ext v0.2.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]     Checking rtrb v0.3.3
[INFO] [stderr]     Checking nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking rand_distr v0.6.0
[INFO] [stderr]     Checking directories v6.0.0
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking matchers v0.2.0
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-recursion v1.1.1
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking tokio v1.50.0
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking iced_core v0.14.0
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking font-types v0.10.1
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking wgpu-types v27.0.1
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking tiny-xlib v0.2.4
[INFO] [stderr]     Checking tracing-subscriber v0.3.23
[INFO] [stderr]     Checking read-fonts v0.35.0
[INFO] [stderr]     Checking async-signal v0.2.13
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking async-process v2.5.0
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.5
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-format-isomp4 v0.5.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking enumflags2 v0.7.12
[INFO] [stderr]     Checking zvariant_utils v3.3.0
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking rodio v0.22.2
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]    Compiling zvariant_derive v5.10.0
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]    Compiling zvariant v5.10.0
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking iced_futures v0.14.0
[INFO] [stderr]     Checking naga v27.0.3
[INFO] [stderr]     Checking iced_debug v0.14.0
[INFO] [stderr]     Checking iced_runtime v0.14.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking skrifa v0.37.0
[INFO] [stderr]     Checking harfrust v0.3.2
[INFO] [stderr]     Checking zbus_names v4.3.1
[INFO] [stderr]     Checking softbuffer v0.4.8
[INFO] [stderr]     Checking clipboard_x11 v0.4.3
[INFO] [stderr]    Compiling zbus_macros v5.14.0
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.11
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.11
[INFO] [stderr]     Checking swash v0.2.6
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking zbus v5.14.0
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking clipboard_wayland v0.2.2
[INFO] [stderr]     Checking window_clipboard v0.5.1
[INFO] [stderr]     Checking cosmic-text v0.15.0
[INFO] [stderr]     Checking iced_graphics v0.14.0
[INFO] [stderr]     Checking iced_tiny_skia v0.14.0
[INFO] [stderr]     Checking iced_program v0.14.0
[INFO] [stderr]     Checking wgpu-hal v27.0.4
[INFO] [stderr]     Checking iced_winit v0.14.0
[INFO] [stderr]     Checking wgpu-core-deps-windows-linux-android v27.0.0
[INFO] [stderr]     Checking wgpu-core v27.0.3
[INFO] [stderr]     Checking wgpu v27.0.1
[INFO] [stderr]     Checking cryoglyph v0.1.0
[INFO] [stderr]     Checking iced_wgpu v0.14.0
[INFO] [stderr]     Checking iced_renderer v0.14.0
[INFO] [stderr]     Checking iced_widget v0.14.2
[INFO] [stderr]     Checking iced v0.14.0
[INFO] [stderr]     Checking verse-vault v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/models.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Verse {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 26 |     pub fn new(reference: String, text: String) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `as_str` is never used
[INFO] [stdout]   --> src/models.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl MemorizationMode {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 74 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `engine` and `cache_path` are never read
[INFO] [stdout]    --> src/models.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct TtsConfig {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 134 |     pub engine: TtsEngine,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub cache_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TtsConfig` 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: variants `Kokoro` and `System` are never constructed
[INFO] [stdout]    --> src/models.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub enum TtsEngine {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 156 |     Kokoro,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 157 |     EdgeTts,
[INFO] [stdout] 158 |     System,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TtsEngine` 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 `UiConfig` is never constructed
[INFO] [stdout]    --> src/models.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct UiConfig {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_words` is never used
[INFO] [stdout]    --> src/models.rs:196:8
[INFO] [stdout]     |
[INFO] [stdout] 196 | pub fn parse_words(text: &str) -> Vec<Word> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base_path`, `collections_cache`, and `progress_cache` are never read
[INFO] [stdout]   --> src/storage.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct StorageManager {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 24 |     base_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 25 |     library_path: PathBuf,
[INFO] [stdout] 26 |     collections_cache: Mutex<Option<Vec<Collection>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     progress_cache: Mutex<Option<Progress>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl StorageManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn library_path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  78 |     pub fn verse_exists(&self, reference: &str) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn save_verse(&self, verse: &Verse) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn delete_verse(&self, reference: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn collections_path(&self) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn load_collections(&self) -> Result<Vec<Collection>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn save_collections(&self, collections: &[Collection]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn progress_path(&self) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn load_progress(&self) -> Result<Progress> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn save_progress(&self, progress: &Progress) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOICES` is never used
[INFO] [stdout]   --> src/tts.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const VOICES: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tts.rs:36:18
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl TtsManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn list_voices() -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub async fn generate_audio(&self, text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     async fn generate_edge_tts(&self, text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     async fn generate_kokoro(&self, _text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     async fn generate_system_tts(&self, _text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn estimate_timestamps(&self, text: &str, audio_duration_ms: u64) -> Vec<WordTimestamp> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub async fn process_verse(&self, text: &str, cache_path: Option<PathBuf>) -> Result<(Vec<u8>, AudioMetadata)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn text_to_cache_key(text: &str, voice: &Option<String>, speed: &f32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     async fn load_from_cache(&self, cache_path: &PathBuf, cache_key: &str) -> Result<Option<(Vec<u8>, AudioMetadata)>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     async fn save_to_cache(
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration_ms` and `current_position_ms` are never used
[INFO] [stdout]    --> src/audio.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl AudioPlayer {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn duration_ms(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn current_position_ms(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_word_index`, `is_playing`, `is_paused`, and `timestamps` are never read
[INFO] [stdout]    --> src/audio.rs:255:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct AudioHandle {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 255 |     current_word_index: Arc<Mutex<usize>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 256 |     is_playing: Arc<AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 257 |     is_paused: Arc<AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 258 |     timestamps: Vec<WordTimestamp>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/audio.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl AudioHandle {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 262 |     /// Get the current word index
[INFO] [stdout] 263 |     pub fn current_word_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn is_playing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn is_paused(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 278 |     pub fn word_at_time(&self, time_ms: u64) -> Option<usize> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn current_word(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn word_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn update_word_index(&self, new_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn timestamps(&self) -> &[WordTimestamp] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `calculate_progress` is never used
[INFO] [stdout]    --> src/audio.rs:310:8
[INFO] [stdout]     |
[INFO] [stdout] 310 | pub fn calculate_progress(current_ms: u64, duration_ms: u64) -> f32 {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]    --> src/audio.rs:318:8
[INFO] [stdout]     |
[INFO] [stdout] 318 | pub fn format_duration(ms: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoadVerse` is never constructed
[INFO] [stdout]   --> src/ui.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum Message {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 71 |     LoadVerse(String),
[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: method `as_str` is never used
[INFO] [stdout]   --> src/models.rs:74:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | impl MemorizationMode {
[INFO] [stdout]    | --------------------- method in this implementation
[INFO] [stdout] 74 |     pub fn as_str(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `engine` and `cache_path` are never read
[INFO] [stdout]    --> src/models.rs:134:9
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct TtsConfig {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] 134 |     pub engine: TtsEngine,
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 138 |     pub cache_path: Option<String>,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TtsConfig` 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: variants `Kokoro` and `System` are never constructed
[INFO] [stdout]    --> src/models.rs:156:5
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub enum TtsEngine {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 156 |     Kokoro,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 157 |     EdgeTts,
[INFO] [stdout] 158 |     System,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `TtsEngine` 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 `UiConfig` is never constructed
[INFO] [stdout]    --> src/models.rs:163:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub struct UiConfig {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `base_path`, `collections_cache`, and `progress_cache` are never read
[INFO] [stdout]   --> src/storage.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub struct StorageManager {
[INFO] [stdout]    |            -------------- fields in this struct
[INFO] [stdout] 24 |     base_path: PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 25 |     library_path: PathBuf,
[INFO] [stdout] 26 |     collections_cache: Mutex<Option<Vec<Collection>>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 27 |     progress_cache: Mutex<Option<Progress>>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/storage.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl StorageManager {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn library_path(&self) -> &Path {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     pub fn delete_verse(&self, reference: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 198 |     fn collections_path(&self) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn load_collections(&self) -> Result<Vec<Collection>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |     pub fn save_collections(&self, collections: &[Collection]) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 230 |     fn progress_path(&self) -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 235 |     pub fn load_progress(&self) -> Result<Progress> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 252 |     pub fn save_progress(&self, progress: &Progress) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `VOICES` is never used
[INFO] [stdout]   --> src/tts.rs:15:11
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub const VOICES: &[(&str, &str)] = &[
[INFO] [stdout]    |           ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tts.rs:36:18
[INFO] [stdout]     |
[INFO] [stdout]  29 | impl TtsManager {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  36 |     pub async fn list_voices() -> Result<Vec<String>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  43 |     pub async fn generate_audio(&self, text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     async fn generate_edge_tts(&self, text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     async fn generate_kokoro(&self, _text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     async fn generate_system_tts(&self, _text: &str) -> Result<Vec<u8>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 190 |     pub async fn process_verse(&self, text: &str, cache_path: Option<PathBuf>) -> Result<(Vec<u8>, AudioMetadata)> {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn text_to_cache_key(text: &str, voice: &Option<String>, speed: &f32) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     async fn load_from_cache(&self, cache_path: &PathBuf, cache_key: &str) -> Result<Option<(Vec<u8>, AudioMetadata)>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     async fn save_to_cache(
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `duration_ms` and `current_position_ms` are never used
[INFO] [stdout]    --> src/audio.rs:202:12
[INFO] [stdout]     |
[INFO] [stdout]  27 | impl AudioPlayer {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn duration_ms(&self) -> Option<u64> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn current_position_ms(&self) -> u64 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `current_word_index`, `is_playing`, and `is_paused` are never read
[INFO] [stdout]    --> src/audio.rs:255:5
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub struct AudioHandle {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 255 |     current_word_index: Arc<Mutex<usize>>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 256 |     is_playing: Arc<AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 257 |     is_paused: Arc<AtomicBool>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/audio.rs:263:12
[INFO] [stdout]     |
[INFO] [stdout] 261 | impl AudioHandle {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] 262 |     /// Get the current word index
[INFO] [stdout] 263 |     pub fn current_word_index(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 268 |     pub fn is_playing(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn is_paused(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub fn current_word(&self) -> Option<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn word_count(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 298 |     pub fn update_word_index(&self, new_index: usize) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 304 |     pub fn timestamps(&self) -> &[WordTimestamp] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `LoadVerse` is never constructed
[INFO] [stdout]   --> src/ui.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub enum Message {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 71 |     LoadVerse(String),
[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] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 36s
[INFO] running `Command { std: "docker" "inspect" "1fa27c2b4887f7aea13f9893ef2dae570da972c0fd6c7d22756e8a29242bce59", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1fa27c2b4887f7aea13f9893ef2dae570da972c0fd6c7d22756e8a29242bce59", kill_on_drop: false }`
[INFO] [stdout] 1fa27c2b4887f7aea13f9893ef2dae570da972c0fd6c7d22756e8a29242bce59
