This update covers significant refactors to the OpenAI provider identity, the migration of Workboard to SQLite, and major improvements to MCP operator workflows and browser screenshot vision.
Merged PRs
- refactor: unify OpenAI provider identity [Original PR]
- Move Workboard to relational SQLite [Original PR]
- Refactor browser screenshot vision through shared media understanding [Original PR]
- feat: improve MCP operator workflows [Original PR]
- fix(browser): allow upload from inbound media directory [Original PR]
- fix(ci): ignore fenced headings in proof parser [Original PR]
- fix(gateway): strip spurious tool call blocks when provider signals stop [Original PR]
- fix(cron): preserve plugin delivery targets [Original PR]
- Refactor cron migrations under doctor [Original PR]
- fix(ui): add agent selector to dreaming tab [Original PR]
- feat: add internal code mode namespaces [Original PR]
- chore(release): update appcast for 2026.5.28 [Original PR]
- fix: promote serialized tool calls via repair package [Original PR]
- fix(slack): preserve thread context for Agents & Assistants DM root messages [Original PR]
- feat: pass structured provider error signals to hooks [Original PR]
- fix(responses): drop orphaned assistant msg_* id when reasoning is dropped [Original PR]
- fix #88214: [Feature]: Dashboard sidebar Recent sessions should filter by currently selected agent [Original PR]
- refactor: simplify sqlite cron persistence [Original PR]
- Fix /acp spawn cwd inheritance for target agent workspaces [Original PR]
- Classify release dependency ownership metadata [Original PR]
- refactor: source model catalog types from core [Original PR]
- fix #85782: surface terminal TUI lifecycle errors [Original PR]
- [codex] Route denied exec approval followups to sessions [Original PR]
- fix(agents): extend session-write-lock payload-less orphan grace from 5s to 30s [Original PR]
- test(gateway): avoid brittle shutdown timer assertion [Original PR]
- refactor: extract web content core package [Original PR]
- fix(mcp): bound pendingClaudePermissions / pendingApprovals via TTL sweeper + close clear [Original PR]
- feat(cli): add sessions tail progress view [Original PR]
- Refactor subagent thread binding into core [Original PR]
- Skip browser cleanup when browser is disabled [Original PR]
Key Changes
Infrastructure and Core Refactors
Several high-impact refactors were merged to streamline provider management and data persistence. The OpenAI provider identity has been unified under a single openai identity, removing legacy Codex-named surfaces and consolidating auth/profile selection and model routing. In a move toward better data durability, the Workboard has been migrated from plugin KV rows to a relational SQLite database, supported by new doctor contracts for seamless data migration.
Additionally, the system's model catalog types have been sourced from a new core package to ensure a single source of truth, and web provider runtime helpers were extracted into a dedicated @openclaw/web-content-core package. Cron persistence was also simplified by moving legacy JSON store migration helpers into the doctor command ownership, shifting the core runtime entirely to SQLite.
Feature Enhancements
- MCP Operator Workflows: New workflows allow operators to add, configure, enable/disable, probe, and reload MCP servers. This includes support for tool filters, OAuth, and TLS verification.
- Browser Vision: Browser screenshot vision now leverages the shared media image-understanding runtime. If an image-understanding model is configured, screenshots are automatically described in text, allowing text-only models to reason over visual data.
- sessions tail: A new CLI command
openclaw sessions tail --follow provides a human-readable, real-time progress view of session trajectories, with built-in redaction for sensitive tool arguments and results.
- Internal Code Mode Namespaces: A new namespace registry and QuickJS bridge allow host-owned globals to be exposed inside
exec while maintaining strict tool policy and telemetry.
Bug Fixes and Reliability
- Session Stability: A critical fix was implemented for Azure/OpenAI Responses sessions where orphaned
msg_* IDs were causing HTTP 400 errors after model fallbacks. These IDs are now stripped when reasoning items are dropped.
- Browser Uploads: The
browser.upload tool now correctly accepts files from the managed inbound media directory, resolving a pain point where WebChat attachments could not be uploaded to web forms.
- ** uma-TUI Errors:** Terminal TUI lifecycle errors are now properly surfaced in the transcript, preventing the UI from remaining in a "busy" state when a provider fails.
- Locking Grace Period: The session-write-lock orphan grace period was extended from 5s to 30s to prevent premature lock reclamation under high CPU pressure or container freezes.
Impact
These changes significantly reduce technical debt by consolidating provider identities and migrating legacy storage to SQLite. For users, the most immediate impact is the improved observability provided by sessions tail and the more robust browser vision capabilities.
From a developer and operator perspective, the MCP enhancements make managing external tool servers far more flexible. The reliability fixes—particularly around Azure Responses and session locking—address edge cases that previously led to "poisoned" sessions or data races under heavy system load. Finally, the UI improvements to the Dreaming tab and the Dashboard sidebar ensure that multi-agent environments are more intuitive, with session and memory views correctly scoped to the selected agent.