Commit Graph

173 Commits

Author SHA1 Message Date
539bb34716 perf: optimize Komga caching with unstable_cache for POST requests and reduce API calls
Some checks failed
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
7e4c48469a feat: enhance Stripstream configuration handling
- Introduced a new resolver function to streamline fetching Stripstream configuration from the database or environment variables.
- Updated various components and API routes to utilize the new configuration resolver, improving code maintainability and reducing direct database calls.
- Added optional environment variables for Stripstream URL and token in the .env.example file.
- Refactored image loading logic in the reader components to improve performance and error handling.
2026-03-11 21:25:58 +01:00
7d0f1c4457 feat: add multi-provider support (Komga + Stripstream Librarian)
Some checks failed
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
a1a95775db fix: align book sorting with Komga numberSort
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 4m19s
2026-03-05 08:45:02 +01:00
3d7ac0c13e feat: add global Komga search autocomplete in header
All checks were successful
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
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 2m6s
2026-03-02 21:20:47 +01:00
30e3529be3 fix: invalidate library series cache when read progress changes
Some checks failed
Deploy with Docker Compose / deploy (push) Failing after 48s
- Add LIBRARY_SERIES_CACHE_TAG to getLibrarySeries fetch
- Revalidate library-series tag in updateReadProgress and deleteReadProgress
- Add eslint ignores for temp/, .next/, node_modules/

Made-with: Cursor
2026-03-02 13:27:59 +01:00
fdc9da7f8f fix: support service worker toggle in prod and dev
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 2m5s
2026-03-01 21:41:33 +01:00
5a3b0ace61 fix: improve service worker offline flow and dev toggle UX 2026-03-01 12:47:58 +01:00
b8961b85c5 fix: reduce unauthenticated log noise and add request path context
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 4m46s
2026-02-28 22:18:55 +01:00
dc9f90f78f fix: preserve custom backgrounds and home fallback layering 2026-02-28 22:05:07 +01:00
01951c806d refactor: make library rendering server-first and deterministic
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 4m7s
Move library header/covers to deterministic server-side rendering, split preference controls into controlled/uncontrolled modes, and remove client cover wrapper to eliminate hydration mismatches and provider coupling on library pages.
2026-02-28 14:06:27 +01:00
612a70ffbe chore: resolve lint warnings with targeted type and rule fixes 2026-02-28 11:59:30 +01:00
1a88efc46b chore: migrate lint to ESLint CLI with flat config 2026-02-28 11:52:27 +01:00
ecce0a9738 fix: invalidate home cache when updating read progress
- Add cache tags support to BaseApiService
- Tag home data with 'home-data' tag in HomeService
- Use revalidateTag('home-data', 'max') after read progress updates
- With 'max' profile: serve stale while fetching fresh in background
2026-02-28 10:16:12 +01:00
fcbd9d0533 chore: next upgrade 2026-02-27 17:01:14 +01:00
0c3a54c62c feat: perf optimisation
Some checks failed
Deploy with Docker Compose / deploy (push) Failing after 2s
2026-02-27 16:23:05 +01:00
38c7e59366 fix: use fullTextSearch in body for series search API 2026-02-27 09:14:53 +01:00
b9c8b05bc8 fix: resolve komga api errors 2026-02-27 09:02:11 +01:00
Julien Froidefond
ad11bce308 revert: restore page-by-page download method (old method works better) 2026-01-04 11:39:55 +01:00
Julien Froidefond
1ffe99285d feat: add fflate library for file decompression and implement file download functionality in BookOfflineButton component
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 5m18s
2026-01-04 11:32:48 +01:00
Julien Froidefond
2c8c0b5eb0 feat: enhance service worker functionality with improved caching strategies, client communication, and service worker registration options
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 3m42s
2026-01-04 06:48:17 +01:00
Julien Froidefond
b497746cfa feat: enhance home and library pages by integrating new data fetching methods, improving error handling, and refactoring components for better structure
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 4m17s
2026-01-04 06:19:45 +01:00
Julien Froidefond
489e570348 feat: enrich library data by fetching book counts from the API and handling errors gracefully 2026-01-04 05:57:22 +01:00
Julien Froidefond
0d7d27ef82 refactor: streamline image handling by implementing direct streaming in BookService and ImageService, and update .gitignore to include temp directory 2026-01-03 22:03:35 +01:00
Julien Froidefond
e903b55a46 refactor: implement abort controller for fetch requests in multiple components to prevent memory leaks and improve error handling 2026-01-03 21:51:07 +01:00
Julien Froidefond
512e9a480f refactor: remove caching-related API endpoints and configurations, update preferences structure, and clean up unused services
All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 7m22s
2026-01-03 18:55:12 +01:00
Julien Froidefond
87ac116b9b feat: implement recursive file deletion in ServerCacheService to remove matching JSON cache files based on prefix key 2025-12-07 19:35:12 +01:00
Julien Froidefond
181240cd5f feat: add cache invalidation for series after updating or deleting read progress, and enhance BookGrid and BookList components with refresh functionality 2025-12-07 18:49:16 +01:00
Julien Froidefond
feb8444b35 refactor: streamline book and series services by removing deprecated methods and enhancing API calls for fetching books and series data 2025-12-07 13:09:29 +01:00
Julien Froidefond
10b903a136 refactor: update API service parameters to support multiple values and enhance filtering logic for library and series services 2025-12-07 12:58:34 +01:00
Julien Froidefond
e242b919ac Revert "refactor: implement caching for user preferences using ServerCacheService to reduce database calls and improve performance"
This reverts commit 1fa4024f91.
2025-12-07 11:57:20 +01:00
Julien Froidefond
1fa4024f91 refactor: implement caching for user preferences using ServerCacheService to reduce database calls and improve performance 2025-12-07 11:40:10 +01:00
Julien Froidefond
daeb90262a refactor: optimize ServerCacheService TTL settings for paginated lists and static data to enhance caching efficiency 2025-12-07 11:37:20 +01:00
Julien Froidefond
0bbc92b0e4 refactor: enhance library and series services to improve API data fetching and caching mechanisms, including client-side filtering for deleted items and unread status 2025-12-07 11:12:47 +01:00
Julien Froidefond
4c4ebf2b06 Revert "feat: enhance ClientSeriesPage to utilize initial series and books props for improved data handling and loading state management"
This reverts commit 239ea19ac3.
2025-12-07 10:10:55 +01:00
Julien Froidefond
239ea19ac3 feat: enhance ClientSeriesPage to utilize initial series and books props for improved data handling and loading state management 2025-12-07 10:03:44 +01:00
Julien Froidefond
39e3328123 chore: update various components and services for improved functionality and consistency, including formatting adjustments and minor refactors 2025-12-07 09:54:05 +01:00
Julien Froidefond
4f5724c0ff fix: increase maximum size parameter in library service API calls to improve data retrieval 2025-12-07 09:53:41 +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
349448ef69 feat: implement request deduplication and concurrency management in image loading for improved performance 2025-10-31 13:07:37 +01:00
Julien Froidefond
b49177ffbf feat: enhance KOMGA_DEBUG functionality to disable request delays in debug mode and log request queue statistics 2025-10-29 13:33:38 +01:00
Julien Froidefond
24431c6718 feat: add KOMGA_DEBUG environment variable for enhanced logging of Komga requests and responses 2025-10-29 13:15:17 +01:00
Julien Froidefond
0a1ae8c9ea refactor: update logger configuration to use standard ISO timestamps and simplify production output format for better readability 2025-10-29 13:12:41 +01:00
Julien Froidefond
ab67e4116b feat: enhance logger configuration with ISO 8601 timestamps and improved pino-pretty transport settings for production environments 2025-10-28 22:50:44 +01:00
Julien Froidefond
52350a43d9 feat: add logging enhancements by integrating pino and pino-pretty for improved error tracking and debugging across the application 2025-10-26 06:15:47 +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
931185f0f0 refactor: streamline ClientLayout and PreferencesContext for improved state management and debugging 2025-10-24 17:17:35 +02:00
Julien Froidefond
4805e82527 fix: update authentication configuration to disable secure cookies and streamline session token retrieval 2025-10-24 15:32:55 +02:00
Julien Froidefond
ac5fa85185 refactor: migrate from MongoDB to SQLite, updating database schema and configuration for improved performance and simplicity 2025-10-24 15:11:29 +02:00