OpenClaw 2026.6.6-beta.1
Pre-release
Pre-release
·
1071 commits
to main
since this release
2026.6.6
Highlights
- Tighter security boundaries: transcript, sandbox, MCP, browser, channel, and exec-approval paths now fail closed around unsafe access, timed-out approvals, and malformed boundary input. (#91529, #91618, #91741, #91750, #89938) Thanks @joshavant, @pgondhi987, @mmaps, @eleqtrizit, and @drobison00.
- Reliable Telegram delivery: account-scoped topics route to the correct agent, streamed text survives tool calls, callbacks and draft chunks stay coherent, and unauthorized DM text does not enter cache or prompt context. (#91189, #88682, #90212, #91478, #91915) Thanks @codysai001, @alexzhu0, @snowzlm, @obviyus, and @sallyom.
- iMessage stays connected: always-on inbound recovery, durable echo markers, block streaming, idle approval discovery, and outbound transport now survive restarts and idle periods. (#91335, #91449, #88969, #91783) Thanks @omarshahine and @jmissig.
- Better browser and MCP connectivity: existing browser sessions, CDP/WebSocket discovery, default-profile URLs, OAuth/SSE transport, and tool schemas now connect through clearer, safer paths. (#91422, #89851, #91736, #91451) Thanks @pgondhi987, @anagnorisis2peripeteia, @eleqtrizit, and @LiuwqGit.
- Faster first replies: Control UI startup no longer waits on broad model loading, while cached metadata, lazy slash-command work, and first-event tracing make slow initial responses visible. (#91531, #91538, #91568, #91583).
- Broader provider support: OpenRouter OAuth and Claude Fable 5 land alongside correct Codex compaction ownership, local-model execution, normalized tool progress, and Gemma 4 reasoning replay. (#91830, #91882, #91590, #88630, #91696) Thanks @Patrick-Erichsen, @joshavant, @bdjben, and @Coder-Wangyankun.
Changes
- CLI progress: emit Claude CLI commentary progress events and bridge inter-tool commentary into channel progress without exposing internal protocol scaffolding. (#89834, #90883) Thanks @anagnorisis2peripeteia.
- Observability: allow trusted diagnostics channels to capture tool input/output content, add first-assistant-event traces, and warn on slow initial replies. (#91256, #91568, #91583) Thanks @amknight.
- Plugins/ClawHub: dogfood reusable package publishing, let dry runs skip publish approval, allow declared installed trusted hooks, report managed plugin version drift, and warn instead of failing on retired Skill Workshop configuration. (#91574, #91591, #90004, #90927, #90838) Thanks @Patrick-Erichsen, @brokemac79, and @lonexreb.
- Memory/providers: move the local llama.cpp runtime into its provider plugin, batch embeddings across files, persist the agent model catalog cache, and keep QMD JSON search one-shot while filtering stale REM recall previews. (#91324, #89138, #90457, #91837, #91851) Thanks @osolmaz, @mushuiyu886, @ai-hpc, and @TurboTheTurtle.
- Channels/mobile: add the QQBot group mention toggle, improve iPad and iPhone control surfaces, and expose the active connection host in the TUI footer. (#91423, #91557, #89909) Thanks @cxyhhhhh, @Solvely-Colin, and @baskduf.
- Performance: prewarm TUI runtime plugins, deduplicate plugin auto-enable fanout, trim dense text-delta snapshots, and reuse prepared startup model metadata. (#90782, #89978, #91580, #91531) Thanks @RomneyDa and @ai-hpc.
Fixes
- Agent/session recovery: drop stale approval follow-ups after session rebind, remove drained reply-queue items by identity, recover stale main and visible replies, preserve Codex context-engine compaction ownership, lower the default compaction timeout to 180 seconds while respecting explicit configuration, and keep provider-failure terminal lifecycle state correct. (#85679, #91450, #91566, #91840, #91590, #91361, #91895) Thanks @openperf, @yetval, @joshavant, @wangmiao0668000666, and @TurboTheTurtle.
- User-visible content boundaries: suppress Codex/Harmony protocol artifacts, neutralize browser and LanceDB memory media directives, redact transcript images, and preserve native
/compactreplies through source suppression. (#89151, #91422, #91425, #91529, #90212) Thanks @joelnishanth, @pgondhi987, @joshavant, and @snowzlm. - Channel delivery: keep WhatsApp captured replies attached to the successor controller after restart, retry Feishu rate limits, preserve Mattermost thread replies, canonicalize LINE webhook paths, restore Discord reply hydration and runtime timeout exports, and show OpenAI Realtime WebRTC assistant transcripts. (#85823, #89659, #91684, #91649, #90263, #91686, #90426) Thanks @itsuzef, @ladygege, @jacobtomlinson, @fuller-stack-dev, and @shushushv.
- Cron: cancel active task runs cleanly, preserve terminal timeout/cancel state, and recover no-deliver tool warnings instead of silently losing the outcome. (#90666, #90678) Thanks @ai-hpc.
- Gateway/config/auth: share the approval runtime socket token, replace arrays explicitly in
config.patch, skip the deleted-agent guard only for valid ACP harness sessions, surface headless LaunchAgent state, verify SQLite auth migration before cleanup, and arm QMD startup maintenance. (#87105, #91551, #91219, #91614, #91740, #91978) Thanks @fuller-stack-dev and @scotthuang. - Providers/Codex: clarify quota errors, restore the Codex synthetic usage line, canonicalize Codex protocol assets, require API-key auth for realtime voice, normalize ACP model refs, preserve Gemma 4
reasoning_content, and avoid guardian review for local models. (#91390, #91709, #91507, #91567, #88630, #91696) Thanks @hxy91819, @brokemac79, @RomneyDa, @joshavant, and @Coder-Wangyankun. - Updates/builds: recover package Gateway restarts after refresh failure, expose plugin convergence repair, fall back to Corepack in PATH-less pnpm environments, seed the correct Docker store packages, and keep ClawHub dry-run and publish paths reusable. (#91581, #91599, #91547, #91591) Thanks @fuller-stack-dev, @sallyom, and @Patrick-Erichsen.
- UI: require explicit user intent before opening chat sessions and drain restored chat queues after session switches. (#91480) Thanks @TurboTheTurtle.
- Android: avoid the
dataSyncforeground-service type for persistent nodes. (#80082) Thanks @davelutztx. - Native hooks: bound relay lifetimes so abandoned native hook connections cannot linger indefinitely. (#91550) Thanks @joshavant.
Complete contribution record
This audited record covers the complete v2026.6.5..v2026.6.6 history: 186 merged PRs. Issues stay inline as #NNN with the PR or direct commit that shipped the work; the grouped notes above prioritize user impact.
Pull requests
- PR #91335 fix(imessage): always-on inbound recovery and dedupe. Related #89237. Thanks @omarshahine and @dwonshin.
- PR #91390 fix: clarify provider quota errors. Thanks @hxy91819.
- PR #91419 docs: preserve channel brand terms in Chinese i18n. Thanks @hxy91819.
- PR #91442 docs: preserve LINE across localized docs glossaries. Thanks @hxy91819.
- PR #91422 fix(browser): neutralize media directives in browser output [AI]. Thanks @pgondhi987.
- PR #89834 feat(cli): emit commentary progress events from Claude CLI parser. Thanks @anagnorisis2peripeteia.
- PR #91158 fix(context): report compactable transcript counts. Related #91150. Thanks @Pluviobyte and @samiralibabic.
- PR #91449 fix(imessage): honor block streaming config. Thanks @jmissig and @omarshahine.
- PR #91364 build(deps): bump github.com/steipete/peekaboo from 3.3.0 to 3.4.0 in /apps/macos in the swift-deps group.
- PR #91368 build(deps): bump actions/github-script from 8 to 9.
- PR #91512 chore: add taxonomy file. Thanks @kevinslin.
- PR #91369 build(deps): bump actions/cache from 4 to 5.
- PR #91367 build(deps): bump the actions group with 2 updates.
- PR #91365 build(deps): bump the android-deps group in /apps/android with 3 updates.
- PR #91496 chore: bump Codex app-server to 0.137.0. Thanks @RomneyDa.
- PR #91531 perf(control-ui): reuse startup model metadata. Thanks @vincentkoc.
- PR #91507 feat: canonicalize Codex protocol JSON asset ordering. Thanks @RomneyDa.
- PR #91550 fix: bound native hook relay lifetime. Thanks @joshavant.
- PR #91529 Fix transcript image redaction. Thanks @joshavant.
- PR #91551 Fix config.patch explicit array replacement. Thanks @joshavant.
- PR #85823 fix(whatsapp): route captured replies through successor controller after restart. Thanks @itsuzef and @mcaxtr.
- PR #91583 perf(control-ui): warn on slow first replies. Thanks @vincentkoc.
- PR #89659 fix(feishu): retry on send rate-limit errors (230020/230006). Related #70879. Thanks @ladygege and @AxelHu.
- PR #28157 fix(feishu): propagate rate-limit errors from typing indicator to circuit breaker. Related #70879. Thanks @guoqunabc and @AxelHu.
- PR #91547 Fix Docker store seed target packages. Thanks @sallyom.
- PR #91578 fix: make docs i18n frontmatter translation resilient. Thanks @hxy91819.
- PR #91567 fix(openai): require api-key auth for realtime voice. Thanks @joshavant.
- PR #91591 fix: let ClawHub dry runs skip publish approval. Thanks @Patrick-Erichsen.
- PR #91425 fix(memory-lancedb): guard memory recall output [AI]. Thanks @pgondhi987.
- PR #88969 fix(imessage): persist echo markers before send. Thanks @colmbrogan.
- PR #91566 Fix stale main session startup recovery. Thanks @joshavant.
- PR #91637 docs: include plugin prerelease in release validation approval.
- PR #91649 fix(line): canonicalize trailing-slash webhook paths.
- PR #91423 feat(qqbot): add /bot-group-allways command to toggle mention requirement. Thanks @cxyhhhhh.
- PR #91642 fix(docs): continue partial i18n batches after file errors. Thanks @hxy91819.
- PR #91661 chore(plugin-sdk): refresh API baseline hash.
- PR #91665 docs: fix release CI Android dispatch guidance.
- PR #89138 fix #88009: [Feature]: batched memory embedding should batch over files. Thanks @mushuiyu886 and @jalehman and @hartmark.
- PR #91679 fix(plugin-sdk): align Discord component edit facade types. Thanks @vincentkoc.
- PR #91686 fix(discord): restore runtime timeout compatibility exports. Thanks @vincentkoc.
- PR #91618 fix: expand unsafe host env denylist. Thanks @pgondhi987.
- PR #91615 fix: block rustup toolchain env overrides [AI]. Thanks @pgondhi987.
- PR #91619 fix: block git protocol env controls [AI]. Thanks @pgondhi987.
- PR #90782 perf(tui): prewarm runtime plugins before first send. Thanks @RomneyDa.
- PR #90838 fix(config): warn for retired skill-workshop plugin entry instead of failing validation (#90244). Thanks @lonexreb and @rogerallen1.
- PR #91753 docs: clarify Matrix plugin upgrade repair. Thanks @RomneyDa.
- PR #91755 docs: align Feishu DM policy defaults. Thanks @RomneyDa.
- PR #91745 fix(discord): require sender for moderation actions [AI]. Thanks @eleqtrizit.
- PR #85950 docs: clarify trusted-proxy Control UI scope behavior. Thanks @nielskaspers.
- PR #91746 fix(msteams): require admin for group actions. Thanks @eleqtrizit.
- PR #91256 feat(diagnostics-otel): capture tool input/output content via trusted channel. Related #77391. Thanks @amknight and @mjunaidca.
- PR #91749 fix(gateway): restrict non-owner loopback tools. Thanks @eleqtrizit.
- PR #91748 fix(elevated): reject group ids as senders. Thanks @eleqtrizit.
- PR #91752 fix(codex): guard sandbox http requests. Thanks @eleqtrizit.
- PR #91751 fix(mcp): harden stdio env filtering. Thanks @eleqtrizit.
- PR #91765 Clarify env-var executable behavior reports in SECURITY.md. Thanks @jacobtomlinson.
- PR #91480 fix(ui): require user intent for chat sessions. Thanks @TurboTheTurtle and @Takhoffman.
- PR #91773 fix(mcp): lowercase SSE event-source header keys to prevent duplicate Authorization (401). Thanks @Takhoffman.
- PR #91741 Validate sandbox bind parent paths [AI]. Thanks @mmaps.
- PR #88530 fix(imessage): skip idle approval discovery scans. Thanks @colmbrogan and @omarshahine.
- PR #91780 fix(ui): drain restored chat queue after session switch. Thanks @tmimmanuel.
- PR #91750 fix(search): enforce native web search tool policy. Thanks @eleqtrizit.
- PR #91757 fix(config): clarify retired skill workshop plugin warning. Thanks @RomneyDa.
- PR #91787 fix(doctor): keep TTS legacy migration on supported paths.
- PR #91783 fix(imessage): harden outbound send transport. Thanks @omarshahine.
- PR #91785 fix(imessage): surface inbound startup diagnostics. Thanks @omarshahine.
- PR #91590 Fix context-engine compaction ownership for Codex sessions. Thanks @joshavant.
- PR #91557 Improve iPad and iPhone control surfaces. Thanks @Solvely-Colin and @joshavant.
- PR #91666 chore(deps): bump useblacksmith/setup-docker-builder from 1.8.0 to 1.9.0 in the actions group.
- PR #91819 docs: link ClawHub plugin validation fixes guide. Thanks @Patrick-Erichsen.
- PR #88630 fix(codex): avoid guardian review for local models. Thanks @vincentkoc.
- PR #91837 fix(memory-core): keep QMD JSON search one-shot. Thanks @TurboTheTurtle.
- PR #91840 Fix stale visible reply recovery. Thanks @joshavant.
- PR #91478 block unauthorized Telegram DM text from prompt context. Related #91209. Thanks @sallyom and @producedbysavant.
- PR #91361 fix(compaction): lower default timeout from 900s to 180s, preserve explicit config. Thanks @wangmiao0668000666 and @velvet-shark.
- PR #91791 fix(sandbox): use materialized skill paths in startup prompts. Thanks @brokemac79.
- PR #91736 Support existing-session browser CDP endpoints. Thanks @lifuyue.
- PR #91747 fix(browser): validate discovered CDP websocket URLs. Thanks @eleqtrizit.
- PR #91882 feat(anthropic): support Claude Fable 5 adaptive thinking.
- PR #91451 fix(mcp): repair OAuth redirect, errors, and unicode schema patterns. Related #91433. Thanks @LiuwqGit and @marcusbsorensen.
- PR #90426 fix(talk): show OpenAI Realtime WebRTC assistant transcripts. Thanks @shushushv.
- PR #91696 fix(agents): preserve reasoning_content replay for Gemma 4 openai-completions models. Related #91645. Thanks @Coder-Wangyankun and @bfox55.
- PR #89938 Fail closed on exec approval timeout. Thanks @drobison00.
- PR #91895 fix(webchat): finalize provider failure lifecycle. Thanks @TurboTheTurtle.
- PR #80143 fix(browser): honor cdpUrl for user default profile. Thanks @HemantSudarshan.
- PR #91688 fix(cron): reject cron expressions that have no reachable run time. Thanks @yetval.
- PR #91737 fix(cron): use final-call usage for session token totals. Thanks @MonkeyLeeT.
- PR #85196 Redact tool output secrets. Thanks @amknight.
- PR #92007 fix(security): block build tool env overrides. Thanks @eleqtrizit.
- PR #91891 fix: preserve non-oneOf protocol schema array order. Thanks @RomneyDa.
- PR #91754 fix(macos): hide unsupported Voice Wake controls. Thanks @RomneyDa.
- PR #92049 test(ci): restore upgrade survivor session fixture. Thanks @vincentkoc.
- PR #92051 fix(fal): parse raw completed queue results. Thanks @harjothkhara.
- PR #92047 fix(agents): prefer explicit sessions_send keys. Related #64699. Thanks @vincentkoc and @sunxq1017-hash.
- PR #74009 fix(agents): prefer sessionKey in sessions_send. Related #64699. Thanks @sunxq1017-hash.
- PR #92020 fix(memory-core): check SQLite plugin state for dreaming ingestion audit after JSON migration (fixes #92017). Thanks @zenglingbiao and @JUMPUNDER.
- PR #92032 fix(mcp): always log channel-bridge notification failures. Thanks @hansraj316.
- PR #92033 fix(gateway): log swallowed background-task finalization errors. Thanks @hansraj316.
- PR #92022 fix(sessions): derive channel from direct-chat session keys in send-policy. Thanks @hansraj316.
- PR #91163 fix(xai): clarify x_search query guidance. Thanks @rubencu.
- PR #90121 fix(memory): write dream fallback without subagent runtime. Thanks @a-m-a-r-a.
- PR #91215 fix(ui): show prompt progress while sending. Thanks @zhangguiping-xydt.
- PR #92029 fix(tools): surface unsupported-signal in anyOf availability. Thanks @hansraj316.
- PR #92034 perf(agents): memoize XML attribute regex in DSML stream parser. Thanks @hansraj316.
- PR #92026 perf(agents): sanitize compaction messages once for token estimation. Thanks @hansraj316.
- PR #91351 fix(opencode-go): add qwen plus tiered pricing. Thanks @849261680.
- PR #92027 fix(gateway): recover config hot-reload after watcher errors. Thanks @hansraj316.
- PR #91471 feat(cron): add readable ISO time fields to
cron runsJSON output. Thanks @FMLS. - PR #91711 🐛 fix(agents): classify harness provider mismatch as format error (#91710). Thanks @a-tokyo.
- PR #91292 fix(models): keep bundled provider catalog when configured base URL is blank (#91270). Thanks @yetval and @resYuto.
- PR #91720 🐛 fix(openai): remove chatgpt-responses transport override from gpt-5.3-codex catalog entry. Thanks @a-tokyo.
- PR #91305 fix(control-ui): make Control UI bootstrap config endpoint base-path-relative (#66946). Thanks @Alix-007 and @yndwx01.
- PR #92056 fix(exec): honor state dir approvals. Thanks @vincentkoc.
- PR #91897 fix(memory): self-heal missing index identity by initializing provider during sync. Related #91167. Thanks @xydt-tanshanshan and @kiagentkronos-cell.
- PR #91802 fix(diagnostics): release wedged session lane when stuck-session recovery aborts a run with queued session work. Thanks @openperf.
- PR #92030 fix(cron): structural top-of-hour match in stagger heuristic. Thanks @hansraj316.
- PR #92055 fix(media): resolve state-relative inbound attachments. Thanks @sercada.
- PR #91962 fix(agent): dampen Discord stale thread replies.
- PR #90912 fix(agents): honor configured CLI resume timeouts. Thanks @ai-hpc.
- PR #91950 fix(web_fetch): sanitize URL whitespace from LLM tool call arguments (fixes #91651). Thanks @zenglingbiao and @akang1798.
- PR #77367 fix(discord): scope command-deploy cache by application id. Related #77359. Thanks @lonexreb and @igmarketing.
- PR #90128 fix(sessions): preserve user /model override across daily/idle session rollover (#90119). Thanks @Marvinthebored.
- PR #92084 fix(clickclack): allow explicit enable through plugin allowlist.
- PR #91976 feat(auto-reply): durable inter-tool commentary via verbose standalone progress (supersedes #89850/#89890). Thanks @anagnorisis2peripeteia.
- PR #92123 #92109: [Bug]: EmbeddedAttemptSessionTakeoverError caused by Btrfs ctimeNs instability. Thanks @lzyyzznl and @recruits.
- PR #92136 fix(feishu): reply inside P2P direct-message threads. Thanks @LiaoyuanNing and @vincentkoc.
- PR #90173 fix(agents): stabilize a2a prompt cache context. Thanks @Sunjae-k.
- PR #91974 fix(cli-runner): scope claude-cli queue to live-session owner identity (#91946). Thanks @wangwllu.
- PR #92053 fix(thinking): apply Claude profile to anthropic-messages catalog rows. Related #91975. Thanks @wangwllu.
- PR #41991 Google: show detailed Gemini CLI OAuth extraction failures. Related #54289. Thanks @bgmbgm94 and @jinduwang1001-max.
- PR #92074 fix(qqbot): flush tool output before silent non-streaming final. Thanks @sliverp.
- PR #89508 fix(models): clarify provider model registration hint. Thanks @sweetcornna.
- PR #89085 fix(agents): keep migrated session entry ids unique on v1 upgrade. Thanks @yetval.
- PR #89552 fix(discord): clean migrated thread binding state. Thanks @SYU8384.
- PR #89448 fix(cron): reject durations that overflow to a non-finite value. Related #83906. Thanks @Alix-007 and @davinci282828.
- PR #89319 fix(doctor): warn on unsupported hook entry loaders. Thanks @leno23.
- PR #91966 fix(config): stop config.patch replacePaths index suffix from widening array consent. Thanks @yetval.
- PR #92127 fix(plugins): rescan storm in "/models" call (regression shipped since v2026.5.18). Thanks @obuchowski.
- PR #91657 fix(ollama): use provider thinking default in SDK session factory. Thanks @openperf.
- PR #91742 fix(memory): abort orphaned embedding work when memory_search times out. Related #91718. Thanks @dreamhunter2333 and @NOVA-Openclaw.
- PR #89091 fix(memory-core): retry narrative message reads. Thanks @bennewell35.
- PR #54646 fix(cli): validate gateway-rpc --timeout. Thanks @ruanrrn and @comeran.
- PR #40953 fix(CLI): validate gateway-facing timeout input. Thanks @comeran and @ruanrrn.
- PR #60661 Keep gateway CLI timeout client-side after accepted runs. Thanks @judicialcoder and @ruanrrn and @comeran.
- PR #91911 fix(agents): retry same model across short rate-limit windows. Thanks @lanzhi-lee.
- PR #91189 fix(telegram): route account-scoped topic agents. Thanks @codysai001.
- PR #88682 Preserve Telegram streamed text blocks between tool calls. Thanks @alexzhu0.
- PR #90212 fix(agents): deliver native /compact replies through source suppression. Thanks @snowzlm.
- PR #91915 fix(telegram): audit follow-ups — block-mode chunk config, dedupe bucket cleanup, grammy contract trust. Thanks @obviyus.
- PR #89851 fix(gateway): support Streamable HTTP MCP transport on loopback server. Thanks @anagnorisis2peripeteia.
- PR #91538 perf(control-ui): avoid startup catalog wait. Thanks @vincentkoc.
- PR #91568 perf(control-ui): trace first assistant event. Thanks @vincentkoc.
- PR #91830 feat: add OpenRouter OAuth to onboarding. Thanks @Patrick-Erichsen.
- PR #90883 fix(cli): bridge inter-tool commentary events to channel progress. Thanks @anagnorisis2peripeteia.
- PR #91574 feat: dogfood reusable ClawHub package publish. Thanks @Patrick-Erichsen.
- PR #90004 [plugin sdk] Allow declared installed trusted hooks. Thanks @brokemac79.
- PR #90927 fix(doctor): report managed plugin version drift. Thanks @brokemac79.
- PR #91324 fix(memory): move local llama.cpp runtime to provider plugin. Thanks @osolmaz.
- PR #90457 fix(models): persist agent catalog cache. Thanks @ai-hpc.
- PR #91851 fix(memory-core): filter stale recall entries in REM harness preview. Thanks @vincentkoc.
- PR #89909 fix(tui): show connection host in footer. Thanks @baskduf.
- PR #89978 perf(config): dedupe plugin auto-enable fanout work. Thanks @ai-hpc.
- PR #91580 fix(agents): trim dense text delta snapshots. Thanks @vincentkoc.
- PR #85679 fix(agents): drop stale exec approval followups after session rebind. Thanks @openperf.
- PR #91450 fix(reply-queue): remove the drained item by reference instead of front index. Thanks @yetval.
- PR #89151 fix(delivery): suppress Codex/Harmony internal protocol artifacts from user-facing channels. Thanks @joelnishanth.
- PR #91684 fix(mattermost): keep default replies in existing threads. Thanks @jacobtomlinson.
- PR #90263 fix(discord): hydrate reply context metadata. Thanks @fuller-stack-dev.
- PR #90666 fix(cron): cancel active cron task runs. Thanks @ai-hpc.
- PR #90678 fix(cron): recover no-deliver tool warnings. Thanks @ai-hpc.
- PR #87105 fix(gateway): share approval runtime socket token. Thanks @fuller-stack-dev.
- PR #91219 fix(gateway): skip deleted-agent guard for ACP harness session keys. Thanks @scotthuang.
- PR #91614 fix(gateway): surface headless LaunchAgent state. Thanks @fuller-stack-dev.
- PR #91740 fix(auth): verify SQLite auth migration before cleanup. Thanks @fuller-stack-dev.
- PR #91978 fix(gateway): arm qmd startup maintenance. Thanks @vincentkoc.
- PR #91709 fix(status): restore Codex synthetic usage line. Thanks @brokemac79.
- PR #91581 fix(update): recover package gateway restart after refresh failure. Thanks @fuller-stack-dev.
- PR #91599 fix(update): expose plugin convergence repair. Thanks @fuller-stack-dev.
- PR #80082 fix(android): avoid dataSync FGS for persistent node. Thanks @davelutztx.
- PR #91763 fix: require ACP metadata for deleted-agent bypass. Thanks @shakkernerd.
- PR #89588 fix(telegram): restore /compact on generic message ingress. Thanks @joelnishanth.
- PR #91876 Fix Telegram callback API handling. Thanks @obviyus.
- PR #91874 Share channel draft chunking resolver. Thanks @obviyus.
- PR #91904 fix(telegram): use SDK dispatch dedupe. Thanks @obviyus.
- PR #91598 perf(control-ui): lazy load slash commands. Thanks @vincentkoc.
- PR #88768 fix(codex): normalize dynamic tool progress results. Thanks @bdjben.
Direct commits
d7b9b21fb80afix(cli): bridge inter-tool commentary events to channel progress. Related #87326, #84486. Thanks @AbdelftahZowail and @kentuscn.e3ef136bca85fix(memory): keep FTS keyword search model agnostic. Related #48300. Thanks @sabo961.d46dc39b18ecfix(memory): rebuild missing index metadata safely. Related #90338. Thanks @junxuku-byte.67dc8053149dfix(agents): retry post-tool empty replies. Related #91394. Thanks @EXIIEX.22bda60cbe15fix(memory): rebind qmd collections when a collection root changes. Related #91251. Thanks @sasan1200.303873e835c9refactor(cron): replace store-load double casts with raw-boundary record types. Related #91314. Thanks @SpecialLeon.2ffbea20d2f6fix(agents): drop stale exec approval followups after session rebind. Related #59349. Thanks @two3pro.f658abae5064fix(delivery): suppress Codex/Harmony internal protocol artifacts from user-facing channels (#88128). Related #88128. Thanks @reslp.105d77d486bffix(ui): open docs markdown links on docs host. Related #89465. Thanks @phoebepageoc-cloud.224086e28b3afix(file-transfer): clarify missing paired node errors. Related #91482. Thanks @wilfried-codex.72e40833bac7fix(doctor): report managed plugin version drift. Related #90891. Thanks @brokemac79.1559c16a76c5fix(telegram): classify generic control commands as text slash. Related #89525. Thanks @bomberluke37-prog.38a11944f4d4fix(telegram): deliver native /compact ack directly, bypassing dispatch pipeline. Related #89525. Thanks @bomberluke37-prog.82afc4678acefix(config): use Start-Process -FilePath for Windows config opener (#90157). Related #90157. Thanks @jackmtl71.4c55dd85499bfix(ui): guard WebRTC Talk startup cancellation. Related #89434. Thanks @losts1.6fcc9457020efix(agents): trim dense text delta snapshots. Related #86599. Thanks @JakeBiggs.1893a0727a37fix(status): restore Codex synthetic usage line. Related #91694. Thanks @brokemac79.f1f00cbf1d58fix: capture cron wake origin session. Related #46886, #64556. Thanks @aidyfeng and @jaserNo1.13dce4832158fix(state): tolerate chmod-less state volumes. Related #91919. Thanks @david-garcia-garcia.865fdab07501fix(memory): preserve live SQLite index during swaps. Related #91216. Thanks @chrisreddington.