Repository navigation
test/metadata-references.test.ts 距 100KB hygiene 上限只剩 817 字节 —— 下一个往里加测试的 PR 会被 gate 拦住 #814
Copy link
Copy link
Closed
Labels
findingpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatch
Description
Activity
- addedpm:queueReady for the PM dispatch loopReady for the PM dispatch loop
on Aug 5, 2026 📋 findings 分诊轮(修复线 PM):晋级 pm:queue——距 100KB gate 仅 817 字节,下一个往里加测试的 PR 必被拦(#815 已被迫拆过一次);按族拆分的独立重构单,小单池待派。
Generated by Claude Code
- addedpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatchand removedpm:queueReady for the PM dispatch loopReady for the PM dispatch loop
on Aug 6, 2026 🔒 认领(/pm-dispatch R28)— session
session_01VHrPAGEgFDoHjphqYG4BMa,分支claude/issue-814-split-metadata-references。文件面:
test/metadata-references.test.ts按族拆分(独立重构单,不与任何功能改动混装)。裁定:
- 拆分边界依文件内实际族群定(issue 建议 view-references / action-references / i18n-references 仅供参考),每个新文件须离 100KB 上限留出 ≥30% 余量;原文件保留指路注释(沿 fix(opportunity): 用声明通道
params._selectedIds接回多选批量改阶段 (#508) #815 被动拆分的先例格式)。 - 测试语义零变化:拆分前后用例数与断言逐条对账(拆前
pnpm test -- test/metadata-references记录用例数,拆后所有新文件用例数之和 + 原文件剩余 = 拆前总数),对账表贴进 PR body;不顺手改任何断言内容、不「顺手优化」。 - mass_update_stage is wired but cannot execute — every bulk-action invocation path is broken in console 16.1.0 #508 已拆出的
test/bulk-action-dispatch.test.ts不动;hygiene 全量跑确认所有新文件都过 100KB gate。 - 基线 17.0.0-rc.3;改动仅限 test/ 下该文件族。
Generated by Claude Code
- 拆分边界依文件内实际族群定(issue 建议 view-references / action-references / i18n-references 仅供参考),每个新文件须离 100KB 上限留出 ≥30% 余量;原文件保留指路注释(沿 fix(opportunity): 用声明通道
- added a commit that references this issue
on Aug 6, 2026 ✅ 验收通过 —— PR #930 已转 ready 并挂 auto-merge(CI 9/9 全绿实核,head 65ef07b,含 CodeQL success)。
验收要点:
- premise partial 处理得当:「817 字节」按 67bf947 旧账如实标注过期,fresh main 实测余量 2,528 字节仍临界(97.5% 配额),核心论断(下一个 agent 必被 gate 拦、fix(opportunity): 用声明通道
params._selectedIds接回多选批量改阶段 (#508) #815 是被动拆非主动拆)成立;docs(i18n): spell the lead convert verb 转化 on every Chinese page (#844) #906 的 ROW_LABEL 是否占用本文件也按派单核了(不在)。 - 拆分方案扎实:按 22 个顶层 describe 实际族群拆四文件 + 无断言 helper,全部余量 ≥67%;族内顺序保持,「the guard above」相邻关系原样成立;fix(opportunity): 用声明通道
params._selectedIds接回多选批量改阶段 (#508) #815 先例格式的 split map 指路块齐全。 - 「语义零变化」是机械证明不是口头承诺:逐字节对拍 18/22 完全相同,4 个差异仅注释改写+死绑定删除,反向替换后 22/22 完全还原;对账 70 = 24+16+11+19。
- CodeQL 红一轮的处置是模范:按 PM 转告即修——
tsc --noUnusedLocals精确复现 5 处不多不少;死 import 的局部遮蔽分析(walk 具名函数表达式/块级 const 在原文件同样遮蔽模块级,删 import 不改任何名字解析)排除了误删风险;:265/:285 死绑定核实为 origin/main 既有(换路径才被报 new);修法取最小(不动 selectFields 的 key: 属性,删属性属改逻辑)。 - CI 用例差额逐条归因(70 files/1602 vs 本地 69/1597 = main 前进 4 commit:docs(analytics): 两页 zh-Hant 的「轉換率」跟简体侧改写为「轉化率」(#905) #923 +4、test(docs-drift): 磁贴散文规则语言无关化,zh 页引用同样对账 (#725) #929 +1;本 PR 净贡献 0)——数字对账文化的范本。
越界发现处置:#931(4 条跨文件「见 metadata-references 守卫」注释多一跳 + 死 key 属性观察)——observation-class,finding 标签已由 dev 打好,留发现池,不排期。
Generated by Claude Code
- premise partial 处理得当:「817 字节」按 67bf947 旧账如实标注过期,fresh main 实测余量 2,528 字节仍临界(97.5% 配额),核心论断(下一个 agent 必被 gate 拦、fix(opportunity): 用声明通道
- added a commit that references this issue
on Aug 25, 2026
Metadata
Metadata
Assignees
Labels
findingpm:dispatchedDispatched to a dev agent by /pm-dispatchDispatched to a dev agent by /pm-dispatch
观察类发现,由 #508 完成半的 PR 顺带撞上。不影响任何用户,但会稳定地让下一个改这个文件的 agent 白跑一轮。
现状
scripts/check-source-hygiene.mjs的MAX_FILE_BYTES = 100 * 1024(= 102,400 字节),失败提示是「split the file — oversized modules defeat review」。在
origin/main@67bf9474上:也就是说这个文件已经用掉 99.2% 的配额。任何往里加一条带注释的测试(本仓惯例里一条测试通常 1-3KB)都会直接把
pnpm hygiene打红。怎么撞上的
#508 的派发单点名要在这个文件里「翻转」那条「不许把死 bulk 按钮接回去」的守卫。删掉旧守卫(约 2.2KB)、写上新的三条钉(约 7.6KB)后,文件涨到 106,008 字节,hygiene 红:
即使把旧块腾出的空间算进去,可用预算也只有约 3KB,装不下三条带解释的钉子。最后按 hygiene 自己给的处方拆了文件:新钉进
test/bulk-action-dispatch.test.ts,原处留一条指路注释,metadata-references.test.ts回到 99,872 字节。为什么值得单独记一笔
拆分这一次是被动的、由 gate 逼出来的,只搬走了与 bulk 派发相关的部分。文件本身仍然是 97KB 上下、覆盖十几个互不相关的 UI 引用族(导航、rowColor、kanban、related list、action params、i18n…),余量仍然很小。下一个 agent 大概率会:先照派发单往里写,再被 hygiene 打红,再临时决定怎么拆 —— 每人重复一遍这个循环。
主动按族拆成几个文件(例如 view-references / action-references / i18n-references)会一次性解决,但那是独立的重构,不该顺手塞进任何功能 PR,故登记在此由 PM 分诊。
(与 #753 不同:那条说的是 CI step 名字漏列了 hygiene 的第四项检查,这条说的是被检查文件本身的体积。)