Commit Graph
324 Commits
Author SHA1 Message Date
m038andClaude Opus 4.8 9fbc61ee6e docs: mark map-init consolidation plan complete
Status → Complete; document the markLatest opt added during execution,
the window.tripMap/homeMap exposure, and the test outcome (38 passed;
M6/H1 pre-existing and out of scope).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-28 00:11:45 +02:00
m038andClaude Opus 4.8 abab85ca5c docs: add map-init consolidation plan (reviewed)
Plan for extracting duplicated MapLibre init into a shared
MapUtils.initEntryMap(opts). Incorporates ce-doc-review findings:
card-absent fallback invariant scoped (no-op→navigate), exact
isLatest predicate, and the home-map attribution restyle documented
as an intentional change. Filter-hidden-card click left as a noted
known limitation.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 23:43:03 +02:00
m038andClaude Opus 4.8 0427b75b6e chore: update .env.example
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 22:35:43 +02:00
m038andClaude Opus 4.8 4665e014be chore: bump user/ to home/trip view convergence theme work
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 22:35:43 +02:00
m038andClaude Opus 4.8 567ea7bb89 docs: add home/trip convergence plan (complete) and update design spec
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 22:35:43 +02:00
m038andClaude Opus 4.8 dd3c89e88a docs(claude): document shared trip-feed-col + home-predeparture partials
Adds a 'Shared trip-feed-col partial' section (callers, param table, the
home-predeparture sibling, and the initTripStats JS glue) and points the
trip-page filter-bar note at it.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 22:32:11 +02:00
m038andClaude Opus 4.8 301de51add docs: add home/trip view convergence design spec
Converge home-active feed-col chrome (date range, filter bar, stats/
cycling panels) with the trip page via a shared partial + shared
initTripStats() glue. Map convergence deferred to a later spec.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BftDn9vu9SonFAY4vxu4uk
2026-06-27 19:37:11 +02:00
m038andClaude Sonnet 4.6 119e8e5a35 chore: restore docs/immich-workflow gitignore entry dropped in previous commit
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 18:35:37 +02:00
m038andClaude Sonnet 4.6 532fbda801 fix(home): wrap map init in DOMContentLoaded to fix broken homepage map
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 18:34:21 +02:00
m038andClaude Sonnet 4.6 fcd8ed13ce chore: ignore services/ dir, remove stale travel-memories gitignore entry
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 18:25:29 +02:00
m038andClaude Sonnet 4.6 a80b0a90fc chore: remove travel-memories service from repo (moved to separate project)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 18:23:54 +02:00
m038andClaude Sonnet 4.6 4df191b9f4 docs: clean up research notes, add production backlog and working docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 18:22:58 +02:00
m038andClaude Sonnet 4.6 0d3a3451f3 chore: update .env.example and fix remote-fetch-content sparse-checkout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 18:22:53 +02:00
m038 65e18be92a docs: mark template-refactor plan as complete 2026-06-26 10:07:31 +02:00
m038 13fe204d30 docs: mark accessibility-audit plan as complete 2026-06-26 09:55:05 +02:00
m038 ae33c256a7 docs: mark pixelfed-import plan as complete 2026-06-26 09:43:15 +02:00
m038andClaude Sonnet 4.6 ef215cb4fc docs: backfill Status field on all plans
Assigns Status to the 18 plans that had none, based on checkbox
completion state, memory entries, and CLAUDE.md documentation:

- 16 marked Complete (dates approximate from git/memory)
- 1 marked Not started (template-refactor, now unblocked)
- 1 marked Deferred (pixelfed-import, superseded by travel-memories)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 09:37:56 +02:00
m038andClaude Sonnet 4.6 ac80a9ab18 docs: add plan status convention to CLAUDE.md
Defines Status field values (Not started / In progress / Deferred /
Complete / Abandoned) and scanning rules so any session knows which
plans are open vs done without reading every file.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-26 09:37:22 +02:00
m038 82d6da48e1 test: add global teardown — sweep ui-test entries from 02.post and dailies 2026-06-25 07:32:32 +02:00
m038 7b93fbc5a3 docs: mark asset pipeline plan as complete 2026-06-25 00:13:25 +02:00
m038 41e303e6bc docs: mark frontend polish plan as complete 2026-06-25 00:05:27 +02:00
m038andClaude Sonnet 4.6 b2e9dcadb9 docs: add template refactor implementation plan (Milestone 2)
Three tasks: stats/cycling macros, date-range macro, latent bug fixes.
Full code in every step, no placeholders.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-23 23:47:03 +02:00
m038andClaude Sonnet 4.6 aab783384f docs: add template refactor design spec (Milestone 2)
Three Twig macros (stats panel, cycling panel, date range), five template
modifications, and two latent bug fixes in inactive templates.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-23 23:38:54 +02:00
m038andClaude Sonnet 4.6 5cf7e15219 build: add build-assets make target
Runs npm install + npm run build inside node:20-alpine Docker container,
mounting user/themes/intotheeast as the working directory.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-22 23:11:32 +02:00
m038andClaude Sonnet 4.6 bd906005e4 docs: add asset pipeline implementation plan
8 tasks: build scaffolding, main/map bundles, maplibre-utils extension,
template CDN cleanup, and end-to-end verification.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-22 23:02:34 +02:00
m038andClaude Sonnet 4.6 dc01d943f3 docs: add asset pipeline and frontend reliability design spec
Covers esbuild via Docker, self-hosted CDN deps and fonts, JS
deduplication strategy, Grav-idiomatic output structure, and
template changes for trip.html.twig.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-22 22:43:53 +02:00
m038 be673b2135 feat: align maps (shared partial), add stories map, add regression tests
- Extract feed mini-map into shared partials/feed-map.html.twig
- Refactor dailies to use shared partial
- Add map to stories listing page with story card IDs
- Attribution always starts collapsed; marker click exits fullscreen then scrolls
- Add M9-M11 (stories map) + MUX1-5 (panel/sort/fullscreen) E2E tests: 84 passed
- Document session learnings (MapLibre v4 quirks, CSS patterns, PhotoSwipe v5)
- Update CLAUDE.md with shared partial architecture
2026-06-22 01:54:20 +02:00
m038 7d1bab89b9 docs: fix CSS class name in learnings doc (feed-map-wrap not map-col) 2026-06-22 01:54:01 +02:00
m038 00d6bb0e37 test: add M9-M11 stories map + MUX1-5 panel/sort/fullscreen regression tests 2026-06-22 01:48:04 +02:00
m038 b9f9f4ce9c docs: add mobile-ux session learnings and shared partial architecture 2026-06-22 01:41:23 +02:00
m038 be063ad5b4 docs: add align-maps-tests implementation plan 2026-06-22 01:31:33 +02:00
m038andClaude Sonnet 4.6 fac3b18201 docs: fix TC-M QA cases — correct URLs, hover rule, highlight detail
- Wrong active trip slug in intro (japan-korea → us-canada-mex-2024)
- Home page URL /home not /
- TC-M.3: describe teal-fade animation precisely, not "background flash"
- TC-M.6: arrows hidden by hover:none (touch devices), not by screen width
- TC-M.7: add note that home feed only renders in trip mode; explain how to verify

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 22:05:41 +02:00
m038andClaude Sonnet 4.6 7b4a4d2b9c docs: add QA test cases for 2026-06-21 mobile UX session
Covers: back-to-top button, marker scroll offset, iOS viewport gap,
PhotoSwipe keyboard animation, photo strip arrows, and partial
consistency across trip/dailies/home feed pages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-21 21:52:43 +02:00
m038andClaude Sonnet 4.6 35a9393537 docs: add travel-memories session handover (2026-06-21)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:41:24 +02:00
m038andClaude Sonnet 4.6 a265b08ca0 fix: use amber/sky colors for journal/story borders and badges
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:40:13 +02:00
m038andClaude Sonnet 4.6 3fd1e8ae96 fix: restore border-4 width when retagging (was stripped by border-* filter)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:36:37 +02:00
m038andClaude Sonnet 4.6 a8804547e7 feat: desktop lightbox — click to open, arrows navigate, J/S/X tag, Esc close
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:29:43 +02:00
m038andClaude Sonnet 4.6 1c5526c56c fix: arrow key nav (left/right modifiers) + opacity class not clearing on retag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:26:15 +02:00
m038andClaude Sonnet 4.6 14845f47ac feat: highlight selected triage card + arrow key navigation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:23:43 +02:00
m038andClaude Sonnet 4.6 e9fffa36ce fix: update triage badge dynamically when tag changes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:20:59 +02:00
m038andClaude Sonnet 4.6 f260e2ff76 feat: mobile swipe triage UI + tag visualization
- HammerJS swipe cards (right=journal, left=skip, up=story) with tilt/color feedback
- Three tap buttons as swipe alternative (J/S/X)
- Undo stack (max 10) with Back button
- Progress bar + header counter sync
- Thumbnail strip (all photos, colored dots, tap to jump)
- Desktop: J/S/X badges on all tagged photos including skip

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:10:31 +02:00
m038andClaude Sonnet 4.6 1159b9cba6 feat: add mobile swipe triage UI with HammerJS and undo stack
On viewports < 768px, show a Tinder-style card UI instead of the photo
grid. Cards show one untagged photo at a time with swipe gestures
(right=journal, left=skip, up=story), colour overlays during drag, tap
buttons as alternatives, a progress bar, and a 10-deep undo stack.
Desktop grid is unchanged, wrapped in #desktop-view.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 21:07:50 +02:00
m038 ab159d3a93 docs: mark playwright-tests plan as done 2026-06-21 17:26:21 +02:00
m038andClaude Sonnet 4.6 1d29c30900 fix: add ui-test-trip gitignore and bump user submodule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 17:24:32 +02:00
m038andClaude Sonnet 4.6 7dc7caee26 fix: sanitise trip slug on input, escape single quotes in YAML frontmatter
Fix D: apply _sanitise_slug() to grav_trip_slug in POST /select before
storing in TripState, preventing path traversal via ../sequences.

Fix E: add _yaml_str() helper that doubles single quotes; apply to title,
location_city, and location_country in both run_export and overwrite_export
frontmatter blocks, preventing invalid YAML for values like Xi'an.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 17:24:22 +02:00
m038andClaude Sonnet 4.6 69cc29b5e5 test: add cross-cutting tests (reload safety, stale, back-nav, export immutability)
Six Playwright tests covering server-side state persistence across hard reloads,
stale-phase propagation after back-navigation, stale banner dismiss, exported group
immutability, and notes surviving phase navigation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 17:18:24 +02:00
m038andClaude Sonnet 4.6 8c32ac707e test: merge playwright-tests branch — reorganise, extend, fix
- Reorganise flat tests/ui/ into feature subdirectories (auth/ post/ gpx/
  maps/ stories/ dailies/ home/ nav/ trip/ a11y/)
- Fix stale trip-slug refs (japan-korea-2026 / italy-2025 → italy-2026-demo)
- Add tests/fixtures/test-route.gpx
- Add GPX Manager spec (GM1–GM7) with real API calls and afterAll cleanup
- Add post-form tests P6–P8 (success message, date frontmatter, form reset)
- Add AX6 (gpx-manager mocked) and AX7 (story page) axe scans
- Fix auth.setup.js AUTH_FILE path; add @axe-core/playwright devDependency
- Fix fixture paths in post specs after subdirectory move

Known failures (not regressions):
  AX6/AX7 — real a11y violations in site (color-contrast, label, scrollable)
  H1/M8   — require travelling:true; site is currently between trips

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-21 17:16:57 +02:00
m038andClaude Sonnet 4.6 db7c102da1 Merge branch 'worktree-playwright-tests'
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 17:12:37 +02:00
m038andClaude Sonnet 4.6 5160368407 feat: Phase 6 export — writes Grav entry folders from Immich originals
Implements GET /export summary view and POST /export/run which downloads
originals from Immich, writes entry.md with YAML frontmatter, and sets
group status to exported. Includes POST /export/overwrite for single-group
re-export. All 42 tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-21 17:06:39 +02:00
m038 b79c0da808 fix: correct fixture paths in post specs after subdirectory move 2026-06-21 16:58:45 +02:00