From 3b30a111617287efb6b82d9e73f4d0d6eeb1825d Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 19 Jun 2026 10:36:17 +0000 Subject: [PATCH] docs(plan): mark Phase 0 complete and record the PhotoDto deviation Adds an implementation-status section: Phase 0 done (with commit refs), 0.2 implemented via a flattened PhotoDto rather than widening FileDto, the two Phase 0 loose ends (embedded map pin, drag-marquee, HEIC, sub-nav), and Phase 1 (Places) marked backend-in-progress. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01JW6ghFMDtnRYuYNzZhb47M --- docs/plan/Photos-People-Places.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/plan/Photos-People-Places.md b/docs/plan/Photos-People-Places.md index 95644012..70e0f38e 100644 --- a/docs/plan/Photos-People-Places.md +++ b/docs/plan/Photos-People-Places.md @@ -30,6 +30,24 @@ migrations, and a **vanilla-JS / vanilla-CSS** frontend (design tokens from --- +## Implementation status (updated) + +**Phase 0 — Gallery polish: essentially complete** (branch `claude/zealous-faraday-58s1at`). + +| Item | Status | Commit / note | +|------|--------|---------------| +| 0.1 Virtualization | ✅ done | `081b2b6` | +| 0.2 width/height on `/api/photos` | ✅ done | `8d09589` — implemented via a flattened `PhotoDto` (`#[serde(flatten)]`) instead of widening `FileDto` + its 6 construction sites; `list_media_files` LEFT JOINs `storage.file_metadata`. `FileItem` gained optional `width`/`height`. | +| 0.3 Justified layout | ✅ done | `75ee9b7` | +| 0.4 Lightbox (zoom/pan, swipe, info panel, favorite fix) | 🟡 mostly | `ca1a8cb`, `e8520e4` — the map pin shows **coordinates as text**; the embedded mini-map / deep-link into Places is deferred until Places exists. | +| 0.5 Shift-select, confirm→Modal, keyboard a11y | 🟡 mostly | `824df4d`, `e8520e4` — optional drag-marquee not done. | +| 0.6 HEIC | ⬜ pending | open decision (native `libheif` dep). | +| 0.7 Sub-nav tabs | ⬜ pending | deferred to Phase 1 (tabs need the Places/People views). | + +**Phase 1 — Places: backend in progress** (data API: index, repo aggregation, service, flag, endpoints). The map frontend (1.5 PMTiles serving, 1.7 MapLibre module, 1.8 thumbnails) is gated on the MapLibre-vendoring decision + a basemap asset. **Phase 2 — People: not started.** No new vendored JS/assets added yet. + +--- + ## Research summary (the decisions these phases encode) **Map (no third-party APIs, self-host, extreme perf):**