suzmii
1e7ec6dbe7
实现游戏共创 M1:作品级共创授权与改编血缘
- game_distribution_game 表尾追加 fork_authorization(默认 forbidden,只升不降,旧行自动取默认)
- 新增 game_distribution_lineage 表,记录父作品、来源版本、根作品与代际,并按 parent/root/owner 建索引
- migration.rs 登记新表并注明血缘随迁移导出
- 新增 set_game_distribution_fork_authorization_and_return procedure 与幂等收据、期望值 CAS
- 创建作品时校验改编声明:来源存在、已公开、授权开放、来源版本等于当前公开版本;复用既有身份时拒绝携带血缘
- 公开与后台响应增量:forkAuthorization、forkCount、lineage、generation、forkedFromGameId、derivedCount
- 公开快照的作者名与头像改为读时联 user_account,不再落到「创作者」兜底文案
- api-server 新增 PUT /api/game-distribution/games/{game_id}/fork-authorization(Bearer、幂等键、期望值校验)
- 错误映射新增 FORK_ 前缀分支并置于通用子串分支之前,避免被误判成 409 或 404
- module-game-distribution 增加授权阶梯、代际计算与错误码,并补单测覆盖阶梯与错误码前缀
- 网页端详情页新增共创信息卡,我的作品页新增授权提升入口,补服务层调用与定向测试
- 重新生成 SpacetimeDB 绑定,登记 DTO 一致性脚本的共创类型
2026-10-05 17:30:44 +08:00
..
2026-10-04 00:16:14 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-04 00:16:14 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-30 14:07:25 +08:00
2026-09-28 15:53:37 +08:00
2026-09-30 11:51:03 +08:00
2026-09-28 15:07:30 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 15:07:30 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-27 18:57:54 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-03 15:40:21 +08:00
2026-09-28 14:16:11 +08:00
2026-10-05 15:35:55 +08:00
2026-09-28 17:28:15 +08:00
2026-09-18 12:15:00 +08:00
2026-09-18 19:34:23 +08:00
2026-09-18 19:34:23 +08:00
2026-09-28 17:40:44 +08:00
2026-09-28 14:16:11 +08:00
2026-10-03 12:50:18 +08:00
2026-09-28 14:16:11 +08:00
2026-10-03 12:35:57 +08:00
2026-10-01 19:19:58 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-03 17:18:13 +08:00
2026-09-28 14:16:11 +08:00
2026-10-01 16:30:40 +08:00
2026-10-05 17:30:44 +08:00
2026-09-29 15:04:32 +08:00
2026-10-02 16:03:28 +08:00
2026-10-01 19:19:58 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-01 19:19:58 +08:00
2026-10-02 15:23:12 +08:00
2026-09-28 14:16:11 +08:00
2026-09-29 07:08:30 +08:00
2026-09-29 06:18:40 +08:00
2026-10-04 00:16:14 +08:00
2026-09-28 14:16:11 +08:00
2026-09-29 06:27:04 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-04 00:16:14 +08:00
2026-09-28 14:16:11 +08:00
2026-09-29 06:18:40 +08:00
2026-09-30 14:07:25 +08:00
2026-09-28 15:53:37 +08:00
2026-09-30 11:51:03 +08:00
2026-09-28 15:24:45 +08:00
2026-09-28 15:59:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-29 13:55:06 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-27 18:56:44 +08:00
2026-09-27 19:01:00 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-09-30 19:42:13 +08:00
2026-09-28 14:16:11 +08:00
2026-10-05 15:35:55 +08:00
2026-09-28 19:52:16 +08:00
2026-09-30 13:35:14 +08:00
2026-09-20 20:44:12 +08:00
2026-09-18 19:34:23 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 17:40:21 +08:00
2026-09-28 14:16:11 +08:00
2026-10-02 20:50:50 +08:00
2026-10-05 17:30:44 +08:00
2026-10-05 17:30:44 +08:00
2026-09-21 16:25:35 +08:00
2026-09-28 14:16:11 +08:00
2026-10-04 00:17:21 +08:00
2026-10-01 19:19:58 +08:00
2026-09-28 14:16:11 +08:00
2026-09-29 00:47:54 +08:00
2026-09-28 14:16:11 +08:00
2026-10-05 17:30:44 +08:00
2026-09-28 14:16:11 +08:00
2026-10-03 17:18:13 +08:00
2026-09-28 14:16:11 +08:00
2026-10-05 17:30:44 +08:00
2026-10-01 19:19:58 +08:00
2026-10-01 19:19:58 +08:00
2026-09-28 14:16:11 +08:00
2026-09-28 14:16:11 +08:00
2026-10-01 19:19:58 +08:00
2026-09-28 14:16:11 +08:00
2026-09-30 13:35:14 +08:00
2026-10-02 15:23:12 +08:00
2026-09-29 06:37:40 +08:00