chore(automation记忆): 35e1bfbc 补规划棒/拍板落地棒两节(含新增铁律)
- 规划棒 p36c:只读取证 + 出方案;根因 = src/worker/agent.ts:376 的 20s 超时常量被对账 :426 与下载 :508 共用;另 7 条 D2–D8 - 拍板落地棒 p36d:口径(C案=层A+B-1~B-4 → B案=层B-5,层C 不做)/落盘 5 处/提交 2a1226c→90acb1c 对账 0 0/automation PAUSED+登记/锁反序释放 - 事故与铁律:禁用 open(...,"wb").write(表达式) 复合式(open 先截断、表达式后求值 ⇒ 入口被清 0 字节,已无损复原) - 下一棒(da73ab87)必读:唯一执行单 + 第一件事为取证设备侧载体
This commit is contained in:
1 parent
90acb1c030
commit
77b9f733e6
1 file changed
+32
@@ -49,4 +49,36 @@
|
||||
3. **响应是 gzip** —— 不加 `--compressed` 时 `grep` 只报 `Binary file matches`、"看起来没输出" ⇒ 取 JSON 一律 `--compressed`。
|
||||
4. **端口口径**:平台 Web = `127.0.0.1:3080`;`20001` = **该用户实例**;`18081` = centrifugo;`25022–25063` = relay dial pool ⇒ ⛔ 别把实例端口当平台端口。
|
||||
|
||||
## 规划棒(2026-09-26 06:29–06:5x · 会话 `p36c-platform-versioning`)
|
||||
|
||||
用户:「**你就是平台线,看看如何修复(还有 worker 如何更新包,是不是应该有个机制,现在的网络结构各种节点和设备,如何进行版本管理和包更新机制)**」
|
||||
|
||||
- **只读取证 + 出方案,⛔ 未改 `src/**` 一行**;产出 `$WS/交付物/版本管理与包更新机制-现状与方案-20260926.md`(**=下一棒唯一执行单**)。
|
||||
- **结论**:机制骨架**齐全**(worker 启动即拉+定时轮询、`POST /shared-layer/pull`、`.manifest.json` 权威清单、`.node-sync-reports.json` 对账快照)⇒ ⛔ 不是"没有机制"。
|
||||
- **根因 D1**:`src/worker/agent.ts:376` 的 `20 s` 超时常量被**对账面 `:426` 与下载面 `:508` 共用** ⇒ 2.0 MB 包跨云拉不完。另 7 条 D2–D8(无退避/失败历史只剩最新/版本只留一份/无 channel/**设备不在分发链上**/无全局矩阵视图/台账状态失真)。
|
||||
- **方案三层**:层 A 止血 / 层 B 版本管理机制 / 层 C 跨区拓扑。⛔ 撞 1 项待拍板 ⇒ **未登记下一棒**。
|
||||
|
||||
## 拍板落地棒(2026-09-26 06:36–06:5x · 会话 `p36d-platform-versioning`)
|
||||
|
||||
用户拍板原话:「**C 方案,然后B,这次就用版本更新机制去更新网络上各节点,子节点和设备**」
|
||||
|
||||
| 项 | 结果 |
|
||||
|---|---|
|
||||
| 口径 | 用户说的 **C 案** = 层 A + 层 B-1~B-4(版本目录化/channel/定向钉版/**设备纳入**);随后 **B 案** = 层 B-5(全局矩阵视图);**层 C 本次不做**;**收尾真跑分发到 47 本机 worker + 106 + 设备**;**执行棒第一件事 = 取证设备侧载体**(D6) |
|
||||
| 落盘 5 处 | 本件 §5(改「已拍板」)+ **§8 执行棒细化**(S1 止血→S2 完整版本管理→S3 全局矩阵视图→S4 真跑分发)/入口 §0 拍板行 + §2 续作二·三注/`05-交接单/README.md §一` 第 44 行/当日日志 |
|
||||
| 🔴 **事故(已自愈 · 无损)** | `patch-c3.py` 复合式 `open(P,"wb").write(b"\n".join(parts))` —— Python **先求值 `open()`(立即截断)→ 再求值 `join()`** ⇒ join 抛 `TypeError` 时**入口已被清 0 字节**(只看 traceback 会误判"没写进去")。发现 = `wc -c` = `0`;复原 = `git checkout --`,`git hash-object` == `git rev-parse HEAD:<file>` = `1d44073b…` **逐字节一致**(341,330 B / 968 行,HEAD 含 06:29 行、对账 `0 0`)⇒ **零丢失** |
|
||||
| 🔴 **新增铁律** | 改共享文件**只准** ① Edit 精确片段替换 或 ② **先算全量 bytes 再一次性写**;⛔ **禁用 `open(...,"wb").write(表达式)` 复合式**(同源风险 = 任何"先 open 再算内容"的写法) |
|
||||
| 提交/推送 | `2a1226c` → `90acb1c`,两次均 push(`a38d8b6..2a1226c` / `2a1226c..90acb1c`),对账 **`0 0`**、`HEAD == origin/master` ✅ |
|
||||
| 仅 3 件入库 | 本件 + 本线入口 + 本日志;自查**无** `tmp/`/中间产物/`05-交接单`;⛔ 未 `git add -A`、⛔ 未代提交他线(`CODEBUDDY.md`/`state.py`/`MEMORY.md`/他线入口 全部未纳入) |
|
||||
| 文档库侧 | 唯一改动 = `05-交接单/README.md §一` 46→62575 B;`git check-ignore -v` ⇒ `.gitignore:45` 整目录忽略、未跟踪 ⇒ **按既有口径不入库**(⛔ 未 `-f`)。`docs-sync-check.sh` = ❌(一致 268/不一致 **21**/仅本地 **4**/仅服务器 0),差异面**全为他线在途**(`07-scripts/*`·`08-skills/*`·`CODEBUDDY.md`·`01-规范/09`·`02-架构设计/*`·`04-调整方案/*`·`05-交接单/*`)⇒ **非本线引入、交文档库同步线处置** |
|
||||
| automation | 本 automation `35e1bfbc` = **`PAUSED`** ✅;✅ **已登记执行棒 `da73ab87-fb2f-47f0-a8d8-8ea3ad35eb19`**(一次性 · `2026-09-26T06:52` = 收口 06:44 + 8 min,落在 5~8 min 窗口内)= **`ACTIVE`** |
|
||||
| 锁 | 域锁 `p36d-platform-versioning` **反序释放**:`--release-publish` ⇒ `✓ 已释放发布锁(归属已核)` rc=0 → `ME="p36d-platform-versioning" --release-exec` ⇒ `✓ 已释放域锁` rc=0。⚠️ 提醒「另有 1 把锁属**他人**(`im-reverse-channel`),按 R9 未动」 |
|
||||
|
||||
### 下一棒(`da73ab87`)必须知道
|
||||
- **唯一执行单** = `$WS/交付物/版本管理与包更新机制-现状与方案-20260926.md`(§6 八段 + **§8 细化**)⇒ ⛔ 别按入口 §2 下方「第 36 棒」旧范围开工。
|
||||
- **第一件事 = 取证设备(桌面端)侧载体**(有 ⇒ 按同一对账协议接入;没有 ⇒ 具名报告缺口 + 最小接入方案,⛔ 不硬造)。
|
||||
- **S1 完成判据** = `w-106` 对账快照 `stale` 不含 `dsh-plugin-mcn-suite`、`failed` 为空。
|
||||
- ⛔ **别用 `open(...,"wb").write(表达式)` 复合式改共享文件**(本轮已实测吃掉一整份入口)。
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user