feat: sync current providers to live files after config import
Core Improvements: - Add sync_current_providers_live command to synchronize in-memory provider settings to corresponding live files (~/.claude/settings.json or ~/.codex/auth.json) - Introduce partial-success state to distinguish between 'import succeeded but sync failed' scenario, providing clear user feedback - Remove unused skip_live_backfill parameter from switch_provider command - Separate responsibilities: backend handles import/backup, frontend handles sync/error presentation Technical Details: - Codex: sync auth.json + config.toml with MCP configuration - Claude: sync settings.json - Bidirectional sync: read back after write to update in-memory settings_config - Full i18n support (English and Chinese) - Graceful handling when no current provider is active Affected Files: - Backend: import_export.rs, commands.rs, lib.rs - Frontend: useImportExport.ts, ImportExportSection.tsx, settings.ts - i18n: en.json, zh.json This ensures SSOT (Single Source of Truth) consistency between config.json and live configuration files after import operations.
This commit is contained in:
@@ -167,6 +167,20 @@ function ImportStatusMessage({
|
||||
);
|
||||
}
|
||||
|
||||
if (status === "partial-success") {
|
||||
return (
|
||||
<div
|
||||
className={`${baseClass} border-yellow-200 bg-yellow-100/70 text-yellow-700`}
|
||||
>
|
||||
<AlertCircle className="mt-0.5 h-4 w-4" />
|
||||
<div className="space-y-1">
|
||||
<p className="font-medium">{t("settings.importPartialSuccess")}</p>
|
||||
<p>{t("settings.importPartialHint")}</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
const message = errorMessage || t("settings.importFailed");
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user