Skip to content

[PR] chore: empty PR — trigger ci:full on master head - #5865

Closed
ranxianglei wants to merge 3 commits into
masterfrom
ci-full-probe-2026-11-07
Closed

ranxianglei wants to merge 3 commits into
masterfrom
ci-full-probe-2026-11-07

Conversation

@ranxianglei

@ranxianglei ranxianglei commented Nov 7, 2026 •

Copy link
Copy Markdown
Owner

空载体 PR:本身没有任何代码改动(只有一个空 commit)。

用途:在 master 头(df0a402)打上 ci:full 标签,跑一遍完整 CI 矩阵。

本 PR 不合并。

kernel-change: 本 PR 为 v0.1.212 之后的整体大 diff 评审探针(#5865);kernel/ 内改动全部来自其包含的各个已单独评审的 PR(逐条原因见对应 PR 的 kernel-change 声明),另含本分支追加的压力注入 N 轮兜底修复(kernel/src/compress.ts、config.ts、types.ts 及两个 nudge 测试)。

@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

📦 Built Package Artifact

Branch: ci-full-probe-2026-11-07 (98d58ec)

Latest build — install this exact version

npm install -g billion-context@0.0.8533-pr.5865.7a828e4

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
98d58ec billion-context@0.0.8533-pr.5865.7a828e4 build
0be24c2 billion-context@0.0.8532-pr.5865.a0e3675 build
531bf7d billion-context@0.0.8527-pr.5865.e82c0dc build
4433767 billion-context@0.0.8518-pr.5865.edfd293 build
de0050f billion-context@0.0.8511-pr.5865.5535a0e build
dbb5d14 billion-context@0.0.8509-pr.5865.9772c04 build
b2d231d billion-context@0.0.8505-pr.5865.6802629 build
4620d33 billion-context@0.0.8501-pr.5865.a9c6e1d build
f0a3105 billion-context@0.0.8496-pr.5865.99131d4 build
2ef030c billion-context@0.0.8472-pr.5865.8fc38ce build

Download artifact

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

Install instructions are refreshed on each push.

@ranxianglei

Copy link
Copy Markdown
Owner Author

做全面review release 标准

@ranxianglei ranxianglei changed the title chore: empty PR — trigger ci:full on master head [PR] chore: empty PR — trigger ci:full on master head Nov 7, 2026
@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

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

查重: 不重复(open+closed issue/PR 按 "ci:full empty PR trigger" 检索无命中;本 PR 是空载体 CI 探针,与既有条目无交集)。
标签: pr(原有)+ scope/ci + p3 —— CI 探针载体,本身不承载用户可见缺陷。

按你的要求,对 v0.1.212..master 头(df0a4023b)全窗做了 release 标准深度审核:308 文件、+24824/−1639、约 55 个内容 PR。做法:先 --stat 总览,再按高危域分批逐段通读全部 diff(kernel / 自更新 / dsh / 请求管道×2 / 存储 / 通知面 / Web UI / 车道 / 配置面 / 文档CI + golden + kernel 测试抽查),未整吞 diff、未只看 CHANGELOG。结论如下。


结构化八问

1. 是什么问题:本 PR 本身是空载体(一个空提交),唯一目的是在 master 头跑一遍完整 CI 矩阵;你要的是借它做上一版本以来的全面回归审核。

2. 什么原因导致的:审核发现 1 处窗口引入的回归——master 头 CI 红,失败签名全部落在 nudge/estimate e2e 上(见下),机制指向本窗新合入的 #5860 幻影压力守卫(requireUsageSampleForPressure 默认开)与既有 e2e 断言「估算计表下立即注入」的冲突。其余约 54 个 PR 逐一核对其 issue 机制,方向均成立(修根因而非堵症状),未发现其他方向性错误。

3. 影响范围与严重程度:红只卡 CI/发版门禁,不影响已发布版本的用户行为。5 个失败测试全是 silent-backend(上游不回 usage)估算注入路径;若守卫覆盖面确属过宽,升级用户会经历「估算驱动的 nudge 延迟一轮」——属特定条件体验回退,需 ci-fixes 修复时定方向。窗口内其余行为变更均为有意变更,已逐条披露(见清单),属可控特性演进。

4. 怎么修复的:本 PR 不修任何东西(空载体,按 OP 不合并)。CI 红按 #4599 协调纪律走:收敛到 ci-fixes,不在别处另修、不开新 issue。修复方向二选一:收窄 #5860 守卫作用域(只压 pressure band、放行 legacy 语义路径),或把 5 个 e2e pin 更新为「延迟一轮后注入」的新契约——取决于 #5860 的意图边界。

5. 是否有回归问题:是,1 处(上述 5 个 e2e 红,签名见下)。既审过的既有行为逐项确认未被破坏:thinking/redacted/thoughtSignature 通道字节稳定(#1960 纪律,全窗无人触碰);proxy 模式 acp_summary→user 改声不变;前缀缓存锚点逻辑不变;kernel msgid 永不复用契约未动;config 读改写 parse-state 守卫保留;错误处理未从 fail-fast 变吞错(存储取证改动只加细节,warn 去重键仍钉在裸 String(err),#5140 pin 保持)。一处文档小疵(非回归):CONFIGURATION.md/en+zh 写 BILI_IDENTITY_HARVEST「还需 pluginLaneServerHistory rollout 同时开启」,代码门实际允许任一开关单独激活采集(文档比代码严,建议措辞对齐)。

6. 是否破坏缓存:否。前缀缓存接缝未动;keepalive 定时器 unref 只影响短命进程退出时机(长驻宿主无感);cache_control 无显式 ttl 现按 Anthropic 默认 5m 档计数(旧:只认显式 "5m"——对齐上游默认语义,已披露);增量车道对 cache_control 装饰忽略对齐 + retouch 通道是能力门控(旧服务端不 advertise → 零变化)。

7. 是否改了设计方向:无架构转向。两个新子系统在声明边界内落地:统一通知面(KDD#16,三源一注册表 B>A>S 遮蔽)与 identity-harvest 共享接缝(#5825,rollout 默认 0% 关)。msgid>顺序>hash 身份层级是加固不是改变(harvest 只做第三顺位补证,整轮降级纪律)。

8. 是否引入了新的配置:是,清单——

  • 文件键:personaSplit(默认 true)、compress.requireUsageSampleForPressure(默认 true)、compress.requireNudge / compress.requireRecommendation(默认关,opt-in)、guardrails.repetition 对象形式 {enabled,warn,abort,recovery}(env 仍只收布尔)、remoteAnnouncementsUrl、pi.inline(默认翻转)、sessions.residentMaxBytes(512MiB→4GiB)、rollout.features.identityChannelHarvest(0%)。
  • env:BILI_PERSONA_SPLIT、BILI_ANNOUNCEMENTS_URL、BILI_IDENTITY_HARVEST、BILI_SILENT_DIRECT_MAX_MB、BILI_ROLLOUT_IDENTITY_CHANNEL_HARVEST。
  • 全部有 en+zh 文档 + yaml seed 同步;无自创形状,均映射到既有体系。

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

变更 旧 → 新 原因
pi 裸车道默认姿态 spawn/attach → inline 进程内(BILI_PI_INLINE=0/pi.inline:false 可退回) #5428 取代 #4687 opt-in 规则;launcher 显式 attach 目标仍优先,bili pi 不受影响
会话池字节预算上限 512MiB → 4GiB #5779:单会话常态超 512MiB 被永久乒乓(每请求间隙驱逐、每请求冷载、内存压力下 OOM 并制造 .corrupt-* 磁盘填充循环)
静默直连字节天花板 2MiB → 8MiB + BILI_SILENT_DIRECT_MAX_MB #5405/#5408(owner 裁定 2026-11-07,在 #5826 评审内)
带重取句柄的媒体 永久不可折叠 → 可折叠(MEDIA REFS 段机械携带进摘要) #5620:图片重度会话上下文地板从 ~70% 降下来;未知不透明形状仍保守钉住
压力档 nudge 注入 估算计表下立即注入 → 延迟一轮(等计费样本;pressureDeferredNoSample) #5860 幻影压力守卫——即当前 CI 红的机制来源
T1 折叠饥饿 T1 永远优先但只折 3-6K #5698 harvest-stall:收割率 <50% 进入 stall,T2/T3 可越级先行
工具对边界扩宽 距离扫描(maxScan=20,遇缝即停)→ id 精确不动点扩宽(全数组极值) #5758/#5751
T2 合并 任一预存 turn-integrity 冲突毒死全部合并 → 合并集外冲突继承+警告,嵌套块排除阶梯 #5789
wire 表面 acp_status 各线 properties:{} → 真实参数 schema;Gemini 线从无 acp_cache → 有;TOOLS 提示 five→four + 换代 ref 段 #5555 假广告清扫
面板「检查更新」 force 检查绕过 advisory 且可直接装 → 两步(只检查出裁决 → 显式安装) #4791
守护注册 零重试 → 3×(2s+500ms) 重试 + 心跳确认恢复通知 #5641
bun 运行时 不支持 better-sqlite3 落 N-API → bun:sqlite 引擎阶梯第 0 位(仅 bun 进程启用,Node 路径零变化) 存储可用性
存储 schema v10 → v11:6 个 FK 子表索引(幂等迁移,双向兼容) #5539:foreign_keys=ON 父删全扫,实测 20-35s/turn → 4-5s
身份通道 仅 body 戳/头 → + loopback transcript/sqlite 采集接缝(5 客户端源,rollout 0% 默认关) #5825
kiro 车道 无 → 新增(cert-MITM 仅 4 个 runtime 网关;developer/system→user 内置兼容映射;conversation_id 提升为身份) #5533(外部贡献,测试矩阵完整含防后缀伪造)
pi-subagents 重叠守卫 仅 project-scope 触发 stand-down → 任一 scope #5637:user-scope 装在所有项目加载,warn-only 等于处处双份
未提示压缩/越界压缩 无门禁 → opt-in 两开关(默认关,off 对象零行为变化) #5683
重复调用护栏 abort 直接杀回合 → recovery 模式:soft-stop 窗口 + abort+5 硬兜底 #5505
瞬时错误判定 仅状态码/固定词 → + 响应体声明(actions:["RETRY"]/retryable:true,中英标记) #3606:部分原 fail-fast 的 4xx 现在会重试(有意)
anthropicInclusive 判定 信声明 → 自洽校验(input<cached 的 inclusive 声明自相矛盾,回落 split) #5513:消灭 1796–6991% 假命中率
出站图片降级 Rung A 封顶 64 张 → 全量归档(Rung B 降采样仍封顶 64,CPU 界) #5745:>64 图会话每轮 400 的永久超预算
会话冷载 立即可被驱逐 → 10 分钟驱逐宽限(字节预算绕开宽限期会话,计数上限强制让位) #5782 OOM 事件
命名空间模型 URL slash 模型 id 被误判非模型流量直连 → 正常拦截进管道 #5593(外部)
dsh compaction 降级直连 照发 → 本地 422 拒绝(marker-decisive 才拒,不可读 body 保直连语义) #5686:摘要 checkpoint 不得在上游落地并永久遮蔽 raw 历史

高危域点名核查结果

CI 现状(本 PR @2ef030c,run 42355365192)

static-gates ✅;test 矩阵多片红(windows 22/1·22/2·22/3·24/1·24/2,ubuntu 24/2·24/3…,余 in_progress)。抽了一片日志(ubuntu 24/3,3807 tests / fail 5)拿到确切签名——5 个失败全是 nudge 估算注入 e2e:

not ok 835 - e2e: anonymous zero-baseline fork below the window → nudge injects (no fold, preflight silent)
not ok 837 - e2e: #1137 anonymous image-heavy fork → image term crosses the pressure band, nudge injects
not ok 2655 - #728A: silent-backend explicit session — turn 1 idle, turn 2 nudge via local estimate, preflight silent
not ok 2657 - #728C: stale-high cap — shrunk history does not re-trigger on the previous turn's estimate
not ok 2658 - #1119: silent-backend image term survives the stale-high cap — inline images count toward the nudge numerator

机制指向明确:#5860 守卫默认开后,silent-backend(无 usage 上报)场景的估算驱动注入被延迟一轮,而这 5 个既有 pin 断言的是当轮注入。这是窗口内变更打自己窗口的测试基线,不是环境抖动(ci-tests 已排除四类已知假红形态且不自动重试)。按协调纪律:去 #4599 收敛到 ci-fixes(修守卫作用域或更新这 5 个 pin 为新契约,取 #5860 意图正确的那个),此处不开新 issue。


收工判定:全窗审核完成——除上述 1 处 CI 回归(待 ci-fixes 收敛)和 1 处文档措辞小疵外,未发现其他回归;所有行为变更均已按上表披露。本 PR 达成其目的(master 头 ci:full 跑完并暴露了真问题),按 OP 不合并即可。发版前置条件:先让 ci-fixes 把那 5 个 e2e 红收敛掉,否则 release CI 必红。

@ranxianglei

Copy link
Copy Markdown
Owner Author

大 Diff 全面 Review 结论(master→本版本,按域整体审,非逐 PR)

六个域各做一遍完整审查:①限流/中继、②缓存面(anthropic forward)、③kernel 压缩/触发、④公告/更新/web 面板、⑤会话身份(lane/标签识别)、⑥存储/dsh/持久化。未发现 P0/P1 阻塞项;两个 CI 红项的根因都已定位并修复(见下)。以下 P2 建议在下个版本前处理。

与性能 / 缓存 / dsh 相关的关键点(重点关注项)

  1. 每次转发都多付一笔全量扫描(限流域 + 缓存面两处独立发现,均 P2):限流分类对每个代理 POST 无条件做一次全文模型扫描,透传车道还要再做一遍;anthropic 成功转发路径每次付「两次同步读配置 + 全量 JSON.parse + 递归遍历」。都不阻塞,但属于热路径上的恒定税,值得收敛成采样或前置短路。
  2. dsh 远程压缩绕过(Bili skips compression in the DSH Remote scenario, with local fix and test attached | Bili 在 DSH Remote 场景下跳过压缩,附本机修复与测试 #5614/[PR] fix(dsh): DSH Remote long sessions skip compression due to stale fetch-chain re-entry state #5616):确认已修好且机制正确——runOutsideFetchChain 在操作边界清掉残留作用域标志,不会永久失压、也不会双重压缩;有 343 行回归测试 pin 住。健康。
  3. 持久层:双写归属快速通道、隔离目录上限、mysql v11 迁移、shadow 诊断增强——全部确认健康。一个例外(P2):内存耗尽导致解码失败时文件被原样保留,之后同一会话的新状态会无声覆盖这个其实完好的大文件,不留任何取证副本。建议覆盖前先改名留一份(带上现有数量上限)。
  4. 幽灵压力等待被无限拉长(P2,本轮已修):[PR] fix(nudge): no billing sample this round → hold pressure-band injection one round (phantom-pressure guard) #5860 的压力注入等计费样本才动手,但对从不回传计费的会话(匿名 fork、静默后端),样本永远不来 → 压力注入永远挂起,这类会话永远不会自动压缩。已在 #5882 加 N 轮兜底:最多连押 2 轮估算读数,之后回落到按估算照常判;设 compress.maxEstimateHoldRounds: 0 可完全不押。保留原有的一两轮幽灵窗口保护不变。

其余值得下版本前小修的问题(择要,P3 级)

  • 「立即检查更新」按钮每次点击都会重置后台更新的节流计时,连续点击会让自动检查长期不跑。
  • 旧版提示关闭名单满了会恰好把刚加入的那条挤掉(新版路径无此问题)。
  • 关闭接口接受任意合法格式的内容地址键,而不是只收当前可见的公告。
  • 远程公告源 URL 覆写没有协议/主机限制(重定向不受控)。
  • 会话识别新加的「首条消息引用快照头」判据可能把另一个任务错认回旧车道;回环接口的伪造会把 A 会话的消息编号贴到 B 本地进程的请求上(安全边界类,均有较强缓解条件,给方向不展开)。
  • web 面板两小项:拖动的列宽一刷新就丢;外部上游装了插件后 DISABLE_AUTO_COMPACT=1 会被悄悄移除。
  • kernel:把可恢复引用的媒体当持久句柄用、推理×工具边界只走两轮而工具配对自己走到不动点——一致性口径问题。

CI 红项清单与处置

失败 根因 处置
storage-render golden ×4 + storage-engine-proofs ×4(反复出现 10+ 次) golden 是在带漂移环境变量的机器上生成的,和 CI 干净环境的输出差 2 行(metadata 段的模型表戳) 已在干净环境重新生成并独立复核字节级一致,#5882 携带
upstream-red(kernel nudge 套件 5 个 e2e) 上一条「幽灵压力无限等待」:从不回传计费的会话第 1 轮起就被一直押住 #5882 的 N 轮兜底修复,测试按新时序适配并新增内核时序 pin 测试
remote-announcements 流式上限断言(偶发,双 OS) 6 块缓冲余量依赖事件循环负载,慢 runner 上服务端多写几块就超预算 疑似负载型抖动,尚未改;若 CI 复现再放宽到 ~10 块或改断言形状

能否合并

代码面无阻塞项(P0/P1 为零,P2 均已有明确修法且不影响正确性主路径)。#5882 的 CI 转绿后可合并;合并动作按仓库约定由人来执行。

@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

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

逐条独立复核了你的结论(拉两个 PR 分支读 diff、本地跑守卫脚本、对照镜像 CI 缓存,不是只读摘要):

机制核验(全部确认)

  1. N 轮兜底:kernel 侧 estimateHoldStreak(连续估算轮计数,usage-grade 读数到达即清零,随 NudgeState 跨重启持久化)+ maxEstimateHoldRounds 默认 2 / 设 0 完全不押;第 1–2 轮保留幽灵窗口保护,第 3 轮起回落 legacy 按估算照常判。旧调用方(source 省略)与非压力档行为字节级不变——方向与你的描述一致。新增内核时序 pin 测试;#728A 改真·无计费 mock + 4 轮双向断言(turn2 必须押住、turn3 兜底到期必须注入),不是恒真测试。
  2. 存储 golden ×4:diff 仅 stateDigest / stateDigestAligned / metadata 段 sectionDigest 三处 rollup,blockContents/stats/state 摘要不动——与「metadata 段模型表戳漂移」解释吻合,无其他内容变动。
  3. config-surface-guard:之前那次红是 CI 查了中间提交(yaml seed 尚未落地的 f0a3105);最终 head 本地实跑 → 186 个叶子字段 OK、exit 0,镜像缓存在 b2d231d 上也是绿。CONFIGURATION.md en+zh 已重新生成覆盖该键。
  4. 本轮发现的唯一实质缺口:kernel 版本号未 bump。kernel/src 有改动但 kernel/package.json 停在 0.0.184,kernel-guard 在 b2d231d 上实测红(镜像缓存可查)。你在我准备推的重复提交落地前自己补上了(0.0.185 + 根 lockfile 同步,两分支各一组),我已丢弃我那份重复 commit,无分叉;5882 正文的 kernel-change: 声明也已就位(两分支正文均已确认含标记)。

P2/P3 清单:照单认可,线程里的清单即台账,不逐项另开 issue(收敛粒度政策)。其中 OOM 解码失败后大文件被无声覆盖、两处热路径恒定扫描税,建议下个版本前优先;remote-announcements 流式上限 flake 同意「先复现再放宽」——若复现,建议把缓冲余量放宽到 ~10 块而不是改断言形状(改形状会丢掉「不全量落内存」这个钉住力)。

收工判定:两分支当前 head(5865=de0050f168 / 5882=d93bb3b6a4)机械缺口已清零,CI 重跑中(目前 0 红,分别 8 / 12 项在途;显示 behind 是因为 master 期间合入了 #5772,不构成阻塞)。代码面无阻塞项,与你结论一致;合不合、何时合由你定,按约定 #5882 转绿即可合。

@ranxianglei ranxianglei closed this Nov 7, 2026
@ranxianglei
ranxianglei force-pushed the ci-full-probe-2026-11-07 branch from 4433767 to 2bda6b3 Compare November 7, 2026 14:11
@ranxianglei

Copy link
Copy Markdown
Owner Author

综合代码评审:v0.1.212 → 当前 master(约 417 个提交)

范围是整个大 diff(不逐 PR 看),方法:6 条独立 lane 并行深读 + 本地复现验证。
Lane 划分:① 上游节流/重试/抓取/流式 ② 缓存/fastpath/keepalive ③ kernel 压缩/投影/媒体 ④ 通知/更新/web 面板 ⑤ 会话身份各通道 ⑥ DSH/存储/持久化。
结论先行:无 P1(阻断级)问题;3 个 P2 值得排期,其中 1 个已修并已合并(#5882)。

各区域结论

区域 结论 主要问题
上游节流/429/流式 健康,边界处理严谨 P2:每次代理请求无条件多一次全 body 扫描(见 K1)
缓存/keepalive/fastpath 健康,无泄漏(seeds 是 WeakMap),并发无竞态 测试 tests/cache-keepalive.test.ts:587 有 10 秒墙钟竞态,是当前 CI 抖动头号嫌疑
kernel 压缩/投影 健康;1600/1600 本地全绿 P2(已修已合):#5860 幻影压力守卫在无计费样本的会话上把主动压缩压死 → #5882 N 轮兜底,已合并
通知/更新/web 上线质量;XSS/CRLF/降级向量全部干净 3 个小项见 T3
会话身份 无 P1;所有降级方向都偏向"无身份"而非"错身份" 2 个小项见 T4
DSH/存储/持久化 无 P1 P2:内存耗尽时旧会话文件会被新状态静默覆盖,且不留任何取证副本(见 K2)

P2 问题明细(值得排期)

K1 · 每个代理请求多两次全量 body 扫描(性能)
src/server/handle.ts:522 无条件调用 requestModelFromBody 扫整个请求体;passthrough lane 在 src/relay.ts:912 还会再扫一遍。实测约 1 ms/MiB:5 MiB 历史 = 每请求白多 5~10 ms,且发生在"没被 429 拦下的常见路径"上,纯开销。建议:把扫描结果挂在请求上下文上,一次扫描两处消费。

K2 · 内存耗尽(OOM)后,健康但巨大的会话文件会被静默覆盖,数据丢失且无取证
src/persist.ts:1231-1240:解码失败被判为"内存耗尽"时,文件原样保留、读取返回 null(与"文件不存在"不可区分);会话按同一 id 重建 → 保存路径相同 → 下一次保存直接用新的小状态原子替换掉那个 0.6 GiB 的旧文件。没有 .corrupt-* 副本、没有二次告警。恰好 #5779 修的那类大文件最容易踩。建议:记住 OOM 过的 id,下次保存前先把旧文件改名留一份(有上限)。

K3 · 带"会过期的远程 URL"的媒体消息会被折叠,句柄过期后内容永久丢失
kernel/src/media-refs.ts:27-72:只要媒体旁挂的是非 data: URL/file_id 就判"可恢复",不检查是否签名/会过期。预签名 URL(小时级)过完后 decompress 恢复失败,载荷就没了;旧行为是永不折叠(保守但安全)。建议:对疑似临时 URL 走永不折叠分支。
(K1/K2/K3 中,#5860 幻影压力那个 P2 已由 #5882 修复并合并,此处不列。)

P3 备忘(不阻塞,记录在案)

  • T1 src/upstream-throttle.ts:665-690:upstreamThrottlePeekReject 文档说"绝不改状态",实际会清掉已过 30s TTL 的探针令牌——行为与旧版逐位一致,是文档 bug 不是行为 bug。
  • T2 src/upstream-throttle.ts:413-428:64 槽位全被未定论观察占满时,一条新的 429 判决会被静默丢弃(仅短暂少压一个窗口;需要单进程 64 路并发 429,实际难达)。
  • T3 通知区:① dismiss 端点建议只放行当前可见的 id;② 旧版淘汰路径按字母序而非插入序淘汰;③ 流式大小测试 6-chunk 余量偏小,是 CI shard 噪声的另一候选源,建议放宽到 ~10 或改断言 state.lastError。
  • T4 身份区:① src/session-resolve.ts 首个 user 消息里逐字引用 checkpoint 头可能把新任务挂到旧 lane(需恰好共享 rawId,概率低,建议加 novelty 校验);② 单 UUID 重叠即触发 fork-rescue,建议非 checkpoint 路径要求 ≥2 命中。
  • T5 src/dsh-channel.ts:698-706:profile 临时消失时账本会剪掉 broken 标记,重新武装一次破坏性重装(最坏一次失败的响亮失败)。
  • T6 src/storage/driver.ts:268-290:bun 命名参数收集对紧邻符号(:a@b)只取第一个——本树生成的 SQL 全带逗号/空白分隔,无实际触发。

用户指定关注点直答

CI 现状

本 PR(探针)已对齐最新 master 2bda6b336,正在跑新 CI;此前 8 个红 shard 的根因全部已定位并修复:golden 环境漂移(CI 运行时真值 vs 本地再生成)+ #4241 测试的牙齿定位依赖 nudge 位置。新 head 结果以本 PR 最新 run 为准。

@ranxianglei ranxianglei reopened this Nov 7, 2026
@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

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

收到。本车道(#5865 ci-full 探针 PR 的红 CI 修复)核实现状如下——先给结论:最新 run 已全绿,本车道无需再改任何代码。

本轮 live 核定(实测,非转述)

  • 单次 gh 拉取(未轮询)head 98d58ec6ad 的 check-runs:54 success + 1 skipped + 0 failure,全部 concluded → CI 绿。
  • 本地 git:pr/5865 head = 98d58ec6ad(Merge branch 'master' into ci-full-probe-2026-11-07),diff vs origin/master(6945a354) = 空,0-behind / 3-ahead → 已对齐最新 master、无内容 delta、无冲突。
  • 说明:运行期间镜像的 upstream-checks 快照未刷新(fetched_at 停滞约 1 小时),不足以作实时依据,故按政策改用「单次 gh 拉取」核对实时状态(未循环轮询,不占 PAT 配额)。

此前 8 个红 shard 如何被消掉(时间线)

  1. 派发报告的 8 个红在旧 head de0050f168 / run 42371761970,现已过期。
  2. 前一轮已推 golden pin 4433767b05(storage-render 四份 golden 的 stateDigestAligned 对齐 CI-runtime 真值)。
  3. 分支随后 merge/rebase 对齐到最新 master,head 推进到 98d58ec6ad;#5882(nudge estimate-hold backstop)等修复已并入 master。
  4. 你在评审里把此前 8 个红的根因归为:golden 环境漂移(CI-runtime 真值 vs 本地再生成)+ #4241 测试牙齿定位依赖 nudge 位置——两者均已修,反映在现在全绿的最新 run 上。

结构化八问

  1. 是什么问题:[PR] chore: empty PR — trigger ci:full on master head #5865 探针 PR 的红 CI 门禁(8 个 test shard 红)。
  2. 什么原因导致:golden 环境漂移 + Egress Judge false positive on Snapshot Render Lane I2: prefix comparison baseline needs to be aware of the render view | 出站判官对快照渲染车道误报 I2:前缀比对基准需要感知渲染视图 #4241 牙齿定位(归因见你的评审);均非本 PR 自身代码——该 PR 现为空 diff 探针。
  3. 影响范围与严重程度:仅该探针 PR 的 CI 门禁,非用户面缺陷;现已清零。
  4. 怎么修复的:不在本车道重改——先前 golden pin + 对齐最新 master([PR] Infinite Wait Issue in Stress Injection: N-Round Fallback (Side Effect Introduced by Fix #5860) | 压力注入无限等待问题:N轮兜底(修复#5860引入的副作用) #5882 已并入)即构成闭环;我本轮做的是核实而非重复修改。
  5. 是否有回归:不涉及(未改任何代码,空 diff 探针不引入行为变更)。
  6. 是否破坏缓存:不涉及(未触碰缓存/重试/游标逻辑)。
  7. 是否改设计方向:不涉及。
  8. 是否引入新配置:不涉及。

范围外说明:你评审中的 K1/K2/K3/T* 属 master 级发现(P2 值得排期 / P3 记录在案),与本空 ci-探针 PR 无关,不在本车道处理,也不在此捆绑立项。

判定:最新 run 全绿、已对齐 master 且无内容 diff —— CI 侧收工,本车道无需进一步动作。

@ranxianglei

Copy link
Copy Markdown
Owner Author

🤖 Powered by ework · qwen3.8-27b

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

重复唤醒:本次转发与上一条完全相同(同一过期 head de0050f168 / run 42371761970,attempt 仍标 1/3)。已在本轮重新 live 核验——当前 head 98d58ec6ad(ci-full-probe,空 diff、0-behind/3-ahead)的 check-runs 依旧 54 success + 1 skipped + 0 failure,全 concluded → 绿,与上轮一致、无变化。无需进一步动作。

Louie0806 pushed a commit to Louie0806/billion-context that referenced this pull request Nov 7, 2026
…hot, msgid-rescue trace

- throttle F1: requestModelFromBody memoizes {body→model} on a request-scoped
  cacheHost so the pre-ingest early-hold gate and the full 429 gate share ONE
  body scan instead of walking the multi-MiB document twice per POST
- media-refs F2 (kernel): pre-signed/expiring HTTP(S) URLs (X-Amz-*/X-Goog-*/
  X-MS-*/SAS/Expires/Signature/…) are classified NON-recoverable — the handle
  lapses before a folded summary is decompressed, so the message keeps pinning
- persist: an envelope that OOM'd on decode is snapshotted before the next
  save overwrites it (preoomPending set + withPreoomSnapshot)
- session-resolve: every msgid-rescue firing now logs hits/exit-context as
  ranxianglei#5719 overlap-rung reachability evidence
- kernel 0.0.185 → 0.0.186 (media-refs change), lockfile synced

Review findings from ranxianglei#5865 master-diff review (P2 batch).
Louie0806 added a commit to Louie0806/billion-context that referenced this pull request Nov 7, 2026
…es and the v0.1.213 release bump

Upstream delta cda6e73..133f352 (13 files, 6 commits):
- 8bf5317 fix: ranxianglei#5795 pay the early-hold body-model scan only when the gate can fire
  (tryEarlyHold now accepts `requestModel?: string | (() => string | undefined)`)
- 8c6f07a fix: ranxianglei#5744 rebuild the O(1) incoming-block-id set the ingest diff lost
- d29c73c fix: ranxianglei#5865 close the id-misalignment holes in the channel-harvest adapter
- 98cd8a1 release v0.1.213

Overlap with the lane footprint was src/server/relay.ts and src/storage/mysql.ts; both hunks are disjoint from the lane's, and the merge was
automatic. Verified after the merge: the lane's non-streaming egress is still at
src/server/relay.ts:2070, MYSQL_SCHEMA_VERSION is still
exported at src/storage/mysql.ts:77 with 6 consumers in the ranxianglei#4666 test, and the
upstream requestModel supplier branch plus the incomingBlockIds Set are both present.

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, issue4666 2/0, native-compact-terminal 1/0,
issue5744-ingest-diff 5/0, issue5865-model-scan-memo 4/0.
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)
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 p3 scope/ci

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant