v0.7.1
v0.7.1 版本发布
Bug 修复(8 项)
基于 PR #10 Code Review 反馈,修复了以下 8 个问题:
- API 响应验证 —
opencode_go_provider.rs增加 choices/message 防御性检查 + error 字段检查,防止无限循环 - GrepTool 参数注入 — 使用
--分隔符 + extension 白名单校验,防止选项注入 - Sub-Agent Runner panic — 使用
catch_unwind包裹 tool.execute(),防止 panic 导致进程崩溃 - eprintln! 干扰 TUI — 替换为
log::warn!,避免 stderr 破坏终端渲染 - BashTool 超时泄漏 — 实现 thread + mpsc + recv_timeout 超时机制,超时 kill 子进程
- EditTool 空文本 — 拒绝空 old_text,防止意外全局替换
- agent.rs 冗余循环 — 简化 replace_messages_preserve_system_prompt 循环逻辑
- 辅助函数 exit — build_provider_config 等函数改为返回 Result,由调用者处理错误
新功能
- Input 历史 prompt 浏览 — input 为空时 ↑/↓ 切换 user 历史 prompt,支持连续切换、归位清空
CI 验收
- cargo fmt --all -- --check ✅
- cargo clippy --all-targets -- -D warnings ✅
- cargo build --verbose ✅
- cargo test --verbose ✅(233 tests passed)
完整提交日志
408b8dc fix(oy-ai): 增强 API 响应验证防止无限循环
a8ffe9e fix(grep): 修复参数注入漏洞 — 添加 -- 分隔符和 extension 校验
19110e2 fix(sub-agent-runner): 使用 catch_unwind 防止工具 panic 导致进程崩溃
f05832d fix(persistence): 替换 eprintln! 为 log::warn! 避免 TUI 渲染干扰
d44dd4d fix(bash): 添加同步超时机制防止线程/进程泄漏
c54e06b fix(edit): 增加 old_text 空字符串校验防止意外替换行为
0866fd1 refactor(agent): 简化 replace_messages_preserve_system_prompt 循环逻辑
aa26a1a fix: 移除辅助函数中的 std::process::exit,改为返回错误由调用者处理
1c3fcf6 feat(tui): input 为空时 ↑/↓ 切换 user 历史 prompt
c7faf89 docs: add input history prompt feature to v0.7.1 changelog
What's Changed
- v0.7.1 — PR #10 Code Review 反馈修复 + 功能增强 by @cherish-ltt in #11
Full Changelog: v0.7.0...v0.7.1