7.0.6 (09/07/2026) beta
7.0.5 (03/07/2026)
7.0.4 (22/05/2026)
7.0.3 (15/05/2026)
7.0.2 (09/05/2026)
7.0.1 (06/05/2026)
7.0 (24/04/2026)
- Description:
Mumara Campaigns 7.0.6 Beta focuses on segment reliability and performance at scale. Segment exports, copies, and moves that previously could freeze partway through now recover and resume automatically, and exporting, copying, and moving all run dramatically faster on very large audiences. It also fixes a contact import that could get stuck at 100% and never finish when a spreadsheet cell contained a line break. - Update:
This is a beta build. Select the Beta channel in the Update Wizard (Tools → Update) to install it. A short background migration runs automatically — no manual steps. - Fixed:
- Segment exports no longer get permanently stuck partway through (for example, frozen at 10% on the Exported Files page). If the export is interrupted — by a server restart, a timeout, or running out of memory — an always-on recovery process now detects the stalled export and resumes it from exactly where it stopped, in the same file, with no duplicate or missing rows.
- Copying or moving a segment to a list no longer gets permanently stuck mid-operation. Interrupted copies and moves are detected and resumed automatically, and contacts are never duplicated or skipped on resume — even when no duplicate-handling option is selected.
- Optimization:
- Copying or moving a segment to a list is dramatically faster and no longer strains the server. Contacts are now processed in efficient batches instead of one at a time — a copy that previously crawled for hours while pushing CPU usage to 100% now completes in a fraction of the time, scales to very large audiences, and no longer floods the activity log with a separate entry for every copied contact. Contact timelines still record each contact's arrival in the destination list, and all duplicate-handling options behave exactly as before.
- Very large segment exports (tens of millions of contacts) now run dramatically faster and at a steady pace from start to finish, instead of slowing down progressively the deeper the export gets.
- Viewing a segment's contacts now loads quickly even for very large segments. The contacts page previously could hang for minutes and then fail to load on big statistics-based segments; it now pages through the results efficiently and opens almost instantly.
- Fixed:
- The recipient count shown when sending a broadcast to an activity-based segment (one built on opens, clicks, or sends) is no longer inflated. Previously a contact who had, for example, opened or clicked several times was counted once for every one of those events, so a segment's scheduled-recipient total could be reported as significantly higher than the actual number of contacts, and preparation could mark large numbers of contacts as "Skipped." Each contact is now counted exactly once. Preparing these campaigns is also faster and lighter as a result. Note: the actual send was always correct — every contact received the campaign only once — and no open, click, or other tracking data was ever affected.
- Cancelling a segment export now cleans up properly — the cancelled export's partial file is removed and other queued segment operations continue unaffected.
- Segment operations that were already stuck before this update recover automatically after installing it — no manual intervention needed.
- Contact imports no longer get stuck at 100% and never finish when a spreadsheet cell contains a line break inside it (common in files exported from Excel or Apple Numbers). Previously Mumara counted such a line break as an extra contact, so the total it expected to import was slightly higher than the number of real contacts and the import could never reach completion — even though every contact had actually been imported. Imports now count contacts the same way they are added, so the total is always accurate and the import finishes cleanly, with every valid contact imported exactly as before.
7.0.5 (03/07/2026)
- Description:
Mumara Campaigns 7.0.5 is a substantial reliability, deliverability, and usability release. It hardens sending against transient SMTP failures and problem recipients so campaigns keep flowing, fixes large segment campaigns that could stall during preparation, surfaces stuck campaigns to their owners, adds a DMARC helper to sending domains, introduces a new in-app changelog experience (see what's new before you update — including for add-ons), broadens localization, and fixes a range of interface and setup issues. - Update:
Use the in-app Update Wizard (Tools → Update). A short background migration runs automatically — no manual steps. PHP 8.4+ is required. - Enhancement:
- Sending nodes now tolerate transient SMTP connection hiccups instead of deactivating on the first failure. A retry threshold and time window keep healthy nodes in rotation, briefly-offline nodes rejoin automatically, and a new per-campaign node health view shows which nodes are degraded or offline and their rejoin status.
- Fixed:
- A single problem recipient no longer pauses an entire Amazon SES campaign. Address-level rejections (such as an invalid domain, or an address containing whitespace or control characters) are now logged and skipped, the recipient is passed over, and the sending node stays active instead of system-pausing the whole campaign.
- Enhancement:
- Added an optional hourly sending-rate limit per sending node, so you can pace delivery to each provider's expectations.
- Fixed:
- Exporting a sending node no longer fails with a "File not found" error, and the Sending Node page now shows the full error message instead of truncated text.
- Large segment-based campaigns no longer get stuck at "Preparing (0%)". Preparation now streams reliably through very large audiences instead of stalling.
- Campaigns no longer get stranded in a "scheduling" state when preparation runs out of memory or times out. An always-on recovery process detects and releases stuck preparations automatically.
- Enhancement:
- Stuck campaigns are now surfaced to their owners with clear actions, so a stalled send no longer sits unnoticed.
- The Sending Domain page now includes a DMARC record section to help you publish and verify DMARC alongside SPF and DKIM.
- A new in-app changelog lets you read what's included in an update before installing it — for Mumara Campaigns (with a dedicated view when you choose the Beta channel) and for individual add-ons via a "What's New" link on the Add-ons page.
- Fixed:
- Installing an add-on no longer leaves its pages unreachable until a manual cache clear — add-on install, enable, and disable now refresh automatically, with new maintenance commands for managing add-ons.
- Enhancement:
- Added Google Analytics add-on support, including UTM campaign tagging that carries through to evergreen campaigns.
- Broadened localization across the app — synchronized language bundles, localized previously hard-coded text, translated the new DMARC sections into every supported language, and ensured the login and guest screens follow your configured default language.
- Fixed:
- The installation wizard's "Verify License" step no longer fails with an "Unexpected token" error caused by stray output.
- The "when a contact unsubscribes" automation trigger now fires reliably instead of silently never running.
- Cancelling a segment export now removes it completely, so cancelled exports no longer linger on the Exported Files page, and the "Download Sample File" link on the sending-node import screen now downloads correctly.
- Resolved several interface issues — overlapping text on the Sending Overview chart, layout glitches on the ESP Callback Logs and Bounce Rule pages, the text-area size in the Spintax editor, an overlapping sending-domains drop-down on the add/edit Package screen, and low-contrast background text.
- Exporting content no longer leaves behind stray, publicly-accessible folders under your storage directory.
- Optimization:
- Updated third-party dependencies.
7.0.4 (22/05/2026)
- Description:
Mumara Campaigns 7.0.4 is a small patch release on top of 7.0.3. It restores Dynamic Content tag creation, fixes Trigger-tab settings sometimes not taking effect after clicking Save, and resolves three related issues that were preventing the 'When a contact opens an email' and 'When a contact clicks a link' automation triggers from firing reliably — especially on setups that use a masked tracking domain. - Update:
Use the in-app Update Wizard (Tools → Update). No schema changes, no manual steps. PHP 8.4+ is still required. - Fixed:
- Restored Dynamic Content tag creation. Clicking Save on a new or edited Dynamic Content tag no longer returns a server error — tag creation, editing, and the corresponding activity log entry all work as before.
- Trigger-tab settings (Timeline Settings, Automation Settings) now persist immediately when you click Save. On installations that route background work through the database queue, these saves could previously be deferred and not land in time for a page refresh; the values are now written synchronously as part of the Save click, regardless of which queue driver is configured.
- 'When a contact opens an email' and 'When a contact clicks a link' automation triggers now fire reliably. Three independent issues were combining to make these triggers unreliable: tracking metadata was being lost on masked (CNAME) tracking domains, opens and clicks generated by triggers / drip groups / admin notifications / Send Email actions weren't carrying the same metadata as broadcast sends, and a timing race was skipping the very first open after a send. All three are resolved — automations begin matching opens and clicks correctly the moment the update is installed, with no re-configuration required.
7.0.3 (15/05/2026)
- Description:
Mumara Campaigns 7.0.3 is a focused patch release on top of 7.0.2. It dramatically speeds up campaign preparation for large multi-list sends, fixes a segment-broadcast bug that was silently dropping a portion of intended recipients, repairs a long-standing issue with triggers that update custom fields, makes the 'has been sent' status on contacts accurately reflect actual deliveries, replaces the browser's generic error screen with a clear in-app message when a recipient clicks a broken link, and adds helpful diagnostics when the database backup tool can't find its dependencies. - Update:
Use the in-app Update Wizard (Tools -> Update). A short background migration runs automatically to install a new deduplication index on the schedule log — no manual steps required. PHP 8.4+ is still required. - Enhancement:
- Renamed the campaign-scheduling 'Skip duplicates' option to 'Double-check duplicates' and turned it off by default. Duplicate recipients are now removed automatically during preparation; this toggle becomes an opt-in extra safety check for users who want a second-pass scan, at the cost of slower preparation. Help text on the screen explains the trade-off.
- Added a diagnostic panel to the Database Backup screen that shows exactly why a backup couldn't start when the server is missing or blocking its database export tools — including which user PHP is running as, whether system command execution is allowed, and which install paths were checked. The backup engine now also recognizes MariaDB's backup tool as an alternative to the standard one, so installs that ship MariaDB no longer need extra setup.
- Optimization:
- Campaign preparation for large multi-list sends is dramatically faster. Preparation that previously could take many hours now completes in a fraction of the time. Duplicate recipients across overlapping lists are now removed at the moment they're written to the schedule, instead of being filtered by a slower scan that ran on top of every list.
- The 'has been sent' status on contacts now accurately reflects who actually received a message. Previously, this flag was switched on for every contact in a target list the moment a campaign started preparing — including hard-bounced, suppressed, and unsubscribed contacts who would never receive the email. The flag is now flipped per recipient at the moment of successful delivery, so segment filters based on 'never sent to' or 'has been sent' return correct results.
- Fixed:
- Fixed a bug in segment-based broadcast preparation that was silently dropping a portion of the intended recipients, with no warning shown. Every matching contact is now correctly included.
- Fixed trigger actions that update a custom field on a contact silently doing nothing when the contact didn't yet have a value stored for that field. Triggers such as 'set engaged = clicked when subscriber clicks a link' reported as running but were never actually saving the value for first-time matches. The value now writes correctly whether or not a previous value existed.
- Fixed broken click-tracker links — typically caused by an empty merge tag inside a hyperlink — showing the browser's generic 'this page isn't working' error to recipients. The click handler now detects the broken destination, logs the click for diagnosis, and serves a clear in-app message ('This link is no longer valid') so the recipient understands what happened and the sender can identify which contact's data needs attention.
7.0.2 (09/05/2026)
- Description:
Mumara Campaigns 7.0.2 is a focused patch release on top of 7.0.1. It improves how Mumara handles bad SMTPs — they're detected sooner, recover automatically when the server is healthy again, and no longer get stuck offline. Trigger sending now runs on the same queue worker as broadcasts, the event-processing cron is protected against overlapping runs, and the dashboard now shows abbreviated numbers with the full value on hover. - Update:
Use the in-app Update Wizard (Tools → Update). No schema changes, no manual steps. PHP 8.4+ is still required. - Enhancement:
- Added a Show More / Show Less toggle to trigger detail rows so the list stays compact by default and expands only when extra information is needed.
- Trigger sending now runs on the same queue worker as broadcasts, making dispatch more predictable and easier to scale.
- Drip Group emails now skip SMTPs that have been auto-marked inactive, matching the way broadcasts already work.
- Dashboard top stats and the Sending Statistics chart now display abbreviated numbers (e.g. 1.2M) with the full number visible on hover.
- Optimization:
- Bad SMTPs are now consistently marked inactive on every real send-failure path across broadcasts, drip groups, and triggers — no more cases where a failing SMTP keeps being retried.
- Broken email content (bad HTML, unrenderable templates) no longer takes the SMTP server offline — Mumara now treats content issues as email-level problems and keeps the SMTP active.
- SMTPs marked inactive by the drip and trigger flows now recover automatically once the SMTP is healthy again, so SMTPs no longer get stuck offline.
- Campaigns paused by the system because their SMTP went down now resume automatically once the SMTP comes back online — no manual restart needed.
- Triggers now skip dead SMTPs upfront and unwedge stuck send attempts that previously could block subsequent sends.
- Prevented overlapping runs of the event-processing cron so each run completes cleanly without contention.
- Number rounding on the dashboard is now consistent at the boundary — values like 999.999 million round up to 1B instead of showing 1000M.
- Fixed:
- Fixed an internal decryption issue that was leaving some auto-inactive SMTPs stuck offline even after the issue resolved.
- Fixed the auto-recover cleanup so it only touches entries it created and no longer interferes with unrelated entries from other features.
- Fixed a layout glitch in the Running Processes box on the dashboard.
- Fixed a dashboard number-formatting conflict with the gauge library that was affecting certain stat widgets.
- Updated phpseclib from 3.0.51 to 3.0.52 for SFTP/SSH security and stability improvements.
7.0.1 (06/05/2026)
- Description:
Mumara Campaigns 7.0.1 is a stabilization release on top of 7.0. It strengthens the trigger engine, fixes several segmentation and dynamic-content edge cases reported after the 7.0 rollout, repairs a few PHP 8.4 issues on the admin dashboard, and adds a handful of quality-of-life improvements — List-Unsubscribe headers for Drip Groups, a Stable/Beta/Specific channel selector in the update wizard, and updated Help Article buttons across the app. - Update:
Use the in-app Update Wizard (Tools → Update). The new channel selector lets you stay on Stable, opt into Beta, or jump to a specific version. PHP 8.4+ is still required. - Enhancement:
- Made trigger processing stable and resumable — triggers now iterate subscribers using a forward cursor, so long-running trigger runs can recover cleanly from worker restarts and never re-process the same subscriber twice.
- Added List-Unsubscribe header support for Drip Groups, with a master toggle and separate options for the unsubscribe link and mailto address — matching the scheduled-campaign behavior.
- Added a Stable / Beta / Specific Version channel selector to the update wizard, with live version badges, an Unavailable state when no beta is published, and a channel-aware Begin Update button.
- Migrated all Help Article links to the new docs.mumara.com documentation site, with each button deep-linked to the exact section relevant to the screen you're on.
- Added Help Article buttons to pages that previously didn't have them — Add-ons, DB Check, Authentication Logs, Bounce Rules, PHP Info, Languages, AI Settings, AI Builder, My Profile, Security, Drip Groups list, broadcast templates, and failed jobs.
- Reworked Dynamic Content Tags with a cleaner Single/All return mode, replacing the legacy storage format while keeping existing tags working without manual changes.
- Rebuilt the dynamic-content saving flow for broadcasts, drips, and web forms so per-tag previews regenerate more reliably and without redundant work.
- Improved the dynamic-tag conversion command with options to rebuild a single tag or skip specified tags, and to repair only missing previews instead of regenerating everything.
- Optimization:
- Email previews are no longer compiled twice when a new broadcast, drip, or web form is created — saving a new record now does the work once instead of duplicating it.
- The 'rebuild missing previews' check now verifies the full set of preview files (HTML, text, and subject) instead of only the HTML file, so partial caches are detected and repaired correctly.
- Hardened API rate limiting so each API token gets its own throttle bucket, instead of falling back to the wrong identifier on certain requests.
- Empty API tokens are now treated as 'no token' instead of being accepted as a string, preventing false-positive authentications.
- Fixed the Split Test create/edit page hanging on installations with large subscriber tables — the page now loads instantly by removing dead database queries that the screen never used.
- Cleaned up legacy dynamic-content routing and unused logic to reduce maintenance overhead.
- Fixed:
- Fixed a fatal error on the admin dashboard under PHP 8.4 caused by a missing license attributes record — the dashboard now handles the missing row gracefully and self-heals it on next license check, with no extra remote calls.
- Fixed a segmentation bug where 'does not contain' with an empty/comma-only value silently excluded every subscriber — empty value lists are now correctly treated as no-op filters.
- Fixed custom-field filters 'does not contain' and 'is not' silently dropping subscribers who had no value stored for the field — these subscribers are now correctly included in the matching set.
- Fixed segment recount ignoring the per-user cron interval and always falling back to a daily run — the configured cadence is now respected.
- Fixed silent failures during preview compilation for autoresponders and web forms — errors now appear in laravel.log so storage/permission issues are visible in production.
- Fixed the login page styling regression introduced in 7.0.
- Fixed the AI menu icon and the Drip Groups card border on the default theme.
- Updated phpseclib from 3.0.50 to 3.0.51 for SFTP/SSH security and stability improvements.
- Hardened the beta-version lookup so a 404 HTML page from the update server can no longer be mistakenly treated as a valid version number.
7.0 (24/04/2026)
- Description:
Mumara Campaigns 7.0 is the largest release in the product's history, shipped over 50+ development branches. It brings Mumara onto Laravel 12 and PHP 8.4+, introduces Mumara AI and the Automations addon, ships a new V2 REST API, rewrites the campaign sending engine, and overhauls broadcasts, drips, contacts import, the D&D email builder, DNS lookup, and the update flow. - Important:
Manual updates are not supported for 7.0 — use the built-in Update Wizard (Tools → Update) or the command-line updater. PHP must be upgraded to 8.4 before running the updater. If anything goes wrong, contact your Mumara team member. - Enhancement:
- Upgraded framework to Laravel 12 and language runtime to PHP 8.4+ (with 8.3 and 8.5 also supported).
- Consolidated outgoing mail transport to Symfony Mailer; removed SwiftMailer and bundled legacy PHPMailer.
- Introduced Mumara AI — conversational AI email generation with three tiers (Fast, Balanced, Advanced).
- Added AI multi-turn conversations with live preview and one-click push to broadcasts.
- Added AI-powered generation of subject, pre-header, and text body content for broadcasts.
- Added Builder AI Chat — embedded conversational AI inside the D&D email builder that intelligently appends content without overwriting existing components.
- Added Drip Campaign AI for generating content for full drip sequences.
- Added image upload, royalty-free image search, and remote image download to the AI Builder.
- Added AI credits system with always-visible balance, in-app purchasing, package-level allocation, and per-user tracking.
- Added conversation history and per-conversation management (delete, clear) for AI chats.
- Added personalization toggle per AI conversation.
- Added dedicated AI Settings page with modular permissions for AI Chat in Broadcasts, D&D Builder, Drip Campaigns, and AI Assistants.
- Mumara Toolbox services (AI, DNS Lookup, Blacklist Check) now consume tokens managed in the billing panel and linked to your license key. Default monthly credits are included with your plan — see licensing terms for details.
- Added the Automations addon — visual drag-and-drop workflow builder for event-based email sequences with conditional branching and state-machine execution.
- Added V2 REST API with 16 resource categories, bearer-token-only authentication, page/per_page pagination, and standardized response envelopes.
- Added batch operations (bulk create/delete) to the V2 API.
- Added full webhook infrastructure to V2 API with signed deliveries, test endpoint, and auto-disable after consecutive failures.
- Added User Management endpoints to V2 API (create, suspend, unsuspend, change package, change password).
- Added Bounce Management endpoints to V2 API for mailboxes and rules.
- Added Sending Domain DNS-record inspection and verification endpoints to V2 API.
- Added per-user rate limiting using the authenticated user model in the V2 API.
- Introduced intelligent resource management — imports, sending, bounce processing, and trigger evaluation now auto-gauge throughput based on server CPU, memory, and database capacity.
- Rewrote the campaign sending engine with atomic task claiming to prevent duplicate sends under concurrent worker load.
- Added stuck-campaign recovery — campaigns hung in 'scheduling' state are detected and reset automatically.
- Added responsive email toggle per campaign with automatic viewport/meta tag injection and builder-aware handling.
- Rebuilt broadcast creation flow with tabbed layout (Details, Content, Settings, Preview), live preview, and AI assistance.
- Rebuilt drip/autoresponder creation flow with modal creation, tabbed editor (Details, Content, Interval, Preview), and draft status.
- Added live preview with device switcher (desktop/tablet/mobile) and personalization preview against a specific subscriber.
- Added D&D builder quick-preview modal for checking email rendering without exiting the editor.
- Added dynamic template picker with proper admin/user template visibility and improved template gallery UI.
- Added support for the 'Advanced Broadcast Builder' add-on with access-control logic.
- Rebuilt contacts import pipeline with self-tuning throughput that auto-gauges speed based on server resources.
- Added CSV data preview during import column mapping.
- Added pre-flight server validation (e.g., local_infile support) with actionable error messages before starting imports.
- Added integrity-hashed finalization and detailed activity logging for imports.
- Added dynamic download links for duplicate and invalid rows after import.
- Rebuilt Rocket Import with consolidated slice handling, robust finalization, and faster duplicate detection.
- Added Merge List functionality to combine multiple contact lists into one.
- Added Split List functionality to break a list into smaller lists by count or percentage.
- Added list deduplication with multilingual support.
- Added 'Lists Limit' field on package creation/editing for package-level restrictions.
- Rebuilt the drag-and-drop email builder with a Mumara-branded theme, Save & Exit workflow, and reliable Ctrl+S handling inside the builder iframe.
- Added expanded style panel and dynamic settings panel for email styling and canvas configuration.
- Added responsive devices toolbar (desktop/tablet/mobile) and hover-based module preview to the builder.
- Added pre-designed email module library (hero sections, feature grids, CTAs, testimonials, footers, and more).
- Added searchable Variable Picker for merge-tag and dynamic-content insertion in broadcasts and web forms.
- Replaced CKEditor with Mumara's in-house editor for more reliable inline content editing.
- Added remote image downloading to the media library.
- Redesigned attachments UI with validated uploads against configured allowed extensions.
- Replaced native browser confirmations with SweetAlert2 across the application.
- Added unsaved-changes alert on general settings tabs.
- Modernized the dashboard with interactive stat cards replacing legacy gauges.
- Redesigned Login and Reset Password screens with dynamic branding support.
- Redesigned the Two-Factor Authentication (2FA) UI with improved setup and verification flow and SVG data-URI fallback.
- Replaced arcanedev log-viewer with Opcodes log-viewer for a modernized logs UI.
- Added Glass theme (feature-complete; staged for a future release once QA completes).
- Restructured storage to standards-based layout — migration handled automatically during upgrade.
- Set Mumara Toolbox as the default DNS lookup provider; Dig and Google DNS remain available.
- Added AJAX-driven verification with spinner fail-safes for DNS records and tracking redirects.
- Added TXT record ownership verification for sending domains with fallback logic.
- Added graceful timeouts to DNS lookups to prevent page hangs.
- Improved DKIM key generation with consolidated logic and custom OpenSSL configuration support.
- Added configurable SMTP SSL options — self-signed cert allowance, peer verification, and peer name verification.
- Added initial SendGrid integration.
- Automated Amazon SNS subscription confirmation for bounce/complaint notifications.
- Added List-Unsubscribe header support for SMTP2GO and SendEmail ESPs.
- Redesigned sending node create/edit screen with dynamic field visibility based on node type.
- Added placeholder and helper text for the 'From Email' field and unified send-email alert styles.
- Display bounce email addresses by display name instead of IMAP/POP3 username.
- Rebuilt Google reCAPTCHA integration for web forms.
- Migrated web form images and thumbnails to per-user storage for better tenant isolation.
- Redesigned web form create/update screens with consistent styling and padded empty states.
- Enabled all 18 bundled languages out of the box (Hindi and Swedish added).
- Added AI-related translations and fully localized AI UI strings.
- Replaced hundreds of hardcoded strings with translatable equivalents across views.
- Added extensive localization updates for Mailgun, AWS SES, and other ESP configurations.
- Added in-app documentation system integrated into the admin panel.
- Added spintax support in From Name and From Email fields for varied sender identities per recipient.
- Added base-tag injection in emails for correct relative-URL resolution.
- Added automatic conversion of relative image paths to absolute URLs in emails.
- Added skipped-details breakdown with CSV download and modal showing exact reasons emails were skipped.
- Added 'Unique Subscribers' filter to the segmentation builder.
- Added custom date-field filters: 'is today', 'day of month', and 'month of year'.
- Added live statistics mode with auto-refresh and real-time KPI updates.
- Replaced status badges with compact status dots in campaign statistics.
- Added admin visibility in trigger sorting so admins can sort across all triggers regardless of ownership.
- Added authorization validation to the dynamic-tag deletion flow.
- Added context-aware routing helper for admin vs user panels.
- Added deprecation warnings on the addon details screen for retired add-ons.
- Added public-asset symlinks for addons, created automatically on enable and during updates.
- Modernized the in-app updater with a clearer step-by-step flow and automatic PHP binary resolution.
- Added pre-setup installation checks that fail fast with actionable messages.
- Added automatic environment configuration migration during upgrade — no manual .env edits required.
- Added versioned delete-manifest for handling files that should be removed during upgrades.
- Added multi-select segments via checkboxes in the broadcast schedule step with live subscriber counts and 'skip unconfirmed' toggle.
- Added content validation for broadcasts and dynamic content to warn about common mistakes before scheduling.
- Added smarter sender option logic with fail-safes for missing configurations.
- Added thread count clamping to package maximum in scheduling and evergreen views.
- Added 'number_format_short' helper for consistent numeric formatting across the UI.
- Added a new countries config file with canonical country names and ISO codes.
- Optimization:
- Added atomic task claiming to the campaign scheduler to prevent duplicate execution under concurrent worker loads.
- Added composite database indexes on campaign_schedule_logs for major speedups on scheduling and trigger-based lookups.
- Database-driven skipped-details replaces the slower file-scan exclusion processing.
- Optimized duplicate subscriber deletion for better performance on large lists.
- Reworked CPU/RAM monitoring for better dashboard performance.
- Background command execution now resolves the correct PHP CLI binary under non-CLI (FPM/CGI) environments.
- Refactored event and trigger processing for better duplicate handling and error resilience.
- Consolidated mail transport code path to Symfony Mailer only; removed runtime transport conditionals.
- Simplified campaign controller by removing legacy Builder addon complexity and PHPMailer/Swift setup.
- Refactored TemplateController for dynamic user/admin template directory resolution.
- Consolidated DKIM key generation logic into a single class.
- Migrated inline segmentation styles to a dedicated segment-builder stylesheet.
- Removed the RebuildSideMenu command and its JSON logic.
- Removed legacy SwiftMailer, bundled PHPMailer library, unused RssClass, and obsolete jobs from the codebase.
- Removed L5-Swagger in favor of native OpenAPI schemas.
- Rate limiting in the API throttle middleware now uses the authenticated user model instead of request tokens.
- Audited and normalized responsive behavior across every page, widget, and form element.
- Data tables now have consistent empty-state padding, centered alignment, and unified filter UI across the application.
- Icon-prefixed save, submit, and add buttons across every view for improved visual scanning.
- Maintenance command now processes all pending lists with simplified cleanup logic.
- IMAP error/alert stacks drained during bounce processing to prevent log pollution and JSON corruption.
- Stripped leading/trailing spaces from passwords before encryption to prevent login issues caused by pasted whitespace.
- Refactored AdminPanel integration logic for better error handling and activation checks.
- Refactored API v2 endpoints and resource classes for consistency.
- Unified filter UI globally — consistent sizing, padding, hover effects, and dropdown styles.
- Normalized broadcast and campaign views for translatable strings and improved AI integration.
- Refactored scheduling commands to enhance reliability and remove delays.
- Refactored storage handling to use new processing_path and commit_to_storage helpers.
- Clamped thread count to the maximum allowed in scheduling and evergreen views.
- Normalized legacy Builder type 3 campaigns to the new D&D builder; auto-marked Builder and BuilderJs addons as deprecated.
- Renamed the bounce processor command to 'bounce
rocessing' with updated references across scheduler and docs. - Standardized the agent queue naming for consistency across scheduling, queue operations, and middleware.
- Fixed:
- Fixed form auto-submission issues and resolved Laravel route collisions in .htaccess.
- Fixed the Campaign Schedule Preview button for all campaign types.
- Fixed stale import_cancel flag that could silently abort new imports.
- Fixed missing recursive directory creation that caused nested template copies to fail.
- Fixed storage paths for admin templates that were missing the app/public segment.
- Fixed email header validation and logging for invalid custom headers.
- Fixed exception handling during tag rule decoding.
- Fixed improper profile image path handling in UserController.
- Fixed Web Forms API permission parent/child assignment.
- Fixed Ctrl+S handling inside the email builder iframe.
- Fixed email preview rendering issues in the Drag & Drop builder.
- Fixed AJAX retry handling for JSON parsing in the segmentation view.
- Fixed tracking domain override handling and PHP binary resolution.
- Fixed SSL certificate issues in DNS lookup on WAMP and restrictive server environments by switching to cURL with tuned timeouts.
- Fixed FTP save logic to persist all selections, including 'None'.
- Fixed SFTP logic to retain the remote vendor directory during uploads.
- Fixed SFTP autoloader registration so dependencies resolve reliably after vendor directory deletion.
- Fixed margin-left value for centered positioning in template styles.
- Fixed navigation item layout for mobile responsiveness.
- Fixed broadcast border color and switches alignment.
- Fixed active session info and device details hiding on mobile screens.
- Fixed segments and broadcast UI conflicts.
- Fixed the Glass theme sidebar active-menu color to use the brand color.
- Fixed conditional validation for masked_domain_id based on tr_domain in Mandrill and SendInBlue modules.
- Fixed Evergreen campaign preview in certain edge cases.
- Fixed asset path formatting issues in Blade templates.
- Fixed JSON parsing resilience in AJAX views with proper retry handling.
- Fixed multiple language strings for web form and general error messages across locales.
- Fixed duplicate placeholder image files and reorganized the directory structure.
- Fixed tab switching behavior in general settings with an unsaved-changes SweetAlert2 prompt.
- Fixed CPU/RAM gauge handling and optimized performance monitoring.
- Fixed database query for unique subscribers filter in segmentation.
- Fixed incorrect behavior where toggle-based credit balance load caused UI visibility issues in AI settings.
- Fixed outbound URL redirection and removed unused navigation links.
- Fixed redundant options in custom date field dropdowns after adding new filter types.
- Fixed the drip-create modal group handling in the autoresponder view.
- Fixed the sender option logic in schedule views with proper fail-safes.
- Fixed campaign-schedule-logs duplicate check logic with proper indexing.
- Fixed cosmetic issues and minor UI polish across the application.
Last edited:




