Repository navigation
[PR] chore: empty PR (no changes) - #4725
Conversation
📦 Built Package ArtifactBranch: Latest build — install this exact versionnpm install -g [email protected]This exact version is immutable and reproducible. The rolling Recent builds (commit → version)
Download artifact
tar xzf billion-context-pr4725.tgz
npm install -g packageInstall instructions are refreshed on each push. |
(ai: vllm-qwen/qwen3.8-27b) 查重: 不重复(open + closed 全量检索 "empty PR / allow-empty / no changes" 无相关条目)。 已对真实 PR #4725 逐项核实(GitHub API):
八问:
判定:PR 确认为空,我这边无任何动作可做;按规则我不合并(merge 仅人工)。CI 跑完后由你自行决定合并或关闭。 |
|
对这个进行发版review |
(ai: vllm-qwen/qwen3.8-27b) 发版 review 完成。先说方向判定,再给实质审计。 ① 方向关:这个 PR 不是发版 PR对照发版类 PR 的四个识别特征,逐条不满足:
分支名 ② 版本区间回归审计(master vs 最近发布)窗口:v0.1.206(master 谱系上最后一个 release tag)..origin/master(bb7c249)= 323 commits,359 文件,+35979/−2293。读法: 本版本引入回归:未发现。 高危域逐项点名核查结果:
跨车道漂移核查(v0.1.207/v0.1.208 从 bugfix/carve-out 车道切出,tag 不在 master 谱系上):两个车道的全部实质修复(#4390 行身份/historian tombstone、#4444 node-upgrade lever、#4506 media refs、#4677 v8 迁移流式化+进度日志、#4215 诊断、#4585 de-export)均已在 master 内容级确认存在;无缺失修复。车道独有的 jq/PMODE 三个 commit 是旧版 release-bugfix.yml 的车道侧 CI 修复,master 侧该机制已被重写移除,属作废而非缺失。 重大行为变更清单(均为有意变更,旧值→新值+原因):
次要流程缺口(非阻塞):master 的 release-notes 账本停在 0.1.180(opt-in 制度下正常),但 0.1.207/0.1.208 的 v8 大存储损坏 critical 条目只存在于车道分支,未回流 master 账本。 结构化八问
收工判定:PR #4725 本身可安全合入或关闭(合入不触发任何东西;按规则我不代操作)。若目的是把 master 的内容发出去:master 当前 CI 绿(bb7c249 最近三次 run 全 success),具备发版条件,建议批准 v0.1.209——你拍板说一声「发版 v0.1.209」我就走 §5 流程切 release PR。 |
|
(ai: zhipuai-lb/glm-5.3) v0.1.208..master 发版前深度审核(362 commits / 349 files / +34046 −2464)审核方式:4 个分域代码审查(请求管线/wire、dsh+自更新+CI 发版、前缀缓存+会话身份+存储、配置默认值)+ 本地真模型门禁 gate:local(A 压缩 / B 切模型 / U 更新)+ master head 安装验证(全局 + dsh default profile)。 结论一句话运行时压缩/更新核心代码基本干净( gate:local 结果(真模型,候选 0.0.900-gate.bb7c249 = master bb7c249)
第 1 轮两条红的根因链(gate scratch
P1(发版阻塞级)
P2(发版前应修/应写进 release notes)
P3(记录在案)
默认配置变更(升级用户会感知的全部)
新增 env 10 个(BILI_PI_INLINE、BILI_OPENCODE_INLINE、BILI_INLINE_DEBUG、BILI_CODEX_STATE_MODE、BILI_THROTTLE_429 及 3 个旋钮、BILI_ROLLOUT_PLUGIN_LANE_SERVER_HISTORY),en+zh 文档均已核同步;无删除/改名。kernel 默认面(golden pin、flat 50K nudge)零改动,kernel 0.0.161→0.0.163 版本纪律合规。 验证干净面(重点核对过)
安装状态(本 PR head = master bb7c249)
建议的发版前置清单
审核为只读;本 PR 自身无代码变更。各发现建议按 §4 规则拆独立 issue/PR 跟进。 |
…e ledger alignment (#4599 plan A)
(ai: vllm-qwen/qwen3.8-27b) CI 自动修复(第 1/2 次)— 继承性红,已收敛 ci-fixes判定:本 PR 零文件改动,8 个红 shard 没有一项是本 PR 引入的 —— 全部是 master 继承性红。 逐 job 核对了 run 40202012280 的 TAP 输出(ubuntu 24/3 = 12 fail、windows 22/4 = 7 fail),失败项与 #4599 总控名册逐条对上:
动作(按 CI 失败协调政策,不在自己分支重复修 master 级失败):把哨兵维护的 ci-fixes 头 结构化八问
残留风险:plugin-fork 那一项在 #4652 合入前可能继续红 —— 若重跑后仅此一项红,属预期,待 #4652 收敛即可,不需要本 PR 侧任何动作;届时按 attempt 2/2 处置。 另:线程里新贴的 v0.1.208..master 发版前深度审核(P1/P2/P3 清单)超出本 CI 自动修复车道的范围,按其自身结论各发现应拆独立 issue/PR 跟进,此处不扩scope。 |
|
(ai: zhipuai-lb/glm-5.3) 补充修正(残余 6 文件复审的完整结果,修正上条评论中两处严重度 + 1 个新发现)上条评论发布后,残余文件(plugin-render / cache-ledger / util / fold-decomposition-lookup / msgid-algebra / uncovered)的窄范围复审跑完了,三处需要修正/补充: 1. plugin-render 2. fold-decomposition-lookup 的 splice 索引失步(上条记 P3,应升 P2) —— 具体 trace:行按 seq 交错 3. 新 P3:cache-ledger.ts:1925-1927 settledInBody 基线耦合 —— settle 侧现在要求 同时解除两个我方软性疑虑(有据为 clean):uncovered.ts 的共享-clone 双 processTurn 窗口差分是稳的 —— kernel 上条评论的其余结论(含 P1×2、其余 P2、默认值表、验证干净面)不变。 |
|
(ai: zhipuai-lb/glm-5.3) v0.1.208..master 补充审核(第 3 轮)——针对前两轮声明的薄弱面审核方式:前两轮(qwen 发版 review + glm 深度审核)各自标注了未覆盖面;本轮补的是 ①qwen 明确写「未逐行精读」的 去重声明前轮已发现的 P1×2(release-bugfix jq / manifest 漂移)、P2×10(#4288 撤销、fork 截断、429 默认开、文档失真、一键通道、carve-out 缺门、CCR 错配、relay 死代码、plugin-render 锚、splice 失步)、P3×若干——本轮不重复列。以下全部是新增发现。 新发现 N1(P2,已实测复现):不可解析的块区间落库为
|
The first resolve step calls jq 4 times, but the workflow carries no jq install step: on the 2026-10 runner images (observed jq missing, runs 40193290049 et al exit-127) the emergency carve-out channel dies at ignition exactly when it is needed. v0.1.208 shipped this bootstrap (e7b0a1e2); the consolidation trains that rebuilt master kept the older workflow file and dropped it. Port the step verbatim from v0.1.208.
The four plugin manifests (.agents/plugins/marketplace.json, .claude-plugin/marketplace.json + .claude-plugin/plugin.json, plugins/codex/.codex-plugin/plugin.json) sat at 0.1.205 while package.json is 0.1.207 — the #4449 gate (node scripts/sync-codex-plugin-version.mjs --check) fails on master, so any release branch cut now would be rejected by release.yml's pre-tag check, and the Codex/Claude marketplaces have not offered updates since v0.1.206. Run the sync script (no code changes).
…ndow After a model switch shrinks the context window, the round-boundary exit judged on decisionTokens, which is floored by the session usage baseline. That baseline was measured under the prior wider-window model, so it sits above the new window and the exit never trips on an already-fitting payload. The summarization ladder then burns every round until the client times out and the session wedges (#4288). Judge the round-top exit on result.payloadEstimate instead, the floorless quantity the caller forward gate already trusts. The floored condition implies this one, so folding never increases versus the old behavior; only the redundant ladder-burning on fitting payloads is removed. The intra-walk exits stay floored (conservative mid-walk). Adds a regression test: model switch, stale high usage baseline, payload fits, and preflight forwards without spending a single fold call. (cherry picked from commit 6a9257a)
…message exceeds the budget
A pair range [tiny tool-call + oversized tool-result] under a window whose
0.6 chunk budget is smaller than the result split into [call-only fragment]
[result]; the fragment's preview is atomically rejected by the kernel's
minCompressRange gate ('Total compressible content too small (64 chars …,
min 5000)') — reproduced live in gate:local (gate-1025, '64 chars'/'77
chars' rejections burning a preview per round), and on the batch lane
(one span per range) the range never folds at all. Apply the min-chars
floor in both baseline regimes: a sub-floor chunk merges forward with the
oversized message into one coherent span instead of standing alone.
Fixes #4740
unifiedLiveRowCount counts live rows, but cloneSessionRows wants the inclusive throughSeq and seqs anchor at MAX(seq)+1 — tombstones keep their seq, so any retired row makes count < lastLiveSeq + 1 and count - 1 silently dropped the newest live rows from the cloned child (the fork receipt then serves a truncated ledger while the kernel view kept every number). unifiedLastLiveSeq (MAX(seq) over live rows) is now the throughSeq source across store/mysql/backend/shadow/persist; unifiedLiveRowCount stays on the shadow surface for its other callers. Regression: tests/issue4730-fork-live-seq.test.ts (retire a middle row, clone must still carry the newest live row; count-1 control documents the old truncation).
…lane, missing-manifest gate, autoFold docs Three unfixed items from the #4725 review ledger (#4757 landed separately via the ci-fixes sweep): - release-bugfix.yml lost the #4449 manifest --check when the v3 lane rewrite landed (v0.1.208 ran it before Publish guard; master's rewrite dropped it). Ported back with the #4576 pre-#4449 lane existence guard, gated on the resolve step's actual proceed output (this variant has no path output). - scripts/sync-codex-plugin-version.mjs silently SKIPPED a missing manifest file — in --check mode a missing file greened the gate, neutering the release guard. A missing target is now a hard error naming the file; the four manifests are a fixed contract. Regression test added (RED on the old skip). - CONFIGURATION.md en+zh: document the autoFold benefit gate (#3444: growth folds arm only on ≥4096 tokens over the effective target; sub-4096 saving arms the backoff; image-dominant exempt) and the measured floor (irreducible baseline raises an unreachable target, never above the window). Both languages in sync. Sync tests 5/5, typecheck clean.
|
(ai: zhipuai-lb/glm-5.3) 审核清单收尾:剩余未修项已处理(ec3576b)上一轮盘点(#4725 (comment) 之后)中「可以直接修」的四项:
验证:sync 测试 5/5、issue1195 A/B/C + #2777 + #4288 三钉全绿(rebase 到 master 合并点 4e0c773 之后)、typecheck 0 错。 仍开放的项(均需 owner 拍板或另行处理,非代码可直接修):429 治理器默认开启的 severe release-notes 条目(发版 PR 内)、gate 脚本对 #4288 fit-forward 的适配、inline 车道 429 治理/熔断旁路(P3,设计取舍)、decompress imageRef 的 restampSuperseded 守卫(P3,两位审核员结论相反)、reference/release.md v3 章节与 release-manual RETIRED 标注的文档面统一、master 0.1.207≠npm 0.1.208(下次发版自愈)。 |
[bot] 🏷 (ai: vllm-qwen/qwen3.8-27b) 冲突车道状态确认(对最新 head 复核)我负责的 #4725 基线冲突(auto-fix lane)已解决并落地;此轮针对分支后续推进做了 ground-truth 复核,结论如下。 我之前做的(已完成):把当时 本轮复核(分支作者又推了 round-3 修复 + 自己又 merge 了一次 master):
结果:冲突维度保持绿,我这边无需再改动;是否合入归 owner,等 CI 转绿即可。若状态再次变 |
…ores (#4599) maybeRestampToLedger called contentStoreOf() speculatively to re-key the CCR content store after ref restamping (#4733). contentStoreOf is a get-or-MATERIALIZE helper: for a session that has never had a store it assigns a fresh empty envelope, so every full-mode cold load started persisting/serving contentStore={version:1,byHash:{},byRef:{}} where the legacy path keeps undefined. The storage-unified parity pin (full serve = legacy serve + ledger alignment) digests contentStore and went red on both FULL-mode read subtests at a4a17cb (#4733, landed via #4725). Guard the re-key with if (session.contentStore): storeless sessions have nothing to re-key and keep their pre-#4733 shape; sessions WITH a store are re-keyed exactly as #4733 intended (the retrieveByRef misattribution fix stays intact). Verified locally (targeted): tests/storage-unified.test.ts 14 pass/0 fail (was 12/2); tests/issue4733-ccr-restamp.test.ts 2/0; kernel/tests/ccr-restamp.test.ts 3/0; typecheck clean. Full-suite verdict is the CI test lanes on the pushed head.
📦 Merged Build PublishedThis merge to master was published as npm install -g [email protected] # this exact build
npm install -g billion-context@master # always the newest merged build
|
…erdict; #847/#1492B contracts reconciled to the #4288 world Both files were red since the #4725 merge (verified at 931c66a in an isolated worktree): the re-landed #4288 exit fired at round top, but the final verdict block still stamped an exhausted failure whenever currentTokens — floored by the same stale baseline the exit exists to bypass — read over-limit. A fit-forward walk then reported 'no viable range could be compressed' while the caller forwarded the fitting payload anyway: the marathon was prevented, but the reported verdict lied. - preflight.ts: fitExitForward flag — a round-top fit exit suppresses the final failure stamp (aborts still win). - #1492 B: contract updated to the #4288 doctrine — a usage-grade baseline above the window on a FITTING payload forwards; a usage baseline above the limit cannot have been measured under this window regime, and a real overflow arms the one-shot rescue (#1110/#987) on rejection. - #847: the honest-exhaustion pin now covers its actual post-#4288 meaning — the fitting sub-gate payload exits fit-forward with no verdict; the exhaustion path stays for payloads that genuinely exceed the target. issue847 4/4, issue1492 3/3, issue4288 3/3, issue1195 4/4, preflight family 21/21, 4797 family 4/4, typecheck clean.
… declaration for lockfile-only churn kernel/package-lock.json is generated state, not kernel source. Agents' test prep (npm install inside kernel/, sweep-bot merges of stale lockfiles) churns it without any intent to change the kernel — 8 PRs (ranxianglei#4823 ranxianglei#4808 ranxianglei#4802 ranxianglei#4800 ranxianglei#4799 ranxianglei#4794 ranxianglei#4790 ranxianglei#4785) tripped the human gate on lockfile-only diffs, and the previous stopgap (bots appending kernel-change: declarations to PR bodies) was correctly rejected by the owner as bypassing the approval step. The human gate exists to protect kernel SOURCE. Rule 1 now ignores kernel/package-lock.json when deciding whether a PR 'touches kernel/'; real source/build-config changes still require the declaration + owner approval, and lockfile CONSISTENCY stays enforced by the separate lock-sync job (which fails on genuine drift — the ranxianglei#4725 merge red being today's live proof).
Empty PR as requested — one
--allow-emptycommit, zero file changes. Nothing to review or merge.