diff --git a/.workbuddy/memory/2026-09-26.md b/.workbuddy/memory/2026-09-26.md index f220b08..e0b4eb3 100644 --- a/.workbuddy/memory/2026-09-26.md +++ b/.workbuddy/memory/2026-09-26.md @@ -162,3 +162,13 @@ ⛔ 未改 `D:/github/dsh_shenxian/src/**` 一行(只读取证);⛔ 未 ssh 真机做任何变更(本棒纯记录落地 + 收口);⛔ 未碰他线 `src/web`·`routes/im.ts`。 +### 收口(06:4x–06:5x) + +- **提交** `2a1226c`(`docs(平台线): 版本管理与包更新机制 拍板落地(C案→B案 · 执行棒登记)`)→ **推送** `a38d8b6..2a1226c master -> master`(rc=0)→ **对账** `git rev-list --left-right --count origin/master...HEAD` = **`0 0`**、`HEAD == origin/master` ✅。 +- **仅 3 件入库**:本件 + 本线入口 + 本日志;`git diff --cached --name-only` 自查**无** `tmp/`/中间产物/`05-交接单`;⛔ **未 `git add -A`**、⛔ **未代提交他线**(`CODEBUDDY.md`/`state.py`/`.codebuddy/rules/server-ops.md`/`.workbuddy/memory/MEMORY.md`/他线 `接续入口_*` 全部未纳入)。 +- **文档库侧**:本线唯一改动 = `$DOC/05-交接单/README.md §一` 第 44 行;`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**:`35e1bfbc`(第 36 棒入口)= **`PAUSED`** ✅;`da73ab87`(执行棒)= **`ACTIVE` · `2026-09-26T06:52`** ✅(收口 06:44 + 8 min,落在 5~8 min 窗口内)。 +- **锁**:域锁 `p36d-platform-versioning` 反序释放(先 `--release-publish` → 最后 `ME="p36d-platform-versioning" --release-exec`)。 +- 📄 收口证据全文(命令原文 + 输出原文 + 退出码)⇒ 本件 **§9**。 + + diff --git a/交付物/版本管理与包更新机制-现状与方案-20260926.md b/交付物/版本管理与包更新机制-现状与方案-20260926.md index a8401ac..d36922e 100644 --- a/交付物/版本管理与包更新机制-现状与方案-20260926.md +++ b/交付物/版本管理与包更新机制-现状与方案-20260926.md @@ -159,3 +159,90 @@ - 测试跑 `lib/` ⇒ **改完必 `build`**(否则新旧产物混跑,症状像"注入无效")。 - ⛔ 不改 `07-scripts/`;⛔ 不动 `config`/`crypto`/`isolation`/`index` 等机制层其他文件(只碰必需者且先报告)。 - 生产变更(`restart dshs-worker` / 47)可直接做,**动手前一句话说明**;不可逆操作先报清单。 + +--- + +## 9 收口记录(2026-09-26 06:36–06:5x · 会话 `p36d-platform-versioning`) + +> 口径:每条附**命令原文**+**输出原文**+**退出码**。⛔ 未 ssh 真机、⛔ 未改 `src/**`、⛔ 未碰他线在途改动。 + +### 9.1 落盘四处(命令 + 输出 + 退出码) + +| # | 落点 | 命令(节选) | 输出原文 | rc | +|---|---|---|---|---| +| 1 | 本件 §5 + §8 | `patch-c3.py`(步 1) | `DOC_S5_OK` / `DOC_S8_OK` | 0 | +| 2 | 入口 §0 拍板行 | Edit 精确片段替换(锚 = `- 🔴 **2026-09-26 06:29–06:5x|用户授权`) | `Successfully edited file` | 0 | +| 3 | 入口 §2 续作二/三注 | Edit(锚 = `⛔ 平台侧问题(拉取超时/台账滞后)**只报告不改码**。详解 ⇒ 交付件 **§9**。`) | `Successfully edited file` | 0 | +| 4 | `$DOC/05-交接单/README.md §一` 第 44 行 | Edit(锚 = `🔴 **2026-09-26 06:29 用户授权「你就是平台线」⇒ 已出《版本管理与包更新机制-现状与方案-20260926》**`) | `Successfully edited file` | 0 | +| 5 | `.workbuddy/memory/2026-09-26.md` | Edit(追加「第 36 棒续作三 · 拍板落地棒」节) | `Successfully edited file` | 0 | + +**校验读数**(`wc -c` / `grep -c`): + +``` +入口 344849 B / 986 行 grep -c "2026-09-26 06:36" = 2 grep -c "续作三" = 1 +本件 14xxx B grep -c "已拍板(2026-09-26 06:36" = 1 grep -c "^## 8 执行棒细化" = 1 +README 62575 B grep -c "06:36 用户拍板" = 1 grep -c "da73ab87" = 1 +日志 20091 B grep -c "p36d-platform-versioning" 节 = 1 +``` + +### 9.2 🔴 事故:入口被清 0 字节(已自愈 · 无损)+ 新增铁律 + +- **触发**:`tmp/p36/patch-c3.py` 第 70 行 `open(P, "wb").write(b"\n".join(parts))` —— `NEW0` 漏 `.encode("utf-8")`。 +- **输出原文**:`Traceback … line 70, in \ TypeError: sequence item 11: expected a bytes-like object, str found`,`RC=1`。 +- **真实伤害**(比 traceback 严重得多):复合式求值顺序 = **先 `open(P,"wb")`(此刻文件已被截断为 0)→ 再求值 `join()`** ⇒ join 抛错时**入口已经没了**。若只看 traceback 会误判成"没写进去"。 +- **发现**:`wc -c 接续入口_插件投放与分库线_20260922.md` ⇒ `0`。 +- **复原**(无损): + +``` +git checkout -- "接续入口_插件投放与分库线_20260922.md" # rc=0 +wc -c → 341330 ; wc -l → 968 ;grep -c "2026-09-26 06:29" → 1 +git hash-object → 1d44073bdd40b4a3becfd45f2cd26f4cb78796ad +git rev-parse HEAD: → 1d44073bdd40b4a3becfd45f2cd26f4cb78796ad (逐字节一致) +git status --porcelain → (空 = clean) +``` + 前提核对:HEAD 版**含** 06:29 规划棒行、`git fetch` 后 `git rev-list --left-right --count origin/master...HEAD` = `0 0` ⇒ 复原不丢任何已落内容。 +- 🔴 **新增铁律(已写入入口 §0 事故留档)**:改共享文件**只准** ① Edit 精确片段替换,或 ② 「**先算全量 bytes 再一次性写**」;⛔ **禁用 `open(...,"wb").write(表达式)` 复合式**(表达式求值前文件已被清空)。同源风险 = **任何"先 open 再算内容"的写法**。 +- **补救方式**:改用 Edit 工具做四处插入,不再走整文件覆盖。 + +### 9.3 提交 / 推送 / 对账(命令 + 输出 + 退出码) + +``` +$ git add -- "交付物/版本管理与包更新机制-现状与方案-20260926.md" \ + "接续入口_插件投放与分库线_20260922.md" ".workbuddy/memory/2026-09-26.md" +$ git -c core.quotepath=false diff --cached --name-only +.workbuddy/memory/2026-09-26.md +交付物/版本管理与包更新机制-现状与方案-20260926.md +接续入口_插件投放与分库线_20260922.md ← 仅 3 件,⛔ 无 tmp/、⛔ 无中间产物、⛔ 无 05-交接单 +$ git diff --cached --stat + 3 files changed, 94 insertions(+), 1 deletion(-) + +$ git -c core.autocrlf=false commit -F - → RC=0 ;HEAD = 2a1226c +$ git push origin master → RC=0 +To work.alotbuy.com:maogeigei/dsh_shenxian_workspace.git + a38d8b6..2a1226c master -> master + +$ git fetch -q origin ; git rev-list --left-right --count origin/master...HEAD +0 0 ← ✅ 对账归零 +$ test "$(git rev-parse HEAD)" = "$(git rev-parse origin/master)" → ✅ 一致 +``` + +⛔ **未 `git add -A`**;⛔ **未代提交他线在途改动**(`CODEBUDDY.md` / `state.py` / `.codebuddy/rules/server-ops.md` / `.workbuddy/memory/MEMORY.md` / 他线 `接续入口_*` 均**未**纳入)。 + +### 9.4 文档库侧 + +- 本线本轮在文档库**唯一**改动 = `$DOC/05-交接单/README.md §一` 第 44 行。 +- `git check-ignore -v` ⇒ `.gitignore:45:dsh-server-docs/05-交接单/` ⇒ **整目录被忽略、未被跟踪** ⇒ **按既有口径不入库**(⛔ 未 `git add -f`)。 +- 推送前对账 `07-scripts/docs-sync-check.sh` ⇒ **`结果: 存在差异 ❌`**(一致 268 / 内容不一致 **21** / 仅本地 **4** / 仅服务器 0)。🔴 **差异面全为既有在途**(`07-scripts/*`、`08-skills/*`、`CODEBUDDY.md`、`01-规范/09`、`02-架构设计/*`、`04-调整方案/*`、`05-交接单/*` 等**他线在改**)⇒ **⛔ 非本线引入、⛔ 本线不动不属于自己的文件**;结论 = **如实记录、交文档库同步线处置**。 + +### 9.5 automation 状态 + +| id | 名称 | 期望 | 实测 | +|---|---|---|---| +| `35e1bfbc-d247-4db2-9d90-b0580793736f` | 插件投放与分库线-第36棒-执行棒 | `PAUSED` | ✅ `PAUSED` | +| `da73ab87-fb2f-47f0-a8d8-8ea3ad35eb19` | 版本管理与包更新机制-执行棒 | `ACTIVE` · `2026-09-26T06:52` | ✅ `ACTIVE`(排期 = 收口 06:44 + 8 min,落在 5~8 min 窗口内) | + +### 9.6 锁 + +- 域锁 `p36d-platform-versioning`(域 = `交付物` / `.workbuddy` / 本线入口 / `05-交接单`)= **持有中**,反序释放:先 `--release-publish`,**最后** `ME="p36d-platform-versioning" --release-exec`(⛔ 不带会话名 ⇒ fail-closed 拒)。 +- 复用既有会话名 `p36d-platform-versioning` 领发布锁(`--claim-publish "p36d-platform-versioning"` → `✓ 已持发布锁`,rc=0)。 +