5.67.7.20260723114941
July 23, 2026
Jan Perdoch
[Security] Security improvements (#25269)
[Improvement] Extend get_kb_article MCP tool to support lookup by URL code (#25076)
[Improvement] Unify API v4 response timezone to UTC (#25294)
[Improvement] Danger-zone email/WhatsApp account confirm dialogs use a grey (secondary) confirm button instead of primary (#25129)
[Improvement] Render email-account "Read more" links as plain text links instead of button/link hybrid (#25128)
[Improvement] Make Piping URL copyable in incoming email piping integration (create + edit) (#25127)
[Improvement] Generalize the inline-image placeholder into a reusable reference mechanism (#25096)
[Improvement] Clarify and align the datetime contract for API v4 (docs, input parsing, response timezone) (#25094)
[Improvement] Distinguish Enable/Disable toggle buttons in Customer portal settings (#25039)
[Improvement] Long name is silently truncated when creating a new requester for a ticket (#25035)
[Improvement] Removing of all the actions during editing a rule after change of the main condition (Apply when…) (#23166)
[Improvement] Reorder rule actions and conditions (#20805)
[Fix] PurgeDeletedConversationsTask full-scans qu_la_conversations fleet-wide — regression of #22668's index fix at scale (#25519)
[Fix] UnableToApplyFilterError: TicketReviews report 500s on non-RFC-3339 date filter (CreatedAtFilter) (#25512)
[Fix] Redis Cluster test/dev docker stack announces IPs, breaking per-node commands (#25508)
[Fix] Error thrown when logging audit trail for an agent joining a transferred chat (#25422)
[Fix] Agents cannot log in to customer portal and password reset emails are not generated (#25414)
[Fix] add_note MCP tool always fails with "Not authorized to add note to this ticket" for AI agents (#25401)
[Fix] POST /api/v3/contacts returns silent HTTP 500 (~640/5h) with no application log — observability gap in legacy RestApi path (#25400)
[Fix] Agent report "Finished chats" count is doubled after Chat aggregate migration (#25399)
[Fix] GET /api/v3/chats returns HTTP 500 when status_date_started resolves to a raw Unix epoch for Ringing/Queue chats (#25330)
[Fix] GET /api/v3/tags/{id} always 500s — Class "La_Api_V3_tag" not found (#25329)
[Fix] UnhandledException: agent with empty (non-NULL) email crashes MysqlAgentReader::createAgentFromRow -> breaks agent load & ranking grid (#25317)
[Fix] TicketSummaryAiWorkflowProvider crashes with 500 when referenced FlowHunt AI provider has been deleted (#25313)
[Fix] Chat Buttons "Last display" hover tooltip shows future (#25306)
[Fix] AnswerAssistantConfiguration::isAnyAiProviderConfigured() always returns true — empty() on a Generator is always false (#25300)
[Fix] fix: Customer chat widget keeps rerouting after an agent takes the chat (#25295)
[Fix] MysqlCompatFieldRepository::deleteFieldInTicketWithCodeAndValue() drops its code filter (second where() overwrites the first) (#25271)
[Fix] FieldLoader::getFields() lacks the ticket-existence guard its siblings have -> misleading NotAuthorizedError (#25270)
[Fix] update_5.66.3 / create.sql out of sync + missing online-DDL guard for from_date index (#25256)
[Fix] Chat review/ranking never projected for UUID chats (wrong ItemId type in TicketItemReviewProjector) (#25232)
[Fix] Open in CRM option in the CRM plugin no longer works after update to Angular 21 (#25208)
[Fix] Asterisk 22 regression: callback calls stuck ringing in unbounded retry loop (stub channel reaped -> hold() 404 -> callStop loop) (#25205)
[Fix] Inbound email dropped: mb_convert_encoding() ValueError on unrecognized charset label in From/To header (#25185)
[Fix] Password-notification email fails with "Column: language has invalid value" when KB registered-user has NULL language (#25172)
[Fix] Error: Column: datedue has invalid datetime format in CSV ticket export (legacy zero-datetime values) (#25171)
[Fix] UnhandledMatchError in LegacyStatusSerializer::deserialize() crashes contact-widget grid for tenant u262625 (#25158)
[Fix] Ticket export to HTML 500s (UnhandledSwitchCaseException) for message-envelope groups [type=NT] (#25154)
[Fix] Viber customer notification fails with "missing mandatory field: size" when sending an image attachment (#25152)
[Fix] TokenFetcher::getAccessToken() passes null refresh token to RefreshTokenCrypto::decrypt(), causing FATAL TypeError (#25149)
[Fix] InconsistentDataException: Failed to create Call from row (Unknown call type: S) breaks ES ticket re-indexation (#25136)
[Fix] Excessive header icon in note ticket item added by rule inside call message group (#25133)
[Fix] "Generate new" button drops below API key input on SSO and API v1 config screens (#25131)
[Fix] Email account confirm dialogs: non-primary confirm button and alert-info banner loses its blue background (#25130)
[Fix] "Send" button lacks multi-click protection in some cases (#25108)
[Fix] Feedback button "Contact button" dropdown shows a blank, unselectable icon-only row (#25107)
[Fix] Reply editor is not auto-focused when opening Suggestion / Forum (and social-channel) tickets in the agent panel (#25104)
[Fix] KB Montana theme: "Login with Facebook" button misaligned due to .jumbotron .FacebookButton override (#25103)
[Fix] update_kb_article MCP tool breaks embedded image attachments (404) on body update (#25073)
[Fix] Column 'browser' cannot be null — missing null-guard in Lib_Track::upsertBrowserVisit() (#24962)
[Fix] RestApi_FieldValidityException escapes route catch blocks — client input errors return HTTP 500 instead of 400 (#24959)
[Fix] Ticket history query full-scans qu_la_message_groups (~21.3M rows, up to 205s, 0 rows) for tenant u122611 (#24677)
[Fix] Resolved ticket cannot be closed; auto-close cron loops forever spamming "automatically closed" messages (#24661)
[Fix] Agent avatar not shown in ticket thread messages — __BASE_URL__ placeholder not resolved (#24597)
[Fix] "Reopen Resolved Ticket" setting not enforced server-side in customer portal — customers can bypass it via direct RPC call (#24502)
[Fix] CloseResolvedConversations adds spurious "automatically closed" note every day for tickets that cannot actually be closed (#24397)
[Fix] Postpone ticket rule rejects zero-padded minutes value (e.g. "01") (#24290)
[Fix] GET /api/v3/tickets/{id}/messages returns 500 when a chat attachment has a null file name (#24212)
[Fix] Ticket displays wrong state in agent panel after being resolved or answered (#23764)
[Fix] Stuck chat: rc (running conversation) not cleared in DynamoDB after chat finish (#23759)
[Fix] Slow query in ComputeWorkTime::getUsersStatuses() scans up to 51M rows on large tenants (#23472)
[Fix] SubjectPersister throws when answer has no subject header message — breaks rule execution and ticket loading (#22705)
[Fix] Ticket is not purging after rule is applied (#19546)
[Performance] Time-rule engine MATCH(tags) AGAINST + anti-join scan is ~95% of slow queries on db-08-master-1 (tenant u72113_07ff) (#24976)
[Other] Refactorings and other fixes (#22599)(#25577)(#25543)(#25502)(#25499)(#25488)(#25486)(#25460)(#25457)(#25430)(#25410)(#25392)(#25325)(#25308)(#25289)(#25254)(#25219)(#25188)(#25167)(#25106)(#25083)(#24925)(#24918)(#23253)(#20964)