- profiles get an optional birthday (MM-DD); photos of that person taken on the
date are also copied into Birthdays/<person>/<year>/
- app-wide anniversaries (label + MM-DD); any photo taken on the date is copied
into Anniversaries/<label>/<year>/ (including faceless photos and videos)
- copy (not move) so normal person/date sorting is preserved
- CaptureDate gains day; new collection path builder; scanner skips the new folders
- UI: birthday input in profile create/edit + new Anniversaries manager
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- mosaic: resolution slider up to 192 cols (was 96), default 96, output canvas cap 3600px
so higher density renders/saves at genuinely higher resolution
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- darkroom-style fullscreen viewer: left info panel, rating/color-label toolbar,
bottom filmstrip, keyboard nav (Esc / arrows), placeholder on load failure
- thumbnail density slider (contact-sheet) + photo mosaic generator (target -> tiles)
- lighttable-style hover info preview (no click needed)
- map drag & drop geotagging (saved to index only; originals untouched)
- file explorer: parallel drive scan + timeout, create/delete(trash)/move folders;
index reparent on move and cleanup on delete (single source of truth)
- library: photos-before-videos ordering; drag range select/deselect;
native image drag disabled so sweep-select works
- responsive sidebar font scaling; no-wrap filter labels; media protocol CORS + video Range
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>