Repository navigation
0.7.0:锁争用排队、坏知识降级、后台复盘冲突出口与单包便捷参数
自 v0.6.3 以来的变化。0.6.1–0.6.3 没有单独发布 Release,它们的变化见 README“当前状态与限制”一节。
稳定性
- 锁争用有界排队:短暂锁争用时在预算内重试(普通 hook 1.5 秒,Interrupt/SessionEnd 等生命周期事件 0.7 秒,均低于宿主 hook 超时),不再直接失败;预算耗尽按
LOCKED保守放行并给一次恢复提示。锁改为每个持有者一份票据文件,已退出进程遗留的锁自动归档。 - 生命周期事件不丢:Interrupt、StopFailure、SessionEnd 先独立落盘,拿到锁后幂等消费;迟到的旧事件不打断新回合;两个 Lead 会话共用任务时,结束其中一个不再挂起另一方。
- 坏知识不再拖垮入口:入口先保存身份与回合,再在锁外读取对齐与知识;损坏条目跳过并给一句降级提示,有效条目照常召回。完整诊断用
knowledge select|explain。 - 后台复盘:BUSY 或只读暂缓时保存已有提案,后续 tick 只重试提交、不再调用模型,不必再手动
learning recover;内容冲突用learning resolve --run <ID> --keep|--discard处理;锁争用不再推迟整个检查周期。
检查对象
- 增量对齐:
apply/decide/suggest可带sources只确认本次重读的来源,按快照复核后只刷新这些来源的基线。 - spec:显式非 HEAD 的
--ref从该提交树读取 spec 与代码;门禁、task show、Stop 改用 hook 解析出的 worktree 根。代码改动不影响 spec 时推荐在内容提交上附Spec-OK,空提交只用于追认既有历史。 - 返修计数:一轮返修对应一个交付轮次,
supersedes链继承计数;从未产出的启动失败重派不再虚增返修。
安装与接入
- 重复
install会修复自有current入口的断链或错链(不重写宿主配置);用户自己的目录或另一宿主登记的有效快照保留,并报告conflict。 onboard把核心接入与后台复盘预检分开:未加--enable-learning时预检问题只提示;显式启用失败返回status: partial,退出码 1。
协作与信号
- 新增
signal task-update:同一任务中途改 goal 或permissions.mode/allowedPaths(--paths-mode replace|append),宿主处于只读或计划模式时只允许收窄。 - 宿主原生与 Codeg 的结构化提问工具自动记 waiting-user,文本提问仍需先声明。
- 计划交付一次列明分包与各包通道;已声明的通道或已指定的安排直接沿用,Lead 直接执行的任务不问 Worker。只在本回合显式进入计划交付时核对,计划模式下的普通讨论不再单独被挡;计划交付与在途包同时成立时合并为一次提醒。
signal packages新增单包便捷参数(--package、--status、--role、--channel、--handle、--ref、--depends-on、--supersedes、--verdict、--reviews等);task-end新增--validation-ref和可重复的--evidence;knowledge capture可用少量字段保存短材料(--incident必填)。同批多包、change、waivers仍用--input。
实测(同机、合成数据,基线 0.6.3)
| 场景 | 0.6.3 | 0.7.0 |
|---|---|---|
| 300 条知识,无变化回合入口 | 573 ms | 104 ms |
| 300 条知识,单条变化回合入口 | 900 ms | 226 ms |
| 直接召回知识 | 519 ms | 72 ms |
| 未接入目录的入口 | 15–23 ms | 约 0.6 ms |
| 单 Worker + 单 Reviewer 登记工具调用 | 9 次 | 6 次 |
| Lead 直接执行并验证 | 3 次 | 2 次 |
| 后台 BUSY 延期后的人工恢复命令 | 1 条 | 0 条 |
| 400 ms 持锁时入口成功率 | 0/5 | 5/5 |
代价:锁争用时会等待,400 ms 持锁下入口中位数约 210→457 ms;超过 1.5 秒预算的长持锁两个版本都会降级。完整数据见仓库 docs/plans/efficiency-review-benchmark.md。
升级
两个宿主都要重装:锁文件格式已变,两个宿主又共用 current,要避免新旧版本混跑。AGENTS 管理区没有变化,不需要重新接入。
cd D:\git-repo\workflow
git pull
node bin/workflow.mjs install --agent claude
node bin/workflow.mjs install --agent codex