$ the-wire · showcase
OpenClaw fixes delegated routing and tool schemas
By RepoJournal · Filed · About OpenClaw
OpenClaw shipped fixes that stop delegated messages from routing to the wrong account and make tool schemas compatible with llama.cpp providers.
OpenClaw fixed a routing bug where a delegated same-channel message action could select a configured account other than the one tied to the active inbound turn [1]. The message tool now validates explicit same-provider account selection against host-issued current-turn context before resolving channel credentials, and the same provider check now governs broadcast authorization [1]. This affects channel-less, `channel: all`, and fallback-resolved broadcasts [1].
Tool calling through llama.cpp-compatible providers previously failed when JSON Schemas contained `pattern` constraints or `maxLength` values at or above the compiler's supported ceiling [2]. A new provider-owned `llamacpp-gbnf` tool-schema compatibility family removes `pattern` and drops `maxLength` values at or above 2000 while preserving the can [2]. Gateway startup is also faster for instances with explicit stateless plugin load paths, which no longer run full plugin-state migration bootstrapping before opening the HTTP listener [3].
Two other behavioral fixes landed in channels and Codex. A follow-up message sent while an inbound-debounced turn was still running could be held behind the entire prior turn instead of steering the active run; the shared inbound debounce contract now separates session-lane admission from full dispatch completion [4]. WhatsApp exposed the regression, but every channel adapter using that path was affected [4]. Service-account-backed Codex sessions could discover a plugin app but not call it when disabled in the base runtime and enabled only by the gateway's configured plugin policy; the plugin now reads committed runtime inventory and provisionally enables those apps [5].
Crabbox added read-only device pairing [6]. It issues five-minute, owner-bound, single-use pairing grants initiated only by a cryptographically distinct `cbwp_` portal browser session, and issues hash-only, individually revocable device credentials with a `crabbox-device` audience, `leases:read` scope, and maximum 90-day lifetime [6]. Device reads use an explicit credential-free status projection and never refresh provider access, call a provider adapter, or write l [6]. The docs i18n pipeline now resumes failed full translation shards from a prior workflow run, reusing validated artifacts and rerunning only failed shards [7].
Action items
- → Review delegated message routing if your deployment relies on configured accounts different from the active turn's account openclaw/openclaw [plan]
- → If you use llama.cpp-compatible tool-calling models, verify your tool schemas now pass the GBNF compiler openclaw/openclaw [plan]
- → If you rely on Codex with service accounts where plugin apps are enabled by gateway policy, validate the new app provisioning flow openclaw/openclaw [monitor]
References
- [1] fix: preserve current account routing for delegated messages ↗ openclaw/openclaw
- [2] fix(agents): project llama.cpp-safe tool schemas ↗ openclaw/openclaw
- [3] fix(gateway): speed up startup with stateless plugin paths ↗ openclaw/openclaw
- [4] fix(channels): release inbound debounce at admission ↗ openclaw/openclaw
- [5] fix(codex): enable configured apps in service sessions ↗ openclaw/openclaw
- [6] feat(worker): add read-only device pairing ↗ openclaw/crabbox
- [7] fix(i18n): resume failed full translation shards ↗ openclaw/docs