diff --git a/ef-CHANGELOG.md b/ef-CHANGELOG.md new file mode 100644 index 0000000..55b92f7 --- /dev/null +++ b/ef-CHANGELOG.md @@ -0,0 +1,83 @@ +# crosspoint-ef Changelog + +All notable changes to the crosspoint-ef fork are documented here. + +Base: CrossPoint Reader 0.15.0 + +--- + +## ef-1.0.1 + +**Dictionary Stability & UX Improvements** + +### Bug Fixes - Stability + +- Fixed dictionary crashes caused by heap fragmentation from repeated page navigation +- Refactored TextBlock/ParsedText from `std::list` to `std::vector`, reducing heap allocations by ~12x per TextBlock + - Affects EPUB reader page rendering, dictionary definition display, and word selection + - Contiguous memory improves cache locality during text layout and reduces heap fragmentation on the memory-constrained ESP32 +- Added uncompressed dictionary (`.dict`) support to avoid decompression memory issues with large dictzip chunks (58KB chunks -> direct read) +- Implemented chunked on-demand HTML parsing for large definitions, parsing pages as user navigates rather than all at once +- Limited cached pages to 4 with re-parse capability for backward navigation beyond cache window +- Fixed double-button press bug when loading new dictionary chunks + +### Bug Fixes - UI/Layout + +- Restored proper orientation-aware button hint spacing (front: 45px, side: 50px) +- Added side button hints to definition screen with "<" / ">" labels for page navigation +- Added side button hints to word selection screen ("UP"/"DOWN" labels, borderless, small font) +- Added side button hints to dictionary menu ("< Prev", "Next >") +- Moved page indicator up to avoid bezel cutoff in landscape orientations + +--- + +## ef-1.0.0 + +**First Official Release** (previously ef-0.15.99) + +First milestone release of the crosspoint-ef fork, building on CrossPoint Reader 0.15.0 with 14+ major new features and enhancements. + +### New Features + +- **Dictionary Support**: Offline StarDict dictionary with word selection from reader, fast prefix-indexed search, rich HTML formatting, and multi-page pagination +- **Bookmark System**: Per-book bookmarks with visual folded-corner indicators, dedicated management interface, and auto-generated bookmark names +- **Quick Menu**: In-reader quick access menu for common actions (Dictionary, Bookmark, Clear Cache, Settings) via short power button press +- **Library Search**: Search across all books by title, author, or filename with dynamic character picker and weighted relevance scoring +- **CSS Support**: Parse and apply CSS styles from EPUB stylesheets (text-align, font-style, font-weight, text-decoration, margins, padding) +- **Inline Image Support**: PNG and Baseline JPEG rendering within EPUB content with 2-bit grayscale dithering and caching +- **Custom Fonts**: Atkinson Hyperlegible Next (low-vision readers) and Fern Micro (small screens) +- **Enhanced Web Server**: File management (upload, download, delete, rename, copy, move, mkdir), companion app API, WebSocket uploads, mDNS discovery at `crosspoint.local` +- **Reading Lists**: Create, manage, and pin custom book lists with web API support (CSV format) +- **Enhanced Tab Bar**: Unified tab bar with horizontal scrolling and overflow indicators (Recent, Lists, Bookmarks, Search, Files) +- **Progress Bar Status**: Additional status bar option showing visual reading progress +- **OPDS Browser Enhancements**: Navigation history, page skipping (hold Up/Down), error retry, HTTP Basic Auth support + +### Display Enhancements + +- **High Contrast Mode**: System-wide contrast adjustment +- **Bezel Compensation**: Configurable margin (0-10px) for physical screen edge defects +- **Sleep Screen Improvements**: Edge-aware color filling for seamless letterbox appearance + +### Bug Fixes + +- Fixed device hanging when booted without USB connected (Serial.available()/Serial.read() called without Serial.begin()) +- Fixed grayscale state corruption causing ghosting artifacts when anti-aliasing enabled under memory pressure +- Memory optimization with graceful degradation when memory is low + +### Development Tools + +- `pre_flash.py`: Displays "Flashing firmware..." screen during upload +- `debugging_monitor.py`: Enhanced serial monitor with memory graphs +- `pio_helper.py`: Interactive PlatformIO workflow helper + +--- + +## Differences from Upstream 0.16.0 + +This fork is based on upstream 0.15.0. The following 0.16.0 features are not included: + +- KOReader sync support +- Non-English hyphenation patterns (Spanish, German, French, Russian) +- XTC/XTCH file format support + +See [crosspoint-ef-features.md](docs/crosspoint-ef-features.md) for complete feature documentation. \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index cb9963a..4cbcadf 100644 --- a/platformio.ini +++ b/platformio.ini @@ -2,7 +2,8 @@ default_envs = default [crosspoint] -version = ef-0.15.99 +# 0.15.0 CrossPoint base, ef-1.0.0 is the first release of the ef branch +version = 0.15.ef-1.0.1 [base] platform = espressif32 @ 6.12.0