Files
Genarrative/backend-rewrite-tasklist/02_M3_RUNTIME_PROFILE.md

70 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# M3runtime snapshot / settings / profile 任务清单
## 1. SpacetimeDB 运行时主表
- [x] 设计 `runtime_snapshot`
- [x] 设计 `runtime_setting`
- [x] 设计 `profile_dashboard_state`
- [x] 设计 `profile_wallet_ledger`
- [x] 设计 `profile_played_world`
- [x] 设计 `profile_save_archive`
- [x] 设计 `user_browse_history`
## 2. 兼容快照策略
- [x] 设计“领域表真相 + 兼容聚合快照”策略
- [x] 设计 snapshot projection 刷新机制
- [x] 迁移当前 snapshot hydration / normalize 规则
- [x] 迁移当前 save archive 聚合逻辑
- [x] 迁移当前 browse history 去重与排序逻辑
## 3. Axum facade
- [x] 兼容 `GET /api/runtime/save/snapshot`
- [x] 兼容 `PUT /api/runtime/save/snapshot`
- [x] 兼容 `DELETE /api/runtime/save/snapshot`
- [x] 兼容 `GET /api/runtime/settings`
- [x] 兼容 `PUT /api/runtime/settings`
- [x] 兼容 `GET /api/runtime/profile/dashboard`
- [x] 兼容 `GET /api/profile/dashboard`
- [x] 兼容 `GET /api/runtime/profile/wallet-ledger`
- [x] 兼容 `GET /api/profile/wallet-ledger`
- [x] 兼容 `GET /api/runtime/profile/play-stats`
- [x] 兼容 `GET /api/profile/play-stats`
- [x] 兼容 `GET /api/runtime/profile/save-archives`
- [x] 兼容 `GET /api/profile/save-archives`
- [x] 兼容 `POST /api/runtime/profile/save-archives/:worldKey`
- [x] 兼容 `POST /api/profile/save-archives/:worldKey`
- [x] 兼容 `GET /api/runtime/profile/browse-history`
- [x] 兼容 `POST /api/runtime/profile/browse-history`
- [x] 兼容 `DELETE /api/runtime/profile/browse-history`
- [x] 兼容 `GET /api/profile/browse-history`
- [x] 兼容 `POST /api/profile/browse-history`
- [x] 兼容 `DELETE /api/profile/browse-history`
## 4. 阶段验收
- [ ] 登录用户可正常保存、读取、删除存档
- [x] 兼容路径与主路径返回一致
- [x] profile dashboard / browse history / save archive 行为一致
- [ ] 前端当前恢复流程可在不改 UI 的前提下跑通
## 5. 本轮进展记录
- `2026-04-21`:已完成 `runtime_setting` 首版设计与 `GET/PUT /api/runtime/settings` 的 Rust 主链迁移。
- 本轮已落地 `module-runtime``spacetime-module``spacetime-client``api-server` 四层串联,并补齐定向测试。
- 详细设计与字段冻结见:
- [../docs/technical/M3_RUNTIME_SETTINGS_AXUM_SPACETIMEDB_DESIGN_2026-04-21.md](../docs/technical/M3_RUNTIME_SETTINGS_AXUM_SPACETIMEDB_DESIGN_2026-04-21.md)
- `2026-04-22`:已完成 `user_browse_history` 表设计冻结、去重与排序规则迁移,以及 `/api/runtime/profile/browse-history``/api/profile/browse-history` 双路径 facade 落地。
- `2026-04-22`:已补 `browse history` 的 API 入口必填字段校验、批量 shape 兼容与定向测试,详细设计见:
- [../docs/technical/M3_BROWSE_HISTORY_AXUM_SPACETIMEDB_DESIGN_2026-04-21.md](../docs/technical/M3_BROWSE_HISTORY_AXUM_SPACETIMEDB_DESIGN_2026-04-21.md)
- `2026-04-22`:已冻结 `profile_dashboard_state``profile_wallet_ledger``profile_played_world` 三张 projection 表,以及 `dashboard / wallet-ledger / play-stats` 的 Axum + SpacetimeDB 读链设计。
- `2026-04-22`:已完成 `api-server``runtime_profile` facade 编译与定向测试收口,`/api/runtime/profile/*``/api/profile/*` 六条只读路由均已接通。
- `2026-04-22`:已通过 `cargo check -p api-server --tests --message-format short``cargo test -p shared-contracts --lib``cargo test -p api-server runtime_profile::tests:: -- --nocapture` 验证本轮 profile projection 读链。
- 详细设计见:
- [../docs/technical/M3_PROFILE_DASHBOARD_AXUM_SPACETIMEDB_DESIGN_2026-04-22.md](../docs/technical/M3_PROFILE_DASHBOARD_AXUM_SPACETIMEDB_DESIGN_2026-04-22.md)
- `2026-04-22`:已完成 `runtime_snapshot``profile_save_archive` 与“领域表真相 + 兼容聚合快照”方案落地,接通 `/api/runtime/save/snapshot``/api/runtime/profile/save-archives``/api/profile/save-archives` 与恢复存档双路径 facade。
- `2026-04-22`:已通过 `cargo test -p shared-kernel --lib``cargo test -p module-runtime --lib``cargo check -p spacetime-module --message-format short``cargo build -p spacetime-module --target wasm32-unknown-unknown --release --message-format short``cargo check -p spacetime-client --message-format short``cargo check -p api-server --tests --message-format short``cargo test -p api-server runtime_save::tests:: -- --nocapture` 验证 snapshot/save archive 主链编译与 facade。
- 详细设计见:
- [../docs/technical/M3_RUNTIME_SNAPSHOT_SAVE_ARCHIVE_AXUM_SPACETIMEDB_DESIGN_2026-04-22.md](../docs/technical/M3_RUNTIME_SNAPSHOT_SAVE_ARCHIVE_AXUM_SPACETIMEDB_DESIGN_2026-04-22.md)