Repository navigation
[PR] chore: empty PR — trigger ci:full on master head - #5865
ranxianglei wants to merge 3 commits into
Conversation
📦 Built Package ArtifactBranch: Latest build — install this exact versionnpm install -g billion-context@0.0.8533-pr.5865.7a828e4This exact version is immutable and reproducible. The rolling Recent builds (commit → version)
Download artifact
tar xzf billion-context-pr5865.tgz
npm install -g packageInstall instructions are refreshed on each push. |
|
做全面review release 标准 |
(ai: vllm-qwen/qwen3.8-27b) 查重: 不重复(open+closed issue/PR 按 "ci:full empty PR trigger" 检索无命中;本 PR 是空载体 CI 探针,与既有条目无交集)。 按你的要求,对 v0.1.212..master 头(df0a4023b)全窗做了 release 标准深度审核:308 文件、+24824/−1639、约 55 个内容 PR。做法:先 结构化八问1. 是什么问题:本 PR 本身是空载体(一个空提交),唯一目的是在 master 头跑一遍完整 CI 矩阵;你要的是借它做上一版本以来的全面回归审核。 2. 什么原因导致的:审核发现 1 处窗口引入的回归——master 头 CI 红,失败签名全部落在 nudge/estimate e2e 上(见下),机制指向本窗新合入的 #5860 幻影压力守卫( 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 去重键仍钉在裸 6. 是否破坏缓存:否。前缀缓存接缝未动;keepalive 定时器 unref 只影响短命进程退出时机(长驻宿主无感); 7. 是否改了设计方向:无架构转向。两个新子系统在声明边界内落地:统一通知面(KDD#16,三源一注册表 B>A>S 遮蔽)与 identity-harvest 共享接缝(#5825,rollout 默认 0% 关)。msgid>顺序>hash 身份层级是加固不是改变(harvest 只做第三顺位补证,整轮降级纪律)。 8. 是否引入了新的配置:是,清单——
重大行为变更清单(旧值 → 新值 + 原因)
高危域点名核查结果
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: 机制指向明确:#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 必红。 |
大 Diff 全面 Review 结论(master→本版本,按域整体审,非逐 PR)六个域各做一遍完整审查:①限流/中继、②缓存面(anthropic forward)、③kernel 压缩/触发、④公告/更新/web 面板、⑤会话身份(lane/标签识别)、⑥存储/dsh/持久化。未发现 P0/P1 阻塞项;两个 CI 红项的根因都已定位并修复(见下)。以下 P2 建议在下个版本前处理。 与性能 / 缓存 / dsh 相关的关键点(重点关注项)
其余值得下版本前小修的问题(择要,P3 级)
CI 红项清单与处置
能否合并代码面无阻塞项(P0/P1 为零,P2 均已有明确修法且不影响正确性主路径)。#5882 的 CI 转绿后可合并;合并动作按仓库约定由人来执行。 |
(ai: vllm-qwen/qwen3.8-27b) 逐条独立复核了你的结论(拉两个 PR 分支读 diff、本地跑守卫脚本、对照镜像 CI 缓存,不是只读摘要): 机制核验(全部确认)
P2/P3 清单:照单认可,线程里的清单即台账,不逐项另开 issue(收敛粒度政策)。其中 OOM 解码失败后大文件被无声覆盖、两处热路径恒定扫描税,建议下个版本前优先;remote-announcements 流式上限 flake 同意「先复现再放宽」——若复现,建议把缓冲余量放宽到 ~10 块而不是改断言形状(改形状会丢掉「不全量落内存」这个钉住力)。 收工判定:两分支当前 head(5865= |
4433767 to
2bda6b3
Compare
综合代码评审:v0.1.212 → 当前 master(约 417 个提交)
各区域结论
P2 问题明细(值得排期)K1 · 每个代理请求多两次全量 body 扫描(性能) K2 · 内存耗尽(OOM)后,健康但巨大的会话文件会被静默覆盖,数据丢失且无取证 K3 · 带"会过期的远程 URL"的媒体消息会被折叠,句柄过期后内容永久丢失 P3 备忘(不阻塞,记录在案)
用户指定关注点直答
CI 现状本 PR(探针)已对齐最新 master |
(ai: vllm-qwen/qwen3.8-27b) 收到。本车道(#5865 ci-full 探针 PR 的红 CI 修复)核实现状如下——先给结论:最新 run 已全绿,本车道无需再改任何代码。 本轮 live 核定(实测,非转述)
此前 8 个红 shard 如何被消掉(时间线)
结构化八问
范围外说明:你评审中的 K1/K2/K3/T* 属 master 级发现(P2 值得排期 / P3 记录在案),与本空 ci-探针 PR 无关,不在本车道处理,也不在此捆绑立项。 判定:最新 run 全绿、已对齐 master 且无内容 diff —— CI 侧收工,本车道无需进一步动作。 |
(ai: vllm-qwen/qwen3.8-27b) 重复唤醒:本次转发与上一条完全相同(同一过期 head |
…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).
…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.
…-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)
….md (#6067 review) The shared-discipline bullet described the role check as a bounded "spot-check up to 4 positions". The 4-position window existed only at file creation (34dbcc2) and was removed by d29c73c (#5865); current behavior is a full role-sequence check over every position where both sides expose a role (rolesAlign, src/identity-harvest.ts). Doc-only.
空载体 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 测试)。