# crosspoint-ef Changelog All notable changes to the crosspoint-ef fork are documented here. Base: CrossPoint Reader 0.15.0 --- ## ef-1.0.5 **Stability & Memory Improvements** ### Bug Fixes - Webserver - **File Transfer Stability**: Removed blocking MD5 hash computation from file listings that caused EAGAIN errors and connection stalls - **JSON Batching**: Implemented 2KB batch streaming for file listings with pacing to prevent TCP buffer overflow - **Simplified Flow Control**: Removed unnecessary yield/delay logic from content streaming ### Bug Fixes - Memory - **QR Code Caching**: Generate QR codes once on server start instead of regenerating on each screen render - **WiFi Scan Optimization**: Replaced memory-heavy `std::map` deduplication with in-place vector search, limited results to 20 networks, earlier `WiFi.scanDelete()` for faster memory recovery - **Cover Buffer Leak**: Fixed 48KB memory leak when navigating from Home to File Transfer (cover buffer now explicitly freed) ### Bug Fixes - EPUB Reader - **Errant Underlining**: Fixed words before styled inline elements (like `` tags with CSS underline) incorrectly receiving the element's style by flushing the text buffer before style changes ### Bug Fixes - Flashing Screen - **Version String Overflow**: Fixed flash notification parsing failing on longer version strings (buffer limit increased from 30 to 50 characters) - **Display Quality**: Changed flashing screen to half refresh for cleaner appearance - **Timing**: Adjusted pre-flash script timing for half refresh completion ### Upstream Merges - **PR #522 - HAL Abstraction Layer**: Merged hardware abstraction layer refactor introducing `HalDisplay` and `HalGPIO` classes, decoupling application code from direct hardware access - **PR #603 - Sunlight Fading Fix**: Added user-toggleable setting to turn off display between refreshes, mitigating the sunlight fading issue on e-ink displays - New "Sunlight Fading Fix" toggle in Display settings (OFF/ON) - Passes `turnOffScreen` parameter through display stack when enabled ### Files Changed - `src/main.cpp` - flash screen fixes, cover buffer free on File Transfer entry, fading fix integration - `scripts/pre_flash.py` - timing adjustments for full refresh - `src/network/CrossPointWebServer.cpp` - JSON batching, removed MD5 from listings - `src/network/CrossPointWebServer.h` - removed md5 from FileInfo, simplified sendContentSafe - `src/activities/network/CrossPointWebServerActivity.cpp` - QR code caching - `src/activities/network/CrossPointWebServerActivity.h` - QR code cache members - `src/activities/network/WifiSelectionActivity.cpp` - WiFi scan memory optimization - `lib/Epub/Epub/parsers/ChapterHtmlSlimParser.cpp` - flush buffer before style changes - `lib/hal/HalDisplay.h` - new HAL abstraction for display (PR #522), turnOffScreen parameter (PR #603) - `lib/hal/HalDisplay.cpp` - HAL display implementation with fading fix passthrough - `lib/hal/HalGPIO.h` - new HAL abstraction for GPIO (PR #522) - `lib/hal/HalGPIO.cpp` - HAL GPIO implementation - `lib/GfxRenderer/GfxRenderer.h` - updated for HAL layer, added fadingFix member - `lib/GfxRenderer/GfxRenderer.cpp` - updated for HAL layer, passes fadingFix to display - `src/CrossPointSettings.h` - added fadingFix setting - `src/CrossPointSettings.cpp` - fadingFix persistence - `src/activities/settings/SettingsActivity.cpp` - added Sunlight Fading Fix toggle - `open-x4-sdk` - updated submodule with turnOffScreen support in EInkDisplay --- ## ef-1.0.4 **EPUB Rendering & Stability** ### New Features - **End-of-Book "Start Over"**: Press next at end of book to wrap to first page ### EPUB Rendering Improvements - CSS `margin-left`/`padding-left` parsing for block indentation - Vertical bar and italic styling for blockquotes - Left margin indentation for list items (`
    `/`