kdletters
4a2b270714
补齐游戏分发封面与截图的冻结、上传与展示
- 服务端:游戏表追加可空 cover_object_key / screenshots_json,版本表追加可空 metadata_json,创建版本时校验必需封面、最多 6 张截图与图片素材归属,并从素材记录派生对象键生成冻结资料。
- 服务端:审核通过时把冻结资料整体生效到游戏行;只有已公开且存在有效活动版本的游戏,其封面/截图素材才在 /api/assets/read-url 获得匿名读授权。
- 服务端:作者与管理员回读版本时追加 frozenMetadata,带回封面与截图素材 ID 供续发复用,公开投影仍只暴露对象键。
- 网页:/games/publish 新增「封面与截图」区,复用平台图片直传与 confirm 通道,缺封面或截图超量在发请求前拦截,更新版本时按冻结资料回填且不要求重新上传。
- 网页:游戏广场卡片与详情页 hero 换签展示真实封面,详情页新增可点击的截图缩略图条,无素材或换签失败时静默回退原有渐变占位。
- AGC:发布面板支持封面必选与截图最多 6 张,新增素材直传服务并在创建游戏前拦截缺封面,同一文件重复提交复用素材 ID。
- AGC:http 能力作用域新增阿里云 OSS 直传地址,客户端同时校验直传目标必须是平台素材存储。
- 契约与文档:同步 shared-contracts、packages/shared 契约,更新 SpacetimeDB 迁移注释、后端架构、玩法链路与实施计划文档,并补齐网页端与 AGC 定向测试。
2026-09-20 22:19:50 +08:00
..
2026-09-20 20:49:42 +08:00
2026-09-16 06:03:16 +08:00
2026-09-18 14:34:10 +08:00
2026-09-18 15:46:30 +08:00
2026-09-07 17:05:42 +08:00
2026-08-28 17:09:02 +08:00
2026-09-16 07:09:12 +08:00
2026-08-24 21:44:44 +08:00
2026-09-20 14:49:57 +08:00
2026-09-20 14:49:57 +08:00
2026-09-20 22:19:50 +08:00
2026-09-19 01:28:27 +08:00
2026-08-20 19:07:25 +08:00
2026-09-19 01:28:27 +08:00
2026-09-20 14:49:57 +08:00
2026-09-16 06:03:16 +08:00
2026-09-12 20:48:13 +08:00
2026-09-19 16:19:28 +08:00
2026-09-19 16:19:28 +08:00
2026-09-19 16:19:28 +08:00
2026-09-14 13:56:56 +08:00
2026-08-11 14:34:42 +08:00
2026-09-13 14:48:55 +08:00
2026-08-20 19:07:25 +08:00
2026-09-16 16:39:15 +08:00
2026-09-16 16:39:15 +08:00
2026-09-12 06:41:49 +00:00
2026-09-15 04:22:45 +00:00
2026-09-17 17:56:53 +08:00
2026-09-14 21:02:08 +08:00
2026-09-17 21:37:23 +08:00
2026-08-31 19:47:23 +08:00
2026-09-18 02:13:50 +08:00
2026-09-18 02:13:50 +08:00
2026-09-18 15:46:30 +08:00
2026-09-18 13:25:18 +08:00
2026-09-18 15:46:30 +08:00
2026-09-07 15:17:21 +08:00
2026-09-03 10:02:05 +08:00
2026-09-07 15:17:21 +08:00
2026-08-20 19:07:25 +08:00
2026-09-17 17:56:53 +08:00
2026-09-20 22:19:50 +08:00
2026-09-20 22:19:50 +08:00
2026-09-20 22:19:50 +08:00
2026-09-15 12:14:03 +08:00
2026-09-03 20:02:48 +08:00
2026-07-20 05:50:24 +08:00
2026-09-03 10:35:23 +08:00
2026-09-10 13:08:29 +08:00
2026-09-20 17:38:48 +08:00
2026-09-13 14:48:55 +08:00
2026-09-12 16:31:55 +08:00
2026-09-10 18:48:56 +08:00
2026-08-13 13:36:21 +08:00
2026-09-14 11:32:17 +08:00
2026-09-18 14:10:05 +08:00
2026-09-15 10:37:47 +08:00
2026-09-18 01:48:13 +08:00
2026-09-17 15:46:43 +08:00
2026-09-17 15:46:43 +08:00
2026-09-20 10:07:31 +08:00
2026-08-20 19:07:25 +08:00
2026-09-14 13:19:13 +08:00
2026-07-21 19:40:38 +08:00
2026-09-12 20:49:03 +08:00
2026-09-19 01:50:09 +08:00
2026-09-19 01:50:09 +08:00
2026-09-14 11:32:17 +08:00
2026-09-17 18:18:32 +08:00
2026-09-11 23:33:08 +08:00
2026-09-09 16:09:39 +08:00
2026-09-19 01:50:09 +08:00
2026-09-19 01:50:09 +08:00
2026-09-19 03:21:37 +08:00
2026-09-19 01:50:09 +08:00
2026-09-14 23:01:35 +08:00
2026-09-12 20:49:03 +08:00
2026-09-19 01:50:09 +08:00
2026-09-17 17:37:48 +08:00
2026-09-11 13:54:12 +08:00
2026-09-11 21:31:30 +08:00
2026-09-11 20:29:45 +08:00
2026-09-17 18:09:27 +08:00
2026-09-13 14:07:03 +08:00
2026-09-19 01:50:09 +08:00
2026-09-17 20:15:38 +08:00
2026-09-18 13:25:18 +08:00
2026-09-18 13:25:18 +08:00
2026-09-19 01:50:09 +08:00
2026-09-14 23:33:32 +08:00
2026-09-17 19:35:41 +08:00
2026-09-17 17:47:11 +08:00
2026-09-11 16:42:40 +08:00
2026-07-31 12:00:48 +08:00
2026-09-19 01:28:27 +08:00
2026-09-18 13:25:18 +08:00
2026-09-19 01:50:09 +08:00
2026-09-12 20:49:03 +08:00
2026-09-19 01:28:27 +08:00
2026-09-10 21:00:54 +08:00
2026-09-11 16:42:58 +08:00
2026-09-14 17:13:43 +08:00
2026-09-19 01:28:27 +08:00
2026-09-19 01:50:09 +08:00
2026-09-19 01:50:09 +08:00
2026-09-17 20:28:39 +08:00
2026-08-12 10:54:16 +08:00
2026-09-10 20:41:19 +08:00
2026-09-16 03:59:27 +08:00
2026-09-16 17:39:23 +08:00
2026-09-11 16:58:49 +08:00
2026-08-12 10:54:16 +08:00
2026-09-13 14:07:03 +08:00
2026-09-11 20:29:45 +08:00
2026-09-17 19:01:35 +08:00
2026-09-19 01:28:27 +08:00
2026-09-19 01:28:27 +08:00
2026-09-19 01:28:27 +08:00
2026-09-12 20:48:13 +08:00
2026-09-15 23:37:58 +08:00
2026-09-17 17:37:48 +08:00
2026-08-12 13:14:55 +08:00
2026-09-16 16:51:37 +08:00
2026-09-19 01:28:27 +08:00
2026-09-20 14:49:57 +08:00
2026-09-12 15:30:38 +08:00
2026-09-12 20:49:03 +08:00
2026-09-12 17:23:22 +08:00
2026-09-16 05:42:20 +08:00
2026-09-14 14:34:33 +08:00
2026-09-12 20:48:13 +08:00
2026-09-10 13:08:29 +08:00
2026-09-14 21:02:08 +08:00
2026-09-13 14:48:55 +08:00
2026-09-13 14:07:03 +08:00
2026-07-30 18:01:19 +08:00
2026-07-30 18:01:19 +08:00
2026-09-12 17:23:22 +08:00
2026-09-20 14:49:57 +08:00
2026-09-17 17:48:06 +08:00
2026-09-17 17:48:06 +08:00
2026-09-20 12:12:49 +08:00
2026-08-20 19:07:25 +08:00
2026-09-03 19:36:18 +08:00
2026-09-15 18:06:27 +08:00
2026-08-20 19:07:25 +08:00
2026-08-20 19:07:25 +08:00
2026-08-20 19:07:25 +08:00
2026-09-08 11:56:36 +08:00
2026-09-17 11:56:17 +08:00
2026-09-10 13:08:29 +08:00
2026-09-10 13:08:29 +08:00
2026-08-20 19:07:25 +08:00
2026-09-10 13:08:29 +08:00
2026-09-19 12:29:27 +08:00
2026-09-10 13:08:29 +08:00
2026-09-18 13:25:18 +08:00
2026-09-19 01:28:27 +08:00
2026-09-12 20:48:13 +08:00
2026-09-20 12:12:49 +08:00
2026-08-08 10:25:02 +08:00
2026-09-16 03:39:21 +08:00
2026-09-16 02:30:28 +08:00
2026-08-23 19:06:05 +08:00
2026-09-10 15:11:29 +08:00
2026-09-20 10:07:31 +08:00
2026-09-20 14:49:57 +08:00