v2.2.7
🚀 Release v2.2.7
View on GitHubView PackagePublished: Jun 20, 2026

Release Notes

๐Ÿ“ฆ Release v2.2.7

This release was automatically published from PR #16080.

Changes

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

Commit Message

๐Ÿš€ LobeHub Release (20260620)

Release Date: June 20, 2026 Since v2.2.6: 88 merged PRs ยท 7 contributors ยท 1 database migration

This week pairs a workspace-scoped database migration with broad runtime and UX work โ€” native ASR transcription, audio attachments for audio-capable models, a smarter input-completion prompt, and a long list of reliability fixes.


๐Ÿ—„๏ธ Database Migration (Action for Self-Hosted)

This release ships migration 0111_workspace_device_and_ai_infra_surrogate_pk (#16065). It is the headline change for operators โ€” read this before upgrading.

What changes

  • ai_providers / ai_models โ€” adopt a surrogate _id primary key and workspace-scoped partial unique indexes, so provider/model identity is unique per workspace rather than per user.
  • devices โ€” the old (user_id, device_id) unique is replaced by two workspace-scoped partial uniques, letting personal and workspace-enrolled devices live in independent identity spaces.
  • workspaces โ€” adds the freeze trio frozen (boolean, default false), frozen_reason (text), frozen_at (timestamptz) backing workspace freeze risk control.

Operator impact

  • Backwards-compatible and additive โ€” every statement is guarded (IF EXISTS / IF NOT EXISTS / catalog checks). It is a NO-OP on cloud production (where the ai_infra side was already applied online) and a full rebuild on fresh / self-hosted databases.
  • No manual SQL required โ€” the migration runs automatically on application startup.
  • Schedule the rollout in a low-traffic window and take a backup snapshot before deploying.
  • If the migration fails, do not retry repeatedly โ€” inspect migration logs and lock state first.

Rollback

Migration is additive only (new columns / indexes / surrogate PK). If your environment requires strict reversibility, follow your standard DB restore or migration-rollback policy from the pre-deploy snapshot.


โœจ Highlights

  • Native ASR transcription โ€” new ASR (transcribe) runtime with OpenAI + Gemini-native backends, exposed via tRPC and the CLI (incl. remote audio URLs). (#15992, #15987)
  • Audio in chat & agent mode โ€” pass audio (mp3) attachments to audio-capable models like Gemini, with upload allowed in agent mode and a waveform player on render. (#15988, #16022)
  • Input completion v1.2 โ€” reworked completion prompt that predicts intent, including long-range continuations. (#15961)
  • Market recommendations โ€” task-template recommendations from Market, plus skill recommendations during agent creation. (#15558, #16016)
  • Model intelligence โ€” inject model knowledge cutoff into context and support GLM-5.2 reasoning effort. (#16048, #15972)
  • Topic lifecycle โ€” persist topic unread as a backend status and show a [Draft] hint on topics holding unsent input. (#16056, #15996)
  • Workspace-scoped devices โ€” distinguish local vs. gateway device targets, add a recent-directory button, and auto-activate a device for bot triggers on a local target. (#15921, #16040, #16032)

๐Ÿ—๏ธ Core Agent & Model Runtime

  • Rework input completion prompt to v1.2 โ€” predict intent, including long-range. (#15961)
  • Inject model knowledge cutoff into context. (#16048)
  • Support GLM-5.2 reasoning effort. (#15972)
  • Derive OpenAI model routing from IDs. (#16046)
  • Rename model type stt to standard asr (runtime migration, non-breaking). (#16002)
  • Persist model config cache for faster startup. (#16047)
  • Hetero-agent: assistant-anchored message-chain write spine. (#15930)
  • Stop chat mode from auto-injecting local-system tools. (#15981)
  • Centralize inbox agent meta fallback across read paths. (#15948)
  • Expose missing usage diagnostics. (#15973)

๐ŸŽ™๏ธ Audio & ASR

  • Add ASR (transcribe) with OpenAI + Gemini-native backends, exposed via tRPC. (#15992)
  • Pass audio (mp3) attachments to audio-capable models like Gemini. (#15988)
  • Allow audio upload in agent mode and render audio with a waveform player. (#16022)
  • CLI: support remote audio URLs in generate asr. (#15987)
  • Remove the deprecated /webapi/stt route and frontend mic entry. (#15999)
  • bot: recover MIME type for QQ c2c file attachments so audio reaches the model. (#16063)

๐Ÿ“ฑ Devices, CLI & Integrations

  • Distinguish local and gateway device targets. (#15921)
  • Inject device-bound working directory into the server local-system tool chain. (#15887)
  • Add a recent-directory button to the device detail panel. (#16040)
  • Auto-activate a device for bot triggers on a local target. (#16032)
  • Tolerate CRLF line endings when editing files & surface real edit errors. (#16061)
  • CLI: stop connect daemon on logout. (#16038)
  • Subscription: add contextual plans modal header i18n keys. (#16025)
  • Linear: render get_issue result as a card instead of raw JSON. (#15953)

๐Ÿ–ฅ๏ธ Chat & User Experience

  • Collapse FloatingChatPanel into a slim strip by default. (#15991)
  • Recommend Market skills during agent creation. (#16016)
  • Show a [Draft] hint on topics holding unsent input; persist topic unread as a backend status. (#15996, #16056)
  • Polish chat-input attachment menu, agent mode & status hints; polish skill suggestion modal UX. (#16010, #16027)
  • Lead collapsed tool-call summary with total call count. (#16003)
  • Clarify skill installation flow. (#16034)
  • Agent-documents: present documents as clickable links; harden explorer tree, titles, empty state & default tab. (#15989, #15998, #16005)
  • Make working-directory clear button actually clear; hide Codex cloud config tab. (#16019, #16037)
  • SPA: bootstrap app initialization; add use-switch-workspace hook. (#15937, #15979)
  • Desktop: require re-auth for expired sessions; close DevTools with window shortcut. (#16014, #16023)
  • Add a product glossary page. (#16001)

๐Ÿ”’ Reliability & Security

  • Security: skip Market trusted token for synthetic eval userIds. (#15959)
  • Treat parked runs as non-terminal in the client run-lifecycle. (#16072)
  • Classify upstream-message fallbacks out of UpstreamHttpError; converge 2nd residue wave + unmap payload-too-large from ECW. (#16024, #16053)
  • Preserve gateway error semantics and event body. (#16058, #16069)
  • Hetero-agent: gate CC usage-limit guide on rejected status; don't treat an inline tool's task_notification as a post-task summary. (#16042, #16050)
  • Load snapshot store via static import, not dynamic require. (#15982)
  • Reject duplicate custom model ids; allow same-user generic edit-lock updates. (#15975, #15969)
  • Avoid flashing unauthorized state in the tool auth alert; avoid task-template locale key flash. (#16068, #16071)
  • Prevent blank screen when switching language; resolve resource header i18n namespace fallback. (#15977, #16066)
  • Provide Market auth to SPA modals; suppress agent-mode notice for CLI agents. (#16045, #16044)
  • Handle generated asset metadata dedup; cache & gate task-template recommendations. (#16057, #15993, #16013)
  • userMemories: delete persona document when clearing all memories. (#15997)

๐Ÿ”ง Tooling & Maintenance

  • Upgrade react-router to v8. (#16029)
  • Use server config for business features; remove Fable campaign paths and client-side community publish/unpublish entries. (#16015, #15960, #15986)
  • Drop dead markUserValidAction business slot. (#16018)
  • Expose memory-user-memory prompts subpath exports; fix skill audit symlink inventory. (#15985, #16039)
  • Translate non-English comments to English in scripts; clean up LOBE-XXX markers. (#16000, #15943, #16031)

๐Ÿ‘ฅ Contributors

Huge thanks to 7 contributors who shipped 88 merged PRs this cycle.

@hardy-one ยท @arvinxx ยท @tjx666 ยท @AmAzing129 ยท @rivertwilight ยท @Innei ยท @Rdmclin2

Plus @lobehubbot and renovate[bot] for maintenance.


Full Changelog: v2.2.6...release/weekly-20260620-recut