diff --git a/session-mechanism/references/manifest.md b/session-mechanism/references/manifest.md index f8732d2..c136910 100644 --- a/session-mechanism/references/manifest.md +++ b/session-mechanism/references/manifest.md @@ -1,6 +1,6 @@ # manifest · 包内文件清单 -> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-07 21:56 (说人话每轮注入 + 英文硬核版整包纳入 + 新判据)** +> 生成方式:逐文件 `compile()` / `json.loads` + md5 | **最近一次全量重算:2026-10-08 02:41 (检查程序静默阈值 6 → 3 分钟(四处同源))** > ⚠️ **2026-10-05 局部增量**:`references/pitfalls.md`(P0-77 拆条 + P0-73/P0-77 压缩)与 > `scripts/goalctl.py`(`--switch-goal` 确认闸 + 旧目标归档)两行的 md5/大小已按当天实测值更新;**其余行仍是 10-04 基线**。 > ⛔ 本表**不含** `install.log`(运行日志)与 `references/manifest.md`(自引用,写完即失真)。 @@ -145,7 +145,7 @@ | `references/karpathy-output-ladder/references/ste100.md` | 3022 | `fdbe3271c21a3c17f326d1e71de33b0d` | — | | `references/pitfalls.md` | 311254 | `d321a71e38dd246b8014b4c9100b12c7` | — | | `references/rules.md` | 9218 | `a8fd1e616600defb724fa64af67a7348` | — | -| `references/supervise-persistence.md` | 34799 | `d18d44d36fd939924f7d5752b7c2be40` | — | +| `references/supervise-persistence.md` | 34799 | `6f2a0b10f248ceaad3802188f97ecb74` | — | | `references/taskgraph.md` | 3521 | `be6c6540be86475bb3430688c2987afc` | — | | `references/作业规矩/00-作业总规矩(原 agent-operating-rules).md` | 70243 | `80fc5471015b237ee7aacd6976eda6fe` | — | | `references/作业规矩/02-工作区纪律.md` | 21351 | `1a679fdeb9cca0883a47f619d1aec85d` | — | @@ -158,7 +158,7 @@ | `scripts/board_ext.py` | 45655 | `2319fb9d2d21bf961e03a42da9a1ad4b` | ok | | `scripts/collabctl.py` | 32007 | `1c597185be099821c7b1d6dc66fadb05` | ok | | `scripts/collabd.config.example.json` | 1158 | `6655c15c411a84e3ca12fd136dbe2c60` | ok | -| `scripts/collabd.py` | 436057 | `590688483377cb0e0b6c34ade1798c51` | ok | +| `scripts/collabd.py` | 436116 | `f25b6688a50e864cb2f33b760330e333` | ok | | `scripts/deliver-gateway-token.py` | 5685 | `cbba9648d404ecd2683061e19dbdb24a` | ok | | `scripts/deploy_code.py` | 5325 | `a79cf5e5ffb3e8c60a31b4d0d8845f40` | ok | | `scripts/forensics/proc-parent.py` | 2347 | `8cdfff2dbb88303298752c3777da7b20` | ok | @@ -183,7 +183,7 @@ | `scripts/lock/op-lock.sh` | 4690 | `1a31eda3642e23693a65e1519860c744` | — | | `scripts/lock/preflight-lock.sh` | 8673 | `e985ec1cb853fae4c351cd03b171355d` | — | | `scripts/mut_run.py` | 13323 | `3bffc12e1e57d5efc743bac55e584b62` | ok | -| `scripts/selftest.py` | 493433 | `7ebd4893ca5339c575ed64d79f2697ac` | ok | +| `scripts/selftest.py` | 493435 | `d3f0ecb225cd82062fc69fc72cdff836` | ok | | `scripts/session-rules-check.py` | 44412 | `b2b468992d80421106316eaf451e2477` | ok | | `scripts/stop-collab.py` | 10462 | `d8043bedd23b52b6642aaf7ec8b8c980` | ok | | `scripts/supervise-launch.py` | 2503 | `f416a2f197e5524a8859c1d227ba1d05` | ok | diff --git a/session-mechanism/references/supervise-persistence.md b/session-mechanism/references/supervise-persistence.md index 81b2506..d04aa22 100644 --- a/session-mechanism/references/supervise-persistence.md +++ b/session-mechanism/references/supervise-persistence.md @@ -374,7 +374,7 @@ $p = Get-Process -Id -ErrorAction SilentlyContinue # $null = 已死 ## 六、⚠️ 还没有它就不算长期(两条,别自欺) -1. **静默基准**:检查会话要 `静默 ≥ 6 分钟` 才建(🔴 **2026-10-07 两度调整:20 → 10 → 6**,用户原话 +1. **静默基准**:检查会话要 `静默 ≥ 3 分钟` 才建(🔴 **2026-10-07 两度调整:20 → 10 → 6**,用户原话 「把检查程序的等待时间由 20分钟 改为 10分钟」;阈值=`collabd.py::CHECK_IDLE_MIN`,闸门与 `--dry-run` 试算同源)。 基准=**本工作区排期的 `updated_at` 最大值**(`_last_progress_ts()`); ⚠️ 本行原先写「基准取台账 `tasks.json` 的 mtime」——**那句与代码不符**,已按代码订正。 diff --git a/session-mechanism/scripts/collabd.py b/session-mechanism/scripts/collabd.py index e049bec..7932e25 100644 --- a/session-mechanism/scripts/collabd.py +++ b/session-mechanism/scripts/collabd.py @@ -2067,7 +2067,7 @@ TASK_EVENTS = INBOX / "tasks-events.jsonl" # 只作审计(append-only,⛔ TO_MAIN = INBOX / "TO-MAIN.md" # 投递给主会话的通知(投影 · 供人/AI 直接读) TASK_STATES = ("pending", "running", "done", "blocked") # 需求台账四态:待执行/执行中/已完成/有阻碍 QUEUE_IDLE_MIN = 5 # 唤醒**限流桶**(分钟):同一状态下最多每 **5** 分钟发一次(2026-09-30 用户拍板:30→10→**5**);⛔ 触发条件是 supervise() 的**四条件**(不是计时器) -CHECK_IDLE_MIN = 6 # 🔴🔴 2026-10-07 用户两度拍板:**20 → 10 → 6 分钟** +CHECK_IDLE_MIN = 3 # 🔴🔴 2026-10-07 用户三度拍板:**20 → 10 → 6 → 3 分钟**(10-08 02:4x 第三次) # 原话一:「把检查程序的等待时间由 20分钟 改为 10分钟」;原话二:「检查程序的等待时间改为6分钟」(当日 18:25)。 # 「检查程序」判"已经静默够久、可以建检查会话"的阈值(`queue-empty` 那条闸)。 # ⚠️ 改这个数必须**一起改三处**,否则文案与判据打架: @@ -4317,14 +4317,14 @@ CHECK_PROMPT_RESULT = ( + _CHECK_TAIL_A + _CHECK_TAIL_B ) -# 【目标检查】—— 队列**空**且静默 >6 分钟时:核对目标完成状态(阈值=`CHECK_IDLE_MIN`,2026-10-07 由 20 改 10) +# 【目标检查】—— 队列**空**且静默 >3 分钟时:核对目标完成状态(阈值=`CHECK_IDLE_MIN`,2026-10-07/08 三度调整:20 → 10 → 6 → 3) CHECK_PROMPT_GOAL = ( "**【目标检查会话 · 第 %d 棒】**本轮只做这一件事:**核对目标完成状态**,**做完即停**。\n" "\n" "目标:%s\n" "\n" "## 一、为什么是你(🔴 触发条件已满足,不必重判)\n" - "**所有会话都已结束** + **队列为空** + **已静默 ≥6 分钟** + **本项目没有别的待执行排期**。\n" + "**所有会话都已结束** + **队列为空** + **已静默 ≥3 分钟** + **本项目没有别的待执行排期**。\n" "\n" "## 二、🔴 先读这五样,⛔ **只读这五个文件**,读完直接判断(⛔ 别到处找信息)\n" "> ⚠️ **不要在本工作区里到处翻文件**:2026-10-03 实测,检查会话因无边界地找资料\n" @@ -4580,7 +4580,7 @@ def artifacts_unverifiable() -> list: def _last_progress_ts() -> float: - """**最近一次有实质进展的时刻**(epoch 秒)—— 判「静默够久没」(阈值 `CHECK_IDLE_MIN`,现 6 分钟)的基准。 + """**最近一次有实质进展的时刻**(epoch 秒)—— 判「静默够久没」(阈值 `CHECK_IDLE_MIN`,现 3 分钟)的基准。 🔴 取「本工作区排期的 `updated_at` 最大值」;读不到 ⇒ 判**刚有过活动**(0) ⇒ ⛔ 不建(fail-safe:宁可少建,不误判成"已静默够久")。 diff --git a/session-mechanism/scripts/selftest.py b/session-mechanism/scripts/selftest.py index 404e88c..8d026b7 100644 --- a/session-mechanism/scripts/selftest.py +++ b/session-mechanism/scripts/selftest.py @@ -797,7 +797,7 @@ def t_two_kinds_of_check_agent(): 用户原话两条: 1、会话全结束(**还要加上 定时任务中没有本项目待执行的任务**)且**队列不为空** ⇒ **结果检查会话**去跟进任务会话执行结果,判断是否创建对应任务会话继续完成目标; - 2、会话全结束(同上)且**队列为空 >6 分钟** ⇒ **目标检查会话**去核对目标完成状态, + 2、会话全结束(同上)且**队列为空 >3 分钟** ⇒ **目标检查会话**去核对目标完成状态, 判断是建任务会话还是**修改目标状态**,并执行。 ⇒ 改前**两套 prompt 完全共用一个模板** ⇒ 结果检查会话拿到了"改目标状态"的出口(越权),