✅ Added
- Composites optimization: Inverted index with bloom filter for fast negative symbol lookups, precomputed atom types, and composites statistics with control protocol command (#5764)
- Multimap combinators: Support for combinator option in multimap selector rules for flexible matching logic (#5766)
- SPF flattening tool: New rspamadm utility for SPF record flattening with macro preservation (#5757)
- URL deep processing: Architecture for C-to-Lua URL filter consultation with async HTML URL processing (#5748)
- Obfuscated URL detection: Enhanced url_suspect plugin with rspamd_util.decode_html_entities for detecting obfuscated URLs (#5761)
- lua_shape validation: New validation library replacing tableshape with T.callable() type and callable defaults support (#5754)
- Whitelist symbol flags: Auto-mark whitelist symbols with SYMBOL_TYPE_FINE flag for better scoring granularity
🔧 Fixed
- url_suspect false positives: Fix plugin causing massive false positives with high URL volume messages (#5758)
- Network chunking loop: Prevent infinite loop in split_networks_into_chunks() function (#5763)
- Memory leak: Fix leak in custom tokenizer result handling
- lua_shape compatibility: Multiple fixes for transform logic, registry resolution, error safety, and tableshape compatibility (#5754)
- Composites inverted index: Fix group matchers handling and improve atom polarity detection (#5764)
- Lua composites: Copy expression string to memory pool to prevent use-after-free (#5764)
- D3 libraries: Update with bug fixes and validation improvements (#5765)
- Settings processing: Keep groups_*/symbols_* fields in settings for runtime processing
- Redirect URL encoding: Properly encode URLs with unencoded spaces and special characters (#5748)
- WebUI hover: Restore hover colors for symbols and fix hover behavior outside status tables (#5741, #5742)
- External relay: Fix mixins and confighelp for external_relay module (#5754)
🔄 Improved
- url_suspect performance: Optimize plugin for high URL volume messages with better deduplication (#5758)
- tableshape migration: Complete migration of all plugins and libraries from tableshape to lua_shape (#5754)
- Configuration simplification: Remove use_*_map flags and simplify URL processing configuration (#5748)
- Whitelist maps: Use contemporary API for maps in whitelist module (#5746)
- WebUI symbols: Improved hover colors and behavior for symbols display (#5760)
- Plugins registry: Centralized plugins registry with reworked mixins and documentation (#5754)
This minor release focuses on performance improvements and code modernization. The composites optimization with inverted index and bloom filter significantly speeds up composite rule evaluation. The new lua_shape library replaces the external tableshape dependency with a more integrated solution. URL processing has been enhanced with deep processing architecture and better obfuscated URL detection. Several critical bugs have been fixed including url_suspect false positives and an infinite loop in network processing.