v0.9.1-beta
abhinavxd/libredeskv0.9.1-betaDec 27, 2025by github-actions[bot]
AI Summary
This beta release introduces comprehensive security improvements including database encryption for secrets, OAuth support for Microsoft and Google email inboxes, and shared views for teams. It also enhances the user experience with draft auto-save functionality and resizable conversation panels.
Key Highlights
- Database encryption for IMAP/SMTP passwords and webhook secrets
- OAuth support for Microsoft and Google email inboxes
- Shared views for agents and specific teams
- Draft auto-save including attachments and macro actions
- Resizable conversation panels and sortable table headers
Breaking Changes
- Requires adding an encryption key under `[app]` in `config.toml`
New Features
- Encrypted database secrets
- OAuth for inboxes
- Shared views management
- Draft auto-save with attachments and macro actions
- New permission `conversations:read_team_all`
- Resizable conversation panels
- Sortable table headers
- New activity logs for permission changes
- Email threading improvements using subject references and plus-addressing
Full Release Notes
## What's New - **Encryption**: All database secrets (IMAP/SMTP passwords, webhook secrets, etc.) are now encrypted - **Translations**: Added Danish, German, Persian, French, Italian, and Japanese - **OAuth for inboxes**: Microsoft and Google email accounts are now supported via OAuth - **Shared views**: Create views shared with all agents or specific teams, with new admin pages to manage them - **Draft auto-save**: Drafts now auto-save while composing replies, including attachments and macro actions - **New permission**: `conversations:read_team_all` allows agents to see all conversations assigned to their team, even if unassigned - **Resizable conversation panels**: Conversation view panels are now resizable - **Sortable table headers**: Data tables now support column sorting - **Email threading improvements**: Improved matching of incoming emails using subject references and plus-addressing (e.g. `inbox+conv-uuid@domain.com`) - **UI tweaks**: Improvements to dark/light mode colors and layout - **New activity logs**: Libredesk now logs permission changes for agents in the activity log, along with password updates from admin panel. ## What's Fixed - Agent permissions not updating when roles were modified or deleted and required an app restart. ## ⚠️ Important: Upgrade notes This version adds encryption to Libredesk. You must add an encryption key under `app` in your `config.toml`. Example: ```toml [app] # Generate using `openssl rand -hex 16`. Must be 32 characters long. encryption_key = "your-32-char-random-string-here!" ``` * Always take a database backup before upgrading. * Follow the steps [here](https://docs.libredesk.io/getting-started/upgrade). ## Changelog * 914bcc1f simplify stale draft deletion sql * 1a5756a2 adjust font sizes for metrics in OverviewCard and OverviewView * 7bbd1bfe update dialog title and view for reconnect flow * 539a31a2 update capitalizations for en translations * a6ec2b77 fix inbox form submissions * 98ac1959 check for empty array values in view form * 8ed5c71e feat: enable sortable headers in data table * 957f945e update sort order for shared view list. * 79f1a231 sort user views by name * 09cd9a62 remove sidebar rails entirely hide secondary side fully once collapsed * a47fa016 style: reduce icon sizes and adjust padding in SLA badge * 9c17f98d show subject instead of contacts name in previous conversation list allow previous conversation timestamps to wrap * 340b47d9 update help text for inbox * ddddf04f feat: Shared views for agents and specific teams and admin pages to manage shared views. - Log activity for password set and role permission changes. - Fix agent permissions not changing when a role is modified / deleted. * 064a73ba feat: add `conversations:read_team_all` permission to allow agents to see conversations assigned to their team, regardless of whether an agent is assigned or not. * 608b90e4 style: color changes for dark and lite mode - add rounded borders around component boundaries * 29d93d73 Update color variables for dark mode reduce text editor place holder text size * 44344b4d keep scrollbars consistent across browsers remove version from package.json * e669224a Merge pull request #204 from abhinavxd/patch-2 * 15de0a31 Merge pull request #185 from abhinavxd/oauth-inbox-and-encryption * c62294aa feat: Make convo panels resizable - add new report/overview metrics * 2468b91c translate oauth changes in email inbox form - log warnings when sample encryption key is used for libredesk and when encrytion key is not 32 chars * 78473649 set automation queue size to 10k * f165f0e6 remove appending ref number to agent reply mail subjects * 7ac483d0 handle converastion not found errors while fetching conversations fetched using uuids from the `to` plus address * 27d929c3 refactor add util funcs to extract conversation uuid from `to` address * 5fd6bbda remove unused struct field * 7a17f447 update email inbox configuration help text and add link to documentation - update google and msft logo * b95a1587 fix loader for oauth connect * 1c0518b6 fix tests * cfdb82c4 fix tests * 70a59969 fix tests * a63c073c fix strip conversation uuid from receipient address as it could be the inbox email with plus variant - adds test cases for util functions that strip inbox email. - update make file to include frontend unit tests * 096bc870 Feat: add plus-addressing for conversation matching on incoming emails * f6d8e401 validate reconncted inbox email addr with the inbox being updated * 895a74b3 encrypt ai provider keys - add flow types to oauth inboxes to prevent accidental updates * f473870b fix: delay toast notifications for OAuth callback messages remove unncessary route redirect * 22af66c4 Feat: match incoming messages to conversations using reference number in the subject. * e4f260e3 fixes for msft email provider * b7103b24 show oauth callback error / success messages as toast. Add logs for errors and minor refactor * 2540b7ef add Tenant ID input for Microsoft OAuth provider * c7f1f23c fix deadlock on token refresh * 44554118 fix do dot encrypt client id remove superfluous arg set default imap scan interval to 5 mins * 5c1d0af9 fix: handle error when marshalling decrypted app settings * 94202e22 refactor: update OAuth flow to use Redis for state management instead of storing it in session - Replace Google logo with SVG * 0a702047 refactor and clean up remove uncessary token refresh on init of email inbox * 2a238a71 -fix email notifications not working. - reload app settings when notification settings are changed to trigger admin banner prompting user to restart app - remove unncessary dummy password check before retaining passwords as an empty password check is enough. * 4de936da remove omitempty from tags remove unused fn * 5c364fb9 fix oauth credentials not being saved correctly , refactor use exisitng oauth pkg for oauth functionalities * d213ce91 remvoe unnecessary define emits import * f3ddc265 wip inbox oauth and encryption * 34888ce2 refactor: update draft handling to retrieve all drafts for a user instead of fetching drafts per convo on click. * 1423c18a fix highlighted / hovered macro preview not changing - make macro text size bigger * 9969ae67 fix race in setting draft content * 029d5cff add newly translated languages to general settings * 36a716e8 Merge pull request #171 from csr4422/fix/reply-draft-persistence * 5f617857 remove unncessary ref * b0c50031 Delete drafts when there's no meaningful content in them. - show `pencil` icon in conversations if they have draft. - auto-delete drafts if draft has empty content * 364b5511 fix: add meta size validation in draft handling * aed1b904 fix: reorder migration list to ensure correct upgrade path * 36e03c14 Merge branch 'main' into fix/reply-draft-persistence * 07457acd fix: skip attachments already associated with another model in message sending * b1e0295c allow setting same macro content again * 67ade612 store content in local storage first and sync with backend on certain events * cfec05c2 refactor reply drafts * decbdaf0 Merge pull request #201 from jleroy/i18n/update-2025-12-21 * c1602108 fix: ensure draft cleaner runs only with a positive retention period * 0f67df94 fix: update draft retention duration to default to 720 hours if not set * 6bcc16e5 feat: along with editor content also save attachments and macro actions in drafts * 162ba34d Update translations * 5bd053a3 Update roadmap with WIP status for features * cf67b967 add missing migrations check if drafts are dirty before saving draft * 159e8ae5 fix errors while fetching draft on conversation without any saved drafts * bb6b56ee Merge pull request #196 from trabulium/fix/null-password-handling * fe4b0acf clean up * 4a70b945 clean up draft store * 2707231f add draft retention policy with automatic cleanup of stale drafts * d8047402 remove unncessary enforceconversation access in delete and get convo draft * bb89728e Update README.md * 546fc160 Update README.md * 4cbc55fe add roadmap.md * 0a245e00 Revise developer section in README * 1d4394e6 Update contribution guidelines for clarity * 7a153d7f Create CONTRIBUTING.md with guidelines and process * bf63fd6c fix border in convo list * 9a43bcef add bottom border to conversation list when there's only 1 conversation in list * 0a5e5de5 fix: Handle NULL password field for imported contacts * c740de7a refactor: remove localStorage, use database-only draft storage * eddaf4a5 refactor: make draft manager async for backend integration * 2cf8de67 feat: integrate backend API with draftStore * 5667039d feat: add draft API service methods * 459bcaec feat: register draft API endpoints * 2db50b79 feat: add HTTP handlers for draft endpoints * e6bafb20 feat: implement draft manager methods * cd8c5ab1 add ConversationDraft model * 08254178 Add database queries for draft CRUD operations * cabd7af5 Add conversation_drafts table for draft reply storage * 8b07ab7d Revert unnecessary aliasing of htmlContent and textContent * e22dbdfc fix: call fetchAiPrompts on component mount and fix formatting * f98e59fd fix: prevent macro watcher from clearing draft content unintentionally * d8676115 fix: improve draft persistence and prevent content loss on conversation switching * d2f02872 refactor: optimize editor content sync to prevent unnecessary updates * bd092c5b fix: prevent saving empty drafts to localStorage * f452e027 feat: add draft persistence with eviction policy * 41344b8f Merge branch 'main' into fix/reply-draft-persistence * 077c7ade Use useStorage to sync draftStore state with localStorage * 563d3aba fix: block global Ctrl+B shortcut when typing in text editor * 284d421a fix: ReplyBox draft handling by integrating Pinia draft store ## New Contributors * @trabulium made their first contribution in https://github.com/abhinavxd/libredesk/pull/196 **Full Changelog**: https://github.com/abhinavxd/libredesk/compare/v0.8.6-beta...v0.9.1-beta