Commit Graph

112 Commits

Author SHA1 Message Date
m038 e7b60c0c4c test: add M7 test for map marker flash highlight on card + integrate user submodule update 2026-06-20 12:47:56 +02:00
m038 208cd224ad fix: apply flat entry-card structure to home.html.twig 2026-06-20 12:44:15 +02:00
m038 baeca605f6 fix: add missing data-type to dailies entry cards 2026-06-20 12:41:13 +02:00
m038 c2ea985546 refactor: collapse entry card article+a to flat <a>, unify hover targets across card types
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 12:38:35 +02:00
m038 4d87f8fef2 test: add T6 test for entry page back pills; feat: add fixed back pill and update footer 2026-06-20 12:31:16 +02:00
m038 58e84afebd feat: add S7 test for story footer back-pill styling
Add Playwright test S7 to verify that the story footer back link
renders with the .back-pill class for consistent design system styling.
This test scrolls past the hero to reveal the footer and checks both
class presence and text content.

Also update user submodule pointer to include the back-pill application.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 12:23:57 +02:00
m038 ab85ce2f79 chore: update user submodule to CSS changes (Task 1: back-pill, card hover lift, flash keyframe) 2026-06-20 12:20:17 +02:00
m038 41dc3dbeea docs: add UI/UX alignment implementation plan 2026-06-20 12:08:34 +02:00
m038 ce7549cef1 docs: remove incorrect dark mode out-of-scope note from UI alignment spec 2026-06-20 11:56:02 +02:00
m038 f0c8ce3137 docs: add UI/UX alignment design spec (back pills, card hover, map flash) 2026-06-20 11:53:51 +02:00
m038 6d20e0fedc test: add S1–S6 Playwright tests for story mode (listing, shortcodes, back nav, cross-trip) 2026-06-20 10:13:56 +02:00
m038 832e135e3a fix: correct stale G1-G4 comment to G1-G5 in gpx-journey spec 2026-06-20 00:54:06 +02:00
m038 0b49f90206 test: add M5–M6 integration tests for GPX connector logic 2026-06-20 00:50:19 +02:00
m038 5a52b8ff18 test: add Playwright tests G1-G5 for buildJourneySegments algorithm
Tests load italy-2025 map page to get MapUtils in scope, then exercise the
GPX proximity algorithm with synthetic data via page.evaluate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WPJztrVGbwic2xTG7G9fjM
2026-06-20 00:39:45 +02:00
m038 2efdfbebb7 docs: add GPX connector logic implementation plan 2026-06-20 00:24:32 +02:00
m038 dfdb4d5ac3 docs: add GPX connector logic design spec 2026-06-20 00:15:10 +02:00
m038 50b64fbcb3 build: add Italy 2025 stories folder to demo-load target
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-19 23:44:18 +02:00
m038 640016c54f docs: add Tuscany demo stories implementation plan 2026-06-19 23:34:38 +02:00
m038 64dbcefd9b docs: add Tuscany demo stories design spec (3 story composition showcases) 2026-06-19 23:30:59 +02:00
m038 3fbba7672d test: fix M2 timing — wait for first marker before counting
Markers are added in map.on('load') which fires after the canvas
becomes visible; the old check was racy. Add an explicit waitFor
so M2 reliably passes with demo data loaded.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr
2026-06-19 23:17:05 +02:00
m038 6c378d77ca build: add story folder to demo-load and demo-reset targets 2026-06-19 23:04:14 +02:00
m038 7602b135f8 docs: add stats redesign spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RB86BaJBG3eGiMdfhmHRrQ
2026-06-19 22:31:33 +02:00
m038 46c33837ba docs: add dev server port and trip page filter bar notes to CLAUDE.md 2026-06-19 21:56:03 +02:00
m038 b1ec642d60 test: add MapLibre canvas tests (M1–M4), skip N5 (map nav link disabled)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7CzY4z2Qm5sYE2nySRWuH
2026-06-19 21:52:38 +02:00
m038 28dc6c1f6c test: add F1–F7 Playwright tests for trip page filter bar and stats toggle 2026-06-19 21:51:13 +02:00
m038 3c35176b90 test: update N4 — filter bar replaces trip nav link to dailies 2026-06-19 21:50:41 +02:00
m038 5e864b0c03 docs: add trip page filter bar implementation plan 2026-06-19 21:24:19 +02:00
m038 c9ce336b18 docs: add trip page filter bar design spec 2026-06-19 21:20:55 +02:00
m038 e329cd4ad2 docs: update trip-switching checklist — home.alias is now permanent /home
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RB86BaJBG3eGiMdfhmHRrQ
2026-06-19 15:52:46 +02:00
m038 abd953e1f6 docs: add home and trip pages implementation plan 2026-06-19 15:26:03 +02:00
m038 dc8b7f58d2 docs: add home page & content flow design spec 2026-06-19 15:07:10 +02:00
m038 6d54092413 docs: rewrite production todo — fresh install, correct Admin2 gap, ordered steps 2026-06-19 13:26:05 +02:00
m038 ab92f3b469 docs: add production todo list 2026-06-19 13:24:13 +02:00
m038 ae17483ca4 docs: update dark mode plan — CartoDB tiles replace Stadia (no key required) 2026-06-19 13:18:47 +02:00
m038 e032292c97 docs: update CLAUDE.md, bugs log, and posting pipeline for Grav 2.0 + trip entity
- CLAUDE.md: add Grav 2.0 upgrade method, Admin2 setup, trip entity architecture, updated paths
- bugs-and-fixes.md: fix stale paths, add BUG-004 (Admin2 empty dashboard) and BUG-005 (PHP session path)
- posting-pipeline.md: update paths to trips/dailies structure

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 13:11:53 +02:00
m038 e6eb93cd2c feat: trip entity restructure + Grav 2.0 upgrade
- Switch to getgrav/grav Docker image with GRAV_CHANNEL=beta (Grav 1.7.53)
- Apache runs as host UID 1000; fix-perms target handles container setup
- Rename tracker → dailies throughout (URL slug, templates, tests)
- Trip entity: /trips/<slug>/{dailies,map,stats,stories} hierarchy
- Nav driven by active_trip in site.yaml
- GPX route rendering on map via leaflet-gpx CDN
- Italy 2025 demo trip with real Tuscany GPS routes
- Admin blueprint for trip pages (date range, cover image, album URL)
- Dark mode + visual polish plan ready at docs/superpowers/plans/2026-06-19-dark-mode.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 09:09:19 +02:00
m038 2835d876cc docs: update fix-perms instructions for getgrav/grav image
Replace stale linuxserver.io paths (abc:users, /app/www/public/*)
with current approach: run make fix-perms after plugin install or
container recreation.
2026-06-19 02:01:16 +02:00
m038 2ff31f311b docs: add dark mode implementation plan 2026-06-19 01:59:17 +02:00
m038 0cb109b2a3 docs: add dark mode + visual polish design spec 2026-06-19 01:56:34 +02:00
m038 5e954d8adf fix: update paths for trips/japan-korea-2026/dailies restructure
- Update post form parent, Makefile demo targets, and test scripts to use
  new trip-scoped paths (01.trips/japan-korea-2026/01.dailies)
- Rename tracker.spec.js → dailies.spec.js and update all /tracker URLs
  to /trips/japan-korea-2026/dailies across nav.spec.js, post.spec.js,
  helpers.js, and dailies.spec.js
- Add Italy 2025 demo trip to Makefile demo-load/demo-reset targets

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 01:49:38 +02:00
m038 6926b4084a docs: add trip entity implementation plan 2026-06-19 01:17:05 +02:00
m038 943026658b fix: make fix-perms idempotent and persistent across container restarts
The getgrav/grav image is Debian-based and has no uid 1000 user,
causing Apache to fail switching to APACHE_RUN_USER=#1000 on restart.
fix-perms now creates the uid 1000 user if absent, sets ownership,
then gracefully reloads Apache workers so they run as uid 1000.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:15:56 +02:00
m038 6702b5d9b6 feat: support GRAV_CHANNEL_SUFFIX for Grav 2.0 RC production install
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19 00:14:05 +02:00
m038 b2f6cb1977 fix: update test-post.sh for Grav 1.7.53 / Login 3.x compatibility
- login-form-nonce replaces form-nonce (Login plugin 3.x)
- task value is login.login not login
- login success check uses form presence, not status code (/post returns
  200 unauthenticated)
- entry discovery searches by title, handles .en.md suffix
- cleanup uses docker exec to remove files owned by www-data

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:41:51 +02:00
m038 8824f79c64 feat: run Apache as host UID 1000 and add fix-perms target
APACHE_RUN_USER/GROUP=#1000 makes PHP/Apache write files owned by
the host user (mischa) instead of http. fix-perms target in setup
ensures ownership is correct after plugin install.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:34:57 +02:00
m038 9fd349e5ec chore: update .gitignore to allow cache-on-save plugin 2026-06-18 23:18:01 +02:00
m038 df55917347 feat: switch to getgrav/grav 2.0 RC docker image
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:13:53 +02:00
m038 6fe066e77d docs: fix plan commit steps for user/ git repo separation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:12:52 +02:00
m038 b98ae50f30 docs: add Grav 2.0 upgrade implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:05:13 +02:00
m038 9beb22f4c2 docs: add Grav 2.0 upgrade design spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-18 23:00:02 +02:00