Skip to content

CLI-Manager V1.0.9

Choose a tag to compare

@github-actions github-actions released this 16 Jun 07:54

安装

平台 格式
Windows .msi 安装包
macOS (Apple Silicon) .dmg 磁盘映像
Linux .deb / .AppImage
  • Windows 首次安装可能触发 SmartScreen 提示,点击"仍要运行"继续
  • macOS 应用未经 Apple 签名/公证,首次打开可能提示"已损坏"或"无法验证开发者"

macOS 安装说明

如果已拖入"应用程序"目录,执行:

xattr -cr /Applications/CLI-Manager.app
open /Applications/CLI-Manager.app

也可以在 Finder 中右键应用图标,选择"打开",或在"系统设置 → 隐私与安全性"中点击"仍要打开"。

变更日志

设置 - 供应商页全面优化

核心体验改善(P0)

  • 空态引导卡片:数据库未连接时显示引导卡片,包含 cc-switch 作用说明、官网链接和三步使用指南(安装 → 配置 → 刷新),降低首次使用门槛。
  • 数据库路径卡片优化:顶部新增连接状态徽标(绿色"已连接" / 灰色"未连接"),路径展示使用独立代码块背景区分,按钮文案优化为"使用默认路径",布局更清晰。
  • 详情面板增强
    • 新增可复用 CopyButton 组件,BASE_URL 和所有环境变量行右侧添加一键复制按钮,点击复制成功后显示 toast 提示。
    • configParseError 供应商在详情面板顶部显示红色边框错误说明块,明确告知配置解析失败、env 数据可能不完整。
  • 错误提示优化:数据库读取失败时使用红色边框 + AlertTriangle 图标的醒目样式,替代原有纯文本提示。

交互与性能提升(P1)

  • 列表布局响应式:供应商列表宽度从固定 360px 改为响应式 min-w-[280px] max-w-[400px] w-[30%],宽屏下空间利用更合理;列表项 padding 和间距收紧(px-3 py-2.5px-2.5 py-2space-y-1.5space-y-1),一屏可显示更多供应商。
  • 搜索范围扩展:搜索从 4 个字段扩展到 6 个(名称、BASE_URL、分类、模型、官网、备注),用户可按官网 URL 或备注关键词搜索;无结果时提示已搜索的所有字段范围。
  • 性能优化预分组:新增 providersByType memo 按 app_type 预分组供应商,visibleProviders 从预分组结果筛选,避免每次切换类型或搜索时重复 filter 全量数据,提升大数据集下的响应速度。

锦上添花(P2)

  • 刷新成功反馈:点击"刷新"按钮成功后显示 toast 提示"已刷新,共 X 个供应商",页面初始加载不显示 toast,避免干扰;通过 showToast 可选参数区分手动刷新与自动加载。
  • 供应商数量提示:筛选器下方显示"共 X 个供应商",用户清楚当前筛选结果数量。
  • 环境变量折叠显示:环境变量 >5 个时默认只显示前 5 个 + "展开全部(还有 N 个)"按钮,展开后显示全部并提供"收起"按钮;切换供应商时折叠状态自动重置,保持界面简洁。

代码质量

  • 新增可复用组件:CopyButton(统一复制交互)、EmptyStateGuideCard(首次使用引导)
  • TypeScript 类型检查通过,所有 hooks 依赖数组正确,边界情况处理完善
  • 代码规范审查通过,无未使用导入、无 console.log 残留

设置 - 供应商配置展示增强

多 app_type 配置解析

  • Codex / 多供应商类型解析支持:供应商配置解析从硬编码 ANTHROPIC_* 改用通配符匹配(*_BASE_URL / *_API_BASE / *_ENDPOINT 识别 BASE_URL,*_MODEL 识别模型),自动支持 OPENAI_*(Codex)、GOOGLE_*(Gemini)、DEEPSEEK_* 等任意前缀,解决 Codex 等非 Claude 供应商 BASE_URL 与模型显示空白的问题。

通用配置读取与合并

  • 读取 cc-switch 通用配置:新增 ccswitch_list_common_configs 命令,从 cc-switch settings 表读取 common_config_{app_type}(如 common_config_claude / common_config_codex / common_config_gemini 等)通用配置;表不存在时优雅降级返回空列表。
  • 供应商详情完整配置展示:详情面板新增配置 Tabs,按"完整配置 → 供应商配置 → 通用配置"顺序展示,默认显示完整配置:
    • 完整配置:通用配置打底 + 供应商配置深度合并(供应商优先覆盖),即该供应商实际生效的完整配置。
    • 供应商配置:供应商自身的原始 settings_config
    • 通用配置:当前 app_type 对应的 common_config_{app_type},仅当匹配到时显示该 Tab。

JSON 代码块美化

  • 语法高亮代码块:新增 JsonCodeBlock 组件,配置 JSON 以深色背景(#1e1e1e,类 VSCode Dark)+ 语法高亮(键名蓝 / 字符串橙 / 数字绿 / 布尔与 null 浅蓝)+ 圆角边框展示;纯 CSS 实现无第三方依赖,渲染前对 HTML 转义防注入。
  • 每个 Tab 提供独立复制按钮,可一键复制对应配置 JSON。

代码质量

  • 后端 parse_settings_config 改用后缀通配,保留 Claude 供应商兼容;新增 deepMerge 前端深度合并工具。
  • Rust cargo check 与全部测试通过,TypeScript 类型检查通过。

终端 - 跨平台默认 Shell 识别

核心改进

  • 按操作系统区分 Shell 选项:新建/编辑终端及设置中心的"默认 Shell"现根据运行平台动态展示可选项——Windows(PowerShell / CMD / PowerShell Core / WSL / Git Bash / Bash)、macOS(Zsh / Bash / Fish / Sh)、Linux(Bash / Zsh / Fish / Sh),不再硬编码 Windows 专属终端。
  • 平台默认值:新建终端时按系统自动选择默认 Shell(macOS → zsh,Linux → bash,Windows → powershell);用户从未设置过"默认 Shell"时,设置项也按平台初始化,避免在 mac/linux 上残留 powershell.exe
  • 跨平台配置兼容:编辑在其它系统创建的终端时,若其 Shell 在当前平台不可用,下拉框保留为"(当前自定义)"选项,不丢失原配置。

详细实现

  • 后端(Rust):
    • 新增 get_os_platform 命令返回当前平台(windows / macos / linux / unknown)。
    • PtyManager::resolve_shell 与外部终端 shell_exe 增加 zsh / fish / sh 支持;bash 与默认分支用 cfg!(target_os) 区分平台(Windows 用 bash.exe / powershell.exe,Unix 回退用户登录 Shell $SHELL,再回退 macOS=zsh / 其它=bash)。
  • 前端(TS/React):
    • ShellKey 扩展 Unix Shell;normalizeShellKey 支持识别 zsh / fish / sh 及其路径与 .exe 变体。
    • 新增 getOsPlatformgetDefaultShellForPlatformdefaultShellForOs 辅助与 getShellOptions(os) 平台选项映射。
    • ConfigModalThemeSettingsPagesettingsStore 接入平台检测。

代码质量

  • 后端跨平台分支统一改用 cfg!() 宏,使 macOS/Linux 代码路径也在 Windows 上参与类型检查(无 mac/linux 环境亦可验证)。
  • TypeScript 类型检查与 cargo check 均通过。

版本发布

  • 应用版本同步升级到 1.0.9(npm、Cargo、Tauri 配置)。