feat: 优化流式输出,添加按行延迟和配置化
Some checks failed
Release / build (push) Failing after 22s

- 使用 ProcessDirect 替代 ChatStream,支持工具调用结果显示
- 新增 project.config.yml 统一配置(Logo、用户前缀、流式延迟、Markdown等)
- Markdown 渲染支持自动终端宽度换行
- 按行输出文本,每行延迟可配置
- 简化状态栏,只显示耗时(图标颜色 #f0c75e,文字颜色 #2b2e32)
- spinner 动画右移两个字符
- 用户输入前缀可配置化
This commit is contained in:
2026-04-15 06:13:52 +08:00
parent 432a8db938
commit bdad44de7d
7 changed files with 260 additions and 123 deletions

View File

@@ -57,20 +57,48 @@
### v0.1.0 已完成功能
1. **流式输出**
- 实时打印 token
- Spinner 显示"思考中..."
- 第一个 token 到达时停止 spinner
1. **流式输出(新流程)**
- 等待 AI 返回完整响应
- Markdown 转译
- 模拟流式输出(从配置读取速度)
- 效果更好,无残留问题
2. **Markdown 渲染**
- 使用 glamour 库渲染 Markdown
- 支持多种主题dark, light, dracula, tokyo-night 等)
- 通过 GLAMOUR_STYLE 环境变量配置主题
- 通过 project.config.yml 配置主题
3. **重绘逻辑**
- 响应完成后尝试重绘
- 使用 termenv 库清除屏幕
- ⚠️ 存在轻微残留 bug可接受
3. **项目配置**
- 通过 project.config.yml 统一管理配置项
- 支持流式速度、渲染主题、Logo 等配置
---
## 项目配置
### project.config.yml
配置文件位于项目根目录:
```yaml
# hxclaw 项目配置文件
# 模拟流式输出配置
streaming:
simulated_speed_ms: 30 # 模拟流式输出速度(毫秒/字符)
# Markdown 渲染配置
markdown:
glamour_style: dark # 渲染主题dark, light, dracula, tokyo-night 等
# UI 配置
ui:
logo: "🦐"
```
配置加载优先级:
1. 环境变量 `HXCLAW_CONFIG` 指定路径
2. 项目根目录 `project.config.yml`
---
@@ -82,12 +110,14 @@
- `charm.land/lipgloss/v2` - 终端样式
- `charm.land/x/term` - 终端控制
- `github.com/muesli/termenv` - 终端环境工具
- `gopkg.in/yaml.v3` - 配置文件解析
### 配置文件
- `cmd/hxclaw/main.go` - 主入口逻辑
- `cmd/hxclaw/internal/markdown.go` - Markdown 渲染器
- `cmd/hxclaw/internal/helpers.go` - 辅助函数
- `cmd/hxclaw/internal/config.go` - 项目配置加载
---
@@ -100,9 +130,9 @@
## 待优化
1. 优化重绘逻辑,解决残留问题
1. 优化重绘逻辑,解决残留问题(已通过新流程解决)
2. 添加更多主题支持
3. 添加命令-line 参数支持主题选择
3. 添加命令参数支持主题选择
---