5.68.8.20260827110549
- [Feature] Add "Mark as Spam" tool to MCP server (#26102)
- [Feature] Add Gemini as an AI provider for AI Agents and Answer Suggestion/Assistant (#25984)
- [Feature] TicketAssistant: Anthropic support for answer assistant and answer suggestion (#25504)
- [Feature] Introduce Svelte 5 frontend umbrella to progressively replace the GWT agent panel (#25324)
- [Feature] Option to hide the AI Summary in tickets (#25169)
- [Feature] Voice call recording transcription (speech-to-text) (#24154)
- [Feature] Option to send automatic reply to tickets from WhatsApp channel (#20183)
- [Feature] Prohibit Export to CSV with a custom role (#25489)
- [Security] Security improvements (#26250)(#25902)(#25762)(#25759)(#21146)
- [Improvement] Agent panel RPCs fire an unconditional la_users status UPDATE on every request (#26289)
- [Improvement] Add TCP keepalive to event-router's aiohttp connector for long-running handler requests (#26274)
- [Improvement] Cache language metadata reads (RegionalSettingsResolver / LanguageProvider::getByCode) (#26189)
- [Improvement] visitor-tracker: crawler pattern list is stale, misses current AI-crawler generation (#25897)
- [Improvement] Add agents and knowledgebases count to CRM-facing account-usage-stats endpoint (#25808)
- [Improvement] Show device-type icons in the agent voice-status menu (#25758)
- [Improvement]
AI Agent Run Detailsdialog window design improvements (#25567) - [Improvement] Add
UsedandRemainingcolumns to theAI Budgetsscreen (#25541) - [Improvement] Add an 8 hour postpone preset (#25473)
- [Improvement] Password-reset rate-limit decline should be an in-app event log (admin-visible), not an infra-layer WARN (#25314)
- [Improvement] Add new GPT 5.6 models for OpenAI AI provider (#25298)
- [Improvement] AI Agents: Indicate if an AI agent is actively used (last used / linked rules) or inactive (#25260)
- [Improvement] API v4 docs: show full paths (with module segment) instead of relative ones (#25202)
- [Improvement] Make Slack OAuth base URL configurable per environment (#24964)
- [Improvement] Answer Suggestion: let the AI fetch ticket context via MCP instead of embedding it in the prompt (#24537)
- [Improvement] Voice: Add Recording domain model for call recording segments (#24189)
- [Improvement] Remove popup tooltip behavior from note in ticket timeline (#24005)
- [Improvement] Implement new display model for email message (#21667)
- [Improvement] Update WhatsApp integration to support WhatsApp usernames (#20741)
- [Improvement] Add a support of button widget from FlowHunt to LA chat window (#20296)
- [Fix] Fix misleading Display method label in "Display external info in ticket" (#26352)
- [Fix] Corrected an MCP tool permission scope mismatch (#26194)
- [Fix] WhatsApp inbound webhook request crashes when the sender's phone number isn't a valid international format (#26193)
- [Fix] Fixed a performance issue when sending mail to large recipient lists (#26191)
- [Fix] Fixed unnecessary write amplification in language version sync (#26178)
- [Fix] Fixed a write-loop bug in language metadata synchronization (#26177)
- [Fix] Contact widget grid fails with SQL syntax error when pagination window no longer fits the current result count (#26091)
- [Fix] Duplicate
is waiting in queueelement (#26069) - [Fix] WhatsApp recipient picker lists non-E.164 phone contacts that ticket creation then rejects (#26068)
- [Fix] WhatsApp (360dialog) inbound messages are silently dropped when the sender's phone number is missing from the message data (#26062)
- [Fix] Customer portal ticket page returns HTTP 500 when the ticket's assigned agent has no AgentAllocator service record (#26061)
- [Fix] Legacy numeric ticket codes rejected by strict TicketCode validation, breaks opening affected tickets in agent panel (#26037)
- [Fix] System no longer shows the name of the agent to whom the incoming chat is ringing (#25977)
- [Fix] Attachment download fails for WhatsApp media messages sent without a caption (#25969)
- [Fix] QuGwtClientCodegenV4 emits primitive int getters for nullable: true integer schema properties (#25948)
- [Fix] Agent's MCP integration availability without AI work feature (#25942)
- [Fix] Added a missing authorization check in an MCP tool (#25885)
- [Fix] get_next_list treats an explicit timestamp of 0 as omitted (#25879)
- [Fix] visitor-tracker README documents env vars and routes that do not exist (#25878)
- [Fix] visitor-tracker: crawler traffic inflates button impression counters (#25869)
- [Fix] Fixed an access-control gap in an MCP tool (#25868)
- [Fix] visitor-tracker: crawler detection never fires; missing Es-Cluster-Id header returns 500 (#25865)
- [Fix] TicketQueue: NULL due_timestamp on legacy queue rows breaks loadNextTicketFromQueue (#25852)
- [Fix] Unbuildable Facebook ticket fails TicketFallbackAuthorProvider and poisons its ReindexTicketsJob batch forever (no dead-letter) (#25826)
- [Fix] Fixed a slow-query performance issue in chat lookup (#25825)
- [Fix] Pop-out chat returns HTTP 500 when department is offline — PopoutChatController does not handle chat_unavailable response (#25815)
- [Fix] UnexpectedValueException: "Failed to create HtmlText" — empty legacy email text makes ticket permanently unopenable (#25814)
- [Fix] Chat didn't finished properly (#25804)
- [Fix] Gpf_Auth_TwoFactor::getQrCodeImage() throws "already enabled" in prod — client re-requests QR after a verification-token error (#25795)
- [Fix] IntelliJ shows "phpstan-modules.neon does not exist" warning on every project open (#25791)
- [Fix] Background ticket-search job crashes repeatedly for a tenant due to a missing/deleted message record (#25776)
- [Fix] The email template is loaded with a 12 seconds delay in tickets created from a chat button (#25767)
- [Fix] CRM plugin - account user login should log in to custom domain if set (#25761)
- [Fix]
.gitattributescatch-all text eol=lf causesgradle-wrapper.jarandgradlew.batto always show as modified (#25748) - [Fix] Missing tooltips for customer and ticket sections within the right side panel (#25730)
- [Fix] AI Agent Run report doesn't render "Waiting" status (#25707)
- [Fix]
Finished chatsin theAgent reportshows only chats closed by the agent (#25704) - [Fix] Cannot create second agent in AppSumo Free account (#25696)
- [Fix] Fixed an authentication regression in internal export tooling (#25691)
- [Fix] Time Rules page shows "Data error" for a tenant with a corrupted rule order value (#25688)
- [Fix] Material theme: "Add device" button missing right margin in Edit profile > Calls (#25687)
- [Fix] Weekly scheduler period-edit popup has transparent background (#25686)
- [Fix] Forward button fails on email tickets rendered via TicketMessage envelope ("The ticket does not contain forwarded message") (#25685)
- [Fix] LiveAgent stopped notifying CRM about changes (#25684)
- [Fix] Connecting Microsoft shared mailbox via OAuth as outgoing email account times out (~30s) when tenant has thousands of addresses (#25636)
- [Fix] AI Agent Runs report shows two confusing near-duplicate columns "AI Agents" / "AI Agent" for the same single agent (#25565)
- [Fix] Shopify plugin never checks HTTP status codes, so error responses are treated as empty data (#25538)
- [Fix] Ticket history tab shows incorrect timestamps (#25526)
- [Fix] Error about mandatory field not displayed for
AI agentandBudgetlistbox fields in rule configuration (#25506) - [Fix] Zendesk agent import: consistent existing-agent resolution (#25495)
- [Fix] Internal notes in chat tickets intermittently render with white background instead of yellow (#25387)
- [Fix] HtmlQuoteParser::findGmailQuote() regex fails to match Gmail's "gmail_quote gmail_quote_container" class format (#25322)
- [Fix] Contact-widget/KB preview 500s ("Failed to create preview copy") when a widget attribute references a deleted file link (#25319)
- [Fix] Mass-delete of Facebook tickets aborts with "Failed to execute mass action." when the FB page is inactive (channel notify on delete not best-effort) (#25318)
- [Fix] UnhandledException: "Text cannot be empty" — empty agent-to-agent chat message throws unhandled InvalidArgumentException (#25315)
- [Fix] Agent panel shows "network outage" error during version upgrade instead of maintenance notification (#25305)
- [Fix] Double arrow icon in listbox in
Edit modelandEdit chatbotdialog windows (#25304) - [Fix] Error: "Invalid role [] was created" logged at ERROR from client for empty role id (#25297)
- [Fix] Bad design of `You've been inactive for a longer period of time…" warning message (#25277)
- [Fix] Fixed a performance issue with large page-size requests on the contacts API (#25236)
- [Fix]
Inactivity timefield description update (#25067) - [Fix] TicketTransferError on attended call transfer — TICKET_TRANSFER missing from CallParticipationVoter.PARTICIPATION_PRIVILEGES (#24638)
- [Fix] Backend plugin engine lacks isConfigured() guard — extension point handlers invoked for unconfigured plugins (#24603)
- [Fix] Inbound mail with a 4-byte (CJK) address: sender dropped / recipient skipped — choose a strategy (followup #23767) (#24483)
- [Fix] WhatsApp: "Failed to process content message" when phone number exists without WhatsApp flag (#24099)
- [Fix] 500 error when accessing deleted KB article in embedded KB widget view (#23760)
- [Fix] Rename Running AI work state to Submitted (#23506)
- [Fix] KnowledgeBasePreviewController logs ERROR for missing preview id on /preview type=css (#23338)
- [Fix] Email reply fails with generic error when draft is deleted concurrently (#22846)
- [Fix] ComputeUserSlotReportsHourlyTask fails with unique constraint on re-execution — not idempotent (#22692)
- [Performance] Optimized a full-scan query in the ticket-purge unused-users task (#25250)
- [Other] Refactorings and other fixes (#26247)(#26065)(#25957)(#25866)(#25829)(#25770)(#25702)(#25632)(#25609)(#25599)(#25576)(#25560)(#25370)(#25239)(#24564)(#23836)