Files
dsh_ai1net_server/交付物/落地清单-唤醒回路-20260929.md
T
admin c1b5e4d966 chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次)
- .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…),
  目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪
- .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/)
- .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*)
- .gitignore 补:备份件(*.bak-*)
- 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
2026-10-10 23:13:22 +08:00

3.5 KiB
Raw Blame History

落地清单 · 唤醒回路(让程序把主会话叫起来)

⛔ 已退役(2026-09-30)

本件(落地清单·唤醒回路)的内容已并入 → E:/ProgramData/.workbuddy/skills/multi-session-collab/references/architecture.md(协作机制的唯一权威文档) ⇒ ⛔ 别再引用本件做判断(曾因它把旧结论当现状);本件只作历史沿革留档,⛔ 已不再维护。 依据:用户 2026-09-29 定案「只有一份架构文档」「一切迭代都在 skill 内」「⛔ 不在工作区或别处另开平行文档」。

2026-09-29 · 半页。只讲一件事:怎么让常驻程序在"有活"时把主会话叫起来。 用户已确认架构(hook 驱动"继续",⛔ 不轮询);本文只补最后一环,并把它涉及的权限面摆明。

一、回路全貌(三段,前两段已就位)

① 协作会话收尾 ──SessionEnd 钩子──→ 写 gate-done.stamp              ✅ 已实现
② 程序(常驻)读队列,一次一条:
     有 claim ⇒ gate=busy ⇒ ⛔ 不放行(="监控后台停")             ✅ 已实现(实测正确)
     gate=free ∧ 有队首 ⇒ 写 NEXT.md(只此一条)                    ✅ 已实现
③ 🔴 **缺这一环**:NEXT.md 出现时,**把主会话叫起来**
     ⇒ 程序开不了会话;唯一落点 = **gateway 定时任务接口**(排一次一次性任务)

二、权限影响评估(三点,据实)

项 评估
新增能力 程序获得「用网关口令创建一个一次性定时任务」的能力 ⇒ 这是唯一的写操作(其余仍全程只读)
为什么必须 ⛔ 钩子开不了会话;⛔ 程序开不了会话;"事件驱动地叫醒"除了排期没有第二条路
风险与压制 ① 可无限排 ⇒ 用三重限流压(见三)② 隐形执行者 ⇒ 技能红线要求"纳入监管视野" ⇒ 每一次唤醒都追加登记到 tmp/supervise-inbox/wakeups.jsonl,且可一键列出/删除(wakeups 里记 task id,删除走同一个 gateway 接口)③ 口令只进程内使用,⛔ 不落盘、⛔ 不进日志

三、实现(一次做完,⛔ 不边改边重启)

程序 collabd.py 增一个函数 wake_main_session(),四道闸门全满足才动手:

闸门 条件
① 有活 NEXT.md 存在
② 闸开 gate == free
③ 去重 本次 NEXT.md 的内容哈希 ≠ 上次唤醒时的哈希(同一件只叫一次)
④ 限流 距上次唤醒 ≥ 3 分钟

⇒ 满足则:POST /api/v1/scheduled-tasks(recurring:false,prompt=主会话轮+"读 NEXT.md 只做那一条;收尾时若 NEXT.md 还在才接续"),并把 {ts, taskId, hash} 追加进 wakeups.jsonl。 终止:任务图全 done ⇒ 不再唤醒;遇阻 ⇒ 写 NEED-USER.md 并明确喊「需用户介入」。

四、需要你点头的一条

授权程序使用网关口令创建"唤醒任务"(唯一写操作;三重限流;每次登记可列出/可删;口令不落盘)。

不点头的替代:保留"由收尾会话顺手排一次"(纯白名单内,但依赖每个棒的 prompt 都带这条 ⇒ 更脆、更慢)。 ⚠️ 我的倾向:点头走程序唤醒 —— 因为你要的是"程序把主会话叫起来",而这是唯一能做到的形态;替代方案本质上仍是"靠规则提醒"。