# [recycle] Rust Kernel Legacy Delete List

> 目标：给 Phase 8 第一批 `TS_LEGACY_DELETE` 提供固定清单，先停写并切调用方，再删除已被 Rust 替代的 TS 真入口。

## 1. 第一批删除对象

- `documents/create-child`
- `documents/embed`
- `documents/empty-trash`
- `documents/purge`
- `documents/template`
- `mindmap-trash/empty`
- `builtins/**`

## 2. 删除前提

- 页面旧面必须已经切到统一 page adapter 或 lifecycle adapter，route 仅剩 transport。
- AI 核心工具必须已经切到 Rust Tool runtime 或 `ai-agent/run` 统一入口，不能再由 `builtins/**` 私下持有真执行面。
- 统一 bridge-log 必须能记录失败态、冲突态与补偿态，避免删除旧面后失去回查能力。

## 3. 删除策略

### 3.1 页面旧面

- `documents/create-child`
- `documents/embed`
- `documents/empty-trash`
- `documents/purge`
- `documents/template`

策略：

- 先冻结 route 内业务逻辑，确保所有调用方都走 adapter。
- 保留 Web route 的 auth、参数校验和 HTTP transport。
- 先继续清理 `page-command-adapter.ts` / `page-lifecycle-command-adapter.ts` 中残留的 TS 真执行。
- 在前端调用方仍直接依赖这些 route，且 adapter 仍承载真实写入前，不得直接物理删除 route 文件。
- 当 release audit 与 cutover gate 均确认无回退需求后，再物理删除历史 helper/分支。

### 3.2 Mindmap 旧面

- `mindmap-trash/empty`

策略：

- `mindmap-trash/empty` 现已切到 `mindmaps.emptyTrashByWorkspace` Rust runtime/transport。
- 该 route 仍是兼容入口，但只保留 Web transport 壳，不再直接持有 TS 真执行。
- 仍需确认 `task-042` 的失败/冲突/补偿落账和最终运行态回归稳定，再删除纯兼容分支。

### 3.3 AI 工具旧面

- `builtins/**`

策略：

- `search_web`、`image_read`、`slash_run` 这类已切到 Rust runtime 的工具，删除其服务端真入口，只保留必要 transport helper。
- `client-tool-result` 与 `oo_*` 属于 `TS_TRANSPORT_KEEP`，不在本批物理删除范围。
- `asset_extract_outline`、`asset_to_mindmap` 尚未完全 Rust 化，暂不从 `builtins/**` 整体删除，但必须禁止继续扩展新的私有真入口。

## 4. 当前结论

- 第一批 `TS_LEGACY_DELETE` 已完成清单冻结。
- `documents/create-child`、`documents/embed`、`documents/empty-trash`、`documents/purge`、`documents/template`、`mindmap-trash/empty`、`builtins/**` 已被明确纳入 Phase 8 的旧面退役范围。
- 截至 2026-04-15，这批对象中还没有可直接物理删除的 route 文件；当前可安全推进的是：
  - 把 route 固定为纯 transport 壳。
  - 把 adapter 内残留的 TS 真执行继续收口。
  - 为每个旧面补齐调用方清单与“可删前置条件”。
- 其中页面旧面已完成第一轮收口：
  - `create-child` 已复用 `documents.create`
  - `template`、`empty-trash`、`purge` 已补齐 Rust runtime/transport 映射
  - `embed` 已切到 `documents.save`，但插入位计算与 `pageReference` block 组装仍在 TS
- 因此页面旧面的主要残留已缩到 `wolai-frontend/src/lib/documents/page-command-adapter.ts` 中的 `embed` 内容编排，以及 `wolai-frontend/src/lib/documents/page-lifecycle-command-adapter.ts` 的历史兼容面。
- `mindmap-trash/empty` 已不再由 route 直接调用 `api.mindmaps.emptyTrashByWorkspace`，但在调用方与最终运行态回归全部通过前，仍不满足物理删除条件。
- 后续删除动作必须以 `/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` 的最终 gate 为准。
