[INFO] cloning repository https://github.com/Baolinh0305/Instant-Narrator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Baolinh0305/Instant-Narrator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaolinh0305%2FInstant-Narrator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaolinh0305%2FInstant-Narrator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7a62132ee3b0f138cd9d02aa5b1485072d6a7dcf
[INFO] checking Baolinh0305/Instant-Narrator against 1.94.0 for beta-1.95-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FBaolinh0305%2FInstant-Narrator" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Baolinh0305/Instant-Narrator
[INFO] finished tweaking git repo https://github.com/Baolinh0305/Instant-Narrator
[INFO] tweaked toml for git repo https://github.com/Baolinh0305/Instant-Narrator written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Baolinh0305/Instant-Narrator on toolchain 1.94.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.94.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Baolinh0305/Instant-Narrator 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" "+1.94.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded symphonia v0.5.5
[INFO] [stderr]   Downloaded extended v0.1.0
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.5
[INFO] [stderr]   Downloaded symphonia-utils-xiph v0.5.5
[INFO] [stderr]   Downloaded symphonia-format-riff v0.5.5
[INFO] [stderr]   Downloaded symphonia-format-isomp4 v0.5.5
[INFO] [stderr]   Downloaded symphonia-format-ogg v0.5.5
[INFO] [stderr]   Downloaded ecolor v0.31.1
[INFO] [stderr]   Downloaded accesskit_unix v0.13.1
[INFO] [stderr]   Downloaded egui-wgpu v0.31.1
[INFO] [stderr]   Downloaded emath v0.31.1
[INFO] [stderr]   Downloaded egui_glow v0.31.1
[INFO] [stderr]   Downloaded wgpu-types v24.0.0
[INFO] [stderr]   Downloaded epaint v0.31.1
[INFO] [stderr]   Downloaded eframe v0.31.1
[INFO] [stderr]   Downloaded cpal v0.16.0
[INFO] [stderr]   Downloaded wgpu v24.0.5
[INFO] [stderr]   Downloaded rodio v0.21.1
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]   Downloaded objc2-audio-toolbox v0.3.2
[INFO] [stderr]   Downloaded symphonia-core v0.5.5
[INFO] [stderr]   Downloaded coreaudio-rs v0.13.0
[INFO] [stderr]   Downloaded wgpu-core v24.0.5
[INFO] [stderr]   Downloaded hound v3.5.1
[INFO] [stderr]   Downloaded symphonia-codec-aac v0.5.5
[INFO] [stderr]   Downloaded symphonia-codec-vorbis v0.5.5
[INFO] [stderr]   Downloaded accesskit_atspi_common v0.10.1
[INFO] [stderr]   Downloaded wgpu-hal v24.0.4
[INFO] [stderr]   Downloaded egui v0.31.1
[INFO] [stderr]   Downloaded uds_windows v1.2.0
[INFO] [stderr]   Downloaded egui-winit v0.31.1
[INFO] [stderr]   Downloaded objc2-core-audio v0.3.2
[INFO] [stderr]   Downloaded objc2-core-audio-types v0.3.2
[INFO] [stderr]   Downloaded symphonia-bundle-flac v0.5.5
[INFO] [stderr]   Downloaded symphonia-codec-pcm v0.5.5
[INFO] [stderr]   Downloaded naga v24.0.0
[INFO] [stderr]   Downloaded epaint_default_fonts v0.31.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+1.94.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d0dc9e3612e2c8691dd5beaed13d8535dfe85b91c166c8023c9442ca3b23683b
[INFO] running `Command { std: "docker" "start" "-a" "d0dc9e3612e2c8691dd5beaed13d8535dfe85b91c166c8023c9442ca3b23683b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d0dc9e3612e2c8691dd5beaed13d8535dfe85b91c166c8023c9442ca3b23683b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d0dc9e3612e2c8691dd5beaed13d8535dfe85b91c166c8023c9442ca3b23683b", kill_on_drop: false }`
[INFO] [stdout] d0dc9e3612e2c8691dd5beaed13d8535dfe85b91c166c8023c9442ca3b23683b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+1.94.0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e310a704eb110bc03e05c3da429bd7b00aef8ece9403f02954d5dd82db5447b7
[INFO] running `Command { std: "docker" "start" "-a" "e310a704eb110bc03e05c3da429bd7b00aef8ece9403f02954d5dd82db5447b7", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]     Checking dlib v0.5.3
[INFO] [stderr]    Compiling wayland-sys v0.31.10
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling wayland-backend v0.3.14
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling quick-xml v0.39.2
[INFO] [stderr]    Compiling wayland-client v0.31.13
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking ordered-stream v0.2.0
[INFO] [stderr]     Checking xdg-home v1.3.0
[INFO] [stderr]     Checking futures-lite v2.6.1
[INFO] [stderr]     Checking piper v0.2.5
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking rustix v0.38.44
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking memmap2 v0.9.10
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]    Compiling winit v0.30.13
[INFO] [stderr]     Checking immutable-chunkmap v2.1.2
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking async-lock v3.4.2
[INFO] [stderr]     Checking async-broadcast v0.7.2
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking zune-core v0.5.1
[INFO] [stderr]     Checking weezl v0.1.12
[INFO] [stderr]     Checking epaint_default_fonts v0.31.1
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking async-executor v1.14.0
[INFO] [stderr]     Checking pxfm v0.1.28
[INFO] [stderr]     Checking rustls-pki-types v1.14.0
[INFO] [stderr]     Checking zune-jpeg v0.5.12
[INFO] [stderr]     Checking async-fs v2.2.0
[INFO] [stderr]     Checking accesskit_consumer v0.26.0
[INFO] [stderr]     Checking image-webp v0.2.4
[INFO] [stderr]     Checking gif v0.14.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling wayland-scanner v0.31.9
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]    Compiling cpal v0.16.0
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]     Checking extended v0.1.0
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking openssl-sys v0.9.111
[INFO] [stderr]     Checking ureq-proto v0.5.3
[INFO] [stderr]     Checking webpki-roots v1.0.6
[INFO] [stderr]     Checking data-encoding v2.10.0
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]    Compiling toml_edit v0.25.4+spec-1.1.0
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]     Checking glutin_glx_sys v0.6.1
[INFO] [stderr]     Checking glutin v0.32.3
[INFO] [stderr]    Compiling zvariant_utils v2.1.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enumflags2_derive v0.7.12
[INFO] [stderr]    Compiling zvariant_derive v4.2.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zbus_macros v4.4.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking openssl v0.10.75
[INFO] [stderr]     Checking polling v3.11.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking async-io v2.6.0
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking gethostname v1.1.0
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking x11rb v0.13.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking yoke v0.8.1
[INFO] [stderr]     Checking bytemuck v1.25.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking zerovec v0.11.5
[INFO] [stderr]     Checking zerotrie v0.2.3
[INFO] [stderr]     Checking symphonia-core v0.5.5
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking wayland-csd-frame v0.3.0
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]     Checking emath v0.31.1
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking calloop v0.14.4
[INFO] [stderr]     Checking tungstenite v0.27.0
[INFO] [stderr]     Checking image v0.25.9
[INFO] [stderr]     Checking tinystr v0.8.2
[INFO] [stderr]     Checking potential_utf v0.1.4
[INFO] [stderr]     Checking icu_collections v2.1.1
[INFO] [stderr]     Checking icu_locale_core v2.1.1
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking ecolor v0.31.1
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking symphonia-metadata v0.5.5
[INFO] [stderr]     Checking symphonia-codec-pcm v0.5.5
[INFO] [stderr]     Checking symphonia-codec-aac v0.5.5
[INFO] [stderr]     Checking symphonia-utils-xiph v0.5.5
[INFO] [stderr]     Checking symphonia-bundle-mp3 v0.5.5
[INFO] [stderr]     Checking epaint v0.31.1
[INFO] [stderr]     Checking symphonia-codec-vorbis v0.5.5
[INFO] [stderr]     Checking symphonia-format-ogg v0.5.5
[INFO] [stderr]     Checking symphonia-format-isomp4 v0.5.5
[INFO] [stderr]     Checking wayland-protocols v0.32.11
[INFO] [stderr]     Checking wayland-cursor v0.31.13
[INFO] [stderr]     Checking calloop-wayland-source v0.3.0
[INFO] [stderr]     Checking calloop-wayland-source v0.4.1
[INFO] [stderr]     Checking symphonia-bundle-flac v0.5.5
[INFO] [stderr]     Checking symphonia-format-riff v0.5.5
[INFO] [stderr]    Compiling enumflags2 v0.7.12
[INFO] [stderr]    Compiling quick-xml v0.30.0
[INFO] [stderr]     Checking icu_provider v2.1.1
[INFO] [stderr]     Checking zvariant v4.2.0
[INFO] [stderr]     Checking icu_properties v2.1.2
[INFO] [stderr]     Checking icu_normalizer v2.1.1
[INFO] [stderr]     Checking native-tls v0.2.18
[INFO] [stderr]     Checking symphonia v0.5.5
[INFO] [stderr]     Checking rodio v0.21.1
[INFO] [stderr]     Checking egui v0.31.1
[INFO] [stderr]     Checking ureq v3.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking webbrowser v1.2.0
[INFO] [stderr]     Checking zbus_names v3.0.0
[INFO] [stderr]     Checking zbus_xml v4.0.0
[INFO] [stderr]     Checking zbus v4.4.0
[INFO] [stderr]     Checking zbus-lockstep v0.4.4
[INFO] [stderr]    Compiling zbus-lockstep-macros v0.4.4
[INFO] [stderr]     Checking egui_glow v0.31.1
[INFO] [stderr]     Checking wayland-protocols-wlr v0.3.11
[INFO] [stderr]     Checking wayland-protocols-plasma v0.3.11
[INFO] [stderr]     Checking wayland-protocols-misc v0.3.11
[INFO] [stderr]     Checking wayland-protocols-experimental v20250721.0.1
[INFO] [stderr]     Checking smithay-client-toolkit v0.19.2
[INFO] [stderr]     Checking smithay-client-toolkit v0.20.0
[INFO] [stderr]     Checking sctk-adwaita v0.10.1
[INFO] [stderr]     Checking smithay-clipboard v0.7.3
[INFO] [stderr]     Checking atspi-common v0.6.0
[INFO] [stderr]     Checking glutin-winit v0.5.0
[INFO] [stderr]     Checking atspi-proxies v0.6.0
[INFO] [stderr]     Checking accesskit_atspi_common v0.10.1
[INFO] [stderr]     Checking atspi-connection v0.6.0
[INFO] [stderr]     Checking atspi v0.22.0
[INFO] [stderr]     Checking accesskit_unix v0.13.1
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking egui-winit v0.31.1
[INFO] [stderr]     Checking eframe v0.31.1
[INFO] [stderr]     Checking instant_tts_gemini v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `hidden`
[INFO] [stdout]      --> src/main.rs:13440:43
[INFO] [stdout]       |
[INFO] [stdout] 13440 | fn launch_qwen_service_process(port: u16, hidden: bool) -> Result<()> {
[INFO] [stdout]       |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hidden`
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOK_GEMINI_SPACING_MS` is never used
[INFO] [stdout]   --> src/main.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const BOOK_GEMINI_SPACING_MS: u64 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMINI_LONG_LINE_SPLIT_THRESHOLD` is never used
[INFO] [stdout]   --> src/main.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const GEMINI_LONG_LINE_SPLIT_THRESHOLD: usize = 380;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> src/main.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl VideoResolution {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 162 |     fn label(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> src/main.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl VideoFrameRate {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 184 |     fn label(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SrtReady` is never constructed
[INFO] [stdout]    --> src/main.rs:511:5
[INFO] [stdout]     |
[INFO] [stdout] 505 | enum VideoEvent {
[INFO] [stdout]     |      ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 511 |     SrtReady {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LineRendered` and `CharacterBatchDone` are never constructed
[INFO] [stdout]    --> src/main.rs:585:5
[INFO] [stdout]     |
[INFO] [stdout] 561 | enum QwenEvent {
[INFO] [stdout]     |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 585 |     LineRendered {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     CharacterBatchDone {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_export_exclusion_picker` is never read
[INFO] [stdout]    --> src/main.rs:713:5
[INFO] [stdout]     |
[INFO] [stdout] 642 | struct TtsApp {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 713 |     show_export_exclusion_picker: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `preview_video_lines`, `can_export_full_audio`, `start_render_selected_character_lines`, `start_render_selected_character_lines_grouped`, and `start_render_selected_character_lines_with_mode` are never used
[INFO] [stdout]     --> src/main.rs:1349:8
[INFO] [stdout]      |
[INFO] [stdout]  967 | impl TtsApp {
[INFO] [stdout]      | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1349 |     fn preview_video_lines(&self) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2155 |     fn can_export_full_audio(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn start_render_selected_character_lines(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2924 |     fn start_render_selected_character_lines_grouped(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3034 |     fn start_render_selected_character_lines_with_mode(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_retry_split_gemini_line` is never used
[INFO] [stdout]     --> src/main.rs:7957:4
[INFO] [stdout]      |
[INFO] [stdout] 7957 | fn should_retry_split_gemini_line(text: &str, error_message: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunk_text_parts` is never used
[INFO] [stdout]     --> src/main.rs:8184:4
[INFO] [stdout]      |
[INFO] [stdout] 8184 | fn chunk_text_parts(parts: &[String], max_chars: usize) -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_book_paragraphs` is never used
[INFO] [stdout]     --> src/main.rs:8780:4
[INFO] [stdout]      |
[INFO] [stdout] 8780 | fn split_book_paragraphs(input: &str) -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paragraph_needs_gemini` is never used
[INFO] [stdout]     --> src/main.rs:8790:4
[INFO] [stdout]      |
[INFO] [stdout] 8790 | fn paragraph_needs_gemini(paragraph: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_missing_source_chunks` is never used
[INFO] [stdout]     --> src/main.rs:9309:4
[INFO] [stdout]      |
[INFO] [stdout] 9309 | fn recover_missing_source_chunks(source_text: &str, formatted: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_source_chunk_index` is never used
[INFO] [stdout]     --> src/main.rs:9382:4
[INFO] [stdout]      |
[INFO] [stdout] 9382 | fn find_best_source_chunk_index(block: &str, source_norms: &[String]) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shared_prefix_len` is never used
[INFO] [stdout]     --> src/main.rs:9415:4
[INFO] [stdout]      |
[INFO] [stdout] 9415 | fn shared_prefix_len(left: &str, right: &str) -> usize {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeminiWordTimingPayload` is never constructed
[INFO] [stdout]      --> src/main.rs:10056:8
[INFO] [stdout]       |
[INFO] [stdout] 10056 | struct GeminiWordTimingPayload {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeminiWordTimingSegment` is never constructed
[INFO] [stdout]      --> src/main.rs:10061:8
[INFO] [stdout]       |
[INFO] [stdout] 10061 | struct GeminiWordTimingSegment {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WordItem` is never constructed
[INFO] [stdout]      --> src/main.rs:10098:8
[INFO] [stdout]       |
[INFO] [stdout] 10098 | struct WordItem {
[INFO] [stdout]       |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_word_items` is never used
[INFO] [stdout]      --> src/main.rs:10150:4
[INFO] [stdout]       |
[INFO] [stdout] 10150 | fn collect_word_items(timed_lines: &[TimedBookLine]) -> Vec<WordItem> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_word_timing_file` is never used
[INFO] [stdout]      --> src/main.rs:10269:4
[INFO] [stdout]       |
[INFO] [stdout] 10269 | fn load_word_timing_file(path: &Path) -> Result<Vec<TimedWordSegment>> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gemini_sentence_batches` is never used
[INFO] [stdout]      --> src/main.rs:10719:4
[INFO] [stdout]       |
[INFO] [stdout] 10719 | fn gemini_sentence_batches(sentence_items: &[SentenceItem]) -> Vec<(usize, usize)> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_gemini_single_sentence_timing` is never used
[INFO] [stdout]      --> src/main.rs:10841:4
[INFO] [stdout]       |
[INFO] [stdout] 10841 | fn request_gemini_single_sentence_timing(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_gemini_sentence_timing_batch_recursive` is never used
[INFO] [stdout]      --> src/main.rs:10928:4
[INFO] [stdout]       |
[INFO] [stdout] 10928 | fn request_gemini_sentence_timing_batch_recursive(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_subtitle_lead_to_word_segments` is never used
[INFO] [stdout]      --> src/main.rs:11286:4
[INFO] [stdout]       |
[INFO] [stdout] 11286 | fn apply_subtitle_lead_to_word_segments(segments: &mut [TimedWordSegment], lead_seconds: f64) {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_word_timing_with_gemini` is never used
[INFO] [stdout]      --> src/main.rs:11608:4
[INFO] [stdout]       |
[INFO] [stdout] 11608 | fn analyze_word_timing_with_gemini(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `active_word_index_for_line` is never used
[INFO] [stdout]      --> src/main.rs:12763:4
[INFO] [stdout]       |
[INFO] [stdout] 12763 | fn active_word_index_for_line(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hidden`
[INFO] [stdout]      --> src/main.rs:13440:43
[INFO] [stdout]       |
[INFO] [stdout] 13440 | fn launch_qwen_service_process(port: u16, hidden: bool) -> Result<()> {
[INFO] [stdout]       |                                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_hidden`
[INFO] [stdout]       |
[INFO] [stdout]       = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BOOK_GEMINI_SPACING_MS` is never used
[INFO] [stdout]   --> src/main.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const BOOK_GEMINI_SPACING_MS: u64 = 10_000;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `GEMINI_LONG_LINE_SPLIT_THRESHOLD` is never used
[INFO] [stdout]   --> src/main.rs:45:7
[INFO] [stdout]    |
[INFO] [stdout] 45 | const GEMINI_LONG_LINE_SPLIT_THRESHOLD: usize = 380;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> src/main.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | impl VideoResolution {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] 162 |     fn label(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `label` is never used
[INFO] [stdout]    --> src/main.rs:184:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | impl VideoFrameRate {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] 184 |     fn label(self) -> &'static str {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SrtReady` is never constructed
[INFO] [stdout]    --> src/main.rs:511:5
[INFO] [stdout]     |
[INFO] [stdout] 505 | enum VideoEvent {
[INFO] [stdout]     |      ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 511 |     SrtReady {
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `LineRendered` and `CharacterBatchDone` are never constructed
[INFO] [stdout]    --> src/main.rs:585:5
[INFO] [stdout]     |
[INFO] [stdout] 561 | enum QwenEvent {
[INFO] [stdout]     |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 585 |     LineRendered {
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 597 |     CharacterBatchDone {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `show_export_exclusion_picker` is never read
[INFO] [stdout]    --> src/main.rs:713:5
[INFO] [stdout]     |
[INFO] [stdout] 642 | struct TtsApp {
[INFO] [stdout]     |        ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 713 |     show_export_exclusion_picker: bool,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `preview_video_lines`, `can_export_full_audio`, `start_render_selected_character_lines`, `start_render_selected_character_lines_grouped`, and `start_render_selected_character_lines_with_mode` are never used
[INFO] [stdout]     --> src/main.rs:1349:8
[INFO] [stdout]      |
[INFO] [stdout]  967 | impl TtsApp {
[INFO] [stdout]      | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1349 |     fn preview_video_lines(&self) -> Vec<String> {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2155 |     fn can_export_full_audio(&self) -> bool {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2920 |     fn start_render_selected_character_lines(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 2924 |     fn start_render_selected_character_lines_grouped(&mut self) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 3034 |     fn start_render_selected_character_lines_with_mode(
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `should_retry_split_gemini_line` is never used
[INFO] [stdout]     --> src/main.rs:7957:4
[INFO] [stdout]      |
[INFO] [stdout] 7957 | fn should_retry_split_gemini_line(text: &str, error_message: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `chunk_text_parts` is never used
[INFO] [stdout]     --> src/main.rs:8184:4
[INFO] [stdout]      |
[INFO] [stdout] 8184 | fn chunk_text_parts(parts: &[String], max_chars: usize) -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `split_book_paragraphs` is never used
[INFO] [stdout]     --> src/main.rs:8780:4
[INFO] [stdout]      |
[INFO] [stdout] 8780 | fn split_book_paragraphs(input: &str) -> Vec<String> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paragraph_needs_gemini` is never used
[INFO] [stdout]     --> src/main.rs:8790:4
[INFO] [stdout]      |
[INFO] [stdout] 8790 | fn paragraph_needs_gemini(paragraph: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_missing_source_chunks` is never used
[INFO] [stdout]     --> src/main.rs:9309:4
[INFO] [stdout]      |
[INFO] [stdout] 9309 | fn recover_missing_source_chunks(source_text: &str, formatted: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_best_source_chunk_index` is never used
[INFO] [stdout]     --> src/main.rs:9382:4
[INFO] [stdout]      |
[INFO] [stdout] 9382 | fn find_best_source_chunk_index(block: &str, source_norms: &[String]) -> Option<usize> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shared_prefix_len` is never used
[INFO] [stdout]     --> src/main.rs:9415:4
[INFO] [stdout]      |
[INFO] [stdout] 9415 | fn shared_prefix_len(left: &str, right: &str) -> usize {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeminiWordTimingPayload` is never constructed
[INFO] [stdout]      --> src/main.rs:10056:8
[INFO] [stdout]       |
[INFO] [stdout] 10056 | struct GeminiWordTimingPayload {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `GeminiWordTimingSegment` is never constructed
[INFO] [stdout]      --> src/main.rs:10061:8
[INFO] [stdout]       |
[INFO] [stdout] 10061 | struct GeminiWordTimingSegment {
[INFO] [stdout]       |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `WordItem` is never constructed
[INFO] [stdout]      --> src/main.rs:10098:8
[INFO] [stdout]       |
[INFO] [stdout] 10098 | struct WordItem {
[INFO] [stdout]       |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_word_items` is never used
[INFO] [stdout]      --> src/main.rs:10150:4
[INFO] [stdout]       |
[INFO] [stdout] 10150 | fn collect_word_items(timed_lines: &[TimedBookLine]) -> Vec<WordItem> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `load_word_timing_file` is never used
[INFO] [stdout]      --> src/main.rs:10269:4
[INFO] [stdout]       |
[INFO] [stdout] 10269 | fn load_word_timing_file(path: &Path) -> Result<Vec<TimedWordSegment>> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `gemini_sentence_batches` is never used
[INFO] [stdout]      --> src/main.rs:10719:4
[INFO] [stdout]       |
[INFO] [stdout] 10719 | fn gemini_sentence_batches(sentence_items: &[SentenceItem]) -> Vec<(usize, usize)> {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_gemini_single_sentence_timing` is never used
[INFO] [stdout]      --> src/main.rs:10841:4
[INFO] [stdout]       |
[INFO] [stdout] 10841 | fn request_gemini_single_sentence_timing(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `request_gemini_sentence_timing_batch_recursive` is never used
[INFO] [stdout]      --> src/main.rs:10928:4
[INFO] [stdout]       |
[INFO] [stdout] 10928 | fn request_gemini_sentence_timing_batch_recursive(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `apply_subtitle_lead_to_word_segments` is never used
[INFO] [stdout]      --> src/main.rs:11286:4
[INFO] [stdout]       |
[INFO] [stdout] 11286 | fn apply_subtitle_lead_to_word_segments(segments: &mut [TimedWordSegment], lead_seconds: f64) {
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `analyze_word_timing_with_gemini` is never used
[INFO] [stdout]      --> src/main.rs:11608:4
[INFO] [stdout]       |
[INFO] [stdout] 11608 | fn analyze_word_timing_with_gemini(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `active_word_index_for_line` is never used
[INFO] [stdout]      --> src/main.rs:12763:4
[INFO] [stdout]       |
[INFO] [stdout] 12763 | fn active_word_index_for_line(
[INFO] [stdout]       |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 21s
[INFO] running `Command { std: "docker" "inspect" "e310a704eb110bc03e05c3da429bd7b00aef8ece9403f02954d5dd82db5447b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e310a704eb110bc03e05c3da429bd7b00aef8ece9403f02954d5dd82db5447b7", kill_on_drop: false }`
[INFO] [stdout] e310a704eb110bc03e05c3da429bd7b00aef8ece9403f02954d5dd82db5447b7
