Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
f7d9cb0
perf(ui): improve v2 media grid loading
hmjn023 Aug 2, 2026
375b951
fix(ui): keep virtualized media thumbnails visible
hmjn023 Aug 2, 2026
df10483
fix(v2): defer search grid initialization
hmjn023 Aug 2, 2026
190f0ba
perf(media): reuse cached grid results
hmjn023 Aug 2, 2026
61b31bf
perf(v2): mature media loading UX
hmjn023 Aug 2, 2026
a56cffe
test(ui): cover large virtual media grids
hmjn023 Aug 2, 2026
576599d
perf(v2): prefetch media in scroll direction
hmjn023 Aug 2, 2026
b9adc00
perf(thumbnails): add responsive derivatives and warmup jobs
hmjn023 Aug 2, 2026
51d607d
perf(ui): optimize virtual media grid loading
hmjn023 Aug 2, 2026
3f6acac
test(perf): cover large gallery scrolling and thumbnail selection
hmjn023 Aug 2, 2026
07a1485
perf(ui): start pagination prefetch earlier
hmjn023 Aug 2, 2026
e928f2a
fix(review): address thumbnail and event review findings
hmjn023 Aug 2, 2026
f4505a4
Merge pull request #655 from hmjn023/perf/v2-media-grid-loading
hmjn023 Aug 2, 2026
beb9530
fix(db): preserve active thumbnail jobs during migration
hmjn023 Aug 2, 2026
2b4f8d8
Merge pull request #656 from hmjn023/fix/thumbnail-job-migration-safety
hmjn023 Aug 2, 2026
340d3b9
fix(ui): restore virtualized list scroll positions
hmjn023 Aug 2, 2026
e5d9cd5
fix(ui): avoid overwriting pending scroll restoration
hmjn023 Aug 2, 2026
16665b2
Merge pull request #657 from hmjn023/fix/virtual-scroll-restoration
hmjn023 Aug 2, 2026
1fc0604
fix(ui): preserve search scroll and recover grid images
hmjn023 Aug 2, 2026
7498040
fix(ui): keep restored virtual grids populated
hmjn023 Aug 2, 2026
a965cd3
fix(ui): initialize virtual grid after scroll restoration
hmjn023 Aug 2, 2026
dc3925f
fix(ui): stabilize v2 search scroll updates
hmjn023 Aug 2, 2026
d02df07
fix(ui): resync virtual grid after cancelled restoration
hmjn023 Aug 3, 2026
de9418d
fix(ui): resync virtual grid after result updates
hmjn023 Aug 3, 2026
4050e4b
fix(ui): notify element virtualizer after grid updates
hmjn023 Aug 3, 2026
53c7204
fix(ui): prevent virtual grid scroll reset
hmjn023 Aug 3, 2026
7d8b8ab
fix(ui): avoid suspense reset during paginated scroll
hmjn023 Aug 3, 2026
56a5b84
fix(ui): stabilize v2 media scroll restoration
hmjn023 Aug 5, 2026
7211441
test: strengthen media grid scroll assertions
hmjn023 Aug 6, 2026
151d75e
Merge pull request #658 from hmjn023/fix/search-scroll-and-grid-restore
hmjn023 Aug 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions apps/server/drizzle/0022_sleepy_turbo.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
DO $$
BEGIN
DELETE FROM "jobs" AS duplicate
USING "jobs" AS retained
WHERE duplicate."type" = 'generate_thumbnail'
AND duplicate."status" = 'pending'
AND retained."type" = duplicate."type"
AND retained."status" IN ('pending', 'in_progress')
AND retained."source_id" = duplicate."source_id"
AND retained."payload"->>'mediaId' = duplicate."payload"->>'mediaId'
AND retained."payload"->>'size' = duplicate."payload"->>'size'
AND (
retained."status" = 'in_progress'
OR (retained."created_at", retained."id") < (duplicate."created_at", duplicate."id")
);

CREATE UNIQUE INDEX "uq_jobs_active_thumbnail" ON "jobs" USING btree ("source_id",("payload"->>'mediaId'),("payload"->>'size')) WHERE "jobs"."type" = 'generate_thumbnail'
AND "jobs"."status" IN ('pending', 'in_progress')
AND "jobs"."source_id" IS NOT NULL;
END $$;
Loading