mirror of
https://github.com/farion1231/cc-switch.git
synced 2026-07-24 12:44:18 +08:00
feat(profiles): split Claude Desktop into independent profile scope
This commit is contained in:
@@ -390,6 +390,9 @@ function App() {
|
||||
await queryClient.invalidateQueries({ queryKey: ["skills"] });
|
||||
await queryClient.invalidateQueries({ queryKey: ["proxyTakeoverStatus"] });
|
||||
await queryClient.invalidateQueries({ queryKey: ["proxyStatus"] });
|
||||
await queryClient.invalidateQueries({
|
||||
queryKey: ["providers", "claude-desktop"],
|
||||
});
|
||||
});
|
||||
|
||||
useTauriEvent<SyncStatusUpdatedPayload | null | undefined>(
|
||||
|
||||
@@ -8,19 +8,21 @@ import type { PerApp, Profile, ProfileScope } from "@/lib/api/profiles";
|
||||
*/
|
||||
export const APP_PROFILE_SCOPE: Partial<Record<AppId, ProfileScope>> = {
|
||||
claude: "claude",
|
||||
"claude-desktop": "claude",
|
||||
"claude-desktop": "claude-desktop",
|
||||
codex: "codex",
|
||||
};
|
||||
|
||||
/** 分组显示名(产品名,不进 i18n;与后端托盘子菜单标签一致) */
|
||||
export const PROFILE_SCOPE_LABELS: Record<ProfileScope, string> = {
|
||||
claude: "Claude Code",
|
||||
"claude-desktop": "Claude Desktop",
|
||||
codex: "Codex",
|
||||
};
|
||||
|
||||
/** 分组内的 payload 槽位 key(后端 ProfileScope::apps 的前端镜像) */
|
||||
const SCOPE_SLOT_KEYS: Record<ProfileScope, (keyof PerApp<unknown>)[]> = {
|
||||
claude: ["claude", "claude-desktop"],
|
||||
claude: ["claude"],
|
||||
"claude-desktop": ["claude-desktop"],
|
||||
codex: ["codex"],
|
||||
};
|
||||
|
||||
|
||||
@@ -1868,7 +1868,8 @@
|
||||
},
|
||||
"profiles": {
|
||||
"switcherTooltip": {
|
||||
"claude": "Projects: switch the Claude Code provider / MCP / Skills / memory files, plus the Claude Desktop provider, in one click",
|
||||
"claude": "Projects: switch the Claude Code provider / MCP / Skills / memory files in one click",
|
||||
"claude-desktop": "Projects: switch the Claude Desktop provider in one click",
|
||||
"codex": "Projects: switch the Codex provider / MCP / Skills / memory files in one click"
|
||||
},
|
||||
"none": "No project",
|
||||
@@ -1876,7 +1877,8 @@
|
||||
"empty": "No projects yet",
|
||||
"createFromCurrent": "New project",
|
||||
"createDescription": {
|
||||
"claude": "Save the current Claude Code provider, MCP, Skills and memory file (plus the Claude Desktop provider) as a project you can switch to later.",
|
||||
"claude": "Save the current Claude Code provider, MCP, Skills and memory file as a project you can switch to later.",
|
||||
"claude-desktop": "Save the current Claude Desktop provider as a project you can switch to later.",
|
||||
"codex": "Save the current Codex provider, MCP, Skills and memory file configuration as a project you can switch to later."
|
||||
},
|
||||
"manage": "Manage projects…",
|
||||
|
||||
@@ -1868,7 +1868,8 @@
|
||||
},
|
||||
"profiles": {
|
||||
"switcherTooltip": {
|
||||
"claude": "プロジェクト:Claude Code のプロバイダー / MCP / Skills / メモリファイル、および Claude Desktop のプロバイダーをワンクリックで切り替え",
|
||||
"claude": "プロジェクト:Claude Code のプロバイダー / MCP / Skills / メモリファイルをワンクリックで切り替え",
|
||||
"claude-desktop": "プロジェクト:Claude Desktop のプロバイダーをワンクリックで切り替え",
|
||||
"codex": "プロジェクト:Codex のプロバイダー / MCP / Skills / メモリファイルをワンクリックで切り替え"
|
||||
},
|
||||
"none": "プロジェクトを使用しない",
|
||||
@@ -1876,7 +1877,8 @@
|
||||
"empty": "プロジェクトはまだありません",
|
||||
"createFromCurrent": "新規プロジェクト",
|
||||
"createDescription": {
|
||||
"claude": "Claude Code の現在のプロバイダー、MCP、Skills、メモリファイル(および Claude Desktop のプロバイダー)をプロジェクトとして保存し、後からワンクリックで切り替えられます。",
|
||||
"claude": "Claude Code の現在のプロバイダー、MCP、Skills、メモリファイルをプロジェクトとして保存し、後からワンクリックで切り替えられます。",
|
||||
"claude-desktop": "Claude Desktop の現在のプロバイダーをプロジェクトとして保存し、後からワンクリックで切り替えられます。",
|
||||
"codex": "Codex の現在のプロバイダー、MCP、Skills、メモリファイルの設定をプロジェクトとして保存し、後からワンクリックで切り替えられます。"
|
||||
},
|
||||
"manage": "プロジェクトを管理…",
|
||||
|
||||
@@ -1840,7 +1840,8 @@
|
||||
},
|
||||
"profiles": {
|
||||
"switcherTooltip": {
|
||||
"claude": "專案:一鍵切換 Claude Code 的供應商 / MCP / Skills / 記憶檔案,及 Claude Desktop 的供應商",
|
||||
"claude": "專案:一鍵切換 Claude Code 的供應商 / MCP / Skills / 記憶檔案",
|
||||
"claude-desktop": "專案:一鍵切換 Claude Desktop 的供應商",
|
||||
"codex": "專案:一鍵切換 Codex 的供應商 / MCP / Skills / 記憶檔案"
|
||||
},
|
||||
"none": "不使用專案",
|
||||
@@ -1848,7 +1849,8 @@
|
||||
"empty": "尚無專案",
|
||||
"createFromCurrent": "新建專案",
|
||||
"createDescription": {
|
||||
"claude": "把 Claude Code 目前的供應商、MCP、Skills、記憶檔案(及 Claude Desktop 的供應商)儲存為一個專案,之後可一鍵切換。",
|
||||
"claude": "把 Claude Code 目前的供應商、MCP、Skills、記憶檔案儲存為一個專案,之後可一鍵切換。",
|
||||
"claude-desktop": "把 Claude Desktop 目前的供應商儲存為一個專案,之後可一鍵切換。",
|
||||
"codex": "把 Codex 目前的供應商、MCP、Skills 和記憶檔案設定儲存為一個專案,之後可一鍵切換。"
|
||||
},
|
||||
"manage": "管理專案…",
|
||||
|
||||
@@ -1868,7 +1868,8 @@
|
||||
},
|
||||
"profiles": {
|
||||
"switcherTooltip": {
|
||||
"claude": "项目:一键切换 Claude Code 的供应商 / MCP / Skills / 记忆文件,及 Claude Desktop 的供应商",
|
||||
"claude": "项目:一键切换 Claude Code 的供应商 / MCP / Skills / 记忆文件",
|
||||
"claude-desktop": "项目:一键切换 Claude Desktop 的供应商",
|
||||
"codex": "项目:一键切换 Codex 的供应商 / MCP / Skills / 记忆文件"
|
||||
},
|
||||
"none": "不使用项目",
|
||||
@@ -1876,7 +1877,8 @@
|
||||
"empty": "暂无项目",
|
||||
"createFromCurrent": "新建项目",
|
||||
"createDescription": {
|
||||
"claude": "把 Claude Code 当前的供应商、MCP、Skills、记忆文件(及 Claude Desktop 的供应商)保存为一个项目,之后可一键切换。",
|
||||
"claude": "把 Claude Code 当前的供应商、MCP、Skills、记忆文件保存为一个项目,之后可一键切换。",
|
||||
"claude-desktop": "把 Claude Desktop 当前的供应商保存为一个项目,之后可一键切换。",
|
||||
"codex": "把 Codex 当前的供应商、MCP、Skills 和记忆文件配置保存为一个项目,之后可一键切换。"
|
||||
},
|
||||
"manage": "管理项目…",
|
||||
|
||||
@@ -3,10 +3,10 @@ import { invoke } from "@tauri-apps/api/core";
|
||||
/**
|
||||
* Profile 操作的应用分组(与后端 services/profile.rs 的 ProfileScope 严格对应)
|
||||
*
|
||||
* 项目实体全应用共享,但快照/应用/当前指针按组进行;Claude Desktop 并入
|
||||
* claude 组(它只有聊天侧供应商一个受管维度,Code 标签页天然跟随 Claude Code)。
|
||||
* 项目实体全应用共享,但快照/应用/当前指针按组进行;Claude Code 与
|
||||
* Claude Desktop 的供应商独立切换,因此各自有独立分组。
|
||||
*/
|
||||
export type ProfileScope = "claude" | "codex";
|
||||
export type ProfileScope = "claude" | "claude-desktop" | "codex";
|
||||
|
||||
/**
|
||||
* 按 app 分槽的载荷容器(与后端 services/profile.rs 的 PerApp<T> 严格对应)
|
||||
|
||||
Reference in New Issue
Block a user