mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-04-18 17:33:08 +08:00
fix(proxy): update live backup when hot-switching provider in proxy mode
When proxy is active, switching providers only updated the database flags but not the live backup. This caused the wrong provider config to be restored when stopping the proxy. Added `update_live_backup_from_provider()` method to ProxyService that generates backup from provider's settings_config instead of reading from live files (which are already taken over by proxy).
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use cc_switch_lib::{import_provider_from_deeplink, parse_deeplink_url, AppState, Database, ProxyService};
|
||||
use cc_switch_lib::{
|
||||
import_provider_from_deeplink, parse_deeplink_url, AppState, Database, ProxyService,
|
||||
};
|
||||
|
||||
#[path = "support.rs"]
|
||||
mod support;
|
||||
@@ -17,7 +19,10 @@ fn deeplink_import_claude_provider_persists_to_db() {
|
||||
|
||||
let db = Arc::new(Database::memory().expect("create memory db"));
|
||||
let proxy_service = ProxyService::new(db.clone());
|
||||
let state = AppState { db: db.clone(), proxy_service };
|
||||
let state = AppState {
|
||||
db: db.clone(),
|
||||
proxy_service,
|
||||
};
|
||||
|
||||
let provider_id = import_provider_from_deeplink(&state, request.clone())
|
||||
.expect("import provider from deeplink");
|
||||
@@ -54,7 +59,10 @@ fn deeplink_import_codex_provider_builds_auth_and_config() {
|
||||
|
||||
let db = Arc::new(Database::memory().expect("create memory db"));
|
||||
let proxy_service = ProxyService::new(db.clone());
|
||||
let state = AppState { db: db.clone(), proxy_service };
|
||||
let state = AppState {
|
||||
db: db.clone(),
|
||||
proxy_service,
|
||||
};
|
||||
|
||||
let provider_id = import_provider_from_deeplink(&state, request.clone())
|
||||
.expect("import provider from deeplink");
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
use std::path::{Path, PathBuf};
|
||||
use std::sync::{Arc, Mutex, OnceLock};
|
||||
|
||||
use cc_switch_lib::{update_settings, AppSettings, AppState, Database, MultiAppConfig, ProxyService};
|
||||
use cc_switch_lib::{
|
||||
update_settings, AppSettings, AppState, Database, MultiAppConfig, ProxyService,
|
||||
};
|
||||
|
||||
/// 为测试设置隔离的 HOME 目录,避免污染真实用户数据。
|
||||
pub fn ensure_test_home() -> &'static Path {
|
||||
|
||||
Reference in New Issue
Block a user