由 domain:ui 派发席(session_01611D6ZaRaMmwTNQmSbk8MH)在 objectui#8083 交付轮后立卡;测量由该卡的实现席做出,⛔ 不是本席的推断。Generated by Claude Code.
测出来的事实
本仓有两道 vi.mock 面的门。objectui#8083 的实现席实测了它们对「override 的返回值形状漂移」的判别力:把那 13 个已知漂移的桩(useRecordPresence 被桩成 { viewers: [], others: [] },而真实返回类型是 PresenceUser[])原样放回磁盘,两道门打印同样的 verdict 行、同样的 exit 0,与修好后的树逐字一致。
| 门 |
它判的是什么 |
对本类漂移 |
check:vi-mock-specifiers |
一个相对 specifier 是否解析到文件 |
⛔ 看不见 —— 这些桩 mock 的是裸 specifier @object-ui/collaboration,门自己的汇总把它计入 935 bare (out of scope) |
check:vi-mock-inherit |
工厂是否取到了真实模块 |
⛔ 看不见 —— 那 13 个本来就在 spread ...(await importOriginal()),带着漂移完全合规 |
⇒ 两道门判的都不是 override 的值。 tsc 也不管:vi.mock 工厂是未类型化的,编译器从不拿桩去比对 PresenceUser[]。
为什么这值得一张卡
这一类今天没有任何自动化守卫,那 13 处漂移是靠一次人工普查才被发现的。
⚠️ 而它的失效方式是最坏的那种 —— 用 objectui#8083 卡片自己的话:「the 9 correct files move and the 13 stay green」。当被桩的契约变化时,桩对了的文件会红、桩错了的文件静默继续绿,套件从中间裂开,而多数派悄悄停止追踪那个 hook。
⭐ 更尖锐的一点(objectui#8083 已证实):{ viewers, others } 这个形状在本仓不存在任何真实来源 —— 全树扫描只在那 13 个桩里出现过。⇒ 它是从另一个 presence 界面借来的,也就是说这类漂移的产生方式是复制粘贴一个邻近但不同的形状,而不是误读类型。
承接者(⛔ 不是「无」)
任何为一个有类型的导出写 vi.mock override 的 PR。 这不是理论人口:门自己数出 935 处裸 specifier mock,而一次人工普查在单个 hook 的单个消费者目录下就找到 13 处漂移。
⛔ 本卡不主张什么
复现
# 门对本类漂移无判别力:把漂移放回磁盘,两道门的 verdict 与 exit 与修好后逐字一致
pnpm check:vi-mock-specifiers # 汇总行里会看到 "935 bare (out of scope)"
pnpm check:vi-mock-inherit
相关
objectui#8083(漂移本身,已修)· PR #8902(修复 + 变异测量)· objectui#8082(把工厂改成继承真实导出面的那一轮 —— 它正确地只动继承、不动 override 的值,所以既没引入也没修复本类漂移)。
由
domain:ui派发席(session_01611D6ZaRaMmwTNQmSbk8MH)在 objectui#8083 交付轮后立卡;测量由该卡的实现席做出,⛔ 不是本席的推断。Generated by Claude Code.测出来的事实
本仓有两道
vi.mock面的门。objectui#8083 的实现席实测了它们对「override 的返回值形状漂移」的判别力:把那 13 个已知漂移的桩(useRecordPresence被桩成{ viewers: [], others: [] },而真实返回类型是PresenceUser[])原样放回磁盘,两道门打印同样的 verdict 行、同样的 exit 0,与修好后的树逐字一致。check:vi-mock-specifiers@object-ui/collaboration,门自己的汇总把它计入935 bare (out of scope)check:vi-mock-inherit...(await importOriginal()),带着漂移完全合规⇒ 两道门判的都不是 override 的值。
tsc也不管:vi.mock工厂是未类型化的,编译器从不拿桩去比对PresenceUser[]。为什么这值得一张卡
这一类今天没有任何自动化守卫,那 13 处漂移是靠一次人工普查才被发现的。
⭐ 更尖锐的一点(objectui#8083 已证实):
{ viewers, others }这个形状在本仓不存在任何真实来源 —— 全树扫描只在那 13 个桩里出现过。⇒ 它是从另一个 presence 界面借来的,也就是说这类漂移的产生方式是复制粘贴一个邻近但不同的形状,而不是误读类型。承接者(⛔ 不是「无」)
任何为一个有类型的导出写
vi.mockoverride 的 PR。 这不是理论人口:门自己数出 935 处裸 specifier mock,而一次人工普查在单个 hook 的单个消费者目录下就找到 13 处漂移。⛔ 本卡不主张什么
vi.mock工厂加类型标注的 lint 规则),都没有裁。复现
相关
objectui#8083(漂移本身,已修)· PR #8902(修复 + 变异测量)· objectui#8082(把工厂改成继承真实导出面的那一轮 —— 它正确地只动继承、不动 override 的值,所以既没引入也没修复本类漂移)。