全部版本

Matcha CLI · 0.03

Matcha CLI 0.03

发布于

Google AI Studio 的 Gemini 工具调用续轮更稳定。受管理的 macOS Apple Silicon 安装现在也能在 Matcha 内完成签名验证、自动回滚的更新。

matcha update --check 仍然只检查。只有你明确运行 matcha update 或在 TUI 中确认后,Matcha 才会下载并安装新版本。

Google AI Studio Gemini 兼容性

  • 修复 Gemini 3 工具调用后的续轮。Matcha 会把响应中的思考签名作为不透明的服务商状态保留,并在工具返回结果后,按原始响应的 part 顺序回放。签名不会出现在正常界面、日志、诊断、快照或错误文本中;不含签名的旧模型和响应仍按原有方式处理。
  • Gemini 推理配置现在按模型系列生成:Gemini 3 使用 thinkingLevel;Gemini 2.5 Flash 系列继续使用 thinkingBudget;Gemini 2.5 Pro 在模型不支持关闭思考时省略 thinking 配置,交由 Google AI Studio 使用有效的默认值。
  • 遇到未知或新出现的 Gemini 模型 ID 时,Matcha 不会猜测其推理能力,也不会发送可能不兼容的 thinking 配置,而是使用 Google AI Studio 的模型默认值。
  • 这些改动只影响 Google AI Studio 的 Gemini generateContent 路径。现有 endpoint、x-goog-api-key 认证与服务商 header 隔离保持不变,其他服务商不受影响。

自更新体验

  • 新增完整的“检查 → 确认 → 下载 → 验证 → 原子激活 → 重启”流程。确认后即可安装并切换到新版本,无需再次运行安装命令。
  • matcha update --check 只检查并报告可用版本,不会下载或安装任何内容。
  • matcha update 会在交互式终端中显示目标版本并请求确认;自动化场景需要显式传入 --yes。
  • TUI 的 /update 可以检查更新,并在二次确认后安装刚刚检查到的同一通道、同一版本,避免确认期间更新目标发生变化。
  • 安装完成后,Matcha 会自动重启。只有新进程通过健康检查,更新才会提交;如果新版本无法正常启动,Matcha 会恢复旧版本。
  • 启动时仍不会自动下载,也不会默认自动安装。只有用户明确触发并确认后,更新才会开始。

下载与真实性验证

  • 更新请求只会访问 Endpoint Catalog 允许的 Matcha self_update_content HTTPS 分发地址。未配置时保持 fail-closed:不发起 DNS 请求,也不会回退到任何 xAI 或 Grok 更新服务。
  • Matcha 使用 Ed25519 签名清单验证发布来源,并分别校验下载归档与解包后 matcha 二进制的 SHA-256。
  • 在 macOS Apple Silicon 上,还会检查 Apple 代码签名、指定的 Team ID,以及候选二进制报告的 Matcha 产品版本。
  • 下载过程限制重定向次数、响应体大小和总耗时,并在写入前检查可用磁盘空间。
  • 更新 HTTP 客户端沿用 Matcha 配置的额外 CA 信任,支持受控的企业网络环境。
  • 自安装首期只支持受管理的 macOS Apple Silicon 安装布局。不符合条件时会给出明确诊断,不会尝试覆盖未知路径。

原子激活与自动回滚

  • 新版本会先下载到暂存目录,完成全部验证后才进入激活阶段。
  • Matcha 通过新的版本目录和原子替换符号链接切换版本,避免让用户运行到只写入一部分的二进制。
  • 更新日志会记录准备、激活、健康确认和提交状态,让中断后的恢复过程可以判断并安全重试。
  • 如果重启超时、新进程启动失败、健康确认失败或监控异常,watchdog 会恢复指向旧版本的符号链接。
  • 交互式更新会在运行时连接建立后确认健康;非交互式 --yes 更新使用隐藏的非 TUI 健康探针,覆盖正常启动、配置解析和运行时初始化。
  • 健康令牌只对当前这一次更新有效。过期或残留的环境变量不会误提交后续更新;screen 模式重启时也会清理相关环境变量。

从旧版本升级

旧版 Matcha 不包含新的更新器,因此无法自行获得自更新能力。你需要最后一次运行官方安装命令;安装 0.03 或后续兼容版本后,未来更新即可在 Matcha 内完成。