Releases: DojoCodingLabs/openclaw
v2026.5.22-dojo.1 — upstream 2026.5.22 + DojoOS fork patches (final chain step)
DojoOS-internal fork release of the OpenClaw gateway. Final step of the DOJ-4402 upgrade chain.
Base
- Upstream: openclaw v2026.5.22 (upstream tag
v2026.5.22) — carries upstream fix openclaw#85185 which restoresthinkingLevelhandling sogemini-3.5-flash(Gemini-3 family) no longer downgrades thinking to "off" and times out behind the gateway. - Fork branch:
dojo/v2026.5.22-fixes
Re-applied DojoOS fork patches
On top of upstream v2026.5.22, the 5 fork patches are re-applied:
5c563acc4bfix(agents): preserve plugin tools in subagent scopes (upstream openclaw#50131)7dc604a250fix(outbound): retry hook runner resolution in delivery pipeline (upstream openclaw#32621)a97dccca5cfix(google): stripstorefrom completions payload whencompat.supportsStore=false55552586f7fix(providers): strip OpenAI-nativestorefield for non-native OpenAI routes528db1a8ecfix(tool-resolution): importisSubagentSessionKeyfromsessions/(follow-up)
All 5 cherry-picked cleanly, no conflicts. Verified in the built bundle that preservePluginTools + unavailableCoreToolReason ship in dist/tool-policy-pipeline-*.js.
Artifact
openclaw-2026.5.22.tgz- SHA256:
d0f031c53562dddbd36dad4e7fe6380cd271e7f8741887a7750ff573dc2e3c1f
Built with Node 22.22.2 + pnpm 11.1.0 via pnpm pack (prepack → build-all + control-ui vite build + channel-entry smoke). Engine node >=22.19.
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
Gateway upgrade step 5/5 — FINAL (DOJ-5077 / DOJ-4402). Lands the epic AC: gemini-3.5-flash (reasoning:true) runs through the gateway without idle-watchdog timeouts. (5/5 of v2026.5.7→v2026.5.22)
v2026.5.20-dojo.1 — upstream 2026.5.20 + DojoOS fork patches
DojoOS-internal fork release of the OpenClaw gateway.
Base
- Upstream: openclaw v2026.5.20 (upstream tag
v2026.5.20) - Fork branch:
dojo/v2026.5.20-fixes
Re-applied DojoOS fork patches
On top of upstream v2026.5.20, the 5 fork patches are re-applied (verified against dojo-agent-openclaw-plugin/docs/GATEWAY-UPSTREAM-ISSUES.md):
684c1d0cb8fix(agents): preserve plugin tools in subagent scopes (upstream openclaw#50131)7cf43a52c2fix(outbound): retry hook runner resolution in delivery pipeline (upstream openclaw#32621)c44cbb176efix(google): stripstorefrom completions payload whencompat.supportsStore=false870b30c662fix(providers): strip OpenAI-nativestorefield for non-native OpenAI routes827836566afix(tool-resolution): importisSubagentSessionKeyfromsessions/(follow-up)
Step 4/5 (5.19→5.20) re-apply note
All 5 patches cherry-picked cleanly, no conflicts. Verified in the built bundle that preservePluginTools + unavailableCoreToolReason ship in dist/tool-policy-pipeline-*.js.
Artifact
openclaw-2026.5.20.tgz- SHA256:
d214282d9f39625884f495299a726ce8f5f7921e087f5db540843a98fdf7c2fc
Built with Node 22.22.2 + pnpm 11.1.0 via pnpm pack (prepack → build-all + control-ui vite build + channel-entry smoke). Engine node >=22.19 (unchanged).
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
Gateway upgrade step 4/5 (DOJ-5076 / DOJ-4402). (4/5 of v2026.5.7→v2026.5.22)
v2026.5.19-dojo.1 — upstream 2026.5.19 + DojoOS fork patches
DojoOS-internal fork release of the OpenClaw gateway.
Base
- Upstream: openclaw v2026.5.19 (upstream tag
v2026.5.19) - Fork branch:
dojo/v2026.5.19-fixes
Re-applied DojoOS fork patches
On top of upstream v2026.5.19, the following 5 fork patches are re-applied (verified against dojo-agent-openclaw-plugin/docs/GATEWAY-UPSTREAM-ISSUES.md):
c489ded2affix(agents): preserve plugin tools in subagent scopes (upstream openclaw#50131)9bf3075b63fix(outbound): retry hook runner resolution in delivery pipeline (upstream openclaw#32621)4f6d1f17d9fix(google): stripstorefrom completions payload whencompat.supportsStore=falseac93d8913bfix(providers): strip OpenAI-nativestorefield for non-native OpenAI routesca5501004afix(tool-resolution): importisSubagentSessionKeyfromsessions/(follow-up)
Step 3/5 (5.18→5.19) re-apply note
All 5 patches cherry-picked cleanly, no conflicts. The unavailableCoreToolReason tool-policy-step field that conflicted at the 5.12→5.18 step is already present at 5.18, so the openclaw#50131 patch applied without a conflict this time. Verified in the built bundle that preservePluginTools ships in dist/tool-policy-pipeline-*.js.
Artifact
openclaw-2026.5.19.tgz- SHA256:
334461655bab896e341b151f94446d42172c973a2e15d17986ce189e14789fc2
Built with Node 22.22.2 + pnpm 11.1.0 (pinned packageManager) via pnpm pack (triggers prepack → build-all + control-ui vite build + bundled-channel-entry smoke). Engine node >=22.19 (unchanged from 5.18).
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
Gateway upgrade step 3/5 (DOJ-5075 / DOJ-4402). (3/5 of v2026.5.7→v2026.5.22)
v2026.5.18-dojo.1 — upstream 2026.5.18 + DojoOS fork patches
DojoOS-internal fork release of the OpenClaw gateway.
Base
- Upstream: openclaw v2026.5.18 (
f066dd2f31→ upstream tagv2026.5.18) - Fork branch:
dojo/v2026.5.18-fixes
Re-applied DojoOS fork patches
On top of upstream v2026.5.18, the following 5 fork patches are re-applied (verified against dojo-agent-openclaw-plugin/docs/GATEWAY-UPSTREAM-ISSUES.md):
9570501a8ffix(agents): preserve plugin tools in subagent scopes (upstream openclaw#50131)e5149728e8fix(outbound): retry hook runner resolution in delivery pipeline (upstream openclaw#32621)b10e33db54fix(google): stripstorefrom completions payload whencompat.supportsStore=false03bb5e80a1fix(providers): strip OpenAI-nativestorefield for non-native OpenAI routes54053dd105fix(tool-resolution): importisSubagentSessionKeyfromsessions/(follow-up)
Step 2/5 (5.12→5.18) re-apply note
Four patches cherry-picked cleanly. The openclaw#50131 patch hit a content conflict in src/agents/tool-policy-pipeline.ts: upstream v2026.5.18 added an unavailableCoreToolReason field to each tool-policy pipeline step. The resolution kept both changes — each agent/group step carries stripPluginOnlyAllowlist: !params.preservePluginTools (the openclaw#50131 fix) and unavailableCoreToolReason (upstream); the senderPolicy step keeps stripPluginOnlyAllowlist: true. The preservePluginTools: isSubagentSessionKey(...) wiring in src/gateway/tool-resolution.ts is unchanged. Verified in the built bundle (dist/tool-policy-pipeline-*.js).
Artifact
openclaw-2026.5.18.tgz- SHA256:
ca6267624ca325d43654a0147da34001c411f4ac2a1fcc6b57b3069632577d87
Built with Node 22.22.2 + pnpm 11.1.0 (pinned packageManager) via pnpm pack (triggers prepack → build-all + control-ui vite build + bundled-channel-entry smoke). Upstream raised engines.node >=22.19 at this version.
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
Gateway upgrade step 2/5 (DOJ-5074 / DOJ-4402). (2/5 of v2026.5.7→v2026.5.22)
v2026.5.12-dojo.1 — upstream 2026.5.12 + DojoOS fork patches
DojoOS-internal fork release of the OpenClaw gateway.
Base
- Upstream: openclaw v2026.5.12 (
f066dd2f31 chore(release): prepare 2026.5.12) - Fork branch:
dojo/v2026.5.12-fixes
Re-applied DojoOS fork patches
On top of upstream v2026.5.12, the following 5 fork patches are re-applied (verified against dojo-agent-openclaw-plugin/docs/GATEWAY-UPSTREAM-ISSUES.md):
1b82c6bd1efix(agents): preserve plugin tools in subagent scopes (upstream openclaw#50131)bd8950d67efix(outbound): retry hook runner resolution in delivery pipeline (upstream openclaw#32621)0bfb0ecbf0fix(google): stripstorefrom completions payload whencompat.supportsStore=false9c6ba9c134fix(providers): strip OpenAI-nativestorefield for non-native OpenAI routese6ac0d8b46fix(tool-resolution): importisSubagentSessionKeyfromsessions/(follow-up)
Artifact
openclaw-2026.5.12.tgz- SHA256:
4e5d2ba6f0616d64af94c493881802a60cc154cd5e3392015afb3113f152b4e6
Built with Node 22.22.2 + pnpm 11.1.0 (pinned packageManager) via pnpm pack (triggers the prepack → build-all + control-ui vite build).
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
v2026.5.7-dojo.2 (DOJ-4055 plugin resolver fix)
Patches the gateway startup plugin-id filter
(resolveGatewayStartupPluginPlanFromRegistry →
shouldConsiderForGatewayStartup in
src/plugins/gateway-startup-plugin-ids.ts) so that non-bundled plugins
explicitly enabled via plugins.entries.{id}.enabled = true and/or
pinned in plugins.allow are included in the startup plan, even when
the plugin manifest does NOT declare activation.onStartup.
Resolves DOJ-4055 plugin-load regression introduced in v2026.5.7-dojo.1
(actually inherited from upstream v2026.5.7). Previously, tool/hook/route
plugins that did not also expose a channel/provider/memory contract were
silently dropped from onlyPluginIds and never import()-ed, causing
http server listening (1 plugin: slack) instead of
(2 plugins: openclaw-plugin, slack).
Fork commit: a2456ce
This is a DojoOS-internal fork release. Upstream openclaw is unaffected.
Diff: 21 lines added in a single file. All plugin/loader/registry tests
pass (209/209 across loader, manifest-registry, setup-registry,
plugins-cli.list; 30/30 in bundled-plugin-metadata).
v2026.5.7-dojo.1 — Slack Socket Mode rewrite + DojoOS patches
Rebased on upstream v2026.5.7 with 4 DojoOS fork patches re-applied:
1e84de3dafix(agents): preserve plugin tools in subagent scopes (openclaw#50131)5d7b6c92dfix(outbound): retry hook runner resolution in delivery pipeline (openclaw#32621)dcaf24cd1fix(google): strip store from completions when compat.supportsStore=false84d0d0b8afix(providers): strip OpenAI-native store field for non-native OpenAI routes
Plus follow-up fix(tool-resolution): import isSubagentSessionKey from sessions/ to align with upstream relocation of that helper.
Why this release
dojo-agent-public-prod Slack Socket Mode silent hang on v2026.4.10. Diff v2026.4.5..v2026.5.7 shows full rewrite of extensions/slack/src/monitor/provider.ts (427 lines changed) plus @slack/bolt 4.6.0 → 4.7.2 bump. Strong signal the upgrade fixes the lifecycle bug.
Plugin Dockerfile
RUN npm install -g https://github.com/DojoCodingLabs/openclaw/releases/download/v2026.5.7-dojo.1/openclaw-2026.5.7.tgz
v2026.4.10-dojo.5 — multi-provider store strip
Multi-provider fix based on models.dev taxonomy. Strips OpenAI-native store field for ~79 non-native OpenAI providers (Google, DeepSeek, Fireworks, IBM Granite, etc.).
v2026.4.10-dojo.4 — strip store:false for non-OpenAI providers
Strips store from completions API payloads when compat.supportsStore=false. Fixes 400 errors with Google Gemini.
v2026.4.10-dojo.3 — pi-ai debug patch
Debug: logs model.compat and store injection in pi-ai