Release v0.2.0
⚙️ 配置驱动架构重构
这个版本将之前硬编码的常量全部迁移到配置系统,让用户可以根据自己的需求自定义各种参数。
新增配置项
1. 网络配置 [network]
控制 HTTP 请求行为:
toml
[network]
request_timeout = 120 # HTTP 请求超时(秒)
connect_timeout = 10 # HTTP 连接超时(秒)
max_retries = 3 # API 请求失败时的最大重试次数
retry_delay_ms = 1000 # 初始重试延迟(毫秒,指数退避)2. 文件配置 [file]
控制文件大小限制:
toml
[file]
max_size = 10485760 # 最大文件大小(字节,默认 10MB)3. LLM 参数配置
每个 provider 现在可以显式配置 max_tokens 和 temperature:
toml
[llm.providers.claude]
api_key = "sk-ant-..."
model = "claude-sonnet-4-5-20250929"
max_tokens = 2000 # 最大响应 token 数
temperature = 0.3 # 生成温度4. Commit 重试次数
toml
[commit]
max_retries = 10 # 用户手动重试的最大次数架构改进
删除 constants.rs
不再使用集中式常量文件,每个模块自己管理自己的默认值:
| 原常量 | 新位置 |
|---|---|
DEFAULT_MAX_TOKENS | src/llm/provider/base.rs |
DEFAULT_TEMPERATURE | src/llm/provider/base.rs |
ERROR_PREVIEW_LENGTH | src/llm/provider/base.rs |
MAX_FEEDBACK_LENGTH | src/ui/prompt.rs |
| Prompt 模板 | src/llm/prompt.rs |
配置优先级
所有参数都支持配置文件覆盖,保持向后兼容:
- 配置文件值(如果设置)
- 默认值(如果未设置)
Breaking Changes
⚠️ API 变更(仅影响库用户):
rust
// 之前
let repo = GitRepository::open()?;
// 现在
let repo = GitRepository::open(None)?; // 使用默认配置
let repo = GitRepository::open(Some(&config.file))?; // 使用自定义配置升级说明
从 v0.1.6 升级无需任何配置更改。
所有新配置项都有默认值,与之前的硬编码值相同:
network.request_timeout= 120network.connect_timeout= 10network.max_retries= 3network.retry_delay_ms= 1000file.max_size= 10485760 (10MB)commit.max_retries= 10
如果需要自定义,在 ~/.config/gcop/config.toml 中添加对应配置即可。
配置示例
完整配置示例:
toml
[llm]
default_provider = "claude"
[llm.providers.claude]
api_key = "sk-ant-..."
model = "claude-sonnet-4-5-20250929"
max_tokens = 4000 # 增加响应长度
temperature = 0.5 # 稍微增加创意度
[commit]
max_retries = 5 # 减少重试次数
[network]
request_timeout = 60 # 缩短超时
max_retries = 5 # 增加自动重试次数
[file]
max_size = 5242880 # 限制为 5MB📦 安装
bash
cargo install gcop-rs或从源码构建:
bash
git clone https://github.com/AptS-1547/gcop-rs.git
cd gcop-rs
cargo build --release📚 文档
反馈与贡献
如有问题或建议,欢迎提交 Issue。