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/ 知识文件,按口径入库)
This commit is contained in:
admin committed 2026-10-10 23:13:22 +08:00
1 parent 30b46dbd0c
commit c1b5e4d966
735 files changed
+153192 -2415

No files matched your search

@@ -0,0 +1,55 @@
# 自动化记忆 · `c7e9824a`(接续 · 机制线(钩子锚点真实投递取证))
## 2026-09-29 13:56–14:00 · 首轮执行(本棒)· 结论:**判据成立,N16 判 done**
**任务**:取证「把 `--once` 改挂 `UserPromptSubmit`」这条锚点在**真实投递路径**上是否跑通。
**判据成立**(三条独立读数):
1. `tmp/supervise-inbox/collabd-once.stamp` = `2026-09-29 13:56:31` —— 晚于上棒手动自测的 13:46:40,且逐秒等于本棒会话起始时刻。
2. 产物 `digest.md`/`queue.json`/`queue.md`/`collabd-state.json` mtime 同步刷新为 13:56:37(整轮 5.4 s)。
3. 宿主日志确有该次投递:`[2026/9/29 13:56:31.675] [HookExecutor] spawn pid=53456 … timeout=20000ms cmd=…/wb-result-hook.py`,随后 `code=0 elapsed=5431ms`。
4. 零副作用:`wakeups.jsonl` 仍 1 行。
**本棒最大发现(纠偏)**:`交付物/任务图.json` 落后于宿主 `automation_runs` —— **N13 早已 done**(run `e370ca8d`:B2 修好并上生产)、**N11 早已收口**(run `2e46b331`+`cae3e6b3`+`b4dd9b22`)却都仍记 `running` ⇒ `NEXT.md` 把已完成项当队首反复推荐。已判 done 并出队。
**回写**:`任务图.json` → `2026-09-29T14:00`(N16/N13/N11 判 done;N8 deps 追加 N14;N14 派棒转 running;notes +2,含「看板不纠偏=程序持续推荐废件」机制观察)。
**下一棒**:已派 `744aeb75` @14:07「N14 派活 · 手机接入线:B2 修好后复跑 V1 + 判 B1(跨源)真伪」,cwds = `E:/ProgramData/AIProject/ai1net-dsh-anywhere`。
**锁**:4 键窄域(`交付物`/`.workbuddy`/`tmp`/`skills/multi-session-collab`)RC=0 抢到,收尾 `--release-exec "机制线-接续-1356"` RC=0。`.locks` 仅剩 11:30 泄漏锁(R9 未动)。
**上抛(未闭合)**:① `SessionEnd` 两日零投递,要生效恐需完全重启宿主;② 11:30 泄漏锁占着 `ai1net-dsh-server/` 粗域 ⇒ §1.5 的「默认粗域」在本工作区等于全域独占,治本应改按子目录声明;③ `digest.md`「服务探针:不通」是假阳性。
**复用要点(给后续棒)**:判「钩子是否真被投递」只看**宿主 `HookExecutor spawn` 日志 + 程序台账**,⛔ 不看「提示里出现摘要块」(那是宿主 `WorkbuddyUserPromptService` 侧注入,非钩子);宿主 run 结论读 `E:/ProgramData/.workbuddy/workbuddy.db` 的 `automation_runs`(**只读**,列 = `thread_id/automation_id/status/thread_title/source_cwd/...`,⛔ 无 `started_at`)——看板对账必用它。
## 2026-09-29 16:24–16:45 · 本棒(机制线):**从"只分析"转为"直接落地修复"**
**触发**:用户判定「每次不能只分析 要给决绝方案」⇒ 本棒不再出诊断,直接改程序。
**做了什么**:改 `~/.workbuddy/skills/multi-session-collab/scripts/collabd.py` **19 处**(P1 在跑判据 / P2 未做 / P3 探针清零 / P4 认领回写闭环 + 受阻清单 / P5 认领不绑人 + 同线互斥 / P6 busy 恒假)。走**断言式补丁**(锚点 `count!=1` 即整份不写盘 + `ast.parse` 门禁)。备份 `tmp/bak-collabd-20260929/`。改前 md5 `7630832414bb…` → 改后 `74c603d75e9f6f0c225c6574982885cb`。
**两个实测事实(⛔ 推翻原设计假设,后续棒别再照旧假设)**:① `automation_runs.status` **54 行全 ACCEPTED、零 IN_PROGRESS**;② 一次性棒跑完 `next_run_at` **全是 0/None** ⇒ **唯一可得的「有人在跑」信号 = `sessions.status='working'`**(取值域:archived/completed/error/working)。
**验收(实测)**:连跑两轮 `--once` 均 `rc=0`;`queue.json` `head=null`/`blocked={N9}`;`NEXT.md` 不再生成;`READY.md` 与 blocked 不再自相矛盾;`verdict` **首次**达「🔴 中断/脱节 —— 没有任何会话在跑」。
**判「完成」的边界**:机制修好了,但**需求(N9/N10)没动** —— N9 卡在**泄漏锁**上(持锁会话 15:36 已终结),按 **R9** 须用户授权处置。已写 `tmp/supervise-inbox/NEED-USER.md` + 把 N9 标进 `blocked.json`(⛔ 解锁后要记得摘掉,否则 N9 永不出队)。
**越界未做**:P2「恢复不依赖用户消息的定时巡检」—— `§1.5 F` 白名单里没有「监管轮/巡检」⇒ 须用户确认,⛔ 不自行建自动化。
**复用要点**:① 改 collabd 一律用断言式补丁 + `ast.parse` 门禁;② `Path.write_text` 在 Windows **静默转 CRLF** ⇒ 写完必查 `md5sum` 与内存 md5 是否一致,不一致就按 `newline="\n"` 归一化;③ **Read 的行号切分与本文件真实字节不一致**(长行会被折)⇒ 锚点必须先用 `repr()` 核过。
## 2026-09-29 20:07–20:25 · 本棒第二轮 · 复盘「16:34→20:07 四小时静默」并再修 6 处
**触发**:用户「所以还是从16:34一直发呆到现在」⇒ 先实测(⛔ 不推断),再**直接落地修复**。
**实测证据**:`sessions` 表 15:36 之后唯一活动会话=本会话(20:07);`wakeups.jsonl` 末条 `15:34:05`;inbox 产物 mtime 冻在 `16:31` ⇒ **那 4 小时零运行、零投递、零排期**。
**四条原因**:① 全库 41 条 ACTIVE 只有 2 条有未来触发点且都不是本线,心跳是 PAUSED ② **`--once` 挂 `UserPromptSubmit` ⇒ 没人发 prompt 就一次都不跑**(结构) ③ **我上一轮加 `blocked.json` ⇒ `NEXT.md` 被删 ⇒ 唤醒回路触发条件失效**(我的副作用) ④ **探针"恢复"仍会清零 idle**(我 P3 漏了这半边)。
**再修 6 处**(`collabd.py` md5 `74c603d7…` → `128dff1395a7f31b500a8fc8d653a155`):D1 `idle` 只认真成果 / D2 受阻 ⇒ 仍写 `NEXT.md`(⛔ 不含时间戳) / D3 唤醒回路加第 5 类触发(停滞·可派未派,粗粒度哈希 ≤每 30 分钟一次) / E1 派活模板加「必同建看门狗(+30 分钟一次性)」。
**实证**:`wakeups.jsonl` 当场新增 `20:09:40 http=200 ok=true`(受阻通报被投出去)⇒ 静默已解。
**本轮** **未做(唯一真缺口,属用户决定)**:**排期** —— 「钩子开不了新会话」+「程序只在有人提交 prompt 时跑」⇒ 没有宿主排期就是确定性静默。已作为**唯一一问**上抛(恢复每小时心跳 / 低频兜底 + 每棒看门狗)。⛔ 未自行恢复 PAUSED 的心跳(`§1.5 F`:巡检类须用户确认;且该心跳当初正因"啥都用自动任务"被叫停)。
**仍在等(上一轮问的,未回)**:N9 泄漏锁的处置授权(R9)。