m038
ae093881fa
fix(review): harden write-back, confirmation gate, and edge cases
...
- write-back: call upsert_tag inside _apply_tag's try so a tag-create failure
is caught per-asset and apply_all no longer aborts mid-batch (was P1)
- write-back: surface _pipeline/processed write failures in the result instead
of discarding them (was reported as success)
- ui: add title to the high confidence badge so approve-high-confidence's
pre-action count is non-zero; confirm() before single-cluster apply
- core: Store context manager; close DB connection even if a route raises;
guard split_cluster against a first-member boundary (empty cluster); add
writeback_log lookup index
- ingest: split thumbnail download/write error handling and clean up the
.tmp file on a write failure
- tests: upsert/processed write-failure regression tests + split-guard test
2026-06-27 17:54:38 +02:00
m038
d67b677b6a
docs+docker: README, CLAUDE.md, Dockerfile/compose (8084), M1 validation gate
2026-06-27 17:37:22 +02:00
m038
c4ff5bcb06
test(trip-cluster): Playwright UI — grid nav, lightbox, cluster switching, approve
2026-06-27 17:35:58 +02:00
m038
edf0735098
feat(trip-cluster): master/detail review routes + templates + clusterReview JS
2026-06-27 17:35:58 +02:00
m038
44c05444d3
feat(trip-cluster): idempotent write-back + CLI apply with confirmation
2026-06-27 17:35:58 +02:00
m038
5256df4117
feat(trip-cluster): cluster orchestration (seed derivation + coverage) + CLI
2026-06-27 17:28:27 +02:00
m038
a9b443cd53
feat(trip-cluster): cluster review operations (approve/non-trip/skip/split/merge/bulk)
2026-06-27 17:21:38 +02:00
m038
6d0c9662ee
feat(trip-cluster): ingest — scopeable, incremental, processed read-back
2026-06-27 17:21:38 +02:00
m038
8d58ec03a9
feat(trip-cluster): coverage detection — completeness flags + outliers
2026-06-27 17:19:06 +02:00
m038
e01b30a5b5
feat(trip-cluster): config, factory, CLI skeleton, health + thumb proxy
2026-06-27 17:19:06 +02:00
m038
9ec6512428
feat(core): cluster data-access — attention sort, neighbors, split/merge, writeback log
2026-06-27 17:19:06 +02:00
m038
76be1fb5af
feat(trip-cluster): density-adaptive timestamp clustering + tag seeds + anchors
2026-06-27 17:16:07 +02:00
m038
351a001903
feat(core): asset & tag data-access
2026-06-27 17:16:07 +02:00
m038
da5b1de2a2
feat(immich): write-back (upsert_tag, tag_assets) + _pipeline tag conventions
2026-06-27 17:16:07 +02:00
m038
c36d93e3c7
feat(ui): base.html, macros (badges, lightbox), shared.js, register_shared_ui
2026-06-27 17:11:49 +02:00
m038
4db684fbdc
feat(core): domain models + Store (schema, connection, meta)
2026-06-27 17:11:49 +02:00
m038
862480916a
feat(immich): ImmichClient read — search_assets, list_tags, resolve_tag_id, download_thumbnail
2026-06-27 17:11:49 +02:00
m038
01ac95059e
feat: monorepo scaffold — photoflow shared dist + trip-cluster app skeleton
2026-06-27 17:08:11 +02:00
m038 and Claude Opus 4.8
c406b567bd
docs: extract authoritative ROADMAP.md; spec links to it
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 15:04:44 +02:00
m038 and Claude Opus 4.8
07bba5796f
docs: refine spec — _pipeline tag namespace, processed marker, visual-similarity deferral, header formatting
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 15:01:23 +02:00
m038 and Claude Opus 4.8
69f041cdd0
docs: rename project to immich-photo-flow
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 14:25:19 +02:00
m038 and Claude Opus 4.8
0cb0bcd6a7
docs: M1 design spec — image categorizer foundation + trip-cluster
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-27 14:17:46 +02:00