Commit Graph

5 Commits

Author SHA1 Message Date
swe-agent[bot]
fec4b7dba3 test: 补充测试覆盖提升至 89.3%
解决的测试盲点:
1. getProcessStartTime (Unix) 0% → 77.3%
   - 新增 process_check_test.go
   - 测试 /proc/<pid>/stat 解析
   - 覆盖失败路径和边界情况

2. getBootTime (Unix) 0% → 91.7%
   - 测试 /proc/stat btime 解析
   - 覆盖缺失和格式错误场景

3. isPIDReused 60% → 100%
   - 新增表驱动测试覆盖所有分支
   - file_stat_fails, old_file, new_file, pid_reused, pid_not_reused

4. isUnsafeFile 82.4% → 88.2%
   - 符号链接检测测试
   - 路径遍历攻击测试
   - TempDir 外文件测试

5. parsePIDFromLog 86.7% → 100%
   - 补充边界测试:负数、零、超大 PID

测试质量改进:
- 新增 stubFileStat 和 stubEvalSymlinks 辅助函数
- 新增 fakeFileInfo 用于文件信息模拟
- 所有测试独立不依赖真实系统状态
- 表驱动测试模式提升可维护性

覆盖率统计:
- 整体覆盖率: 85.5% → 89.3% (+3.8%)
- 新增测试代码: ~150 行
- 测试/代码比例: 1.08 (健康水平)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-08 11:13:00 +08:00
swe-agent[bot]
da257b860b fix: 增强日志清理的安全性和可靠性
必须修复的问题:
1. PID重用防护 - 添加进程启动时间检查,对比文件修改时间避免误删活动进程的日志
   - Unix: 通过 /proc/<pid>/stat 读取进程启动时间
   - Windows: 使用 GetProcessTimes API 获取创建时间
   - 7天策略: 无法获取进程启动时间时,超过7天的日志视为孤儿

2. 符号链接攻击防护 - 新增安全检查避免删除恶意符号链接
   - 使用 os.Lstat 检测符号链接
   - 使用 filepath.EvalSymlinks 解析真实路径
   - 确保所有文件在 TempDir 内(防止路径遍历)

强烈建议的改进:
3. 异步启动清理 - 通过 goroutine 运行清理避免阻塞主流程启动

4. NotExist错误语义修正 - 文件已被其他进程删除时计入 Kept 而非 Deleted
   - 更准确反映实际清理行为
   - 避免并发清理时的统计误导

5. Windows兼容性验证 - 完善Windows平台的进程时间获取

测试覆盖:
- 更新所有测试以适配新的安全检查逻辑
- 添加 stubProcessStartTime 支持PID重用测试
- 修复 setTempDirEnv 解析符号链接避免安全检查失败
- 所有测试通过(codex-wrapper: ok 6.183s)

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-08 10:53:52 +08:00
freespace8
33149d9615 feat(cleanup): 添加启动时清理日志的功能和--cleanup标志支持 2025-12-07 12:28:06 +08:00
dnslin
595fa8da96 fix(logger): 保留日志文件以便程序退出后调试并完善日志输出功能 2025-12-01 17:55:39 +08:00
cexll
246674c388 feat: add async logging to temp file with lifecycle management
Implement async logging system that writes to /tmp/codex-wrapper-{pid}.log during execution and auto-deletes on exit.

- Add Logger with buffered channel (cap 100) + single worker goroutine
- Support INFO/DEBUG/ERROR levels
- Graceful shutdown via signal.NotifyContext
- File cleanup on normal/signal exit
- Test coverage: 90.4%

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 22:40:19 +08:00