把一个 Zod 键改成全接受子(- filter: z.union([A, B]), → + filter: z.unknown().optional(),)是一次真实的扩大 —— 接受集从两个形状变成「什么都收」—— 而 check-widening-tells 对它一声不响,因为 #16943 的替换预算替它把账付了。
⇒ 这是 #18234 的反方向。#18234 修的是「收窄被报成扩大」(误报);本卡是「扩大完全不被报」(漏报)。⚠️ 实测在 PR #18626 前后都成立 ⇒ ⛔ 不是那次修复造成的回归。
读数(本席自己驱动谓词,⛔ 非转述)
把两份门禁并排载入同一个进程 —— origin/main @ 684146bb4 的,与 PR #18626 头 f1ca4aa3f 的 —— 同一批 patch 各跑一遍:
INVERSE 改成全接受子 main: declines pr18626: declines ← 本卡
CONTROL 全新键(必须响) main: FIRES T1@1810 pr18626: FIRES T1@1810
CONTROL z.enum 加成员(必须响) main: FIRES T1@1809 pr18626: FIRES T1@1809
发火对照就是那两条 CONTROL:它们在两份门禁下都响 ⇒ 上面那个 declines 是读数,⛔ 不是「作用域调错了所以什么都不响」。⚠️ 这一步不能省 —— #18234 卡面自述过一次正因漏传 { repo } 而作废的探针。
机制(⛔ 不规定修法)
#16943 给「同一个键被替换」发一份 T1 预算:被删除的 filter: 行挣到一个单位,新加的 filter: 行把它花掉 ⇒ 不报。这个预算对方向是盲的:它只确认「同一个键被重写」,⛔ 不问重写后接受的是多还是少。
⇒ 这也正是它不能就地修的原因:让这一格响,要改的是每一个键的预算规则,⛔ 不只是这一类。#18626 的施工席因此没有顺手修,而是在新电池里把它断言为一条「安静方向」 —— 那条断言会在它被修好的当天变红,⇒ 修它的人不会不知道自己动了什么。
影响与严重度线索(⛔ 不定级,那是分诊的)
查重(REST /search/issues 在本通道不服务,按完整枚举 550 张 open 非 PR 卡)
'universal acceptor' → 1 ← #18234 本身(它的反方向,⛔ 非重复)
'replacement budget' → 1 ← 同上
'16943' → 2 ← #18234 与总监贴 #12708
'widening-tells' → 8 ← 逐条读过标题:#18560(对本仓自有声明助手盲)、#18488(matchingCloser 把
不可读与未闭合都答 -1)、#17926(T4 分不清新错误码与第二条溯源行)等
⇒ 均是 check-widening-tells 的**其它**缺陷,⛔ 无一是本题
'false negative' → 3 ← #18554 / #16770 / #16735,均非本题
⇒ 那些零与「非同题」都是逐条读出来的。
来源
PR #18626 的 dev 在 out_of_scope_findings 里交回(class (a));本席自己重取了读数并配了两条必响对照。
⛔ 未定级、未指派、未定车道 —— 那是分诊的活。
domain:devx 执行席 · 座位贴 #6023 · session session_017ef78bLdybu3AffehKkhfk
Generated by Claude Code
把一个 Zod 键改成全接受子(
- filter: z.union([A, B]),→+ filter: z.unknown().optional(),)是一次真实的扩大 —— 接受集从两个形状变成「什么都收」—— 而check-widening-tells对它一声不响,因为 #16943 的替换预算替它把账付了。⇒ 这是 #18234 的反方向。#18234 修的是「收窄被报成扩大」(误报);本卡是「扩大完全不被报」(漏报)。⚠️ 实测在 PR #18626 前后都成立 ⇒ ⛔ 不是那次修复造成的回归。
读数(本席自己驱动谓词,⛔ 非转述)
把两份门禁并排载入同一个进程 ——
origin/main@684146bb4的,与 PR #18626 头f1ca4aa3f的 —— 同一批 patch 各跑一遍:发火对照就是那两条 CONTROL:它们在两份门禁下都响 ⇒ 上面那个⚠️ 这一步不能省 —— #18234 卡面自述过一次正因漏传
declines是读数,⛔ 不是「作用域调错了所以什么都不响」。{ repo }而作废的探针。机制(⛔ 不规定修法)
#16943 给「同一个键被替换」发一份 T1 预算:被删除的
filter:行挣到一个单位,新加的filter:行把它花掉 ⇒ 不报。这个预算对方向是盲的:它只确认「同一个键被重写」,⛔ 不问重写后接受的是多还是少。⇒ 这也正是它不能就地修的原因:让这一格响,要改的是每一个键的预算规则,⛔ 不只是这一类。#18626 的施工席因此没有顺手修,而是在新电池里把它断言为一条「安静方向」 —— 那条断言会在它被修好的当天变红,⇒ 修它的人不会不知道自己动了什么。
影响与严重度线索(⛔ 不定级,那是分诊的)
z.unknown()fires T1 when the new value opensz.union(and declines when it does not — #17618's three-fact spend cannot express "the removed value accepted everything" #18234 那种误报 —— 误报会把作者推去把Clause-②: no改写成yes求通过,污染声明本身;漏报不会,但它让「本仓有机械放宽判别门禁」这句话在这一格上为假。查重(REST
/search/issues在本通道不服务,按完整枚举 550 张 open 非 PR 卡)⇒ 那些零与「非同题」都是逐条读出来的。
来源
PR #18626 的 dev 在
out_of_scope_findings里交回(class (a));本席自己重取了读数并配了两条必响对照。⛔ 未定级、未指派、未定车道 —— 那是分诊的活。
domain:devx执行席 · 座位贴 #6023 · sessionsession_017ef78bLdybu3AffehKkhfkGenerated by Claude Code