Commit Graph

  • 82dd21b205 Merge pull request 'feature/duplicate-detection' (#73) from feature/duplicate-detection into master master cameron 2026-05-03 22:34:49 +00:00
  • 57b7bad086 duplicates: library-aware visibility — only hide a demoted row when its survivor is reachable Cameron Cordes 2026-05-03 18:24:07 -04:00
  • 98057c98a1 duplicates: tighten perceptual cluster — entropy band, asymmetric dHash, medoid prune Cameron Cordes 2026-05-03 18:19:48 -04:00
  • 7ca888e95d duplicates: filter low-entropy hashes + dHash double-check, fix backfill loop Cameron Cordes 2026-05-03 18:08:05 -04:00
  • 7584cd8792 duplicates: perceptual hash + soft-mark resolution + upload 409 Cameron Cordes 2026-05-03 17:36:01 -04:00
  • 4340b164eb Merge pull request 'perf/faces-embeddings-no-clone' (#72) from perf/faces-embeddings-no-clone into master cameron 2026-05-01 23:09:22 +00:00
  • fb4df4b195 style: cargo fmt sweep Cameron Cordes 2026-05-01 19:01:00 -04:00
  • 1d9b9a0bc4 faces: avoid 40 MB row clone in /faces/embeddings Cameron Cordes 2026-05-01 19:00:55 -04:00
  • 7998a0c9b0 Merge pull request 'feature/per-library-excluded-dirs' (#71) from feature/per-library-excluded-dirs into master cameron 2026-05-01 20:11:10 +00:00
  • 58f010f302 docs(claude): pin excluded_dirs entry-form syntax Cameron Cordes 2026-05-01 20:05:58 +00:00
  • 814066551e multi-library: per-library excluded_dirs Cameron Cordes 2026-05-01 19:54:17 +00:00
  • 4f17af688e Merge pull request 'multi-library: operator kill switch via libraries.enabled' (#70) from feature/library-enabled-flag into master cameron 2026-05-01 19:15:20 +00:00
  • 3598bb2cfe multi-library: operator kill switch via libraries.enabled Cameron Cordes 2026-05-01 19:10:24 +00:00
  • 23448cf5e6 Merge pull request 'feature/library-handoff-and-gc' (#69) from feature/library-handoff-and-gc into master cameron 2026-05-01 18:27:40 +00:00
  • d809ddee44 library_maintenance: clarify orphan-gc log wording Cameron Cordes 2026-05-01 18:01:01 +00:00
  • fa98d147be library_maintenance: log orphan-gc decisions in stale-library path too Cameron Cordes 2026-05-01 17:14:09 +00:00
  • 5f247be1f1 docs(claude): note in-place edit gap as future Branch D Cameron Cordes 2026-05-01 16:53:08 +00:00
  • 263e27e108 multi-library: handoff + orphan GC with two-tick consensus Cameron Cordes 2026-05-01 16:27:53 +00:00
  • a0283a6362 Merge pull request 'multi-library: hash-keyed tagged_photo + photo_insights with reconciliation' (#68) from feature/hash-keyed-derived-data into master cameron 2026-05-01 16:16:38 +00:00
  • 48cac8c285 multi-library: hash-keyed tagged_photo + photo_insights with reconciliation Cameron Cordes 2026-05-01 14:52:16 +00:00
  • cce8f0c1b7 Merge pull request 'feature/multi-library-data-model' (#67) from feature/multi-library-data-model into master cameron 2026-05-01 14:40:16 +00:00
  • 48ed7be5d9 libraries: initial availability sweep before watcher's first sleep Cameron Cordes 2026-05-01 14:33:45 +00:00
  • eea1bf3181 multi-library: availability probe + scoped EXIF queries + collision fixes Cameron Cordes 2026-05-01 14:12:49 +00:00
  • 2f91891459 docs(claude): pin multi-library data model + availability/safety policy Cameron Cordes 2026-05-01 14:11:42 +00:00
  • 3d162105f7 Merge pull request 'feature/edit-tag' (#66) from feature/edit-tag into master cameron 2026-05-01 01:03:40 +00:00
  • 98601973f7 faces: log at the three 503 paths in update_face_handler Cameron 2026-04-30 20:57:51 -04:00
  • 862917b0d1 gitignore: SQLite WAL runtime + local docs/specs dirs Cameron 2026-04-30 20:31:19 -04:00
  • 44d677528e tags: add edit + delete endpoints, enable FK enforcement Cameron 2026-04-30 20:26:35 -04:00
  • 89b743ba54 Merge pull request 'faces: count distinct content_hash in stats total_photos' (#65) from face-stats-dedup-hash into master cameron 2026-04-30 22:43:58 +00:00
  • 323097c650 faces: count distinct content_hash in stats total_photos Cameron Cordes 2026-04-30 22:41:20 +00:00
  • d0833177c7 Merge pull request 'feature/face-stats-exclude-videos' (#64) from feature/face-stats-exclude-videos into master cameron 2026-04-30 21:17:19 +00:00
  • 67abd8d8ff style: cargo fmt Cameron Cordes 2026-04-30 21:16:34 +00:00
  • 0840d55c70 faces: exclude videos from backlog drain and SCANNED denominator Cameron Cordes 2026-04-30 21:16:30 +00:00
  • dbb046dfa8 Merge pull request 'indexer: prune EXCLUDED_DIRS at WalkDir time, extract enumerate_indexable_files' (#63) from feature/exclude-dirs-at-index-time into master cameron 2026-04-30 20:24:18 +00:00
  • f50655fb21 indexer: apply EXCLUDED_DIRS to remaining WalkDir callers Cameron Cordes 2026-04-30 20:17:51 +00:00
  • 5bf49568f1 indexer: prune EXCLUDED_DIRS at WalkDir time, extract enumerate_indexable_files Cameron Cordes 2026-04-30 19:29:37 +00:00
  • f358e83050 Merge pull request 'sqlite: enable WAL + busy_timeout in connect(); 408/413/429 transient' (#62) from feature/sqlite-wal-and-413-transient into master cameron 2026-04-30 18:16:38 +00:00
  • db9dc63e5e sqlite: enable WAL + busy_timeout in connect(); 408/413/429 transient Cameron Cordes 2026-04-30 18:10:59 +00:00
  • 9443c91f88 Merge pull request 'Face Recognition / People Integration' (#61) from feature/face-recog-phase3-file-watch into master cameron 2026-04-30 17:22:08 +00:00
  • 96c539764c docs: face detection system section + per-tick backlog drain env vars Cameron Cordes 2026-04-30 14:06:42 +00:00
  • 675b4a4849 faces: add .env.example template covering all documented env vars Cameron Cordes 2026-04-30 13:51:45 +00:00
  • 5e1bad3179 faces: filter videos out of detection candidate set Cameron Cordes 2026-04-30 12:45:55 +00:00
  • 1971eeccd6 faces: drain backfill + detection backlog every tick, not just full scans Cameron Cordes 2026-04-30 01:46:49 +00:00
  • c2c1fe5b8b faces: bbox crop respects EXIF orientation + pads enough for RetinaFace Cameron Cordes 2026-04-30 01:06:08 +00:00
  • 5a2f406429 faces: bbox edits survive when re-detection finds no face Cameron Cordes 2026-04-30 01:01:07 +00:00
  • 6a6a4a6a46 tags: batch lookup expands content-hash siblings cross-library Cameron Cordes 2026-04-30 00:36:44 +00:00
  • 3112260dc8 tags: batch lookup endpoint to collapse photo-match fan-out Cameron Cordes 2026-04-30 00:28:33 +00:00
  • 16abacf4c5 faces: backfill no longer stalls on chronic-error files at the front Cameron Cordes 2026-04-30 00:03:26 +00:00
  • 891a9982ef faces: force-create path for regions the detector can't see Cameron Cordes 2026-04-29 23:49:34 +00:00
  • 0eaf27d2d3 faces: cover hydrate_face_with_person — assigned + unassigned branches Cameron Cordes 2026-04-29 23:41:52 +00:00
  • 0c2f421a1f faces: PATCH/POST /image/faces returns person_name with the row Cameron Cordes 2026-04-29 23:38:24 +00:00
  • 43cb60d3ad faces: re-embed on bbox edit instead of leaving the embedding stale Cameron Cordes 2026-04-29 23:10:25 +00:00
  • 7303fb8aa3 faces: ignore/junk bucket — DB schema + lazy-create endpoint Cameron Cordes 2026-04-29 22:48:16 +00:00
  • 0e160f5d22 faces: include bbox on /faces/embeddings response Cameron Cordes 2026-04-29 21:01:58 +00:00
  • a24fac5511 faces: backfill missing content_hash from the file watcher Cameron Cordes 2026-04-29 20:41:08 +00:00
  • 23f4941471 faces: surface enabled/disabled state + per-tick candidate count Cameron Cordes 2026-04-29 20:19:17 +00:00
  • 41f93d70d1 faces: tighten bootstrap candidate filter, bump to 1.1.0 Cameron Cordes 2026-04-29 19:05:04 +00:00
  • 1859399759 faces: phase 4 — people-tag bootstrap + auto-bind on detection Cameron Cordes 2026-04-29 18:55:01 +00:00
  • f985a0d658 faces: surface UNIQUE constraint as 409, not 500 Cameron Cordes 2026-04-29 18:44:10 +00:00
  • 4dee7b6f73 faces: phase 3 — file-watch hook drives auto detection Cameron Cordes 2026-04-29 18:21:19 +00:00
  • f77e44b34d faces: fix PathExcluder false-positive + cover face_client/crop in tests Cameron Cordes 2026-04-29 18:09:44 +00:00
  • 860169032b faces: phase 2 — schema + manual face/person CRUD Cameron Cordes 2026-04-29 18:03:42 +00:00
  • 6642db3c8b Merge pull request 'feat/apollo-places-tool and Geo Tagging Exif' (#60) from feat/apollo-places-tool into master cameron 2026-04-28 23:09:33 +00:00
  • 57fb0bcd3c EXIF GPS write: POST /image/exif/gps via exiftool Cameron Cordes 2026-04-28 22:25:40 +00:00
  • 4ae7be35e9 Apollo Places: enrich insights with personal place name + notes Cameron Cordes 2026-04-28 19:11:12 +00:00
  • 9d58547ce3 Merge pull request 'feat/raw-thumb-embedded-preview' (#59) from feat/raw-thumb-embedded-preview into master cameron 2026-04-28 17:21:27 +00:00
  • 6521a328bf RAW preview: exiftool fallback for MakerNote / SubIFD previews Cameron Cordes 2026-04-28 17:13:36 +00:00
  • 00b3c80141 RAW: try IFD0 + IFD1 for embedded preview, serve at full size Cameron Cordes 2026-04-28 16:52:10 +00:00
  • a53c3ae514 Merge pull request 'feature/exif-batch-endpoint for Apollo' (#58) from feature/exif-batch-endpoint into master cameron 2026-04-28 12:58:30 +00:00
  • 7621282419 Thumb orientation + library filter on /photos/exif Cameron Cordes 2026-04-27 17:29:36 -04:00
  • c6f82ebaba Batch EXIF endpoint: GET /photos/exif Cameron Cordes 2026-04-27 16:38:53 -04:00
  • 9cf3af383d Merge pull request '006-bin-cleanup-and-progress' (#57) from 006-bin-cleanup-and-progress into master cameron 2026-04-27 20:28:32 +00:00
  • b9d5578653 feat(bins): multi-library populate_knowledge + progress UX Cameron 2026-04-26 23:55:33 -04:00
  • d5f944c7b6 chore(bins): retire unused migrate_exif Cameron 2026-04-26 23:55:06 -04:00
  • 2db611e1c1 Merge pull request 'OpenRouter Support, Insight Chat and User injection' (#56) from 005-llm-client-trait into master cameron 2026-04-26 23:01:33 +00:00
  • 21e624da6b fix(video): sentinel for failed HLS encodes to stop retry loop Cameron 2026-04-26 01:06:13 -04:00
  • 021d1bffc0 chore: ignore db backups and local .idea config files Cameron 2026-04-24 19:13:28 -04:00
  • fa21b0d73d chore(ai): disable default few-shot insight ids Cameron 2026-04-24 19:12:25 -04:00
  • 0e55a6b125 fix(ai): treat rewind at end of history as no-op success Cameron 2026-04-24 19:12:17 -04:00
  • 0ebc2e9003 feat(ai): rerank timing + think:false + OpenRouter error detail Cameron 2026-04-24 16:19:45 -04:00
  • e5781325c6 fix(ai): render tool-call arguments as compact JSON in logs Cameron 2026-04-24 14:25:53 -04:00
  • d43f5fc991 docs: document OLLAMA_REQUEST_TIMEOUT_SECONDS env var Cameron 2026-04-24 13:54:23 -04:00
  • f0ae9f95dc feat(ai): few-shot exemplars + sticky Ollama preference Cameron 2026-04-24 13:54:06 -04:00
  • 29f32b9d22 FFMPEG playlist improvements Cameron 2026-04-24 10:08:03 -04:00
  • 13b9d54861 fix(scan): quiet startup scans & thumbnail RAW/HEIC Cameron 2026-04-23 20:47:13 -04:00
  • dc2a96162e fix(dates): prefer earliest of fs created/modified as fallback Cameron 2026-04-23 17:20:12 -04:00
  • d54419e779 style: cargo fmt drift Cameron 2026-04-23 17:19:59 -04:00
  • aa651d1c7b feat(ai): iteration budget in prompt + preserve photo-knowledge links Cameron 2026-04-23 16:28:48 -04:00
  • 6831f50993 feat(ai): USER_NAME env + shared summary prompt + test-bin knobs Cameron 2026-04-22 23:39:37 -04:00
  • e4a3536f87 feat(ai): search_messages tool + RAG reranker Cameron 2026-04-22 10:56:03 -04:00
  • e51cd564a3 docs: chat continuation endpoints + env vars Cameron 2026-04-21 17:32:43 -04:00
  • 079cd4c5b9 feat(ai): streaming chat endpoint with live tool events Cameron 2026-04-21 16:57:41 -04:00
  • c2bd3c08e1 feat(ai): surface tool invocations in chat history Cameron 2026-04-21 16:03:53 -04:00
  • 65ab10e9a8 feat(ai): chat rewind + ollama metrics logging Cameron 2026-04-21 15:16:32 -04:00
  • 0b9528f61e feat(ai): chat continuation for photo insights (server v1) Cameron 2026-04-21 13:00:27 -04:00
  • e2eefbd156 feat(ai): curated OpenRouter model picker for hybrid backend Cameron 2026-04-21 10:36:19 -04:00
  • 3ac0cd62eb feat(ai): hybrid backend mode for agentic insights Cameron 2026-04-20 22:30:40 -04:00
  • e799ba716c feat(ai): add OpenRouterClient implementing LlmClient Cameron 2026-04-20 22:18:29 -04:00
  • 0073409b3d refactor: introduce LlmClient trait (no-op) Cameron 2026-04-20 22:11:05 -04:00
  • 702aa8078c Merge pull request '004 Multi-library Support' (#54) from 004-multi-library into master cameron 2026-04-21 01:55:22 +00:00