docs: retire legacy editor module from rewrite scope

This commit is contained in:
2026-04-21 01:13:26 +08:00
parent 9f4a51843b
commit 6ece1f41ee
13 changed files with 150 additions and 127 deletions

View File

@@ -27,14 +27,18 @@
- 环境开关接口:`17`
- 流式接口:`6`
重写后的 Rust 后端,第一阶段必须至少完整覆盖这 6 个挂载面
当前 Node 后端的历史基线仍然是这 `6` 个挂载面,但自 `2026-04-21` 起,本轮 Rust 后端重写的 active rewrite target 固定为其中 `5`
1. `health`
2. `auth`
3. `editor`
4. `assets`
5. `runtime-main`
6. `runtime-story-action`
3. `assets`
4. `runtime-main`
5. `runtime-story-action`
补充说明:
1. `editor` 挂载面在历史系统中真实存在,但已被确认为遗留无用能力。
2. `editor` 仅保留为历史基线对照,不纳入本轮 `server-rs` 重写验收。
当前后端内部模块也不能“凭感觉重设计”,而要按现有职责做映射:
@@ -51,6 +55,12 @@
11. `runtime-item`
12. `story`
其中:
1. 上述 `12` 个模块是历史基线总量。
2. 本轮 active rewrite modules 固定为 `11` 个。
3. `editor` 仅保留历史事实,不进入 `server-rs` 主线 package 与阶段验收。
## 3. 技术选型后的硬边界
### 3.1 SpacetimeDB 的平台约束与本项目边界
@@ -119,7 +129,6 @@ Axum API Server
├─ runtime facade兼容当前 REST / SSE contract
├─ asset gatewayOSS 直传签名、对象确认、媒体任务编排
├─ ai gatewayDashScope / Ark / 其他模型调用
├─ editor gateway开发态文件读写或对象化编辑能力
├─ background workers异步作业执行与回写
└─ SpacetimeDB client调用 reducer、查询 view / public table、订阅任务状态
@@ -139,7 +148,7 @@ Aliyun OSS
├─ generated-custom-world-scenes
├─ generated-custom-world-covers
├─ generated-qwen-sprites
└─ editor-exports / temp-uploads / workflow-cache
└─ temp-uploads / workflow-cache
```
## 5. 重写后的核心原则
@@ -224,7 +233,6 @@ server-rs/
│ ├─ module-runtime-item/ # 运行时物品模块 package
│ ├─ module-custom-world/ # 自定义世界与 agent 模块 package
│ ├─ module-assets/ # 资产任务与对象绑定模块 package
│ ├─ module-editor/ # 编辑器读写模块 package
│ ├─ module-ai/ # AI 编排模块 package
│ ├─ shared-contracts/ # HTTP DTO / SSE event / 前后端兼容 contract
│ ├─ shared-kernel/ # 跨模块共享领域类型、ID、枚举、值对象
@@ -243,7 +251,7 @@ server-rs/
1. `apps/api-server/` 只做协议装配、鉴权、中间件、handler 与模块组合,不把业务模块重新堆回单包。
2. `apps/spacetime-module/` 只负责聚合各模块 package 的状态模型,不直接承接外部副作用。
3. `packages/module-*` 保持与当前业务模块边界一一对应,必要时可在 package 内部再拆 `application``domain``spacetime` 子层次。
3. `packages/module-*` 保持与当前业务模块边界一一对应,已明确退出本轮的 `editor` 遗留模块除外;必要时可在 package 内部再拆 `application``domain``spacetime` 子层次。
4. `packages/shared-contracts/` 负责与当前前端兼容的 JSON / SSE 协议。
5. `packages/shared-kernel/` 只放跨模块复用的数据结构和规则,不碰框架。
6. `packages/platform-*` 统一承接三方供应商与平台适配。
@@ -269,7 +277,11 @@ server-rs/
| `custom-world` | SpacetimeDB module + Axum orchestration | OSS | 会话、草稿、agent 状态放 SpacetimeDB世界编译、资产生成、发布编排在 Axum。 |
| `ai` | Axum `llm-service` | SpacetimeDB task tables | 外部模型调用全部放 Axum。 |
| `assets` | Axum `oss-service` | SpacetimeDB asset metadata | 二进制进 OSS元数据进 SpacetimeDB。 |
| `editor` | Axum `editor` namespace | OSS / local fs | 开发态保留本地文件适配,线上默认走对象化资源。 |
补充说明:
1. 历史 `editor` 模块不纳入 `server-rs` 本轮重写。
2. 相关 `/api/editor/*``server-node/src/modules/editor` 仅保留为旧系统对照事实,后续若要清理再单独立项。
## 8. 数据建模方案
@@ -448,7 +460,6 @@ Axum 进程建议拆成以下子系统:
- `/api/runtime/*`
- `/api/runtime/story/*`
- `/api/assets/*`
- `/api/editor/*`
3. `application::services`
- story facade
- runtime snapshot facade
@@ -505,7 +516,6 @@ generated-animations/{character_id}/{animation_set_id}/{action}/{file}
generated-custom-world-scenes/{profile_id}/{landmark_id}/{asset_id}/{file}
generated-qwen-sprites/{role_id}/{sheet_id}/{file}
generated-custom-world-covers/{profile_id}/{asset_id}/{file}
editor-cache/{resource_type}/{resource_id}/{file}
workflow-cache/{workflow_type}/{workflow_id}.json
```
@@ -697,22 +707,26 @@ workflow-cache/{workflow_type}/{workflow_id}.json
3. custom world agent 会话、卡片、操作
4. scene npc / entity generation
## Phase 5迁移 assets / editor
## Phase 5迁移 assets / OSS
交付:
1. OSS 直传
2. 生成任务
3. 对象元数据
4. 编辑器读写开发态适配
5.`/generated-*` 路径兼容
4. `/generated-*` 路径兼容
补充说明:
1. `editor` 已于 `2026-04-21` 被确认为遗留无用模块,退出本轮 Rust 后端重写范围。
2. Phase 5 只覆盖资产与 OSS 主链,不再包含 editor 迁移。
## 14. 验收标准
重写完成至少要满足:
1. 当前 `96` 条已登记路由全部有对应实现或明确兼容替代。
2. 当前 6 个挂载面全部保留
2. 当前历史 `6` 个挂载面的迁移去向全部明确,且本轮 active rewrite target 的 `5` 个挂载面全部落地
3. 浏览器无需直接知道 SpacetimeDB 原生接口即可跑通主流程。
4. story action、存档、custom world、agent、assets 都以后端为唯一真相。
5. 所有生成图片、动画、精灵表都不再依赖本地 `public/generated-*` 持久化。