You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Upgrading OpenClaw from 2026.5.28 to 2026.6.1 (build 2e08f0f) regresses the bundle-tools prep stage from a stable 5–7s to a sustained 21–27s — roughly 3–4× slower per turn — on a host with 3 stdio MCP servers configured (minimax-mcp, minimax-coding-plan-mcp, github-mcp).
The same code, the same config, the same MCP servers, the same node version, the same gateway: only the OpenClaw version changed.
Evidence
Side-by-side prep stage breakdown from gateway journal logs, single host, single day, same model (minimax/MiniMax-M3), same 3 MCP servers, no config edits between runs. Sampling 2 runs from each day; timestamps are wall-clock (Asia/Shanghai):
Date
OpenClaw
bundle-tools
totalMs
2026-06-07 17:20
2026.5.28
6 661 ms
6 913
2026-06-07 17:30
2026.5.28
7 330 ms
7 469
2026-06-08 08:44
2026.5.28
6 220 ms
6 568
2026-06-08 09:10
2026.5.28
6 295 ms
6 550
2026-06-08 11:47
2026.5.28
6 511 ms
6 613
2026-06-08 12:31
2026.6.1
27 639 ms⚠️
27 760
2026-06-08 16:20
2026.6.1
21 101 ms⚠️
21 210
Other prep stages are stable across the upgrade (workspace-sandbox 0–44 ms, skills 0–130 ms, core-plugin-tools 32–75 ms, bootstrap-context 4–43 ms, system-prompt 5–27 ms, session-resource-loader 5–137 ms, agent-session 1–7 ms, stream-setup 30–110 ms). Only bundle-tools regressed.
Send a few conversational turns; confirm bundle-tools settles around 5–7s.
Upgrade in-place to OpenClaw 2026.6.1 (2e08f0f).
Send a few more turns; bundle-tools jumps to 21–27s and stays there.
openclaw gateway restart does not help. The slow timing is reproducible from the first turn after the upgrade.
Expected
Upgrading OpenClaw minor/major versions should not introduce a 3–4× per-turn latency regression on a configuration that was previously stable. The bundle-tools stage should remain within ±1s of the 5.5.28 baseline (or carry its own release note explaining why).
Actual
bundle-tools consistently takes 21–27s in 2026.6.1, even on the first turn after a fresh gateway start. The other prep stages are unaffected, so the regression is localized to the bundle-tools code path. The agent still produces correct output, so the change is silently degrading UX.
The user's downstream signal was "responses feel slow after the upgrade", which surfaces as a roughly 15s delta to first token for every turn — the difference between interactive and "go make a coffee" cadence.
Environment
OpenClaw: 2026.6.1 (2e08f0f), reproduced from 2026.5.28 baseline
Context engine: [email protected] — see "Context engine disclosure" below
Workarounds tried
Restart the gateway after the upgrade — does not change bundle-tools timing.
Switch plugins.slots.contextEngine to legacy (temporarily, to isolate) — does not change bundle-tools timing. The slow stage is before the context engine hook, in tool bundling.
Downgrade back to 2026.5.28 — restores the 5–7s baseline.
No other prep stage shows a comparable regression, so a per-stage config knob won't help here — the bundle-tools code path itself needs to be examined.
Context engine disclosure
We run [email protected] (by @martian-engineering) as the active context engine plugin: plugins.slots.contextEngine: "lossless-claw". The plugin implements DAG-based conversation summarization on top of OpenClaw's context engine contract and sets ownsCompaction: true (it owns compaction, not OpenClaw core).
This is not implicated in the regression. The bundle-tools stage runs strictly before the context engine's assemble() hook — it serializes tool definitions for the LLM call. To confirm, we temporarily switched plugins.slots.contextEngine to legacy and re-ran; the bundle-tools: 21-27s regression was unchanged. So OpenClaw core's tool-bundling path is the regressing layer, regardless of which context engine sits behind it.
We mention this only so maintainers don't have to ask "could it be lossless-claw?" — answer: no, and we tested.
Related upstream issues
These are the closest existing reports and discussions; this report adds a clean before/after diff that points specifically at the 2026.5.28 → 2026.6.1 upgrade as the inflection point.
A per-MCP-server sub-span inside bundle-tools (PR Add bundle MCP diagnostics timeline spans #81787) — would tell me whether the regression is in a specific server's tools/list roundtrip or in the bundling loop itself.
A git log pointer on the bundle-tools code path between 2026.5.28 and 2026.6.1 — would help me bisect locally.
Confirmation that a 6.1.x patch is already planned.
A documented bundle-tools.timeout / bundle-tools.cache knob to short-circuit the regression while the underlying fix lands.
Cross-references
LCM / lossless-claw is not implicated: bundle-tools happens before the context engine hook, and the regression is identical with slots.contextEngine: legacy (tested).
The 3 MCP servers are stock public packages (minimax-mcp, minimax-coding-plan-mcp, @modelcontextprotocol/server-github); no exotic transports, no custom fork.
Summary
Upgrading OpenClaw from
2026.5.28to2026.6.1(build2e08f0f) regresses thebundle-toolsprep stage from a stable 5–7s to a sustained 21–27s — roughly 3–4× slower per turn — on a host with 3 stdio MCP servers configured (minimax-mcp,minimax-coding-plan-mcp,github-mcp).The same code, the same config, the same MCP servers, the same node version, the same gateway: only the OpenClaw version changed.
Evidence
Side-by-side prep stage breakdown from gateway journal logs, single host, single day, same model (
minimax/MiniMax-M3), same 3 MCP servers, no config edits between runs. Sampling 2 runs from each day; timestamps are wall-clock (Asia/Shanghai):bundle-toolstotalMsOther prep stages are stable across the upgrade (
workspace-sandbox0–44 ms,skills0–130 ms,core-plugin-tools32–75 ms,bootstrap-context4–43 ms,system-prompt5–27 ms,session-resource-loader5–137 ms,agent-session1–7 ms,stream-setup30–110 ms). Onlybundle-toolsregressed.Reproduction
2026.5.28on a Linux host with Nodev22.22.2.minimax-mcp,minimax-coding-plan-mcp,github-mcp) viaopenclaw.json.mcp.servers.bundle-toolssettles around 5–7s.2026.6.1(2e08f0f).bundle-toolsjumps to 21–27s and stays there.openclaw gateway restartdoes not help. The slow timing is reproducible from the first turn after the upgrade.Expected
Upgrading OpenClaw minor/major versions should not introduce a 3–4× per-turn latency regression on a configuration that was previously stable. The
bundle-toolsstage should remain within ±1s of the 5.5.28 baseline (or carry its own release note explaining why).Actual
bundle-toolsconsistently takes 21–27s in2026.6.1, even on the first turn after a fresh gateway start. The other prep stages are unaffected, so the regression is localized to the bundle-tools code path. The agent still produces correct output, so the change is silently degrading UX.The user's downstream signal was "responses feel slow after the upgrade", which surfaces as a roughly 15s delta to first token for every turn — the difference between interactive and "go make a coffee" cadence.
Environment
2026.6.1(2e08f0f), reproduced from2026.5.28baselinev22.22.2minimax/MiniMax-M3minimax-mcp(uvx minimax-mcp)minimax-coding-plan-mcp(uvx minimax-coding-plan-mcp)github-mcp(npx -y @modelcontextprotocol/server-github)lossless-claw,active-memory,memory-core,codex,ov-recall-hook,rules-enforcer[email protected]— see "Context engine disclosure" belowWorkarounds tried
bundle-toolstiming.plugins.slots.contextEnginetolegacy(temporarily, to isolate) — does not changebundle-toolstiming. The slow stage is before the context engine hook, in tool bundling.2026.5.28— restores the 5–7s baseline.No other prep stage shows a comparable regression, so a per-stage config knob won't help here — the bundle-tools code path itself needs to be examined.
Context engine disclosure
We run
[email protected](by@martian-engineering) as the active context engine plugin:plugins.slots.contextEngine: "lossless-claw". The plugin implements DAG-based conversation summarization on top of OpenClaw's context engine contract and setsownsCompaction: true(it owns compaction, not OpenClaw core).This is not implicated in the regression. The
bundle-toolsstage runs strictly before the context engine'sassemble()hook — it serializes tool definitions for the LLM call. To confirm, we temporarily switchedplugins.slots.contextEnginetolegacyand re-ran; thebundle-tools: 21-27sregression was unchanged. So OpenClaw core's tool-bundling path is the regressing layer, regardless of which context engine sits behind it.We mention this only so maintainers don't have to ask "could it be lossless-claw?" — answer: no, and we tested.
Related upstream issues
These are the closest existing reports and discussions; this report adds a clean before/after diff that points specifically at the
2026.5.28 → 2026.6.1upgrade as the inflection point.observability: emit per-MCP-server sub-spans inside bundle-tools so cold-start cost is attributableMost directly related. PR Add bundle MCP diagnostics timeline spans #81787 (
Add bundle MCP diagnostics timeline spans) implements per-MCP-server sub-spans. This would let me prove which of the 3 MCP servers is regressing in 6.1. Without it, I'm reporting a 21s black box.perf: per-request auth (5.5s) and tool bundling (8.9s) dominate gateway TTFTProposes memoizing
bundle-toolsand singleton auth. Stale (no movement since 2026-06-02). The fix in perf: per-request auth (5.5s) and tool bundling (8.9s) dominate gateway TTFT #80131 is the structural remedy; this report is the regression evidence that says "now is the time".feat(embedded-runner): expose prep stage timings✅ mergedThis is why I can write this report at all. Thank you.
Gateway lazy-spawns duplicate stdio MCP children with identical ppid+configAdjacent: looks at duplicate-child cost in
bundle-tools. Less likely to be the cause on my host (no duplicate children observed), but worth ruling out.DefaultResourceLoader.reload() blocks event loop for 12-15s on WindowsDifferent stage (
session-resource-loader), but same family of "sync filesystem scanning inside a prep stage" issues.What would unblock me (any of these)
bundle-tools(PR Add bundle MCP diagnostics timeline spans #81787) — would tell me whether the regression is in a specific server'stools/listroundtrip or in the bundling loop itself.git logpointer on thebundle-toolscode path between2026.5.28and2026.6.1— would help me bisect locally.bundle-tools.timeout/bundle-tools.cacheknob to short-circuit the regression while the underlying fix lands.Cross-references
bundle-toolshappens before the context engine hook, and the regression is identical withslots.contextEngine: legacy(tested).minimax-mcp,minimax-coding-plan-mcp,@modelcontextprotocol/server-github); no exotic transports, no custom fork.