1d03cfc177
feat: add favorite series carousel on home page
...
Build, Push & Deploy / deploy (push) Successful in 4m15s
Displays a carousel of favorite series after the ongoing sections.
Hidden when the user has no favorites.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-15 16:03:06 +01:00
539bb34716
perf: optimize Komga caching with unstable_cache for POST requests and reduce API calls
...
Deploy with Docker Compose / deploy (push) Has been cancelled
- Fix POST requests (series/list, books/list) not being cached by Next.js fetch cache
by wrapping them with unstable_cache in the private fetch method
- Wrap getHomeData() entirely with unstable_cache so all 5 home requests are cached
as a single unit, reducing cold-start cost from 5 parallel calls to 0 on cache hit
- Remove N+1 book count enrichment from getLibraries() (8 extra calls per cold start)
as LibraryDto does not return booksCount and the value was only used in BackgroundSettings
- Simplify getLibraryById() to reuse cached getLibraries() data instead of making
separate HTTP calls (saves 2 calls per library page load)
- Fix cache debug logs: replace misleading x-nextjs-cache header check (always UNKNOWN
on external APIs) with pre-request logs showing the configured cache strategy
- Remove book count display from BackgroundSettings as it is no longer fetched
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 23:10:31 +01:00
7d0f1c4457
feat: add multi-provider support (Komga + Stripstream Librarian)
...
Deploy with Docker Compose / deploy (push) Has been cancelled
- Introduce provider abstraction layer (IMediaProvider, KomgaProvider, StripstreamProvider)
- Add Stripstream Librarian as second media provider with full feature parity
- Migrate all pages and components from direct Komga services to provider factory
- Remove dead service code (BaseApiService, HomeService, LibraryService, SearchService, TestService)
- Fix library/series page-based pagination for both providers (Komga 0-indexed, Stripstream 1-indexed)
- Fix unread filter and search on library page for both providers
- Fix read progress display for Stripstream (reading_status mapping)
- Fix series read status (books_read_count) for Stripstream
- Add global search with series results for Stripstream (series_hits from Meilisearch)
- Fix thumbnail proxy to return 404 gracefully instead of JSON on upstream error
- Replace duration-based cache debug detection with x-nextjs-cache header
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-11 11:48:17 +01:00
3d7ac0c13e
feat: add global Komga search autocomplete in header
Deploy with Docker Compose / deploy (push) Successful in 5m50s
2026-03-04 13:46:02 +01:00
6a06e5a7d3
fix: disable service worker by default in production
Deploy with Docker Compose / deploy (push) Successful in 2m6s
2026-03-02 21:20:47 +01:00
fdc9da7f8f
fix: support service worker toggle in prod and dev
Deploy with Docker Compose / deploy (push) Successful in 2m5s
2026-03-01 21:41:33 +01:00
e6fe5ac27f
fix: harden offline fallback and track visitable pages
Deploy with Docker Compose / deploy (push) Successful in 1m36s
2026-03-01 18:33:11 +01:00
5a3b0ace61
fix: improve service worker offline flow and dev toggle UX
2026-03-01 12:47:58 +01:00
Julien Froidefond
0d33462349
feat: update service worker to version 2.4, enhance caching strategies for pages, and add service worker reinstallation functionality in CacheSettings component
Deploy with Docker Compose / deploy (push) Successful in 2m57s
2026-01-04 07:39:07 +01:00
Julien Froidefond
2c8c0b5eb0
feat: enhance service worker functionality with improved caching strategies, client communication, and service worker registration options
Deploy with Docker Compose / deploy (push) Successful in 3m42s
2026-01-04 06:48:17 +01:00
Julien Froidefond
512e9a480f
refactor: remove caching-related API endpoints and configurations, update preferences structure, and clean up unused services
Deploy with Docker Compose / deploy (push) Successful in 7m22s
2026-01-03 18:55:12 +01:00
Julien Froidefond
df3c386199
feat: add view mode toggle and update pagination controls in PaginatedSeriesGrid component
2025-11-16 08:05:57 +01:00
Julien Froidefond
3b24fe0f01
feat: implement view mode toggle functionality in PaginatedBookGrid and PaginatedSeriesGrid components
2025-11-16 08:02:37 +01:00
Julien Froidefond
7cc72dc13d
feat: implement advanced settings for user preferences, allowing configuration of max concurrent requests, reader prefetch count, and circuit breaker settings
2025-10-24 17:50:58 +02:00
Julien Froidefond
bc3da12fbb
feat: enhance service worker caching strategies and implement offline accessibility checks for books
2025-10-19 20:23:37 +02:00
Julien Froidefond
d3860ce7cc
feat: add tabbed interface for ClientSettings with display, connection, and cache options
2025-10-19 10:40:04 +02:00
Julien Froidefond
0c080bd525
feat: implement image caching mechanism with configurable cache duration and flush functionality
2025-10-19 10:36:19 +02:00
Julien Froidefond
7d9bac5c51
feat: add scan library functionality and related error handling in LibraryHeader and services
2025-10-19 09:55:07 +02:00
Julien Froidefond
9024a78938
feat: enhance ClientLibraryPage with LibraryHeader component and improve loading skeleton structure for better user experience
2025-10-18 21:59:13 +02:00
Julien Froidefond
816abe2b90
feat: add cache entries API and enhance CacheSettings component with server and service worker cache previews
2025-10-18 13:45:15 +02:00
Julien Froidefond
b7704207ec
feat: add caching debug logs and configurable max concurrent requests for Komga API to enhance performance monitoring
2025-10-18 09:08:41 +02:00
Julien Froidefond
f5e1332e21
feat: add force reload functionality to PhotoswipeReader for refreshing images and improve memory management by revoking blob URLs
2025-10-17 22:53:58 +02:00
Julien Froidefond
4672532a3a
feat: integrate PhotoswipeReader component and remove BookReader for enhanced reading experience; add zoom functionality to control buttons
2025-10-17 17:04:37 +02:00
Julien Froidefond
2e183bb5d6
feat: add background customization settings with gradient and image options, update preferences context and UI components for user preferences management
2025-10-17 10:47:05 +02:00
Julien Froidefond
77742bbec2
feat: add retry functionality to ErrorMessage component and implement retry logic in ClientLibraryPage and ClientSeriesPage for improved error handling
2025-10-17 10:21:35 +02:00
Julien Froidefond
f636a7b112
feat: add cache size retrieval functionality and display in CacheSettings component
2025-10-17 08:23:27 +02:00
Julien Froidefond
9899789fce
feat: add admin role management with user authentication checks and update sidebar for admin access
2025-10-16 22:39:04 +02:00
Julien Froidefond
83f523c11a
feat: implement user account management features including profile display and password change functionality
2025-10-16 22:27:06 +02:00
Julien Froidefond
4139d8a059
refactor: streamline LibraryPage component by integrating ClientLibraryPage for improved structure and error handling
2025-10-16 13:25:51 +02:00
Julien Froidefond
fcd084863a
feat: add pagination size selection and compact view toggle in series grid
2025-03-28 13:51:44 +01:00
Julien Froidefond
66f467c66b
feat: nextbook on next page if last page
2025-03-07 08:15:34 +01:00
Julien Froidefond
60481d9433
feat: errors traductions
2025-03-06 21:48:47 +01:00
Julien Froidefond
907e09682b
fix: little bugs and refacto debug service
2025-03-06 21:41:24 +01:00
Julien Froidefond
2289753b84
feat(i18n): components pack translated
2025-03-02 06:31:41 +01:00
Julien Froidefond
d94232e531
feat(i18n): controlbutton
2025-03-02 06:15:20 +01:00
Julien Froidefond
00554d73b0
fix: error on book fetches
2025-02-28 08:11:32 +01:00
Julien Froidefond
bc2ceadb8f
fix: errorMessage has to throw apperror code if apperror
2025-02-28 08:00:34 +01:00
Julien Froidefond
279f6c6e88
refacto: error and types
2025-02-27 21:59:14 +01:00
Julien Froidefond
ea51ff53a9
feat(i18n): first shoot on translated errors
2025-02-27 15:05:44 +01:00
Julien Froidefond
e76b849b17
feat(i18n): loginpage translate
2025-02-27 12:48:59 +01:00
Julien Froidefond
148bfd71e1
feat(i18n): download page
2025-02-27 12:45:03 +01:00
Julien Froidefond
0d1d969e53
feat(i18n): series page
2025-02-27 12:33:58 +01:00
Julien Froidefond
52a212ef07
feat(i18n): translate library page
2025-02-27 12:29:15 +01:00
Julien Froidefond
ed8817d76c
feat: i18n : sidebar and settings page
2025-02-27 11:48:20 +01:00
Julien Froidefond
f39e4779cf
feat: first shoot on translation
2025-02-27 11:31:39 +01:00