docs: archive stale process checklists
This commit is contained in:
+12
-8
@@ -1,4 +1,6 @@
|
||||
# 5-13 tiptap runtime 冷加载 mindmap 重包拆分 checklist v1
|
||||
# 5-13 [done] tiptap runtime 冷加载 mindmap 重包拆分 checklist v1
|
||||
|
||||
> 2026-06-06 归档说明:本文件只归档 mindmap 重包拆分与 mindmap block 懒加载回归。历史记录中的真实文档壳 `tableVisibleMs≈18.55s` 当前未复现;复核结果约 274ms 可见,后续如再次复现再参考 `design/05-editor-mainline/reference/5-36-tiptap-real-shell-cold-load-followup-v1.md`。
|
||||
|
||||
## 背景
|
||||
|
||||
@@ -17,7 +19,7 @@
|
||||
- [x] 保留 mindmap paragraph attrs:`mnoteBlockType`、`mindmapId`、`rootNodeId`、`projectionVersion`、`mindmapWidth`、`mindmapHeight` 仍可 parse/render。
|
||||
- [x] mindmap block runtime 改为遇到 mindmap block 时再异步加载,普通文档不触发该加载。
|
||||
- [x] 重建 `reference-code/leptos-tiptap/src/js/generated` 和 `rust/spikes/leptos-tiptap-spike/generated/island` 产物。
|
||||
- [ ] 复测 7-45 冷加载,记录 table visible 时间与 runtime asset 体积变化。当前复测:paragraph snippet 已从约 1,025,978 bytes 降到 7,619 bytes,`tiptap_mindmap_paragraph_runtime.js` 未在普通 7-45 页面请求;但 table visible 仍约 18.55s,说明还有下一层瓶颈。
|
||||
- [x] 复测 7-45 冷加载,记录 table visible 时间与 runtime asset 体积变化。历史复测:paragraph snippet 已从约 1,025,978 bytes 降到 7,619 bytes,`tiptap_mindmap_paragraph_runtime.js` 未在普通 7-45 页面请求;当时 table visible 仍约 18.55s。2026-06-06 当前 checkout 再复核未复现,`tableVisibleMs≈274ms`。
|
||||
|
||||
## 修改边界
|
||||
|
||||
@@ -26,12 +28,12 @@
|
||||
- 可补 route fallback:`mnote-web` 的 `/api/leptos-tiptap-runtime/*path` 允许加载 lazily generated mindmap runtime asset。
|
||||
- 不改 FileTree scoped reveal 已完成逻辑,不回滚上一轮未提交变更。
|
||||
|
||||
## 2026-06-02 实测补充
|
||||
## 2026-06-02 历史实测补充
|
||||
|
||||
- `npm test` 中 `普通 paragraph 生成产物不应捆绑 mindmap 重运行时` 已从失败变为通过。
|
||||
- 冷浏览器打开 7-45:`domContentLoadedMs=136`、`editorVisibleMs=18550`、`tableVisibleMs=18553`、`mindmapRuntimeRequested=false`、`pageErrors=0`。
|
||||
- 单独在同源页面 `import + init + mount` 同一份 7-45 Tiptap document 约 `166ms`,所以 18s 不是 Tiptap document 本身渲染 194 blocks/2 tables 导致。
|
||||
- 下一层根因应继续查 document shell 首屏环境下 wasm-bindgen snippets module graph 为什么在真实页面中约 18s 后才完成,而同源空页面 import 只需约 50ms。
|
||||
- 2026-06-06 当前 checkout 已无法复现该 18s 现象;此段只保留为历史测量记录,不再作为 active 性能任务来源。
|
||||
|
||||
|
||||
## 2026-06-02 插入思维导图回归修复
|
||||
@@ -41,8 +43,10 @@
|
||||
- [x] GREEN:保持 loading NodeView 外层 DOM 稳定,runtime 加载完成后清空 loading 文案并 `appendChild(realNodeView.dom)`,后续 `update/destroy/stopEvent/ignoreMutation` 代理到真实 NodeView。
|
||||
- [x] 浏览器 smoke:临时 local-folder 页面通过 slash 插入思维导图后,请求 `tiptap_mindmap_paragraph_runtime.js`,placeholder `data-stage=runtime-loaded`,内部出现 `mnote-mindmap-editor-root`、`leptos-mindmap-island[data-stage=ready]` 和 `simple-mind-map-runtime`。
|
||||
|
||||
## 长期形态决策
|
||||
## 长期形态决策参考
|
||||
|
||||
- [ ] 参考思源 KMind 的插件/挂件形式,把完整 mindmap 编辑器迁到独立 Resource/Object tab 或 plugin host。
|
||||
- [ ] Markdown 正文内的 mindmap block 长期收敛为轻量镜像块/预览块/打开按钮,不在普通正文 NodeView 内承载完整编辑器。
|
||||
- [ ] 插件 host 提供 `getMindMapData/saveMindMapData/resize/destroy` 一类数据桥和生命周期,数据真相仍为 Resource Tree 下的 `.mindmap.json`。
|
||||
以下不是本次重包拆分的归档阻塞项,后续如实施应另拆 Resource/Object tab 或 plugin host checklist:
|
||||
|
||||
- 参考思源 KMind 的插件/挂件形式,把完整 mindmap 编辑器迁到独立 Resource/Object tab 或 plugin host。
|
||||
- Markdown 正文内的 mindmap block 长期收敛为轻量镜像块/预览块/打开按钮,不在普通正文 NodeView 内承载完整编辑器。
|
||||
- 插件 host 提供 `getMindMapData/saveMindMapData/resize/destroy` 一类数据桥和生命周期,数据真相仍为 Resource Tree 下的 `.mindmap.json`。
|
||||
@@ -0,0 +1,72 @@
|
||||
# 5-36 Tiptap real shell cold-load follow-up v1
|
||||
|
||||
> 创建时间:2026-06-06
|
||||
>
|
||||
> 状态:`reference`
|
||||
>
|
||||
> Owner:05-editor-mainline / leptos-tiptap island / mnote-web document shell
|
||||
>
|
||||
> 来源:`design/05-editor-mainline/done/5-13-tiptap-runtime-cold-load-mindmap-split-checklist-v1.md`
|
||||
>
|
||||
> 2026-06-06 复核结论:当前 checkout 未复现 18 秒冷加载。临时真实浏览器复测打开 `design/07-ai/done/7-45-chatonly-api-provider-runtime-v1.md`,结果为 `domContentLoadedMs=102`、`editorVisibleMs=271`、`tableVisibleMs=274`、`mindmapRuntimeRequested=false`、1 个约 97ms longtask;截图和结果见 `tmp/tmp-7-45-current-cold-open-check/`。因此本文件不再作为 active process,只保留为性能问题复现时的参考 checklist。
|
||||
|
||||
## 1. 背景
|
||||
|
||||
`5-13` 已确认普通 paragraph runtime 不再捆绑 mindmap/simple-mind-map 重包:`tiptap_paragraph.js` 从约 1,025,978 bytes 降到约 7,619 bytes,普通 7-45 页面不再请求 `tiptap_mindmap_paragraph_runtime.js`。
|
||||
|
||||
历史记录中,真实文档壳打开 `design/07-ai/done/7-45-chatonly-api-provider-runtime-v1.md` 曾观测到 `editorVisibleMs/tableVisibleMs≈18.55s`;同源空页面单独 `import + init + mount` 同一份 Tiptap document 约 166ms。2026-06-06 当前 checkout 复核未复现该问题,表格约 274ms 可见。因此本文件只作为“若再次复现 18 秒冷加载时如何取证”的参考,不应直接派发实现任务。
|
||||
|
||||
## 2. 目标
|
||||
|
||||
- 建立可重复的冷浏览器性能 smoke,记录 editor visible、table visible、runtime asset waterfall 和主线程长任务。
|
||||
- 区分 Tiptap document render、wasm-bindgen snippets import、document shell bootstrap、sidebar/page settings/Page AI 初始化之间的耗时。
|
||||
- 给普通 Markdown 文档首屏设定可执行预算,先以 `tableVisibleMs < 3s` 作为 P0 目标。
|
||||
- 保持 `5-13` 的 mindmap 懒加载成果,不重新把 mindmap runtime 放回普通 paragraph 主包。
|
||||
|
||||
## 3. 非目标
|
||||
|
||||
- 不改 FileTree view-state / lazy reveal;该问题已由 `4-25` 归档。
|
||||
- 不在本轮实现完整 mindmap plugin host;正文内 mindmap 长期形态另拆 Resource/Object tab 或 plugin host checklist。
|
||||
- 不通过新增轮询、定时刷新或隐藏首屏内容来掩盖加载问题。
|
||||
|
||||
## 4. 复现时 Checklist
|
||||
|
||||
### Phase A:RED smoke 与证据
|
||||
|
||||
- [ ] 新增或复用冷浏览器 smoke,固定打开 7-45 或等价大 Markdown 文档。
|
||||
- [ ] 记录 `domContentLoadedMs`、`editorVisibleMs`、`tableVisibleMs`、wasm snippets 请求开始/结束、Tiptap island mount 开始/结束。
|
||||
- [ ] 截取 Performance trace 或至少记录 `PerformanceObserver longtask` 摘要。
|
||||
- [ ] 断言普通 Markdown 页面不请求 `tiptap_mindmap_paragraph_runtime.js`。
|
||||
|
||||
验收:
|
||||
|
||||
- [ ] smoke 在当前基线下能稳定复现 `tableVisibleMs` 远高于同源空页面 import。
|
||||
- [ ] 结果 JSON 写入 `tmp/`,包含网络、longtask 和 runtime 阶段字段。
|
||||
|
||||
### Phase B:根因切分
|
||||
|
||||
- [ ] 对比真实 document shell 与同源空页面 import 的 module graph。
|
||||
- [ ] 关掉非必要首屏 surface 的实验开关做只读对照:Page AI drawer、page settings、resource tab prewarm、sidebar secondary pane。
|
||||
- [ ] 检查是否存在 modulepreload 缺失、重复 import、deferred script 排队或 wasm-bindgen init 被其他任务阻塞。
|
||||
- [ ] 确认 `document-editor-adapter-runtime.js` 中 runtime prewarm 的 `setTimeout` 不影响首屏关键路径。
|
||||
|
||||
验收:
|
||||
|
||||
- [ ] 给出一个可被代码改动验证的根因假设,例如具体 runtime asset、init 阶段或主线程长任务来源。
|
||||
|
||||
### Phase C:小范围修复
|
||||
|
||||
- [ ] 只修改根因对应模块,不做编辑器大重构。
|
||||
- [ ] 如果需要预加载,只用明确 asset hint 或模块加载顺序调整,不新增周期任务。
|
||||
- [ ] 如果需要推迟非关键 surface 初始化,必须保持功能入口可用并补 smoke。
|
||||
|
||||
验收:
|
||||
|
||||
- [ ] 冷浏览器 smoke 达到 `tableVisibleMs < 3s`,或至少给出明确的剩余瓶颈和下一轮预算。
|
||||
- [ ] `5-13` 的 mindmap 懒加载断言继续通过。
|
||||
|
||||
## 5. 重新激活条件
|
||||
|
||||
- 用户或 smoke 再次稳定复现 `tableVisibleMs > 3s`。
|
||||
- 复现结果包含真实浏览器 result JSON、截图、runtime asset waterfall 和 longtask 摘要。
|
||||
- 确认不是冷编译、服务刚启动、临时网络/磁盘抖动或非当前 checkout 造成。
|
||||
Reference in New Issue
Block a user