Thomas Camlong
|
9bc1fc397c
|
chore: remove .cursor/goal files from git
|
2026-08-08 09:08:48 +02:00 |
|
Thomas Camlong
|
345a4be4b0
|
fix: CI build errors + simplify cache handler and data cache
- Remove `export const dynamic` from 4 routes (incompatible with cacheComponents)
- Static import for redis-handler (Turbopack can't resolve relative dynamic imports)
- Simplify redis-handler: Buffer.concat, NonNullable, single connect promise
- Inline single-use helpers in integration-data-cache
- Non-greedy SVG regex to prevent ReDoS
- Inline getDevelopmentServiceAliases in next.config
- Remove restating comments
|
2026-08-08 00:19:27 +02:00 |
|
Thomas Camlong
|
6f563640ac
|
fix: remove as const from svgSanitizeOptions to fix DOMPurify type compat
|
2026-08-07 22:12:09 +02:00 |
|
Thomas Camlong
|
b81b90875f
|
fix: revert DB driver to static imports, fix test regressions
- Revert createRequire() for DB drivers — require() can't resolve .ts
files in Vitest, breaking 49 test suites
- Make cache invalidation fail-safe via try-catch around revalidateTag
(throws outside Next.js context: tests, tasks service, websocket)
- Fix 6 integration test imports: barrel no longer exports concrete
classes, point tests at direct source paths
- Fix Redis cache handler lint errors: remove non-null assertions,
suppress __NEXT_BUILD_ID underscore warning
|
2026-08-07 20:43:07 +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
|
906c9f11fa
|
feat(widgets): rework downloads widget with mantine-datatable (#6430)
|
2026-07-28 21:50:09 +02:00 |
|
Thomas
|
93c008ff4f
|
docs: add varied improvements (#5942)
|
2026-06-12 15:50:41 +02:00 |
|
Thomas
|
9e421c67bd
|
feat(docs): migrate documentation site into monorepo (#5912)
|
2026-06-11 18:48:39 +02:00 |
|
Thomas
|
6baff7be3d
|
feat: add MCP server for AI assistant integration (#5882)
|
2026-06-10 18:28:34 +02:00 |
|
 ThomasandMeier Lukas
|
b5c316b825
|
feat(spotlight): rework !bang search UX (#4813)
Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
|
2026-05-07 18:38:40 +02:00 |
|