Commit Graph

40 Commits

Author SHA1 Message Date
neon c4ab4a9153 feat: add in-app release notes viewer
Introduces a new feature to fetch, parse, and display app release notes
and update highlights directly within the UI.

- Backend: Adds the `release-notes` module to fetch GitHub releases
  and parse markdown highlight sections.
- Frontend: Adds the `WhatsNew` dialog and view, including custom
  markdown rendering and an image lightbox for update media.
- Tools: Adds validation scripts (`whats-new-lint`, `whats-new-preview`)
  to ensure release content parses correctly before publication.
2026-06-18 03:37:53 +00:00
neon 8bee4905bb feat(book): implement file rename and delete interactions
- Adds rename and delete file capabilities to Book Details > Files tab
- Automatically promotes a fallback file to primary upon deletion
- Refactors path update logic to correctly apply db folder path updates
- Ensures file type format badges in header search use global format colors
- Replaces legacy file property overrides with rename-only DTO

Closes #214
2026-06-08 14:36:29 -06:00
neon 513dfa21a7 feat(client): add docs and github star actions to app header
improve header discoverability with quick access to documentation and
community support actions. keep the github prompt in a dismissible
popover to avoid adding noise to the main navigation.
2026-05-22 17:10:22 +00:00
neon b50c820804 feat(achievements): move achievements to dedicated /achievements route
Extract the achievements page out of /statistics?tab=achievements into its
own /achievements route. Add a page header with a Trophy icon and subtitle
to match the app visual style (consistent with BookDockView pattern).

Add a beforeEnter redirect on the statistics route so ?tab=achievements links
continue to work. Update AppHeader navigation and active state checks to use
the new route name. Remove the achievements tab conditional from StatisticsPage.
2026-05-20 21:45:17 -06:00
neon eb9b714ecb feat: add full-stack achievements system
- add achievement schema, migrations, evaluators, APIs, and backfill support on the server
- add achievements UI, composables, toast utilities, and tests on the client
- add shared achievement/auth/notification type updates
2026-05-16 15:50:42 +00:00
neon 6669c4cb51 feat(ui): unify mobile controls and polish authors/series/dashboard UX
- refactor ViewHeader into reusable desktop/mobile subcomponents (desktop search, display controls, mobile menu, mobile search sheet)
- standardize mobile search/sort/filter behavior across Home, Collection, Smart Scope, Authors, and Series
- fix duplicate search clear icons by suppressing native search cancel controls where custom clear buttons are used
- move Authors and Series into contained scroll regions and tighten mobile paddings/margins for better header alignment
- fix author card count/kebab z-index overlap with sticky headers
- clamp author bio to 2 lines on mobile with show more/less toggle
- simplify Series filters by removing separate author filter and support searching series by title or author name
- update series repository query logic to include author-name matching in `q` search
- improve mobile sheet sizing for Customize Dashboard and Notifications; add compact personalized dashboard greeting
- remove sidebar trigger tooltip and prevent action-bar icon/button shrink issues
2026-05-09 21:59:25 -06:00
neon c85379e4ff feat(auth): enforce edit restrictions on demo-restricted accounts 2026-04-25 23:34:57 -06:00
neon 739d311e9e chore: sync dependency branch with main 2026-04-25 21:35:27 -06:00
neon f0787914b7 style(client): standardize card and dialog corner radius
apply rounded-lg consistently across client cards, dialogs, and surface containers to keep UI shape language uniform
2026-04-21 20:20:46 -06:00
neon cfc3672a6c refactor: rename book-bucket to book-dock and lens to smart-scope 2026-04-20 22:57:27 -06:00
neon 40d829a8a9 feat(notifications): add notification center with real-time updates
- add notifications DB schema, repository, service, gateway, and controller
- add shared notification types, categories, and preference models
- add NotificationAccess permission with authorization matrix probe
- add frontend composable with Socket.IO subscription and REST API
- add NotificationPopover, NotificationItem, and NotificationPreferences components
- integrate notification producers in scanner, metadata fetch, book bucket, author enrichment, email, migration, and file write-back services
- add 30-day auto-cleanup via existing CleanupService cron
- add 29 backend unit tests for notification service and controller
2026-04-15 03:15:05 -06:00
neon 704ce09674 feat(client): add micro animations and stagger animation composables 2026-04-14 07:39:59 -06:00
neon 0bf0a5b9fa feat: add guided onboarding tour
- install driver.js and add 9-step tour covering libraries, lenses,
  collections, search, statistics, appearance, upload, and book bucket
- first step context-aware: points to welcome card on first run, falls
  back to settings nav when libraries already exist
- tour state persisted in user.settings JSONB, survives across devices
- skip on mobile; any dismissal (skip or done) marks tour complete
- theme the tour popover with app design tokens (card, primary, radius)
- add "Take the tour again" button in Settings > Account (desktop only)
2026-04-14 02:54:08 -06:00
neon 0aad8c0d7d feat: consolidate mobile UX and filtering updates
- improve responsive layouts and controls across dashboard, home, lens, collection, authors, and book detail surfaces

- modernize settings and metadata provider UIs, including the floating dashboard settings action and cleaner section composition

- add synced or per-view cover sizing and spacing behavior, plus expanded mobile filter and sort control patterns

- extend backend filtering with library rules and increase hardcover ID limits across schema, DTO validation, and migration metadata
2026-04-12 09:45:00 -06:00
neon 26d1e6ebc8 feat: improve header UI and optimize docker storage configuration 2026-04-08 20:34:38 -06:00
neon abd06c5ccd style(books): sort search format pills and align detail cover 2026-04-03 20:54:11 -06:00
neon 0a58a87239 refactor(scanner): rename staging module to book bucket 2026-04-03 20:50:11 -06:00
neon 61746cb62c feat: add format breakdown to Reading Clock with improved tooltip 2026-03-26 10:41:07 -06:00
neon d2eba30728 feat(metadata): batch library overrides and improve comic refresh 2026-03-24 20:09:15 -06:00
neon eb5d08ad24 feat: add account avatar management and tighten user email requirements 2026-03-23 04:06:26 -06:00
neon 7d3a88e23d feat(client): add staging and statistics nav buttons to header 2026-03-20 03:19:38 -06:00
neon 416952a3a0 feat: refine theme tokens and apply consistent styling 2026-03-18 06:57:19 -06:00
neon 2102d0f9d8 feat(scanner): improve staging metadata and destination finalize flow 2026-03-11 03:33:31 -06:00
neon 956801f907 feat: redesign settings pages, theme tokens, and fix layout alignment 2026-03-10 04:21:33 -06:00
neon 440972cb89 refactor(settings): move settings from drawer to dedicated tabbed view 2026-03-10 04:20:33 -06:00
neon 17e8ba0f49 fix(client): extract onSearchBlur to prevent Prettier multiline issue
- Prettier was re-expanding the inline semi-colon separated handler back to multi-line on each commit, breaking the Vue compiler
- extract into a named function to avoid the issue
2026-03-10 04:16:33 -06:00
neon dcc60006f5 feat: expand accent palette and replace ThemeToggle with ThemePicker
- add 16 pastel accent colors (coral, peach, butter, lemon, celadon, sage, mint, seafoam, powder, mist, periwinkle, wisteria, lavender, orchid, blush, grey)
- replace ThemeToggle icon button with ThemePicker segmented light/dark control
- wire ThemePicker into AppHeader alongside existing accent/radius/background pickers
- update AccentPicker, BackgroundPicker, RadiusPicker to reflect new palette structure
- update theme store with ACCENT_VIVID/ACCENT_PASTEL split and full type union
2026-03-10 04:15:33 -06:00
neon 0686ae6477 refactor: overhaul UI layout and modernize design system
- transition to floating UI with centralized background pattern in AppLayout
- restructure core layout for stable headers and independent view scrolling
- synchronize component radii (scrollers, cards, skeletons) with global settings
- standardize headers and book detail tabs for consistent alignment and height
- enhance AppSidebar, AppHeader, and ViewHeader with refined active states
- center project logo in collapsed sidebar by removing offset padding
- update shadcn components and theme bridge for consistent design system support
2026-03-06 00:17:10 -06:00
neon 911dc27467 fix(server): add trigram indexes for search and fix header z-index
- enable pg_trgm extension in db module on startup
- add GIN trigram indexes on book_metadata title, series_name and authors name
- refactor book search query to use LEFT JOIN instead of correlated EXISTS subquery
- fix jwt-auth guard to use /api/v1/ prefix for password-change allowlist
- regenerate baseline migration to incorporate schema index changes
- fix AppHeader sticky z-index from z-10 to z-30 so search dropdown renders above book card series badges
2026-03-01 18:53:22 -06:00
neon 43d0f5017c feat(client): overhaul global search with keyboard nav and highlights
- widen search input on focus (max-w-xs -> max-w-lg) with smooth transition
- fix result click to navigate to book detail page instead of library
- add keyboard navigation (arrow keys, enter, esc) with visual selection
- add Cmd+K / Ctrl+K shortcut to focus search from anywhere
- highlight matched text in title, author, and series fields
- show format badges (epub, pdf, mobi, etc.) per result row
- add row separators and larger cover thumbnails
- show "No results" only after debounce settles, not during typing
- extend search to match author names and series in addition to title
- add settled ref to useGlobalSearch to track fetch completion
- fix v-if -> v-show for grid/list view toggles in Home/Lens/CollectionView
2026-03-01 18:42:59 -06:00
neon f60584cf16 feat(books): add icon tooltips, book export, and bulk book actions
- add tooltips to all header icons (search, upload, appearance, settings, theme toggle, sidebar trigger)
- fix appearance popover by moving Tooltip outside Popover
- add POST /api/books/export endpoint to zip and download books
- add POST /api/books/bulk-refresh-metadata and bulk-re-extract-cover endpoints
- add BulkBookIdsDto and ExportBooksDto
- add archiver dependency for zip streaming
- update theme CSS variables and component styles across client
2026-03-01 10:55:31 -06:00
neon ede3bd926a feat: file upload with configurable naming patterns 2026-02-25 17:17:43 -06:00
neon 3ff1cd5882 feat(client): add glass sidebar/header and surface brightness control 2026-02-17 13:05:37 -06:00
neon 68a51e52c0 feat(client): add background picker to appearance popover 2026-02-05 19:25:55 -06:00
neon a00c5a54dd feat(books): add book detail page with tabs and keep-alive grid scroll 2026-01-26 15:33:18 -06:00
neon 71505ad05d feat(client): expand accent palette to 15 vivid and 15 pastel colors 2026-01-24 23:45:37 -06:00
neon 0f1bc55b24 refactor: split AppHeader into global nav and per-view ViewHeader 2026-01-21 19:20:01 -06:00
neon bc1ee837bf feat(books): add lens with query engine, filter builder, and icon picker 2026-01-21 18:07:07 -06:00
neon 86ff97bc82 feat(client): add responsive header with global search and filter bar 2026-01-15 05:38:45 -06:00
neon 51107bae59 feat(client): add theming system, shadcn-vue UI, and sidebar 2025-12-22 17:03:11 -06:00