Skip to content

Releases: abhinavxd/libredesk

v1.0.3

26 Feb 06:15

Choose a tag to compare

Minor bug fixes.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • d0997d0 Fix permission denied toast errors on WS updates for restricted agents
  • 1ab7825 Restrict message retries only to sender agent & failed messages

v1.0.2

24 Feb 17:34

Choose a tag to compare

What's new

  • Subject is now shown in the conversations list.

What's fixed

  • SSR protection for webhooks.
  • Fixes to admin Automation forms.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • 9b3e3f1 Fix: tag input in automations not being selected - Add translated error messages for invalid automation rules. - add support for warning sooner
  • 89141a8 Merge pull request #247 from josephsellers/show-subject-in-list
  • bd83d8c Merge pull request #246 from abhinavxd/dependabot/npm_and_yarn/frontend/qs-6.14.2
  • b9fd3a1 feat: display conversation subject in list view
  • 237b5c3 build(deps): bump qs from 6.14.1 to 6.14.2 in /frontend
  • 7272136 SSRF protection to webhooks - New config webhook option to allow certain CIDR ranges in webhooks.
  • f7aa1ef Merge pull request #245 from abhinavxd/dependabot/npm_and_yarn/frontend/axios-1.13.5
  • dc29e70 build(deps): bump axios from 1.12.0 to 1.13.5 in /frontend
  • 4876ba2 Merge pull request #235 from jleroy/i18n/update-2026-01-29
  • 5b3ca21 Translation updates [2025-01-29]

v1.0.1

28 Jan 18:56
aeaae51

Choose a tag to compare

What's fixed

  • Inbox setting to allow toggling plus addressing (in reply-to) as some providers do not support it.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • aeaae51 Merge pull request #234 from abhinavxd/update-plus-addressing
  • 9ad46cc make plus addressing default in email inbox form
  • d0bad37 feat: add support for toggling plus addressing for email inbox.

v1.0.0

28 Jan 06:51

Choose a tag to compare

What's new

  • Spanish translations.

What's fixed

  • German translation fixes.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • 5a24fbe fix: remove UTF-8 BOM from Spanish translation file
  • eff9fd9 feat: add Spanish language option to the language selection
  • 4b75c71 Merge pull request #232 from OfficialCRUGG/fix-german-i18n
  • 12bcfc5 improve german localization
  • 416923b Merge pull request #229 from GMSantiago-Dev/add-spanish-translation
  • eaee3d3 Add Spanish (es) translation

v0.11.1-beta

20 Jan 15:50

Choose a tag to compare

Fixes

  • Whitespace now trimmed from inbox and settings fields (#223)
  • Session TTL set to 9 hours, fixing issue where Redis session keys would never expire (#228)

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • 361fece fix: trim whitespace from inbox and settings fields Fixes #223
  • 4409bd8 fix: set session store TTL to 9 hours. Fixes #228
  • 26382e4 Update roadmap to mark mentions and bulk import as done
  • 4e9c1d0 Merge pull request #226 from abhinavxd/fix/max-header-size
  • 757c111 update default read_buffer_size to 65kb

v0.11.0-beta

11 Jan 15:36

Choose a tag to compare

Skip v0.10.0 and upgrade to this.

What's New

Notifications System
In-app notifications with a bell icon in the sidebar. Get notified for mentions, assignments, SLA warnings, and SLA breaches.

Mentions in Private Notes
Mention agents or entire teams in private notes using @. Mentioned users receive both in-app and email notifications.

Bulk Agent Import
Import multiple agents at once via CSV upload. Includes progress tracking, import logs.

Signed URLs for Media
Media files are now available via signed URLs, allowing external systems to access them without authentication, using only the signature. Signed URL expires after 1 hour can be change with config value upload.fs.expiry

OIDC Enhancements
Custom OIDC providers now support logo URLs. Added Microsoft as a built-in provider option.

Mark Conversation as Unread
Right-click a conversation in the list to mark it as unread.

Webhook Improvements
Conversation webhook events now include the full conversation object.

Fixes

  • DataTable loading states and sorting behavior improvements

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • 718a9e6 feat: Add entire conversation on webhook events, so clients don't have to fetch conversation again. Closes #208
  • 5b393c2 add mention message content to mentioned msg notification
  • 7bc3387 add loading state support to DataTable component across various views - UI/UX improvements for datatable
  • 74fd95c disable sorting for action columns across various data tables - fix: disable sorting removal for data tables
  • 1127d29 add logo_url support for custom OIDC providers - add microsoft option for providers
  • 54d3a47 set defaults page size and page paginated apis
  • c107c7a remove omit empty from null field as it doesn't work
  • 6b2930d improve error logging in agent import process
  • c6f765d modernize util funcs
  • a5357ff refactor dispatcher
  • d4a6dce rename i18n key
  • ffe0dbc Merge pull request #214 from csr4422/feat/bulk-agent-import
  • 7c91ca8 refactor: update translation keys for file selection and remove unused messages
  • 173493a handle panics in importer, translate messages and fix bugs
  • 18f5ff1 Merge remote-tracking branch 'origin/main' into feat/bulk-agent-import
  • 3ed06eb Merge pull request #218 from abhinavxd/feat-notifications
  • 91445d7 Merge branch 'main' into feat-notifications
  • 1da8ff5 update translation key
  • 3036371 fix notification bell unread count overflow
  • e59c31f remove unused notification retrieval query and related code - add missing template in schema.sql
  • 58a9767 fix: refactor agent import with improved error handling
  • c8bfe36 feat: mark conversation as unread from context menu on conversation list
  • b8fa6c7 fix: include mentioned by details and clear author for mentioned emails as it's automated
  • 52231a6 fix: open notification conversations in my inbox - set notification page size to 30
  • c20866d fix: update email notification template to correctly reference the user who mentioned
  • e404b85 fix mentioned notification not scrolling to mentioned message. - update en translations for notifications
  • ecf633b fix match mig with schema
  • a8fee6d feat: notification dispatcher for handling in-app, WS, and email notifications centrally
  • ef25702 feat: add copy-to-clipboard button for import logs
  • 0dc8db1 refactor: rename email notification methods to generic notification methods as they also send in-app notifications
  • 99499b4 change notification PKEY type from bigserial -> serial
  • 96559fb Merge pull request #217 from abhinavxd/feat-fs-urls
  • 3c90817 set default expiry for fs signed urls to 1 hr. - remove double media fetch from db
  • 099a410 fix auth check for serving media files
  • c4e8539 Merge pull request #216 from abhinavxd/patch-api-2
  • 1a3e5fa Merge pull request #215 from abhinavxd/feat-mentions
  • 1b07cbd feat: increase suggestion limit from 10 to 25 for mentions - update mentions query for clarity as distinct is not required
  • b0ec53d fix: update getTypeLabel to correctly handle 'agent' type - ensure component element exists before appending to popup
  • 0d26cb6 fix: improve import UX with immediate logs and auto-scroll
  • 7640307 feat: enhance Importer component with shadcn components and UI improvements
  • 65b05ca feat: add importer button to agents list page
  • 4b77d89 feat: add import agents dialog with CSV upload and progress view
  • 902158b feat: implement signed URL support for filesystem media access
  • 831226e Merge pull request #211 from abhinavxd/dependabot/npm_and_yarn/frontend/qs-6.14.1
  • 4d6219c Bump qs from 6.13.1 to 6.14.1 in /frontend
  • 4bab16c feat: user app notification system with bell icon in the sidebar - notifications for: mention', 'assignment', 'sla_warning', 'sla_breach' - new table user_notifications and migrations for the same.
  • 294b3a9 feat: add agent import API routes
  • 1250c7f feat:add job logs and count tracking
  • e3141b1 feat: add csv import handler and file processing
  • aac40f4 add type and private message filters to fetch messages api.
  • 177fe90 feat: update mention notifications to use MentionedBy instead of Author, as for automated emails there no author
  • 28fa0ba add email notif template to schema - update migration
  • 1aa2d91 feat: mentions for private notes - mentioning an agents sends an email to the agent. - mentioning a team sends an email to to the entire team.
  • d0d3335 Merge pull request #209 from abhinavxd/patch-api-1
  • 186c4c8 fix: check read_team_all before read_team_inbox in EnforceConversationAccess
  • 532cd7f feat(navigation): add pluralization for navigation items
  • 88f1c92 feat: add importer to App initialization
  • 4d28f4e feat: add importer package

Full Changelog: v0.9.5-beta...v0.11.0-beta

v0.9.5-beta

30 Dec 21:47

Choose a tag to compare

What's fixed

  • Fix Google OAuth email inboxes not returning refresh tokens on re-authentication. If you've faced this issue, please reconnect your inbox by editing it and clicking the reconnect button.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • b7d5ee0 fix: add prompt=consent for Google to make sure we get refresh token everytime

Full Changelog: v0.9.4-beta...v0.9.5-beta

v0.9.4-beta

29 Dec 06:03

Choose a tag to compare

Skip v0.9.3 and upgrade to this.

What's fixed

  • Adds missing shared view manage permission to role form.
  • Adds missing activity type filters from activity logs.

Upgrade

  • Always take a database backup before upgrading.
  • Follow the steps here.

Changelog

  • 050c502 add localized labels for activity log types in useActivityLogFilters add missing activity log types in filters

Full Changelog: v0.9.2-beta...v0.9.4-beta

v0.9.2-beta

28 Dec 20:37

Choose a tag to compare

What's fixed

  • Changed OAuth prompt from consent to select_account. Previously, users in organizations where an admin had already granted app permissions would still see a consent screen they couldn't approve. Now the flow respects existing admin consent and only shows an account picker. Ref comment.

Upgrade

  • Always take database backups before any upgrade.
  • Follow steps here.

Changelog

  • 0c76632 update authorization URL to prompt for account selection
  • 986b2d4 Update roadmap with mentions support status
  • 09e532c Update ROADMAP.md
  • 5189866 Update README.md

Full Changelog: v0.9.1-beta...v0.9.2-beta

v0.9.1-beta

27 Dec 13:15

Choose a tag to compare

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:

[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.

Changelog

  • 914bcc1 simplify stale draft deletion sql
  • 1a5756a adjust font sizes for metrics in OverviewCard and OverviewView
  • 7bbd1bf update dialog title and view for reconnect flow
  • 539a31a update capitalizations for en translations
  • a6ec2b7 fix inbox form submissions
  • 98ac195 check for empty array values in view form
  • 8ed5c71 feat: enable sortable headers in data table
  • 957f945 update sort order for shared view list.
  • 79f1a23 sort user views by name
  • 09cd9a6 remove sidebar rails entirely hide secondary side fully once collapsed
  • a47fa01 style: reduce icon sizes and adjust padding in SLA badge
  • 9c17f98 show subject instead of contacts name in previous conversation list allow previous conversation timestamps to wrap
  • 340b47d update help text for inbox
  • ddddf04 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.
  • 064a73b 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.
  • 608b90e style: color changes for dark and lite mode - add rounded borders around component boundaries
  • 29d93d7 Update color variables for dark mode reduce text editor place holder text size
  • 44344b4 keep scrollbars consistent across browsers remove version from package.json
  • e669224 Merge pull request #204 from abhinavxd/patch-2
  • 15de0a3 Merge pull request #185 from abhinavxd/oauth-inbox-and-encryption
  • c62294a feat: Make convo panels resizable - add new report/overview metrics
  • 2468b91 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
  • 7847364 set automation queue size to 10k
  • f165f0e remove appending ref number to agent reply mail subjects
  • 7ac483d handle converastion not found errors while fetching conversations fetched using uuids from the to plus address
  • 27d929c refactor add util funcs to extract conversation uuid from to address
  • 5fd6bbd remove unused struct field
  • 7a17f44 update email inbox configuration help text and add link to documentation - update google and msft logo
  • b95a158 fix loader for oauth connect
  • 1c0518b fix tests
  • cfdb82c fix tests
  • 70a5996 fix tests
  • a63c073 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
  • 096bc87 Feat: add plus-addressing for conversation matching on incoming emails
  • f6d8e40 validate reconncted inbox email addr with the inbox being updated
  • 895a74b encrypt ai provider keys - add flow types to oauth inboxes to prevent accidental updates
  • f473870 fix: delay toast notifications for OAuth callback messages remove unncessary route redirect
  • 22af66c Feat: match incoming messages to conversations using reference number in the subject.
  • e4f260e fixes for msft email provider
  • b7103b2 show oauth callback error / success messages as toast. Add logs for errors and minor refactor
  • 2540b7e add Tenant ID input for Microsoft OAuth provider
  • c7f1f23 fix deadlock on token refresh
  • 4455411 fix do dot encrypt client id remove superfluous arg set default imap scan interval to 5 mins
  • 5c1d0af fix: handle error when marshalling decrypted app settings
  • 94202e2 refactor: update OAuth flow to use Redis for state management instead of storing it in session - Replace Google logo with SVG
  • 0a70204 refactor and clean up remove uncessary token refresh on init of email inbox
  • 2a238a7 -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.
  • 4de936d remove omitempty from tags remove unused fn
  • 5c364fb fix oauth credentials not being saved correctly , refactor use exisitng oauth pkg for oauth functionalities
  • d213ce9 remvoe unnecessary define emits import
  • f3ddc26 wip inbox oauth and encryption
  • 34888ce refactor: update draft handling to retrieve all drafts for a user instead of fetching drafts per convo on click.
  • 1423c18 fix highlighted / hovered macro preview not changing - make macro text size bigger
  • 9969ae6 fix race in setting draft content
  • 029d5cf add newly translated languages to general settings
  • 36a716e Merge pull request #171 from csr4422/fix/reply-draft-persistence
  • 5f61785 remove unncessary ref
  • b0c5003 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
  • 364b551 fix: add meta size validation in draft handling
  • aed1b90 fix: reorder migration list to ensure correct upgrade path
  • 36e03c1 Merge branch 'main' into fix/reply-draft-persistence
  • 07457ac fix: skip attachments already associated with another model in message sending
  • b1e0295 allow setting same macro content again
  • 67ade61 store content in local storage first and sync with backend on certain events
  • cfec05c refactor reply drafts
  • decbdaf Merge pull request #201 from jleroy/i18n/update-2025-12-21
  • c160210 fix: ensure draft cleaner runs only with a positive retention period
  • 0f67df9 fix: update draft retention duration to default to 720 hours if not set
  • 6bcc16e feat: along with editor content also save attachments and macro actions in drafts
  • 162ba34 Update translations
  • 5bd053a Update roadmap with WIP status for features
  • cf67b96 add missing migrations check if drafts are dirty before saving draft
  • 159e8ae fix errors while fetching draft on conversation without any saved drafts
  • bb6b56e Merge pull request #196 from trabulium/fix/null-password-handling
  • fe4b0ac clean up
  • 4a70b94 clean up draft store
  • 2707231 add draft retention policy with automatic cleanup of stale drafts
  • d804740 remove unncessary enforceconversation access in delete and get convo draft
  • bb89728 Update README.md
  • 546fc16 Update README.md
  • 4cbc55f add roadmap.md
  • 0a245e0 Revise developer section in README
  • 1d4394e Update contribution guidelines for clarity
  • 7a153d7 Create CONTRIBUTING.md with guidelines and process
  • bf63fd6 fix border in convo list
  • 9a43bce add bottom border to conversation list when there's only 1 conversation in list
  • 0a5e5de fix: Handle NULL password field for imported contacts
  • c740de7 refactor: remove localStorage, use database-only draft storage
  • eddaf4a refactor: make draft manager async for backend integration
  • 2cf8de6 feat: integrate backend API with draftStore
  • 5667039 feat: add draft API service methods
  • 459bcae feat: register draft API endpoints
  • 2db50b7 feat: add HTTP handlers for draft endpoints
  • e6bafb2 feat: implement draft manager methods
  • cd8c5ab add ConversationDraft model
  • 0825417 Add database queries for draft CRUD operations
  • cabd7af Add conversation_drafts table for draft reply storage
  • 8b07ab7 Revert unnecessary aliasing of htmlContent and textContent
  • e22dbdf fix: call fetchAiPrompts on component mount and fix formatting
  • f98e59f fix: prevent macro watcher from clearing draft content unintentionally
  • d867611 fix: improve draft persistence and prevent content loss on conversation switching
  • d2f0287 refactor: optimize editor content sync to prevent unnecessary updates
  • bd092c5 fix: prevent saving empty drafts to localStorage
  • f452e02 feat: add draft persistence with eviction policy
  • 41344b8 Merge branch 'main' into fix/reply-draft-persistence
  • 077c7ad Use useStorage to sync draftStore state with localStorage
  • 563d3ab fix: block global Ctrl+B shortcut when typing in text editor
  • 284d421 fix: ReplyBox draft handling by integrating Pinia draft store

New Contributors

  • @trabulium made their first contribution in #196

Full Changelog: https://github....

Read more