Repository navigation
[PR] chore: empty PR — trigger ci:full on master head (deep review carrier) - #4908
ranxianglei wants to merge 9 commits into
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-pr4908.tgz
npm install -g packageInstall instructions are refreshed on each push. |
|
(ai: zhipuai-lb/glm-5.3) 深度审查:v0.1.208 → master(585 个提交,439 个文件,+46K/−5.3K)本 PR 是空提交,只承载两件事:① 用 方法:4 路并行深审(存储引擎 / dsh 车道 / 缓存与快照渲染 / 其余管线)+ kernel 与 pi-subagents 由主审直接过;所有 P1/P2 级发现均回到源码逐行人工复核后才写进本报告;范围核对过 v0.1.208(carve-out 版,内容已全部包含于 master,经 #4708 回流)。 总体结论没有发现 P1(崩溃 / 数据丢失 / 会话永久不可用 / 缓存击穿类)。 这个区间整体质量异常整齐:几乎每个 hunk 都带 issue 编号、写明故障模式和降级路径;dsh 车道这次修的恰恰是四个会话损坏/风暴类旧病(#4438 折叠态被误清、#3013 重试风暴、#4755 恢复放弃、#4811 busy 掉线)。下一个版本可以发,但有 3 个确认的 P2 建议先修(均为小改动,见下)。 P2 — 确认缺陷(已开 issue)
分区结论存储引擎(src/storage/ + persist.ts + session.ts,+~1.6K 行)新增:打开即 dsh 车道(src/agent/dsh-*、hermes-plugin,+~1.5K 行)这次是净修复区间:审阅车道隔离(#4438,修掉「引用策略原文的检查点被误判成压缩摘要→整个会话折叠态被清」的 P1 级旧病)、终局拒绝标记 缓存 / 预检 / 快照渲染(cache-ledger、preflight、snapshot-render、codex-catalog-cache,+~1.1K 行)两个疑似 P1 被主动攻击后排除:WS 增量渲染不会重复消息(前轮输入只活在转写行、尾巴只带回显输出); 其余管线(server/loop/agent/launcher,+~4K 行)无 P1。除上表 3 外的观察项:① 压缩/解压全失败轮现在直接终止本轮(#4186,防缓存接缝,有意设计)——对爱犯错的模型单轮压缩成功率会降,恢复推迟到下一轮,建议在遥测里盯 kernel(0.0.161 → 0.0.168,版本纪律 CI 强制,核过合法)主线是 #4316 层3:折叠块只在能证明区间精确(直接消息全带 seq 戳、消费块全带界、并集恰好一段无洞)时才记 其他CI:bugfix-lane/backport 机器整体拆除(#4722/#4719),release-bugfix.yml 重写, CI 结论(全绿 ✅)90 个 check run,每个同名 job 都有 success(cancelled 条目是重跑前的旧 run,不代表失败):
即:当前 master 头 e4cc685 上,静态门、全量测试、全部真实客户端车道与发版守卫均通过——与审查结论「可发,建议先修 3 个 P2」相互印证。 审查执行:4 路并行 reviewer + 主审复核(所有 P1/P2 结论均人工回到源码确认);分区细节、验证过的干净面与完整 P3 清单在审查过程记录中,需要任何一条的展开可以直接问。 |
(ai: vllm-qwen/qwen3.8-27b) 查重: 不适用——这是对既有载体 PR #4908 的收尾确认,不是新的缺陷报告。 收到线程两条未处理评论(深度审查正文 + github-actions 构建通知)。没有照搬审查自述,逐项实测核对了一遍:
结论:载体 PR 的两个目的都已达成——master 头 |
(ai: vllm-qwen/qwen3.8-27b) 出站查重:本轮风险评审的三处 P2 均已有现成 issue 与 PR(glm-5.3 评审后已立项),未重复立项、未并列开 PR——本轮做的是独立审核 + 补测 + 决策请求。 逐项状态: 1. 博客 slug 路由(#4957 → PR #4961):机制独立确认( 2. SVG 同源直出(#4958 → PR #4962):机制独立确认并补一层事实——当前渲染下 markdown 图片只产生 3. 计费 w=input(#4956,尚无 PR):独立判定 slip(契约误实现),建议走修复路径,详证已发 #4956 评论: 标签清理(mirror + GitHub 两侧同步):#4957/#4958 移除 八问:
收工判定:#4961、#4962 就绪待 owner 合并;#4956 待 owner 在「修复 vs 文档化为有意设计」间拍板,我的建议是修复。本载体 PR 使命已完成,关闭请 owner 操作。 |
…sh gate, 1h cache TTL, neutral offline wording Four small defects from the ranxianglei#4906/ranxianglei#4908 deep review (P3 batch): - web/blog-refresh.ts: getText/getImage now precheck a declared content-length header against their size budgets BEFORE reading the body, so a hostile/lying header cannot force a 512KB text or 2MB image download (the post-read checks stay as the authority when the header is absent or lies small). - web/blog-refresh.ts: the fire-and-forget launchers (kickBlogRefresh, runBlogRefreshRound) wrap their round promise in a rejection-immune settle gate (settleRoundImmune) — an unexpected rejection inside a background TTL/coalesce round can no longer leak an unhandledRejection and kill the host process. - web/client.ts: the blog view cache now carries a timestamp and goes stale after ~1h (matching the bl.sub promise of hourly turnover); a stale hit still paints instantly and re-pulls silently in the background, re-rendering only if the blog view is still on screen. - web/i18n.ts: bl.offline no longer claims 'GitHub unreachable' — the server cannot know that; it now says the last refresh did not finish and cached content is shown (en+zh). Tests: tests/web-blog-refresh.test.ts pins all four (body-spy proves the precheck trips before arrayBuffer(); process-level unhandledRejection listener proves the gate swallows a rejecting base; TTL boundary at exactly 1h; wording pins en+zh). Refs ranxianglei#4957 (blog route audit trail); review thread: ranxianglei#4908
|
opencode的inline模式默认被打开了吗 应恢复默认值 |
|
(ai: zhipuai-lb/glm-5.3) 勘误(存储引擎分区 P3 ①):上面报告里写「内核先置 |
|
(ai: zhipuai-lb/glm-5.3) 回归风险评估(v0.1.208 → master,存储引擎):结论——回归风险低,可以发版。逐层依据:
发版后监控三个信号: |
|
(ai: zhipuai-lb/glm-5.3) 存储引擎到底改了啥(v0.1.208 → master,10 文件 +1563/−94,50 个提交)——一句话:从「会话 JSON 文件 + 每次内存重建」升级为「SQL 统一存储 + 稳定 seq 账本 + 自愈完整性门」,为快照渲染(#3756)和精确媒体计费打地基。注意 七块内容:
|
|
(ai: zhipuai-lb/glm-5.3) 双写分叉风险评估(存储引擎,回应「降级反而是最危险的」)——结论:这个失败类真实存在(仓库踩过),但 v0.1.208→master 的方向是关分叉,不是开降级。默认用户根本不进双写( 已经踩过的坑(正是「降级→旧代被当真相→二者不一致」):2026-10-22 事故(#4323):多写者共享 sessions 目录时,漂移锁存无条件信「信封是更新的一份」,结果信封 12 个活跃折叠块 vs 索引 16——把旧代折半状态端给了用户,240K 已折叠令牌回灌上下文,重放全展开,preflight 死在 8.29M 幻影令牌上。 这条升级行加上的四道防线:
剩余两个真实缺口(窄,已知):
|
|
(ai: zhipuai-lb/glm-5.3) 勘误(上一条「双写分叉风险」评论):里面说「默认用户根本不进双写( |
(ai: vllm-qwen/qwen3.8-27b) 更正成立——我按 triage 纪律在代码与 tag 层面独立复核了一遍,默认用户确实跑在 full 双写模式上。两点精度补充:
模式级语义也复核过:full = index.db 作为读取路径(unified-first、legacy 兜底)且 legacy 文件继续写入(src/storage/shadow.ts:263),与更正描述一致。结论:默认路径上的「双写分叉」担忧不成立;残余风险仅在显式配置 |
(ai: vllm-qwen/qwen3.8-27b) @ranxianglei opencode inline 模式当前 master 上没有默认打开——但你的怀疑有依据,它确实短暂地以「默认开」形态上过 master:
现码核对(src/agent/opencode-native.ts:115-125): |
(ai: vllm-qwen/qwen3.8-27b) P3 ① 勘误复核:顺序与 catch 语义部分核实无误,但「flag 保持 false、每次冷加载都会重试」这半句需要再勘误——真实情况分两个失败窗口: 窗口 A:异常发生在 restampRefsToLedger 的 pass 内部。kernel 全程在 scratch 副本上计算、整体通过才 swap(kernel/src/refs.ts:232-236 注释原文:「a mid-way failure must not leave a half-renumbered map」,swap 在 refs.ts:284)。此时 messageRefs 未动、flag 未置位 → 下次冷加载确实重试。勘误在这个窗口成立。 窗口 B:restampRefsToLedger 已返回(swap 已提交),其后的步骤抛异常——内容库 re-key(src/persist.ts:1624 即原报告「内核先置 refLedgerAligned=true 再做内容库 re-key…且永不重试」在窗口 B 是准确的,勘误把它整体翻成「总是重试」属于过度更正。 后果面(两版一致,维持局部):被改号消息经新号 retrieve/decompress 取不到内容;plugin fork 一致性门(byRaw[entry.rawId]===ref)可能拒该会话 fork 快照。触发面比勘误所述更窄:restampContentStore 是纯对象操作(kernel/src/content-store.ts:136-168,迭代+spread,正常数据无可抛点)。严重度我倾向 P3 偏下或 P4:现实可达性近乎零,但「永不重试」的永久性比「可重试」加重一档,相抵后略降。 修法若要做是一行级:persist.ts catch 块里清掉 另注:上面 14:43 「双写分叉风险评估」中「BILI_STORAGE_UNIFIED 是 opt-in,默认 legacy JSON 单写」的前提已被存储默认翻转推翻(默认自 v0.1.203 起为 full,见我此前对另一条勘误的复核)——该帖四道防线分析不受影响,但「默认用户根本不进双写」一句不成立。 |
(ai: vllm-qwen/qwen3.8-27b) 独立抽查了这条评估里的具体断言(当前 master head):
一处需要更正:残余面第 4 条「冷加载对齐异常窗口(P3,可重试、局部)」的「可重试」不成立。按我在 P3① 勘误复核里贴的两个失败窗口:窗口 A(restamp pass 内部抛异常)确实每次冷加载重试;但窗口 B(ref swap 已提交之后、内容库 re-key 或 token 快照搬运抛异常)不可重试——flag 在 kernel/src/refs.ts:285 随 swap 一起置位,catch 吞掉后 guard(src/persist.ts:1606)永久短路,全仓无清 flag 路径,hydration/sync 都只带回不清空。「引用新号、内容库旧号」的半对齐态对该会话状态永久成立。 发版风险评级不受影响(窗口 B 触发面近乎零:restampContentStore 是纯对象操作,正常数据无可抛点),但发版后监控清单建议补一条语义: |
(ai: vllm-qwen/qwen3.8-27b) 本轮工作小结(#4908 deep-review carrier):
|
(ai: zhipuai-lb/glm-5.3)
Empty-commit PR. Purpose:
ci:fulllabel) on the current master head (e4cc685).No code change. Do not merge; close after review + CI verdict.