mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-08-03 11:01:22 +08:00
fix: resolve critical bugs in settings and import flow
Fixed two critical issues: 1. **Blocking Issue - restart_app return type error** - Fixed compilation error where restart_app() didn't return a value - Used async spawn with 100ms delay to allow response before restart - Prevents "unreachable code" compiler error 2. **High Priority - Import SQL doesn't refresh AppSettings cache** - Added reload_settings() function to refresh in-memory settings cache - Integrated into import flow to ensure imported settings take effect - Prevents imported settings being overwritten by stale memory cache - Affects: language, config directories, auto-launch, custom endpoints Changes: - src/commands/settings.rs: Async delayed restart with proper return value - src/settings.rs: New reload_settings() to sync memory cache from DB - src/commands/import_export.rs: Call reload_settings() after SQL import Verified: cargo clippy --lib and pnpm typecheck both pass
This commit is contained in:
@@ -260,6 +260,15 @@ pub fn update_settings(mut new_settings: AppSettings) -> Result<(), AppError> {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// 从数据库重新加载设置到内存缓存
|
||||
/// 用于导入配置等场景,确保内存缓存与数据库同步
|
||||
pub fn reload_settings() -> Result<(), AppError> {
|
||||
let fresh_settings = load_initial_settings();
|
||||
let mut guard = settings_store().write().expect("写入设置锁失败");
|
||||
*guard = fresh_settings;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn ensure_security_auth_selected_type(selected_type: &str) -> Result<(), AppError> {
|
||||
let mut settings = get_settings();
|
||||
let current = settings
|
||||
|
||||
Reference in New Issue
Block a user