Thomas Camlong
ffed73ba8f
merge: incorporate latest dev changes into phase1-perf branch
...
Merge origin/dev to pick up service isolation (concurrently dev script,
turbopack aliases, instrumentation simplification), PostHog analytics,
color scheme, and other dev improvements while preserving all Phase 1
performance work (Suspense boundaries, cache components, Redis handler,
integration barrel diet, cache invalidation).
2026-08-07 21:36:48 +02:00
Thomas Camlong
38ac8f3075
fix: concurrent cache miss, SVG output, narrowed error handling, format
...
- Fix integration data cache: check pending promise before TTL to
prevent returning undefined on concurrent cold-cache access
- Add concurrent-miss test (two parallel callers, one fetch)
- SVG sanitizer: extract <svg> from DOMPurify output to strip
residual HTML wrapper
- Narrow safeRevalidateTag catch: log unexpected errors, silence only
known "outside request scope" messages
- Run oxfmt across all packages (206 files formatted)
2026-08-07 20:48:17 +02:00
Thomas
b32ad82850
perf: cut cold route compilation and unblock preview images ( #6441 )
2026-08-07 20:24:26 +02:00
Thomas Camlong
6b45aca5d5
fix: address Bugbot review findings
...
- Skip module-level integration cache for multi-instance (REDIS_IS_EXTERNAL)
- Add invalidateBoardCache to permission mutations (prevents future leak)
- Remove unused cacheTags.integrationData
- Replace KEYS with SCAN in Redis cache handler refreshTags()
- Document REDIS_CACHE_DB env var
2026-08-07 19:04:53 +02:00
Thomas Camlong
018f98e318
perf: implement Phase 1 homepage diet via Next.js Cache Components
...
P1-0: V8 heap cap (HOMARR_MAX_OLD_SPACE_SIZE, default 512MB)
P1-1: Module graph cuts
- Dynamic integration imports (55 static → lazy loaders)
- Conditional DB driver loading (only configured driver loaded)
- Replace jsdom with linkedom for SVG sanitization
- Delete eager widget barrel (55 import * as → 0)
- Extract createRetryableLoader to @homarr/common
P1-2: Enable cacheComponents + restructure root layout
- Suspense boundaries around session-dependent providers
- ColorSchemeScript replaces server-side cookie reads
- Board/manage/auth layouts wrapped in Suspense
P1-3: Cache read paths
- Cache tag registry + invalidation helpers
- Cache invalidation wired into all mutation routers
- Translation deep-merge memoized per locale
P1-4: Prerendered shells + loading.tsx files
P1-5: Shared integration data cache (60s TTL, stale-while-revalidate)
P1-6: Redis-backed Next.js cache handler (@homarr/next-cache-handler)
P1-7: Redis optional (memory channel fallback), TTL on pubSub:last:*,
Redis clients consolidated from 6 to 2
2026-08-07 18:59:47 +02:00
Thomas
f76a0f240a
feat(apps): allow custom URI schemes in application links ( #6521 )
2026-08-06 21:52:56 +02:00
Thomas
637f03e107
docs(settings): update analytics docs to PostHog ( #6525 )
2026-08-06 21:47:04 +02:00
Thomas Camlong
08af704c8a
Merge origin/dev into feat/build-performance
2026-08-03 15:21:23 +02:00
Thomas
018f84f80d
feat(dev): add Docker development CLI ( #6495 )
2026-08-03 14:38:56 +02:00
Thomas Camlong
de801f3f00
perf: optimize dashboard loading and builds
2026-08-02 15:58:16 +02:00
Thomas
27ca058088
feat(widgets): persist Beszel and Docker table layouts ( #6490 )
2026-08-01 23:20:09 +02:00
Thomas
b52bc03c8d
Merge pull request #6499 from homarr-labs/docs/update-helm-docs
...
docs(helm): update chart installation page
2026-08-01 23:07:58 +02:00
Thomas
edb56f3fcd
fix: accept direct icon URLs
...
Use valid direct HTTP(S) icon URLs without repository search.
2026-08-01 23:06:26 +02:00
github-actions[bot]
bd669a1a8f
docs(helm): update chart installation page
2026-07-31 19:35:37 +00:00
Thomas
ade640dcea
test(navidrome): complete cleanup review ( #6494 )
...
* test(navidrome): hoist album fixture helper
* test(navidrome): address coderabbit cleanup feedback
2026-07-31 14:39:11 +02:00
Thomas
61128ddcc8
fix(navidrome): clean up audio stats integration ( #6493 )
2026-07-31 14:20:51 +02:00
ajnart
81a13d3b52
Merge remote-tracking branch 'origin/dev' into feat/build-performance
2026-07-31 13:38:16 +02:00
Matt Van Horn
06d9c07d22
feat: expose Navidrome as a media-server (now-playing) integration ( #6070 )
2026-07-31 13:30:44 +02:00
Thomas
49d0f1a141
docs: explain Podman socket setup ( #6487 )
...
* docs: explain Podman socket setup
* docs: clarify Podman runtime requirements
* docs: complete Podman compose examples
2026-07-29 16:53:29 +02:00
ajnart
4ca0b747bb
chore(next): upgrade preview and isolate dev services
2026-07-29 06:47:07 +02:00
Thomas
489980814c
Merge pull request #6465 from homarr-labs/docs/update-helm-docs
...
docs(helm): update chart installation page
2026-07-28 22:59:08 +02:00
Thomas
906c9f11fa
feat(widgets): rework downloads widget with mantine-datatable ( #6430 )
2026-07-28 21:50:09 +02:00
Thomas
e66979bab6
feat(auth): link credentials users with OIDC ( #6445 )
2026-07-28 14:49:51 +02:00
github-actions[bot]
f33fc838cf
docs(helm): update chart installation page
2026-07-24 21:17:32 +00:00
Thomas
7bbfd74454
Merge pull request #6384 from homarr-labs/docs/update-helm-docs
...
docs(helm): update chart installation page
2026-07-23 02:04:11 +02:00
Thomas
14c3fa2e76
fix(beszel): prevent live subscription memory growth ( #6448 )
...
* fix(beszel): bound live stats subscriptions
* fix(beszel): avoid blocking subscription teardown
* fix(import): map new clock options
2026-07-23 02:03:08 +02:00
Thomas
97652802f0
feat(immich): show random photos without album ( #6424 )
2026-07-21 16:10:45 +02:00
Thomas
01e0f3612d
docs(immich): list Asset View permission ( #6408 )
2026-07-20 14:57:07 +02:00
Thomas
0015a6d88d
fix(immich): use thumbnail endpoint instead of original for album carousel ( #6396 )
...
* fix(immich): use thumbnail endpoint instead of original for album carousel
Switches from /api/assets/:id/original to /api/assets/:id/thumbnail to fix
HEIC image incompatibility (thumbnails are always JPEG), reduce bandwidth,
and improve loading speed.
Closes #6388
* working on immich
* Improve image proxy error handling
* fix(image-proxy): use trusted fetch response type
* docs(immich): require Asset View permission
2026-07-20 14:53:27 +02:00
github-actions[bot]
ac6a0c9254
docs(helm): update chart installation page
2026-07-17 19:24:43 +00:00
Thomas
06719cdef0
fix(ci): remove coverage report, scope format to changed files, fix oxlint config ( #6359 )
2026-07-16 10:21:07 +02:00
Thomas
8528d5068b
feat(media-requests): filter requests list by status and time window ( #6320 )
2026-07-15 16:27:24 +02:00
homarr-renovate[bot]
bf55bcce92
fix(deps): update dependency swiper to ^14.0.5 ( #6341 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-14 23:55:02 +00:00
Thomas
06f1877ae1
Merge pull request #6282 from homarr-labs/docs/update-helm-docs
...
docs(helm): update chart installation page
2026-07-13 18:11:10 +02:00
homarr-renovate[bot]
269dadee8d
fix(deps): update dependency swiper to ^14.0.2 ( #6313 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-12 18:09:11 +00:00
Artur
d44bc06a93
feat(notebook): support text direction controls ( #6293 )
2026-07-12 07:58:02 +02:00
Thomas
576856d634
fix(beszel): add reliable live stats and filesystem UI ( #6289 )
2026-07-11 17:55:04 +02:00
github-actions[bot]
34bd574354
docs(helm): Update Helm chart documentation
2026-07-10 20:32:11 +00:00
Josh Preston and Thomas
33395ae226
feat(integrations): add PatchMon integration and widget ( #6119 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:48:43 +02:00
a2cf2d6cff
Update Helm chart documentation ( #6261 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
Co-authored-by: Releases Homarr <175486441+homarr-releases[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-10 17:33:35 +02:00
Anil K Tiwari and Thomas
9fb2e37605
feat(widgets): add missing & queued media widget for Radarr and Sonarr ( #6078 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:31:08 +02:00
Felix-Ayush and Thomas
2c5368dd4e
feat: add Bazarr integration and subtitle status widget ( #6156 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 17:29:10 +02:00
Thomas
7c152cf4fe
feat(api): expose board automation endpoints ( #6213 )
...
* feat(api): expose board automation endpoints
* style: auto-fix lint and format
* test(api): cover board settings updates
* Delete .opencode/changelog/2026-07-06.md
2026-07-10 17:27:42 +02:00
Nerdy Technician and Thomas
9864fed775
feat: Add Traefik Integration with dedicated widget and Add optional Icons for Gotify/Notifcation Widget (ONLY GOTIFY) ( #6206 )
...
Co-authored-by: Thomas <thomas@ajnart.fr >
2026-07-10 16:49:24 +02:00
Josh Preston
65ba866239
feat: add Synology integration support for health/system monitoring ( #6121 )
2026-07-09 18:23:21 +02:00
Thomas Camlong
31288dcbfe
fix(docs): update Algolia crawler config with exclusion patterns and ignoreCanonicalTo
2026-07-07 10:08:24 +02:00
Thomas Camlong
ae2f05c834
fix(docs): sitemap priorities, exclude category redirects, remove trailingSlash
2026-07-07 09:57:32 +02:00
Thomas
2e8fddd29f
fix(docs): fix docs build — MDX acorn error and CSS @import ordering ( #6217 )
2026-07-06 10:14:36 +02:00
Thomas and homarr-renovate[bot]
4d42eb65e4
chore(deps): mega dependency update ( #6212 )
...
Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com>
2026-07-06 10:05:51 +02:00
Thomas
a3df31ff05
Revise Immich API key permissions in documentation
...
Updated API key permissions for Immich integration documentation.
2026-07-04 21:49:08 +02:00