Skip to content

[PR] release v0.1.213 - #5898

Merged
ranxianglei merged 2 commits into
masterfrom
2026-11-07_release-v0.1.213
Nov 7, 2026
Merged

ranxianglei merged 2 commits into
masterfrom
2026-11-07_release-v0.1.213

Conversation

@github-actions

@github-actions github-actions Bot commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Auto-fallback from the one-click release workflow: direct push to master was blocked by branch protection. Merging this PR publishes via the standard release.yml flow.

Changes since v0.1.212

@ranxianglei ranxianglei added the ci:full Run the FULL CI matrix (all e2e lanes + 12-leg test matrix) on this PR label Nov 7, 2026
@github-actions

github-actions Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Contributor Author

📦 Built Package Artifact

Branch: 2026-11-07_release-v0.1.213 (d290521)

Latest build — install this exact version

npm install -g billion-context@0.0.8572-pr.5898.b729c7e

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

Recent builds (commit → version)

commit version build
d290521 billion-context@0.0.8572-pr.5898.b729c7e build
98cd8a1 billion-context@0.0.8545-pr.5898.6944d7c-a2 build

Download artifact

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

Install instructions are refreshed on each push.

@ranxianglei ranxianglei changed the title release v0.1.213 [PR] release v0.1.213 Nov 7, 2026
@ranxianglei

Copy link
Copy Markdown
Owner

🤖 Powered by ework · qwen3.8-27b

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

查重: 不重复 —— 本线程是唯一的 v0.1.213 发版车道(GitHub PR #5898,head 98cd8a1,分支 2026-11-07_release-v0.1.213,base master);开放 [PR] 清单里没有第二个指向同一发版的并行 PR。本 PR 由一键发版流程自动兜底创建(直推 master 被分支保护拦下,改走标准 release.yml)。

标签: pr(原有)+ scope/ci + p2 —— 发版流水线线程而非缺陷;p2 表示它是挡住窗口内全部修复到达用户的发布门禁。

中期确认(深度审计进行中):

@ranxianglei

Copy link
Copy Markdown
Owner

v0.1.213 大 diff 评审结论(v0.1.212 → master,445 commits / 318 files / +27082 −1983)

结论:没有 P1(阻塞级)问题,可以合并。 评审中确认 2 个 P2 + 1 个 P3,已全部在独立 PR #5902 修复并合入 master;其余为 P3 或有意的设计取舍,只列出不修。评审覆盖了性能、DSH 网关、缓存/渲染保真、回归面、存储引擎、内核(kernel)、通知/CLI/web 面七个维度,每个维度都有独立子评审 + 主评审抽查复核。

1. 修掉的问题(已在 #5902,三个独立 commit 可单独回退)

  1. 每个代理请求都在白付一次大 JSON 扫描(性能,P2)
    早退限流判定(tryAnswerEarlyHold)只对 ≥1 MiB 的 body 生效,但调用方对每个 POST 都先做了一次全量 body JSON 解析来取 model 字段——99% 的请求体小于 1 MiB,解析结果直接丢弃。已改为惰性求值:过门槛才解析。新测试用扫描计数器钉住:低于门槛 0 次扫描、过门槛 1 次。
  2. 渠道 id 对齐的两个漏洞,偶数错位会把 id 贴错行(id 对齐,P2)
    原来只抽查最后 4 个位置的角色;user/assistant 交替的正常会话里偶数错位能骗过全部抽查。另外存储侧压缩重写(行移动)后没有任何跨轮校验。已改为:全位置角色检查 + 每会话记住上次贴的 id 与行数,重叠行 id 必须一致,不一致就本轮放弃(退化为修复前行为,不会跨会话错贴——id 从不复用)。5 个新回归测试。
  3. 每次入库都变成 O(N×M) 的逐对比较(存储,P3)
    0.1.212: per-turn ingest is still O(history) — 96.5% of proxy CPU in StatementSync.run, event loop starves with 8 concurrent sessions (#4528 / #5469 follow-up) #5744 入库 diff 重构时丢掉了原有的 O(1) 成员判断 Set,改回 Set(SQLite/MySQL 两个引擎)。

2. 只列出不修的问题(P3 / 有意取舍)

  • 早退限流的 4-8 MiB 盲区(dsh):用 Request 流式 body 发送时,声明的字节数只认 Content-Length/分块头,4-5 MiB 到 8 MiB 之间的 body 不会被早退判定看到(预存在,与本次 diff 无关;超 8 MiB 的兜底路径有效)。
  • 图像剥离循环不再限 64 张(性能,有意取舍):为修复 582 张图的 body 被误判问题,失败路径上会对每张图逐张解析。只发生在"请求本来就要失败"的分支上,一次性的,限回去会复发原问题。
  • 会话救援的 ≥1 重叠锚定策略([PR] chore: empty PR — trigger ci:full on master head #5865-P2,设计决策):单条重叠就把辅助载荷重新锚到主车道,会覆盖主车道的骨架指纹,让后续的分叉判定失效。目前被两道默认关闭的灰度开关复合门控(release 时 0%),放量前需要先定 ≥1 vs ≥2 的策略,已在代码注释里标为开放决策。
  • 通知存储的竞态与 MySQL/SQLite 行为差(存储,P3):水合期间 dismiss 会被后写的内存值覆盖(持久层不丢,最多重复显示一次);MySQL 主键冲突静默、SQLite 报错,当前构造下不可达。
  • web/更新面若干小项(notice):更新检查进行中时面板会误报"检查成功"(ok:true);手动检查会重置节流定时器;远程通知源 512KB 上限截断等,均 fail-open,不阻塞。

3. 各维度评审结论

维度 结论
性能 P2×1 已修(#5902);热路径无其他回退;请求体解析从每请求 3 次降到 1 次(缓存)是净收益
DSH 网关 无 P1;双档定价 + 双路 fail-close 设计成立;floor 段(0.877W, W]误拒是 owner 已拍板的取舍,有测试钉住
缓存/渲染保真 无回归;所有出站渲染改动是确定性的;ttl-less cache_control = 5m 档,行为正确有测试
内核 0.0.178→0.0.186 无 ref 重发、无无限 hold、MEDIA REFS 段确定性幂等;golden 账本只增未缩(删的 46 行是描述替换 + 参数 schema 补全);需 PR 声明 kernel 变更——本 PR 已声明
存储引擎 schema v10→v11 纯增量、双引擎镜像一致;#5744 入库 diff 终态精确;P3×1 已修(#5902)
通知/CLI/web 无 P1/P2;XSS 不可达(escapeHtml + CTA 白名单);远程通知全链路 fail-open
回归面 fastpath-v6 已完整回滚(零残留);opencode V2 retouch 协议是 409→全量重同步的 fail-safe 设计

4. 验证

建议:可以合并。 合并后 v0.1.213 即含上述三个修复。

@ranxianglei

Copy link
Copy Markdown
Owner

全量评审结果:v0.1.212..cda6e73(整段 diff 一起看,非逐 PR)

按范围整体评审完毕(4 条评审线:dsh/存储、通知/web、性能/缓存、#5755 增量 refs-store,外加 golden CI 取证与本地 gate 取证)。**结论:本范围内没有发现阻塞性回归,可以合并/保持已合并。**发现的问题全部落在两个已合并的跟进 PR 和一个新 issue 里:

发现的问题与去向

  1. gate Lane A 三连红的根因不在本范围——压缩请求在代理内部被卡 5 分钟才发给模型(preflight 队列),把后续轮次全部拖死。取证:pcap 显示请求 00:32:36.702 到达、fold 排序 00:32:36.704、真正的压缩上行 00:37:36 才发出,正好 300s 超时。这是 Context Window Overflow Issue Summary: Raw Requests Sent Directly to Upstream Rejected + Local Intercept Cooldown Lockin | 上下文超窗问题汇总:请求裸冲上游被拒 + 本地拦截冷却锁死会话(统一分析入口) #4079 时代就存在的老问题,只是这次 gate 首次踩中。已开 The summarization request silently stalls for 5 minutes inside the agent before being dispatched to the model, bringing | 压缩摘要请求在代理内部静默卡 5 分钟才发给模型,把整轮对话拖死(gate Lane A 三连红根因) #5904 跟踪,不在本 PR 修。
  2. [PR] fix(storage): refs ledger diffs instead of full-replace per save (#5744) #5755 评审线报的两个 P1(refs ord 交叉撞主键→ingest 永久卡死)经实证为误报:SQL trace 显示被触碰的行在 new-refs 提交落地前仍留在 old-refs 集合里,主键不会交叉;裸 sqlite 对照复现失败。但护栏(触碰行延迟迁移)+ 回归测试已作为纵深防御保留。
  3. P2 修复批 [PR] Review P2 fixes: dedupe the double body scan, pin expiring media refs, snapshot pre-OOM envelopes before overwrite, trace msgid-rescue #5895(已合并):模型扫描缓存 memo(代理进程内 60s,免每请求重扫)、ephemeral 签名 URL 钉住不折叠(死了的 URL 折进摘要=字节永久丢失)、preOOM 快照、msgid-rescue 追踪。
  4. 跟进批 [PR] Review follow-ups: 429 throttle saturation/scope guardrails, media-refs carry-forward filter, oversize-refusal messages that say what to do, doc typo #5905(本评论时 CI 跑着):429 hold 表打满时静默丢保护→现在打 warn 且文档写明"该次 429 无人管";throttle429Scope 拼错静默回落→现在 warn 一次;kernel 折叠合并时旧摘要里的签名 URL 不再永久存活(带回归测试);超限拒发消息改成说人话(真正该做的是重启宿主/修模型窗口声明,不是"折叠/裁剪");网站文档 streamKeepaliveMs→streamKeepAliveMs(真实旋钮名)。
  5. golden CI 红的根因:旧金标混入了任务早期头部的漂移时代产物,[PR] Infinite Wait Issue in Stress Injection: N-Round Fallback (Side Effect Introduced by Fix #5860) | 压力注入无限等待问题:N轮兜底(修复#5860引入的副作用) #5882 合并后金标已按 CI 实际行为重新生成,CI 恢复绿。

性能/缓存专项

  • 代理进程内 memo 后每请求模型扫描成本 ~0(60s TTL,120s 失效兜底);存储层 refs 迁移走分批 DELETE/INSERT,无 O(n²) 路径;429 hold 表有 64 上限 + 模型桶逐出,饱和行为现在可见。
  • dsh 改动(fork 收养/侧请求隔离)在 gate Lane B(跨上游切换 + 代理重启)与 Lane U(dsh 安装识别)全绿;registry 版本读数正确。

—— 评审明细与每个判定的证据链见 PR #5895 / #5905 与 issue #5904。

@ranxianglei

Copy link
Copy Markdown
Owner

🤖 Powered by ework · qwen3.8-27b

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

独立深审完成:v0.1.212 → master 整窗(445 commits / 318 files / +27082 −1983),按主题分批通读而非逐 PR——自更新/发版流、网络与 429 限流、dsh 网关、服务端核心与会话身份、存储引擎、内核 0.0.178→0.0.186、各 agent 车道(pi/opencode/增量/原生拦截)、通知/web/配置面、loop 杂项,外加 golden 账本形状核对、配置面文档完整性核对、以及刚做的 CI/PR 实时状态核查。以下结论出自我自己这一遍;与你两轮评审重合的地方我注明「独立复核一致」,事实有变动的地方单独标出。

结论:本版本引入回归:无 —— 可合

高危域逐项点名核查结果

高危域 核查结果
自动更新/自更新路径 src/update.ts 全窗仅 2 个提交触碰(注释准确性修正 + web「检查」按钮只查不升 #4791);无阈值/时序漂移;release-manual.yml 的 git-describe tag 修复正确;lockfile 增量只有版本行
dsh 相关 双档定价 + 双路 fail-close 设计成立(独立复核一致);#5686 压缩摘要直发拒绝只对 MARKER-DECISIVE 调用触发(正文中引用指令/Google 线/不可读 body 全部保持旧语义,fail-open 约定一致);#5613 校准拒发是代码内标注的 owner 已批取舍;profile-copy 三账本收敛正确
版本钉死与 lockfile package.json 只在 release 分支动;kernel 0.0.186 / pi-subagents 0.2.3 的版本 bump 与各自 src 变更一一对应;无杂散 pin
网络/代理路径 429 治理重构保持默认 scope='credential'(旧行为不变);瞬态标记/fail-open 约定全链一致(#4912 口径);apig-resign 未触碰风险点
内核 0.0.178→0.0.186 无 ref 重发(assignRefsNode 仅注释变更);无无限 hold(estimate-hold 有界 ≤2 轮、stall 标志被合规收割/蒸馏清除、排除递归 <64 有界、fixed-point 以 settled 集合终止);MEDIA REFS 段确定性且幂等(append 先剥已有段再追加,重复折叠不双列);golden 账本只增未缩实测:+289/−45,删的 45 行全部是 acp_status/acp_cache 的描述文案与空 properties 替换,与 #5555 改动逐一对应,无工具被移除
存储引擎 schema v10→v11 纯增量(Six FK-child 索引,SQLite/MySQL 双引擎镜像一致);#5744 入库 diff 重写的关键前提(存活行 ord 单调不增)在调用点有文档化前置条件;已知 O(N×M) .some() 缺陷即你在 #5902 修的 P3,我独立复核了修法(Set 恢复,两引擎)✓

重大行为变更清单(均为有意变更,旧值→新值 + 原因)

  1. pi 原生默认姿态翻转(kernel authorization request: release v0.1.211 bundles kernel 0.0.176 (#5415 abort-absorb nudge debt) #5428,取代 [PR] pi/opencode inline changed to manual opt-in: revert the default flip; default behavior is identical to the previous vers | pi/opencode inline 改为手动开启:收回默认翻转,默认行为与旧版完全一致 #4687 的 opt-in 规则):裸 pi(env 与文件都未表态)从 spawn 独立代理 → 默认 INLINE 进程内车道。退出方式:BILI_PI_INLINE=0/false/no/off 或 "pi":{"inline":false};launcher 宣布过的 attach(bili pi)仍优先于默认。原因:消除 spawn 启动竞态与伪 attach 漏洞。
  2. 超限直发拒绝门槛降低并加宽([Bug][dsh] Model requests silently bypass the compression proxy (fail-open gate) — 927K-token prompt sent raw, 1-token reply, session bricked with 400 #5613/native intercept: oversized model request silently direct-sent when live-state slot is empty (975K tokens, no log) #5405/[Bug][dsh][storage] Compression permanently fails for a session: frozen ingest watermark, requests no longer observed, and no warning until the host dies with CONTEXT_WINDOW_EXCEEDED #5408,代码内标注 owner 2026-11-07 批准):单档 bytes/4 乐观下限 → 双档(下限 + 校准估算 ≈×1.14),任一档超窗即拒;流式 body 改用声明 Content-Length 计价(此前构造性 fail-open);静默直发上限 2→8 MiB(原始字节、含 base64 媒体;失控 prompt 是几十上百 MB,8 MiB 仍拦得住)+ 新 env BILI_SILENT_DIRECT_MAX_MB;空槽位/无归属的大 POST 从静默直发改为本地 422。
  3. ref 可恢复媒体变为可折叠([Bug] Config save rejects valid mitm:// provider lanes as "invalid recipe on named provider" | 整文件保存把 mitm:// 路由误判为命名配方 #5620):远程 URL 图片/DeepSeek file id/Google fileUri 原先永久钉住消息(不可折锚点 → 上下文地板涨到 ~70% 用不满的 usage wall)→ 现在可折,持久句柄机械追加进存储摘要(MEDIA REFS 段,确定性幂等),decompress 无损还原原文。临时签名 URL(x-amz/x-goog/x-ms/x-cf/x-r2/x-oss/x-azure 前缀族 + expires/signature/token 家族)按设计仍钉住;未知不透明形状保守保持钉住。
  4. 幻影压力守卫默认开启([PR] chore: empty PR — trigger ci:full on master head #5865):EMERGENCY/OVER-LIMIT 注入遇估算级读数时延后至多 2 个连续估算轮,到期回落旧的估算驱动判定(永不回传计费的线路不会被饿死)。usage 级读数与非压力档字节级不变。
  5. T1 收割停滞路由默认生效(kernel: T2/T3 distillation structurally starves when the T1 channel partially complies (#5671 treadmill root cause) | kernel: T2/T3 蒸馏在 T1 通道部分顺从时结构性饿死(#5671 跑步机根因) #5698/Repeated compression just won't squeeze it down any further — the model itself says there's no more space. | 重复压缩压不下去 模型自己说没空间了 #5671):T1 触发后若应答折叠收割量 <50% 供给,T2/T3 蒸馏档(自身达标时)可抢在 T1 前开火(节奏限制仍在),不再无限重催 T1。证据门控,只在真实欠收时触发。
  6. 块合并恢复阶梯(Reaching out to the author — a plugin bug is throwing errors and causing the context to balloon rapidly. | 求助作者,插件bug报错导致上下文急速增加 #5789):任何 turn-integrity 冲突都拒合并 → 冲突与本合并无关时继承+告警放行、肇事块可排除(<64,块保持 ACTIVE、覆盖不丢)时绕开放行,否则给出点名 ref/属主/下一步的可操作错误。不变量守住:合并永不丢弃既有覆盖。修复一个毒块团灭全会话 T2 合并的死局。
  7. 工具对边界扩张(A fold block boundary may fall between tool_use and tool_result, causing long sessions to hit upstream 400 errors on | 折叠块边界可能切在 tool_use 与 tool_result 之间,导致长会话每轮被上游 400,且不会自愈 #5751):距离受限扫描(maxScan=20、首缺口即停)→ 全数组 id 精确极值扩张(共享单次 O(n) 表,避免二次方类开销),修复交错并行工具爆发下的配对被切断问题。
  8. 线上表面新增:acp_cache 工具首次注入 Gemini 线(原仅 anthropic/openai/responses);acp_status 在四条线上正式声明 scope/view/tool/sort/limit/archiveDetail 参数(处理器一直在读,声明补齐)。
  9. pi-subagents 重叠守卫扩到 user 作用域([Pi] acp_delegate stands down only for project-scope pi-subagents — a user-scope install duplicates the sub-agent surface in every project #5637):user 作用域安装原为 warn-only → 现在同样自动收起 acp_delegate(user 作用域本来就在每个项目加载)。逃生口 delegate.forceEnable / pi.subagents.forceEnable(提示语已同步两种写法)。
  10. fork 身份哈希输入集变更:thinkingTokens(宿主投射的计量质量,客户端字节里不存在)→ thinkingSignature + googleThoughtSignature + redacted_thinking 载荷摘要;plugin.ts 孪生函数与 CoW 视图比较器同步更新(thinkingTokens 在视图比较中降级为只看存在性,理由有注释)。
  11. opencode V2 车道:cache_control retouch 协议(服务端能力探测正向广告才启用,老服务端走原路);宿主 msgIds 经 x-bili-msg-ids 上行(任一 id 不可用整回合降级不盖头);/acp 与 /acp-cache 报告获得专用 msg_bili_report_* id 并从出站上下文过滤(OpenCode V2: show full ACP reports in OpenChamber without sending them to the model #5315,手动粘贴的报告不可能被误伤)。
  12. dsh 压缩摘要调用在降级直发路径上改为本地 422 拒绝(dsh Long-Session Drift Comprehensive Remediation: Sealing the Last Leak Window for Native Compression Local Deployment + | dsh 长会话漂移综合治理:堵死原生压缩本地落地的最后漏窗 + 会话身份分叉可见化与自愈 #5686):转发会让摘要检查点在上游落地并永久遮蔽原始历史;代价是这一次压缩尝试失败,dsh 记 'step compaction failed' 后继续回合。
  13. MODEL_API_SUFFIX 接受带命名空间的模型 id(models//:方法,Google native wire: A namespaced model ID is classified as a non-model request, causing the entire session to be silentl | Google 原生 wire:带命名空间的 model id 被判成非模型请求,整段会话静默旁路(无压缩 / acp_status 404) #5593):此类网关路由从此走代理而不是绕过代理(此前无窗口解析、无压缩、acp_status 报 unknown)。
  14. compress 范围规格 ".." 分隔符可解析(原先被静默吞掉,报错文案却宣称支持两点)——纯接受面扩大。
  15. 图像剥离循环不再限 64 张([Bug][media] Cannot compress image replay: shed only processes the first 64 images, imageCompression has been removed, b | [Bug][media] 图片重放无法压缩:shed 只处理前 64 张、imageCompression 已移除、字节计费把 582 张图算成 3.56M tok → 39.6MiB 请求体被上游 400 拒 → 会话永久不可用 #5745,582 张图案例):只发生在请求本来就要失败的分支,一次性成本(有意取舍,独立复核一致——限回去会复发原问题)。
  16. 通知面统一(Unified Announcement Panel Design (Approved): Built-in declarations + local JSON + remote GitHub raw — a single renderer | 公告面统一设计(已批准):内置声明 + 本地 JSON + 远程 GitHub raw,三来源一套渲染器 #5548):单一注册表三来源(内置/远程/本地文件 ≤64KB 每文件),同 id 阴影 B>A>S;dismiss 回执迁入统一存储(kv notices 命名空间),水合期间回落旧 JSON 文件。
  17. 429 限流:hold 表模型分桶(默认 scope 不变)、probe-token 集成、告警 5 分钟陈旧清理。
  18. 存储:bun:sqlite 驱动纯增量接入(Node 路径字节级不变);WAL 诊断;shadow 阶段取证;慢入仓 ≥500ms 告警。

与你两轮评审的对账(独立产出,非复读)

结构化八问

  1. 是什么问题:发版窗口深审职责——v0.1.212 到本版之间 445 个提交的变更在发布前是否干净。
  2. 什么原因导致的:不适用(审计任务非缺陷修复)。窗口内暴露的问题均由各自 PR 根因修复;我这一遍未发现属于本窗口、尚未修复的新根因。
  3. 影响范围与严重程度:窗口覆盖全部车道(dsh/pi/opencode/存储/内核/web)。所有变更要么行为保持、要么为带 owner 裁定的有意变更;无用户面静默破坏。未修项均非可用性阻塞([PR] fix: three performance and ID alignment issues (#5898 review fixes) | fix: 三处性能与 id 对齐问题(#5898 评审修复) #5902 三项与 [PR] Review follow-ups: 429 throttle saturation/scope guardrails, media-refs carry-forward filter, oversize-refusal messages that say what to do, doc typo #5905 加固属质量改进)。
  4. 怎么修复的:不适用——我只审不改(交付物为本报告)。窗口改了什么、为什么,见上方行为变更清单。
  5. 是否有回归问题:未发现。高危模式逐项过:语义漂移(除清单所列翻转外默认值全部保持,翻转均有 owner 裁定记录)、fail-fast 变吞错(无——拒绝臂对证据 fail-close、对缺数据 fail-open,约定全链一致)、阈值/时序/输出格式漂移(仅清单所列项)、缓存/重试策略静默失效(无)。
  6. 是否破坏缓存:否。出站渲染变更全部确定性;retouch 协议显式保证组装后请求与宿主全量 body 逐字一致;MEDIA REFS 骑存储摘要不进线上前缀;thinking 族载荷未触碰(fork 哈希只读签名)。
  7. 是否改了设计方向:无转向。整合类:通知面收敛到单一注册表(Unified Announcement Panel Design (Approved): Built-in declarations + local JSON + remote GitHub raw — a single renderer | 公告面统一设计(已批准):内置声明 + 本地 JSON + 远程 GitHub raw,三来源一套渲染器 #5548)、超限 doom 数学集中到 bodyOverWindowDetail、身份信道采集置于灰度门后(默认 0%)。
  8. 是否引入了新的配置:compress.requireUsageSampleForPressure(boolean,默认 true)、compress.maxEstimateHoldRounds(number,默认 2)、BILI_SILENT_DIRECT_MAX_MB(env,默认 8 MiB)、rollout.features.identityChannelHarvest(默认 0%)、BILI_IDENTITY_HARVEST(默认 off)——全部已在 CONFIGURATION.md 中英与 website yaml 落文档;均为增量键,无迁移。

最终判定:本版本引入回归:无,可合。 建议顺序:先合 #5902(想把它和 #5905 一起带进 v0.1.213 就两个都先合),再合 #5898;否则 v0.1.213 干净发布、上述修复随下一补丁落地,两种都成立,由你定。

ranxianglei added a commit that referenced this pull request Nov 7, 2026
…ixes

[PR] fix: three performance and ID alignment issues (#5898 review fixes) | fix: 三处性能与 id 对齐问题(#5898 评审修复)
@ranxianglei
ranxianglei merged commit 133f352 into master Nov 7, 2026
84 checks passed
Louie0806 pushed a commit to Louie0806/billion-context that referenced this pull request Nov 8, 2026
…-value guard, media-refs carry-forward filter & cloud prefix families, oversize refusal messages that name the real fix, dsh durable lines with readable numbers, website streamKeepAliveMs typo, 5755 ord-crossing guard kept with regression tests

- upstream-throttle: a saturated hold map (64/64 account-wide, no model-scoped
  hold to evict) silently dropped the next model-scoped 429 — now it warns
  once and the send is documented as ungoverned (ranxianglei#5199/ranxianglei#5889)
- knobs: network.throttle429Scope matches its value EXACTLY; a typo now warns
  once and falls back to credential instead of silently doing so (ranxianglei#5199)
- kernel media-refs: block summaries written by older builds can carry refs
  looksEphemeralSignedUrl would reject today; the carry-forward into merged
  blocks now applies the same filter so a dead signed URL cannot survive
  forever (ranxianglei#5865 review). EPHEMERAL_QUERY_PARAM also gains the Huawei OBS
  x-obs-*, Tencent COS x-cos-* and Baidu BCE x-bce-* prefix families.
- native-intercept/dsh-native oversize refusals now say what to DO (restart
  host / fix the model window declaration), and dsh durable lines format
  numbers with thousands separators (ranxianglei#2924/ranxianglei#4068)
- website: streamKeepaliveMs → streamKeepAliveMs (the real knob name) across
  main.js, docs/index.html, config-reference/process.yaml
- CONFIGURATION.md/.zh-CN.md: throttle429Scope exact-match + model-string
  aliasing caveat documented
- store/persist: ranxianglei#5755 refs ord-crossing guard (touching rows stay in the
  old-refs set until the new-refs commit lands) kept as defense-in-depth
  with a regression test

kernel-change: 0.0.186 → 0.0.187 (media-refs carry-forward filter + cloud
prefix families; compress.ts starvation-bound comment corrected)
Louie0806 added a commit to Louie0806/billion-context that referenced this pull request Nov 8, 2026
…tch and the release-gate preflight proof

Upstream delta 9ba70b8..6df7ae1 (20 files, 6 commits):
- 81619f3 fix: ranxianglei#5898 review batch — 429-hold saturation warn + scope-value guard,
  media-refs carry-forward filter & cloud prefix families, oversize refusal messages,
  dsh durable lines with readable numbers, website streamKeepAliveMs typo,
  the 5755 ord-crossing guard with regression tests
- 7e94778 test: pin the one-shot saturation warn in the ranxianglei#5199 saturated-map case
- 6e8f41c release-gate: prove real inference in preflight, refuse evidence overwrite,
  print evidence map on red
- 8bbe7d5 fix: docs-sync/lock-sync — throttle429Scope notes belong in the
  process.yaml seed (CONFIGURATION.* are generated), kernel lockfile 0.0.187

kernel moved to 0.0.187, so the merged tree was rebuilt before measuring.

Lane overlap is only the four generated artifacts (CONFIGURATION.md,
CONFIGURATION.zh-CN.md, website/docs/index.html, website/main.js); the merge was
automatic and the docs fixed point was re-verified on the merged tree with
`node tools/gen-config-docs.mjs generate`
(zero diff on all four).

Gates: tsc 0, four guards 0, gen-config-docs fixed point.
Tests: issue5175 58/0, tag-echo 79/0, issue2190 32/0, golden-storage-render 5/0,
storage-engine-proofs 12/0, native-compact-terminal 1/0, issue4666 2/0,
issue5199-throttle429-scope 7/0, issue5755-refs-ord-crossing 2/0, dsh-native 75/0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:full Run the FULL CI matrix (all e2e lanes + 12-leg test matrix) on this PR p2 scope/ci

Projects

None yet

1 participant