refactor(agent): replace OMP with Claude Code kernel

This commit is contained in:
xiaohan.yuan committed 2026-10-20 14:47:56 +08:00
1 parent 0fb2226f8c
commit 9a1f182397
232 files changed
+2561 -25564

No files matched your search

@@ -0,0 +1,39 @@
# 文件所有权租约移除记录(2026-10-20)
## 范围
按用户要求移除子智能体调度器中的文件所有权租约,包括:
- 模块级 `leases`:子智能体声明文件的独占归属
- 模块级 `rootIntents`:主智能体写入意图
- 模块级 `rootLeases`、`rootWaiters` 与 10 分钟等待队列
- `acquire` / `release` 租约生命周期
- `rootExecute` 中按路径或工作区根排队、拒绝冲突的逻辑
- 子智能体工具执行时对 `leases.get(path) === entry.view.id` 的归属检查
## 保留行为
- `spawn_agent` 的 `write` 模式仍要求声明 1 至 32 个明确文件路径。
- 子智能体写文件时仍只能使用 `write_file` / `edit_file`,且路径必须属于自己声明的文件。
- 读工具、子智能体并发上限、取消、超时、结果汇总和权限模式门禁保持不变。
- 文件工具自身的路径边界、写前重读和原子写入逻辑保持不变。
## 行为变化
- 主智能体同一回合的多个工具调用直接执行,不再按文件足迹先到先得排队。
- 父智能体与子智能体可以同时声明或写入同一文件,不再返回“文件正由子智能体修改”或“文件已分配给另一个子智能体”。
- 多个子智能体可以声明同一文件;最终内容取决于各写入工具的实际执行顺序。
- 同一文件的并发写不再由调度器串行化,也不提供跨工具锁或自动合并。
## 验证
- `npm run typecheck`:通过。
- `npm run test:subagents`:31 项通过,覆盖同文件声明、父写与子写、并发命令、写入范围拒绝、回退记录、取消和超时。
- `npm run build`:通过。
- `src/main/subagents/scheduler.ts`:未发现 `leases`、`rootIntents`、`rootLeases`、`rootWaiters` 或 `acquireRootLease`。
## 限制
- 并发写同一文件时可能发生覆盖;需要互斥或合并的场景必须由调用方另行处理。
- 回退记录要求同一文件连续修改时前一次 `newContent` 与后一次 `oldContent` 一致;并发交错写同一文件可能使回退校验失败。
- 历史文档 `子智能体文件租约并发修复-2026-10-18.md` 仅作为旧实现记录保留,不代表当前行为。