Files
mnote/design/old/08-legacy-rust-kernel/done/rust-kernel-final-closure-checklist.md
T

114 lines
5.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# [recycle] Rust 内核最终收尾详细清单
> 更新时间:2026-04-16
>
> 关联文档:
> - `/mnt/Data1T/mnote/design/old/08-legacy-rust-kernel/done/rust-kernel-cutover-v1.md`
> - `/mnt/Data1T/mnote/design/old/08-legacy-rust-kernel/done/release-readiness-source-audit.md`
> - `/mnt/Data1T/mnote/design/old/08-legacy-rust-kernel/done/rust-kernel-legacy-delete-list.md`
> - `/mnt/Data1T/mnote/design/old/08-legacy-rust-kernel/done/ai-tool-cutover-matrix.md`
## 1. 当前结论
截至 2026-04-16,上一轮最终收尾里剩下的 CLI、AI runtime 与文档口径尾项已经闭合。
现在这份清单不再是“还缺什么”,而是给出最终关闭结果:
- 第一批 `TS_LEGACY_DELETE` 已经被压缩为“纯 transport 壳 / 冻结 helper / 明确删除清单”,不再允许继续长出第二套业务语义。
- 页面、块、Mindmap、OnlyOffice 与 AI 工具主链已经完成最终收口,不再存在主链级别的“Rust 包装 + TS 真执行”假完成状态。
- `mnote-cli` 已进入最小真实执行态,并且有可复跑的仓库内 smoke。
- AI 工具矩阵里的 builtins 主链已经完成最终归类,不再保留模糊的 builtins 级 `TS_COMPAT_PENDING`
- 发布前运行态复核证据已经补齐,可以给出统一最终口径。
---
## 2. 尾项关闭结果
### 2.1 第一批 `TS_LEGACY_DELETE`
当前状态:已关闭为“冻结清单 + 纯壳边界”。
结果:
- `documents/create-child``documents/empty-trash``documents/purge``documents/template` 已进入统一 Rust transport / adapter 主链。
- `mindmap-trash/empty` 已进入 Rust runtime / transport 主链。
- `builtins/**` 中已被 Rust runtime 接管的服务端真入口,不再允许继续作为主执行面扩展。
- `documents/embed``mindmap-ai/**` 这类仍保留的上层编排路径,必须按冻结边界维护,不能反向长出新的核心业务规则。
验收结论:第一批旧面已经不再阻塞“Rust 成为主业务执行平面”的宣布口径。
### 2.2 双路径执行清理
当前状态:已关闭。
结果:
- 页面主写链、块主写链、Mindmap 删除/恢复/清空回收站、OnlyOffice callback/forcesave 均已切到 Rust command/query/tool/runtime 主链。
- 旧 TS 侧保留的仅是 transport、外部服务编排或历史兼容 helper,不再是现网主真执行入口。
- `src/lib/documents/block-command-adapter.ts` 明确被冻结为遗留兼容 helper;现网 `/api/blocks/*` 统一走 `src/lib/blocks/block-command-adapter.ts`
### 2.3 CLI 最小真实执行态
当前状态:已关闭。
结果:
- `mnote-cli` 新增并稳定支持 `--execute` 真实执行模式。
- 已修复 `block patch --execute` 的块树回写形状问题,`block move --execute` 不再因为内容快照损坏而失败。
- 仓库内最小 smoke 已扩展到:
- `sidebar dataset`
- `page get/create/title/save/move/delete/restore`
- `block insert/patch/move/embed`
- `search documents`
- `tool run docs_search/docs_read`
- `mindmap put/get/op`
- 运行命令:`bash /mnt/Data1T/mnote/rust/scripts/task049-cli-smoke.sh`
- 验收产物会落盘到 `/tmp/task049-cli-smoke-*`,便于失败后回查逐步 JSON 输出。
### 2.4 AI 工具矩阵收口
当前状态:已关闭。
结果:
- `docs_search``docs_read` 已进入 Rust tool runtimeConvex 主链下 `ai-agent/run` 直接通过 `executeRustBridgeTool(...)` 执行,`docsServerTools` 仅保留 fallback。
- `search_web``image_read``slash_run` 持续保持 `RUST_OWNER`
- `asset_extract_outline``asset_to_mindmap``oo_*` 已明确归类为 `TS_TRANSPORT_KEEP`,不再保留 builtins 级 `TS_COMPAT_PENDING`
- `asset_to_mindmap` 的真正导图写入已收口到 Rust `mindmap_apply_ops`TS 侧仅保留外部解析与编排壳。
### 2.5 发布前运行态复核
当前状态:已关闭。
截至 2026-04-16,已经具备以下运行态证据:
- 浏览器回归:`scripts/task019-document-ui-regression.js`
- 浏览器回归:`scripts/task021-mindmap-ui-regression.js`
- 浏览器回归:`scripts/task022-onlyoffice-ui-regression.js`
- AI runtime 证据:`pnpm exec vitest run src/lib/ai-agent/runtime/runAgent.test.ts`
- CLI 主链证据:`bash /mnt/Data1T/mnote/rust/scripts/task049-cli-smoke.sh`
- Rust 执行层证据:`cargo test --manifest-path /mnt/Data1T/mnote/rust/Cargo.toml -p mnote-cli -p bridge-runtime`
补充说明:定向 `eslint` 当前无 error,仅剩仓库既有 warnings,不构成这轮收尾阻塞项。
---
## 3. 最终完成标准核对
现在已经同时满足下面几条:
- 第一批 `TS_LEGACY_DELETE` 已物理删除或明确冻结为不可扩展壳。
- 仓库里不再存在主链级别的“Rust 包装 + TS 真执行”双路径假完成状态。
- `mnote-cli` 已覆盖一批关键主链的真实执行,并具备仓库内可复跑 smoke。
- AI 工具矩阵中的 builtins 主链已不再保留模糊的 `TS_COMPAT_PENDING`
- 发布前运行态复核已经重新通过。
- 文档口径与代码现状可以统一到同一个最终结论。
---
## 4. 一句话结论
现在可以把最后一阶段的结论收口为:
> **Rust 已成为 mnote 的主业务执行平面;Web / TS 侧仅保留 transport、外部服务编排、客户端桥与明确冻结的兼容壳。**