Revert "feat(settings): add auto-launch on system startup feature"

This reverts commit ba336fc416.

Reason: Found issues that need to be addressed before reintroducing
the auto-launch feature. Will reimplement with fixes.
This commit is contained in:
Jason
2025-11-21 23:30:56 +08:00
parent ba336fc416
commit eb46ac8592
14 changed files with 0 additions and 178 deletions

41
src-tauri/Cargo.lock generated
View File

@@ -291,17 +291,6 @@ version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
[[package]]
name = "auto-launch"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f012b8cc0c850f34117ec8252a44418f2e34a2cf501de89e29b241ae5f79471"
dependencies = [
"dirs 4.0.0",
"thiserror 1.0.69",
"winreg 0.10.1",
]
[[package]]
name = "autocfg"
version = "1.5.0"
@@ -609,7 +598,6 @@ name = "cc-switch"
version = "3.7.0"
dependencies = [
"anyhow",
"auto-launch",
"chrono",
"dirs 5.0.1",
"futures",
@@ -994,15 +982,6 @@ dependencies = [
"subtle",
]
[[package]]
name = "dirs"
version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
dependencies = [
"dirs-sys 0.3.7",
]
[[package]]
name = "dirs"
version = "5.0.1"
@@ -1021,17 +1000,6 @@ dependencies = [
"dirs-sys 0.5.0",
]
[[package]]
name = "dirs-sys"
version = "0.3.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
dependencies = [
"libc",
"redox_users 0.4.6",
"winapi",
]
[[package]]
name = "dirs-sys"
version = "0.4.1"
@@ -6429,15 +6397,6 @@ dependencies = [
"memchr",
]
[[package]]
name = "winreg"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
dependencies = [
"winapi",
]
[[package]]
name = "winreg"
version = "0.52.0"

View File

@@ -34,7 +34,6 @@ tauri-plugin-updater = "2"
tauri-plugin-dialog = "2"
tauri-plugin-store = "2"
tauri-plugin-deep-link = "2"
auto-launch = "0.5"
dirs = "5.0"
toml = "0.8"
toml_edit = "0.22"

View File

@@ -1,39 +0,0 @@
use crate::error::AppError;
use auto_launch::AutoLaunch;
/// 初始化 AutoLaunch 实例
fn get_auto_launch() -> Result<AutoLaunch, AppError> {
let app_name = "CC Switch";
let app_path = std::env::current_exe().map_err(AppError::AutoLaunchPathError)?;
let auto_launch = AutoLaunch::new(app_name, &app_path.to_string_lossy(), false, &[] as &[&str]);
Ok(auto_launch)
}
/// 启用开机自启
pub fn enable_auto_launch() -> Result<(), AppError> {
let auto_launch = get_auto_launch()?;
auto_launch
.enable()
.map_err(|e| AppError::AutoLaunchEnableError(e.to_string()))?;
log::info!("Auto-launch enabled");
Ok(())
}
/// 禁用开机自启
pub fn disable_auto_launch() -> Result<(), AppError> {
let auto_launch = get_auto_launch()?;
auto_launch
.disable()
.map_err(|e| AppError::AutoLaunchDisableError(e.to_string()))?;
log::info!("Auto-launch disabled");
Ok(())
}
/// 检查是否已启用开机自启
pub fn is_auto_launch_enabled() -> Result<bool, AppError> {
let auto_launch = get_auto_launch()?;
auto_launch
.is_enabled()
.map_err(|e| AppError::AutoLaunchCheckError(e.to_string()))
}

View File

@@ -37,20 +37,3 @@ pub async fn set_app_config_dir_override(
crate::app_store::set_app_config_dir_to_store(&app, path.as_deref())?;
Ok(true)
}
/// 设置开机自启
#[tauri::command]
pub async fn set_auto_launch(enabled: bool) -> Result<bool, String> {
if enabled {
crate::auto_launch::enable_auto_launch().map_err(|e| e.to_string())?;
} else {
crate::auto_launch::disable_auto_launch().map_err(|e| e.to_string())?;
}
Ok(true)
}
/// 获取开机自启状态
#[tauri::command]
pub async fn get_auto_launch_status() -> Result<bool, String> {
crate::auto_launch::is_auto_launch_enabled().map_err(|e| e.to_string())
}

View File

@@ -50,14 +50,6 @@ pub enum AppError {
zh: String,
en: String,
},
#[error("Failed to get application path for auto-launch: {0}")]
AutoLaunchPathError(#[source] std::io::Error),
#[error("Failed to enable auto-launch: {0}")]
AutoLaunchEnableError(String),
#[error("Failed to disable auto-launch: {0}")]
AutoLaunchDisableError(String),
#[error("Failed to check auto-launch status: {0}")]
AutoLaunchCheckError(String),
}
impl AppError {

View File

@@ -1,6 +1,5 @@
mod app_config;
mod app_store;
mod auto_launch;
mod claude_mcp;
mod claude_plugin;
mod codex_config;
@@ -560,30 +559,6 @@ pub fn run() {
// 启动阶段不再无条件保存,避免意外覆盖用户配置。
// 同步开机自启状态:以 settings.json 为准,保持系统项一致
{
let settings = crate::settings::get_settings();
let system_enabled = crate::auto_launch::is_auto_launch_enabled().unwrap_or(false);
if settings.launch_on_startup != system_enabled {
log::info!(
"开机自启状态不一致settings={}, system={},以 settings 为准",
settings.launch_on_startup,
system_enabled
);
let sync_result = if settings.launch_on_startup {
crate::auto_launch::enable_auto_launch()
} else {
crate::auto_launch::disable_auto_launch()
};
if let Err(e) = sync_result {
log::warn!("同步开机自启状态失败: {}", e);
}
}
}
// 注册 deep-link URL 处理器(使用正确的 DeepLinkExt API
log::info!("=== Registering deep-link URL handler ===");
@@ -678,8 +653,6 @@ pub fn run() {
commands::get_settings,
commands::save_settings,
commands::restart_app,
commands::set_auto_launch,
commands::get_auto_launch_status,
commands::check_for_updates,
commands::is_portable_mode,
commands::get_claude_plugin_status,

View File

@@ -49,9 +49,6 @@ pub struct AppSettings {
pub gemini_config_dir: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
/// 是否开机自启
#[serde(default)]
pub launch_on_startup: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub security: Option<SecuritySettings>,
/// Claude 自定义端点列表
@@ -80,7 +77,6 @@ impl Default for AppSettings {
codex_config_dir: None,
gemini_config_dir: None,
language: None,
launch_on_startup: false,
security: None,
custom_endpoints_claude: HashMap::new(),
custom_endpoints_codex: HashMap::new(),