chore(工作区): 第 36 棒续作收口(A2 实例进程内面达成 · A8 改判)
- 拍板①「A」:实例一直在跑(实时视图 running@20001);进程内 /mcn/api/accounts 200 · total:5 ⇒ A2 实例进程内面达成。纠正上一棒:其判「stopped」所据 PG dsh_instances.status 是滞后失真 - 拍板②「worker 用插件更新机制」:机制已落地且在跑(agent POST /shared-layer/pull + 定时轮询) 真机对账快照 w-106 @23:52:11:stale:[mcn-suite] + failed:[timeout] ⇒ 106 自主拉取成立、该件拉取超时失败 ⇒ A8 由「未取证」改判为「机制在跑 · 该件超时」 - 平台侧问题(拉取超时 / 台账滞后)只报告不改码 - 收尾:R4 临时会话 DELETED=1 / POC_LEFT=0;未启动未停止任何实例
This commit is contained in:
1 parent
6ece092782
commit
df876aec90
4 files changed
+145
No files matched your search
@@ -9,6 +9,11 @@
|
||||
|
||||
## §0 状态(**最新一行 = 执行依据**)
|
||||
|
||||
- 🔴 **2026-09-26 00:17–00:4x|第 36 棒 续作(用户两条拍板落地,`p36b-exec-plugin-dataline`)—— A2「真实例进程内」面 ✅ 达成 · A8 改判「机制在跑 · 该件拉取超时」· ⛔ 本条不新增下一棒** ——
|
||||
**拍板① = A(启动实例取进程内读数)**:🔴 **纠正上一棒** —— 实例**一直在跑**(端口 `20001`;实时 `GET /api/admin/users/<uid>/dsh/status` ⇒ `running:true`),上一棒所据 **PG `dsh_instances.status=stopped` 是滞后失真**。⛔ 本棒**未启动、未停止**任何实例。**进程内读数**:`curl --compressed -H "Cookie: dsh_token=<实例 token>" http://127.0.0.1:20001/mcn/api/accounts` ⇒ **`200`** + 13,155 B 正文(`{"ok":true,"total":5,"page":1,…,"account_name":"王微斯",…}`))⇒ `total:5` 与影子读 `hot_accounts 5=5` 一致 ⇒ **A2 全达成**。
|
||||
**拍板② = 「worker 应该使用插件更新机制」(⛔ 不是给 106 开 ssh 通道)**:机制**已落地且在跑** —— `src/worker/agent.ts:812` `POST /shared-layer/pull`(带 agent token)+ `:816-819` **启动即拉一次 + 定时轮询**;源码注释原话「**`restart dshs-worker` 就等于完成一次共享层同步,⛔ 不必再手工 scp**」;形态 = **节点主动拉(pull)+ 主节点对账告知**(`src/web/routes/business-plugins.ts:373-377`),快照落 `<sharedRoot>/.node-sync-reports.json`。**真机对账快照**(`at` ⇒ **2026-09-25 23:52:11 CST**,即我 23:22 `share 0.5.1` 之后):`w-106` · `authoritative:4` · `missing:[]` · **`stale:["dsh-plugin-mcn-suite"]`** · **`failed:[{"flat":"dsh-plugin-mcn-suite","error":"The operation was aborted due to timeout"}]`** ⇒ **106 确实在自主拉取,不是「没通道」**;但**该件拉取超时失败** ⇒ 仍为旧版 ⇒ **A8 由「未取证」改判为「机制在跑 · 该件超时失败」**。🔴 **属平台侧参数/实现问题**(2.0 MB 包跨云拉取超时)⇒ 依硬约束**只报告**(修复方向:调大超时 / 分块续拉 / 失败退避重试)。
|
||||
🔴 **另一条平台侧发现(值得单独立项)**:`dsh_instances.status` 与实时视图**不一致**(台账 `stopped`/实为 `running`)—— **它影响一切「实例是否在跑」的判断**。
|
||||
📂 读数与命令原文 ⇒ `交付物/MCN数据面接入-阶段二-切档与收口-20260925.md` **§9**;R4 收尾 `DELETE … user_agent='poc-curl2'` ⇒ `DELETED=1`、`POC_LEFT=0`。
|
||||
- 🔴 **2026-09-25 23:10–23:5x|第 36 棒 · 执行棒 收口(`p36-exec-plugin-dataline`)—— ①–④ 全达成 · ⑤「47 侧切档」达成 · ⛔ ⑤「实例重启/106」未达成 ⇒ A8 如实记「两机不一致」;⛔ 未登记下一棒(等拍板)** ——
|
||||
① ✅ **修 `canonicalJsonText()` 键序敏感**:新增 `sortKeysDeep()` + 导出 `canonicalStringify()`(对象键**递归升序**、数组**保序**),三形态归一出口全改走它 ⇒ 单测 **67/67**(新增第 59 条)+ 本机等效证明 **10/10**(含「旧算法判不等 → 新算法判等」与「字符串形态零回归」四例)。⛔ 落库原文零改动。
|
||||
② ✅ **出包 `0.5.1`**:`2,018,751 B`/**324 条目**/md5 **`56c17c7e41a18704922e18d75816da59`**;包内 `store.js` sha256 与本机逐字一致 → 上池 `200`(`compat.level=ok`)→ 台账 **`state=ready`** → 结构预演 `ITEMS=[]` → share **`200 action:"replaced" version 0.5.1`**;47 共享层 `store.js` md5 **`62384d4d…`=本机逐字一致**(`canonicalStringify_COUNT=4`);回滚素材 `0.5.0.tgz` 在位。
|
||||
@@ -455,6 +460,8 @@
|
||||
|
||||
### 🗃️ 本轮动作(**第 36 棒 · 执行棒 · ✅ 已收官 23:5x** —— 仅供追溯,⛔ 不要按它开工;**下一棒未登记(等拍板)**)
|
||||
|
||||
> 🟢 **第 36 棒续作(2026-09-26 00:17 用户两条拍板)**:**① A 案 ⇒ A2 实例进程内面达成**(实例一直 running@20001;`/mcn/api/accounts` `200` · `total:5`;上一棒所据 PG 台账 `stopped` 是滞后失真);**② 「worker 用插件更新机制」⇒ 机制已落地且在跑**(worker `POST /shared-layer/pull` + 定时拉),真机对账快照 `w-106` **`stale:[mcn-suite]` + `failed:[timeout]`** ⇒ **自主拉取成立、该件拉取超时失败** ⇒ A8 改判。⛔ 平台侧问题(拉取超时/台账滞后)**只报告不改码**。详解 ⇒ 交付件 **§9**。
|
||||
|
||||
> 📦 **第 36 棒已收官**(`p36-exec-plugin-dataline`):**①–④ 全达成**(修 `canonicalJsonText()` 键序敏感+单测 67/67 → 出包 `0.5.1`+上池+发布共享层 → 删本地 5 条冗余行 39→34 → 影子读**三表全 match、内容 34/34 差异 0**);**⑤ 仅「47 侧切档」达成**(**7 表 `platform`**,A5 达成;A2 切档后读路径全 OK)。
|
||||
> ⛔ **未达成 2 项**:A2「真实例进程内」面(实例 `stopped`,未启动 —— 直调 worker `/launch` 会绕过控制面台账,主动不做)|**106 同步+合并重启**(ssh `Permission denied (publickey)`,无通道)⇒ **A8 如实记「两机不一致」**。
|
||||
> 🔴 **③ 的口径偏差(务必先读交付件 §4.1)**:迁移工具 `SELECT *` 无 `ORDER BY` ⇒ 平台留下 `id` **较小**那份,与本地读路径(`id DESC`)**相反** ⇒ 5 组里 **2 组删的是 `id` 较大(较新)那一行**(删 40 留 20/删 28 留 27),否则 ④「内容全绿」达不成;清单已具名列出。
|
||||
|
||||
Reference in new issue
Block a user