Files
Genarrative/server-rs/crates
suzmii 576c28354b
Project CI / AI game creator shell Rust lane 1/2 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust lane 2/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 / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend 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
feat(游戏共创): 公开目录支持 forkable 过滤(只列支持共创的作品)
- `forkable=1/true`(大小写不敏感、先 trim)→ 只返回 `fork_authorization != forbidden` 的公开作品;
  省略 / 空 / `0` / `false` / 非法取值一律按「未过滤」(宽容降级 = 现状:公开只读列表里的可选展示过滤
  不该让整个游戏广场 400,降级只会少列不会多列)。
- 过滤落在**事务内、切页之前**(api-server 只解析参数、不对返回结果做过滤)⇒ forbidden 不占页位、
  翻页不重不漏、末页仍为 `null`;分页与游标语义、响应形状均不变(**无新字段**,`forkAuthorization` 本来就在
  公开投影里)。
- 判据只有一份实现:`ForkAuthorization::stored_allows_fork`(未知档位按「禁止」解释,与 `/fork-source`
  403 同源)。
- 测试 +9:module 6(含「9 条里夹 4 条 forbidden、页大小 2 → 3 页且游标序列 / 末页 None / forbidden 不占位」、
  真值集合精确、未知档位失败关闭、不可见行不被 resurrect、未设置时逐条相等)+ api-server 2 + 结构断言 1。
- 文档 §3.4 目录行补 `&forkable=`、语义与宽容降级理由(该文档改动已由 peer 提交进 `67f691784`)。

门禁:`cargo check --all-targets` 0;`cargo test -p module-game-distribution` **149 passed**;
`-p spacetime-module` **308 passed / 1 ignored**;`-p api-server game_distribution` **114 passed**;
DTO parity 66 组 / 19 构建器 / 15 手拼类型;`check:spacetime-schema` 0(98 表);`check:encoding` 0(5641 files);
`cargo fmt --all -- --check` 0;`git diff --check` 0。
2026-10-07 14:47:26 +08:00
..
2026-07-16 18:33:06 +08:00