crosspoint-reader/ef-CHANGELOG.md
2026-01-29 11:58:28 -05:00

4.3 KiB

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 for complete feature documentation.