Getting started
Installation & Setup
Video Tutorials
Administration
Audience Management
Email Marketing
Plug-Ins & Add-Ons
Developers
Advanced
Help
What’s New in v5.7.2
This document represents a cumulative list of all user-facing changes in Octeth v5.7.2. For more information, see our user guide and API documentation.
🎯 Release Highlights
This release represents a major milestone in Octeth’s evolution with significant improvements to performance, reliability, and developer experience:
- 🏷️ Multi-Tag Journey Triggers - Revolutionary support for journeys triggered by multiple tags simultaneously
- 📊 Advanced Campaign Reporting - New admin campaign report page with filtering, velocity metrics, and batch statistics
- ⚡ Performance Optimizations - Comprehensive Redis caching for entities, optimized campaign monitoring APIs
- 🔐 Enhanced Security - SQL injection fixes, XSS prevention, and improved authentication token management
- 🧪 Testing Infrastructure - Complete test database isolation, reusable test traits, and comprehensive API tests
- 📚 Documentation Excellence - API documentation generation system, plugin hook reference, and modular CLI structure
- 🐳 Docker Improvements - Multi-platform builds, HAProxy v3.3.1 upgrade, and improved container management
- 🔧 Developer Experience - Granular MySQL query logging, improved error handling, and enhanced debugging tools
🚀 Major Features
Journey Builder Enhancements
- Multi-Tag Journey Triggers (#1471) - Groundbreaking feature allowing journeys to be triggered when subscribers have multiple specific tags
- Backend support for complex tag-based workflow automation
- Comprehensive validation and normalization for tag trigger parameters
- Performance optimizations using single-query tag validation
- Full test coverage with isolated test database environment
- Journey Trigger Rate Limiting (#1471) - Prevent overwhelming the system with configurable rate limits on journey triggers
- Journey API Enhancements - Bulk operation support for journey enrollment and removal with improved error handling
Campaign & Email Features
- Admin Campaign Report Page (#1470) - Comprehensive new admin interface for campaign analytics
- Advanced filtering capabilities for campaign data
- Real-time velocity and throughput metrics
- Batch statistics and performance monitoring
- Time-filtered counts for granular analysis
- Message-ID Header Storage (#1171) - Store Message-ID headers for email threading and better deliverability tracking
- User-Level Sender Settings (#1433) - Per-user configuration for sender information and email headers/footers
- Campaign Monitoring API Improvements - Enhanced endpoints with velocity, throughput, and batch statistics parameters
- Enhanced Campaign Pause Logic - Improved pause detection and controller-driven pause mechanisms
API & Integration
- API Documentation Generation System (#958) - Automated VitePress-style documentation generation for all API endpoints
- Analyzes endpoint code to generate comprehensive docs
- Integrated into pre-commit workflow for automatic updates
- Structured documentation in
.docs/api/directory - Subscriber Tags API - Complete API support for single and bulk tag creation, assignment, and removal
- Segment Retrieval Optimization - Optional SegmentID filtering for faster segment queries
- Journey Bulk Operations - Enhanced bulk trigger and removal with proper error codes and validation
Testing & Quality Assurance
- Test Database Isolation - Complete separation of test and production databases
- Automatic test database setup and seeding
- HTTP header support for API test database routing (local environment only)
- Reusable test infrastructure with OctethApiTrait
- Comprehensive seeder for test data generation
- Comprehensive API Tests - Extensive test coverage for subscriber, journey, and tag endpoints
- Form Handler Unit Tests - Complete test coverage for FormHandler class validation
- Subscriber State Transition Tests - Detailed testing of subscription/unsubscription workflows
- Multi-Tag Journey Tests - Thorough testing of complex tag-based journey triggers
Documentation & Developer Tools
- Plugin Hook Reference Documentation (#1489) - Comprehensive VitePress-style documentation for all plugin hooks
- CLI Modularization (#1268) - Complete refactor of
cli/octeth.shinto modular, maintainable structure - Release Procedures Documentation - Detailed instructions for changelog generation and release management
- MySQL Query Logging Enhancement - Granular per-request/process query logging for debugging
- Configurable via
LOG_MYSQL_QUERIES_GRANULARenvironment variable - Creates separate log files per request/process for easier analysis
- Unified logging structure across CLI and web contexts
Infrastructure & DevOps
- Multi-Platform Docker Build Support (#1468) - Build and deploy Docker images for multiple architectures
- HAProxy Upgrade (#1439) - Upgraded from v2.2.32 to v3.3.1 with configuration improvements
- JavaScript Build Integration (#1467) - Automated JavaScript build process during installation
- Xdebug Support - Proper Xdebug configuration for all PHP versions with volume mounts
- Docker Compose Override Support - Support for
docker-compose.override.ymlin CLI commands
🐛 Bug Fixes
Critical Security Fixes
- SQL Injection Vulnerability - Fixed SQL injection in a few API endpoints
- XSS Prevention - Enhanced XSS prevention in admin views and controllers
- IP Address Handling - Defensive IP address handling for CLI contexts to prevent undefined variable errors
Campaign & Email Fixes
- Campaign Pause Logic - Allow pausing campaigns when status is 'Ready'
- Duplicate Campaign Event Dispatch (#1315) - Prevent duplicate
Campaign.Interruptionevent dispatch using atomic conditional UPDATE - Campaign Failed Event - Properly dispatch
campaign.failedsystem event on campaign failure - Orphaned Worker Termination - Terminate orphaned delivery workers when campaign is deleted
- Memory Exhaustion Fix - Prevent memory exhaustion when storing campaign recipient domains
- SMTP Error Handling - Improved PHPMailer error handling to always return error messages
- Empty SMTP Error Messages - Add fallback and logging for empty SMTP error messages
- Campaign Delivery Worker Blocking - Prevent delivery workers from blocking on stdout pipe writes
- Async Signal Handling - Enable async signal handling while maintaining PHP 5.6 compatibility
Journey & Workflow Fixes
- Website Event Trigger Support - Support both trigger formats for website event workflows
- Case-Insensitive Trigger Comparison - Use case-insensitive comparison for trigger types
- Disabled Journey Filtering - Filter disabled journeys at SQL level in CheckForJourney methods
- Journey Validation - Comprehensive validation for tag ownership, list IDs, and trigger parameters
- Journey Trigger Format Support - Support for both single and multiple tag trigger formats
Database & Performance Fixes
- SQL Precedence Bug - Resolved SQL precedence bug in RunCriteria OR operator evaluation (#1133, #1134)
- Join Array Detection - Fixed missing join array detection in database MySQL interface
- Redis KEYS Command - Replaced KEYS with SCAN and added error handling for better Redis performance
- Queue Table Existence Caching - Optimize campaign queue operations with cached table existence checks
- MySQL Connection Health Check - Add health check to delivery workers and campaign picker
API & Integration Fixes
- Double JSON Encoding - Fixed double JSON encoding/decoding in OemproOptions usage
- Associative Array Keys - Preserve associative array keys in subscriber activity tracking
- Tag Ownership Validation - Validate tag ownership in tag trigger API endpoints
- 404 Error Handling - Return proper 404 when all journeys not found in bulk operations
- Order Parameter Validation - Comprehensive orderfield/ordertype validation across all API endpoints
Configuration & Environment
- Log File Permissions (#1438) - Resolved log file permission conflicts between Apache (www-data) and root processes
- Set umask 0002 in all Docker entrypoint scripts
- Add umask=002 to all supervisor process configurations
- New
logs:fix-permissionscommand for existing installations - Laravel Log Permissions - Set 0666 permissions on Laravel log files
- XDebug Default Disabled (#1465) - Disable XDebug by default in PHP 5.6 configuration for better performance
- PHP Config Volume Mount - Add PHP config volume mount to oempro_system service
- AuthToken Sync Issues - Multiple fixes for AuthToken regeneration and synchronization
- Password Update AuthToken - Ensure AuthToken regenerates on password changes
Testing & Development
- Test Database Header Check - Security fix: only honor test database header in local environment
- phpdotenv v5 Compatibility - Add phpdotenv v5 compatibility to EnvParser for Laravel test support
- Laravel Test Isolation - Isolate Laravel test environment to resolve phpdotenv conflicts
- Test User Password Fix - Fix missing password update for existing test users in Seeder
- PHP 5.6 Compatibility - Replace PHP 7+ null coalescing operators with PHP 5.6 compatible syntax
Docker & Deployment
- Dockerfile-haproxy USER Root (#1439) - Add USER root directive for package installation
- Docker Buildx Manifest Creation - Use docker buildx imagetools for proper manifest creation
- SendEngine Container Discovery - Dynamic discovery of SendEngine containers in health check
- Sendengine Deploy Glob Pattern - Correct glob pattern to include
.oempro_envin deployment
✨ Enhancements & Improvements
Performance Optimizations
- Redis Entity Caching - Comprehensive Redis caching for themes, delivery servers, user groups, custom fields, and lists
- EntityCache pattern for consistent cache management
- Hybrid batch approach for subscriber counts
- ForceRefresh support for cache invalidation
- Automatic cache invalidation on entity updates
- Campaign Monitoring API Optimization - Optimized campaign monitoring endpoints with auto-interval for velocity calculations
- Batch Status Query Optimization - Improved campaign picker batch status queries with connection health checks
- Composite Index on Journeys (#1434) - Added composite index on (RelUserID, Status) for query performance
- Segment Filtering Optimization - Optional SegmentID filtering for faster segment retrieval
User Experience
- User Header Layout Update - Modernized user header layout to match admin header design
- ReplyTo Fallback Logic - Enhanced ReplyTo fallback logic in email sending process
- Campaign Picker Logging - Improved campaign picker worker logging and error handling
- Worker Signal Handling - Use WorkerLogger in signal handlers for better debugging
- Preview Email Headers - Use default sender domain for preview email headers
- X-Priority-Test Header - Add X-Priority-Test header to preview emails for PowerMTA queue prioritization
Developer Experience
- Request Context Logging - Implement RequestContext for enhanced log tracking and correlation
- CLI Request Context - Add RequestContext initialization for CLI scripts
- Dedicated Journey Worker Logger - Use dedicated journey worker logger instead of Core::GetLogger
- Worker Logger Consolidation - Consolidate delivery worker logging to single file with PID/campaign context
- Configurable Personalization Profiling - Add
PERSONALIZATION_PROFILING_ENABLEDconfig option - Log Level Configuration - Configurable log levels for campaign picker and delivery workers
- Batch Count Performance Logs - Add batch count to query performance logs for debugging
API & Integration
- Subscriber Activity Tracking - Comprehensive subscription/unsubscription activity tracking with IP and date validation
- Error Code Standardization - Unified ErrorCode field in API error responses
- Bulk Operation Support - Enhanced bulk support for subscriber tagging/untagging operations
- Journey API Bulk Handling - Enhanced journey API for efficient bulk operations
- Tag Validation Performance - Optimize tag validation to use single query instead of loops
Testing & Quality
- Reusable Test Traits - Extract test helpers into reusable OctethApiTrait and journey test traits
- Test File Execution - Support for running specific test files in octeth.sh
- Dynamic Test Count - Use dynamic test count in octeth.sh test:run all command
- Test Output Enhancement - Improved test run output with better progress indicators
🧹 Code Cleanup & Maintenance
Major Refactoring Initiatives
- CLI Modularization (#1268) - Complete refactor of
cli/octeth.shinto modular command structure - Separated commands into individual files in
cli/commands/directory - Improved maintainability and testability
- Better code organization and discoverability
- Config Parameter Standardization - Make all config parameters
.envconfigurable with sensible defaults - Subscriber Test Consolidation - Streamlined subscriber tests and unified test suites
- Journey Test Suite Merge - Unified journey test suites and merged journey-events into journey
- Custom Fields Caching Centralization - Centralize custom fields caching in CustomFields class
Code Quality Improvements
- Entity Cache Pattern - Consolidate cached entity classes into reusable EntityCache pattern
- Session Privilege Logic - Extract session privilege logic into reusable method in UserGroups
- Tag/UnTag Validation - Extract Tag/UnTag trigger validation and normalization into helper methods
- Order Parameter Validation - Centralize order parameter validation into FormHandler class
- Custom Fields Retrieval - Centralize custom fields retrieval with owner filtering fix
- Form Handler Refactoring - Enhanced form handling with comprehensive validation
Database & Query Improvements
- Suppression Removal Optimization - Use affected_rows instead of COUNT query for suppression removal
- Autoresponder Array Access - Correct array access in autoresponder removal function
- Table Exists Method - Reorganize tableExists method within MySqlDatabaseInterface
- GetStatusesBulk Location - Relocate GetStatusesBulk() method in campaigns.inc.php
- Seeder Production Methods - Refactor seeder to use production methods for queue table creation
Testing Infrastructure
- Test Isolation Improvements - Improve test isolation by using direct DB cleanup
- Migration Before Seeding - Run migrations before seeder for proper database state
- Test Admin Creation - Add test admin to test database setup
- Seeder Helper Methods - Use existing helpers for seeder methods (createTestList, createTestCampaign, createTestUser)
- Self-Asserting Tests Removal - Remove self-asserting unit tests that provided false confidence
Documentation & Organization
- Release Procedures Documentation - Add release procedures and changelog generation instructions
- Deployment Guide Migration - Move deployment guide to GitHub wiki
- GitHub Content Drafting Workflow - Add workflow rule for drafting GitHub content to /tmp for review
- Logger Naming Cleanup - Cleanup worker logger naming and remove unused variables
Configuration & Environment
- Environment Loading Streamline - Remove environment variable loading fallback from bootstrap file
- Subscriber Parameter Naming - Update parameter names in subscriber state transition tests
- Unsubscription Logic Simplification - Streamline unsubscription logic and parameter handling
- IP Address Handling - Simplify unsubscription IP handling to use Subscribers::getClientIpAddress()
GitHub Workflow & CI/CD
- PR Sync Workflow Fixes - Fix YAML syntax errors and improve token scoping in PR sync workflows
- PR Sync Token Authentication - Use SYNC_TOKEN for git authentication when fetching private upstream
- Automatic PR Sync - Remove conditionals to enable automatic PR sync on pull_request events
- Release Workflow Exclusions (#1424) - Add more exclusions to release workflow
Method Renaming & Clarity
- Campaign Status Update Rename - Rename UpdateCampaignStatusConditionally to UpdateCampaignFieldsIfReasonDiffers for clarity
- Trigger Parameters Normalization - Rename NormalizeTagTriggerParameters to NormalizeTriggerParameters
- Unsubscribe Activity Revert - Revert changes in Unsubscribe addActivity method for stability
Removed Unused Code
- ClickHouse Subscriber Activity Scripts - Remove audit, migration, and rollback scripts (feature not implemented)
- Redundant Migration Files - Remove redundant migration, test, SQL script, and documentation files
- ClickHouse Aggregation Logging - Remove excessive info logging from ClickHouse aggregation
- Unused Variables - Remove unused variables across worker logger implementations
🔧 Developer Experience
New Tools & Commands
- Test Database Setup - New
test:db:setupcommand to create and seed test database - Specific Test File Execution - Run specific test files with octeth.sh
- Regenerate Auth Tokens (#1440) - Extended command to support both users and admins
- Auth Token Regeneration Script - Separate script in
cli/commands/for token management - Logs Fix Permissions - New command to fix log file permissions on existing installations
Logging & Debugging
- Granular MySQL Query Logging - Per-request/per-process MySQL query logging for detailed debugging
- Separate log files for each request/process
- Unified structure across CLI and web contexts
- Configurable via
LOG_MYSQL_QUERIES_GRANULARenvironment variable - Request Context Tracking - Enhanced log tracking with RequestContext for correlation
- Worker Logger Improvements - Dedicated loggers for journey workers, delivery workers, and campaign pickers
- Configurable Log Levels - Environment variable control for campaign delivery and journey worker log levels
- Performance Profiling - Batch count and query performance logging for optimization
Testing Infrastructure
- Reusable Test Traits - OctethApiTrait for consistent API testing patterns
- Test Database Isolation - Complete separation of test and production data
- Comprehensive Seeder - Reusable seeder methods for test data generation
- HTTP Test Database Header - Support for test database routing via HTTP headers (local only)
- Journey Test Helpers - Extract journey test helpers into reusable trait
Documentation
- API Documentation Generation (#958) - Automated VitePress documentation for API endpoints
- Plugin Hook Reference (#1489) - Comprehensive plugin hook documentation system
- Release Procedures - Detailed changelog generation and release instructions
- GitHub Content Drafting - Workflow for drafting PR/issue content to /tmp for review
Configuration Management
- Environment Variable Standardization - All config parameters now
.envconfigurable with defaults - Docker Compose Override - Support for docker-compose.override.yml files
- Test Database Configuration - Separate TEST_MYSQL_* environment variables for test isolation
- Session Lifetime Configuration - Configurable session lifetime via
SESSION_LIFETIME_DAYS
🔄 Migration Notes
Database Migrations
- Composite Index on Journeys - New index on (RelUserID, Status) for performance
- AuthToken Synchronization - Enhanced AuthToken handling for authentication
- Campaign Batch Profiling - Support for campaign batch profiling data retention
Configuration Changes
New Environment Variables:
Updated .oempro_env.example:
- Product version updated to 5.7.2
- New configuration options documented
Docker & Infrastructure
- HAProxy v3.3.1 - Upgrade from v2.2.32 with new configuration
- Multi-Platform Builds - Support for multiple CPU architectures
- Xdebug Configuration - Proper Xdebug setup for all PHP versions
- PHP Config Volumes - New volume mounts for PHP configuration
Breaking Changes
⚠️ None - This release maintains full backward compatibility with v5.7.1
Recommended Upgrade Steps
- Backup First:
- Update Environment Variables:
- Run Database Migrations:
- Update Docker Containers:
- Fix Log Permissions (if needed):
- Restart Backend Services:
- Verify Installation:
# Backup database
./cli/octeth.sh db:backup
# Backup configuration
cp .oempro_env .oempro_env.backup
# Review and update .oempro_env with new options
# Use _dockerfiles/examples/.oempro_env.example as reference
docker exec oempro_app bash -c "cd /var/www/html/cli/ && php5.6 dbmigrator.php migrate"
./cli/octeth.sh docker:pull
./cli/octeth.sh docker:up
./cli/octeth.sh logs:fix-permissions
./cli/octeth.sh backend:restart
./cli/octeth.sh docker:status
./cli/octeth.sh backend:status
Post-Upgrade Verification
📝 Notes for Developers
Testing with Test Database
The new test database isolation feature allows you to run tests without affecting production data:
# Setup test database (first time only)
./cli/octeth.sh test:db:setup
# Run all tests
./cli/octeth.sh test:run all
# Run specific test file
./cli/octeth.sh test:run system/tests/Unit/SubscriberStateTransitionTest.php
# Run specific test suite
./cli/octeth.sh test:run journey
HTTP API Testing:
- Tests automatically use test database when running via PHPUnit
- HTTP API calls can use test database by setting header:
X-Octeth-Test-Database: 1 - Security: Test database header is only honored in local environment (
APP_ENV=local)
Using Granular MySQL Query Logging
Enable detailed MySQL query logging for debugging:
# In .oempro_env
LOG_MYSQL_QUERIES_GRANULAR=true
LOG_MYSQL_QUERIES_PATH=/var/www/html/data/logs/
# Restart services
./cli/octeth.sh backend:restart
# Logs will be created in data/logs/ with format:
# mysql_queries_[context]_[pid]_[timestamp].log
# Example: mysql_queries_web_12345_20251229_143022.log
Multi-Tag Journey Triggers
The new multi-tag journey trigger feature allows sophisticated workflow automation:
// API endpoint: journey.bulk_trigger
// Trigger journey when subscriber has multiple specific tags
POST /api.php?command=journey.bulk_trigger
{
"api_key": "YOUR_API_KEY",
"journeyids": [123, 456],
"trigger": {
"type": "Tag",
"trigger_listid": 789,
"trigger_tagids": [10, 20, 30] // Subscriber must have ALL these tags
}
}
API Documentation Generation
API documentation is now automatically generated during the commit process:
# Pre-commit hook automatically runs api-doc-gen skill
# when API endpoint files are modified
# Manual generation:
# Use the /api-doc-gen skill when modifying:
# - api.php
# - includes/classes/api.inc.php
# - includes/api/*.inc.php
Performance Monitoring
New tools for monitoring campaign performance:
# Campaign velocity and throughput metrics
GET /api.php?command=admin.campaigns.search&includevelocity=1
# Batch statistics for campaign monitoring
GET /api.php?command=admin.campaigns.search&includebatchstats=1
# Time-filtered campaign counts
GET /api.php?command=admin.campaigns.overview&includetimefiltered=1
Redis Caching Best Practices
The new EntityCache pattern provides consistent caching across entities:
// Force cache refresh when needed
$list = Lists::GetListByID($listID, true); // forceRefresh = true
// Cache is automatically invalidated on updates
Lists::Update($listID, $data); // Cache cleared automatically
// Manual cache invalidation
EntityCache::clearPattern('Lists_*');
Debugging Campaign Delivery
Enhanced logging and debugging tools:
# Enable campaign delivery profiling
CAMPAIGN_DELIVERY_PROFILING_ENABLED=true
CAMPAIGN_DELIVERY_LOG_LEVEL=DEBUG
# Monitor campaign picker
tail -f data/logs/campaign_picker_[pid].log
# Monitor delivery workers
tail -f data/logs/campaign_delivery_[campaign_id]_[pid].log
# Check worker health
./cli/octeth.sh backend:status
Worker Signal Handling
Improved signal handling in workers:
- Async signal handling enabled for better responsiveness
- WorkerLogger used in signal handlers for debugging
- Orphaned workers terminated when campaigns deleted
- Health checks prevent zombie processes
Code Quality Standards
New validation and testing requirements:
- SQL Injection Prevention: All orderfield/ordertype parameters must be validated
- XSS Prevention: All user input must be properly escaped
- Test Coverage: New features require comprehensive test coverage
- API Error Codes: Use standardized ErrorCode field in error responses
- Cache Management: Use EntityCache pattern for consistent caching
- Logging Levels: Use appropriate log levels (DEBUG, INFO, WARNING, ERROR)
Documentation Requirements
When contributing code:
- API Changes: Update API documentation using api-doc-gen skill
- Plugin Hooks: Document new hooks using plugin-hook-reference skill
- GitHub Content: Draft PR/issue descriptions in /tmp for review
- Changelog: Ensure commits follow conventional commit format
Octeth Development Roadmap
Version | Status | Release Date | Notes |
|---|---|---|---|
v5.0.0 | Released | Jan 3rd, 2022 | 5b138d5 |
↳ v5.0.1 | Released | May 2nd, 2022 | b6ea225 |
↳ v5.0.2 | Released | Aug 17th, 2022 | f8d417f |
↳ v5.0.3 | Released | Oct 3rd, 2022 | 3240487 |
v5.1.0 | Released | Dec 26th, 2022 | 5b9a8c1 |
↳ v5.1.1 | Released | Mar 14th, 2023 | 4a467c0 |
v5.5.0 | Released | Apr 22nd, 2024 | 2862af5 |
↳ v5.5.1 | Released | Jun 24th, 2024 | 5a89324 |
↳ v5.5.2 | Released | Jul, 30th, 2024 | d4b8106 |
↳ v5.5.3 | Released | Aug, 16th, 2024 | 2d11177 |
↳ v5.5.4 | Released | Aug, 23rd, 2024 | 34fd437 |
↳ v5.5.5 | Released | Sep, 21st, 2024 | 95f665d |
v5.6.0 | Released | Mar 30th, 2025 | 188b432 |
v5.7.0 | Released | Dec 1st, 2025 | b57e2e1 |
↳ v5.7.1 | Released | Dec 4th, 2025 | 00a7640 |
↳ v5.7.2 | Released | Dec 29th, 2025 | 17af4d8 |
↳ v5.7.3 | Collecting User Feedback | TBA - January 2025 | n/a |
v6.0.0 | Under Development | 2025 Q1 - TBA | n/a |
On this page
- What’s New in v5.7.2
- 🎯 Release Highlights
- 🚀 Major Features
- Journey Builder Enhancements
- Campaign & Email Features
- API & Integration
- Testing & Quality Assurance
- Documentation & Developer Tools
- Infrastructure & DevOps
- 🐛 Bug Fixes
- Critical Security Fixes
- Campaign & Email Fixes
- Journey & Workflow Fixes
- Database & Performance Fixes
- API & Integration Fixes
- Configuration & Environment
- Testing & Development
- Docker & Deployment
- ✨ Enhancements & Improvements
- Performance Optimizations
- User Experience
- Developer Experience
- API & Integration
- Testing & Quality
- 🧹 Code Cleanup & Maintenance
- Major Refactoring Initiatives
- Code Quality Improvements
- Database & Query Improvements
- Testing Infrastructure
- Documentation & Organization
- Configuration & Environment
- GitHub Workflow & CI/CD
- Method Renaming & Clarity
- Removed Unused Code
- 🔧 Developer Experience
- New Tools & Commands
- Logging & Debugging
- Testing Infrastructure
- Documentation
- Configuration Management
- 🔄 Migration Notes
- Database Migrations
- Configuration Changes
- Docker & Infrastructure
- Breaking Changes
- Recommended Upgrade Steps
- Post-Upgrade Verification
- 📝 Notes for Developers
- Testing with Test Database
- Using Granular MySQL Query Logging
- Multi-Tag Journey Triggers
- API Documentation Generation
- Performance Monitoring
- Redis Caching Best Practices
- Debugging Campaign Delivery
- Worker Signal Handling
- Code Quality Standards
- Documentation Requirements
- Octeth Development Roadmap
Older versions