What's Changed
- [PR] fix: revert self-contradictory inclusive billing stamp to split (#5515) by @ranxianglei in #5518
- [PR] docs(website): add blog post 'What to Do When the Model Keeps Treating Old Compressed Content as New User Instructions?' | docs(website): add blog post '模型总是把压缩老内容当成用户新指令咋办?' (EN+ZH) by @ranxianglei in #5549
- [PR] fix: read Responses additional_tools preamble in tool reachability observation by @ranxianglei in #5528
- [PR] fix: replay unsigned thinking when the upstream does not sign it (#5495) by @ranxianglei in #5496
- [PR] fix(copy): false-advertising sweep of ACP tool surfaces (host-side) by @ranxianglei in #5556
- [PR] Fix renamed model id lookups (Qoder Desktop) + clarify Qoder Desktop host boundary by @ranxianglei in #5611
- [PR] ci-fixes -> master: converge master CI gate fixes (#4599 sentinel sync @ f9cec9f) by @ranxianglei in #5358
- [PR] fix(compress): return no-op for covered external-summary ranges (#5558) by @Maziar123 in #5560
- [PR] fix(google): treat a namespaced model id as a model-API path by @Devil-muhan in #5594
- [PR] fix: preserve CLI help and version before subcommand dispatch by @dajiaohuang in #5607
- [PR] feat: bili kiro — Kiro CLI launcher lane (#5532) by @meetvaghani12 in #5533
- [PR] docs: clarify that BILI_SUBAGENT_SPLIT is ineffective on the Responses pipeline | docs: 说明 Responses 线路上 BILI_SUBAGENT_SPLIT 无效 by @whickerpoplawski-arch in #5452
- [PR] fix(native): refuse oversized direct model requests (#5405) by @Hcc32 in #5406
- [PR] fix(claude): resolve magpie gateway integration and Claude Code native bypass (#5369) by @wosnxn123 in #5372
- [PR] fix(kernel): false-advertising batch — real schemas, aligned prompts, '..' separators (#5555) by @ranxianglei in #5559
- [PR] Make evidence-less window fallbacks visible: warn when a model resolves to nothing (#5490) by @ranxianglei in #5493
- [PR] Unified Announcement Panel: Built-in Registry + Local JSON Files + Remote Dynamic Sources (Done in One Pass) | 统一公告面:内置注册表 + 本地 JSON 文件 + 远程动态源(一次做完) by @ranxianglei in #5575
- [PR] feat(guardrail): soft-stop repeated calls, hard-abort at backstop (#5505) by @growlf in #5514
- [PR] fix(cache): prevent mid-session generation-boundary false positives and register pi tools in before_agent_start by @xulongwu4 in #5497
- [PR] fix: use personaSplit to disable the instructions fingerprint fork in Responses | fix: 用 personaSplit 关闭 Responses 的 instructions 指纹分叉 by @whickerpoplawski-arch in #5453
- [PR] feat(storage): run the store on bun's builtin bun:sqlite by @chidea in #5435
- [PR] fix: show full OpenCode V2 reports without model context pollution by @FineFenng in #5316
- [PR] fix(storage): name the failing operation when unified-store ingest fails (#5627) by @ranxianglei in #5628
- [PR] fix: expire stale upstream alert rows after 5 min (DSH overlay stuck on dead loopback port) by @ranxianglei in #5574
- [PR] fix: whole-file config save accepts documented mitm:// provider lanes (#5620) by @ranxianglei in #5621
- [PR] pi inline compression is enabled by default (bare pi runs the in-process engine directly; one-click revert available) | pi 内联压缩默认开启(裸 pi 直接跑进程内引擎,可一键退回) by @ranxianglei in #5491
- [PR] Fix #5618 usage wall: remote-URL / file-ref media becomes foldable, its re-access handles ride the summary by @ranxianglei in #5629
- [PR] fix(dsh): verify channel refresh outcomes so a destructive host op stops being retried by @ranxianglei in #5648
- [PR] test(restart): CI regression — compressed state survives + cache prefix stays stable after repeated kill/restart (#5631) | test(restart): 反复杀死重启后压缩状态存活+缓存前缀稳定的 CI 回归(#5631) by @ranxianglei in #5635
- [PR] Plug the last gap in silent deployment of dsh native compression + session fork visibility/self-healing (#5686) | 堵住 dsh 原生压缩静默落地的最后漏窗 + 会话分叉可见化/自愈 (#5686) by @ranxianglei in #5692
- [PR] fix: unknown dsh one-shot sidecars steal the raw-key anchor and kill compression (context-explosion root cause) by @ranxianglei in #5687
- [PR] fix(launcher): reject Electron-as-node shims named node during runtime discovery + classify ICMP no-route errnos (#5663) by @ranxianglei in #5673
- [PR] feat: forbid unprompted/out-of-bounds compression (compress.requireNudge / requireRecommendation) by @ranxianglei in #5685
- [PR] fix: surface failed watcher registration cause/state and report heartbeat recovery by @ranxianglei in #5644
- [PR] fix(incremental-lane): forward client end-to-end headers instead of a credential-dropping allowlist by @ranxianglei in #5661
- [PR] test(ci): double the abort-teardown poll budget on Windows runners (win22-s2 flake on master 9dc4c94) by @ranxianglei in #5623
- [PR] fix: isolate gateway model-scoped 429 holds by @Aswin-Ram-K in #5696
- [PR] feat(fastpath): v6 render-snapshot plane — steady turns skip the full-view scan (#5664) by @ranxianglei in #5689
- [PR] fix: T1 harvest stall escalation — let mass-qualified T2/T3 distillation proceed first when T1 channel does not drain (# | fix: T1 收获停滞升级 —— T1 通道不排水时让 mass-qualified 的 T2/T3 蒸馏先行(#5671 跑步机根修) by @ranxianglei in #5700
- [PR] fix: collapse adjacent output_config effort directives after fold reconstruction (#5688) by @john08281 in #5690
- [PR] fix: stand acp_delegate down for user-scope pi-subagents installs too (#5637) by @meetchen in #5638
- [PR] test(ci): converge master red — realign five dsh pins to the #5656 single-shot sidecar residual (#4599) by @ranxianglei in #5718
- [PR] docs: |sub: namespaces are not Claude-only (DeepSeek Harness auto-review example) by @cinast in #5240
- [PR] fix(#4521): codex local auto-compaction rebase on the OpenAI wire lane by @ranxianglei in #4542
- [PR] fix(opencode): acknowledge V2 turns and preserve rolling cache marks by @mariopasquali in #5742
- [PR] fix(fastpath): witnessed rebase — the v6 render snapshot evolves with compression (#5689 post-merge supplement, #5664) by @ranxianglei in #5721
- [PR] Index content's FK child columns — releaseContent DELETE stops full-scanning children by @ranxianglei in #5540
- [PR] kernel: fold tool-call/result pairs by exact id at any distance (fixes the split-pair upstream-400 / folding-stuck family) by @ranxianglei in #5758
- [PR] fix(session): keep a conversation on its main lane when full-compaction destroys the byte evidence — sessionid+host-msgid last-resort identity (#5719) by @ranxianglei in #5759
- [PR] fix: classify the dsh request-image handle as a one-shot carrier (#5142 residual) by @suyeku1 in #5752
- [PR] fix: classify remaining dsh user-role injections so they cannot steal the last-user anchor (#5173) by @ranxianglei in #5473
- [PR] fix(fastpath): #5643 附录二 — the v6 render snapshot evolves BY EVENTS (sync first-scene journal + evidence-addressed apply) by @ranxianglei in #5732
- [PR] docs: document the no-CI window for PRs based off feature branches (#5729) by @ranxianglei in #5803
- [PR] fix: stop resident-pool evict/cold-load thrash that OOMs the proxy (#5782) by @ranxianglei in #5783
- [PR] fix(dsh): parse the pre-send request body once per request by @ranxianglei in #5798
- [PR] Badge slow sessions in the web panel + document the compression/host-history boundary (#5796) by @ranxianglei in #5799
- [PR] fix(dsh): size authored-compaction usage from the forged checkpoint (#5811) by @ranxianglei in #5814
- [PR] fix(kernel): recover tier-distillation merges around historical mid-turn blocks (#5789) by @ranxianglei in #5791
- [PR] fix(dsh): DSH Remote long sessions skip compression due to stale fetch-chain re-entry state by @ranxianglei in #5616
- [PR] fix(plugin-fork): lift the thinking hard gate — thinking sessions can fork (#4266) by @ranxianglei in #4900
- [PR] fix(release): direct-path release notes have always been the placeholder "- initial release" — the newly created tag sha | fix(release): direct-path 发布说明一直是占位符 "- initial release"——新打的 tag 遮蔽了 git describe by @ranxianglei in #5378
- [PR] fix: bound .corrupt-* quarantine files and stop OOM-driven state loss (#5779) by @ranxianglei in #5781
- [PR] Kernel Minor Bug Exemption Clause: Fix mechanical bugs directly + report in-thread; merges still require human review. | 内核小 bug 豁免条款:机械性 bug 直接修+线程内上报,合并仍人审 by @ranxianglei in #5819
- [PR] fix(egress-shed): archive past the 64-image cap so image-dense bodies reach the byte budget by @ranxianglei in #5754
- [PR] feat(fastpath): v6 composite-identity incremental fastpath lane (full rework, #5576 line voided) by @ranxianglei in #5652
- [PR] fix: keep the live conversation on its raw lane when a full compaction lands with a persona-text drift (#5719) by @ranxianglei in #5734
- [PR] fix(persist): stop re-reading the envelope on every index-only save (#5805) by @ChongCyrus in #5808
- [PR] Revert "[PR] feat(fastpath): v6 composite-identity incremental fastpath lane (full rework, #5576 line voided)" by @ranxianglei in #5854
- [PR] fix(backend): Backend stability minor fixes bundle, Part 1 — Four reviewed minor fixes merged for review | fix(backend): 后端稳定小修合集第一辑 —— 四件已评审小修合并送审 by @ranxianglei in #5847
- [PR] fix: 429-hold answered locally before ingesting large request bodies (#5795) by @ranxianglei in #5801
- [PR] release review by @ranxianglei in #5826
- [PR] fix(web): Web panel minor fixes, batch 1 — Four reviewed minor fixes merged for review | fix(web): Web 面板小修合集第一辑 —— 四件已评审小修合并送审 by @ranxianglei in #5845
- [PR] Minor fix: Revert the v6 pin for parity tests along with the fastpath-v6 rollback (master self-red fix) | 小修:parity 测试的 v6 钉随 fastpath-v6 回滚一起回退(master 自红修复) by @ranxianglei in #5862
- [PR] fix(nudge): no billing sample this round → hold pressure-band injection one round (phantom-pressure guard) by @ranxianglei in #5860
- [PR] #5825 Identity Channel Wiring: Unified Consumption Seam + Six Lanes (opencode V2/goose/qwen/claude/codebuddy/mcode) | #5825 身份信道接线:统一消费缝 + 六条车道(opencode V2/goose/qwen/claude/codebuddy/mcode) by @ranxianglei in #5842
- [PR] fix(storage): skip already-retired rows in completeLog historian sweep (#5756) by @ranxianglei in #5772
- [PR] Infinite Wait Issue in Stress Injection: N-Round Fallback (Side Effect Introduced by Fix #5860) | 压力注入无限等待问题:N轮兜底(修复#5860引入的副作用) by @ranxianglei in #5882
- [PR] DSH gate: Out-of-window requests guaranteed to be rejected upstream are no longer sent as raw direct calls (calibrated e | dsh 闸门:必然被上游拒绝的超窗请求不再裸发直连(校准估算 + 每次直连留痕) by @ranxianglei in #5875
- [PR] fix(storage): refs ledger diffs instead of full-replace per save (#5744) by @ranxianglei in #5755
- [PR] fix(#5199): network.throttle429Scope — model-scoped 429 holds for marker-less gateway bodies by @ranxianglei in #5889
- [PR] Review P2 fixes: dedupe the double body scan, pin expiring media refs, snapshot pre-OOM envelopes before overwrite, trace msgid-rescue by @ranxianglei in #5895
- [PR] fix: three performance and ID alignment issues (#5898 review fixes) | fix: 三处性能与 id 对齐问题(#5898 评审修复) by @ranxianglei in #5902
- [PR] release v0.1.213 by @github-actions[bot] in #5898
New Contributors
- @Devil-muhan made their first contribution in #5594
- @dajiaohuang made their first contribution in #5607
- @meetvaghani12 made their first contribution in #5533
- @whickerpoplawski-arch made their first contribution in #5452
- @Hcc32 made their first contribution in #5406
- @wosnxn123 made their first contribution in #5372
- @growlf made their first contribution in #5514
- @xulongwu4 made their first contribution in #5497
- @chidea made their first contribution in #5435
- @FineFenng made their first contribution in #5316
- @Aswin-Ram-K made their first contribution in #5696
- @john08281 made their first contribution in #5690
- @meetchen made their first contribution in #5638
- @cinast made their first contribution in #5240
- @suyeku1 made their first contribution in #5752
- @ChongCyrus made their first contribution in #5808
Full Changelog: v0.1.212...v0.1.213