[INFO] cloning repository https://github.com/sadministrator/ziggurat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sadministrator/ziggurat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae512a0188a61ce8cab48cf7fdd581c461367e04
[INFO] checking sadministrator/ziggurat against try#df1b9bf194c9183fb7c0604484171064069ce232 for pr-149195-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sadministrator/ziggurat
[INFO] finished tweaking git repo https://github.com/sadministrator/ziggurat
[INFO] tweaked toml for git repo https://github.com/sadministrator/ziggurat written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sadministrator/ziggurat on toolchain df1b9bf194c9183fb7c0604484171064069ce232
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sadministrator/ziggurat 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" "+df1b9bf194c9183fb7c0604484171064069ce232" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tl v0.7.8
[INFO] [stderr]   Downloaded upon v0.7.1
[INFO] [stderr]   Downloaded tui v0.19.0
[INFO] [stderr]   Downloaded epub-builder v0.7.4
[INFO] [stderr]   Downloaded epub v2.1.2
[INFO] [stderr]   Downloaded lopdf v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c7a74dfd5edd11df50b776ad23054a9a784a43634dbd14793698442bd2d108bd
[INFO] running `Command { std: "docker" "start" "-a" "c7a74dfd5edd11df50b776ad23054a9a784a43634dbd14793698442bd2d108bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c7a74dfd5edd11df50b776ad23054a9a784a43634dbd14793698442bd2d108bd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c7a74dfd5edd11df50b776ad23054a9a784a43634dbd14793698442bd2d108bd", kill_on_drop: false }`
[INFO] [stdout] c7a74dfd5edd11df50b776ad23054a9a784a43634dbd14793698442bd2d108bd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:29356a839a4d14451438f794ce8414e707d72405f44418718d724d22562fe786" "/opt/rustwide/cargo-home/bin/cargo" "+df1b9bf194c9183fb7c0604484171064069ce232" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 60d84c66a2cdd741202f6afbae2f765a9ad0b0cc8a5314243fc49b8fb0b7b5b0
[INFO] running `Command { std: "docker" "start" "-a" "60d84c66a2cdd741202f6afbae2f765a9ad0b0cc8a5314243fc49b8fb0b7b5b0", kill_on_drop: false }`
[INFO] [stderr]     Checking bytes v1.7.2
[INFO] [stderr]     Checking hashbrown v0.15.0
[INFO] [stderr]    Compiling cc v1.1.28
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]     Checking signal-hook-registry v1.4.2
[INFO] [stderr]     Checking parking_lot_core v0.9.10
[INFO] [stderr]     Checking mio v1.0.2
[INFO] [stderr]     Checking socket2 v0.5.7
[INFO] [stderr]    Compiling openssl v0.10.66
[INFO] [stderr]     Checking flate2 v1.0.34
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking linux-raw-sys v0.4.14
[INFO] [stderr]     Checking anstyle-parse v0.2.5
[INFO] [stderr]     Checking time v0.3.36
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking signal-hook v0.3.17
[INFO] [stderr]     Checking parking_lot v0.12.3
[INFO] [stderr]     Checking unicode-normalization v0.1.24
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]    Compiling zip v1.1.4
[INFO] [stderr]     Checking anstyle v1.0.8
[INFO] [stderr]     Checking unicode-bidi v0.3.17
[INFO] [stderr]     Checking anstyle-query v1.1.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking colorchoice v1.0.2
[INFO] [stderr]     Checking http v1.1.0
[INFO] [stderr]     Checking rayon-core v1.12.1
[INFO] [stderr]     Checking chrono v0.4.38
[INFO] [stderr]     Checking regex-automata v0.4.8
[INFO] [stderr]     Checking getrandom v0.2.15
[INFO] [stderr]     Checking clap_lex v0.7.2
[INFO] [stderr]     Checking unicode-ident v1.0.13
[INFO] [stderr]     Checking fastrand v2.1.1
[INFO] [stderr]     Checking anstream v0.6.15
[INFO] [stderr]     Checking rustls-pki-types v1.9.0
[INFO] [stderr]     Checking uuid v1.10.0
[INFO] [stderr]     Checking crossterm v0.25.0
[INFO] [stderr]     Checking indexmap v2.6.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking clap_builder v4.5.20
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking rustls-pemfile v2.2.0
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking rayon v1.10.0
[INFO] [stderr]     Checking sync_wrapper v1.0.1
[INFO] [stderr]     Checking thread_local v1.1.8
[INFO] [stderr]     Checking xml-rs v0.8.22
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking tracing-subscriber v0.3.18
[INFO] [stderr]     Checking url v2.5.2
[INFO] [stderr]     Checking tui v0.19.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking tl v0.7.8
[INFO] [stderr]     Checking zip v0.6.6
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]     Checking regex v1.11.0
[INFO] [stderr]     Checking tempfile v3.13.0
[INFO] [stderr]     Checking crossterm v0.28.1
[INFO] [stderr]     Checking lopdf v0.34.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stderr]     Checking tokio v1.40.0
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking num_enum v0.7.3
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking thiserror v1.0.64
[INFO] [stderr]     Checking clap v4.5.20
[INFO] [stderr]     Checking epub v2.1.2
[INFO] [stderr]     Checking http-body-util v0.1.2
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking tokio-util v0.7.12
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking upon v0.7.1
[INFO] [stderr]     Checking h2 v0.4.6
[INFO] [stderr]     Checking epub-builder v0.7.4
[INFO] [stderr]     Checking hyper v1.4.1
[INFO] [stderr]     Checking hyper-util v0.1.9
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking reqwest v0.12.8
[INFO] [stderr]     Checking ziggurat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `google::translate_text` and `llm::translate`
[INFO] [stdout]   --> src/main.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use providers::{google::translate_text, llm::translate};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `google::translate_text` and `llm::translate`
[INFO] [stdout]   --> src/main.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use providers::{google::translate_text, llm::translate};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/frontend/tui.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 210 | /             match state.selected_option {
[INFO] [stdout] 211 | |                 MenuOption::Providers => {
[INFO] [stdout] 212 | |                     match &state.selected_provider {
[INFO] [stdout] 213 | |                         ProviderOption::Add => {
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |                 MenuOption::Language => todo!(),
[INFO] [stdout] 226 | |             };
[INFO] [stdout]     | |_____________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |               let mut buffer = String::new();
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/frontend/tui.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 210 | /             match state.selected_option {
[INFO] [stdout] 211 | |                 MenuOption::Providers => {
[INFO] [stdout] 212 | |                     match &state.selected_provider {
[INFO] [stdout] 213 | |                         ProviderOption::Add => {
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |                 MenuOption::Language => todo!(),
[INFO] [stdout] 226 | |             };
[INFO] [stdout]     | |_____________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |               let mut buffer = String::new();
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     loop {
[INFO] [stdout] 55 | |         render_app_state(&mut terminal, app_state.clone())?;
[INFO] [stdout] 56 | |
[INFO] [stdout] 57 | |         if let Event::Key(key) = event::read()? {
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |         terminal.flush()?;
[INFO] [stdout] 62 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 63 |
[INFO] [stdout] 64 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     loop {
[INFO] [stdout] 55 | |         render_app_state(&mut terminal, app_state.clone())?;
[INFO] [stdout] 56 | |
[INFO] [stdout] 57 | |         if let Event::Key(key) = event::read()? {
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |         terminal.flush()?;
[INFO] [stdout] 62 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 63 |
[INFO] [stdout] 64 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/frontend/tui.rs:217:63
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider`
[INFO] [stdout]    --> src/frontend/tui.rs:217:69
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: try ignoring the field: `provider: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/frontend/tui.rs:217:63
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider`
[INFO] [stdout]    --> src/frontend/tui.rs:217:69
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: try ignoring the field: `provider: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut app_state = Arc::new(Mutex::new(AppState::new()));
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoogleTranslate` and `Llm` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Provider {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     GoogleTranslate {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Llm {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V2` and `V3` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ApiVersion {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 18 |     V2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     V3 { project_id: String },
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Entry` is never constructed
[INFO] [stdout]   --> src/frontend/tui.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ProviderOption {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 30 |     Add,
[INFO] [stdout] 31 |     Entry(ProviderEntry),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `confirmed_provider_idx`, `config_path`, `input_file`, `output_file`, and `language_code` are never read
[INFO] [stdout]   --> src/frontend/tui.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     confirmed_provider_idx: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     providers: Vec<ProviderEntry>,
[INFO] [stdout] 90 |     config_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 91 |     input_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 92 |     output_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     language_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateRequest` is never constructed
[INFO] [stdout]  --> src/providers/google.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct TranslateRequest {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateResponse` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct TranslateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateData` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TranslateData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Translation` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Translation {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_pdf` is never used
[INFO] [stdout]   --> src/providers/google.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | async fn translate_pdf(
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_text` is never used
[INFO] [stdout]   --> src/providers/google.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub async fn translate_text(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_whitespace` is never used
[INFO] [stdout]    --> src/providers/google.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn is_whitespace(snippet: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]  --> src/providers/llm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Request {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Response` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Response {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Choice` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Choice {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logprobs` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Logprobs {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_request` is never used
[INFO] [stdout]   --> src/providers/llm.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | async fn send_request(endpoint: &str, api_key: &str, request: &Request) -> Result<Response> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]   --> src/providers/llm.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn translate(snippet: &str, to: &str, endpoint: &str, api_key: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend/tui.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List {
[INFO] [stdout]     |                       ^^^^ the lifetime is elided here                ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut app_state = Arc::new(Mutex::new(AppState::new()));
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoogleTranslate` and `Llm` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Provider {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     GoogleTranslate {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Llm {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V2` and `V3` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ApiVersion {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 18 |     V2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     V3 { project_id: String },
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Entry` is never constructed
[INFO] [stdout]   --> src/frontend/tui.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ProviderOption {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 30 |     Add,
[INFO] [stdout] 31 |     Entry(ProviderEntry),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `confirmed_provider_idx`, `config_path`, `input_file`, `output_file`, and `language_code` are never read
[INFO] [stdout]   --> src/frontend/tui.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     confirmed_provider_idx: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     providers: Vec<ProviderEntry>,
[INFO] [stdout] 90 |     config_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 91 |     input_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 92 |     output_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     language_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateRequest` is never constructed
[INFO] [stdout]  --> src/providers/google.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct TranslateRequest {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateResponse` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct TranslateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateData` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TranslateData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Translation` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Translation {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_pdf` is never used
[INFO] [stdout]   --> src/providers/google.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | async fn translate_pdf(
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_text` is never used
[INFO] [stdout]   --> src/providers/google.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub async fn translate_text(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_whitespace` is never used
[INFO] [stdout]    --> src/providers/google.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn is_whitespace(snippet: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]  --> src/providers/llm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Request {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Response` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Response {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Choice` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Choice {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logprobs` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Logprobs {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_request` is never used
[INFO] [stdout]   --> src/providers/llm.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | async fn send_request(endpoint: &str, api_key: &str, request: &Request) -> Result<Response> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]   --> src/providers/llm.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn translate(snippet: &str, to: &str, endpoint: &str, api_key: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend/tui.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List {
[INFO] [stdout]     |                       ^^^^ the lifetime is elided here                ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.39s
[INFO] running `Command { std: "docker" "inspect" "60d84c66a2cdd741202f6afbae2f765a9ad0b0cc8a5314243fc49b8fb0b7b5b0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "60d84c66a2cdd741202f6afbae2f765a9ad0b0cc8a5314243fc49b8fb0b7b5b0", kill_on_drop: false }`
[INFO] [stdout] 60d84c66a2cdd741202f6afbae2f765a9ad0b0cc8a5314243fc49b8fb0b7b5b0
