suzmii
959ed4fd53
合并 origin/master(51cb05f41,22 个提交)到 feat/game-purchase
- 逐块合并 server-rs/crates/api-server/src/modules/game_distribution.rs:以 master 的 ReleaseAssetResponseInput / 5 参 release_asset_response_with_cache / ETag / 304 / gzip 结构为准,并在其上保留本分支的付费 404 守卫(price_mud_points > 0 仍在 release_package_bytes 读包之前返回);播放会话资源响应改用同一结构(etag None、cache_control no-store、沿用 accept-encoding 协商)。
- 合并 src/components/game-distribution/GamePlayPage.tsx:接入 master 的共享 PlatformGameLoadingSurface 与 PLATFORM_GAME_LOADING_TIMEOUT_MS,删除本地重复常量 GAME_PLAY_STARTUP_TIMEOUT_MS 与裸 div,买断制播放会话准备态改由共享加载面承载。
- 合并 src/components/game-distribution/GameDetailPage.tsx:同时保留 master 的 onOpenCreator 作者插槽与本分支的买断制购买弹窗、onOpenRecharge 充值入口。
- 合并 vite.config.ts:保留 master 的 /api/creators 代理,并保留 play-sessions 前缀清 Cookie 规则(顺序仍在通用 /api/game-distribution 之前)。
- 合并 deploy/nginx/README.md:保留 master 的 SPA allowlist 门禁口径(含 /creators、/creators/connections)与本分支的播放会话前缀章节;三份 nginx 模板的 ^~ play-sessions location 与清 Cookie 原样保留。
- 合并 apps/admin-web/src/pages/AdminGameDistributionReviewPage.test.tsx:保留 master 的加载面/超时用例与本分支的审核价格(冻结价优先、历史按 0)用例。
- 合并 src/components/game-distribution/GameDistributionPages.test.tsx:保留双方 mock,并新增「付费作品在会话签发期间显示共享加载面」用例。
- 合并 docs/【玩法创作】平台入口与玩法链路-2026-05-15.md(保留买断制合同并回填 master 的创作者主页与关注粉丝合同)、decision-log.md、pitfalls.md:追加双方条目,不改写任一侧正文。
- 保留 master 侧新增能力:release_asset_etag / if_none_match_matches / accepts_gzip_encoding / gzip_release_asset / release_asset_not_modified_response、SPA 加载面、创作者主页与关注粉丝(user_follow 表、creator 查询与 author_id 过滤)。
2026-10-06 00:28:36 +08:00
..
2026-10-05 00:55:29 +08:00
2026-10-03 20:19:45 +08:00
2026-10-04 00:38:06 +08:00
2026-09-24 11:47:32 +08:00
2026-09-18 14:34:10 +08:00
2026-09-21 21:09:34 +08:00
2026-09-21 21:09:34 +08:00
2026-10-02 15:14:34 +08:00
2026-09-28 14:15:02 +08:00
2026-09-28 14:15:02 +08:00
2026-08-20 19:07:25 +08:00
2026-09-19 01:28:27 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-10-02 17:54:10 +08:00
2026-09-24 16:56:49 +08:00
2026-10-02 18:10:17 +08:00
2026-10-03 20:19:45 +08:00
2026-09-30 14:07:25 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-09-14 13:56:56 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-08-20 19:07:25 +08:00
2026-10-02 12:08:26 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-09-17 17:56:53 +08:00
2026-10-03 17:41:30 +08:00
2026-10-05 15:35:55 +08:00
2026-09-19 15:08:31 +08:00
2026-09-19 15:08:31 +08:00
2026-10-03 17:41:30 +08:00
2026-09-22 16:45:29 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-30 13:11:45 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 13:42:40 +08:00
2026-10-03 19:21:18 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 21:09:34 +08:00
2026-09-28 14:15:02 +08:00
2026-10-03 20:19:45 +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-10-05 20:20:53 +08:00
2026-10-04 00:24:45 +08:00
2026-10-05 20:20:53 +08:00
2026-10-01 16:30:40 +08:00
2026-10-04 00:24:45 +08:00
2026-10-04 14:04:02 +08:00
2026-10-02 13:07:00 +08:00
2026-10-04 16:59:59 +08:00
2026-09-15 12:14:03 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-09-29 19:35:49 +08:00
2026-09-23 18:38:47 +08:00
2026-10-05 17:08:03 +08:00
2026-09-28 15:07:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-28 14:15:02 +08:00
2026-10-03 17:41:30 +08:00
2026-09-13 14:48:55 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-09-22 15:35:51 +08:00
2026-10-03 17:41:30 +08:00
2026-09-10 18:48:56 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 03:48:40 +08:00
2026-10-03 20:19:45 +08:00
2026-10-04 16:59:59 +08:00
2026-09-15 10:37:47 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-10-04 15:13:31 +08:00
2026-10-03 20:19:45 +08:00
2026-08-20 19:07:25 +08:00
2026-10-03 20:19:45 +08:00
2026-09-14 13:19:13 +08:00
2026-10-03 20:19:45 +08:00
2026-09-23 11:12:39 +08:00
2026-09-21 01:23:35 +08:00
2026-09-12 20:49:03 +08:00
2026-10-03 20:19:45 +08:00
2026-09-19 01:50:09 +08:00
2026-09-14 11:32:17 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-09 16:09:39 +08:00
2026-09-21 22:56:32 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-12 20:49:03 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 11:58:13 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 01:33:06 +08:00
2026-10-04 00:38:06 +08:00
2026-09-19 21:59:44 +08:00
2026-09-11 21:31:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-20 23:32:09 +08:00
2026-10-02 18:10:17 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-09-21 12:34:47 +08:00
2026-10-04 17:14:26 +08:00
2026-09-21 11:58:13 +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-10-04 13:11:37 +08:00
2026-10-03 20:19:45 +08:00
2026-09-19 01:50:09 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 01:23:35 +08:00
2026-09-12 20:49:03 +08:00
2026-10-03 17:41:30 +08:00
2026-10-04 14:04:02 +08:00
2026-09-21 01:23:35 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-09-21 06:21:19 +08:00
2026-09-21 01:23:35 +08:00
2026-09-19 01:50:09 +08:00
2026-10-03 17:41:30 +08:00
2026-08-12 10:54:16 +08:00
2026-10-03 17:41:30 +08:00
2026-09-16 03:59:27 +08:00
2026-09-16 17:39:23 +08:00
2026-09-20 17:36:02 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-09-28 14:15:02 +08:00
2026-09-11 20:29:45 +08:00
2026-09-17 19:01:35 +08:00
2026-10-03 20:19:45 +08:00
2026-09-19 01:28:27 +08:00
2026-09-19 01:28:27 +08:00
2026-09-20 17:36:02 +08:00
2026-10-03 20:19:45 +08:00
2026-10-02 22:24:00 +08:00
2026-09-21 21:09:34 +08:00
2026-08-12 13:14:55 +08:00
2026-10-03 20:19:45 +08:00
2026-09-21 01:23:35 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-10-04 17:14:26 +08:00
2026-10-04 15:56:41 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-10-04 14:48:28 +08:00
2026-10-05 17:08:03 +08:00
2026-10-04 20:50:26 +08:00
2026-09-23 00:09:12 +08:00
2026-09-16 05:42:20 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +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-10-03 17:41:30 +08:00
2026-09-20 14:49:57 +08:00
2026-10-03 20:19:45 +08:00
2026-09-23 16:51:15 +08:00
2026-09-23 16:51:15 +08:00
2026-10-03 17:41:30 +08:00
2026-09-23 19:05:33 +08:00
2026-09-03 19:36:18 +08:00
2026-10-03 17:41:30 +08:00
2026-08-20 19:07:25 +08:00
2026-08-20 19:07:25 +08:00
2026-09-24 16:04:29 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-08-20 19:07:25 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 17:41:30 +08:00
2026-10-02 13:48:26 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 17:41:30 +08:00
2026-10-03 20:19:45 +08:00
2026-10-03 20:19:45 +08:00
2026-09-20 17:36:02 +08:00
2026-10-03 17:41:30 +08:00
2026-09-28 14:15:02 +08:00
2026-10-05 15:35:55 +08:00
2026-09-23 19:05:33 +08:00
2026-09-19 15:08:31 +08:00
2026-10-03 17:41:30 +08:00
2026-10-04 14:04:02 +08:00
2026-09-24 16:25:21 +08:00
2026-10-03 20:19:45 +08:00
2026-10-05 15:35:55 +08:00