v2.2.1
🚀 Release v2.2.1
View on GitHubView PackagePublished: May 29, 2026

Release Notes

๐Ÿ“ฆ Release v2.2.1

This release was automatically published from PR #15302.

Changes

See PR description: https://github.com/lobehub/lobehub/pull/15302

Commit Message

๐Ÿš€ LobeHub Release (20260528)

Release Date: May 28, 2026
Since v2.2.0: 220 merged PRs ยท 15 contributors

This cycle brings heterogeneous "platform agents" you can dispatch to local or remote devices, a rebuilt onboarding flow, document-centric chat, and a unified model-runtime error model โ€” with new DeepSeek V4 and Gemini 3.5 Flash support along the way.


โœจ Highlights

  • More Hetero Agents (OpenClaw / Hermes) โ€” Create heterogeneous agents and dispatch them to local or remote devices through the device gateway, with an execution-target switcher in the composer and persistent CLI sessions. (#15065, #15179, #15022)
  • iMessage on Desktop โ€” New iMessage setup and bridge on desktop, plus bot attachments across every platform. (#15228, #15227, #15029)
  • Skills in the Composer โ€” Drag skill chips into chat, trigger installed skills from the slash menu mid-line, and surface project-level skills in the homogeneous agent runtime. (#15095, #15061, #15110)
  • New Models โ€” DeepSeek V4 Flash/Pro and Gemini 3.5 Flash across providers, with thinking params for structured output and chat cost estimates. (#15031, #15001, #15051, #14876)
  • Agent Runtime Observability โ€” OpenTelemetry GenAI semantic conventions plus per-call generation tracing. (#15123, #15124)

๐Ÿค– Agents & Heterogeneous Runtime

  • Platform agent creation โ€” OpenClaw/Hermes creation UI, device guard, and remote dispatch backend. (#15065)
  • Execution-target switcher โ€” Pick local vs remote execution directly in the composer; device-selection UX with actionable guidance. (#15179, #15111)
  • CLI hetero dispatch โ€” OpenClaw/Hermes dispatch with persistent sessions and a notify protocol. (#15022)
  • Gateway snapshot as source of truth โ€” Consume the gateway uiMessages snapshot at step boundaries to keep chat state consistent. (#15153, #15152)
  • Client sub-agent as a normal tool call โ€” Simplifies the sub-agent execution path. (#15281)
  • Hermes agent chain โ€” Implements the Hermes agent chain logic. (#15189)
  • Device registry โ€” TRPC endpoints to register, list, update, and remove devices. (#15299)
  • Desktop device routing โ€” Route gateway agent runs through lh hetero exec; restore userId in gateway dispatch and gate local-system by execution target. (#15132, #15232)
  • Agent signals โ€” Anchor agent-signal receipts to messages and isolate memory-agent messages into a child thread. (#14969, #14921)

๐Ÿš€ Onboarding

  • Simplified first screen โ€” Defer topic creation to first send. (#15090)
  • Market Agent Picker โ€” Added as a classic onboarding step, with template prefetch. (#14980, #15041)
  • Welcome guidance โ€” Show agent welcome guidance on first run. (#15098)
  • Mobile โ€” Adapt agent onboarding UI and restore Classic-step padding on mobile. (#15019, #15032)
  • Discovery โ€” Streamline discovery to a single profession question. (#14987)
  • Analytics โ€” Track onboarding step events and create-agent modal source. (#15133, #15028)

๐Ÿ“„ Documents, Pages & Knowledge

  • Thread chat in preview โ€” Embed thread chat in the document preview portal. (#15216)
  • Non-markdown rendering โ€” Render non-markdown docs as a read-only highlight. (#15272)
  • Multi-select โ€” Multi-select delete in the document tree. (#15125)
  • Page-agent streaming โ€” Preview initPage streaming arguments. (#15039)
  • Per-agent topics โ€” Per-agent topic management page. (#15207)
  • Server-side category โ€” Derive document category server-side and drop frontend predicates. (#15076)

๐Ÿงฉ Skills & Tools

  • Drag skill chips โ€” Drag skills into chat input and register agent-document skills. (#15095)
  • Slash menu โ€” Installed skills appear in the slash menu with a mid-line trigger. (#15061)
  • Project skills โ€” Recognize project-level skills in the homogeneous agent runtime and surface them regardless of active device. (#15110, #15177)
  • VFS archiving โ€” Archive oversized tool results to VFS instead of truncating. (#15074)
  • @localFile mentions โ€” Drag folders into chat input as @localFile mentions on desktop. (#15071)

๐Ÿง  Model Runtime & Providers

  • Error spec registry โ€” Unify error codes into a spec + pattern registry, split ProviderBizError into finer codes, classify Cloud-only codes via a tier digit, and add DatabasePersistError. (#15262, #15286, #15278, #15279)
  • New models โ€” DeepSeek V4 Flash/Pro (opencode-go) and Gemini 3.5 Flash; DeepSeek V4 Pro on SiliconCloud. (#15031, #15001, #15017, #15267)
  • Structured output โ€” Thinking params for structured output, Bedrock structured generation, and DeepSeek generateObject tool choice. (#15051, #15174, #15054)
  • Cost โ€” Chat cost estimate support; preserve usage cost in custom streams. (#14876, #15218)

๐Ÿ’ฌ Chat & User Experience

  • Follow-up chips โ€” Extend follow-up chip suggestions to general chat with scene-specific model config. (#15101, #14797)
  • Input drafts โ€” Persist unsent input drafts across tab switches and prevent repeated draft restore. (#14992, #15024)
  • Command menu โ€” Order topic/message search by recency and promote inline type filters. (#15094, #14986)
  • Zoom HUD โ€” Show a zoom-level HUD on Cmd +/โˆ’ and Cmd 0. (#15294)
  • Copy โ€” Unescape markdown escapes when copying user messages. (#15253)

๐Ÿ–ฅ๏ธ Desktop

  • App Nap fix โ€” Prevent App Nap from dropping the gateway WebSocket during display sleep. (#14994)
  • File preview โ€” Preview .cjs/.mjs/no-extension files instead of binary fallback and expand ~ when opening local files. (#15168, #15284)
  • Cross-platform settings โ€” Open settings via main-window navigation on Windows/Linux and restore the route after an update restart. (#15036, #14922)
  • Token refresh โ€” Prevent frequent logout from token-refresh retries. (#14928)

๐Ÿ“Š Observability

  • OTel GenAI โ€” Instrument Agent Runtime with OpenTelemetry GenAI semantic conventions. (#15123)
  • Generation tracing โ€” Per-call llm_generation_tracing with a pre-allocated tracingId and recordFeedback router. (#15124, #15146)
  • Error classification โ€” Persist ERROR_CODE_SPECS classification on operation errors. (#15273)

๐Ÿ—ƒ๏ธ Database Migrations

  • Batch migrations โ€” Topic usage stats, push tokens, tasks.editor_data, and document shares. (#15280)
  • Tracing & eval tables โ€” Add llm_generation_tracing and agent eval experiment tables. (#15126)

Self-hosted operators should run the database migration (pnpm db:migrate, or restart with auto-migrate enabled) after upgrading. The changes are additive and backwards-compatible.


๐Ÿ”’ Security & Reliability

  • Security: Remove the getPlaintextCred tool to prevent plaintext credential exposure. (#14998)
  • Security: Prompt account selection for Google OAuth and add prompt=consent to the OIDC authorization URL to fix missing refresh tokens. (#15234, #15010)
  • Reliability: Preserve streamed content across a mid-stream cancel. (#15173)
  • Reliability: Bound the Redis command timeout and configure the Anthropic client timeout. (#15091, #15042)
  • Reliability: Prevent infinite recursion in the assistant chain. (#15288)

๐Ÿ‘ฅ Contributors

Huge thanks to 15 contributors who shipped 220 merged PRs this cycle.

@AnotiaWang ยท @sxjeru ยท @algojogacor ยท @hardy-one ยท @arvinxx ยท @Innei ยท @tjx666 ยท @LiJian ยท @AmAzing129 ยท @Rdmclin2 ยท @Neko ยท @cy948 ยท @CanisMinor ยท @sudongyuer ยท @rivertwilight

Plus @lobehubbot and renovate[bot] for maintenance.


Full Changelog: v2.2.0...release/weekly-20260528