v2.4.0
abhinavxd/libredeskv2.4.0Jun 18, 2026by github-actions[bot]
AI Summary
Enhances views with nested filter groups, adds transcript download, customizable From names, and self-assign nudges.
Key Highlights
- Nested filter groups in views
- Conversation transcript download
- Customizable From display name
- Self-assign nudge after replying
- Day separators in message list
New Features
- Nested filters
- Transcript download
- Custom From name
- Send & set status
- Self-assign nudge
- Day separators
- Macro hotkey
- CSAT in sidebar
Full Release Notes
## What's new - **Nested filter groups in views** - build nested AND/OR groups and filter on more fields. - **Conversation transcript download** - download entire conversation transcript. - **Customisable From display name** - set a template for the From name on outgoing emails. - **Send and set status** - split button in the reply box to send and change status in one action. - **Self-assign nudge** - prompts an agent to self-assign after replying to an unassigned conversation. - **Day separators** - the message list now groups messages by day. - **Macro hotkey** - press Ctrl+M to open the macro dialog directly. - **CSAT in the sidebar** - CSAT rating is now directly visible in the sidebar ## What's fixed - Fixes a race where autoassigner would sometimes override the manual assignments of a conversation. ## Upgrade notes - Always take a database backup before upgrading. - Follow the steps [here](https://docs.libredesk.io/getting-started/upgrade). ## Changelog * addd44fa Merge pull request #369 from abhinavxd/improved-views * a629beaf resolve sql builder date filters in the app timezone instead of UTC * a110d38d adjusts padding in filter group builder adds comments with sample payloads to make the filter format easier to understand * 4eb1f8ec Add 2FA for password login to roadmap * 85a20024 keeps filter builder Add group button visible and tidies group controls * 54e30e2e feat: disable 'Add group' in filter builder at the backend group cap * 20b3aec4 fix: restrict contains operator to trigram-indexed fields in view filters * 95f829b3 fix: stop filter builder from mutating form state; emit immutable tree updates * ed0d359c feat: cap total filter conditions and 'in' values in query builder * b296b572 feat: cap filter groups and surface a specific error when exceeded * 6a246124 fix: drop icon from 'Remove group' button so it doesn't draw focus * 496264d5 fix: separate group-remove from per-condition remove in filter builder * 9b31e282 fix: reject empty filter values in query builder; tighten filter tree handling * 3247a3aa feat: support nested AND/OR filter groups and new fields in views * 36c962af Merge pull request #385 from abhinavxd/fix-autoassigner-assignment-race * 15e5c35d renames conversation assignment funcs for clearer intent * 18ae7b95 make updateAssignee private so user assignment can't skip hooks * 1b87433d fixes autoassigner overriding a manual assignment * ef1ef15a Update roadmap with new features and remove WIP items * 14a812d0 Merge pull request #371 from abhinavxd/update-font * d300ce26 feat: show day separators in conversation message list * ae328d3c Update ROADMAP.md * edbc026a Merge pull request #359 from abhinavxd/transcript * f70e4886 refactor: sanitize only the reference number for transcript filename * 2d81703a fix: address review nits on transcript download * b75f138d Merge pull request #375 from abhinavxd/feat/self-assign-nudge-on-reply * 1ce638e9 refactor: extract AssignSelfNudge component, let store own local assignee state * b7564b5d Merge pull request #374 from abhinavxd/feat/from-name-template * f9e04467 feat: nudge agent to self-assign after replying to an unassigned conversation * f987224c perf: avoid DB lookups when building email From name * 1fccfceb feat: add customisable From display name template for outgoing emails * cfed3cfc test: add e2e tests for inbox, team, agent and conversation flows * 2836ad2f Merge pull request #373 from aditya2r/feat/unified-send-and-close-ticket-action * ed95b910 refactor tidy reply box send button imports and dead code * 90ceece0 fix apply status update after send confirmation dialogs. * bf228113 fix chevron color * b679fc21 feat: add "Send and set status" split button to reply box. * 49b42976 update remaining static templates to Instrument Sans * 073d6a51 Merge pull request #365 from vanboom/363-macro-hotkey * 4f4bbbef Fix macro context lost via Ctrl+K and stale macro filter after new conversation * cb081b4b update font family to Instrument Sans * 168add04 Address issue #363, implement CTRL+M hotkey to access the macro dialog directly * 5e9d964a Merge pull request #361 from abhinavxd/revert-349-codex/document-widget-api * da1cf5db Revert "docs: document widget API endpoints" * eb6a195a feat: add conversation transcript download and CSAT in sidebar * 84c0c97f Merge pull request #349 from alan747271363-art/codex/document-widget-api * 9e247c57 Merge pull request #356 from abhinavxd/dependabot/npm_and_yarn/frontend/vitest-4.1.0 * c8413356 Update ROADMAP.md * 3f065439 build(deps-dev): bump vitest from 3.2.2 to 4.1.0 in /frontend * 2c766a4c docs: document widget API endpoints ## What's Changed * build(deps-dev): bump vitest from 3.2.2 to 4.1.0 in /frontend by @dependabot[bot] in https://github.com/abhinavxd/libredesk/pull/356 * docs: document widget API endpoints by @alan747271363-art in https://github.com/abhinavxd/libredesk/pull/349 * Revert "docs: document widget API endpoints" by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/361 * Resolves #363, implement CTRL+M hotkey to access the macro dialog by @vanboom in https://github.com/abhinavxd/libredesk/pull/365 * feat: add "Send and set status" split button to reply box. by @aditya2r in https://github.com/abhinavxd/libredesk/pull/373 * feat: add customisable From display name template for outgoing emails by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/374 * feat: nudge agent to self-assign after replying to an unassigned conversation by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/375 * feat: add conversation transcript download and CSAT in sidebar by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/359 * update font family to Instrument Sans by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/371 * fixes autoassigner overriding a manual assignment by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/385 * feat: support nested AND/OR filter groups and new fields in views by @abhinavxd in https://github.com/abhinavxd/libredesk/pull/369 ## New Contributors * @alan747271363-art made their first contribution in https://github.com/abhinavxd/libredesk/pull/349 * @vanboom made their first contribution in https://github.com/abhinavxd/libredesk/pull/365 * @aditya2r made their first contribution in https://github.com/abhinavxd/libredesk/pull/373 **Full Changelog**: https://github.com/abhinavxd/libredesk/compare/v2.3.1...v2.4.0