What's new
- Delete private notes.
- Phone number in pre-chat form - Collect a phone number in the pre-chat form, or pass one using the JWT token.
- Live chat widget preview - Preview the widget while configuring it, making it easy to customize.
- Improved drafts - Drafts are now stored per reply type: private note and reply.
What's fixed
- Assignment notifications are marked as read in the UI when you act on them.
- Many other quality-of-life fixes and improvements.
Upgrade notes
- Always take a database backup before upgrading.
- Follow the steps here.
Changelog
- e6a1c90 Merge pull request #417 from abhinavxd/prechat-remove-button-type
- 1bb21db fix prechat field removal on enter key in livechat inbox form
- 4949ad1 Merge pull request #415 from abhinavxd/split-name-util
- b949d70 use mailbox local part as contact name fallback when display name is empty
- cfc032f add SplitName util and use it to parse email contact names
- 9cb104b Update ROADMAP.md
- ddaf848 Merge pull request #413 from abhinavxd/jwt-phone-number-comment
- 7754a77 clarify phone_number comment in JWT payload example
- 0b05ca8 Merge pull request #412 from abhinavxd/widget-draft-phone-shadow-fixes
- 6cb8bce prefill country code for optional phone fields too in pre-chat form
- b46b84e Merge pull request #411 from abhinavxd/mis-fixes
- 9c6a6c2 fix widget draft attachments, prechat phone default, and shadow tweaks
- 2e20360 fix duplicate contact creation on transient error during ext_id enrichment
- e38facf Merge pull request #410 from abhinavxd/convo-list-sla-draft-fixes
- 9ce7fed make SLA badges react to prop changes and hide draft label on open conversation
- 0fa00cf Merge pull request #408 from abhinavxd/jwt-phone-country-code
- 526d6ab Merge pull request #409 from abhinavxd/assign-nudge-permission-check
- 57481de Merge pull request #407 from abhinavxd/draft-attachment-preview
- fc71d30 accept phone country code in livechat JWT auth
- 99492cc hide assign-to-me nudge when agent lacks assignee permission
- 2de3038 show attachment type in draft preview when there is no draft text
- e3d5d46 Merge pull request #406 from abhinavxd/livechat-phone-field-and-ui-fixes
- 8a8d372 use one phone field in livechat JWT and fix phone validation
- e56e3d3 use distinct icons for online, away and offline status dots
- 8f658f2 add livechat pre-chat phone field and fix default launcher logo
- e9a7269 Merge pull request #404 from abhinavxd/harden-contact-create-and-drop-away-on-login
- 9b5326c normalize email before validating create conversation request
- 4dabc84 harden contact create, drop set-away-on-login, make status dots colorblind-safe
- 4020829 Merge pull request #403 from abhinavxd/add-novalidate-remaining-forms
- 3bf95ae add novalidate to remaining vee-validate forms
- 08ed665 Merge pull request #402 from abhinavxd/fix-livechat-form-native-validation
- d6f44a3 fix livechat form submit silently failing on invalid url/number fields
- 2bfe242 Merge pull request #261 from josephsellers/delete-private-notes
- 60ebefe fix edge cases in private note soft-delete
- 43b43a8 Merge branch 'main' into delete-private-notes
- d696b53 soft-delete private notes with a tombstone instead of removing them
- 5a826b9 Merge pull request #399 from abhinavxd/reply-box-per-type-drafts
- adeb4ee swap private-note delete to a hover 3-dot menu with confirm dialog
- 9e0c1f3 Merge branch 'main' into delete-private-notes
- bde6f01 Merge pull request #401 from abhinavxd/fix-dark-highlight-css-leak
- dc882e0 Merge pull request #260 from josephsellers/contact-name-upsert
- 8268221 fix dark-mode mention highlight leaking a yellow background onto every .dark element
- 1d7bc67 stop sent drafts from coming back after a failed or reordered sync
- 186502a open the reply/note tab matching the conversation's last-used draft
- 0ae9232 Merge pull request #400 from ahfoysal/fix-assignment-notification-read
- 27e8efb fix: update assignment notification state in UI
- f4f8db8 Mark assignment notifications read on action
- 8a68ae3 fix flaky reply e2e and stop draft load from wiping in-progress input
- 79b7649 fix attachments and macros leaking across reply and private note drafts
- ee7b829 Merge branch 'main' into reply-box-per-type-drafts
- 3feecf4 Merge pull request #394 from abhinavxd/minor-improvements
- 0949761 fix contrast threshold and cache invalidation order on login
- 0660ae4 Merge pull request #396 from abhinavxd/dependabot/go_modules/golang.org/x/image-0.41.0
- 5166358 move isValidDraftType to bottom of file
- 18027bc fix draft races by making the store the single source of truth
- 6eabd8a build(deps): bump golang.org/x/image from 0.38.0 to 0.41.0
- 82d3ef7 Merge pull request #395 from abhinavxd/dependabot/go_modules/golang.org/x/net-0.55.0
- 57e15d3 build(deps): bump golang.org/x/net from 0.47.0 to 0.55.0
- ec3938c save reply and private note drafts separately per type
- 62a1fc8 add livechat widget preview and misc improvements
- 42a3b3a Merge pull request #391 from abhinavxd/roles-learn-more-link
- 725acf6 Merge pull request #392 from abhinavxd/dependabot/npm_and_yarn/frontend/vite-6.4.3
- a7bcd5e build(deps-dev): bump vite from 6.4.2 to 6.4.3 in /frontend
- 4280a21 Update roadmap with new item and formatting changes
- 3052e2a Update ROADMAP.md
- 8720e37 add learn more link to roles admin page
- 76d00c8 make the contact name upsert actually run for existing contacts
- 406a294 Scope delete-private-message to its conversation (fix IDOR)
- da20825 Add context menu to delete private notes in conversation view
- b699cac Add API endpoint to delete private notes
- 000326b Fix: update contact names on upsert instead of discarding them
What's Changed (Auto-generated)
- build(deps-dev): bump vite from 6.4.2 to 6.4.3 in /frontend by @dependabot[bot] in #392
- add learn more link to roles admin page by @abhinavxd in #391
- build(deps): bump golang.org/x/net from 0.47.0 to 0.55.0 by @dependabot[bot] in #395
- build(deps): bump golang.org/x/image from 0.38.0 to 0.41.0 by @dependabot[bot] in #396
- add livechat widget preview and misc improvements by @abhinavxd in #394
- Mark assignment notifications read on ticket action by @ahfoysal in #400
- Fix: update contact names on upsert instead of discarding them by @josephsellers in #260
- fix dark-mode mention highlight leaking a yellow background by @abhinavxd in #401
- Reply box per type drafts by @abhinavxd in #399
- Add API endpoint to delete private notes by @josephsellers in #261
- fix livechat form submit silently failing on invalid url/number fields by @abhinavxd in #402
- add novalidate to remaining vee-validate forms by @abhinavxd in #403
- Harden contact create, drop set-away-on-login, make status dots color blind safe by @abhinavxd in #404
- Livechat phone field and UI fixes by @abhinavxd in #406
- show attachment type in draft preview when there is no draft text by @abhinavxd in #407
- hide assign-to-me nudge when agent lacks assignee permission by @abhinavxd in #409
- accept phone country code in livechat JWT auth by @abhinavxd in #408
- make SLA badges react to prop changes and hide draft label on open conversation by @abhinavxd in #410
- fix duplicate contact creation on transient error by @abhinavxd in #411
- fix widget draft attachments, prechat phone default, and shadow tweaks by @abhinavxd in #412
- clarify phone_number comment in JWT payload example by @abhinavxd in #413
- add SplitName util and use it to parse email contact names by @abhinavxd in #415
- fix prechat field removal on enter key in livechat inbox form by @abhinavxd in #417
New Contributors
Full Changelog: v2.4.0...v2.5.0