[S] SCROLL+Read. Earn. Evolve.
52K NOVA
🔥7 DAY STREAK

Changelog

All notable changes to Scroll+ will be documented on this page.

0.4.5

March 23, 2026

Bug fixes for reading time inflation and spin wheel cooldown bypass.

Fixed

  • Reading Time Double-Counting - Fixed daily reading time incorrectly increasing every time the app was reopened. The useLoadProfileData hook was loading sessions from AsyncStorage and dispatching addSession() on every app start, causing sessions to accumulate exponentially. The redundant hook has been removed
  • Spin Wheel Cooldown Bypass - Fixed the daily spin wheel allowing re-spin before the 24-hour cooldown expires. Backend claimSpinReward now returns nextSpinAvailableAt in all response paths. The client no longer uses a separate AsyncStorage fallback, relying solely on Redux. The error handler now fails closed instead of failing open

0.4.4

March 22, 2026

Critical bug fixes for PDF text extraction on physical devices, addressing stuck progress at 99% and empty extraction issues.

Fixed

  • PDF Extraction Stuck at 99% - Fixed extraction loop never completing if last page(s) had no content. The hasContent check was skipping the analysis phase, causing headingThreshold to never be set
  • Analysis Phase Logic - Moved analysis phase check before hasContent check to ensure headingThreshold is always set at page 15
  • Progress Updates - Progress now updates for ALL pages (including blank ones), not just pages with content
  • Academic Mode Bypass - Added pdfMode !== "academic" check in handleBookPress to prevent false "text is being prepared" alert
  • Scope Error - Fixed "completionSent is not defined" error by moving the variable to global scope
  • Debug Logging - Added extraction statistics logging to help diagnose issues on physical devices

0.4.3

March 22, 2026

Introducing PDF Academic Mode, a brand new reading experience for study and deep reading, alongside UI polishes and Eye Comfort refactoring.

Added

  • PDF Academic Mode - A completely new reading engine specifically built for PDFs
  • Native Pinch-to-Zoom - Enabled native browser CSS touch-action properties for flawless zooming in Academic PDF Mode
  • Multi-Color Highlights - Dynamic multi-color highlights applied via native document.execCommand
  • Highlight Deletion - Tap on existing highlights to invoke a deletion dialog
  • Minimalist UI - Overhauled the PDF Import Modal into a card-based design with full i18n support

Fixed

  • Eye Comfort Rendering - Replaced flat-color overlay with native CSS filters (sepia, contrast, brightness) bound to EYE_COMFORT_CONFIGS, retaining deep blacks in Dark Mode
  • Selection Menus - Fixed Y-coordinate miscalculations for text selection when header bar is hidden
  • Immersive Mode - Added one-tap global listener to seamlessly hide navigational HUDs

0.4.1

March 19, 2026

Internal refactoring, version bump, and bug fixes for app initialization and component hooks.

Changed

  • App Entry Point - Moved App.tsx from src/App.tsx to root directory, aligned with Expo convention
  • App Initialization - Added PersistGate wrapper, apiClient.init() before sync, verifyAppIntegrity() security check in production, and proper cleanup on unmount
  • Version - Bumped to 0.4.1 (versionCode 23)

Fixed

  • DailySpinWheel Hooks Order - Moved checkSpinAvailability function definition before its usage in useEffect
  • SyncService Test Import - Fixed apiClient import to use default export with correct mock structure

0.4.0

March 18, 2026

Major reading interface redesign with a new floating toolbar HUDMenu, removal of split-screen reader, and core gamification system introduction.

Added

  • Floating Toolbar HUDMenu - Complete redesign from bottom-sheet to a compact floating toolbar with 4 icon-based tabs (Typography, Spacing, Layout, Display)
  • Core Gamification System - User profiles, reading stats, Nova tracking, and weekly leaderboards
  • RetroSlider Compact Mode - New compact prop for smaller track (8px) and thumb (24px)

Changed

  • HUDMenu Animation - Replaced slide-up with fade+scale (200ms) for smoother appearance
  • HUDMenu Positioning - Now positioned below top bar via topBarHeight prop instead of fixed to bottom
  • ReaderScreen - Updated to integrate new HUDMenu with topBarHeight positioning
  • i18n - Renamed "level" to "threshold" in Turkish gamification locale

Removed

  • Split-Screen Reader - Removed SplitScreenReader component and split mode UI from ReaderTopBar

0.3.0

March 17, 2026

Critical fix for avatar assignment bug where users were displayed with incorrect high-tier mascots regardless of their actual Nova level.

Fixed

  • Avatar Assignment Bug - Fixed getAvatarIdForNova() in both frontend and backend. The thresholds array was sorted in descending order while MASCOT_AVATARS is sorted ascending, causing avatar IDs to map to wrong mascots
  • Database Correction - All 39 users' avatarId values were recalculated and corrected

0.2.9

March 16, 2026

Critical bug fix for avatar persistence across app sessions.

Fixed

  • Avatar Display Bug - Fixed an issue where the user's selected avatar would randomly change to an incorrect one on app launch. The updateUserProfile reducer now filters out undefined values from server responses, preventing them from overwriting existing avatar data

0.2.8

March 12, 2026

Split-screen PDF reading enhancements with sync mode and avatar ID system refinement.

Added

  • Split-Screen Sync Mode - New sync toggle button for synchronized scrolling between PDF viewer and extracted text
  • Page-to-Scroll Sync - PDF page changes automatically scroll the HTML reader to the corresponding position

Changed

  • Avatar ID Logic - Simplified to use sequential index (1-21) instead of Nova threshold values
  • Performance - Added React.memo and useCallback for split-screen optimization

Fixed

  • Android Rendering - Split mode now uses software layer type for WebView to prevent rendering issues

0.2.7

March 9, 2026

Floating tab bar improvements with tablet support and avatar ID system refinement.

Changed

  • Tablet Support - Floating tab bar adapts to screen size: centered with fixed width (280px) on tablets, full-width with padding on phones
  • Reduced Size - Tab bar height reduced from 65px to 50px, icon size from 32px to 24px
  • Avatar ID Logic - Reverted to use Nova threshold values for consistent avatar identification across sessions

Fixed

  • Avatar Selection - Avatar IDs now correctly use Nova threshold values ensuring avatar persistence after app restart

0.2.6

March 7, 2026

EPUB reader white flash fix during chapter transitions and React dependency warning resolution.

Fixed

  • EPUB Chapter Transitions - Eliminated white flash when navigating between chapters by rendering WebView off-screen until content is ready
  • React Warning - Fixed missing dependency in DailySpinWheel useEffect hook

0.2.5

March 6, 2026

Major reader interface overhaul with immersive reading mode, glassmorphism floating tab bar, deep linking for GDPR compliance, and critical gamification bug fixes.

Added

  • Immersive Reading Mode - Tab bar and header auto-hide on scroll, tap to toggle controls, status bar sync
  • Glassmorphism Floating Tab Bar - Native blur effects with expo-blur, modern design with rounded corners
  • Deep Linking - Account deletion callback for GDPR compliance, auto logout on account deletion

Changed

  • Real-Time Streak Multiplier - Nova display includes streak bonuses (1.0x - 2.5x)
  • Weekly Goal Bonus - Increased from 500 Nova to 10,000 Nova
  • Language Persistence - Saved language preference applied immediately on app launch

Fixed

  • Modal Flicker - Level-up modal no longer reappears after dismissal
  • Avatar Selection - Avatar IDs now use correct sequential numbers (1-21)
  • Double Spin Abuse - Daily spin wheel immediately saves timestamp to prevent multiple spins
  • Activity Tracking - Records activity on scroll start for all readers

0.2.4

March 5, 2026

Critical fix for Nova point calculation logic to prevent runaway scoring.

Fixed

  • Interval Leak Fix - Resolved a major bug in GamificationService.ts where multiple timers could accumulate, leading to exponentially high Nova points (e.g., 10k Nova for 2 minutes)

0.2.3

March 5, 2026

Nova calculation formula redesigned with time-based linear growth. Fixed a critical bug where scrolling incorrectly awarded Nova points.

Changed

  • Nova Calculation Redesign - Switched from page-based to time-based calculation: Old formula: (pages × 10) + (minutes × 5) + 20. New formula: Linear growth per minute (10, 20, 30... up to 300 Nova/min at 30 min). After 30 minutes: capped at 300 Nova per minute. Example: 30 min reading = 4,650 Nova (instead of unpredictable values)

Fixed

  • Scroll Nova Bug - Fixed incorrect Nova gains when scrolling through pages. Previously, each scroll position change triggered recordPageRead(), causing excessive Nova accumulation

Removed

  • Unused xpService.ts - Removed deprecated backend service file that was no longer in use

0.2.2

March 4, 2026

Focuses on synchronization stability, improved performance, and more accurate gamification tracking.

Added

  • Header Sync Button - A minimal, dedicated synchronization button in the header with a retro pixel spin animation

Changed

  • Weekly Nova Trend - The chart now pulls accurate daily data from the server, including Nova points earned from the Daily Spin

Fixed

  • Immediate Sync - Fixed a potential data loss issue; reading points are now synced immediately upon closing the book
  • Background Hydration - Improved Redux persistence to ensure local points are preserved until a successful server sync
  • Serialization Fix - Resolved 'Invalid request body' error by adding missing timestamps to synchronization payloads

0.2.1

March 4, 2026

Includes a fix for a bug related to the Nova gamification system and new UI improvements added to the Settings screen.

Added

  • Settings Screen Links - Added direct links to the official website (scroll.pics), Changelog page, and Delete Account page in the app's Settings menu

Fixed

  • Nova Sync Bug - Fixed a logic error where Nova points earned by users who left the app open and paused reading were rejected and deleted due to overly strict server-side anti-cheat rules

0.2.0

March 3, 2026

This release includes RTL language support, gamification enhancements, Android build improvements, and comprehensive security hardening.

Added

  • RTL Language Support - Full right-to-left text handling for Arabic, Persian, Urdu, Hebrew, and 6 more RTL languages
  • Daily Spin Wheel - 8 wheel segments with Nova rewards (100-5000), Streak Protector, and XP Booster
  • Level-Up Modal - New progression notifications with backend sync
  • API 35 Targeting - Updated to latest Android SDK with Kotlin 2.0.21
  • Security Hardening - 80+ automated security modifications, ProGuard dictionary, certificate pinning

Changed

  • EPUBReader loading improvements to prevent white flash
  • Updated all dependencies to latest versions

Fixed

  • Weekly Champions Widget errors resolved
  • Improved reliability for EPUB/PDF imports

0.1.3

February 25, 2026

Google Play Store preparation with critical bug fixes.

Added

  • Expo Secure Store Plugin - Configuration for secure token storage
  • Metro bundler improvements for development

Changed

  • Version bump: 0.1.2 → 0.1.3
  • Release notes condensed from 16KB to ~3KB

Fixed

  • Critical regex fix - Resolved stack overflow in PDF processing
  • Release signing configuration corrected for Google Play
  • Google Web Client ID migrated to config-based management

0.1.2

February 24, 2026

Major PDF reading improvements with split-screen viewer support.

Added

  • Split-Screen PDF Viewer - View original PDF and extracted text side-by-side with scroll sync
  • 16-Phase OCR Pipeline - Advanced PDF text extraction with language detection
  • Age Verification System - Content gating with welcome modal
  • Native PDF rendering with react-native-pdf
  • Turkish-specific OCR error corrections

Changed

  • Enhanced profile management UI
  • Improved Google sign-in flow handling

Fixed

  • Multiple PDF text extraction accuracy improvements
  • Better handling of complex PDF layouts

0.1.1

February 22, 2026

Security hardening, responsive design system, and increased file limits.

Added

  • Responsive Design System - Breakpoints for phones, tablets with dynamic scaling
  • Network security config with certificate pinning
  • Multi-resolution splash screen logos

Changed

  • PDF file size limit: 25MB → 30MB
  • EPUB file size limit: explicit 50MB
  • 15+ components updated for responsive behavior

Fixed

  • ZIP bomb protection for EPUB imports
  • Path traversal protection
  • Store listing titles updated to 30-character limit

0.1.0

February 11, 2026

Initial release with comprehensive e-reader features and retro RPG gamification.

Added

  • EPUB Support - Full EPUB 2.0/3.0 parsing with themes, fonts, and eye comfort mode
  • PDF Support - Lazy text extraction with markdown conversion
  • Gamification System - 21 avatar levels, daily spin wheel, streaks, leaderboards
  • Typography Controls - Font selection, size, line height, word spacing
  • Quote System - Capture, design, and share quotes from books
  • Retro UI - VT323 pixel font, CRT effects, glow animations
  • Google OAuth authentication
  • Library management with visual book grid
  • 67+ language support with RTL handling

Version History

VersionDateFocus
0.4.52026-03-23Reading time double-counting fix, spin wheel cooldown fix
0.4.42026-03-22PDF extraction stuck at 99%, progress tracking, Academic Mode alert fix
0.4.32026-03-22Academic Mode Zoom, Multi-Color Highlights, Eye Comfort Filter Fixes
0.4.12026-03-19App entry refactor, PersistGate, hooks order fix, test import fix
0.4.02026-03-18Floating toolbar HUDMenu, gamification system, split-screen removal
0.3.02026-03-17Avatar assignment bug fix, database correction
0.2.92026-03-16Avatar persistence fix across sessions
0.2.82026-03-12Split-screen sync mode, avatar ID refinement, performance
0.2.72026-03-09Floating tab bar tablet support, reduced size, avatar ID fix
0.2.62026-03-07EPUB chapter transitions, React warning fix
0.2.52026-03-06Immersive mode, glassmorphism UI, deep linking, gamification fixes
0.2.42026-03-05Interval leak fix, Nova calculation
0.2.32026-03-05Nova formula redesign, scroll bug fix
0.2.22026-03-04Sync button, weekly trend fix, hydration stability
0.2.12026-03-04Settings links, Nova sync fix
0.2.02026-03-03RTL support, API 35, security hardening
0.1.32026-02-25Google Play preparation, regex fix
0.1.22026-02-24Split-screen PDF, 16-phase OCR
0.1.12026-02-22Responsive system, security
0.1.02026-02-11Initial release