This is a gateway-only `extended-stable` release, which is our current equivalent to LTS. This release is OpenClaw from the end of September 2026, plus critical security updates, reliability and performance fixes, and features like new model support. The latest version of OpenClaw at the time of this release is [2026.10.9](https://github.com/openclaw/openclaw/releases#release-v2026.10.9)
## 2026.9.36
### Highlights
- **Failed updates stay recoverable:** a failed npm rollback no longer leaves the installed package missing, and update checks keep Doctor recovery guidance, stop recopying private rehearsal databases, and no longer reopen candidate-migrated state. Fixes #184889. (#185160, #186177) Thanks @syxscott, @LiuwqGit, and @RomneyDa.
- **Workspace restrictions reach Gateway-built tools:** with `tools.fs.workspaceOnly`, `openclaw` delegates built through Gateway loopback and skill dispatch now require approval as intended, and media tools stay inside the workspace. (#185094) Thanks @eleqtrizit and @RomneyDa.
- **Microsoft Teams allowlists stay restrictive:** name-keyed `teams` or `groupAllowFrom` entries that do not resolve now grant nothing instead of opening the bot to every team or group. (#184989) Thanks @eleqtrizit, @RomneyDa, and @shakkernerd.
- **Untrusted input is bounded:** malformed media metadata, inbound mail addresses, TOML, URIs, oversized collections in custom A2UI schemas and Discord's embedded SDK, and response-controlled Microsoft authentication routing can no longer cause unbounded work or alter identity. (#187288, #187282, #187283, #187305, #187289, #187287) Thanks @RomneyDa and @cyyynthia.
- **Replies keep their text:** comparison prose after emoji and other astral characters is no longer stripped from outbound replies. (#187415) Thanks @RomneyDa.
### Changes
- **Certificate trust and Docker images:** the eMudhra trust remediation is applied, and Docker release images carry source/version-bound evidence with more reliable architecture builds. (#186639) Thanks @RomneyDa.
### Fixes
- **Credential and content boundaries:** derive the filesystem policy for Gateway-built OpenClaw tools, keep unresolved Microsoft Teams allowlists closed, and scope the patched MSAL to the affected Teams and Azure Identity consumers. (#185094, #184989, #187287) Thanks @eleqtrizit, @RomneyDa, and @shakkernerd.
- **Untrusted parsing:** bound Matrix media metadata and IMAP mail parsing, the TOML key parser, URI parsing, and oversized Zod collections in custom A2UI schemas and Discord's embedded SDK. (#187288, #187282, #187283, #187305, #187289) Thanks @RomneyDa and @cyyynthia.
- **Reply delivery:** keep comparison prose after astral characters in the outbound sanitizer. (#187415) Thanks @RomneyDa.
- **xAI:** allow `off` for older models without configurable reasoning effort instead of rejecting it as an invalid thinking level. (#187425) Thanks @RomneyDa.
- **Update, install, and Doctor:** restore the installed package root after a denied rollback rename, keep Doctor recovery guidance and migration rollback restrictions, preserve cleanup uncertainty in buffered command results, keep the update compatibility inventory out of published packages, and stop retrying broken worktree metadata on every cleanup sweep. Fixes #184889, #184237. (#185160, #186177, #184270, #187424, #187475) Thanks @syxscott, @shakkernerd, @LiuwqGit, and @RomneyDa.
- **Node uploads:** recheck cancellation after opening a staged upload snapshot so a cancelled upload no longer surfaces an `AbortError`. (#162567) Thanks @RomneyDa.
- **Dependencies:** update the ClawHub `undici` pin, Vercel toolchain packages, and the Vitest cohort on this line. (#187261, #187258, #187275) Thanks @RomneyDa.
### Complete contribution record
This audited record covers the complete v2026.9.35..d04a9bec6c286f60f106d6f61354bad4e8b9a057 history: 28 in-range PRs + 0 retained seed-only PRs = 28 unique PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.
#### Pull requests
- **PR #185537** Thanks @RomneyDa.
- **PR #186639** Thanks @RomneyDa.
- **PR #186643** Thanks @RomneyDa.
- **PR #162567** Thanks @RomneyDa.
- **PR #186177** Thanks @RomneyDa.
- **PR #187258** Thanks @RomneyDa.
- **PR #187261** Thanks @RomneyDa.
- **PR #185160** Related #184889. Thanks @LiuwqGit and @RomneyDa and @syxscott.
- **PR #184270** Related #184237. Thanks @shakkernerd and @RomneyDa.
- **PR #187283** Thanks @RomneyDa.
- **PR #187289** Thanks @RomneyDa.
- **PR #187282** Thanks @RomneyDa and @cyyynthia.
- **PR #187288** Thanks @RomneyDa.
- **PR #187275** Thanks @RomneyDa.
- **PR #185094** Thanks @eleqtrizit and @RomneyDa.
- **PR #184989** Thanks @eleqtrizit and @RomneyDa and @shakkernerd.
- **PR #185484** Thanks @shakkernerd and @RomneyDa and @eleqtrizit.
- **PR #187287** Thanks @RomneyDa.
- **PR #187305** Thanks @RomneyDa.
- **PR #187424** Thanks @RomneyDa.
- **PR #187425** Thanks @RomneyDa.
- **PR #187415** Thanks @RomneyDa.
- **PR #187472** Thanks @RomneyDa.
- **PR #187471** Thanks @RomneyDa.
- **PR #187475** Thanks @RomneyDa.
- **PR #187518** Thanks @RomneyDa.
- **PR #187476** Thanks @RomneyDa.
- **PR #161504**
### Release verification
- npm package: https://www.npmjs.com/package/openclaw/v/2026.9.36
- registry tarball: https://registry.npmjs.org/openclaw/-/openclaw-2026.9.36.tgz
- integrity: `sha512-lf5bdnWiPleye2eGaaN6HIOI2g96rFJnNFqwuEPVdz+AHlOya8nTSSaXN9Ql9xlkYBCE3ANV6jqhPvJzCpXqVw==`
- release SHA: `70c40e4bdcbc4e9952d30121e8de86eeb0781618`
- full release CI report: https://github.com/openclaw/releases/blob/main/evidence/2026.9.36/release-evidence.md
- release publish: https://github.com/openclaw/openclaw/actions/runs/40943247206
- npm preflight: https://github.com/openclaw/openclaw/actions/runs/40908158349
- full release validation: https://github.com/openclaw/openclaw/actions/runs/40907200138
- plugin npm publish: https://github.com/openclaw/openclaw/actions/runs/40944417335
- plugin ClawHub publish: no normal OIDC candidates
- plugin ClawHub bootstrap: not needed
- OpenClaw npm publish: https://github.com/openclaw/openclaw/actions/runs/40938440703/attempts/1
- npm Telegram beta E2E: not supplied