Add Library thumbnail previews and a resizable panel - #243
Open
OmarB97 wants to merge 1 commit into
Open
Conversation
Asset rows now render their pre-rendered <name>.thumb.png beside the filename instead of showing bare text, falling back to the existing text-only row when no thumbnail exists. The Library panel can also be resized by dragging its edge, with the chosen width persisted across restarts.
This was referenced Jul 28, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The Library popover lists every Workflows/Exports asset as a bare filename. Once you have more than a handful of exports, the list turns into unreadable filename soup, and the popover has a fixed width, so there's no way to see more of a name or path without scrolling.
Changes
.glb/.gltfrow now shows its pre-rendered<name>.thumb.pngas an 80px square tile beside the name, loaded through a newworkspace:library:thumbnailIPC handler that reuses the same workspace-path validation as the existingworkspace:library:read/openhandlers (electron/main/artifact-registry-service.ts,electron/preload/electron-api.ts,src/areas/generate/assetLibraryService.ts).localStorageso it survives restarts (src/areas/generate/assetLibraryUi.ts,src/areas/generate/GeneratePage.tsx).Degrading without a thumbnail
If
<name>.thumb.pngdoesn't exist, or fails to read, the IPC handler returns{ success: false }with no error payload — a missing thumbnail is a normal, silent condition, not a surfaced error. The row then renders exactly as it did before this change: no image element, no broken-image icon, just the existing text-only row.Testing
npm run lint— cleannpm test(test:py+test:node, including all existingassetLibrary*.test.tsfiles) — all pass, plus new tests covering the thumbnail read path (missing file, non-mesh asset, unsafe/traversal path) and the panel-width clamp/persistence helpersnpm run build— renderer, main, and preload all build successfully