chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)

回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
This commit is contained in:
admin committed 2026-09-24 07:51:03 +08:00
commit ce8e6ceed9
396 files changed
+66045

No files matched your search

@@ -0,0 +1,45 @@
# 覆盖网络线 · 序 ⑯ 规划棒(automation `91c53ef8`)— 运行记忆
> 用途:下一棒开工前扫一眼,确认本棒没有遗留「未落盘的状态 / 未告知的拍板」。
> ⛔ 只记高层结论与指针,不复制正文。
---
## 2026-09-17 16:36–16:5x · 第 1 次运行 —— ✅ 全部完成(出一份执行单,零改码零动服务器)
**任务**:序 ⑯「复核会合 / 中继从 Manager 拆分是否仍需要 + 给剩余在册项定序,合并成一个执行棒」。
**结果**:✅ **结论「不做」+ 出执行单** = 工作区根 `交接单_在册收尾_20260917.md`(243 行);⛔ 零代码改动、⛔ 零服务器改动、零 commit / push、零上抛;收口 6 件全办。
**核心成果(一句话)**:原方案 `会合中继拆分_取证与改造方案_20260916.md` 的四个耦合点(C1 会合地址硬编码在 Worker env / C2 中继落点 = Manager loopback + 两端同号 / C3 可达性登记磨掉「经谁中转」/ C4 控制面 PG 走同一隧道)与两步改造(S3 回环别名 / S4 中继独立成单元 + 会合可换机)**逐条已被覆盖,未覆盖部分 = 无** ⇒ **判「不做」**,方案文档头部加状态块(正文未改,存档)。剩余在册四条**定序为一个执行棒** = 序 ⑰:**S1** mksess 文档口径(「DB 直插」→「PG 直插」)→ **S2** 技能 `dsh-auto-handoff-chain` 三处同步**建立** → **S3** 清理 `.bak-seq7-*` → **S4** 幕 4-A 余量判据化。排序理由 = **S1 → S2 硬依赖**(S1 改 `skills/**`,S2 的镜像同步要带上它 ⇒ 共用一次 scp)→ S3(零服务副作用批,合批)→ S4(唯一动服务项,置末)。
**关键指针**:
- 产物 = **`交接单_在册收尾_20260917.md`**(243 行,纯 LF;全文 md5 **`ca13b9ded3d71268f8b0e56755d7aea4`**;**§8 前缀指纹 `bab83b7219b2669d5a6e9f1acf782e1f`**,口径 = `sed '/^## §8 回报格式/,$d' … | md5sum`)。
- 复核证据表 = 该单 **§0.1**;定序 = **§0.3**;范围外登记 = **§0.4 / §3.3**;步骤 = **§5 S0–S5**;验收 = **§6 E1–E9**;回报格式 = **§8**。
- 回报已落 `交接单_观测口径与在册缺陷_20260917.md` **§12**(§8 前缀指纹 **`3ece0f870cba67d0113a4c5f9de9d812` 未变** —— §12 在 §8 之后)。
- 参数表 **`8f08e74b026e6e5b5e1b3db813f031ae`(未变 ⇒ D1 自证)**。
**🔴 本棒留给下一棒的四条硬事实**:
1. **Q5 真实范围 = 5 个,不是 3 个** —— 除 `src/net/relay/{client,directory,main}.ts.bak-seq7-20260917-112114` 外,还有 `src/web/server.ts.bak-seq7-20260917-112114` 与 `src/worker/tunnel.ts.bak-seq7-20260917-112114`;**5 个全部 untracked**,且都是 **seq7 11:21 的过期快照**(已被序⑧/⑨/⑭/⑮ 改写作废 ⇒ **不是有效回滚点**,删除风险 = 零)。按 D2 已扩到 5 个。
2. **`04-调整方案/**` 的 mksess 旧口径⛔ 不改** —— 档案属性是**当时事实**(当时确实直插 SQLite),改写 = 销毁溯源 ⇒ 按 D1 只改操作性载体(`02-运维手册.md` + `skills/**` 命中 3 行 + 本机技能 10 行),在运维手册 R4 段写一行勘误指针。
3. **幕 4-A 判据取三档递进(D3)** —— `p95 ≤ 24 s` 健康 / `24–27 s` 临界(记录、⛔ 不判 FAIL)/ `> 27 s` 停下报告。观测样本 19.5 / 20.8 / 22.2 s ⇒ 三档把「假红 vs 预警提前量」的取舍**消解**掉。⛔ 触发回头条件时**不许自行调** `RELAY_FAILOVER_DEADLINE_MS` / `HB_SEC` / burst。
4. **`src/worker/tunnel.ts` 已是生产死路径**(47 同机不建隧道、106 走 `wss://` ⇒ SSH 隧道代码 dormant)—— 是否删 = **独立决策**,本单按 D4 ⛔ 未处置,只登记。
**下一棒登记**:automation id **`067b0892-964e-4deb-bf84-4f1c37bebea8`**「覆盖网络线-序17执行棒-在册收尾(mksess口径/技能三处同步/Q5清理/幕4A临界项)」(一次性,`scheduledAt` = 2026-09-17 **16:44** = 收口 +~4 min,`nextRunAt` = 1789634640000)。已用**陈述句**告知用户,并落盘到入口 §0 / §2、`交接单` §12、`.workbuddy/memory/2026-09-17.md`。
**边界遵守**:⛔ 未 commit / 未 push(HEAD 仍 `640813e`)|⛔ 零代码改动、零服务器改动(未对 47 / 106 执行任何命令)|⛔ 未改参数表、未动 `RELAY_FAILOVER_*` / `HB_SEC` / burst|⛔ 未动 Q4(只登记,属待用户拍板)|⛔ 未为 presence / 房间层 / 内容分发定序(只登记候选与优缺点)。
**收口清单核对**:① 释放锁 ✅ ② 陈述句告知 + 登记下一棒 ✅ ③ 入口 §0 + §2 推进到序 ⑰ ✅ ④ 工作区日志 `.workbuddy/memory/2026-09-17.md` ✅ ⑤ 交接单追加 §12 ✅ ⑥ 本文件 ✅。
---
## 运行须知(给后续复跑的同类棒)
- 本 automation **是一次性的**,已执行完毕 ⇒ ⛔ 不要重启它;若需再跑,另建新棒。
- 开工前先跑 `state.py` + 扫最新两条 automation memory(防漏掉别人留下的拍板)。
- 🔴 **规划棒的取证上限 = 3 条命令族**:本棒用的是「代码仓 grep 耦合物件」「`git ls-files` 自证 untracked」「`find` 枚举 `.bak`」—— 这三条就足以定死「不做」的结论。⛔ 别用"读源码通读"代替(既慢又贵)。
- 🔴 **`git ls-files src/net/relay | wc -l` = 0** 是 Q4(untracked 留档缺口)的**最快自证**。
- ⚠️ 复核结论要落成**二选一**并把证据写进文档(⛔ 不是"我看了一下,应该不用做了");被复核的方案文档**头部加状态块、正文不改**(历史档案属性)。
- ⚠️ **指标口径**:本工作区「§8 前缀指纹」= `sed '/^## §8 回报格式/,$d' <单> | md5sum`(⛔ 不是全文件 md5,也不是别的 §-节名);参数表口径 = `sed '/^## §10 指纹/,$d' <表> | md5sum`。