# Release v0.1.3

## 🛡️ 带验证的配置编辑

`gcop config edit` 现在会在保存后验证配置，类似于 `visudo` 的工作方式。如果配置有语法错误，你会看到一个菜单：

```
✗ 配置验证失败: TOML 解析错误在第 3 行...

? 你想怎么做？
> ✎ 重新编辑配置文件
  ↩ 恢复之前的配置
  ⚠ 忽略错误并保留当前配置（危险）
```

这可以防止意外破坏配置而无法使用。

## 🔧 配置恢复

之前，如果配置文件损坏，你甚至无法运行 `gcop config edit` 来修复。现在 `config`、`init` 和 `alias` 命令在配置损坏时会使用默认设置，所以你总是可以恢复：

```bash
# 即使配置损坏，这现在也能工作：
gcop config edit
```

## 🏗️ 代码质量改进

### Provider 重构

将通用 HTTP 请求逻辑提取到共享的 `send_llm_request()` 函数中：

```rust
// 之前: 每个 provider 有约 30 行重复的 HTTP 代码
// 之后: 单个函数处理所有 provider
pub async fn send_llm_request<Req, Resp>(...) -> Result<Resp>
```

这减少了约 50 行重复代码，并使添加新 provider 更容易。

### 更好的错误处理

OpenAI provider 现在在 API 响应为空时返回明确的错误：

```rust
// 之前: 静默返回空字符串
.unwrap_or_default()

// 之后: 清晰的错误信息
.ok_or_else(|| GcopError::Llm("OpenAI 响应不包含任何选项".to_string()))
```

## 📦 安装

```bash
cargo install gcop-rs
```

或从源码构建：

```bash
git clone https://github.com/AptS-1547/gcop-rs.git
cd gcop-rs
cargo build --release
```

## 📚 文档

- [README](https://github.com/AptS-1547/gcop-rs#readme)
- [中文文档](https://github.com/AptS-1547/gcop-rs/blob/master/README_ZH.md)
- [完整更新日志](https://github.com/AptS-1547/gcop-rs/blob/master/CHANGELOG.md)
