Recently Published Versions

  • [Improvement] Enforce AI Agent limit on creation (#27682)
  • [Fix] Reopened ticket shows stale status in agent panel after its tab was closed (#27646)
  • [Other] Refactorings and other fixes (#23296)
  • [Fix] Chat handoff from chatbot to human agent leaves ticket permanently stuck in "Chatting" with no chat and no error logged (#26992)
  • [Security] Security improvement (#27550)
  • [Fix] Download all attachments from an email message is missing after the email envelope migration (#27186)
  • [Fix] Chat handoff from chatbot to human agent leaves ticket permanently stuck in "Chatting" with no chat and no error logged (#26992)
  • [Fix] Creating a ticket via API fails when the sending agent's email matches an outgoing account address (#26813)
  • [Fix] Changing a ticket owner is not possible in some scenarios (#25681)
  • [Fix] Setting "State of missed chats" is still ignored (#27505)
  • [Fix] Message translation of HTML emails fails because the request payload sends non-ASCII as \u escapes (#27684)
  • [Fix] Plain-text part of outgoing emails contains raw CSS from
  • [Fix] Ticket tab of another agent's chat you were viewing keeps reappearing after the page refresh (#27062)
  • [Fix] Agent availability report shows "Data error" when filtered by agent (#27311)
  • [Other] Refactorings and other fixes (#20931)(#23541)(#24794)(#26867)(#26869)(#27687)(#27708)
  • [Security] Security improvement (#27550)
  • [Fix] Download all attachments from an email message is missing after the email envelope migration (#27186)
  • [Fix] Customer-ended chat is left in running conversations when a call runs on the ticket, ticket then stuck in "Chatting" (#27698)
  • [Fix] Downloaded call recording file has no extension, preventing local playback (#27150)
  • [Other] Refactorings and other fixes (#23277)(#25805)
  • [Feature] Widget: show typing indicator while a chat AI operator takes its turn (#27453)
  • [Feature] ICU MessageFormat support for translations (server, templates, GWT client) (#27418)
  • [Feature] Voice: live call transcription with participant attribution (#27078)
  • [Feature] Add reply_via_instagram_dm AI agent tool for the Instagram Direct Messages channel (#26806)
  • [Feature] Message translation — Stage 1: on-demand inbound message translation (MessageContentTranslation module) (#25515)
  • [Security] Security improvements (#27355)
  • [Improvement] AI provider "Supports" list is outdated (merge Answer Composer/Improver, add Ticket Summary and Message translation) (#27581)
  • [Improvement] Message translation configuration page does not follow the design and the Ticket summary activation pattern (#27558)
  • [Improvement] Message translation: ticket view UI does not match the design (translation switch, Translate all) (#27554)
  • [Improvement] AI operator keeps answering a chat while a human agent is present; leave on TransferAccepted instead of in the transfer tool (#27511)
  • [Improvement] Skip design gallery on widget creation and apply a default (#27246)
  • [Improvement] Chat action panel: "Take over from AI" button to remove the AI operator without transfer/end (#26831)
  • [Improvement] Trim RESPONSE_PUBLIC agent projection returned to visitors via La_Rpc_User.load (#26373)
  • [Improvement] Implement capped mailbox picker (list + fallback) for MS OAuth shared mailbox (incoming and outgoing) (#26088)
  • [Improvement] Add the option to unselect the requester when changing the ticket owner (#25361)
  • [Fix] Message translation config entry missing under Configuration > AI because the entitlement flag is stored as 'Y' but read only as 'A' (#27543)
  • [Fix] CrawlerGuard empty 200 response gets cached by Varnish and served to real visitors (chat button script empty) (#27540)
  • [Fix] Creating a contact group with an emoji in its name fails (#27308)
  • [Fix] GWT Translation.addParam() puts a value into the wrong placeholder when an earlier argument contains %s (#27281)
  • [Fix] Downloaded call recording file has no extension, preventing local playback (#27150)
  • [Fix] Agent panel conversation stops rendering (and never recovers) if the AgentMessageGroupFactory code-split fragment fails to load (#26752)
  • [Fix] Widget loader has no dedupe/teardown: re-running the embed snippet creates a new widget + iframes each time, causing sustained request loops in SPA embeds (#26400)
  • [Fix] GWT Translation.addParam has no positional placeholder support, so a reordered translation silently swaps arguments (#26330)
  • [Fix] Lang::_replaceArgs throws an uncaught ValueError on a message containing a bare % (#26324)
  • [Fix] Embedded chat widget cut off by mobile dynamic address bar (#26227)
  • [Fix] The context variable - contains - X rule is not executed if the value has non-English language characters (#25588)
  • [Fix] Calls History CSV export fails for large call histories (#23419)
  • [Other] Refactorings and other fixes (#27477)(#27426)(#27354)