From 3bd0a7c02c32cea3e91cc3e9d5e4e0bf86b44537 Mon Sep 17 00:00:00 2001 From: Jason Date: Fri, 27 Feb 2026 00:03:22 +0800 Subject: [PATCH] docs: highlight Common Config Snippet removal as breaking change in release notes Expand the partial key-field merging section with Before/After explanation and migration guide. Mark it as a breaking change in Highlights and Notes sections across all three languages (zh/en/ja) and CHANGELOG.md. --- CHANGELOG.md | 2 +- docs/release-note-v3.11.0-en.md | 19 +++++++++++++++---- docs/release-note-v3.11.0-ja.md | 19 +++++++++++++++---- docs/release-note-v3.11.0-zh.md | 19 +++++++++++++++---- 4 files changed, 46 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b99cb906..d2529216 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -89,7 +89,7 @@ This release introduces **OpenClaw** as the fifth supported application, a full #### Architecture -- **Partial Key-Field Merging**: Provider switching now uses partial key-field merging instead of full config overwrite, preserving user's non-provider settings (plugins, MCP, permissions). Removes 6 frontend files and ~150 lines of backend dead code (#1098) +- **Partial Key-Field Merging (⚠️ Breaking)**: Provider switching now uses partial key-field merging instead of full config overwrite, preserving user's non-provider settings (plugins, MCP, permissions). The "Common Config Snippet" feature has been removed as it is no longer needed. Removes 6 frontend files and ~150 lines of backend dead code (#1098) - **Manual Import**: Replaced auto-import on startup with manual “Import Current Config” button in empty state, reducing ~47 lines of startup code - **OMO Variant Parameterization**: Eliminated ~250 lines of OMO/OMO Slim code duplication via `OmoVariant` struct with STANDARD/SLIM constants - **OMO Common Config Removal**: Removed the two-layer merge system for OMO common config (-1,733 lines across 21 files) diff --git a/docs/release-note-v3.11.0-en.md b/docs/release-note-v3.11.0-en.md index 0f4dda4e..4567d81b 100644 --- a/docs/release-note-v3.11.0-en.md +++ b/docs/release-note-v3.11.0-en.md @@ -22,7 +22,7 @@ CC Switch v3.11.0 is a major update that adds full management support for **Open - **Session Manager**: Browse conversation history across all five apps with table-of-contents navigation and in-session search - **Backup Management**: Independent backup panel with configurable policies, periodic backups, and pre-migration auto-backup - **Oh My OpenCode Integration**: Full OMO config management with OMO Slim lightweight mode support -- **Partial Key-Field Merging**: Provider switching now preserves user's non-provider settings +- **Partial Key-Field Merging (⚠️ Breaking Change)**: Provider switching now only replaces provider-related fields, preserving all other settings; the "Common Config Snippet" feature has been removed - **Settings Page Refactoring**: 5-tab layout with ~40% code reduction - **6 New Provider Presets**: AWS Bedrock, SSAI Code, CrazyRouter, AICoding, and more - **Thinking Budget Rectifier**: Fine-grained thinking budget control @@ -114,9 +114,20 @@ Full Oh My OpenCode config file management. ## Architecture Improvements -### Partial Key-Field Merging (Important Change) +### Partial Key-Field Merging (⚠️ Breaking Change) -Provider switching now uses partial key-field merging instead of full config overwrite (#1098). When switching providers, only provider-related key-values are updated, preserving user's non-provider settings (plugins, MCP, permissions, etc.). This refactoring removed 6 frontend files and ~150 lines of backend dead code. +Provider switching now uses partial key-field merging instead of full config overwrite (#1098). + +**Before**: Switching providers overwrote the entire `settings_config` to the live config file. This meant that any non-provider settings the user manually added to the live file (plugins, MCP config, permissions, etc.) would be lost on every switch. To work around this, previous versions offered a "Common Config Snippet" feature that let users define shared config to be merged on every switch. + +**After**: Switching providers now only replaces provider-related key-values (API keys, endpoints, models, etc.), leaving all other settings intact. The "Common Config Snippet" feature is therefore no longer needed and has been removed. + +**Impact & Migration**: +- If you **didn't use** Common Config Snippets, this change is fully transparent — switching just works better now +- If you **used** Common Config Snippets to preserve custom settings (MCP config, permissions, etc.), those settings are now automatically preserved during switches — no action needed +- If you used Common Config Snippets for other purposes (e.g., injecting extra config on every switch), please manually add those settings to your live config file after upgrading + +This refactoring removed 6 frontend files (3 components + 3 hooks) and ~150 lines of backend dead code. ### Manual Import Replaces Auto-Import @@ -224,7 +235,7 @@ Refactored settings page to a 5-tab layout (General | Proxy | Advanced | Usage | ## Notes & Considerations - **OpenClaw is a newly supported app**: OpenClaw CLI must be installed first to use related features. -- **Partial key-field merging is an important architecture change**: Provider switching no longer overwrites the entire config file, but only merges provider-related key-values. Please note this change if you previously relied on full overwrite behavior. +- **⚠️ Common Config Snippet feature has been removed**: Since provider switching now uses partial key-field merging (only replacing API keys, endpoints, models, etc.), user's other settings are automatically preserved, making Common Config Snippets unnecessary. See the "Architecture Improvements" section above for migration details. - **Auto-import changed to manual**: External configurations are no longer auto-imported on startup. Click "Import Current Config" manually when needed. - **OMO and OMO Slim are mutually exclusive**: Only one can be active at a time. Switching to one automatically disables the other. - **Backup is enabled by default**: Automatic hourly backup during runtime. Adjust the policy in the Backup panel. diff --git a/docs/release-note-v3.11.0-ja.md b/docs/release-note-v3.11.0-ja.md index 072d9dd7..ce5d0372 100644 --- a/docs/release-note-v3.11.0-ja.md +++ b/docs/release-note-v3.11.0-ja.md @@ -22,7 +22,7 @@ CC Switch v3.11.0 は大規模なアップデートです。5番目のアプリ - **セッションマネージャー**: 5つのアプリの会話履歴を閲覧、目次ナビゲーションとセッション内検索 - **バックアップ管理**: 独立バックアップパネル、設定可能なポリシー、定期バックアップ、マイグレーション前自動バックアップ - **Oh My OpenCode 統合**: 完全な OMO 設定管理、OMO Slim 軽量モードサポート -- **部分キーフィールドマージ**: プロバイダー切り替え時にユーザーの非プロバイダー設定を保持 +- **部分キーフィールドマージ(⚠️ 破壊的変更)**: プロバイダー切り替え時にプロバイダー関連フィールドのみ置換し、その他の設定を保持;「共通設定スニペット」機能は削除されました - **設定ページリファクタリング**: 5タブレイアウト、コード量約 40% 削減 - **6つの新プロバイダープリセット**: AWS Bedrock、SSAI Code、CrazyRouter、AICoding など - **Thinking Budget Rectifier**: より精密な thinking budget 制御 @@ -114,9 +114,20 @@ Claude Code、Codex、Gemini CLI、OpenCode に続く5番目の管理対象ア ## アーキテクチャ改善 -### 部分キーフィールドマージ(重要な変更) +### 部分キーフィールドマージ(⚠️ 破壊的変更) -プロバイダー切り替えを完全な設定上書きから部分キーフィールドマージ戦略に変更しました(#1098)。プロバイダー切り替え時に、プロバイダー関連のキー値のみを更新し、ユーザーの非プロバイダー設定(プラグイン設定、MCP 設定、権限設定など)を保持します。このリファクタリングにより、フロントエンドファイル6つと約150行のバックエンドデッドコードを削除しました。 +プロバイダー切り替えを完全な設定上書きから部分キーフィールドマージ戦略に変更しました(#1098)。 + +**変更前**: プロバイダーを切り替えると、`settings_config` 全体がライブ設定ファイルに上書きされていました。つまり、ユーザーがライブファイルに手動で追加した非プロバイダー設定(プラグイン設定、MCP 設定、権限設定など)は、切り替えのたびに失われていました。この問題を補うため、以前のバージョンでは「共通設定スニペット」機能を提供し、毎回の切り替え時にマージされる共通設定を定義できました。 + +**変更後**: プロバイダー切り替え時に、プロバイダー関連のキー値(API キー、エンドポイント、モデルなど)のみが置換され、その他の設定はそのまま保持されます。そのため「共通設定スニペット」機能は不要となり、削除されました。 + +**影響と移行**: +- 共通設定スニペットを**使用していなかった**場合、この変更は完全に透過的で、切り替え体験が向上するだけです +- カスタム設定(MCP 設定、権限など)を保持するために共通設定スニペットを**使用していた**場合、それらの設定は切り替え時に自動的に保持されるようになり、追加の操作は不要です +- 共通設定スニペットを他の目的(切り替え時に追加設定を注入するなど)で使用していた場合は、アップグレード後にライブ設定ファイルに手動で設定を追加してください + +このリファクタリングにより、フロントエンドファイル 6 つ(コンポーネント 3 つ + hooks 3 つ)と約 150 行のバックエンドデッドコードを削除しました。 ### 手動インポートに変更 @@ -224,7 +235,7 @@ AppCountBar、AppToggleGroup、ListItemRow などの共有コンポーネント ## 注意事項 - **OpenClaw は新しくサポートされたアプリです**: 関連機能を使用するには、先に OpenClaw CLI をインストールする必要があります。 -- **部分キーフィールドマージは重要なアーキテクチャ変更です**: プロバイダー切り替え時に設定ファイルを完全上書きするのではなく、プロバイダー関連のキー値のみをマージするようになりました。以前の完全上書き動作に依存していた場合はご注意ください。 +- **⚠️ 共通設定スニペット機能は削除されました**: プロバイダー切り替えが部分キーフィールドマージ(API キー、エンドポイント、モデルなどのみ置換)に変更されたため、ユーザーのその他の設定は自動的に保持され、共通設定スニペットは不要になりました。移行の詳細は上記「アーキテクチャ改善」セクションを参照してください。 - **自動インポートは手動に変更されました**: 起動時に外部設定を自動インポートしなくなりました。必要に応じて「現在の設定をインポート」を手動でクリックしてください。 - **OMO と OMO Slim は相互排他**: 同時に一つだけ有効にできます。切り替え時にもう一方は自動的に無効になります。 - **バックアップ機能はデフォルトで有効**: ランタイム中に1時間ごとに自動バックアップします。バックアップパネルでポリシーを調整できます。 diff --git a/docs/release-note-v3.11.0-zh.md b/docs/release-note-v3.11.0-zh.md index fc0d665a..07041c4b 100644 --- a/docs/release-note-v3.11.0-zh.md +++ b/docs/release-note-v3.11.0-zh.md @@ -22,7 +22,7 @@ CC Switch v3.11.0 是一次大规模更新,新增第五个应用 **OpenClaw** - **会话管理器**:浏览五个应用的历史会话,支持目录导航和会话内搜索 - **备份管理**:独立备份面板,可配置策略、定时备份、迁移前自动备份 - **Oh My OpenCode 集成**:完整 OMO 配置管理,支持 OMO Slim 轻量模式 -- **部分键值合并**:供应商切换不再全量覆写,保留用户的非供应商设置 +- **部分键值合并(⚠️ 破坏性变更)**:供应商切换改为仅替换供应商相关字段,保留用户的其余设置;"通用配置片段"功能因此移除 - **设置页面重构**:5 标签页布局,代码量减少约 40% - **6 组新供应商预设**:AWS Bedrock、SSAI Code、CrazyRouter、AICoding 等 - **Thinking Budget Rectifier**:代理矫正器,更精细的 thinking budget 控制 @@ -114,9 +114,20 @@ CC Switch 新增对 OpenClaw 的完整管理支持,这是继 Claude Code、Cod ## 架构改进 -### 部分键值合并(重要变更) +### 部分键值合并(⚠️ 破坏性变更) -供应商切换从全量配置覆写改为部分键值合并策略(#1098)。切换供应商时,仅更新供应商相关的键值,保留用户的非供应商设置(如插件配置、MCP 配置、权限设置等)。此次重构删除了 6 个前端文件、约 150 行后端死代码。 +供应商切换从全量配置覆写改为部分键值合并策略(#1098)。 + +**变更前**:切换供应商时,整个 `settings_config` 会覆写到 live 配置文件。这意味着用户在 live 文件中手动添加的非供应商设置(插件配置、MCP 配置、权限设置等)会在每次切换时丢失。为了弥补这个问题,之前版本提供了"通用配置片段"功能,让用户定义每次切换时都会合并的公共配置。 + +**变更后**:切换供应商时,仅替换供应商相关的键值(API Key、端点、模型等),用户的其余设置完整保留。因此"通用配置片段"功能不再需要,已被移除。 + +**影响与迁移**: +- 如果你之前**没有使用**通用配置片段功能,此变更对你完全透明,切换体验只会更好 +- 如果你之前**使用了**通用配置片段功能来保留自定义设置(如 MCP 配置、权限等),升级后这些设置会在切换时自动保留,无需额外操作 +- 如果你利用通用配置片段做其他用途(如在切换时注入额外配置),请在升级后手动将这些配置写入 live 配置文件中 + +此次重构删除了 6 个前端文件(3 个组件 + 3 个 hooks)、约 150 行后端死代码。 ### 手动导入替代自动导入 @@ -224,7 +235,7 @@ ProviderForm 组件从 2,227 行减至 1,526 行,提取 5 个独立模块(op ## 说明与注意事项 - **OpenClaw 为新支持的应用**:需要先安装 OpenClaw CLI 才能使用相关功能。 -- **部分键值合并是重要架构变更**:供应商切换不再全量覆写配置文件,而是仅合并供应商相关的键值。如果你之前依赖全量覆写行为,请注意此变更。 +- **⚠️ 通用配置片段功能已移除**:由于供应商切换改为部分键值合并(仅替换 API Key、端点、模型等字段),用户的其余设置会自动保留,"通用配置片段"功能不再需要。详见上方"架构改进"章节的迁移说明。 - **自动导入已改为手动**:启动时不再自动导入外部配置,请在需要时手动点击"导入当前配置"。 - **OMO 与 OMO Slim 互斥**:同一时间只能启用其中一个,切换时另一个会自动禁用。 - **备份功能默认开启**:运行时每小时自动备份,可在备份面板调整策略。