72c41ae834
Builds the "indexed library" foundation and first intelligent features on top of the organizer (sql.js index, non-destructive in-place indexing). Phase 0 — Library index: - sql.js (WASM SQLite) index DB; contentHash-keyed assets, resumable indexing (skip by path+mtime), batch persistence (chosen over native better-sqlite3 which fails to build on Node 24 / Python 3.12) - Library folders (in place, non-destructive) + background indexer w/ progress - Thumbnails generated in the AI worker (canvas->webp), cached in userData; served via photoai-media://thumb by hash; thumbnail grid w/ pagination Phase 1 — AI quality assessment & culling: - Focus (Laplacian variance), exposure (histogram), eyes-open (face-api EAR) computed in one analyze pass alongside the thumbnail - Culling filters (candidate/rejected) + quality badges - Adjustable thresholds (live SQL re-classification from stored raw scores, no re-analysis) + manual star rating (0-5) and color labels (usermeta) Phase 2 — CLIP natural-language / similarity search: - @huggingface/transformers (WASM/WebGPU, no native build) - CLIP image/text embeddings (lazy-loaded); Korean queries auto-translated via opus-mt-ko-en into the English CLIP - Embeddings stored as SQLite BLOBs; "build search index" batch w/ progress; brute-force cosine search; new Search tab - Note: models download from HF Hub on first use; fully-offline ORT-wasm packaging and KO search-accuracy tuning are follow-ups Tabs added (Organize / Library / Search). All typecheck/tests(12)/build green; boot smoke verified across phases. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
33 lines
805 B
YAML
33 lines
805 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"
|
|
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}
|