- 选择预设模板后自动显示 API Key 输入框 - 输入 API Key 后自动更新 JSON 配置 - 简化用户配置流程,无需手动编辑 JSON - 优化交互体验,API Key 输入框位于供应商名称下方
- 为模板选择按钮添加选中后保持深色的视觉反馈 - 选中状态与hover状态共享相同的样式 - 用户可以清楚地看到当前选中的模板
- 添加 macOS 自行编译说明 - 新增界面预览截图展示 - 优化安装说明结构
- 修复 store 初始化的异步问题:构造函数中的异步方法现在正确等待 - 修复配置切换时删除原文件的严重 bug:使用 copyFile 替代 rename 避免文件丢失 - 简化代码实现,移除过度设计的部分
✅ 配置 Intel-only 构建 (package.json) ✅ 更新 GitHub Actions 发布流程 ✅ 完善 README 安装说明 核心策略: - 只发布 Intel x64 版本,通过 Rosetta 2 支持 M 系列芯片 - 使用 ad-hoc 签名,避免 ARM64 签名复杂性 - 提供详细的 macOS 安全警告处理指南 - 强调兼容性和稳定性优于原生性能
- 为正在使用中的供应商禁用编辑按钮,避免编辑活跃配置 - 添加edit-btn的disabled样式,保持界面一致性 - 防止用户编辑正在使用的settings.json导致配置冲突
- 添加支持的供应商示例(智谱 GLM、Qwen coder 等) - 强调本地存储无隐私风险 - 完善使用说明,提醒重启 Claude Code 生效
- 移除所有 any 类型声明,提升类型安全性 - 简化 ClaudeCodeSettings 接口为通用的 Record<string, any>,支持任意供应商配置 - 创建 ProviderForm 共享组件,减少重复代码约 300 行 - 优化 Store 类型定义,使用泛型约束确保类型安全 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- 设置窗口最小尺寸为600x400,防止界面缩放问题 - 将预设供应商配置提取到独立文件providerPresets.ts - 便于管理和维护预设供应商列表 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
- 使用 crypto.randomUUID() 替换已废弃的 substr() 方法 - 将默认供应商名称从"默认"改为"default",提高国际化兼容性 - 优化 ID 生成算法,提供更可靠的唯一性保证
新增功能: - 在添加供应商和编辑供应商窗口都增加"禁止 Claude Code 签名"选择框 - 自动同步 JSON 配置中的 includeCoAuthoredBy 字段 - 支持双向同步:手动编辑 JSON 时选择框状态自动更新 代码优化: - 提取通用函数到 providerConfigUtils.ts 工具文件 - 重构代码避免重复,提高可维护性 - 保持原有自动提取官网地址功能 UI改进: - 优化选择框与标签的对齐样式 - 统一两个窗口的交互体验
- 新增 extractWebsiteUrl 函数,从 JSON 配置中自动解析 ANTHROPIC_BASE_URL - 智能处理 URL 前缀,自动去掉 "api." 前缀生成官网地址 - 优化用户体验:仅在官网地址为空时自动填入,不覆盖用户手动输入 - 支持实时解析,用户输入 JSON 配置时立即更新官网地址字段
- 移除 Provider 中无用的 createdAt 和 updatedAt 字段 - 简化数据结构,去除冗余的时间戳设置代码 - 将底部"浏览"按钮改为"打开",直接打开配置文件夹 - 新增 openConfigFolder API,使用 shell.openPath 打开文件夹 - 优化用户体验,方便用户查看和管理所有配置文件
- 移除默认供应商在切换时的特殊逻辑 - 默认供应商现在也创建独立配置文件 settings-默认.json - 移除删除时对默认供应商的特殊保护 - 所有供应商现在都遵循相同的文件管理规则
- 移除 ImportConfigModal 组件及相关文件 - 删除头部的导入当前配置按钮 - 移除 importCurrentConfig 相关的 API 和 IPC 处理器 - 保留 importCurrentConfigAsDefault 功能用于首次启动 - 界面更简洁,专注核心功能:添加、编辑、切换、删除供应商 - 减少用户困惑,因为自动创建的默认供应商已经满足大部分需求
用户要删除就说明不需要了,没必要特别保护。 默认供应商现在可以正常删除,只是因为没有独立配置文件所以跳过文件删除操作。
- 新增 importCurrentConfigAsDefault 函数,创建 ID 为 'default' 的特殊供应商 - 默认供应商不生成独立配置文件,直接使用现有 settings.json - 首次启动时自动导入现有配置为默认供应商,并设为选中状态 - 切换到默认供应商时无需文件操作,直接使用原配置 - 删除默认供应商时保护原配置文件不被误删 - 简化 ImportConfigModal 组件,移除 isEmpty 相关逻辑 - 提升用户体验:无需手动操作,开箱即用
- 修改 getProviderConfigPath 函数,支持基于供应商名称生成配置文件名 - 在 updateProvider 中添加文件重命名逻辑,当供应商名称改变时自动重命名配置文件 - 更新所有相关函数调用,传递供应商名称参数确保文件命名一致 - 完善 switchProvider 备份逻辑,使用正确的供应商名称生成备份文件名 - 添加必要的导入声明修复编译错误 现在编辑供应商名称后,对应的配置文件名会自动更新反映新名称
- 当供应商列表为空时,自动显示导入配置对话框,引导用户导入当前配置 - 为导入配置对话框添加isEmpty属性,针对空列表场景优化界面文案 - 空列表场景下显示更友好的标题和说明文本 - 优化按钮文本:空列表时取消按钮显示为"稍后设置"
- 实现基于文件重命名的供应商切换机制,支持完整settings.json配置切换 - 移除所有向后兼容代码,简化为纯JSON配置模式 - 添加导入当前配置功能,解决首次使用时配置丢失问题 - 移除描述字段,简化用户界面 - 完整的错误处理和回滚机制确保配置安全 - 清理所有调试代码,优化代码质量
- 实现 SimpleStore 类,使用原生 fs 操作 JSON 文件 - 解决 "Cannot find module 'conf'" 的依赖问题 - 移除 electron-store 依赖,减少包体积 - 配置文件存储在 ~/.cc-switch/config.json - 数据格式透明,便于备份和调试 - 修复 TypeScript 类型问题 - 测试通过:构建、打包、运行正常
- 将 macOS 目标从 DMG 改为 ZIP 避免 hdiutil 问题 - 更新版本号到 1.0.5 避免标签冲突 - 添加 ARM64 和 x64 双架构支持 - 禁用自动发布避免版本冲突
- 添加 contents: write 权限解决 403 错误 - 使用 release/* 匹配所有构建文件 - 添加调试步骤显示构建产物 - 优化 matrix 配置增加平台标识
- 更新 GitHub Actions 使用 pnpm 10.12.3(与本地一致) - 重新生成 pnpm-lock.yaml 确保版本兼容 - 恢复使用 --frozen-lockfile 确保依赖一致性
- 支持跨平台自动构建(Windows、macOS、Linux) - 在创建 tag 时自动触发构建和发布 - 自动上传构建产物到 GitHub Releases - 添加跨平台构建脚本命令
- 添加跨平台图标配置(Windows .ico、macOS .icns、Linux .png) - 配置 Windows 双重构建目标:NSIS 安装程序 + Portable 版本 - 解决 Windows 下 exe 文件显示默认图标的问题 - NSIS 安装程序版本可正确显示自定义图标
- 添加应用图标文件 (icon.ico, icon.icns, icon.png) - 配置最大压缩以减小文件体积 - 修改Windows目标为portable版本,生成单文件exe - 排除不必要的node_modules文件 - 完善作者信息
- 移除 AddProviderModal 的点击遮罩层关闭功能 - 移除 EditProviderModal 的点击遮罩层关闭功能 - 用户现在只能通过按钮主动关闭模态框,提升用户体验
- 删除未使用的 axios 依赖 - 移除 Provider 接口中未使用的 model 字段 - 删除未使用的供应商连通性检查功能 - 修复 preload.ts 中缺失的 IPC 方法暴露 - 简化 UI:移除重复的单选按钮,仅保留启用按钮 - 修复 TypeScript 接口定义不完整的问题
- 创建自定义ConfirmDialog组件替代系统confirm - 删除功能使用自定义确认对话框,避免界面阻塞 - 添加/编辑模态框使用内联错误提示替代alert - 优化用户体验:更详细的确认信息和统一的视觉风格
- 添加自定义通知组件替代阻塞式alert - 浮动定位不影响页面布局,宽度自适应内容 - 支持成功/错误两种样式,渐变背景+阴影效果 - 实现完整的淡入淡出动画,原地显示隐藏 - 重启提示显示4秒,普通操作反馈2-3秒 - 智能定时器管理,支持动画完成后清理 用户体验:切换供应商后优雅提示"请重启Claude Code终端以生效"
- 移除阻塞式alert调用,避免焦点管理冲突 - 清理不必要的CSS z-index层级设置 - 优化EditProviderModal的useEffect依赖管理 - 改用console日志记录操作结果 问题原因:alert()强制抢夺焦点,在模态框关闭时打断正常焦点流转