perf(frontend): parallelize video thumbs, batch owner-cache writes, minor tweaks

- photos: generate + upload the three video-thumbnail sizes in parallel via
  Promise.allSettled instead of a sequential await loop; previewData is still
  captured before its upload so the local preview survives a failed upload.
- useOwnerCache: resolve the batch, then apply a single reactive assignment
  to `#names` instead of spread-copying the record once per id (fewer copies
  and fewer derive re-runs on large resolves).
- admin: migration status polling slowed from 2s to 5s.
- files store: soft cap (10k) on the per-item selection toggle. Bulk
  "select all" in the views is intentionally left uncapped.
This commit is contained in:
Claude
2026-06-19 23:06:12 +00:00
parent c60506cc36
commit f831636cf9
4 changed files with 26 additions and 14 deletions
+6 -1
View File
@@ -96,10 +96,15 @@ class FilesStore {
this.selection = new Set();
}
// Soft ceiling so the per-item toggle can't grow the set without bound.
// (Bulk "select all" lives in the views and intentionally isn't capped —
// silently dropping ids there would break batch delete/move.)
static readonly MAX_SELECTION = 10_000;
toggleSelected(id: string): void {
const next = new Set(this.selection);
if (next.has(id)) next.delete(id);
else next.add(id);
else if (next.size < FilesStore.MAX_SELECTION) next.add(id);
this.selection = next;
}
}