suzmii
3ae0d129ef
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
test(游戏共创): 一致性门禁把内容嗅探与 magic bytes 纳入比对(补最后一处规则空白)
- `scripts/check-project-bundle-policy-parity.mjs` 新增第 4 维:**凭据内容嗅探与嵌套包 magic bytes**。复核指出这两套「换名字也拦得住」的规则只靠常量表表达,过去门禁对 `sniff|PEM|AKIA|magic|secret` 零命中(只有看得见的规则才有守卫),本次补齐:
· `SECRET_CONTENT_TEXT_EXTENSIONS` / `SECRET_CONTENT_SIGNATURES`(字符串数组集合相等)、`SECRET_CONTENT_MAX_SNIFF_BYTES` / `NESTED_ARCHIVE_SNIFF_BYTES`(整数相等)、`SECRET_AWS_ACCESS_KEY_PREFIX` / `PEM_PRIVATE_KEY_LINE_PREFIX` / `PEM_PRIVATE_KEY_MARKER`(字符串逐字相等)——新增 `rustStringConst` helper 抓 `&str` 常量
· `nested_archive_format` 里的 `b"..."` magic 字面量按「服务端 ⊆ 客户端」比对(客户端可以先拦、不能漏拦),并用新的 `byteStringLiterals` helper 抽取;两侧空集合一律 throw
- **「故意改一侧会红」已验证(两处,均已原样恢复)**:① 从客户端 `BUNDLE_FORBIDDEN_PATH_CHARS` 去掉 `'?'`/`'*'` → 报两条「路径段禁止字符…客户端没有」;② 从客户端 `SECRET_CONTENT_SIGNATURES` 去掉 `ghp_` → 报「嗅探规则不一致:服务端 …=ghp_|github_pat_|…,客户端 …=github_pat_|…」
- 文档 §3.5.2 与 §5.2 同步门禁的四个覆盖维度(目录/前缀/后缀/全名 + 上限、路径形状、内容嗅探特征表、magic bytes),并把 §5.2 的门禁行从「P1-a」扩为「P1-a + 嗅探维度」
- 门禁:`check-project-bundle-policy-parity` 0(服务端 51 条规则全被客户端覆盖;嗅探:`ghp_/github_pat_/xoxa-/xoxb-/xoxp-` + `AKIA` + PEM 标记;magic:7z / PK / Rar! / gzip / ustar;窗口 512 字节两侧一致);`check:doc-index` 248 份 OK;`check:encoding` 5305 files OK;`git diff --check` 0
2026-10-05 17:42:46 +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 17:30:47 +08:00
2026-10-05 17:30:45 +08:00
2026-10-05 17:30:47 +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-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-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