Files
mnote/design/old/08-legacy-rust-kernel/done/rust-single-repo-maintenance-boundary.md
T

4.2 KiB

[recycle] mnote 单仓维护边界约定

更新时间:2026-04-14

主仓:/mnt/Data1T/mnote

历史仓:/mnt/Data1T/mnote-rust

1. 主结论

  • 只保留 /mnt/Data1T/mnote 作为启动、规划、保存、验证的唯一主仓。
  • /mnt/Data1T/mnote-rust 只作为历史资产来源,不再承担主执行入口。
  • 任何新设计、执行清单、架构说明都优先写入 /mnt/Data1T/mnote/design//mnt/Data1T/mnote/rust/design/

2. 主仓执行入口

  • 根目录脚本入口只认 /mnt/Data1T/mnote/package.json/mnt/Data1T/mnote/scripts/
  • 当前 package.json 仅通过 node scripts/*.js 暴露仓库级入口,没有任何脚本要求先进入 mnote-rust
  • 如需调用 Rust,统一使用 cargo --manifest-path /mnt/Data1T/mnote/rust/Cargo.toml ...,不从历史仓发起 Cargo 命令。
  • 当前 scripts/desktop-hot.js 已固定从主仓根目录解析 .env.all,并以 wolai-frontend/wolai-backend/ 作为唯一联调入口。

3. mnote-rust 历史资料分类

3.1 核心规范

这些内容可作为协议与设计参考,但主线副本以 /mnt/Data1T/mnote/rust/ 为准:

  • design/blueprint/
  • design/core/
  • crates/core-domain/
  • crates/core-protocol/
  • crates/event-log/
  • crates/storage-convex-bridge/
  • crates/index-fts/

3.2 历史阶段

这些内容保留为阶段记录,不作为当前实现依据:

  • design/phases/**
  • design/execution/**
  • design/UI/**
  • design/mindmap/**

3.3 参考实现

这些内容可用于盘点边界、提取协议或核对交互,但不能整块复制覆盖主仓:

  • app/**
  • components/**
  • lib/**
  • convex/**
  • infra/onlyoffice/**
  • crates/mnote-cli/
  • crates/adapter-onlyoffice/
  • crates/adapter-mindmap/
  • crates/adapter-legacy-mnote/

3.4 错误方向

以下内容明确不进入主仓主线:

  • 对象页壳与试验页:app/page.tsxapp/onlyoffice/page.tsxapp/documents/**
  • 第二套导航壳:components/sidebar/sidebar.tsx
  • 诊断与构建产物:.next/diagnostics/**.next/**.tmp/**
  • 仅用于历史 smoke/夹具的目录:.tmp/phase7-test-fixtures/**

4. 主仓默认不动目录

除非当前任务明确要求接线或修复,否则默认不扩写以下目录:

  • /mnt/Data1T/mnote/wolai-frontend/
  • /mnt/Data1T/mnote/wolai-backend/
  • /mnt/Data1T/mnote/infra/convex/
  • /mnt/Data1T/mnote/src/components/onlyoffice/
  • /mnt/Data1T/mnote/recycle/

5. 最小维护约定

5.1 Workspace 责任面

  • 入口文件:/mnt/Data1T/mnote/rust/Cargo.toml/mnt/Data1T/mnote/rust/Cargo.lock
  • 维护范围:/mnt/Data1T/mnote/rust/crates/*
  • 要求:新增 crate、依赖调整、共享协议变更,必须先在主仓 workspace 内完成,不得回写到历史仓再反向复制。

5.2 Bridge 责任面

  • 入口文件:/mnt/Data1T/mnote/wolai-frontend/src/lib/documents/bridge.ts
  • 相关边界:
    • /mnt/Data1T/mnote/wolai-frontend/src/lib/documents/metadata-command-adapter.ts
    • /mnt/Data1T/mnote/wolai-frontend/src/lib/documents/save-command-adapter.ts
    • /mnt/Data1T/mnote/wolai-frontend/src/app/api/documents/**
    • /mnt/Data1T/mnote/wolai-frontend/src/app/api/sidebar/route.ts
    • /mnt/Data1T/mnote/wolai-frontend/convex/bridgeLogs.ts
  • 要求:新 command/query 先收口协议边界,再决定是否继续下沉到 Rust crate。

5.3 接入链责任面

  • C1 页面元信息:src/app/(app)/documents/[id]/page.tsxsrc/components/editor/document-content.tsx
  • C2 Sidebar 聚合:src/components/sidebar/**src/hooks/use-convex-sidebar-data.tssrc/lib/sidebar-data.ts
  • C3 正文保存:src/components/editor/blocknote-editor.tsxsrc/app/api/documents/save/route.ts
  • Phase D 边界:src/components/editor/blocks/MindmapBlock.tsxsrc/app/onlyoffice/**src/app/api/onlyoffice/**
  • 要求:优先改主仓现有链路,不复制历史仓页面壳替换现实现。

6. 禁止误复制清单

  • 不把 mnote-rust 当成新的主执行仓。
  • 不复制第二套 Next 前端壳、对象页壳、diagnostics 页、smoke 页进入主线。
  • 不通过软链接、硬链接、跨仓路径偷接来伪装“已迁移”。
  • 不在主仓根目录散落多个 Rust 源码根。