3e73967c7b
UI overhaul to a darktable tone-and-manner and a set of features adapted from
darktable's proven patterns (reimplemented in our Electron/TS stack; no GPL code).
Design reskin:
- Dark neutral-gray palette + amber accent, flat/squared corners, no card shadows,
compact darktable-style top bar (logo + pipe-separated view tabs), denser 15px base
- Done via design tokens (Tailwind slate/brand/radius/shadow remap) — minimal churn
Metadata & collections (Phase A/B):
- exifr now captures GPS + camera; asset table ALTER-migrated (gpsLat/gpsLon/camera,
metaVersion backfill on re-index)
- Collection facet bar (year timeline / camera / color-label) filters the grid
Map & relation finder (Phase C):
- Leaflet + online OSM map tab; geotagged photos as markers
- relationService: related photos by place (GPS<1km) + time (+/-2d) + CLIP similarity
Easy mode (Phase D):
- easyMode setting (menu / onboarding); scales the whole UI (rem) + bigger thumbnails
+ large icon nav with plain labels (4050 accessibility)
Library usability:
- Video thumbnails (representative frame capture in the inference worker)
- Media filter (All / Photos / Videos) to separate them
- Clearer culling labels ("Good shots" / "To cull") + explanation tooltip
- Multi-select tiles -> Export selected to a folder (copy, best-cut extraction) and
Delete to Recycle Bin (shell.trashItem) behind a confirm dialog
- ONNX Runtime wasm bundled locally (offline) via copy-ort-wasm + asarUnpack
Docs: DARKTABLE_REVIEW (feasibility + roadmap A->D). All typecheck/tests/build green;
boot smoke verified each phase.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
35 lines
908 B
YAML
35 lines
908 B
YAML
appId: com.photoai.organizer
|
|
productName: AI Photo Organizer
|
|
directories:
|
|
output: release/${version}
|
|
buildResources: build
|
|
files:
|
|
- out/**/*
|
|
- package.json
|
|
# face-api 모델 가중치를 앱 리소스로 동봉 (오프라인 동작)
|
|
extraResources:
|
|
- from: models
|
|
to: models
|
|
filter:
|
|
- "**/*"
|
|
asarUnpack:
|
|
- "**/*.node"
|
|
# sql.js WASM 바이너리 (인덱스 DB) — asar 밖에서 읽도록
|
|
- "node_modules/sql.js/dist/*.wasm"
|
|
# ONNX Runtime WASM (CLIP 검색) — asar 밖에서 fetch 가능하도록
|
|
- "out/renderer/ort/**"
|
|
win:
|
|
target:
|
|
- nsis
|
|
artifactName: ${productName}-${version}-win-${arch}.${ext}
|
|
nsis:
|
|
oneClick: false
|
|
allowToChangeInstallationDirectory: true
|
|
mac:
|
|
target:
|
|
- dmg
|
|
category: public.app-category.photography
|
|
artifactName: ${productName}-${version}-mac-${arch}.${ext}
|
|
dmg:
|
|
artifactName: ${productName}-${version}-mac-${arch}.${ext}
|