Version 4.0 - 2025-11-29 Performance Optimizations Database Query Optimization: Implemented static caching for flatDB::readEntry() and flatDB::listEntry() to reduce redundant file system operations N+1 Query Fixes: Eliminated N+1 query problems in feed.php, view.php, search.php, and other core files Parser Optimization: Added static cache for Parser::title() and optimized Parser::content() and Parser::summary() Plugin System: Implemented static caching for plugin configurations and hook validations BBCode/BBlight Optimization: Added static cache for quote entries to prevent repeated database reads User Management: Implemented static cache for ban list with 60-second TTL Search Enhancement: Optimized search functionality with relevance scoring, result limiting, and content preview optimization Library Improvements flatDB Library: Added static caching system with automatic invalidation (5-second TTL) Plugin Library: Added cache for hook validation checks HTMLForm Library: Added cache for description sanitization GlobalRequestLimiter: Fixed potential undefined variable error RSS Feed Fixes Fixed RSS feed redirection issue - now returns valid Atom XML error feed instead of redirecting Improved date validation in feed generation Optimized topic caching in feed.php Date Formatting Fixed date formatting issues with strftime codes Added convertStrftimeToDateTime() function for proper format code conversion Enhanced config.php with select dropdowns for date format presets Added "Custom" option with dynamic text input for date formats Security Enhancements Ban System Overhaul: [list] Replaced strpos() with ipInCidr() for accurate IP/CIDR range checking Added isValidIpOrCidr() for robust IP and CIDR validation (IPv4/IPv6) Improved ban list management with search, sort, and add functionality Added confirmation for ban removal Implemented static cache for ban list with automatic invalidation [*] CSRF Protection: Enhanced CSRF token generation and validation [*] Input Sanitization: Improved HTML sanitization in help descriptions with whitelist-based approach [*] IP Validation: Enhanced IP address validation including CIDR support [/list] User Interface Improvements Added logout button to frontend header for all logged-in users Tags field now only displays if visible tags are configured Improved responsive design for various screen sizes Enhanced form validation and error display Plugin Enhancements Identicon Plugin (v3.6.0): [list] Added configurable options for status dot (online/offline) display Added configurable options for role badge (admin/moderator) display Improved caching for online status checks Enhanced role detection with optimized caching Fixed CSS positioning for status dots and badges [*] Online Plugin: Implemented static caching for plugin data, hits, and authenticated users Optimized cleanup of inactive IPs and authenticated users Added configuration options for timeout and max_entries Enhanced modal to display authenticated users, visitors, and bots Improved IPv6 masking for privacy Added crawler detection with static caching [*] FlatBBeditor Plugin: Fixed conflicts with TinyMCE editor in page plugin Added conditional loading to prevent conflicts Fixed undefined array key warnings in markdown editor Implemented static cache for plugin data [*] Darkmode Plugin: Fixed Firefox crashing issues Added color format validation Improved error handling and initialization Added static caching for plugin configuration [*] Page Plugin: Ensured TinyMCE editor doesn't conflict with FlatBBeditor Added proper content field handling Improved translation support [/list] Content Parsing Improvements Markdown Editor: [list] Fixed HTML tag display issue in homepage summaries Added HTML-to-Markdown conversion for pre-existing HTML content Improved content parsing in Parser::content() and Parser::summary() [*] BBCode Processing: Optimized quote processing with static caching [/list] JavaScript Enhancements Improved plugin activation/deactivation with better error handling Added comprehensive AJAX error handling with timeouts Enhanced UI feedback for user actions Fixed TypeError issues in flatboard.js [h2]Bug Fixes[/h2] Fixed white page error in identicon plugin Fixed undefined array key warnings in multiple files Fixed date formatting display issues Fixed search functionality optimization Fixed tag display logic in forms Fixed various PHP warnings and notices Code Quality Improved error handling throughout the application Added comprehensive logging for debugging Enhanced code documentation Improved code organization and structure