Skip to content

Release v0.5.0

新功能

Provider 故障转移支持

gcop-rs 现在支持 LLM provider 之间的自动故障转移。当主 provider 失败(网络错误、速率限制等)时,会自动尝试备用列表中的下一个 provider。

配置示例:

toml
[llm]
default_provider = "claude"
fallback_providers = ["openai", "ollama"]

行为:

  • 首先尝试主 provider
  • 失败时显示警告并切换到下一个 provider
  • 适用于 commit 消息生成和代码审查
  • 支持流式模式(如果所有流式 provider 都失败则回退到非流式)

Claude 流式输出支持

Claude provider 现在支持流式响应,具有实时打字效果,就像 ChatGPT 一样。

  • 使用 SSE(Server-Sent Events)实现高效流式传输
  • 字符生成时即时显示
  • 流式失败时优雅回退到 spinner 模式

增强的重试机制

API 重试系统现在支持:

  • Retry-After 头:遵守 API 返回的速率限制提示(HTTP 429 响应)
  • 可配置最大延迟:新增 max_retry_delay_ms 选项限制等待时间
toml
[network]
max_retries = 3
retry_delay_ms = 1000
max_retry_delay_ms = 60000  # 最长等待 60 秒

彩色 Provider 输出

LLM provider 现在在以下情况显示彩色警告和信息:

  • 切换到备用 provider
  • 速率限制后重试
  • 遇到可恢复的错误

改进

更好的用户体验

  • 改进 commit 命令的交互流程
  • 改进 review 命令的输出格式
  • 更清晰的进度指示器

错误处理

  • 重构错误类型以提高清晰度
  • 更友好的错误消息
  • 为常见问题提供更好的建议

代码质量

  • 提取了通用的 prompt 构建逻辑
  • 统一了各 provider 的响应处理
  • 减少了 LLM 模块中的代码重复

Bug 修复

  • 流式错误处理:修复了流式响应的错误处理和日志级别

文档

  • 更新了流式输出文档
  • 添加了 Claude 配置示例
  • 为 Homebrew、pipx、cargo-binstall 和 cargo 添加了安装更新/卸载说明

升级说明

从 v0.4.x 升级无需任何操作,完全向后兼容。

可选的新配置项:

toml
[llm]
fallback_providers = ["openai", "ollama"]  # 可选的故障转移列表

[network]
max_retry_delay_ms = 60000  # 可选的最大等待时间

安装

bash
# Homebrew (macOS/Linux)
brew tap AptS-1547/gcop-rs
brew install gcop-rs

# pipx (Python 用户,推荐)
pipx install gcop-rs

# cargo-binstall (无需编译)
cargo binstall gcop-rs

# cargo install (从源码编译)
cargo install gcop-rs

或从 Releases 下载预编译二进制。

反馈

如有问题或建议,欢迎提交 Issue