Skip to content

v0.1.2 — 诊断钩子硬化 + bundle 版本自查方法

Choose a tag to compare

@kyle123740 kyle123740 released this 27 Sep 01:36
· 17 commits to main since this release

把「到底在跑哪一版」变成两端都能自查的事。

为什么需要:上一轮排查里,我确认了 Host 已经在发新 bundle,而页面 Console 的 __MCR_DEBUG__ 是 undefined —— 这两件事同时成立只有一种解释:页面没重载。但如果诊断钩子在提前返回时什么都不写,undefined 就有两种读法(没跑到 / 跑了但放弃了),排查就会往错的方向走。

改了什么

  • __MCR_MOUNTED__:控制器一渲染就打标,值是版本戳。
  • __MCR_DEBUG__:现在连早退路径也会写,带 blocked: "no sessions service" | "no document"。于是 undefined 只剩一种含义 —— 这份 bundle 没在跑。
  • README 新增「服务器到底在发哪一版 / Which build is the server actually sending」:Host 用 combo 路由 /plugins/??<id>/client.js&rev=<rev> 发插件客户端,rev 是 sha1("plugin-artifact" \0 mtimeMs ctimeMs size) 的前 12 位(dsh-client-modules 的 artifactRevision,只取文件元数据、不哈希内容)。据此能把「Host 没重读文件」和「页面没重载」这两种完全不同的原因分开,不用再靠截图争。

功能面与 v0.1.1 一致:遮蔽区间仍以事件自带的协议字段 surfaceOp.startSeq/endSeq 为准,source.removed 只作补充。

自检:node scripts/verify.mjs 与 node scripts/verify-client.mjs 全绿。