## 这一类已实证发生三次 - `#918` → `#940`(`http-<status>` 铸造点按类收口) - `#963` → `#965`(transient 判定改读结构化 `status`) - `#970`(artifact 下载的「取消」改读结构槽) 每一次都是同一个形态:**控制流拿另一个仓决定的错误字符串比字面量**,而那个字符串的内容由平台决定。逐实例修 = 对新成员默认放行。 ## 事实基础(实测) `platform-error-code.ts` 的 `CLASSIFICATION_CODE = /^[a-z][a-z0-9_]{2,63}$/` **不含连字符** ⇒ - 单词形本地铸造名 `cancelled` / `network` / `disk` / `forbidden` / `unauthorized` / `retryable` —— 平台**可以**发出同名分类码; - kebab-case 的 `not-found` / `over-limit` / `sha256-mismatch` —— 结构上**不可**被伪造。 今天被控制流读的只有 `cancelled`(`#970` 已修),但另外五个随时可能成为第四个实例。 ## 扫描可行性(已实测) 正则 `/\.error\s*[!=]==\s*"…"/` 在 `packages/ui-mac` 全包只 6 处命中,去掉 `typeof` 假阳后**恰好 3 处** = `#970` 修的那三处。元判据(先证明扫描器抓得住已知的坏、放得过合法写法、对 NUL 内容不瞎)照 `platform-error-code-gate.test.ts` 的现成形状写。 ## 为什么现在不做 - `#962` 正在改咽喉本体(扩到嵌套信封),此刻加棘轮会连轮返工; - `#968` 正在做「源码文本锚不是闸门」的整类处置,新加同类闸需先对齐口径。 blocked-by #962, #968 ## AC 1. 闸的边界落在**咽喉**而不是枚举清单上 —— 对新成员默认拒绝,不是「当前这几处都合规」; 2. 元判据自检:合成正例必须命中、合法写法必须放行、枚举退化成空集必须红; 3. 登记进 `scripts/gate-files.tsv`(精确条数)。 Refs #970, #965, #940
Activity
jinjunnn commentedon Sep 17, 2026
票面清理(2026-09-16):关闭 —— 过度工程,不适合当前项目。
关闭理由:票要加一道全局扫描,禁止代码拿「平台可能伪造的错误字符串」来决定流程。这个毛病出现过三次,三次都已逐个修好;今天按票面给的扫描方式在桌面代码里再扫,生产代码零命中。它挡的是「将来可能出现的第四次」,而每次出现时都是一个可见的小 bug,修起来是单点改动。票里写的两个前置(#962、#968)虽已关闭,但不改变它是预防性机制的性质。
依据:
git grep -nE '\.error[[:space:]]*[!=]==[[:space:]]*"' origin/alpha -- packages/ui-mac/src去掉 typeof 与注释后,只剩测试文件 packages/ui-mac/src/renderer/alpha-ui/model-recovery.test.ts:225;同一命令能命中 platform-error-code-gate.test.ts:76 的已知样本error === "cancelled"是同形第三实例 #970)什么时候重开:出现第四个同形实例。那时先单点修;如果短期内再出现一次,再考虑加扫描。
如判断有误,直接重开即可;重开时请在评论里说明新出现的情况。