- 修改 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()强制抢夺焦点,在模态框关闭时打断正常焦点流转
- 修复当编辑当前激活供应商时,Claude Code配置文件未同步更新的问题 - 在updateProvider中增加逻辑检测是否为当前激活供应商 - 如果是当前激活供应商,同时调用switchProvider更新~/.claude/settings.json - 确保编辑后的配置能立即生效,无需重新切换供应商
- 修复inferWebsiteUrl函数,支持无协议URL的推测 - 在API地址失焦时自动补全https://协议 - 同时更新API地址和网站地址字段 - 保持URL输入验证,确保API地址有效性 - 提升用户体验:用户可输入api.example.com等简化格式
- 添加websiteUrl可选字段到Provider类型 - 实现API地址到网站地址的自动推测逻辑(去除api.前缀) - 在添加/编辑供应商表单中增加网站地址字段 - 供应商列表智能显示:有网址显示可点击链接,无网址显示API地址 - 提升用户体验:避免点击API端点地址导致的错误页面
- 替换fetch中的timeout选项为AbortController + setTimeout实现 - 修复TypeScript编译错误:timeout不存在于RequestInit类型中 - 添加proper超时清理逻辑避免内存泄漏 - 更新CLAUDE.md文档:统一使用pnpm命令,补充IPC接口说明
- 删除 ConfirmModal 和 MessageModal 组件 - 恢复原生 alert() 和 confirm() 弹窗 - 移除不必要的加载状态指示器 - 移除切换供应商的确认对话框 - 简化代码,提升响应速度和用户体验
- 更新 Electron 从 28.0.0 到 32.2.5 - 提升安全性和性能 - 获得最新功能和bug修复
- 在切换供应商时显示加载状态 - 禁用操作按钮防止重复提交 - 提供视觉反馈改善用户体验
- 切换供应商前显示确认对话框 - 防止误操作导致的意外切换 - 提升用户操作安全性
- 使用时间戳+随机字符串组合生成唯一ID - 避免快速连击导致的ID冲突问题 - 提升数据一致性和稳定性
- 创建 ConfirmModal 和 MessageModal 组件 - 更新 App.tsx 使用新的 Modal 组件 - 改进表单验证错误显示 - 提升用户体验和界面一致性
- 定义 ClaudeCodeConfig 接口替代 any 类型 - 提升类型安全性和代码可维护性 - 明确配置文件结构
- 清理 EditProviderModal.tsx 中的调试日志 - 保留必要的错误日志输出 - 提升代码整洁度
- 添加 checkStatus IPC handler 到主进程 - 实现基础的 API 连通性检查 - 修复 preload API 与主进程不匹配的问题
- 删除 checkProviderStatus 函数和相关 IPC 处理 - 移除 App.tsx 中所有状态检测相关的状态和函数 - 简化 ProviderList.tsx,去除状态显示和检查按钮 - 清理 types.ts 中的 ProviderStatus 类型定义 - 界面更简洁,专注于供应商切换这一核心功能
- 临时禁用"检查状态"按钮(功能开发中) - 移除"启用"按钮对在线状态的依赖 - 修复因状态检查未完成导致所有供应商无法启用的问题
- 在主进程添加文件选择对话框,支持选择 settings.json 配置文件 - 更新类型定义和预加载脚本,添加 selectConfigFile API - 在界面底部配置路径区域添加"浏览"按钮 - 优化样式布局,使配置路径和浏览按钮水平排列 - 修复 React 导入警告,移除未使用的 React 导入
## 主要变更 - 移除所有Claude命令调用和进程管理逻辑 - 简化检测函数,暂时返回"功能开发中"状态 - 添加单独检查状态按钮和相关UI交互 - 保留完整的供应商管理功能(添加、编辑、删除、切换) ## 技术优化 - 删除复杂的超时机制、进程监听、错误处理 - 移除axios依赖和HTTP请求相关代码 - 清理竞态条件和队列管理逻辑 - 保持清晰的UI状态管理 ## UI改进 - 添加橙色主题的单独检查按钮 - 增强检查状态的视觉反馈(🔄 进度指示器) - 保留所有状态显示逻辑等待功能重新实现
- 新增 Anthropic 官方状态检查,优先检查服务可用性 - 改进错误处理和状态码判断逻辑 - 增加超时时间到20秒,提高连接稳定性 - 优化错误信息显示,区分认证错误和服务不可用 - 使用最新的 claude-sonnet-4 模型进行测试
- 删除定时检查逻辑,避免不必要的 token 消耗 - 按钮文本从"刷新状态"改为"检查状态" - 现在只能手动触发状态检查
- 为供应商列表添加启用和编辑按钮 - 创建EditProviderModal组件支持编辑供应商信息 - 实现updateProvider API接口 - 为API Key输入框添加密码显示/隐藏功能,使用SVG图标 - 更新预设供应商配置为YesCode和PackyCode - 移除model字段,简化供应商配置
- 修正 Electron 依赖版本为 28.0.0(解决安装问题) - 更新 package.json 中的启动脚本,改进并发命令执行 - 修正主进程入口文件路径配置 - 调整 TypeScript 编译配置的根目录设置 - 添加 Windows 开发环境启动脚本 start-dev.bat - 更新 .gitignore 排除编译产物和锁文件 问题原因:pnpm 默认阻止了 Electron 安装脚本执行,导致应用无法正常启动