From 2ddb8fdae3fbd24e509daed645ec072e58ad11e1 Mon Sep 17 00:00:00 2001 From: Bryan Helmkamp Date: Tue, 10 Mar 2026 17:07:09 -0400 Subject: [PATCH] Gate prompt_input behind server feature flag The function is only called from a #[cfg(feature = "server")] block, so it triggers a dead_code warning when compiled without the feature. Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/crates/arc-cli/src/install.rs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/crates/arc-cli/src/install.rs b/lib/crates/arc-cli/src/install.rs index 3449b398f..04b6ce8b5 100644 --- a/lib/crates/arc-cli/src/install.rs +++ b/lib/crates/arc-cli/src/install.rs @@ -10,7 +10,7 @@ use arc_llm::provider::Provider; use axum::extract::Query; use axum::response::Html; use axum::routing::get; -use dialoguer::{Confirm, Input, MultiSelect, Select}; +use dialoguer::{Confirm, MultiSelect, Password, Select}; use rand::Rng; use tokio::net::TcpListener; use tokio::sync::oneshot; @@ -277,9 +277,18 @@ fn prompt_confirm(prompt: &str, default: bool) -> Result { ) } +#[cfg(feature = "server")] fn prompt_input(prompt: &str) -> Result { Ok( - Input::with_theme(&dialoguer::theme::ColorfulTheme::default()) + dialoguer::Input::with_theme(&dialoguer::theme::ColorfulTheme::default()) + .with_prompt(prompt) + .interact_on(&dialoguer::console::Term::stderr())?, + ) +} + +fn prompt_password(prompt: &str) -> Result { + Ok( + Password::with_theme(&dialoguer::theme::ColorfulTheme::default()) .with_prompt(prompt) .interact_on(&dialoguer::console::Term::stderr())?, ) @@ -593,7 +602,7 @@ pub async fn run_install() -> Result<()> { eprintln!(" Get your API key at: {url}"); let prompt = env_var.to_string(); - let key: String = tokio::task::spawn_blocking(move || prompt_input(&prompt)).await??; + let key: String = tokio::task::spawn_blocking(move || prompt_password(&prompt)).await??; env_pairs.push((env_var.to_string(), key)); configured_providers.push(first_provider); } @@ -631,7 +640,8 @@ pub async fn run_install() -> Result<()> { eprintln!(" Get your API key at: {url}"); let prompt = env_var.to_string(); - let key: String = tokio::task::spawn_blocking(move || prompt_input(&prompt)).await??; + let key: String = + tokio::task::spawn_blocking(move || prompt_password(&prompt)).await??; env_pairs.push((env_var.to_string(), key)); } }