Release v0.9.1
代码质量 - ProgressReporter 解耦 + ApiStyle 类型安全 + 配置验证增强
本次发布专注于架构解耦、类型安全和配置验证的内部质量提升,无用户可见的功能变更。
新增
ProgressReporter Trait
- 新增
ProgressReportertrait,解耦 LLM 层与 UI 层 - LLM Provider 不再直接依赖
ui::Spinner - 便于测试和未来扩展(日志、事件总线等替代实现)
ApiStyle 枚举
- 新增类型安全的
ApiStyle枚举(Claude、OpenAI、Ollama),替代字符串 - 编译时穷尽匹配,确保所有 API 风格都有处理分支
- 内置
default_model()方法,统一默认模型映射 - 实现
FromStr和 serde trait,配置文件完全兼容
配置引用验证
- 启动时验证
default_provider在[llm.providers]中存在 - 启动时验证
fallback_providers中的每个 provider 在[llm.providers]中存在 - 配置错误提前报错,避免运行时崩溃
Markdown 机器可读格式
- 新增
OutputFormat::is_machine_readable()方法,统一 JSON 和 Markdown 行为 - Markdown 输出现在跳过 spinner 和步骤提示(与 JSON 一致)
- 新增
effective_colored()方法,机器可读格式自动禁用颜色
变更
错误处理职责下沉
review和stats命令内部处理 JSON 错误输出main.rs不再需要知道每个命令的输出类型- 提取
handle_command_error()辅助函数,消除重复错误显示逻辑
CI 模式使用 ApiStyle 枚举
- CI provider 类型验证改用
ApiStyle::from_str() - 默认模型选择改用
ApiStyle::default_model() - 消除
unreachable!()分支
配置示例简化
- 示例配置文件从 144 行缩减到 39 行
- 移除冗长注释和高级配置选项
- 添加文档链接引导查看完整配置
LLM Provider 接口更新
generate_commit_message()和review_code()参数从Option<&Spinner>改为Option<&dyn ProgressReporter>- 所有内置 Provider(Claude、OpenAI、Ollama、Fallback)已适配
升级
bash
# Homebrew
brew upgrade gcop-rs
# Cargo
cargo install gcop-rs
# pip
pip install --upgrade gcop-rs