makoMako
41f4e21268
fix(gemini): filter noisy stderr output from gemini backend ( #83 )
...
* fix(gemini): filter noisy stderr output from gemini backend
- Add filteringWriter to filter [STARTUP], Warning, Session cleanup etc.
- Apply filter only for gemini backend stderr output
- Add unit tests for filtering logic
* fix: use defer for stderrFilter.Flush to cover all return paths
Address review feedback: ensure filter is flushed on failure paths
2025-12-19 20:50:21 +08:00
Jahan
a67aa00c9a
BMADh和Requirements-Driven支持根据语义生成对应的文档 ( #82 )
...
Co-authored-by: root <root@5090523.zyx >
2025-12-18 22:37:40 +08:00
Wei
d61a0f9ffd
fix: 修復 wsl install.sh 格式問題 ( #78 )
2025-12-17 22:24:02 +08:00
ben
fe5508228f
fix: 修复多 backend 并行日志 PID 混乱并移除包装格式 ( #74 ) ( #76 )
...
* fix(logger): 修复多 backend 并行日志 PID 混乱并移除包装格式
**问题:**
- logger.go:288 使用 os.Getpid() 导致并行任务日志 PID 混乱
- 日志文件添加时间戳/PID/级别前缀包装,应输出 backend 原始内容
**修复:**
1. Logger 结构体添加 pid 字段,创建时捕获 PID
2. 日志写入使用固定 l.pid 替代 os.Getpid()
3. 移除日志输出格式包装,直接写入原始消息
4. 添加内存缓存 ERROR/WARN 条目,ExtractRecentErrors 从缓存读取
5. 优化 executor.go context 初始化顺序,避免重复创建 logger
**测试:**
- 所有测试通过(23.7s)
- 更新相关测试用例匹配新格式
Closes #74
* fix(logger): 增强并发日志隔离和 task ID 清理
## 核心修复
### 1. Task ID Sanitization (logger.go)
- 新增 sanitizeLogSuffix(): 清理非法字符 (/, \, :, 等)
- 新增 fallbackLogSuffix(): 为空/非法 ID 生成唯一后备名
- 新增 isSafeLogRune(): 仅允许 [A-Za-z0-9._-]
- 路径穿越防护: ../../../etc/passwd → etc-passwd-{hash}.log
- 超长 ID 处理: 截断到 64 字符 + hash 确保唯一性
- 自动创建 TMPDIR (MkdirAll)
### 2. 共享日志标识 (executor.go)
- 新增 taskLoggerHandle 结构: 封装 logger、路径、共享标志
- 新增 newTaskLoggerHandle(): 统一处理 logger 创建和回退
- printTaskStart(): 显示 "Log (shared)" 标识
- generateFinalOutput(): 在 summary 中标记共享日志
- 并发失败时明确标识所有任务使用共享主日志
### 3. 内部标志 (config.go)
- TaskResult.sharedLog: 非导出字段,标识共享日志状态
### 4. Race Detector 修复 (logger.go:209-219)
- Close() 在关闭 channel 前先等待 pendingWG
- 消除 Logger.Close() 与 Logger.log() 之间的竞态条件
## 测试覆盖
### 新增测试 (logger_suffix_test.go)
- TestLoggerWithSuffixSanitizesUnsafeSuffix: 非法字符清理
- TestLoggerWithSuffixReturnsErrorWhenTempDirNotWritable: 只读目录处理
### 新增测试 (executor_concurrent_test.go)
- TestConcurrentTaskLoggerFailure: 多任务失败时共享日志标识
- TestSanitizeTaskID: 并发场景下 task ID 清理验证
## 验证结果
✅ 所有单元测试通过
✅ Race detector 无竞态 (65.4s)
✅ 路径穿越攻击防护
✅ 并发日志完全隔离
✅ 边界情况正确处理
Resolves: PR #76 review feedback
Co-Authored-By: Codex Review <codex@anthropic.ai >
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
* fix(logger): 修复关键 bug 并优化日志系统 (v5.2.5)
修复 P0 级别问题:
- sanitizeLogSuffix 的 trim 碰撞(防止多 task 日志文件名冲突)
- ExtractRecentErrors 边界检查(防止 slice 越界)
- Logger.Close 阻塞风险(新增可配置超时机制)
代码质量改进:
- 删除无用字段 Logger.pid 和 logEntry.level
- 优化 sharedLog 标记绑定到最终 LogPath
- 移除日志前缀,直接输出 backend 原始内容
测试覆盖增强:
- 新增 4 个测试用例(碰撞防护、边界检查、缓存上限、shared 判定)
- 优化测试注释和逻辑
版本更新:5.2.4 → 5.2.5
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
---------
Co-authored-by: swe-agent-bot <agent@swe-agent.ai >
v5.2.5
2025-12-17 10:33:38 +08:00
ben
50093036c3
Merge pull request #71 from aliceric27/master
...
fix: 修復 win python install.py
2025-12-16 17:37:01 +08:00
Wei
0cae0ede08
Merge branch 'cexll:master' into master
2025-12-16 16:21:34 +08:00
ben
4613b57240
Merge pull request #72 from changxvv/master
...
fix: replace "Codex" to "codeagent" in dev-plan-generator subagent description
2025-12-16 14:13:57 +08:00
cexll
7535a7b101
update changelog
2025-12-16 13:05:28 +08:00
cexll
f6bb97eba9
update codeagent skill backend select
2025-12-16 13:02:40 +08:00
changxv
78a411462b
fix: replace "Codex" to "codeagent" in dev-plan-generator subagent
2025-12-16 12:32:18 +08:00
alex
9471a981e3
fix: 修復 win python install.py
2025-12-16 12:29:50 +08:00
cexll
3d27d44676
chore(ci): integrate git-cliff for automated changelog generation
...
- Add cliff.toml configuration matching current CHANGELOG.md format
- Replace awk script with npx git-cliff in release workflow
- Add `make changelog` command for one-click CHANGELOG updates
- Use git-cliff --current flag to generate release notes per version
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
v5.2.4
2025-12-16 10:47:18 +08:00
ben
6a66c9741f
Merge pull request #70 from cexll/fix/prevent-codeagent-infinite-recursion
...
fix(codeagent): 防止 Claude backend 无限递归调用
2025-12-16 10:37:45 +08:00
cexll
a09c103cfb
fix(codeagent): 防止 Claude backend 无限递归调用
...
通过设置 --setting-sources="" 禁用所有配置源(user, project, local),
避免被调用的 Claude 实例加载 ~/.claude/CLAUDE.md 和 skills,
从而防止再次调用 codeagent 导致的循环超时问题。
修改内容:
- backend.go: ClaudeBackend.BuildArgs 添加 --setting-sources="" 参数
- backend_test.go: 更新 4 个测试用例以匹配新的参数列表
- main_test.go: 更新 2 个测试用例以匹配新的参数列表
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-16 10:27:21 +08:00
ben
1dec763e26
Merge pull request #69 from cexll/myclaude-master-20251215-073053-338465000
...
fix(executor): isolate log files per task in parallel mode
2025-12-16 10:20:30 +08:00
cexll
f57ea2df59
chore: bump version to 5.2.4
...
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-16 10:17:47 +08:00
cexll
d215c33549
fix(executor): isolate log files per task in parallel mode
...
Previously, all parallel tasks shared the same log file path, making it
difficult to debug individual task execution. This change creates a
separate log file for each task using the naming convention:
codeagent-wrapper-{pid}-{taskName}.log
Changes:
- Add withTaskLogger/taskLoggerFromContext for per-task logger injection
- Modify executeConcurrentWithContext to create independent Logger per task
- Update printTaskStart to display task-specific log paths
- Extract defaultRunCodexTaskFn for proper test hook reset
- Add runCodexTaskFn reset to resetTestHooks()
Test coverage: 93.7%
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-16 10:05:54 +08:00
swe-agent[bot]
b3f8fcfea6
update CHANGELOG.md
2025-12-15 22:23:34 +08:00
ben
806bb04a35
Merge pull request #65 from cexll/fix/issue-64-buffer-overflow
...
fix(parser): 修复 bufio.Scanner token too long 错误
2025-12-15 14:22:03 +08:00
swe-agent[bot]
b1156038de
test: 同步测试中的版本号至 5.2.3
...
修复 CI 失败:将 main_test.go 中的版本期望值从 5.2.2 更新为 5.2.3,
与 main.go 中的实际版本号保持一致。
修改文件:
- codeagent-wrapper/main_test.go:2693 (TestVersionFlag)
- codeagent-wrapper/main_test.go:2707 (TestVersionShortFlag)
- codeagent-wrapper/main_test.go:2721 (TestVersionLegacyAlias)
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
v5.2.3
2025-12-15 14:13:03 +08:00
swe-agent[bot]
0c93bbe574
change version
2025-12-15 13:23:26 +08:00
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
swe-agent[bot]
ff301507fe
test: Fix tests for ClaudeBackend default --dangerously-skip-permissions
...
- Update TestClaudeBuildArgs_ModesAndPermissions expectations
- Update TestBackendBuildArgs_ClaudeBackend expectations
- Update TestClaudeBackendBuildArgs_OutputValidation expectations
- Update version tests to expect 5.2.2
ClaudeBackend now defaults to adding --dangerously-skip-permissions
for automation workflows.
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
v5.2.2
2025-12-13 21:53:38 +08:00
swe-agent[bot]
93b72eba42
chore(v5.2.2): Bump version and clean up documentation
...
- Update version to 5.2.2 in README.md, README_CN.md, and codeagent-wrapper/main.go
- Remove non-existent documentation links from README.md (architecture.md, GITHUB-WORKFLOW.md, enterprise-workflow-ideas.md)
- Add coverage.out to .gitignore
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-13 21:43:49 +08:00
swe-agent[bot]
b01758e7e1
fix codeagent backend claude no auto
2025-12-13 21:42:17 +08:00
swe-agent[bot]
c51b38c671
fix install.py dev fail
2025-12-13 21:41:55 +08:00
swe-agent[bot]
b227fee225
fix codeagent claude and gemini root dir
v5.2.1
2025-12-13 16:56:53 +08:00
swe-agent[bot]
2b7569335b
update readme
2025-12-13 15:29:12 +08:00
swe-agent[bot]
9e667f0895
feat(v5.2.0): Complete skills system integration and config cleanup
...
Core Changes:
- **Skills System**: Added codeagent, product-requirements, prototype-prompt-generator to skill-rules.json
- **Config Cleanup**: Removed deprecated gh module from config.json
- **Workflow Update**: Changed memorys/CLAUDE.md to use codeagent skill instead of codex
Details:
- config.json:88-119: Removed gh module (github-workflow directory doesn't exist)
- skills/skill-rules.json:24-114: Added 3 new skills with keyword/pattern triggers
- codeagent: multi-backend, parallel task execution
- product-requirements: PRD, requirements gathering
- prototype-prompt-generator: UI/UX design specifications
- memorys/CLAUDE.md:3,24-25: Updated Codex skill → Codeagent skill
Verification:
- All skill activation tests PASS
- codeagent skill triggers correctly on keyword match
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
v5.2.0
2025-12-13 13:25:21 +08:00
swe-agent[bot]
4759eb2c42
chore(v5.2.0): Update CHANGELOG and remove deprecated test files
...
- Added Skills System Enhancements section to CHANGELOG
- Documented new skills: codeagent, product-requirements, prototype-prompt-generator
- Removed deprecated test files (tests/test_*.py)
- Updated release date to 2025-12-13
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-13 13:21:59 +08:00
swe-agent[bot]
edbf168b57
fix(codeagent-wrapper): fix race condition in stdout parsing
...
修复 GitHub Actions CI 中的测试失败问题。
问题分析:
在 TestRun_PipedTaskSuccess 测试中,当脚本运行很快时,cmd.Wait()
可能在 parseJSONStreamInternal goroutine 开始读取之前就返回,
导致 stdout 管道被过早关闭,出现 "read |0: file already closed" 错误。
解决方案:
将 parseJSONStreamInternal goroutine 的启动提前到 cmd.Start() 之前。
这确保解析器在进程启动前就 ready,避免竞态条件。
测试结果:
- 本地所有测试通过 ✓
- 覆盖率保持 93.7% ✓
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-13 13:20:49 +08:00
swe-agent[bot]
9bfea81ca6
docs(changelog): remove GitHub workflow related content
...
GitHub workflow features have been removed from the project.
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-13 13:01:06 +08:00
swe-agent[bot]
a9bcea45f5
Merge rc/5.2 into master: v5.2.0 release improvements
2025-12-13 12:56:37 +08:00
swe-agent[bot]
8554da6e2f
feat(v5.2.0): Improve release notes and installation scripts
...
**Main Changes**:
1. release.yml: Extract version release notes from CHANGELOG.md
2. install.bat: codex-wrapper → codeagent-wrapper
3. README.md: Update multi-backend architecture description
4. README_CN.md: Sync Chinese description
5. CHANGELOG.md: Complete v5.2.0 release notes in English
Generated with swe-agent-bot
Co-Authored-By: swe-agent-bot <agent@swe-agent.ai >
2025-12-13 12:53:28 +08:00
ben
b2f941af5f
Merge pull request #53 from cexll/rc/5.2
...
feat: Enterprise Workflow with Multi-Backend Support (v5.2)
2025-12-13 12:38:38 +08:00
swe-agent[bot]
6861a9d057
remove docs
2025-12-13 12:37:45 +08:00
swe-agent[bot]
18189f095c
remove docs
2025-12-13 12:36:12 +08:00
swe-agent[bot]
f1c306cb23
add prototype prompt skill
2025-12-13 12:33:02 +08:00
swe-agent[bot]
0dc6df4e71
add prd skill
2025-12-13 12:32:37 +08:00
swe-agent[bot]
21bb45a7af
update memory claude
2025-12-13 12:32:15 +08:00
swe-agent[bot]
e7464d1286
remove command gh flow
2025-12-13 12:32:06 +08:00
swe-agent[bot]
373d75cc36
update license
2025-12-13 12:31:49 +08:00
swe-agent[bot]
0bbcc6c68e
fix(codeagent-wrapper): add worker limit cap and remove legacy alias
...
- Add maxParallelWorkersLimit=100 cap for CODEAGENT_MAX_PARALLEL_WORKERS
- Remove scripts/install.sh (codex-wrapper legacy alias no longer needed)
- Fix README command example: /gh-implement -> /gh-issue-implement
- Add TestResolveMaxParallelWorkers unit test for limit validation
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 22:06:23 +08:00
swe-agent[bot]
3c6f22ca48
fix(codeagent-wrapper): use -r flag for gemini backend resume
...
Gemini CLI uses -r <session_id> for session resume, not --session-id.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 15:35:39 +08:00
swe-agent[bot]
87016ce331
fix(install): clarify module list shows default state not enabled
...
Renamed "Enabled" column to "Default" and added hint explaining
the meaning of the checkmark.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 15:14:41 +08:00
swe-agent[bot]
86d18ca19a
fix(codeagent-wrapper): use -r flag for claude backend resume
...
Claude CLI uses `-r <session_id>` for resume, not `--session-id`.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 15:10:17 +08:00
swe-agent[bot]
4edd2d2d2d
fix(codeagent-wrapper): remove binary artifacts and improve error messages
...
- Remove committed binaries from git tracking (codeagent-wrapper, *.test)
- Remove coverage.out from tracking (generated by CI)
- Update .gitignore to exclude build artifacts
- Add task block index to parallel config error messages for better debugging
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 14:41:54 +08:00
swe-agent[bot]
ef47ed57e9
test(codeagent-wrapper): 添加 ExtractRecentErrors 单元测试
...
测试覆盖:
- 空日志文件
- 无错误日志
- 单个错误
- ERROR 和 WARN 混合
- maxEntries 截断
- nil logger
- 空路径
- 不存在的文件
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 14:27:50 +08:00
swe-agent[bot]
b2e3f416bc
fix(codeagent-wrapper): 异常退出时显示最近错误信息
...
- 添加 Logger.ExtractRecentErrors() 方法提取最近 ERROR/WARN 日志
- 修改退出逻辑:失败时先输出错误再删除日志文件
Closes #56
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 14:25:22 +08:00
swe-agent[bot]
7231c6d2c4
fix(install): op_run_command 实时流式输出
...
- 使用 Popen + selectors 替代 subprocess.run(capture_output=True)
- stdout/stderr 实时打印到终端,同时记录到日志
- 用户可以看到命令执行的实时进度
- 修复 issue #55 : bash install.sh 执行过程不可见的问题
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-12 13:22:00 +08:00