$ the-wire · showcase
Plugin JSON body reading converges on one bounded reader
By RepoJournal · Filed · About OpenClaw
OpenClaw consolidated plugin JSON body parsing onto a single canonical bounded reader with strict size, timeout, and cleanup semantics, closing an indefinite-hold vulnerability in unauthenticated Telegram Mini App requests.
OpenClaw refactored plugin HTTP endpoints to use one canonical bounded JSON body reader, eliminating drifting size, timeout, stream-error, and cleanup behavior across admin and Telegram routes [1]. The consolidation closes a vulnerability where an unauthenticated Telegram Mini App auth request could hold the request body open indefinitely because its local reader had no timeout [2]. The work includes a security test suite covering the migration [1].
Onboarding in display-less WSL environments now opens the browser via canonical browser-open support, with WSL detection caching preserved and stale browser processes cleaned up [3]. The Workboard plugin now syncs lifecycle states even when the dashboard is closed, using `agent_end` and `subagent_ended` hooks plus a 60-second `sessions.list` sweep, replacing the UI-only lifecycle write path [4]. Plugin metadata tests now reset the full lifecycle between tests, addressing a gap where memoized registries could leak stale state [5].
The Crabbox CLI gains `heartbeat`, which sends an owner-scoped heartbeat through the coordinator and prints the committed lease state, falling back to provider `Touch` only after local-claim and terminal-state checks [6]. Local-container provisioning now bypasses reusable-workspace ownership only for guaranteed-cleanup fresh runs, preserving ownership for retention policies [7], and honors native architecture assertions with no emulation fallback [8]. Jujutsu sync validates local sources before any provisioning, closing a remaining paid-resource side effect [9]. Five automated doc sync mirrors updated openclaw/docs [10].
Action items
- → Review the canonical bounded JSON reader consolidation for any custom plugin body readers that should migrate openclaw/openclaw [plan]
- → Test WSL onboarding flows after the browser handoff fix openclaw/openclaw [plan]
- → Run local-container ownership tests for --keep policies post-bypass changes openclaw/crabbox [plan]
References
- [1] refactor(security): consolidate plugin JSON body reading onto canonical bounded reader (#124944) ↗ openclaw/openclaw
- [2] refactor(security): consolidate plugin JSON body reading onto canonical bounded reader ↗ openclaw/openclaw
- [3] fix(onboard): open browser handoff in display-less WSL (#124704) ↗ openclaw/openclaw
- [4] fix(workboard): keep cards synced when dashboard is closed ↗ openclaw/openclaw
- [5] test(plugins): reset the whole plugin metadata lifecycle between tests (#125037) ↗ openclaw/openclaw
- [6] feat: add lease heartbeat command ↗ openclaw/crabbox
- [7] fix(local-container): bypass fresh one-shot ownership ↗ openclaw/crabbox
- [8] fix(local-container): honor native architecture assertions ↗ openclaw/crabbox
- [9] fix(sync): validate Jujutsu before delegated provisioning ↗ openclaw/crabbox
- [10] chore(sync): mirror docs from openclaw/openclaw@0c4e2f6681d1bbc4cd5c8c6d7cb147e7509a8937 ↗ openclaw/docs