4.88v
1. Notable changes since 4.87v
- Offline reasons: introduced configurable offline reasons with the new `lh_abstract_offline_reason` model and CRUD interface; operators can select a reason (e.g. "Lunch", "Meeting") with an icon when setting themselves offline, persisted on `lh_users` and `lh_users_online_session`; offline reasons are displayed in online-hours statistics and user-box menus with a redesigned status control layout; a new `offlinereasons` permission controls access to this feature.
- Forms module overhaul: added comprehensive search and filtering for collected forms, including department filter, chat operator filter, date range, creator filter, and chat-time search; introduced field change tracking for internal forms — when an operator edits a previously submitted form, field history (old/new values and modifier) is logged; added translation support and improved template variable management for forms; refactored module navigation with proper permission checks and removed deprecated index page; enhanced embed code generation with access control; clearing chat attributes when deleting collected form data now properly reverts associated chat variables and additional data entries.
- Bot enhancements: added secondary translations group support for bots, allowing an optional second translations group in bot configuration with proper validation and item retrieval from both groups; added "Trigger on bot skip" option to proactive invitations, executing triggers when a visitor skips the bot; fixed missing `last_msg_id` update after sending invitation messages.
- Security hardening: refactored CAPTCHA to use browser fingerprinting (combining multiple HTTP headers) and SHA-256 hashing for improved security across chat validation, FAQ, voting, and widget modules; added more detailed CAPTCHA error messages; added `ignoreactivityglobal` permission allowing individual users to opt out of activity tracking; replaced redirect with proper permission-denied page for abstract list views; added `from_address` emptiness check to prevent mailbox sync failures on null sender addresses.
- Performance and stability: improved MySQL reconnect logic by removing stale connection caching and properly resetting reconnect counters; guarded compiled config caching behind database connection checks to prevent warmup/CLI failures; wrapped `setinactive.php` in a transaction with row locking and added `syncAndLock()` to `setoffline.php` to prevent race conditions on online status updates; added `resetSession()` methods across persistent session helpers for clearing cached ezcPersistentSession instances; added server info panel showing address, name, port, software, and uptime in audit configuration.
- Admin custom fields: refactored processing to prevent duplicate field values by moving admin fields after JS variable processing and tracking processed identifiers; admin custom fields with `uempty` show condition are now hidden from returning visitors who already have a non-default nickname set; added support for original author re-modifying fields.
- UI and UX: updated Bootstrap badge classes from v4 to v5 (`badge-*` to `bg-*`) across GroupChat, operators template, and mailing import templates; improved assignment configuration UX; translated theme before survey rendering in `fill` and `fillwidget` modules; adjusted naming for less confusion; added server and user timestamps to audit config and login pages.
- Miscellaneous: fixed #2400; added support for BOM UTF format files; added avatar caching; added search attribute support for extensions; fixed installer config validation with clearer error messages; refactored `addmsgadmin.php` input validation to handle missing input gracefully; handled edge database reconnect cases; fixed CAPTCHA time drift validation; ensured dynamic property support.
2. Summary
- This release introduces a major new feature — configurable offline reasons — allowing operators to specify why they are offline with visual indicators across the UI and statistics.
- The forms module receives a comprehensive upgrade with advanced search/filtering, field change tracking, translation support, and improved permission handling.
- Bot capabilities expand with secondary translations groups and trigger-on-skip functionality.
- Security is strengthened through CAPTCHA fingerprinting, SHA-256 hashing, and multiple permission/validation improvements.
- Performance and stability are enhanced with improved MySQL reconnect handling, race condition fixes, and guarded config caching.
For update just follow standard update procedure. For manual update it's update_354.sql
**Full Changelog**: https://github.com/LiveHelperChat/livehelperchat/compare/4.87v...4.88v
1. Notable changes since 4.86v
- Performance and caching: improved dashboard online-operator retrieval with better user-data fetching and caching; prefill departments cache for faster lookups; ensure static cache version is respected across the application even without extensions; optimized chat archive range fetching with cached range checks before database queries, plus methods for matching ranges and verifying chat existence in archives with proper overlap handling.
- Performance statistics: added total offline time tracking to agent statistics widgets with new help modal explaining offline time; updated translations, tooltip descriptions, and column spans in the agent statistics table for improved clarity; enhanced operator performance access checks to include write permissions.
- Webhooks and events: added support for unread-message flow in webhook conditions with checkboxes enabling unread-message handling for admin messages; updated backend logic across message types and enhanced chat update logic to reflect unread-message states for operators; dropped redundant `chat_id` dependency.
- Mail conversation: enhanced Mail Conversation API and search functionality; added proper API error handling.
- Bot: refactored bot condition evaluation to streamline logic in action buttons and text triggers; updated type casting for threshold values in bot action commands.
- ChatML export: significantly improved ChatML export logic and configuration; fixed properties in exported ChatML; resolved edge cases and format inconsistencies; export script improvements.
- REST API: added support for REST file captions with configurable skip extensions (#2394).
- Template and variable system: added support for `{item:path}` syntax enabling nested attribute extraction in output formatting; host values now support replaceable variables; fixed item replacement logic for proper handling of non-string values in templates.
- Debug and diagnostics: improved debug invitation logic with detailed checks for message-seen status, timeout handling, and reshown conditions; enhanced debug message view UX, API scroll behavior, spacing, and col-span variables; logs now include exception URLs; added logging for changed user groups.
- Widget and online visitors: dedicated online visitors page now always shows visitors even when the widget is minimized.
- Bug fixes: fixed #2391 and #2395; updated checkbox labels for clarity; trimmed whitespace from messages before saving for data consistency; updated message retrieval limits across components for better performance and consistency; avoided throwing SQL errors in edge cases.
2. Summary
- This release strengthens performance through improved caching strategies (departments, archive ranges, static cache, operator data) and extends performance statistics with offline-time tracking.
- Webhook conditions gain unread-message-flow support, bot condition evaluation is streamlined, and the ChatML export pipeline receives a comprehensive overhaul.
- Template variables now support nested `{item:path}` extraction, debug/invitation diagnostics are enhanced, and several stability issues are resolved.
For update just follow standard update procedure. For manual update it's update_353.sql
**Full Changelog**: ;https://github.com/LiveHelperChat/livehelperchat/compare/4.86v...4.87v
1. Notable changes since 4.85v
- Performance statistics dashboard widgets: added new `dep_performance` and `op_performance` dashboard widgets that display real-time aggregated statistics for departments and operators respectively; widgets support configurable columns (chats received, chats answered, wait time, first/average response time, thumbs up/down, online/offline time) with configurable position and update intervals; new settings UI under Statistics for both department and operator performance configuration.
- Performance stats cron aggregator: new cron job (`cron/stats/performance`) aggregates department and operator performance data into the new `lh_abstract_performance` table; supports forced regeneration via `-p force`; configurable update interval and day range; cron respects sql_mode and local timezone settings.
- New `Performance` and `PerformanceWidgets` models: `Performance` model stores/retrieves serialized performance snapshots; `PerformanceWidgets` provides formatted data for dashboard sync, including per-department and per-operator stats with access-control filtering.
- Security and authentication hardening: improved password verification logic in REST API validator; added constant-time response delay in forgot-password flow to mitigate timing attacks; updated hashing methods for login and password update flows; implemented expired hash cleanup (deleteExpiredHashes) called from setRemindHash, remindpassword, and forgotpassword modules; removed LDAP authentication components; updated autologin with nonce support and improved hash validation; masked error messages for users without access to unhidden emails in send and reply APIs.
- Bot and event system: enhanced chat variable update handling and event dispatching; ignored default trigger message when a trigger is started manually; added support for invisible arguments in bot triggers; added event dispatch for transfer-to-human action; added event argument for custom is-online status checks.
- Editor and operator UI: added switch-editor option in active chat tab and a new permission for operators to toggle between new and old editors; added icons and colors to the transfer window; increased subject modal window width; fixed form loading scroll event; avoided null being displayed before a chat starts.
- Export and reports: enhanced export functionality with ChatML support and UI improvements; fixed compatibility with non-strict sql_mode for certain reports.
- Bug fixes: fixed matching rule search; minor fixes including string conversion and typo corrections.
2. Summary
- This release introduces a new real-time performance dashboard with configurable department and operator widgets backed by a cron aggregator and a dedicated `lh_abstract_performance` table.
- Security is hardened across authentication flows: stronger hashing, timing-safe responses, expired hash cleanup, autologin nonce support, and LDAP removal.
- Operator productivity is improved with a switchable editor, richer transfer UI, and expanded bot/event capabilities. Export and report compatibility are also addressed.
For update just follow standard update procedure. For manual update it's update_352.sql
**Full Changelog**: ;https://github.com/LiveHelperChat/livehelperchat/compare/4.85v...4.86v
1. Notable changes since 4.84v
- Security and access control: tightened chat operation permissions by requiring proper read/write access checks; additional permission hardening was applied across related flows.
- CSP and policy handling: completed CSP parser integration and follow-up fixes, including policy exposure hardening and parser/library alignment.
- Voice messaging and widget UX: improved voice-message flow and UX, updated voice app behavior, kept cursor focus on desktop, and added a widget-theme option to disable voice messages.
- Translation workflow: improved automatic translation reliability, added DeepL model/formality options, enhanced metadata/error handling, and refined start/stop and old-message translation flows.
- Analytics and timing metrics: improved chat duration/response-time calculations, participant timing accounting, and operator duration output in reports.
- REST API and diagnostics: added optional custom REST API messages, improved exception visibility/traceback details, and enabled direct log viewing from back office.
- Invitations and online-hours logic: enhanced invitation alias/profile handling and improved overlapping online-hours period calculations.
- UI/translations/dependencies: updated translations, refreshed JS dependencies (including html-react-parser migration), and applied multiple package/security updates.
- Misc fixes: delivered issue-specific fixes and regressions cleanup (including #2378, #2379, #2382), plus release workflow updates.
2. Summary
- This release focuses on security hardening, CSP maturity, and operator productivity, while also improving voice messaging UX and translation automation quality.
- It also improves chat/mail timing metrics and diagnostics, with additional stability updates across UI, dependencies, and release automation.
For update just follow standard update procedure. No new DB migration script required for this release.
**Full Changelog**: ;https://github.com/LiveHelperChat/livehelperchat/compare/4.84v...4.85v
Notable changes since 4.82v
processEvent in both chat and mail conversation continuous webhook classes; new validation conditions notempty and in_list; improved error handling and logging; webhook form updated with chat ID testing and improved button styling; test pattern module enhanced with webhook ID validation.screenAttributesUpdate height/width calculations for better responsiveness across screen sizes; wrapper now passes its version to the API; fixed proper termination in wrapper source.Summary
For update just follow standard update procedure. For manual update it's update_350.sql
https://github.com/LiveHelperChat/livehelperchat/compare/4.82v...4.83v