github abhinavxd/libredesk v2.9.0-rc.10

pre-release4 hours ago

Railway

If you are using Railway.com please read this important announcement about moving postgres data to volume.

What's new

  • Widget language from the host page - set language in the widget settings or call Libredesk.setLanguage() to switch it.

    Example

    Set the inbox language to automatic detection, then add language to your existing widget settings:

    <script>
      window.LibredeskSettings = {
        baseURL: 'https://support.example.com',
        inboxID: 'YOUR_INBOX_UUID',
        language: 'de-DE'
      };
    </script>
    <script async src="https://support.example.com/widget.js"></script>

    After the widget initializes, switch languages when the visitor changes your website's language:

    window.Libredesk.setLanguage('fr-FR');
  • Earlier messages in email templates - use {{ .PreviousMessages }} in outgoing email templates to quote messages the contact already saw.

    Example to add to your outgoing email template
    {{ if .PreviousMessages }}
      <div style="margin-top: 28px; padding-top: 20px; border-top: 1px solid #ddd;">
        <div style="margin-bottom: 16px; font-size: 13px; color: #888;">Previous messages</div>
        {{ range .PreviousMessages }}
          <blockquote style="margin: 0 0 20px; padding: 0 0 0 14px; border-left: 2px solid #ddd;">
            <div style="margin-bottom: 6px; font-size: 12px; line-height: 20px; color: #888;">
              On {{ .CreatedAt.Format "02 Jan 2006 at 15:04 MST" }},
              {{ if .SenderName }}{{ .SenderName }}{{ else }}{{ .SenderEmail }}{{ end }} wrote:
            </div>
            <div style="font-size: 14px; line-height: 24px; color: #444; overflow-wrap: anywhere;">
              {{ .Content }}
            </div>
          </blockquote>
        {{ end }}
      </div>
    {{ end }}
  • Conversation sidebar section reordering - drag sidebar sections into the order you want.\

  • Updated translations

What's fixed

  • Replies to emails with no subject no longer get rejected by strict SMTP servers and instead use the reference number as the subject.
  • Reply notifications to agents now arrive reliably.
  • Many other quality of life fixes and improvements.

Upgrade notes

  • Always take a database backup before upgrading.
  • Docker deployments should use the v2.9.0-rc.10 image tag.
  • Follow the steps here.

Changelog

  • fe64652 Merge pull request #717 from abhinavxd/dependabot/go_modules/github.com/klauspost/compress-1.18.7
  • e370711 Merge pull request #718 from abhinavxd/dependabot/npm_and_yarn/frontend/vite-6.4.4
  • 3d2860b Bump vite from 6.4.3 to 6.4.4 in /frontend
  • 8ffe47c Bump github.com/klauspost/compress from 1.18.0 to 1.18.7
  • 004a586 Merge pull request #716 from abhinavxd/fix/admin-table-layout
  • 7c97789 use stable IDs for admin table rows
  • 2a31ef9 Merge pull request #712 from abhinavxd/qa/2.9.0-release
  • 1616e4b improve admin table layout
  • 30de4ca fix draft recipient test expectations
  • c9fb6c1 normalize default template types on update
  • 62fe692 allow repeated replies in outgoing email templates
  • 61ff12b explain outgoing template validation
  • 64b4424 cover SMTP authentication and revert campaign date changes
  • da8ee16 revert recipient persistence in reply drafts
  • 32d923d add a default layout for outgoing email templates
  • a32c2a8 reject duplicate replies when saving email templates
  • a328183 Merge remote-tracking branch 'origin/main' into qa/2.9.0-release
  • fbe3aea Merge pull request #714 from maximilize/feat/sidebar-all-conversations
  • 877ecb9 sidebar: list all of the contact's conversations, highlight the current one
  • 7235288 isolate contacts in reply minimize tests
  • 10ee92b remember the minimized reply box state
  • 4a3dd0e add regression coverage for release fixes
  • 4490525 Merge remote-tracking branch 'origin/main' into qa/2.9.0-release
  • 95fed41 Merge pull request #711 from jleroy/i18n/update-2026-10-19
  • c6a2142 fix campaign stats loading and update release tests
  • 7fee393 fix issues found during release testing
  • 4921685 Merge pull request #710 from abhinavxd/email-quoted-history
  • 7d919ec show attachment label in reply notifications when the reply is only quoted text
  • 43353a2 Update translations [2026-10-19]
  • 36b46f1 skip quote-only replies in email history and check only the template for PreviousMessages
  • 703f38f quote only messages the contact already saw in email history
  • 114c80a add IsIncoming to quoted messages and escape sender fields
  • d3acea7 add earlier messages as a variable in the outgoing email template
  • aecc5a1 Merge pull request #709 from sneha-thyagarajan/fix/empty-subject-fallback
  • ed07747 run gofmt on conversation models
  • 8e9a2aa Merge pull request #708 from abhinavxd/capitalize-email-derived-name
  • 9be2894 fix: fall back to reference number as email subject for empty-subject conversations
  • a425c51 capitalize contact names taken from the email address
  • 754991a Merge pull request #703 from abhinavxd/fix-participant-reply-notifications
  • 3bc87d3 Merge pull request #668 from sunyinghao5438/widget-host-language
  • dee7ee6 keep Help aligned with the widget language fallback
  • c4723ea fix widget language fallback and Help loading after language changes
  • 13bfa07 merge main into the widget language branch
  • a58bdf6 fix language matching in the widget and help center
  • 94cf376 remove the icon from the conversation empty state
  • 1cda457 share email template variables and add notification greetings
  • 8fc653c keep previous conversation links in the current list
  • b490be4 update sidebar test for embedded assignee details
  • 14d49a7 include assignee details in conversation responses
  • d1d99be unassign the conversation in the participant reply delivery test
  • d4fd025 fix actions landing on the wrong conversation after a switch
  • b47e1f5 preserve participant tracking while filtering reply notifications
  • 703504f batch agent lookups during assignment bursts
  • 839128f keep alerts working when email templates fail
  • 0a13ff5 fix reply notifications and repeated agent lookups
  • 8a31476 Merge pull request #687 from abhinavxd/polish-app-interactions
  • 8a230a9 fix automation form tests after the layout changes
  • d25dcd1 fix UI consistency and simplify the design guide
  • d340e01 keep older message loading from shifting the thread
  • b7c15f2 make conversation list pagination less prominent
  • a05ce89 center help center loading indicators
  • 986329b fix conversation tag spacing and align list indicators
  • 2fa0420 guide Juno toward concise and grounded answers
  • b29d29f refine conversation layouts and Juno interactions
  • bd5bfbc switch smtppool from fork to upstream v2.3.1
  • 8a1d563 load older messages when the thread cannot scroll
  • 8ad09b3 add conversation sidebar section reordering
  • 07ec173 align app layouts and refine conversation controls
  • 04421a9 unify admin controls and loading feedback
  • 7f64b1e preserve sidebar width when resizing the window
  • 883705d fix sidebar state and refine table and toast controls
  • 5379473 fix panel resizing and style avatar fallbacks
  • ee70f32 Merge remote-tracking branch 'origin/main' into polish-app-interactions
  • a2c2fea update smtppool fork to latest fold-long-headers commit
  • 7aa4ee6 merge main into the UI polish branch
  • d6554de simplify search filters and improve loading feedback
  • cee88dd Merge pull request #691 from abhinavxd/fix-unicode-text-truncation
  • 3932e37 Merge pull request #587 from pmslava/email-template-inbox
  • 9cc499c fix Unicode text truncation
  • e499ea1 Merge pull request #689 from abhinavxd/parameterize-migration-version
  • 3531342 Merge pull request #690 from abhinavxd/raise-macro-content-limit
  • 9e2ae96 raise macro content limit to 100000 characters
  • b36207b use a parameterized query to record migration versions
  • d03d054 Merge remote-tracking branch 'origin/main' into polish-app-interactions
  • 286ffd6 fix article width and previews after language changes
  • 01bb0d9 Merge pull request #678 from fredrikblau/fix/674-gemini-thought-signature
  • f8f02dc merge main and connect reply labels to their controls
  • de62fb9 Merge pull request #684 from samuelsogbesan/feat/mobile-macro-picker
  • f87d99f polish app layouts and fix UI regressions
  • e7e2cce Merge pull request #686 from abhinavxd/fix-notification-body-length
  • 44dc3f0 fix reply toolbar overflow on small screens
  • e56fe5d trim long notification text so bell notifications save
  • b9e009b fix(frontend): expose macros on mobile
  • 6d9f551 preserve tool call extra_content so Gemini thought signatures round-trip
  • f300f33 clear the help error when the language changes
  • 2d76cb1 keep the latest widget language and reset help when it changes
  • 475bf69 let the host page choose the live chat widget language
  • f65ac06 conversation: expose the inbox to the outgoing email template

What's Changed (Auto generated)

  • trim long notification text so bell notifications save by @abhinavxd in #686
  • fix(frontend): expose macros on mobile by @samuelsogbesan in #684
  • Preserve tool call extra_content so Gemini thought signatures round-trip by @fredrikblau in #678
  • raise macro content limit to 100000 characters by @abhinavxd in #690
  • use a parameterized query to record migration versions by @abhinavxd in #689
  • Conversation: expose the inbox to the outgoing email template by @pmslava in #587
  • fix Unicode text truncation by @abhinavxd in #691
  • polish app layouts and fix UI regressions by @abhinavxd in #687
  • Live chat widget: let the host page choose the UI language by @sunyinghao5438 in #668
  • fix reply notifications and repeated agent lookups by @abhinavxd in #703
  • capitalize contact names taken from the email address by @abhinavxd in #708
  • Bug fix: fall back to reference number as subject for empty-subject email conversations by @sneha-thyagarajan in #709
  • add earlier messages as a variable in the outgoing email template by @abhinavxd in #710
  • Update translations [2026-10-19] by @jleroy in #711
  • sidebar: list all of the contact's conversations, highlight the current one by @maximilize in #714
  • fix issues found during release testing by @abhinavxd in #712
  • improve admin table layout by @abhinavxd in #716
  • Bump vite from 6.4.3 to 6.4.4 in /frontend by @dependabot[bot] in #718
  • Bump github.com/klauspost/compress from 1.18.0 to 1.18.7 by @dependabot[bot] in #717

New Contributors

Full Changelog: v2.9.0-rc.9...v2.9.0-rc.10

Don't miss a new libredesk release

NewReleases is sending notifications on new releases.