Releases: rescenedev/lumen
Releases · rescenedev/lumen
Lumen 0.4.1
0.4.1 — 그리드 재정렬·앨범 속도·자잘한 다듬기
성능
- Apple Photos 앨범 재진입이 즉시. 앨범을 다시 열 때마다 PhotoKit을 새로 쿼리하던 것을 캐시해, 들어갔다 나왔다 해도 빠릅니다. (NAS 폴더는 원래 즉시 — 0.4ms.)
고침
- 창을 넓혀도 그리드 열 수가 다시 정렬되지 않던 문제 수정. 이제 창 크기에 맞게 열이 다시 배치됩니다.
- On This Day가 비었을 때 어색한 "No Photos" 대신 친근한 안내가 표시됩니다.
Lumen 0.4.0
0.4.0 — 삭제 안전망, 크래시 리포팅, 대규모 작업 가속
새 기능
- 삭제 안전망 + 되돌리기: 휴지통이 없는 볼륨(NAS/SMB)에서 삭제하면 이제 영구 삭제 대신 같은 볼륨의 숨김
.LumenTrash폴더로 이동합니다(이동은 즉시, 30일 후 자동 정리). 모든 삭제 직후 10초간 되돌리기 버튼이 떠서 파일·메타데이터·앨범 소속까지 원위치로 복원합니다. - 크래시 리포팅 (프라이버시 보존): 크래시가 나면 버전·OS·스택만 담긴 리포트를 내 Mac에만 저장하고, 다음 실행 때 GitHub 이슈로 보낼지 물어봅니다. 직접 선택하기 전에는 아무것도 전송되지 않습니다.
- 뷰어 컬링 치트시트: 뷰어를 처음 열면 Space/X/1–5/←→/⌫ 단축키 안내가 한 번 표시됩니다.
- 토스트 다국어: 알림 메시지가 시스템 언어를 따라 영어/한국어로 표시됩니다.
성능
- 대량 선택에 즐겨찾기/별점/라벨/태그 적용이 단일 트랜잭션으로 처리됩니다 — 20,000장 즐겨찾기 0.4초 (기존: 사진당 커밋 1개로 수 분).
- 삭제·되돌리기·일괄 이름변경·내보내기의 파일 작업이 모두 백그라운드로 이동 — NAS에서 수백 장을 처리해도 UI가 멈추지 않습니다.
- 폴더 이름변경 시 60k 라이브러리에서 수 분간 멈출 수 있던 경로 재계산 제거.
- 내보내기가 끝나면 결과(성공/실패 수)를 토스트로 알려줍니다.
수정
- NAS 스캔 중 삭제/되돌리기가 끝나면 결과가 뒤집힐 수 있던 동기화 레이스 수정.
- 장시간 EXIF 인덱싱 중 삭제한 사진의 정보가 되살아나던 문제 수정.
- 설정의 슬라이드쇼 간격이 실제로 적용되고, 기본 정렬이 재실행 후에도 유지됩니다.
- 메타데이터 저장 실패(디스크 부족 등)가 조용히 무시되지 않고 알림으로 표시됩니다.
- 자정이 지나면 'On This Day'가 자동 갱신됩니다.
Lumen 0.3.7
Performance — bulk album operations
- Adding/moving photos into a large album is instant now. Adding 10,000 photos to a 20,000-photo album froze the app for ~10 seconds; it's ~0.2s now — only the added rows are written instead of rewriting the whole album, and photo order is preserved.
- Bulk removal too. Removing 10k of 20k went from 7.6s to 17ms.
- ⌘C no longer stalls. Image data for a copied NAS original was read on the main thread (a network read + full decode); it now loads in the background — the file path copies instantly and the image data follows when ready.
All measured with new library-scale tests that now live in the test suite, so a regression here fails the build.
Lumen 0.3.6
Sidebar folder tree, Finder-style
- Clicking a folder always selects it AND toggles its children. Clicking an expanded folder while browsing another album now folds it immediately — no second click, no swallowed clicks (input was rewritten at the AppKit event level; SwiftUI row gestures were dropping ~3 of 4 clicks on the List).
- Keyboard navigation is calm now. ↑/↓ only move the selection — folders no longer unfold as you arrow past them; → reveals the selected folder's children, ← folds them.
Fixes
- Favorite/label counting sent a per-photo round-trip to the NAS — large favorite sets could freeze the main thread.
- Thumbnails and badges went blurry after moving the window to a display with a different scale.
- A batch of async-pipeline hardening from an internal review: list-view selection could reference phantom photos after navigating to a smaller scope; a library reconcile finishing during rapid edits could revert them; a corrupted cache file could crash-loop the launch; a failed cache write could drop the cached library; fast typing in search could spawn duplicate full-library sorts.
Lumen 0.3.5
Performance — your photos are just there when the app opens
Measured frame-by-frame against a 67,676-photo library, the launch path was redesigned:
- The launch loading state is gone. The window appears with a fully populated grid — thumbnails included — within a frame or two. Previously a "Loading your photos…" spinner sat on screen for ~1.4 seconds.
- New binary library cache: decoding 67k photos went from 410ms to ~100ms. Your existing cache migrates automatically on first launch.
- Sorting, stats, and search indexes are all precomputed in the background, overlapping the window construction time — and the first screenful of thumbnails is pre-warmed into memory before first paint.
- The loading indicator now only appears when loading genuinely takes long (first scan, cold NAS).
Lumen 0.3.4
Performance
A large performance batch, measured and fixed against a real 67,676-photo NAS library.
- Selecting photos is instant. Inspector updates went from ~70ms per click to ~3ms; Select All on 67k photos went from an 800ms freeze to ~0.2s.
- Search no longer freezes the UI. Filtering a large library (~0.4s per search on the main thread) now runs in the background alongside the sort, with the usual spinner.
- Removed a 3-4 second freeze ~40 seconds after launch — the library reconcile diff and the thumbnail-cache warm-up scan were blocking the main thread.
- The thumbnail-size slider and window resizing are smooth now. Grid thumbnails are GPU-scaled instead of being re-rasterized on the CPU (~350ms per tick before).
- List view is now a native table — opens instantly with tens of thousands of rows, and large selections are ~5x faster.
- First folder click after launch 156ms → 4ms; first-search and launch-time hiccups trimmed by precomputing the library indexes off the main thread.
Lumen 0.3.3
Fixes
- Deleting photos now works on NAS volumes. SMB shares have no Trash, so deletion silently did nothing; Lumen now warns Finder-style ("deleted immediately") and deletes in place — NAS-side recycle bins still catch it. Failures surface a toast instead of vanishing.
- Backspace/Delete actually delete in the viewer, list, and month views (the key never matched on SwiftUI views).
- Switching folders starts at the top instead of keeping the previous scroll position; deleting/importing in place still keeps your spot.
- Sidebar folders with subfolders: single click selects with the proper accent highlight and reveals children every time; re-click toggles them closed.
- Corrupt image files (zero-filled failed copies) show a warning mark instead of masquerading as a generic JPEG icon — and no longer poison the thumbnail cache.
New
- Closing the window no longer quits: thumbnail cache warming continues at a trickle (under 1% CPU, one decode every few seconds) and returns to full speed when you reopen the window. ⌘Q quits as usual.
Lumen 0.3.2
Improvements
- Folder tree: clicking a folder with subfolders now selects it and toggles its children — expand on first click, collapse on re-click (Finder-style).
Lumen 0.3.1
Performance
- Thumbnails no longer stat the source file per load — one less NAS roundtrip per photo while scrolling.
- Scroll-ahead thumbnail prefetch now tracks the actual viewport (NSCollectionView prefetching) instead of decoding the whole list up front.
- Two-tier thumbnail cache: small grid cells use a 256px tier, so the memory cache holds ~4x more thumbnails on dense grids.
- Month-grouped timeline no longer re-groups the whole library on every redraw.
- Large albums now sort off the main thread like other scopes.
- Background cache warming starts with the folder you're viewing.
Fixes & improvements
- Folders with subfolders in the sidebar can now be selected with a single click (previously double-click only).
- Finder-style arrow navigation in the grid: ←/→ move linearly and wrap across rows.
Lumen 0.3.0
Lumen 0.3.0
자동 업데이트 알림 (신규)
- 실행 시 새 버전을 자동 확인(하루 1회)하고, 새 버전이 있으면 상단에 알림 배너를 표시합니다.
- Homebrew 설치본은
brew upgrade --cask lumen-photos명령을, 직접 다운로드본은 릴리즈 페이지를 안내합니다. (자동 설치는 하지 않아 Homebrew 버전 추적과 충돌하지 않습니다.) - 메뉴 → Check for Updates… 로 수동 확인도 가능합니다.
Homebrew
- cask에
livecheck추가 —brew outdated/brew upgrade가 새 버전을 안정적으로 감지합니다.
업데이트 방법
brew upgrade --cask lumen-photos
직접 설치라면 아래 zip을 받아 교체하세요. ad-hoc 서명이라 Gatekeeper가 막으면:
xattr -dr com.apple.quarantine "/Applications/Lumen.app"