docs: add runtime followup checklists
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
# 3-20 Browser Runtime 后续收口 Checklist v1
|
||||
|
||||
> 创建时间:2026-05-25
|
||||
> 状态:`process`
|
||||
> 来源:承接 `design/03-rust-web/done/3-19-rust-web-browser-runtime-module-extraction-v1.md` 的后续未专项完成项。
|
||||
|
||||
## 1. 目标
|
||||
|
||||
在 `3-19` 已归档的基础上,继续把仍留在 Rust inline / 主壳大 runtime 中的浏览器行为切成可审计模块。Codex 维护本文件作为事实源,Reasonix 只承接短批次审计、窄范围实现或浏览器 smoke;每批最多 2 个 worker。
|
||||
|
||||
## 2. 本轮边界
|
||||
|
||||
本轮优先处理:
|
||||
|
||||
- 主壳 filetree keyboard / clipboard / DND / context menu DOM 后续切片。
|
||||
- document pane host adapter / document session / conflict panel runtime 只读审计。
|
||||
- 本地上传主流程剩余边界审计,包括 `uploadFileToMediaAsset`、`uploadFilesWithResolvedTarget`、`insertUploadedAssetIntoEditor`。
|
||||
- WS / SSE tree live 浏览器回归 smoke。
|
||||
|
||||
本轮不处理:
|
||||
|
||||
- Tiptap 编辑器内部命令、history、selection overlay;这些归 `5-29`。
|
||||
- Rust kernel tree command 语义重写。
|
||||
- Page AI panel 外置化;需要另起 `07-ai` 设计。
|
||||
|
||||
## 3. Batch A 候选任务
|
||||
|
||||
- [ ] Worker A:只读审计 document pane host adapter。
|
||||
- 目标:列出 `web_shell.rs` 中 document pane host / session / conflict panel 可迁模块、风险和 smoke。
|
||||
- 输出:候选模块表、禁止迁入 editor runtime 的边界、下一刀建议。
|
||||
- [ ] Worker B:只读审计 local upload 主流程。
|
||||
- 目标:复核上传主流程剩余函数是否可从 `SIDEBAR_TREE_JS` 拆入 `local-upload-runtime.js`,不得改变资源归属语义。
|
||||
- 输出:函数归属表、不可迁项、必须保留的 smoke。
|
||||
- [ ] Worker C:只读审计 filetree keyboard / clipboard / DND。
|
||||
- 目标:基于已落地 `filetree-runtime.js` / `filetree-selection-runtime.js` / `filetree-context-menu-runtime.js`,给出下一刀最小实现范围。
|
||||
- 输出:建议只迁纯 helper 还是 DOM listener,列出冲突文件。
|
||||
- [ ] Worker D:浏览器 smoke 审计 WS / SSE tree live。
|
||||
- 目标:只读验证主壳 tree live 外置 runtime 在浏览器中仍加载,记录 WS 正常路径和 SSE fallback 的可测性。
|
||||
- 输出:截图、console/network、result.json;不修改源码。
|
||||
|
||||
## 4. 验收命令
|
||||
|
||||
按具体切片选择:
|
||||
|
||||
```bash
|
||||
cargo fmt --manifest-path rust/Cargo.toml --all --check
|
||||
cargo check --manifest-path rust/Cargo.toml -p mnote-web
|
||||
cargo test --manifest-path rust/Cargo.toml -p mnote-web filetree
|
||||
cargo test --manifest-path rust/Cargo.toml -p mnote-web runtime
|
||||
node scripts/task487-local-folder-tree-live-consumer-smoke.js
|
||||
node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js
|
||||
```
|
||||
|
||||
UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据。
|
||||
|
||||
## 5. 采纳规则
|
||||
|
||||
- Reasonix 结果必须先查 Hindsight `reasonix` recall,再读 `process-handoff.md/json`、`result.json`、diff 和验证证据。
|
||||
- 只采纳限定文件范围内的最小 diff;越界重构、回滚用户改动、修改 git 状态的一律拒绝。
|
||||
- browser smoke worker 必须 `modified_files=[]`。
|
||||
- 本文件只记录真实完成项;未验证项保持未勾选。
|
||||
|
||||
## 6. 本轮执行记录
|
||||
|
||||
- 2026-05-25:Codex 创建本续跑事实源。
|
||||
- 2026-05-25:修正执行约束:本文件遵循当前 goal 的“每批最多 2 个 worker”,不再沿用早期草稿中的 4 worker 并行方案。
|
||||
- 2026-05-25:下一批只派发 Worker B(local upload / filetree 下一刀只读审计);Worker A/C/D 暂缓。
|
||||
@@ -0,0 +1,70 @@
|
||||
# 5-29 Editor Runtime 后续收口 Checklist v1
|
||||
|
||||
> 创建时间:2026-05-25
|
||||
> 状态:`process`
|
||||
> 来源:承接 `design/05-editor-mainline/done/5-28-leptos-tiptap-editor-runtime-module-extraction-v1.md` 的后续未专项完成项。
|
||||
|
||||
## 1. 目标
|
||||
|
||||
在 `5-28` 已完成附件链接、history-safe delete、command sync、persistence、attachment upload intent 首批拆分后,继续把 editor runtime 的 selection / overlay / block menu / mindmap node view 切成可索引模块。Codex 维护本文件作为事实源,Reasonix 只做短批次审计、窄范围实现或浏览器 smoke。
|
||||
|
||||
## 2. 本轮边界
|
||||
|
||||
本轮优先处理:
|
||||
|
||||
- `editor_runtime/dom_selection.rs` 第一刀。
|
||||
- overlay / block menu 后续切片的只读审计。
|
||||
- 仍使用 HTML 整文替换的用户编辑路径风险复核,例如块手柄拖拽重排和复制副本。
|
||||
- `task488` / `task489` / `task479` 作为回归基线。
|
||||
|
||||
本轮不处理:
|
||||
|
||||
- shell host resource open / local upload 落盘语义;这些归 `3-20`。
|
||||
- Page AI 流式 apply / review session。
|
||||
- mindmap 事实源重构;本轮最多审计 node view 拆分边界。
|
||||
|
||||
## 3. Batch A 候选任务
|
||||
|
||||
- [x] Worker A:实现 `dom_selection.rs` 第一刀。
|
||||
- 允许修改:`rust/spikes/leptos-tiptap-spike/src/lib.rs`、`rust/spikes/leptos-tiptap-spike/src/editor_runtime/mod.rs`、新增 `rust/spikes/leptos-tiptap-spike/src/editor_runtime/dom_selection.rs`。
|
||||
- 目标函数:`active_editor_text_selection`、`selection_summary`、`has_active_text_selection`、`selection_has_rich_marks`,以及必要的 selection payload helper。
|
||||
- 禁止:迁出 block menu DOM、overlay state、host bridge、resource open。
|
||||
- [ ] Worker B:只读审计 overlay / block menu 拆分。
|
||||
- 目标:列出强依赖 Leptos signal 的函数,判断是否先抽 context struct 或先迁纯 helper。
|
||||
- 输出:下一刀最小实现范围和 smoke 建议。
|
||||
- [ ] Worker C:只读审计剩余 HTML 整文替换用户编辑路径。
|
||||
- 目标:查 `set_content`、`apply_html_update`、`apply_document_update` 的用户触发链路,列出可迁 Tiptap command/transaction 的候选。
|
||||
- 输出:风险表和建议 RED smoke。
|
||||
- [ ] Worker D:浏览器 smoke 审计 editor runtime 基线。
|
||||
- 目标:只读运行或复核 `task488`、`task489`、`task479`,截图/结果证明附件删除和块菜单删除 undo/redo 仍可用。
|
||||
- 输出:result.json、截图、console/network;不修改源码。
|
||||
|
||||
## 4. 验收命令
|
||||
|
||||
```bash
|
||||
cargo fmt --manifest-path rust/Cargo.toml --all --check
|
||||
cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml
|
||||
cargo build --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml --target wasm32-unknown-unknown --release
|
||||
wasm-bindgen rust/spikes/leptos-tiptap-spike/target/wasm32-unknown-unknown/release/mnote_leptos_tiptap_spike.wasm --target web --out-dir rust/spikes/leptos-tiptap-spike/generated/island --out-name mnote-leptos-tiptap-spike-island
|
||||
node scripts/task488-local-attachment-link-delete-undo-smoke.js
|
||||
node scripts/task489-block-menu-delete-undo-smoke.js
|
||||
node scripts/task479-local-folder-markdown-resource-lifecycle-smoke.js
|
||||
```
|
||||
|
||||
UI / 浏览器可见项必须有真实浏览器截图或结构化 smoke 证据。
|
||||
|
||||
## 5. 采纳规则
|
||||
|
||||
- Reasonix 结果必须先查 Hindsight `reasonix` recall,再读 `process-handoff.md/json`、`result.json`、diff 和验证证据。
|
||||
- 实现 worker 只能改允许范围;只读和 smoke worker 必须没有源码 diff。
|
||||
- `lib.rs` 不能新增附件/history/DOM bridge 大块逻辑。
|
||||
- 本文件只记录真实完成项;未验证项保持未勾选。
|
||||
|
||||
## 6. 本轮执行记录
|
||||
|
||||
- 2026-05-25:Codex 创建本续跑事实源。
|
||||
- 2026-05-25:Worker A 未继续派发;Codex 主控已在主工作区完成 `dom_selection.rs` 第一刀并提交 `c7ab4e56 refactor: extract editor dom selection runtime`。
|
||||
- 已迁函数:`node_is_within_root`、`active_editor_text_selection`、`has_active_text_selection`、`selection_summary`、`selection_has_rich_marks`。
|
||||
- 未迁:`SelectionPayload`、`selection_payload`、`send_selection_state*`、`selection_event_payload`,原因是仍依赖 bridge event、`HoveredBlockState` 和 runtime block id 边界。
|
||||
- 已验证:`cargo fmt --manifest-path rust/Cargo.toml --all --check`、`cargo check --manifest-path rust/spikes/leptos-tiptap-spike/Cargo.toml`、wasm release build、`wasm-bindgen`、`task488`、`task489`、CodeGraph pending 0。
|
||||
- 2026-05-25:下一批只派发 Worker B(overlay / block menu 只读审计);Worker C/D 暂缓,避免超过每批最多 2 个 worker 的 goal 约束。
|
||||
Reference in New Issue
Block a user