docs(平台线): 补 §9 收口记录(命令原文+输出原文+退出码)
- 本件新增 §9:落盘四处 / 事故与无损复原 / 提交推送对账 / 文档库侧 / automation / 锁
- 日志追加上节「收口(06:4x–06:5x)」:提交 2a1226c · 推送 · 对账 0 0 · 仅 3 件入库 · 未碰他线
判据留档要点
- 入口被清 0 字节事故:复核命令 git hash-object == git rev-parse HEAD:<file>(1d44073b…)
- 新增铁律:禁用 open(...,"wb").write(表达式) 复合式(open 先截断,表达式后求值)
- docs-sync-check ❌ 差异 21+4 全为他线在途,非本线引入
This commit is contained in:
1 parent
2a1226ca13
commit
90acb1c030
2 files changed
+97
No files matched your search
@@ -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 <module>\ 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 <file> → 1d44073bdd40b4a3becfd45f2cd26f4cb78796ad
|
||||
git rev-parse HEAD:<file> → 1d44073bdd40b4a3becfd45f2cd26f4cb78796ad (逐字节一致)
|
||||
git status --porcelain <file> → (空 = 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)。
|
||||
|
||||
Reference in new issue
Block a user