Releases: conorgregson/reading-log-app
Readr v1.9.0 — Visualization & Motivation
🚀 Highlights
- New interactive charts for reading trends and top books.
- Shareable Snapshot card with theme-aware PNG export.
- Improved motivation loops through better badges UX and live summaries.
- Keyboard shortcut to jump straight to Session History search.
- Major accessibility polish across charts, badges, and Snapshot.
📑 What’s new
- Added per-day reading trend chart with accessible text summaries.
- Added Top Books progress chart.
- Added “Jump to Session History Search” keyboard shortcut.
- Added help hint under the log form when shortcuts are enabled.
- Added Shareable Snapshot export (PNG) with correct light/dark theming.
- Added automatic theme sync for Snapshot and Snapshot logo.
- Added ARIA live regions for charts, badges, and Snapshot trend text.
- Improved Snapshot typography, spacing, and readability.
- Upgraded unlocked badge visuals to primary-highlighted cards.
🐛 Fixes
- Fixed Snapshot staying in dark mode after switching themes.
- Fixed unreadable Snapshot text in light mode.
- Fixed trend summary double-colon display issue.
- Fixed badges summary not updating when unlocking new badges.
- Fixed unlocked badges not changing background color in UI.
Readr v1.8.0 — Sessions & Backups
🚀 Highlights
-
Inline Session Editing
Edit pages, minutes, and notes directly inside Session History using number inputs, textareas, and instant Undo. -
Sessions-Only Backups
Export/import just your reading sessions without affecting books or profile settings. -
Full-Library Backups (Profile + Books + Sessions)
Backups now include the complete library with schemaVersion + timestamp metadata. -
Backup Details Tooltip
A polished inline card explaining full vs sessions-only backups, showing last backup date, relative time, book/session counts, filename preview, and a built-in Backup Now button. -
Rich Import/Export Toasts
See exactly what was imported or exported: dates, book counts, session counts, and more.
📑 What’s new
Backup System Overhaul
- Added sessions-only export (
sessions.json) containing normalized reading history. - Added sessions-only import with:
- Schema validation
- Safe merging
- Pages/minutes normalization
- Duplicate prevention
- Full backups now include:
schemaVersionexportedAtprofilebookssessions
- All timestamps now use a shared ISO string for consistent metadata.
Backup Details Tooltip
A new inline details card in Settings includes:
- Clear explanation of what full vs sessions-only backups contain
- Last full backup: exact date + friendly relative label (“today”, “yesterday”, “3 days ago”)
- Library counts: number of books and sessions
- Filename preview: e.g.,
readr-backup-2025-12-04.json - Backup Now button that exports immediately
Inline Session Editing
- Number inputs for pages and minutes.
- Auto-resizing textareas for notes.
- Blur-to-save + Cmd/Ctrl+Enter to commit edits instantly.
- Row-level Undo for every operation.
Rendering & Performance
- Session History now:
- Builds a normalized dataset once
- Reuses sorted logs
- Patches only changed rows
- Shares highlight logic with global search
- Drastically improved responsiveness on ≥300-session logs.
Summaries, Goals & Streaks
- All daily/weekly/monthly totals use normalized fields.
- Fixed NaN edge cases from mixed legacy log formats.
- Reset Data now reliably clears all derived values.
UI & Polish
- Updated hover states for better contrast in light mode.
- Undo buttons now styled correctly in dark mode.
- Edit buttons match Books section styling and transitions.
- Session History row-actions are aligned and consistent.
🐛 Fixes
- Fixed stale rows caused by memoized logs not invalidating correctly.
- Fixed NaN totals from mismatched log formats.
- Fixed Reset Data leaving summaries/streaks stale.
- Fixed dark-mode Undo visibility.
- Fixed search highlight inconsistencies.
- Fixed duplicated error messages during import (single clean toast now).
- Cleaned up legacy editing paths and old DOM rewrite patterns.
Readr v1.7.0 - Goals & Layout Polish
🚀 Highlights
- Beautifully refined Goals UI with consistent spacing and card styling.
- New Past Goals panel shows your monthly/yearly reading targets from previous periods.
- Weekly/monthly summaries + streak indicators now built into the Daily Goal card.
- Goal Reminder Notifications (Daily / Weekly) with browser support + in-app fallback.
- Full accessibility upgrade: ARIA announcements for all major goal events.
📑 What’s new
- Collapsible Past Goals history panel with automatic archiving.
- One-time migration to seed history for existing users.
- Compact summaries for This Week and This Month (pages + minutes).
- Current and Max streak indicators, recalculated with each session update.
- Goal Reminders inside Settings — Off → Daily → Weekly.
- Dedicated ARIA live region + screen-reader messages for:
- Daily goal saved
- Book goals saved
- Daily goal met
- New max streak reached
- Reminder mode changes
- Reminder notifications firing
🐛 Fixes
- Unified header/input spacing across all sections.
- Balanced padding and margins in Goals, Book Goals, Search, and Books cards.
- Improved mobile layout for Book Goals input grid.
- Fixed minor inconsistencies in row spacing within the Reading Log and Books List.
Readr v1.6.0 — Search & Filters
🚀 Highlights
- Major search upgrade with grouped autocomplete, saved filters, and explicit search control.
- Multi-select filters and smarter fuzzy matching deliver faster, more relevant results.
- Bulk Edit, Settings dropdown, and Installed App view round out the polished experience.
📑 What’s new
- Added dedicated Search button (works with Enter key).
- Added grouped autocomplete for Title / Author / Series / Genre.
- Added saved searches & filters with rename / delete / apply actions.
- Added inline clear (×) inside the search box.
- Added multi-select for genres and statuses.
- Added runtime DOM-safety checks (no
innerHTMLin template injection). - Added three new screenshots: Bulk Edit Dialog, Settings Dropdown, and Installed App View.
- Added five screenshots for Search & Filters, Multi-Select Filters, Saved Searches, and Results examples.
- Changed: Search now triggers only on inputs ≥ 2 characters.
- Changed: Books list uses improved fuzzy + fallback matching.
- Changed: Search button and clear visibility reflect current filter state.
🐛 Fixes
- Fixed double “×” icon in Chrome/Edge due to native search cancel button
- Fixed disappearing Clear Filters button when filters were active
- Fixed undefined sort crash when searching with empty query
- Smoothed Search button visibility logic — no more flash or stuck disabled state
Readr v1.5.0 — Book Enhancements
🚀 Highlights
- Fresh book metadata options: series/stand-alone, digital/physical, optional ISBN
- Streamlined status flow — Planned → Reading → Finished with themed buttons
- Bulk editing now supported for status, genre, and more
- Expanded accessibility: focus trapping, keyboard nav, live regions
📑 What’s new
- Added series vs stand-alone flag
- Added digital vs physical format flag with subtypes
- Optional ISBN field with live hint + validation
- Dropdown auto-suggest for author, series, genre in Add/Edit forms
- Bulk edit dialog with keyboard support
- Datalist support for Add-Book author/series inputs
- Normalization of legacy statuses to Planned/Reading/Finished
🐛 Fixes
- Bulk Edit radio switching bug fixed (only the chosen field shows now)
- “Change format subtype” panel now appears correctly when selected
- Bulk dialog focus bug (radio change now targets correct input)
- Consistent ISBN validation message across all forms
- Fixed Session History button styles:
- Prev/Next use ghost style
- Save button now teal, consistent with other save actions
- Prevent malformed ISBN values from being saved
v1.4.1 — Button & Progress Fixes
🚀 Highlights
- Core Settings menu actions (backup, import, reset) now fully functional.
- Progress bar now shows the intended red → yellow → green states at the right thresholds.
- README expanded with four new screenshots: main UI, goals & sessions, populated books list, and dark mode.
📑 What’s new
- Adjusted progress bar logic so warning state (yellow) kicks in before full success.
- Improved consistency across Settings menu buttons (Switch Mode, Clear Cache, Backup, Import, Reset Preferences).
- Added screenshots to the README to better showcase:
- Main UI
- Daily Goal, Book Goals, Add Reading Session, and Session History
- Books list (populated)
- Dark mode
🐛 Fixes
- Fixed mismatched button IDs that prevented Backup data, Import data, and Reset Preferences from working.
- Ensured Clear Cache and Switch Mode continue to operate after cache/service worker refresh.
Readr v1.4.0 — Power-User Features
🚀 Highlights
- Undo for mistakes → recover a book or session after delete/finish
- Inline editing → fix book details without re-adding
- Smarter search → fuzzy matching catches typos and partial tokens (“Hobbot” → Hobbit)
- Session history view → table with edit/delete + pagination
- Install app button → green action in Settings with hybrid state handling
- Install status pill → live badge beside Install app showing Unavailable, Ready, or Installed
- One-click Reset Preferences → clear filters/sort in Settings
- Predictable updates → “Check updates” reloads when a new Service Worker takes over
📑 What’s new
- Modular refactor —
app.jsslimmed down into dedicated modules underfeatures/,utils/, andui/ - Undo + inline editing for books and sessions
- Session history view with filters and pagination
- Fuzzy search with centralized
SEARCH_FIELD_WEIGHTSrelevance - Reset Preferences and Check updates added to Settings menu
- Install app button styled green; Reset Preferences styled grey for clear affordance
- New status pill beside Install app updates live (Unavailable → Ready → Installed)
- Global focus ring (teal / aqua in dark mode) and hover underline for links
- Dev smokes added for Undo, install button, and storage migration
- New release tooling:
dev/bump-version.jsauto-bumps SW cache + HTML script query params
🐛 Fixes
- Search highlights now map normalized matches back to original text (accents/dashes)
- Tooltip positioning fixed on resize/scroll (no stale values)
- Service Worker hardened: cache version bumped, modules precached, no unsafe calls
- Import validator corrected: OR logic, proper
itemskey, normalized statuses - Session history pagination labels + Next/Prev use shared
totalPages
🔄 Upgrade Notes
- No breaking changes — existing backups continue to work
- First load after deploy refreshes pre-cache; already-open tabs auto-reload on SW
controllerchange - Reset Preferences clears
readr:filters:v1and re-renders list - Undo applies only to the most recent delete/finish (~6s)
- Backups include version field; old backups migrate automatically
- Release process: bump SW VERSION, update
?v=query params, then runnpm run release:check
✅ QA Checklist
- Search: typo tolerance (“Hobbot”), multi-token (“har pot”), correct highlighting
- Books: inline edit/save/cancel works; delete/finish shows Undo; Undo restores
- Sessions: history table renders; edit/save/delete works; Undo restores; pagination correct
- Settings:
- Reset clears filters
- Check updates reloads on new SW
- Import/Export JSON backups with version
- Install app button: green, triggers prompt, disables after accepted
- [NEW] Install status pill updates live → Unavailable → Ready → Installed
- Keyboard: ArrowDown from search → list; Escape clears selection; Enter saves edits/goals
- Offline: open app → go offline → refresh → app still loads
Readr v1.3.3 — Bug Fixes
🚀 Highlights
- Progress bar now updates correctly and shows the expected green / amber / red states.
- Book list and filters refresh immediately after adding a new book.
📑 What’s new
- Daily goal widget correctly renders current progress and streak values.
- CSS tweak ensures the progress bar fill is always visible.
🐛 Fixes
- Replaced
window.renderguards with directrender()calls to restore re-rendering in module mode. - Fixed missing progress bar state colors (success, warning, error).
- Ensured filters (author/genre) update after new books are added.
Readr v1.3.2 — Security & Bugfixes
📑 What’s new
- Internal security hardening for toast notifications.
- Small UI polish in tooltips and settings menu behavior.
🐛 Fixes
- Fixed potential XSS in
showToast()by removinginnerHTMLusage. - Secured import/export toast messages (no more HTML injection).
- Corrected tooltip list rendering (
<li>items) and heading typo. - Fixed
ArrowUpkeyboard navigation in settings menu.
This is a patch release. No new features; recommended upgrade for improved safety.
Readr v1.3.1 — UI Polish & Service Worker Fixes
🚀 Highlights
- Refined Settings gear: label/icon adapt to light/dark theme, hover adds subtle background pulse + icon rotation.
- Accessibility: reduced-motion users see a clean fade effect instead of spin/pulse.
- Service worker fixed: versioned cache names + query-string asset busting prevent stale CSS/JS.
- Live demo now reliably reflects new releases.
📑 What’s new
- Added theme-aware color to gear label/icon.
- Gear hover/focus polish: background pulse (light = darker flash, dark = lighter flash), icon brightens + rotates.
- Service worker bumped to
v1.3.1with corrected cache handling. - Asset URLs updated with
?v=1.3.1for cache-busting.
🐛 Fixes
- Old service worker (
ignoreSearch: true, undefinedVERSION) caused stale assets to persist. - Settings label previously appeared white in light mode.