检查程序静默阈值:6 → 3 分钟(用户当日第三次调整)

用户令逐字:「把 检查程序等待时间 改为3分钟,现在应该是6分钟」。
调整轨迹:**20 → 10 → 6 → 3**(分别是当日 09:xx / 18:25 / 本次 02:4x 三次用户指令)。

改法(四处同源,⛔ 少改一处就会出现「判据说 3、写给检查会话的文案说 6」):
1. 常量 `CHECK_IDLE_MIN`:6 → 3;
2. `CHECK_PROMPT_GOAL` 里写给检查会话看的文案:`已静默 ≥6 分钟` → `≥3 分钟`;
3. 注释/文档:`# 【目标检查】` 那行、`_last_progress_ts` docstring、
   `references/supervise-persistence.md` §六、`selftest.py` 的口径说明。
⚠️ 另有两处「留痕注释」(写"两度拍板"、"由 20 改 10")本轮**没能改到** ——
   实测那两行的当前文本与上一轮 grep 到的已不一致,怀疑**另一个会话正在改同一批文件**
   (该区当前目标就叫「技能包规则文件已全量过说人话」)⇒ ⛔ 不硬改(避免与它打架),如实留待下轮核对。

判据:`selftest.py::t_check_idle_min` 守的是「常量/闸门/试算/文案四处同源」(⛔ 不锁具体数值)
⇒ 本次改动后仍绿,等于自动证明四处都已是 3。

验收:selftest.py rc=0 PASS 106 / FAIL 0;manifest 76 份、语法失败 0。
This commit is contained in:
admin committed 2026-10-08 02:42:13 +08:00
1 parent 2ed7766007
commit fca5a084ce
4 files changed
+10 -10

No files matched your search

+4 -4
View File
@@ -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:宁可少建,不误判成"已静默够久")。
+1 -1
View File
@@ -797,7 +797,7 @@ def t_two_kinds_of_check_agent():
用户原话两条:
1、会话全结束(**还要加上 定时任务中没有本项目待执行的任务**)且**队列不为空** ⇒
**结果检查会话**去跟进任务会话执行结果,判断是否创建对应任务会话继续完成目标;
2、会话全结束(同上)且**队列为空 >6 分钟** ⇒ **目标检查会话**去核对目标完成状态,
2、会话全结束(同上)且**队列为空 >3 分钟** ⇒ **目标检查会话**去核对目标完成状态,
判断是建任务会话还是**修改目标状态**,并执行。
⇒ 改前**两套 prompt 完全共用一个模板** ⇒ 结果检查会话拿到了"改目标状态"的出口(越权),