# 全链路验证清单

## CLI 验证（`cargo run -- cli`）

### 1. 简单对话（无工具调用）
```
你好
```
- [ ] 流式输出（逐字显示）
- [ ] thinking 摘要显示
- [ ] Done 后回到 prompt

### 2. 多轮连续对话
```
你好
```
等回复完成后：
```
1+1等于多少？
```
- [ ] 第二轮正常回复
- [ ] 不包含第一轮内容

### 3. 工具调用（单轮）
```
当前目录有哪些文件？
```
- [ ] 工具调用显示（⚙ 执行 list_dir...）
- [ ] 工具结果显示（✓/✗）
- [ ] 最终 assistant 回复

### 4. 多轮工具调用
```
读取 Cargo.toml 的内容
```
等完成后：
```
分析一下这个项目的依赖
```
- [ ] 两轮工具调用各自独立
- [ ] 消息不混合

### 5. 复杂工具调用链
```
分析一下项目的代码结构，列出各 crate 的代码行数
```
- [ ] 多轮工具调用（tree_dir + read_file 等）
- [ ] 中间过程和最终回复正确分离

---

## GUI 验证（`cargo tauri dev`）

### 6. 简单对话
```
你好
```
- [ ] 流式输出
- [ ] 深度思考折叠块展示
- [ ] 完成后 spinner 消失
- [ ] 底部状态栏显示"就绪"

### 7. 工具调用
```
当前目录有哪些文件？
```
- [ ] 工具调用折叠组显示（在回复上方）
- [ ] 最终回复在工具调用下方
- [ ] 不出现重复内容

### 8. 多轮对话
```
你好
```
然后：
```
帮我看看 README.md 的内容
```
- [ ] 两轮消息独立
- [ ] 历史消息正确显示

### 9. 状态指示
- [ ] 执行中：底部显示"正在处理"/"正在执行"
- [ ] 完成后：底部显示"就绪"或"执行完成"
- [ ] token 计数始终显示且实时更新
- [ ] spinner 在执行中转动，完成后消失

### 10. 持久化
- [ ] 对话完成后刷新页面，历史消息仍在
- [ ] 切换会话后切回，消息不丢失
