refactor(agent): replace OMP with Claude Code kernel
This commit is contained in:
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` 仅作为旧实现记录保留,不代表当前行为。
|
||||
Reference in new issue
Block a user