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,73 @@
# automation `ca054445-bb69-44f4-9d5d-3736da219dea` · 执行记忆
> 本文件只记**高层摘要**(做了什么 / 结论 / 遗留),⛔ 不放全文与正文细节。
> 详细见 `.workbuddy/memory/2026-10-01.md §十五` 与 `交付物/会话哑掉线-收尾报告-20261001.md §七`。
## 2026-10-01 09:28(首次运行 · 本自动化因「上一棒达阈值交接」而生)
- **任务**:修 `multi-session-collab/scripts/collabd.py::_deaf_sids()` 的「永久判哑」缺陷 + 补回归用例。
- **成果**:
1. `_deaf_sids()` 判据收窄为「**每个会话取它最新一天**那份日志 ≥9.5 MiB 才判哑」(旧=今天+昨天任一命中即判哑);保留"今天没日志 ⇒ 退到昨天"的兜底。
2. `selftest.py` +1 条回归用例(含精确集合断言);`_fake_cfg` 增 `day_offset`;`_prepare()` 每轮清 `tmp/selftest/fake-cfg`(防跨轮污染)。
3. 顺带修掉一条**环境假红**:「僵尸对账」用例补上「无 IN_PROGRESS 运行」前提的 SKIP(自动化会话跑自测时必然触发)。
- **验收读数**:`python selftest.py` ⇒ **PASS 38 / FAIL 0**(基线 37 + 1),连跑两次均绿;生产日志只读对比 7 → 6 条哑,唯一收窄掉的正是 `a202550c`;`f8a792ab` 仍判哑;主会话解析结果**未变**。
- **锁**:机制层 ⇒ 全局独占,收尾已 `--release-exec`。
- **遗留**:未 `commit`/`push`;技能「本机 → 服务器」单向推 + md5 双端对账未做(未获指令)。
## 2026-10-01 09:43(同会话后续追问 · 非本自动化原始任务)
- **用户追问**:接续会话是否真有用、真解决问题?同一会话持续聊天靠上下文压缩能否正常执行协作任务?
- **做法**:只读取证(**⛔ 未跑 `--tick`、未动生产日志一字节、未改代码、未持锁**)。分析 `logs/2026-10-0{9,10}/sdk/conversations/` 的会话诊断日志构成、涨速、`compact-summary` 出现与撞顶的关系。
- **结论(高层)**:
1. 接续会话=**复位**两个独立失效(单轮成本↑ / 界面静默哑掉),**非止血**;治本=压单会话输出体量。
2. **压缩替代不了哑掉那一半**:实测反证 —— 出现 `compact-summary` 的会话 **5/5 全部撞满 10 MiB**,且都是"压缩×2"后照撞;反例是压缩×4 却仅 1.8/7.5 MB。
3. 日志 **97.3% 的字节**来自同一条 `event-machine:dispatch` 流式事件(按工具调用进度投递,与历史长度无关)⇒ 压缩动 payload、日志写 side-effect,是两个量。
- **落盘**:`.workbuddy/memory/2026-10-01.md §十七`(含全部实测读数)。
- **处置**:本会话已越 5 MiB 阈值 ⇒ 把本轮结论**并入既有接续会话 `3277fc39`**(让其方案单新增第⑥节"接续机制有效性论证");⛔ 未新建自动化。
- **遗留**:同上(未 `commit`/`push`、未推服务器副本)。
## 2026-10-01 10:07(第三次唤醒 · 本会话已撞顶哑掉 ⇒ 交接)
- **触发事实**:本会话 `5f607d3e` 的单会话诊断日志达 **10,485,717 B / 上限 10,485,760 B**(差 43 B,不足一行 244 B);`mtime` 停在 09:56,此后 11 分钟我跑了 6 次工具调用而**字节数零增长** ⇒ **确已撞顶哑掉(拒写 EPERM),用户看不到本会话输出**。
- **本轮产出(R8 答复「是不是跟会话协作机制有关系」)**:
1. **相关但不是主因** —— 协作程序注入只占 `f8a792ab` 30 条 user turn 中的 **3 条(10%)**;`5f607d3e` 11 条中 **0 条**;`345e6839`、`a202550c` 各 0 条。
2. 协作机制的真实放大方式是**「开新会话」**(每个新会话复制一份宿主注入循环 ⇒ N 份日志),**不是「投递」**;今日 `automation_runs` 共 **9 次**、`ca054445` 为 **`once`** 型 ⇒ **不存在排期洪流**。
3. **反证**:撑爆那条会话的三项(后台任务失败通知驱动 / `tool_call_update` 无闸落盘 / 82~195 倍放大)**都与协作无关**。
4. 协作机制唯一"有罪"=**没有节流**(上报频率若上去会从 10% 变主项)⇒ 待观察风险,非当前事故因。
5. 治理优先级:🔴 `tool_call_update` 进宿主 verbosity 名单 > 🟡 降宿主注入频率 > 🟢 协作侧节流。
- **落盘**:`.workbuddy/memory/2026-10-01.md §二十三`(含全部实测读数与优先级表)。
- **交接**:🔴 按 §G 阈值规则新建**一次性接续自动化 `98f1fd43-04ae-4cc2-a15a-e3bf28460b01`**(10:16 触发),唯一任务=把 §二十三 整理成答复交付给用户,只读不改文件 ⇒ 免抢锁。属 §F 白名单「接续会话」⇒ 免确认。
- **锁**:`--status` 已核 —— **无全局执行锁、无占位锁** ⇒ 本会话**不持锁**,无需释放(服务器侧 `op-lock` 属别的线 `SF-验收复跑-01`,与本线无关)。
- **顺手确认**:文档库 `04-调整方案/151-多会话协作-主会话分组方案-20261001.md`(20,176 B)**已于 09:49 由 `3277fc39` 入库** ⇒ 方案单任务**已闭环**,勿重做。
- **清理**:本轮自建的 5 个探针(`tmp/probe-collab.py` / `-hook.py` / `-list.py` / `-auto.py` / `-auto2.py`)**已删**。⚠️ `tmp/probe-autos.py`(00:36) / `-goals.py`(08:01) / `-triggers.py`(00:38) **非本会话所建**,按归属纪律**未动**。
- **遗留**:未 `commit`/`push`;技能「本机 → 服务器」单向推 + md5 双端对账未做(未获指令)。
## 2026-10-01 10:11(第四次 · 阈值设计三问)
- **用户三问**:① 为什么本会话不创建接续会话处理?② 36K 上下文是不是太低(模型支持 300K)?③ 考虑上下文与 10 MiB 日志,阈值如何设置最佳?
- **做法**:只读取证(⛔ 未跑 `--tick`、未改任何文件/代码/规则、未动生产日志、未持锁)。取数源:`automations` 表、`logs/2026-10-01/sdk/conversations/*.log`(行类型、`usage:session-scope`、`diagnostic-log:dropped`)、会话 jsonl 涨速。
- **结论(高层)**:
1. **接续会话其实已建** —— `98f1fd43`(ACTIVE/once/**10:16 触发**),在 `automations` 表核实。但钩子当轮仍报「零排期」⇒ **列为待查项**(`collabd.py:193-209` 读的正是 `next_run_at`,本应算进 `soon`;钩子取数 ≈10:08:34 晚于建单 54 秒)。
2. 🔴 **真正的缺口=没有任何机制在「快哑了」时叫停**:宿主撞顶前零告警、撞上后**直接丢行**(`5f607d3e` 09:56:17 `diagnostic-log:dropped`,3,309 行/822 KB);§G 的 36K 钩子侧检测至今待实现;`_deaf_sids()` 只管「哑了不许再投」⇒ **只做了事后拦截,没做事前叫停**。
3. 🔴 **两个时钟实测**:日志 **≈375 KB/分 ⇒ 28 分钟撞 10 MiB**;上下文 **≈6,100 tok/分 ⇒ 300K 要 47 分钟**(`totalTokens:145718`/`contextWindow:300000` @09:51:55)⇒ **日志先撞、提前 19 分钟**;会话死时上下文仅 ≈49%。
4. **36K 太低**(≈会话只活 6 分钟、28 分钟内换 ~5 次),但**低在"量错对象"** —— 该按日志定,不该按模型窗口定;⛔ 也不能按 300K 定(活不到)。
5. **换算基准:1 tok ≈ 63 B 日志**;**倾向 80K**(=日志软 5 MiB);建议写成两档阶梯:🟡软 5 MiB/≈80K tok/≈14 分钟,🔴硬 8 MiB/≈128K tok/≈22 分钟(留 20% 给交接动作烧,实测交接要 ≈1.9 MiB)。
- **落盘**:`.workbuddy/memory/2026-10-01.md §二十四`(含全部实测读数、真取舍候选表、换算基准)。
- **交接**:已把接续自动化 `98f1fd43`(10:16 触发)的 prompt **改写为交付 §二十三+§二十四 三问全文**(`mode=update`,其余字段保持)。
- **待拍板两项**(本轮⛔ 未擅自改规则,因「低阈值省 token vs 高阈值少重启」是**真取舍**):① 上下文阈值取 36K/80K/128K;② 是否把日志两档(5/8 MiB)写成主阈值。
- **锁**:`--status` 复核 —— 无全局执行锁、无占位锁 ⇒ **不持锁**,无需释放。
- **清理**:本轮自建 `tmp/probe-rate.py`、`probe-auto.py`、`probe-auto2.py` **已删**;`tmp/probe-autos.py`/`-goals.py`/`-triggers.py` 非本会话所建,未动。
- **遗留**:同上。⚠️ 本会话日志已连续 15 分钟零增长(10,485,717 B / mtime 09:56)⇒ **确已哑,用户看不到本轮输出**。
## 2026-10-01 10:17(第五次 · 规则变更:接续棒排期 5~8 ⇒ 3~4 分钟)
- **用户指令(原话)**:**「接续会话 时间缩短3-4分钟即可」**
- **理解**:接续棒 `scheduledAt` **= 收口 + 3~4 分钟**(旧值 5~8 作废)。优先级不变:`--ready-next` 输出 `✅ 可以排` 时仍按「现在+30~60 秒」。
- **执行**:机制层 ⇒ 先抢 **全局独占锁**(`5f607d3e-接续排期3-4分钟`),改完 **13 处载体**(8 skills + 5 工作区),复核后 `--release-exec`。
- skills:`agent-operating-rules/SKILL.md §7.2`(兜底 3~5⇒3~4)+ `…/references/03-多棒接力编排.md`(头块+②+模板+铁律①)+ `dsh-workflow/SKILL.md` + `…/references/01-多棒自动接力.md`(头块+标题+铁律①)+ `multi-session-collab/SKILL.md` + `…/references/architecture.md`(头块+§4 表)+ `…/references/taskgraph.md` + `…/scripts/collabd.py`(**ast 自检 ✅**)
- 工作区:`CODEBUDDY.md §7`、`.workbuddy/memory/MEMORY.md §三`、`docs/会话与接续/会话接续规范_20260916.md`、`docs/规则与载体/规则详解_红线与实证_20260924.md`、`交付物/任务图.json`
- **复核**:`CODEBUDDY.md` / `MEMORY.md` 命中 **0**;其余 `5~8` 残留**全是「旧值已作废」的历史说明句**(语义正确)。
- **⛔ 有意不改**:归档/append-only 日期日志/全文快照/3 份已退役件/`项目代码_…_20260916.md:112`(那是 `+5~8k 行` 代码行数,误命中)。
- **落盘**:`.workbuddy/memory/2026-10-01.md §二十五`。
- **交接**:接续棒 `98f1fd43` **已于 10:16:22 触发**(交付 §二十三+§二十四,⛔ 不含本次变更)⇒ 另建一次性接续棒 **`b3de69c6-81ce-4e32-8d57-7e1e17639418`**(**10:23 触发** = 收口 + ~5 分钟,**按新值首次执行**),只管交付规则变更 + 重述两项待拍板。
- **遗留**:⚠️ 技能改动**未推服务器副本**(单向推 + md5 双端对账未做);⛔ 未 `commit`/`push`。