You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
kernel authorization request: package-lock churn in PR branches tripping the kernel human-gate (8 PRs) #4828
Activity
ranxianglei commentedon Oct 26, 2026
(ai: vllm-qwen/qwen3.8-27b)
查重: 不重复。检索 open/closed issue 与近期 PR,无同类「kernel 锁文件漂移授权申请」条目(#4814/#4825 是此前被否定的自行补声明,不是平行申请)。本 issue 是该根因的唯一正规申请。
核查结果(逐 PR 拉了 diff、CI check-run 和 master 现状)
1. 8 个 PR 的 kernel-guard 全部确认红,但内容分两类——「全部是锁文件漂移」对 7 个成立,#4823 不成立:
kernel/package-lock.json变(+2/-2),内容就是记录版本号0.0.164→0.0.165;同一批 PR 的 rootpackage-lock.json也变了(acp-kernel条目0.0.163→0.0.165)。零依赖变更,与 [PR] ci: converge master-CI fixes (persist restamp guard + lockfile version sync) (#4599) #4814 的 dfadc21 字节一致。kernel/src/compress-tools.ts+33/-111、nudge-text.ts、packs.ts+ 6 个 kernel 测试 + roottests/wire-contract.test.ts,共 11 文件),不是锁文件问题。它缺两样:正文没有kernel-change:声明,且未按 Kernel Boundary 规则 2 bumpkernel/package.json版本号。对它执行 B(回滚 kernel/)等于把整个 PR 删掉——必须单列,走真实的 kernel 审批。2. B 方案按原文执行会换一种红,不可行。master 目前自身就不一致:
kernel/package.json=0.0.165,但kernel/package-lock.json记 0.0.164、root 锁记 0.0.163(窗口提交 293ae65/de5e03659 只 bump 未重生成锁)。CI 的 lock-sync 门禁会重新生成两个锁文件并 fail on diff,且对 master push 同样生效——已验证 master HEAD 自己就挂在 lock-sync 上。所以把 7 个分支的锁回滚到 master 现状 → kernel-guard 转绿、lock-sync 转红(连 root 锁一起回滚也一样)。这 7 个 PR 今天能全绿只有两条路:A(保留重生成的锁 + 经本 issue 批准的声明),或等 #4814 合入 master 后把这 7 个分支 rebase 到新 master(锁提交变空操作,两个门禁都绿且不需要任何声明)。两条路先后顺序无所谓:谁先进 master,另一个的锁提交就变成空操作。3. #4814(ci-fixes 哨兵)现在只剩两件事:dfadc21b3 锁同步(就是上面那 4 行)+ 一个补声明后的重触发空提交(persist restamp 修复已在 master)。kernel-guard/lock-sync 已绿,10 个 test shard 还红(windows/ubuntu × node22/24),合入前需哨兵车道在 #4599 收敛。#4814 上的声明也是车道自补的,请随本 issue 一并追认或作废。
建议
选 A,批准范围钉死在那 4 行记录版本同步(root 0.0.163→0.0.165、kernel 0.0.164→0.0.165,与 #4814 dfadc21 字节一致):车道往 7 个 PR 补「经 #4828 批准」声明,守卫立即转绿,#4797(压缩死锁)、#4804(WS 413)、#4796(GC)等高优先级修复解卡。理由:B 在当前 master 状态下不可行(见上);#4814 合入后 master 永久一致(lock-sync 从此盯住 master push,同类窗口不会再开),这批 4 行进 master 是无害冗余。批准仅限这 4 行,不构成未来 kernel/ 改动的批量豁免。
#4823 单列:车道补上缺失的 kernel 版本号 bump + 声明后,由你审真实 kernel diff(schema 收窄、解析器不动、其自述 kernel 测试 1480/1480),审过即批准——这是门禁的正常用途,不该和锁文件漂移混批。
#4814 的 test shard 红归 #4599 哨兵收敛;若选 A,不必阻塞本决定。
标签: bug + p1 + scope/ci + waiting-feedback(决策升级类按规挂 p1;领域是 CI 门禁;底层是流程缺陷导致 8 个在途 PR 红)。
八问
kernel/package.json(0.0.165)领先于两个锁文件的记录(0.0.164/0.0.163)——窗口提交只 bump 未重生成锁;此后任何分支在 kernel/ 内 install 都会确定性重写这 4 行。门禁本身工作正常,拦得对。停手等拍板:A/B(及 #4823 单列处置)任一确认后我立即执行;在此之前不动任何 PR 正文、不推任何分支。
ranxianglei commentedon Oct 26, 2026
(ai: vllm-qwen/qwen3.8-27b)
补充:#4825 属同一锁文件漂移类(OP 把它当抽样证据,但没列入清单)。
核对(对当前 head 5e1a15b):
kernel/package-lock.json(+2/-2,0.0.164→0.0.165),rootpackage-lock.json的acp-kernel条目0.0.163→0.0.165——与另 7 个及 [PR] ci: converge master-CI fixes (persist restamp guard + lockfile version sync) (#4599) #4814 dfadc21 字节一致,零 kernel commit。git merge origin/ci-fixes(commit 254e678)把 master 级修复收敛进分支时带入——结果同为那 4 行记录版本同步。kernel-change:声明(2026-10-26 政策否定该做法之前由车道自补)。按政策我未动它:若选 A,请随批注「经 kernel authorization request: package-lock churn in PR branches tripping the kernel human-gate (8 PRs) #4828 批准」;若选 B,回滚名单需含它(不过你 2 楼的分析已表明 B 在当前 master 状态下不可行)。结论:A 的批准范围应按 8 个算(7 + #4825),仍钉死在那 4 行。
ranxianglei commentedon Oct 26, 2026
(ai: vllm-qwen/qwen3.8-27b)
更正我上一条评论(第 4 楼):#4825 已不需要 A/B 决策,请把它移出名单——批准范围维持 7 个。
变化:冲突解决车道随后把新 master(#4807 ref-chokepoint 等,kernel 升到 0.0.166、锁文件重新生成)合入了 PR 分支(head 现在是
46eb24a76)。合入后我逐文件核对过:PR 对当前 master 的kernel/与package-lock.jsondiff 已经归零——那个 4 行版本同步在分支追上 master 后变成了空操作,正是你第 2 楼说的「rebase 到新 master 后锁提交变空操作」的绿路径。后果:
#4825 侧的收尾只剩:CI 测试分片结果(继承红与否)+ 你在 #4825 关闭落选者 #4773。
ranxianglei commentedon Oct 26, 2026
(ai: vllm-qwen/qwen3.8-27b)
新增一例,请并入本 issue 的 A/B 拍板范围:PR #1790(feat(contrib): Claude Code native recall plugin)。
CI kernel-guard 红,失败原因与其余 7 个纯漂移 PR 完全一致:
被卡内容(逐行核对,与 #4814 dfadc21 及那 7 个 PR 字节一致,零 kernel commit、零依赖变更):
kernel/package-lock.json:+2/-2,记录版本0.0.164 → 0.0.165package-lock.json:acp-kernel条目0.0.163 → 0.0.165该 PR 本体是
contrib/claude-code-native-recall/下的独立 Python 插件(hooks + MCP + transcript JSONL),不改任何 bili/kernel 源码,也不改kernel/package.json清单——这 4 行是锁文件重新生成带入的记录版本同步,与那 7 个同机制。按「一次根因一个申请,不扇出」原则并入此处,不另开新 issue。你第 2/5 楼的可行性分析(master 自身不一致 → B 会把 kernel-guard 换成 lock-sync 红;A 钉死在这 4 行;或等 #4814 合入让 master 锁文件一致后 rebase 使该提交变空操作)对 #1790 同等适用。顺带:#1790 当前对 master 是 dirty(有冲突),rebase 这条绿路径对它本来就要走。
请随 A/B 一并把 #1790 计入批准/回滚范围。我未动 #1790 正文、未推它的分支。
Merge pull request #4837 from ranxianglei/2026-10-26_kernel-guard-loc…
ci(ranxianglei#4828): kernel-guard no longer requires a kernel-change…
ci: run boundary guards on workflow_dispatch too (release-lane covera…
ci: run boundary guards on workflow_dispatch too (release-lane covera…