From a7f628ee218620c81d49d74d1a317b6c6ef52611 Mon Sep 17 00:00:00 2001 From: xintaofei Date: Sun, 29 Mar 2026 18:55:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BB=A3=E7=A0=81=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/commands/acp.rs | 5 ++++- src-tauri/src/commands/conversations.rs | 6 +++++- src-tauri/src/commands/folder_commands.rs | 6 ++++++ src-tauri/src/commands/folders.rs | 5 ++++- src-tauri/src/commands/system_settings.rs | 3 +++ src-tauri/src/commands/terminal.rs | 4 ++++ src-tauri/src/commands/version_control.rs | 10 +++++++--- src-tauri/src/process.rs | 4 ++++ src-tauri/src/web/handlers/web_server.rs | 2 +- src-tauri/src/web/mod.rs | 1 + 10 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src-tauri/src/commands/acp.rs b/src-tauri/src/commands/acp.rs index 68234f0..e4728e2 100644 --- a/src-tauri/src/commands/acp.rs +++ b/src-tauri/src/commands/acp.rs @@ -8,13 +8,16 @@ use tauri::State; use crate::acp::binary_cache; use crate::acp::error::AcpError; +#[cfg(feature = "tauri-runtime")] use crate::acp::manager::ConnectionManager; use crate::acp::preflight::{self, PreflightResult}; use crate::acp::registry; use crate::acp::types::{ AcpAgentInfo, AgentSkillContent, AgentSkillItem, AgentSkillLayout, AgentSkillLocation, - AgentSkillScope, AgentSkillsListResult, ConnectionInfo, ForkResultInfo, PromptInputBlock, + AgentSkillScope, AgentSkillsListResult, }; +#[cfg(feature = "tauri-runtime")] +use crate::acp::types::{ConnectionInfo, ForkResultInfo, PromptInputBlock}; use crate::db::service::agent_setting_service; use crate::db::AppDatabase; use crate::models::agent::AgentType; diff --git a/src-tauri/src/commands/conversations.rs b/src-tauri/src/commands/conversations.rs index 1144817..0aee1c3 100644 --- a/src-tauri/src/commands/conversations.rs +++ b/src-tauri/src/commands/conversations.rs @@ -1,8 +1,12 @@ use std::collections::{HashMap, HashSet}; use crate::app_error::AppCommandError; +#[cfg(feature = "tauri-runtime")] use crate::db::entities::conversation; -use crate::db::service::{conversation_service, folder_service, import_service}; +use crate::db::service::{conversation_service, folder_service}; +#[cfg(feature = "tauri-runtime")] +use crate::db::service::import_service; +#[cfg(feature = "tauri-runtime")] use crate::db::AppDatabase; use crate::models::*; use crate::parsers::claude::ClaudeParser; diff --git a/src-tauri/src/commands/folder_commands.rs b/src-tauri/src/commands/folder_commands.rs index f69ae60..2c5b7ec 100644 --- a/src-tauri/src/commands/folder_commands.rs +++ b/src-tauri/src/commands/folder_commands.rs @@ -1,10 +1,16 @@ +#[cfg(feature = "tauri-runtime")] use crate::db::error::DbError; +#[cfg(feature = "tauri-runtime")] use crate::db::service::folder_command_service; +#[cfg(feature = "tauri-runtime")] use crate::db::AppDatabase; +#[cfg(feature = "tauri-runtime")] use crate::models::FolderCommandInfo; use std::path::Path; +#[cfg(feature = "tauri-runtime")] use tokio::sync::Mutex; +#[cfg(feature = "tauri-runtime")] static BOOTSTRAP_FOLDER_COMMANDS_LOCK: Mutex<()> = Mutex::const_new(()); pub(crate) fn load_package_scripts_as_commands(folder_path: &str) -> Vec<(String, String)> { diff --git a/src-tauri/src/commands/folders.rs b/src-tauri/src/commands/folders.rs index d441ba3..e75dabe 100644 --- a/src-tauri/src/commands/folders.rs +++ b/src-tauri/src/commands/folders.rs @@ -18,10 +18,13 @@ use walkdir::WalkDir; use tauri::Manager; use crate::app_error::AppCommandError; +#[cfg(feature = "tauri-runtime")] use crate::db::error::DbError; use crate::db::service::folder_service; use crate::db::AppDatabase; -use crate::models::{FolderDetail, FolderHistoryEntry, GitCredentials, OpenedConversation}; +use crate::models::GitCredentials; +#[cfg(feature = "tauri-runtime")] +use crate::models::{FolderDetail, FolderHistoryEntry, OpenedConversation}; use crate::web::event_bridge::EventEmitter; /// Configure a git command for remote operations: diff --git a/src-tauri/src/commands/system_settings.rs b/src-tauri/src/commands/system_settings.rs index d0a4b1e..3fb0e50 100644 --- a/src-tauri/src/commands/system_settings.rs +++ b/src-tauri/src/commands/system_settings.rs @@ -4,12 +4,15 @@ use tauri::State; use crate::app_error::AppCommandError; use crate::db::service::app_metadata_service; +#[cfg(feature = "tauri-runtime")] use crate::db::AppDatabase; use crate::models::{SystemLanguageSettings, SystemProxySettings}; +#[cfg(feature = "tauri-runtime")] use crate::network::proxy; const SYSTEM_PROXY_SETTINGS_KEY: &str = "system_proxy_settings"; const SYSTEM_LANGUAGE_SETTINGS_KEY: &str = "system_language_settings"; +#[cfg(feature = "tauri-runtime")] const LANGUAGE_SETTINGS_UPDATED_EVENT: &str = "app://language-settings-updated"; fn normalize_proxy_settings( diff --git a/src-tauri/src/commands/terminal.rs b/src-tauri/src/commands/terminal.rs index 6de55b8..5f90414 100644 --- a/src-tauri/src/commands/terminal.rs +++ b/src-tauri/src/commands/terminal.rs @@ -6,9 +6,13 @@ use tauri::Manager; use tauri::State; use crate::git_credential; +#[cfg(feature = "tauri-runtime")] use crate::terminal::error::TerminalError; +#[cfg(feature = "tauri-runtime")] use crate::terminal::manager::{SpawnOptions, TerminalManager}; +#[cfg(feature = "tauri-runtime")] use crate::terminal::types::TerminalInfo; +#[cfg(feature = "tauri-runtime")] use crate::web::event_bridge::EventEmitter; /// Build extra env vars for the terminal session. diff --git a/src-tauri/src/commands/version_control.rs b/src-tauri/src/commands/version_control.rs index 3496c6d..bfbf4e5 100644 --- a/src-tauri/src/commands/version_control.rs +++ b/src-tauri/src/commands/version_control.rs @@ -4,12 +4,15 @@ use tauri::State; use crate::app_error::AppCommandError; use crate::db::service::app_metadata_service; +#[cfg(feature = "tauri-runtime")] use crate::db::AppDatabase; -use crate::models::{ - GitDetectResult, GitHubAccountsSettings, GitHubTokenValidation, GitSettings, -}; +use crate::models::GitDetectResult; +#[cfg(feature = "tauri-runtime")] +use crate::models::GitHubAccountsSettings; +use crate::models::{GitHubTokenValidation, GitSettings}; const GIT_SETTINGS_KEY: &str = "git_settings"; +#[cfg(feature = "tauri-runtime")] const GITHUB_ACCOUNTS_KEY: &str = "github_accounts"; // --------------------------------------------------------------------------- @@ -170,6 +173,7 @@ pub async fn update_git_settings( // GitHub accounts // --------------------------------------------------------------------------- +#[cfg(feature = "tauri-runtime")] async fn load_github_accounts( conn: &sea_orm::DatabaseConnection, ) -> Result { diff --git a/src-tauri/src/process.rs b/src-tauri/src/process.rs index 08b38f7..ab79e40 100644 --- a/src-tauri/src/process.rs +++ b/src-tauri/src/process.rs @@ -1,4 +1,5 @@ use std::ffi::{OsStr, OsString}; +#[cfg(feature = "tauri-runtime")] use std::path::PathBuf; use std::process::Command; @@ -88,6 +89,7 @@ where /// child processes) can find node/npm/npx without any special handling. /// /// Call once at startup, after `fix_path_env::fix()`. +#[cfg(feature = "tauri-runtime")] pub fn ensure_node_in_path() { // Already reachable — nothing to do. if which::which("node").is_ok() { @@ -107,6 +109,7 @@ pub fn ensure_node_in_path() { /// Search common Node.js version manager directories for a `node` binary and /// return the containing bin directory. +#[cfg(feature = "tauri-runtime")] fn find_node_bin_dir(home: &std::path::Path) -> Option { let mut candidates: Vec = Vec::new(); @@ -175,6 +178,7 @@ fn find_node_bin_dir(home: &std::path::Path) -> Option { } /// Prepend a directory to the process `PATH` environment variable. +#[cfg(feature = "tauri-runtime")] fn prepend_to_path(dir: &std::path::Path) { let sep = if cfg!(windows) { ";" } else { ":" }; let current = std::env::var_os("PATH").unwrap_or_default(); diff --git a/src-tauri/src/web/handlers/web_server.rs b/src-tauri/src/web/handlers/web_server.rs index 98301bb..31021a0 100644 --- a/src-tauri/src/web/handlers/web_server.rs +++ b/src-tauri/src/web/handlers/web_server.rs @@ -22,7 +22,7 @@ pub struct StartWebServerParams { pub async fn start_web_server( Extension(state): Extension>, - Json(params): Json, + Json(_params): Json, ) -> Result, AppCommandError> { // In web mode, the server is already running (this handler itself is served by it). // This endpoint is mainly useful in Tauri mode. Return current status as a noop. diff --git a/src-tauri/src/web/mod.rs b/src-tauri/src/web/mod.rs index de30669..2d511f9 100644 --- a/src-tauri/src/web/mod.rs +++ b/src-tauri/src/web/mod.rs @@ -122,6 +122,7 @@ pub fn get_local_addresses(port: u16) -> Vec { // ── Core logic (shared by Tauri commands and web handlers) ── +#[allow(dead_code)] pub(crate) async fn do_start_web_server_with_state( app_state: Arc, static_dir: PathBuf,