# 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` |

### 配置优先级

所有参数都支持配置文件覆盖，保持向后兼容：

1. 配置文件值（如果设置）
2. 默认值（如果未设置）

## 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` = 120
- `network.connect_timeout` = 10
- `network.max_retries` = 3
- `network.retry_delay_ms` = 1000
- `file.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
```

## 📚 文档

- [配置指南](../configuration.md)
- [中文配置指南](../zh/configuration.md)
- [Full Changelog](../../CHANGELOG.md)

## 反馈与贡献

如有问题或建议，欢迎提交 [Issue](https://github.com/AptS-1547/gcop-rs/issues)。
