perf(studio-server): coordinate cancelable thumbnail generation (#2720)

* perf(studio): schedule adaptive timeline thumbnails

* perf(studio): bound thumbnail decoding resources

* perf(studio): virtualize timeline thumbnail media

* perf(studio): prioritize timeline thumbnail work

* perf(studio-server): coordinate cancelable thumbnail generation

---------

Co-authored-by: Codex <codex@local>
This commit is contained in:
Miguel Ángel
2026-08-05 20:41:35 -07:00
committed by GitHub
co-authored by Codex
parent 27d113e56c
commit 96861cbafc
59 changed files with 3537 additions and 879 deletions
@@ -14,6 +14,7 @@ export interface StudioUiPreferences {
timelineHeight?: number;
playbackRate?: number;
audioMuted?: boolean;
thumbnailMode?: "adaptive" | "hidden";
previewZoom?: StoredPreviewZoomState;
recentBlocks?: string[];
snapEnabled?: boolean;
@@ -80,6 +81,11 @@ function readStorage(storage: Storage | null): StudioUiPreferences {
if (typeof parsed.audioMuted === "boolean") {
preferences.audioMuted = parsed.audioMuted;
}
if (parsed.thumbnailMode === "adaptive" || parsed.thumbnailMode === "hidden") {
preferences.thumbnailMode = parsed.thumbnailMode;
} else if (typeof parsed.thumbnailsEnabled === "boolean") {
preferences.thumbnailMode = parsed.thumbnailsEnabled ? "adaptive" : "hidden";
}
if (isRecord(parsed.previewZoom)) {
const { zoomPercent, panX, panY } = parsed.previewZoom;
if (