feat: add TOML validation for Codex config and improve code formatting
- Add real-time TOML syntax validation for Codex config field - Validate config TOML when saving provider settings - Format code to improve readability with proper error handling blocks - Reorganize imports for better consistency This ensures Codex config is valid TOML before saving, preventing runtime errors.
This commit is contained in:
@@ -32,6 +32,9 @@ fn validate_provider_settings(app_type: &AppType, provider: &Provider) -> Result
|
||||
if !(config_value.is_string() || config_value.is_null()) {
|
||||
return Err("Codex config 字段必须是字符串".to_string());
|
||||
}
|
||||
if let Some(cfg_text) = config_value.as_str() {
|
||||
codex_config::validate_config_toml(cfg_text)?;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,13 +7,13 @@ mod provider;
|
||||
mod store;
|
||||
|
||||
use store::AppState;
|
||||
#[cfg(target_os = "macos")]
|
||||
use tauri::RunEvent;
|
||||
use tauri::{
|
||||
menu::{CheckMenuItem, Menu, MenuBuilder, MenuItem},
|
||||
tray::{TrayIconBuilder, TrayIconEvent},
|
||||
};
|
||||
use tauri::{Emitter, Manager};
|
||||
#[cfg(target_os = "macos")]
|
||||
use tauri::RunEvent;
|
||||
|
||||
/// 创建动态托盘菜单
|
||||
fn create_tray_menu(
|
||||
@@ -144,7 +144,9 @@ fn handle_tray_menu_event(app: &tauri::AppHandle, event_id: &str) {
|
||||
provider_id,
|
||||
)
|
||||
.await
|
||||
{ log::error!("切换Claude供应商失败: {}", e); }
|
||||
{
|
||||
log::error!("切换Claude供应商失败: {}", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
id if id.starts_with("codex_") => {
|
||||
@@ -161,7 +163,9 @@ fn handle_tray_menu_event(app: &tauri::AppHandle, event_id: &str) {
|
||||
provider_id,
|
||||
)
|
||||
.await
|
||||
{ log::error!("切换Codex供应商失败: {}", e); }
|
||||
{
|
||||
log::error!("切换Codex供应商失败: {}", e);
|
||||
}
|
||||
});
|
||||
}
|
||||
_ => {
|
||||
|
||||
@@ -148,8 +148,7 @@ pub fn migrate_copies_into_config(config: &mut MultiAppConfig) -> Result<bool, S
|
||||
// 如果已迁移过则跳过;若目录不存在则先创建,避免新装用户写入标记时失败
|
||||
let marker = get_marker_path();
|
||||
if let Some(parent) = marker.parent() {
|
||||
std::fs::create_dir_all(parent)
|
||||
.map_err(|e| format!("创建迁移标记目录失败: {}", e))?;
|
||||
std::fs::create_dir_all(parent).map_err(|e| format!("创建迁移标记目录失败: {}", e))?;
|
||||
}
|
||||
if marker.exists() {
|
||||
return Ok(false);
|
||||
|
||||
Reference in New Issue
Block a user