NotesRelease
Lumeira 1.1.7
Image cache
Added
- Marketing site (
web/) built with Next.js, deployable on Vercel (vercel.json, project ignores).
Changed
- App Sandbox enabled for the macOS app; bundle identifier set to
net.qazana.lumeira.appand entitlements adjusted for sandboxed file access.
Performance
- Image cache: O(1) LRU eviction and conservative memory cost across all
NSImagerepresentations so large sessions stay within budget predictably. - Thumbnails: O(1) LRU plus a bounded concurrent decode gate so the sidebar stays responsive on huge folders without spawning unbounded decodes.
- Loads: Single
CGImageSourcepath for decode plus EXIF on miss; lightweight metadata read on cache hits. Debug HUD shows this as one “decode + metadata” timing line. - Histograms: Large images are downsampled (max side 2048 px) before the RGB pass to cap memory and CPU.
- Folders: After hitting the file listing cap, enumeration does a one-file peek instead of walking the remainder of the tree; sibling-folder “contains images” checks are cached per session.
- UI: Coalesced Metal-to-SwiftUI zoom/pan binding updates; magnifier hover position updates throttled; debug HUD refreshes cache stats about once per second while visible.