Skip to content

[PR] kernel: sync package-lock.json to 0.0.136 (lock left at 0.0.133 by the bump chain) - #3782

Merged
ranxianglei merged 2 commits into
masterfrom
fix/kernel-lock-sync-0.0.136
Oct 19, 2026
Merged

ranxianglei merged 2 commits into
masterfrom
fix/kernel-lock-sync-0.0.136

Conversation

@ranxianglei

Copy link
Copy Markdown
Owner

ai: zhipuai-lb/glm-5.3

kernel-change: lockfile sync only — kernel/package-lock.json 0.0.133 → 0.0.136 to match kernel/package.json(无 src 改动,无版本 bump)

一句话:#3767 的 0.0.136 bump 漏了重新生成 kernel/package-lock.json,锁停在 0.0.133。

The 0.0.134→0.0.136 bumps (#3759/#3767) updated kernel/package.json and the
root lock's workspace entry but never regenerated kernel/package-lock.json —
the same dual-lock drift #3658 hit. npm ci inside kernel/ would refuse
(lock does not satisfy package.json). Regenerated with
npm install --package-lock-only; no source changes.
@ranxianglei ranxianglei changed the title kernel: sync package-lock.json to 0.0.136 (lock left at 0.0.133 by the bump chain) [PR] kernel: sync package-lock.json to 0.0.136 (lock left at 0.0.133 by the bump chain) Oct 19, 2026
@github-actions

github-actions Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

📦 Built Package Artifact

Branch: fix/kernel-lock-sync-0.0.136 (7429b4e)

Option A — Install this exact build (recommended)

npm install -g billion-context@0.0.4477-pr.3782.db5eab7

This exact version is immutable and reproducible. The rolling pr tag tracks the newest test build across all PRs.

Option B — Download artifact

  1. Download the artifact from the Actions run
  2. Extract the tarball and install:
tar xzf billion-context-pr3782.tgz
npm install -g package

Install instructions are refreshed on each push.

The #2704 drift guard regenerates only the ROOT package-lock.json; kernel/
keeps its own lockfile (standalone acp-kernel identity, #2092) which the bump
chain 0.0.134->0.0.136 left stale at 0.0.133 — exactly the class #2704 exists
to catch, one artifact short. Same idempotency check, no new deps.
@ranxianglei ranxianglei added bug Something isn't working p3 scope/ci labels Oct 19, 2026
@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

(ai: vllm-qwen/qwen3.8-27b)

查重: 不重复。 open+closed 的 issue 与 PR(近 7 天为主,按失败签名「kernel lock 0.0.133/0.0.136」匹配)无其他同型条目;本条目即上游 PR #3782 的镜像,无并行工作项。

标签: bug / scope/ci / p3(缺陷类;构建与 CI 域的锁文件漂移;内部簿记问题、无运行时影响)。

审核结论(独立复核,非复读 issue 描述)

已核实的部分:

  • master 2b40342 上漂移属实:kernel/package.json=0.0.136、根 package-lock 的 ./kernel 条目=0.0.136、kernel/package-lock.json=0.0.133(顶层 + "" workspace 条目两处)。
  • PR diff 干净:单 commit fe4de9189,只动 kernel/package-lock.json,恰好 2 行 version 变更,无其他文件、无空白噪音。
  • 确定性验证:在 master 的 kernel/ 上跑 npm install --package-lock-only,产物与 PR 提交的锁逐字节一致;在 PR head 上跑则完全无 diff。且 0.0.133→0.0.136 三次 bump 间 kernel/package.json 除 version 行外零改动(git diff 证实),所以这 2 行就是完整再生成结果,没有漏项。

需要更正的一处(issue 描述过重):「在 kernel/ 里跑 npm ci 会拒绝」未复现——我在 master 状态(package.json=0.0.136 / lock=0.0.133)实测 npm ci 成功(exit 0,added 56 packages)。原因:npm ci 的同步校验针对的是依赖树,锁文件顶层的 version 只是元数据,不参与判定。实际影响 = 元数据陈旧(任何按幂等性检查「再生成后 git diff」的守门都会红、读锁版本号的工具会被误导),不是安装功能损坏。据此定级 p3。

层次判断(症状 vs 机制): 表面是「#3767 漏刷了锁」,但机制层有个结构缺口——已有的 #2704 lock-sync CI job(ci.yml:506)只再生成并校验根 package-lock.json,而 kernel/ 按 #2092 保留自己独立的锁文件,根本不在该 job 的覆盖范围内。所以这不是某次手滑,而是「下一次 kernel bump 必然再次漂移」的确定性复发路径。

已在 PR 分支补一个标注 commit 7429b4ebf(小问题直接修,与漂移同属一个失败域,不另立项):给 lock-sync job 增加 kernel 专属步骤——(cd kernel && npm install --package-lock-only …) 后 git diff --exit-code -- kernel/package-lock.json,与既有根锁检查同一幂等语义。双向均本地验证过:同步后的树上通过(master 漂移状态会红)。pi-subagents 无独立锁文件,无需覆盖。若 owner 希望拆开,该 commit 可单独摘出,不影响原 2 行修复。

CI 状态(审核时点):9 success / 12 skipped(e2e 车道,纯锁文件变更的预期跳过)/ 9 queued(含 lock-sync 本身),无失败。补推后新 run 会带上扩展后的 gate。

八问

  1. 是什么问题:kernel/package-lock.json 停在 0.0.133,kernel/package.json 已到 0.0.136——组件自带锁文件与自身版本脱节。
  2. 什么原因导致的:bump commit 只改 package.json,没有任何环节重新生成 kernel 自己的锁;现有 package-lock.json version metadata lags package.json (bili 0.1.190 vs 0.1.191, kernel 0.0.112 vs 0.0.114) #2704 lock-sync gate 只盯根锁文件,kernel 独立锁在其覆盖范围外,于是连续三个 bump 都带病通过 CI。
  3. 影响范围与严重程度:仅内部开发工作流,无运行时/用户侧影响;npm ci 实测仍可用(更正了 issue 中「会拒绝」的说法)。严重度:簿记不一致(p3),风险是误导与未来守门变红,不是功能损坏。
  4. 怎么修复的:两层——①用 npm install --package-lock-only 确定性再生成锁(2 行,与全新再生成逐字节一致);②把 lock-sync gate 扩到 kernel 锁文件,堵住「下次 bump 再漂」的机制缺口,一个 PR 内闭环。
  5. 是否有回归问题:无。逐项过既有行为:根 lock-sync 步骤原样保留(新步骤追加在后、同参数);新步骤幂等(同步树上零 diff,已验证);不触碰 wire/配置/持久化/kernel src/e2e 车道行为。
  6. 是否破坏缓存:不涉及(无缓存/重试/游标/去重键路径)。
  7. 是否改了设计方向:不涉及——纯簿记修复 + 既有 package-lock.json version metadata lags package.json (bili 0.1.190 vs 0.1.191, kernel 0.0.112 vs 0.0.114) #2704 设计内的 gate 加固,无架构转向。
  8. 是否引入了新的配置:不涉及(无新 env/config/默认值)。

收工判定:代码层面可合(diff 已独立验证正确、gate 双向验证),待补推后的 queued 车道(含扩展版 lock-sync)转绿即可由人工合并;合并动作归人。

@ranxianglei
ranxianglei merged commit 96c6598 into master Oct 19, 2026
62 of 96 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

📦 Merged Build Published

This merge to master was published as 0.0.599-master.96c6598 (rolling master tag).

npm install -g billion-context@0.0.599-master.96c6598  # this exact build
npm install -g billion-context@master  # always the newest merged build

npm view billion-context@master prints the current version at any time.

ranxianglei pushed a commit that referenced this pull request Oct 21, 2026
d9110fb bumped kernel/package.json (CI-enforced pairing) but left the kernel lockfile at 0.0.147; the lock-sync gate's idempotent regen diffs and fails (#3782 drift class), skipping every full test lane. Regenerated with npm install --package-lock-only in kernel/.
ranxianglei pushed a commit that referenced this pull request Oct 21, 2026
Companion to 5fc174b: the root lockfile's file:-link record for kernel/ also carries acp-kernel's version, so the lock-sync gate's root regen diffs on it too. Same #3782 drift class.
ranxianglei pushed a commit that referenced this pull request Oct 22, 2026
The lock-sync CI lane (#3782) also enforces the kernel's own lockfile;
the 0.0.151 -> 0.0.152 bump in kernel/package.json left it stale.
ranxianglei pushed a commit that referenced this pull request Oct 23, 2026
The PR bumped kernel/package.json to 0.0.161 but neither lockfile was
regenerated, leaving the root lock recording acp-kernel 0.0.159. The
lock-sync gate (#2704/#3782) regens both locks and fails on any drift.
This staleness already existed on master (kernel 0.0.160 vs root lock
0.0.159); the bump merely widened it. Pure version-line regen, no
structural churn. Un-blocks the `test` lane.
ranxianglei pushed a commit that referenced this pull request Oct 23, 2026
…issed them)

f7d5e86 (#4292) bumped in-repo kernel/package.json to 0.0.160 without
regenerating either lockfile, so both still recorded 0.0.159:
- package-lock.json: the "kernel" file:-link entry's version
- kernel/package-lock.json: its own top-level + packages."" version

The lock-sync gate (npm install --package-lock-only + diff, run for BOTH
lockfiles per #3782) fails on every head until these recorded resolutions
match. Mechanical sync only — no kernel source change.
ranxianglei pushed a commit that referenced this pull request Oct 24, 2026
The dryRun-gate commit bumped kernel/package.json to 0.0.162 without
regenerating the kernel lockfile (last synced to 0.0.161). Regenerated via
npm install --package-lock-only; idempotent, version line only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working p3 scope/ci

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant