swe-agent[bot]
|
6f4f4e701b
|
fix(parser): 修复 bufio.Scanner token too long 错误 (#64)
## 问题
- 执行 rg 等命令时,如果匹配到 minified 文件,单行输出可能超过 10MB
- 旧实现使用 bufio.Scanner,遇到超长行会报错并中止整个解析
- 导致后续的 agent_message 无法读取,任务失败
## 修复
1. **parser.go**:
- 移除 bufio.Scanner,改用 bufio.Reader + readLineWithLimit
- 超长行(>10MB)会被跳过但继续处理后续事件
- 添加 codexHeader 轻量级解析,只在 agent_message 时完整解析
2. **utils.go**:
- 修复 logWriter 内存膨胀问题
- 添加 writeLimited 方法限制缓冲区大小
3. **测试**:
- parser_token_too_long_test.go: 验证超长行处理
- log_writer_limit_test.go: 验证日志缓冲限制
## 测试结果
- ✅ TestParseJSONStream_SkipsOverlongLineAndContinues
- ✅ TestLogWriterWriteLimitsBuffer
- ✅ 完整测试套件通过
Fixes #64
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai>
|
2025-12-15 13:19:51 +08:00 |
|