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。