3.0 KiB
3.0 KiB
M0:仓库边界决议
日期:2026-04-20
依据来源:
- ../docs/technical/SPACETIMEDB_AXUM_OSS_BACKEND_REWRITE_DESIGN_2026-04-20.md
- 00_MASTER_TASKLIST.md
- 01_M0_M2_FOUNDATION_AND_AUTH.md
1. 文档目的
这份文档用于持续冻结 M0 中与仓库边界直接相关的决策,避免进入 M1 后再反复改目录、改职责口径。
当前已确认的事项只包含第一条;后续几条会继续在这份文档上追加。
2. 边界决议状态
| 事项 | 当前状态 | 当前结论 |
|---|---|---|
| Rust 后端新目录名与根目录落位方案 | 已确认 | 新 Rust 后端固定为仓库根目录下的 server-rs/,与 server-node/ 同级。 |
旧 server-node/ 在迁移期继续保留,不提前删除 |
待确认 | 后续补充。 |
| 前端第一阶段仍然只访问 Axum,不直连 SpacetimeDB | 待确认 | 后续补充。 |
| 外部副作用统一收口在 Axum,不放进 SpacetimeDB 模块 | 待确认 | 后续补充。 |
3. 已确认决议一:server-rs/ 固定落在仓库根目录
3.1 决议内容
本次重写固定采用以下仓库落位:
- 新后端目录名固定为
server-rs/ - 目录位置固定在仓库根目录
- 与以下目录保持同级:
server-node/src/docs/packages/
目标形态:
Genarrative/
├─ server-node/
├─ server-rs/
├─ src/
├─ packages/
├─ docs/
└─ backend-rewrite-tasklist/
3.2 不采用的落位方案
以下方案当前明确不采用:
- 不放进
server-node/子目录中做“Node + Rust 混编后端”。 - 不放进
packages/,避免被前端 package/workspace 语义误导。 - 不使用过于泛化的根目录名如
server/、backend/,避免和当前server-node/职责混淆。
3.3 这样落位的原因
- 与当前重写设计文档、任务清单、后续
M1crate 规划保持一致。 - 允许
server-node/与server-rs/在迁移期并行存在,便于逐阶段切流。 - 让 Rust 工作区边界清晰,不污染现有前端
src/、packages/、Vite 工具链。 - 后续新增
server-rs/scripts/*、Cargo.toml、crates/*时路径最直接,不需要额外中间层。
3.4 对后续任务的直接约束
从这一条决议开始,后续任务必须统一按以下路径落位:
M1的工作区初始化在server-rs/- Axum 入口在
server-rs/crates/api-server - SpacetimeDB 模块在
server-rs/crates/spacetime-module - 相关脚本在
server-rs/scripts/
4. 本条任务完成定义
当以下条件成立时,这一条边界任务视为完成:
- 新 Rust 后端目录名已经书面固定为
server-rs/ - 目录位置已经书面固定为仓库根目录
- 后续
M1的工作区初始化不会再出现server-rs/、backend-rs/、server/等多套候选名并存