[S] SCROLL+Read. Earn. Evolve.
Google Play

Changelog

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

0.9.0

July 4, 2026

Smarter PDF reading: batch extraction, scanned-PDF detection with automatic Academic Mode fallback, and higher extraction accuracy across languages.

Added

  • Batch PDF Extraction - Select multiple PDFs and extract them in one action; they queue up and process one after another in the background
  • Scanned-PDF Detection - Books with almost no extractable text are automatically switched to Academic (native PDF) mode so they stay readable, with a clear notice
  • Retro Notice Modal - A new design-consistent modal replaces native alerts for reading notices, matching the app's retro aesthetic

Changed

  • Stale Extraction Recovery - Books stuck in an extracting state after the app is killed now automatically re-enter the extraction queue
  • Language-Aware OCR Fixes - English-specific OCR corrections are now skipped for other languages and RTL scripts, preventing text corruption in German, French, Arabic and more
  • Crimson Pro Reading Font - The default reading font now renders correctly everywhere instead of falling back to the system font

Fixed

  • Rotated Text Size - PDF extraction now derives correct font sizes for rotated and skewed text
  • Dense Page Crash - Fixed a crash when extracting extremely dense PDF pages
  • Network Timeout Leak - API request timeouts are now always cleaned up, preventing resource leaks on failed connections

0.8.0

June 10, 2026

Design quality and performance update: SVG-based retro effects, haptic feedback, a smarter weekly chart, and light theme accessibility improvements.

Added

  • Haptic Feedback - Tactile responses for button presses, Nova gains, and level-ups
  • Logarithmic Weekly Chart - The weekly Nova chart is now an SVG line chart with logarithmic scaling; toggle between line and bar views

Changed

  • SVG Retro Effects - Scanline and dither overlays rebuilt as single SVG patterns, replacing hundreds of native views for a much smoother UI
  • Light Theme Contrast - Secondary text darkened to meet WCAG AA contrast standards
  • Compact Reading HUD - The in-reader menu is narrower and less intrusive

Removed

  • Debug Overhead - Removed leftover debug logging from visual components, reducing production overhead

0.7.0

June 2, 2026

Security hardening and stability update with 9 bug fixes and a more compact reading HUD.

Changed

  • Compact HUD Controls - Reading settings sliders redesigned in a compact layout, freeing up screen space while reading

Fixed

  • EPUB Content Security - EPUB HTML sanitization rebuilt on DOMPurify, closing injection vectors the previous sanitizer missed
  • Spin Wheel Reward Validation - Daily spin rewards are now validated server-side, preventing reward manipulation
  • Streak Multiplier Edge Case - The streak multiplier can no longer drop below 1.0x due to floating-point edge cases
  • Orphaned Quotes - Deleting a book now also removes its saved quotes
  • Network Timeouts - All API requests now time out after 15 seconds instead of loading forever on dead connections
  • Login State - Fixed stuck loading spinners after logging out and back in

0.6.0

May 15, 2026

Performance and security update: faster reading screen rendering, improved certificate security, and smoother leaderboard synchronization.

Changed

  • Reading Performance - Optimized the reading screen rendering pipeline for a faster, smoother experience
  • Certificate Security - Improved certificate handling for network connections
  • Leaderboard Sync - Smoother and more reliable synchronization of rankings and gamification data
  • Error Handling - Better error handling and recovery throughout the app

0.4.9

April 27, 2026

Major stability and data integrity update with 12 bug fixes across storage, gamification, PDF reading, and authentication.

Changed

  • Nova Formula Consolidation - All Nova math now lives in a single source of truth, eliminating drift between duplicate implementations

Fixed

  • Faster Library Storage - Book storage refactored to per-book records, making single-book updates instant even with large libraries
  • Nova Race Condition - Fixed close-together Nova updates overwriting each other
  • Avatar Reset Bug - Your selected avatar no longer resets when earning Nova within the same tier
  • PDF Position Memory - Academic Mode PDFs now reopen at your last page instead of page 1
  • Android SVG Crash - Fixed a crash caused by unsanitized icon path data on Android
  • Automatic Session Refresh - Expired sessions now refresh automatically instead of logging you out
  • RTL on First Launch - Arabic, Urdu and other RTL languages now display correctly from the very first launch

0.4.8

April 24, 2026

Critical fix for a daily spin wheel exploit that allowed bypassing the 24-hour cooldown by re-logging in.

Fixed

  • Spin Cooldown Bypass - The spin wheel now fails closed while server data is loading, closing the brief post-login window that allowed extra spins
  • Clear Cooldown Errors - The server now returns a specific cooldown error with the exact next-spin time, so the app can sync correctly
  • Phantom Rewards - Rewards shown for spins rejected by the server are now immediately reverted

0.4.7

March 29, 2026

Critical fix for Google Sign-In failing on Play Store builds after the Cloudflare migration.

Fixed

  • Google Sign-In Failure - Updated certificate pins for the new Cloudflare infrastructure; release builds were silently rejecting all API connections
  • Sign-In Error Visibility - Sign-in failures now show a clear error dialog instead of failing silently

0.4.6

March 29, 2026

Critical fix for PDF text extraction losing words and sentences at page boundaries.

Fixed

  • Page Boundary Text Loss - Sentences and words spanning across pages are no longer disconnected during extraction
  • Smart Page Joining - Pages ending mid-sentence now join with the next page naturally instead of forcing paragraph breaks
  • Hyphenated Words - Words hyphenated at page ends now connect properly to the next page
  • Spaced-Letter Text - Fixed legitimate spaced words being incorrectly merged together
  • Turkish Characters - Page boundary detection now fully covers Turkish characters

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.9.02026-07-04Batch PDF extraction, scanned-PDF detection, Academic Mode fallback
0.8.02026-06-10SVG retro effects, haptic feedback, logarithmic chart, light theme accessibility
0.7.02026-06-02Security hardening, 9 bug fixes, compact reading HUD
0.6.02026-05-15Reading performance, certificate security, leaderboard sync
0.4.92026-04-27Stability and data integrity, 12 bug fixes, faster storage
0.4.82026-04-24Spin wheel cooldown bypass fix
0.4.72026-03-29Google Sign-In certificate fix
0.4.62026-03-29PDF page boundary text loss fix
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