4.2 KiB
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.tsx、app/onlyoffice/page.tsx、app/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.tsx、src/components/editor/document-content.tsx - C2 Sidebar 聚合:
src/components/sidebar/**、src/hooks/use-convex-sidebar-data.ts、src/lib/sidebar-data.ts - C3 正文保存:
src/components/editor/blocknote-editor.tsx、src/app/api/documents/save/route.ts - Phase D 边界:
src/components/editor/blocks/MindmapBlock.tsx、src/app/onlyoffice/**、src/app/api/onlyoffice/** - 要求:优先改主仓现有链路,不复制历史仓页面壳替换现实现。
6. 禁止误复制清单
- 不把
mnote-rust当成新的主执行仓。 - 不复制第二套 Next 前端壳、对象页壳、diagnostics 页、smoke 页进入主线。
- 不通过软链接、硬链接、跨仓路径偷接来伪装“已迁移”。
- 不在主仓根目录散落多个 Rust 源码根。