You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perima-media::ThumbnailGenerator writes 256px WebP thumbnails
(Lanczos3 resize, aspect-preserving) to <data_dir>/thumbnails/<aa>/<hash>.webp. Atomic write via .tmp + fs::rename — mid-write crashes cannot leave a
half-written file.
V003 migration adds thumbnail_path + thumbnail_status to file_metadata (nullable, additive; existing v0.4.0 rows
read as "not yet processed"). Partial index on thumbnail_status = 'pending' AND deleted_at IS NULL supports
a future perima thumbnail retry command.
MetadataRepository::update_thumbnail — separate trait method
so the queue worker's thumbnail result always persists without
colliding with upsert_metadata's Unchanged equivalence proxy.
Wrapped in BEGIN IMMEDIATE.
MetadataQueue worker now calls the thumbnailer after metadata
extraction for image/video MIMEs; on success writes thumbnail_status = 'ready' + absolute path; on failure writes 'failed' and continues (no worker abort).
ThumbnailGenerator::disabled() constructor + new perima scan --no-thumbnails flag shortcircuit the thumbnail
write path for users wanting faster scans.
Desktop grid view. New FileGrid component renders 200px
tiles with thumbnails via Tauri's asset protocol
(convertFileSrc). Header gains a Table / Grid toggle; default is
Table for v0.3.x UX continuity. Placeholder icons for pending /
failed / unknown tiles. 3 new vitest tests (14 total).
tauri.conf.json enables assetProtocol with scope $APPDATA/perima/thumbnails/** + broad ** fallback.
Changed
Desktop app now calls list_files_with_metadata (added in v0.4.0)
for both Table and Grid views. FileWithMetadataPayload gains thumbnail_path + thumbnail_status fields.