Files
mnote/design/old/08-legacy-rust-kernel/done/rust-kernel-legacy-delete-list.md

3.7 KiB
Raw Permalink Blame History

[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 adapterroute 仅剩 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_webimage_readslash_run 这类已切到 Rust runtime 的工具,删除其服务端真入口,只保留必要 transport helper。
  • client-tool-resultoo_* 属于 TS_TRANSPORT_KEEP,不在本批物理删除范围。
  • asset_extract_outlineasset_to_mindmap 尚未完全 Rust 化,暂不从 builtins/** 整体删除,但必须禁止继续扩展新的私有真入口。

4. 当前结论

  • 第一批 TS_LEGACY_DELETE 已完成清单冻结。
  • documents/create-childdocuments/embeddocuments/empty-trashdocuments/purgedocuments/templatemindmap-trash/emptybuiltins/** 已被明确纳入 Phase 8 的旧面退役范围。
  • 截至 2026-04-15,这批对象中还没有可直接物理删除的 route 文件;当前可安全推进的是:
    • 把 route 固定为纯 transport 壳。
    • 把 adapter 内残留的 TS 真执行继续收口。
    • 为每个旧面补齐调用方清单与“可删前置条件”。
  • 其中页面旧面已完成第一轮收口:
    • create-child 已复用 documents.create
    • templateempty-trashpurge 已补齐 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 为准。