Commit 77e18677fe9f071be0649ca7b1ceee972f301d40

Authored by yibo
1 parent 58a28650

feat(p3b): 给 retrain-watchdog 加关闭开关,供真跑规程使用

LEMONBOSS_DISABLE_WATCHDOG=1 时不启动。

第三次真跑记录:Master 智能巡检带 full 工具权限、会在工作树里改源码,还会自主
下任务单;而图执行的边界守卫用整仓 git status 差集判归属,于是并行 Master 的写
被算到「当时正在跑的 work 节点」头上,把一个只是超时的节点额外署成 boundary_escape。
守卫做不到区分是谁写的(W3「拦不住」第 5 条),所以真跑期间工作树里不能有第二个
agent 在活动 —— 这是规程问题,不该指望守卫变聪明。此前没有任何关闭开关。
server/services/retrain-watchdog.js
... ... @@ -32,6 +32,16 @@ class RetrainWatchdog {
32 32 * @param {Function} [getMasterSession] - 可选,提供 MasterSession 进行智能巡检
33 33 */
34 34 start(jobManager, getInnovator, getMasterSession = null) {
  35 + // 真跑规程需要的关闭开关(27-P3B 第三次真跑):Master 智能巡检带 full 工具权限、
  36 + // 会在工作树里改源码,还会自主下任务单。图执行的边界守卫用整仓 git status 差集判归属,
  37 + // 于是并行 Master 的写会被算到「当时正在跑的 work 节点」头上,把成功节点误判 boundary_escape。
  38 + // 守卫做不到区分是谁写的(W3「拦不住」第 5 条),所以真跑期间工作树里不能有第二个 agent
  39 + // 在活动 —— 这是规程问题,不该指望守卫变聪明。
  40 + if (process.env.LEMONBOSS_DISABLE_WATCHDOG === '1') {
  41 + console.log('[Watchdog] ⏸️ 已由 LEMONBOSS_DISABLE_WATCHDOG=1 关闭(真跑期间避免并行 agent 污染工作树)');
  42 + return;
  43 + }
  44 +
35 45 this._jobManager = jobManager;
36 46 this._getInnovator = getInnovator;
37 47 this._getMasterSession = getMasterSession;
... ...