suzmii
4d070dd1a9
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(游戏共创): 工程源包规则与服务端对齐,并加机器 parity 门禁
规则对齐(以服务端为权威,`module-game-distribution/src/project_bundle.rs`):
- 凭据/隐私两侧补齐:客户端新增 `.git-credentials`、`id_rsa*`、`id_ed25519*`、`*.map`,
并把 `.env` 放宽成服务端同形的 `starts_with(".env")`(`.envrc` 之类一并排掉)。
反向无需补:客户端没有服务端缺的凭据类规则,比对一次后两侧凭据集合完全一致。
- 新增被漏掉的嵌套压缩包规则:服务端对任意层级 `*.zip` 一律拒收(解包阶段不递归校验,
等于绕过整份清单),客户端原来会把它打进包里 → 现在同样排除。
- `.agent` 由「项目根首层」对齐到**任意层级**(服务端口径;平台保留名两边一致比更宽松重要)。
- 客户端额外项保留并逐项写明理由:`game/dist`、`game/build`(AGC 脚手架构建输出)、
`.godot`(编辑器缓存,模板包指南同规则)、`exports`/`memory`(AGC 生成物与 Agent 记忆)。
- 规模上限统一到服务端数值:压缩包 ≤ 200 MiB(新增)、展开 ≤ 500 MiB、单文件 ≤ 64 MiB、
条目 ≤ 10 000、单文件 ≤ 包体 × 100(新增)。客户端先拦,不再出现「传到一半被 422 拒掉」。
- 顺手补上服务端已有的「大小写折叠后重名条目」防线:客户端提前失败关闭。
可机器比对的常量:规则集拆成 `BUNDLE_EXCLUDED_*` 常量、上限拆成 `PROJECT_BUNDLE_MAX_*`,
新增 `scripts/check-project-bundle-policy-parity.mjs` 逐 token/逐数值比对两侧(服务端每条规则
必须在客户端存在,客户端额外项只打印不算失败;抽不到 token 直接报错,避免假绿),并照既有
DTO parity 的形态接到 `package.json` 的 `check:*` 与 `lint` 链。
测试:客户端 17 条(新增 `.git-credentials`/`id_rsa`/`*.map`/`.envrc`/`.zip`/任意层级 `.agent`、
压缩包上限、压缩比上限各自一条;合同常量锚点改为与服务端逐项相等)。
2026-10-05 15:57:20 +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-05 04:40:07 +08:00
2026-10-05 00:42:47 +08:00
2026-10-05 04:40:07 +08:00
2026-09-28 19:20:21 +08:00
2026-09-28 21:46:29 +08:00
2026-09-28 18:58:38 +08:00
2026-09-28 21:13: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-01 18:37:46 +08:00
2026-10-05 15:57:20 +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-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