suzmii
4b1f24a8fc
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/2 (pull_request) Has been cancelled
feat(游戏共创): 收录(收藏)契约与文档同步(块 3/3)
- `shared-contracts`:新增 `GameDistributionCollectionState { collected, replayed: Option<bool> }` 承载 PUT/DELETE 共用形状(PUT 才发 `replayed`);既有 `GameDistributionGameSummary` 增 `collected: Option<bool>`(公开详情登录时才带)——该类型只被 api-server 测试与 `GameDistributionListResponse` 引用,加字段不影响任何现有发送方
- `packages/shared` TS 镜像同步(`{ collected: boolean; replayed?: boolean }` 与 `GameDistributionGame.collected?: boolean`),并按既有约定登记进 `scripts/check-game-distribution-dto-parity.mjs`(PAIRS + 手拼响应构建器);注意 `json!` 字面量里不插注释行(parity 脚本抓顶层键时不剥注释,这个坑今天踩过一次)
- 技术方案:`§2.4` 入口矩阵补「收藏按钮 / 我的收藏(登录)与我的作品页同行风格」;`§3.4` 接口表补三条路由(含 404/409 语义、PUT 要求幂等键而 DELETE 不要求及理由、`my-collections` 只含公开作品且不删行)与公开详情 `collected` 的可见性口径;`§7` 把「收录/收藏」从范围外移除并标注已纳入落地
- 数据契约表目录:新增 `game_distribution_collection` 小节(主键确定性、两个索引、为什么不删行、为什么不建唯一索引),供 `check:spacetime-schema` 守卫通过(94 tables)
- 门禁:DTO parity 0(**49 组** Rust/TS 一致,较本轮前 +7);`check:spacetime-schema` 0(94 tables,对照新 merge-base `51cb05f4`);`check:encoding` 0;`git diff --check` 0
2026-10-06 01:14:05 +08:00
..
2026-09-29 07:19:00 +08:00
2026-05-15 11:52:51 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-10-01 16:30:40 +08:00
2026-09-23 00:09:12 +08:00
2026-09-21 16:25:35 +08:00
2026-09-21 16:25:35 +08:00
2026-09-01 16:28:34 +08:00
2026-09-15 19:43:35 +08:00
2026-09-01 16:28:34 +08:00
2026-10-04 15:49:34 +08:00
2026-08-12 14:46:24 +08:00
2026-08-27 17:10:17 +08:00
2026-09-28 19:35:22 +08:00
2026-09-28 22:30:15 +08:00
2026-09-15 19:43:35 +08:00
2026-09-21 21:09:34 +08:00
2026-09-13 16:21:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-28 19:52:16 +08:00
2026-10-06 01:14:05 +08:00
2026-10-05 17:52:16 +08:00
2026-10-05 17:52:16 +08:00
2026-09-28 19:20:21 +08:00
2026-10-05 17:14:32 +08:00
2026-09-28 18:58:38 +08:00
2026-09-28 21:13:50 +08:00
2026-10-05 17:30:50 +08:00
2026-10-01 19:19:58 +08:00
2026-10-01 19:19:58 +08:00
2026-10-02 17:06:46 +08:00
2026-09-28 18:44:16 +08:00
2026-09-28 18:44:16 +08:00
2026-09-28 21:34:24 +08:00
2026-09-28 20:52:54 +08:00
2026-09-30 13:24:55 +08:00
2026-09-28 20:21:34 +08:00
2026-09-28 20:37:48 +08:00
2026-10-03 15:40:21 +08:00
2026-09-22 12:42:27 +08:00
2026-07-22 15:57:22 +08:00
2026-08-13 14:01:34 +08:00
2026-08-05 21:28:40 +08:00
2026-10-04 15:49:34 +08:00
2026-09-01 16:28:34 +08:00
2026-10-04 11:58:25 +08:00
2026-10-04 03:25:54 +08:00
2026-09-20 16:35:04 +08:00
2026-09-20 16:35:04 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-07-17 22:07:52 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-06-17 23:00:28 +08:00
2026-09-01 16:28:34 +08:00
2026-06-17 20:16:51 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-29 07:24:52 +08:00
2026-09-01 16:28:34 +08:00
2026-06-17 20:16:51 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-10-04 11:58:25 +08:00
2026-09-01 16:28:34 +08:00
2026-09-03 11:38:40 +08:00
2026-09-29 07:19:00 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-07-23 18:06:29 +08:00
2026-10-05 11:47:55 +08:00
2026-10-05 17:42:46 +08:00
2026-09-16 10:35:07 +08:00
2026-08-27 17:10:17 +08:00
2026-09-01 16:28:34 +08:00
2026-09-03 12:57:01 +08:00
2026-09-23 11:46:39 +08:00
2026-09-23 11:46:39 +08:00
2026-09-01 16:28:34 +08:00
2026-07-13 13:39:59 +08:00
2026-08-07 19:22:46 +08:00
2026-09-22 17:19:11 +08:00
2026-09-22 17:19:11 +08:00
2026-09-01 16:28:34 +08:00
2026-09-15 19:43:35 +08:00
2026-09-21 21:09:34 +08:00
2026-07-10 18:28:06 +08:00
2026-10-02 11:03:11 +08:00
2026-10-02 11:03:11 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-06-03 22:11:46 +08:00
2026-09-09 20:08:04 +08:00
2026-09-09 20:08:04 +08:00
2026-09-14 18:15:12 +08:00
2026-09-16 07:09:12 +08:00
2026-09-22 11:23:46 +00:00
2026-09-22 11:23:46 +00:00
2026-10-02 15:23:12 +08:00
2026-05-26 00:13:08 +08:00
2026-09-15 19:43:35 +08:00
2026-09-15 19:43:35 +08:00
2026-09-15 19:43:35 +08:00
2026-09-01 16:28:34 +08:00
2026-09-27 23:01:33 +08:00
2026-09-22 14:40:55 +00:00
2026-10-02 15:23:12 +08:00
2026-09-22 11:45:22 +00:00
2026-09-22 17:19:11 +08:00
2026-07-20 20:56:36 +08:00
2026-06-19 21:38:07 +08:00
2026-05-02 17:04:11 +08:00
2026-06-05 16:14:30 +08:00
2026-08-23 04:11:18 +08:00
2026-05-15 17:10:07 +08:00
2026-09-03 11:38:40 +08:00
2026-10-01 18:37:46 +08:00
2026-08-12 22:06:35 +08:00
2026-09-20 16:35:04 +08:00
2026-09-12 19:44:18 +08:00
2026-09-20 16:35:04 +08:00
2026-10-02 15:23:12 +08:00
2026-09-15 19:43:35 +08:00
2026-09-01 16:28:34 +08:00
2026-09-28 22:27:18 +08:00
2026-09-28 22:27:18 +08:00
2026-08-12 22:06:35 +08:00
2026-08-27 17:10:17 +08:00
2026-08-15 17:18:10 +08:00
2026-10-04 15:49:34 +08:00
2026-07-13 13:39:59 +08:00
2026-06-30 17:12:13 +08:00
2026-07-17 16:56:46 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-08-22 11:52:14 +08:00
2026-08-22 11:52:14 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-08-24 21:44:44 +08:00
2026-10-03 14:48:54 +08:00
2026-09-10 20:00:58 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-07-17 16:56:46 +08:00
2026-08-27 21:46:56 +08:00
2026-09-01 16:28:34 +08:00
2026-08-28 17:09:02 +08:00
2026-08-27 22:18:16 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-01 16:28:34 +08:00
2026-09-16 07:05:55 +08:00
2026-08-06 16:57:38 +08:00
2026-09-22 17:19:11 +08:00
2026-09-22 17:19:11 +08:00
2026-09-22 17:19:11 +08:00
2026-09-22 11:45:22 +00:00
2026-10-02 16:55:49 +08:00
2026-09-22 14:40:55 +00:00
2026-09-22 17:19:11 +08:00
2026-10-05 22:05:11 +08:00
2026-10-05 22:05:11 +08:00
2026-09-15 19:43:35 +08:00
2026-09-30 14:52:02 +08:00
2026-09-01 16:28:34 +08:00
2026-10-04 12:53:17 +08:00