# [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 runtime；Convex 主链下 `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、外部服务编排、客户端桥与明确冻结的兼容壳。**
