4.8 KiB
4.8 KiB
M7:联调、回归、部署与切流任务清单
1. 测试体系
- 为 Axum handler 补接口测试(现阶段以既有
api-serverhandler 测试编译门禁 +server-rs/scripts/check.ps1固化;新增接口测试继续按主链补齐) - 为 SpacetimeDB reducer 补规则测试(现阶段以
cargo check -p spacetime-module作为 schema/reducer/procedure 最小门禁;真实数据库规则回归继续由本地 publish smoke 承接) - 为 view / projection 补数据一致性测试(现阶段以
shared-contractscontract 回归与 SpacetimeDB schema check 固化投影字段门禁) - 为 auth 主链补集成测试(现有
shared-contracts与api-server鉴权 handler 测试已纳入 Rust 主线检查入口) - 为 runtime snapshot 主链补集成测试(现有 runtime contract 回归已纳入 Rust 主线检查入口)
- 为 story action 主链补集成测试(现有 runtime story contract / handler 测试编译已纳入 Rust 主线检查入口)
- 为 custom world / agent 主链补集成测试(现阶段纳入
api-server编译与 Rust 主线检查;真实 LLM/OSS 环境联调继续由 smoke 承接) - 为 assets / OSS 主链补集成测试(现有 M6 OSS smoke 与 contract 测试保留,Rust 主线检查固化基础门禁)
- 为兼容 contract 补回归测试(
cargo test -p shared-contracts已纳入 Rust 主线检查)
2. 部署准备
- 设计 Axum 部署方式
- 设计 SpacetimeDB 发布方式
- 设计 OSS bucket / CDN / 域名方案
- 设计环境变量清单
- 设计灰度环境
- 设计数据迁移脚本
- 设计回滚策略
- 准备本地 Rust 一键联调脚本(
npm run dev:rust同时启动前端、Rustapi-server与本地 SpacetimeDB) - 准备 Ubuntu 发布包构建脚本(
npm run build:rust:ubuntu生成build/<timestamp>/,包含web/、api-server、spacetime_module.wasm、start.sh、stop.sh,并默认 scp 上传到目标服务器)
3. 观测能力
- 接入 tracing / request id / structured logs
- 接入慢请求追踪
- 接入上游 LLM / OSS / 短信 / 微信失败日志(沿用既有 provider error envelope 与 tracing,M7 固化字段口径)
- 接入关键 reducer 执行日志(现阶段固定 reducer 操作日志字段口径,真实 publish 日志回看继续由 SpacetimeDB smoke 承接)
- 接入资产任务状态日志(沿用
AiTaskService / ai_task状态链,M7 固化task_id / status / asset_kind观测口径)
4. 切流准备
- 准备旧 Node 与新 Rust 双跑窗口
- 准备 API 对比脚本
- 准备主流程 smoke 清单
- 准备前端切换开关
- 准备回退开关
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 根入口只保留模块声明、统一导出与最小发布入口
执行约束:
- 这是切流前的工程结构收口,不是新功能扩张;拆分过程中不得改变既有 table schema、reducer / procedure 名称、对外 contract 与 publish 行为。
- 拆分后的模块边界必须与
M0已冻结的模块迁移归属一致,避免spacetime-module再回退成单大包。 - 拆分完成后至少要保持
cargo check、SpacetimeDB 本地 build / publish 开发链路与主流程回归脚本可继续通过。
6. 阶段验收
- 本地切流前预检通过(M7 阶段性预检包装入口已归档,长期入口改为
server-rs/scripts/check.ps1) - 主流程基础回归通过(
cargo check -p spacetime-module、cargo check -p api-server、cargo test -p shared-contracts、cargo test -p api-server --no-run) - 全链路 smoke 通过
- 主流程真实环境回归通过
- 关键 SSE 接口联调通过
- 可在灰度环境完成切流
补充说明:
- M7 已新增 ../docs/technical/M7_TEST_DEPLOY_CUTOVER_EXECUTION_PLAN_2026-04-22.md,冻结本地预检、部署、灰度、双跑、回滚与结构收口口径。
- 本轮新增 ../docs/technical/RUST_LOCAL_AND_REMOTE_DEPLOYMENT_SCRIPTS_2026-04-22.md,并落地
scripts/dev-rust-stack.ps1、scripts/dev-rust-stack.sh、scripts/deploy-rust-remote.sh;其中发布脚本当前语义为生成 Ubuntu release 包。 - 当前 M7 阶段性 preflight 入口已归档;真实全链路 smoke、关键 SSE 联调与灰度切流仍依赖 Rust/SpacetimeDB/OSS/LLM 的完整运行环境,不在无外部服务的本地预检中虚假勾选。