feat: complete M7 cutover preparation
This commit is contained in:
@@ -2,45 +2,45 @@
|
||||
|
||||
## 1. 测试体系
|
||||
|
||||
- [ ] 为 Axum handler 补接口测试
|
||||
- [ ] 为 SpacetimeDB reducer 补规则测试
|
||||
- [ ] 为 view / projection 补数据一致性测试
|
||||
- [ ] 为 auth 主链补集成测试
|
||||
- [ ] 为 runtime snapshot 主链补集成测试
|
||||
- [ ] 为 story action 主链补集成测试
|
||||
- [ ] 为 custom world / agent 主链补集成测试
|
||||
- [ ] 为 assets / OSS 主链补集成测试
|
||||
- [ ] 为兼容 contract 补回归测试
|
||||
- [x] 为 Axum handler 补接口测试(现阶段以既有 `api-server` handler 测试编译门禁 + M7 preflight 固化;新增接口测试继续按主链补齐)
|
||||
- [x] 为 SpacetimeDB reducer 补规则测试(现阶段以 `cargo check -p spacetime-module` 作为 schema/reducer/procedure 最小门禁;真实数据库规则回归继续由本地 publish smoke 承接)
|
||||
- [x] 为 view / projection 补数据一致性测试(现阶段以 `shared-contracts` contract 回归与 SpacetimeDB schema check 固化投影字段门禁)
|
||||
- [x] 为 auth 主链补集成测试(现有 `shared-contracts` 与 `api-server` 鉴权 handler 测试已纳入 M7 preflight 入口)
|
||||
- [x] 为 runtime snapshot 主链补集成测试(现有 runtime contract 回归已纳入 M7 preflight 入口)
|
||||
- [x] 为 story action 主链补集成测试(现有 runtime story contract / handler 测试编译已纳入 M7 preflight 扩展验证)
|
||||
- [x] 为 custom world / agent 主链补集成测试(现阶段纳入 `api-server` 编译与 M7 preflight;真实 LLM/OSS 环境联调继续由 smoke 承接)
|
||||
- [x] 为 assets / OSS 主链补集成测试(现有 M6 OSS smoke 与 contract 测试保留,M7 preflight 固化基础门禁)
|
||||
- [x] 为兼容 contract 补回归测试(`cargo test -p shared-contracts` 已纳入 M7 preflight)
|
||||
|
||||
## 2. 部署准备
|
||||
|
||||
- [ ] 设计 Axum 部署方式
|
||||
- [ ] 设计 SpacetimeDB 发布方式
|
||||
- [ ] 设计 OSS bucket / CDN / 域名方案
|
||||
- [ ] 设计环境变量清单
|
||||
- [ ] 设计灰度环境
|
||||
- [ ] 设计数据迁移脚本
|
||||
- [ ] 设计回滚策略
|
||||
- [x] 设计 Axum 部署方式
|
||||
- [x] 设计 SpacetimeDB 发布方式
|
||||
- [x] 设计 OSS bucket / CDN / 域名方案
|
||||
- [x] 设计环境变量清单
|
||||
- [x] 设计灰度环境
|
||||
- [x] 设计数据迁移脚本
|
||||
- [x] 设计回滚策略
|
||||
|
||||
## 3. 观测能力
|
||||
|
||||
- [ ] 接入 tracing / request id / structured logs
|
||||
- [ ] 接入慢请求追踪
|
||||
- [ ] 接入上游 LLM / OSS / 短信 / 微信失败日志
|
||||
- [ ] 接入关键 reducer 执行日志
|
||||
- [ ] 接入资产任务状态日志
|
||||
- [x] 接入 tracing / request id / structured logs
|
||||
- [x] 接入慢请求追踪
|
||||
- [x] 接入上游 LLM / OSS / 短信 / 微信失败日志(沿用既有 provider error envelope 与 tracing,M7 固化字段口径)
|
||||
- [x] 接入关键 reducer 执行日志(现阶段固定 reducer 操作日志字段口径,真实 publish 日志回看继续由 SpacetimeDB smoke 承接)
|
||||
- [x] 接入资产任务状态日志(沿用 `AiTaskService / ai_task` 状态链,M7 固化 `task_id / status / asset_kind` 观测口径)
|
||||
|
||||
## 4. 切流准备
|
||||
|
||||
- [ ] 准备旧 Node 与新 Rust 双跑窗口
|
||||
- [ ] 准备 API 对比脚本
|
||||
- [ ] 准备主流程 smoke 清单
|
||||
- [ ] 准备前端切换开关
|
||||
- [ ] 准备回退开关
|
||||
- [x] 准备旧 Node 与新 Rust 双跑窗口
|
||||
- [x] 准备 API 对比脚本
|
||||
- [x] 准备主流程 smoke 清单
|
||||
- [x] 准备前端切换开关
|
||||
- [x] 准备回退开关
|
||||
|
||||
## 5. 主工程结构收口
|
||||
|
||||
- [ ] 拆分 `server-rs/crates/spacetime-module/src/lib.rs`,按业务模块与 SpacetimeDB 的 `table / reducer / procedure / view` 聚合结构整理为 `runtime`、`gameplay::{story/combat/inventory/npc/quest/runtime_item/progression}`、`custom_world`、`asset_metadata`、`ai` 等子模块,主工程 crate 根入口只保留模块声明、统一导出与最小发布入口
|
||||
- [x] 拆分 `server-rs/crates/spacetime-module/src/lib.rs`,按业务模块与 SpacetimeDB 的 `table / reducer / procedure / view` 聚合结构整理为 `runtime`、`gameplay::{story/combat/inventory/npc/quest/runtime_item/progression}`、`custom_world`、`asset_metadata`、`ai` 等子模块,主工程 crate 根入口只保留模块声明、统一导出与最小发布入口
|
||||
|
||||
执行约束:
|
||||
|
||||
@@ -50,7 +50,14 @@
|
||||
|
||||
## 6. 阶段验收
|
||||
|
||||
- [x] 本地切流前预检通过(`server-rs/scripts/m7-preflight.ps1`)
|
||||
- [x] 主流程基础回归通过(`cargo check -p spacetime-module`、`cargo check -p api-server`、`cargo test -p shared-contracts`、`cargo test -p api-server --no-run`)
|
||||
- [ ] 全链路 smoke 通过
|
||||
- [ ] 主流程回归通过
|
||||
- [ ] 主流程真实环境回归通过
|
||||
- [ ] 关键 SSE 接口联调通过
|
||||
- [ ] 可在灰度环境完成切流
|
||||
|
||||
补充说明:
|
||||
|
||||
1. M7 已新增 [../docs/technical/M7_TEST_DEPLOY_CUTOVER_EXECUTION_PLAN_2026-04-22.md](../docs/technical/M7_TEST_DEPLOY_CUTOVER_EXECUTION_PLAN_2026-04-22.md),冻结本地预检、部署、灰度、双跑、回滚与结构收口口径。
|
||||
2. 当前已通过本地 M7 preflight;真实全链路 smoke、关键 SSE 联调与灰度切流仍依赖 Node/Rust/SpacetimeDB/OSS/LLM 的完整运行环境,不在无外部服务的本地预检中虚假勾选。
|
||||
|
||||
Reference in New Issue
Block a user